// Auto-generated by scripts/gen-unicode-properties.mjs — do not edit by hand.
// Source: @unicode/unicode-17.0.0 + Unicode PropertyValueAliases.txt
// Unicode version: 17.0.0

#pragma once

#include <cstddef>
#include <cstdint>

struct UnicodeRange { uint32_t lo; uint32_t hi; };
struct UnicodePropertyTable {
	const char *name;
	const UnicodeRange *ranges;
	size_t count;
};

static const UnicodeRange kRanges_ASCII[] = {
	{0x0, 0x7F},
};

static const UnicodeRange kRanges_ASCII_Hex_Digit[] = {
	{0x30, 0x39},
	{0x41, 0x46},
	{0x61, 0x66},
};

static const UnicodeRange kRanges_Alphabetic[] = {
	{0x41, 0x5A},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x2C1},
	{0x2C6, 0x2D1},
	{0x2E0, 0x2E4},
	{0x2EC, 0x2EC},
	{0x2EE, 0x2EE},
	{0x345, 0x345},
	{0x363, 0x374},
	{0x376, 0x377},
	{0x37A, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3F5},
	{0x3F7, 0x481},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x559, 0x559},
	{0x560, 0x588},
	{0x5B0, 0x5BD},
	{0x5BF, 0x5BF},
	{0x5C1, 0x5C2},
	{0x5C4, 0x5C5},
	{0x5C7, 0x5C7},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F2},
	{0x610, 0x61A},
	{0x620, 0x657},
	{0x659, 0x65F},
	{0x66E, 0x6D3},
	{0x6D5, 0x6DC},
	{0x6E1, 0x6E8},
	{0x6ED, 0x6EF},
	{0x6FA, 0x6FC},
	{0x6FF, 0x6FF},
	{0x710, 0x73F},
	{0x74D, 0x7B1},
	{0x7CA, 0x7EA},
	{0x7F4, 0x7F5},
	{0x7FA, 0x7FA},
	{0x800, 0x817},
	{0x81A, 0x82C},
	{0x840, 0x858},
	{0x860, 0x86A},
	{0x870, 0x887},
	{0x889, 0x88F},
	{0x897, 0x897},
	{0x8A0, 0x8C9},
	{0x8D4, 0x8DF},
	{0x8E3, 0x8E9},
	{0x8F0, 0x93B},
	{0x93D, 0x94C},
	{0x94E, 0x950},
	{0x955, 0x963},
	{0x971, 0x983},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BD, 0x9C4},
	{0x9C7, 0x9C8},
	{0x9CB, 0x9CC},
	{0x9CE, 0x9CE},
	{0x9D7, 0x9D7},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E3},
	{0x9F0, 0x9F1},
	{0x9FC, 0x9FC},
	{0xA01, 0xA03},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA3E, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4C},
	{0xA51, 0xA51},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA70, 0xA75},
	{0xA81, 0xA83},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABD, 0xAC5},
	{0xAC7, 0xAC9},
	{0xACB, 0xACC},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE3},
	{0xAF9, 0xAFC},
	{0xB01, 0xB03},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3D, 0xB44},
	{0xB47, 0xB48},
	{0xB4B, 0xB4C},
	{0xB56, 0xB57},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB63},
	{0xB71, 0xB71},
	{0xB82, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBBE, 0xBC2},
	{0xBC6, 0xBC8},
	{0xBCA, 0xBCC},
	{0xBD0, 0xBD0},
	{0xBD7, 0xBD7},
	{0xC00, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3D, 0xC44},
	{0xC46, 0xC48},
	{0xC4A, 0xC4C},
	{0xC55, 0xC56},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC63},
	{0xC80, 0xC83},
	{0xC85, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBD, 0xCC4},
	{0xCC6, 0xCC8},
	{0xCCA, 0xCCC},
	{0xCD5, 0xCD6},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE3},
	{0xCF1, 0xCF3},
	{0xD00, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD3A},
	{0xD3D, 0xD44},
	{0xD46, 0xD48},
	{0xD4A, 0xD4C},
	{0xD4E, 0xD4E},
	{0xD54, 0xD57},
	{0xD5F, 0xD63},
	{0xD7A, 0xD7F},
	{0xD81, 0xD83},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xDCF, 0xDD4},
	{0xDD6, 0xDD6},
	{0xDD8, 0xDDF},
	{0xDF2, 0xDF3},
	{0xE01, 0xE3A},
	{0xE40, 0xE46},
	{0xE4D, 0xE4D},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEB9},
	{0xEBB, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xECD, 0xECD},
	{0xEDC, 0xEDF},
	{0xF00, 0xF00},
	{0xF40, 0xF47},
	{0xF49, 0xF6C},
	{0xF71, 0xF83},
	{0xF88, 0xF97},
	{0xF99, 0xFBC},
	{0x1000, 0x1036},
	{0x1038, 0x1038},
	{0x103B, 0x103F},
	{0x1050, 0x108F},
	{0x109A, 0x109D},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FC, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x1380, 0x138F},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1401, 0x166C},
	{0x166F, 0x167F},
	{0x1681, 0x169A},
	{0x16A0, 0x16EA},
	{0x16EE, 0x16F8},
	{0x1700, 0x1713},
	{0x171F, 0x1733},
	{0x1740, 0x1753},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1772, 0x1773},
	{0x1780, 0x17B3},
	{0x17B6, 0x17C8},
	{0x17D7, 0x17D7},
	{0x17DC, 0x17DC},
	{0x1820, 0x1878},
	{0x1880, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1920, 0x192B},
	{0x1930, 0x1938},
	{0x1950, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x1A00, 0x1A1B},
	{0x1A20, 0x1A5E},
	{0x1A61, 0x1A74},
	{0x1AA7, 0x1AA7},
	{0x1ABF, 0x1AC0},
	{0x1ACC, 0x1ACE},
	{0x1B00, 0x1B33},
	{0x1B35, 0x1B43},
	{0x1B45, 0x1B4C},
	{0x1B80, 0x1BA9},
	{0x1BAC, 0x1BAF},
	{0x1BBA, 0x1BE5},
	{0x1BE7, 0x1BF1},
	{0x1C00, 0x1C36},
	{0x1C4D, 0x1C4F},
	{0x1C5A, 0x1C7D},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1CE9, 0x1CEC},
	{0x1CEE, 0x1CF3},
	{0x1CF5, 0x1CF6},
	{0x1CFA, 0x1CFA},
	{0x1D00, 0x1DBF},
	{0x1DD3, 0x1DF4},
	{0x1E00, 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},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2119, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x212D},
	{0x212F, 0x2139},
	{0x213C, 0x213F},
	{0x2145, 0x2149},
	{0x214E, 0x214E},
	{0x2160, 0x2188},
	{0x24B6, 0x24E9},
	{0x2C00, 0x2CE4},
	{0x2CEB, 0x2CEE},
	{0x2CF2, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D6F},
	{0x2D80, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x2DE0, 0x2DFF},
	{0x2E2F, 0x2E2F},
	{0x3005, 0x3007},
	{0x3021, 0x3029},
	{0x3031, 0x3035},
	{0x3038, 0x303C},
	{0x3041, 0x3096},
	{0x309D, 0x309F},
	{0x30A1, 0x30FA},
	{0x30FC, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x31A0, 0x31BF},
	{0x31F0, 0x31FF},
	{0x3400, 0x4DBF},
	{0x4E00, 0xA48C},
	{0xA4D0, 0xA4FD},
	{0xA500, 0xA60C},
	{0xA610, 0xA61F},
	{0xA62A, 0xA62B},
	{0xA640, 0xA66E},
	{0xA674, 0xA67B},
	{0xA67F, 0xA6EF},
	{0xA717, 0xA71F},
	{0xA722, 0xA788},
	{0xA78B, 0xA7DC},
	{0xA7F1, 0xA805},
	{0xA807, 0xA827},
	{0xA840, 0xA873},
	{0xA880, 0xA8C3},
	{0xA8C5, 0xA8C5},
	{0xA8F2, 0xA8F7},
	{0xA8FB, 0xA8FB},
	{0xA8FD, 0xA8FF},
	{0xA90A, 0xA92A},
	{0xA930, 0xA952},
	{0xA960, 0xA97C},
	{0xA980, 0xA9B2},
	{0xA9B4, 0xA9BF},
	{0xA9CF, 0xA9CF},
	{0xA9E0, 0xA9EF},
	{0xA9FA, 0xA9FE},
	{0xAA00, 0xAA36},
	{0xAA40, 0xAA4D},
	{0xAA60, 0xAA76},
	{0xAA7A, 0xAABE},
	{0xAAC0, 0xAAC0},
	{0xAAC2, 0xAAC2},
	{0xAADB, 0xAADD},
	{0xAAE0, 0xAAEF},
	{0xAAF2, 0xAAF5},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABEA},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB28},
	{0xFB2A, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFBB1},
	{0xFBD3, 0xFD3D},
	{0xFD50, 0xFD8F},
	{0xFD92, 0xFDC7},
	{0xFDF0, 0xFDFB},
	{0xFE70, 0xFE74},
	{0xFE76, 0xFEFC},
	{0xFF21, 0xFF3A},
	{0xFF41, 0xFF5A},
	{0xFF66, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10140, 0x10174},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x10300, 0x1031F},
	{0x1032D, 0x1034A},
	{0x10350, 0x1037A},
	{0x10380, 0x1039D},
	{0x103A0, 0x103C3},
	{0x103C8, 0x103CF},
	{0x103D1, 0x103D5},
	{0x10400, 0x1049D},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10860, 0x10876},
	{0x10880, 0x1089E},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x10900, 0x10915},
	{0x10920, 0x10939},
	{0x10940, 0x10959},
	{0x10980, 0x109B7},
	{0x109BE, 0x109BF},
	{0x10A00, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A60, 0x10A7C},
	{0x10A80, 0x10A9C},
	{0x10AC0, 0x10AC7},
	{0x10AC9, 0x10AE4},
	{0x10B00, 0x10B35},
	{0x10B40, 0x10B55},
	{0x10B60, 0x10B72},
	{0x10B80, 0x10B91},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D00, 0x10D27},
	{0x10D4A, 0x10D65},
	{0x10D69, 0x10D69},
	{0x10D6F, 0x10D85},
	{0x10E80, 0x10EA9},
	{0x10EAB, 0x10EAC},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10EFA, 0x10EFC},
	{0x10F00, 0x10F1C},
	{0x10F27, 0x10F27},
	{0x10F30, 0x10F45},
	{0x10F70, 0x10F81},
	{0x10FB0, 0x10FC4},
	{0x10FE0, 0x10FF6},
	{0x11000, 0x11045},
	{0x11071, 0x11075},
	{0x11080, 0x110B8},
	{0x110C2, 0x110C2},
	{0x110D0, 0x110E8},
	{0x11100, 0x11132},
	{0x11144, 0x11147},
	{0x11150, 0x11172},
	{0x11176, 0x11176},
	{0x11180, 0x111BF},
	{0x111C1, 0x111C4},
	{0x111CE, 0x111CF},
	{0x111DA, 0x111DA},
	{0x111DC, 0x111DC},
	{0x11200, 0x11211},
	{0x11213, 0x11234},
	{0x11237, 0x11237},
	{0x1123E, 0x11241},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A8},
	{0x112B0, 0x112E8},
	{0x11300, 0x11303},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133D, 0x11344},
	{0x11347, 0x11348},
	{0x1134B, 0x1134C},
	{0x11350, 0x11350},
	{0x11357, 0x11357},
	{0x1135D, 0x11363},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113C0},
	{0x113C2, 0x113C2},
	{0x113C5, 0x113C5},
	{0x113C7, 0x113CA},
	{0x113CC, 0x113CD},
	{0x113D1, 0x113D1},
	{0x113D3, 0x113D3},
	{0x11400, 0x11441},
	{0x11443, 0x11445},
	{0x11447, 0x1144A},
	{0x1145F, 0x11461},
	{0x11480, 0x114C1},
	{0x114C4, 0x114C5},
	{0x114C7, 0x114C7},
	{0x11580, 0x115B5},
	{0x115B8, 0x115BE},
	{0x115D8, 0x115DD},
	{0x11600, 0x1163E},
	{0x11640, 0x11640},
	{0x11644, 0x11644},
	{0x11680, 0x116B5},
	{0x116B8, 0x116B8},
	{0x11700, 0x1171A},
	{0x1171D, 0x1172A},
	{0x11740, 0x11746},
	{0x11800, 0x11838},
	{0x118A0, 0x118DF},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x11935},
	{0x11937, 0x11938},
	{0x1193B, 0x1193C},
	{0x1193F, 0x11942},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D7},
	{0x119DA, 0x119DF},
	{0x119E1, 0x119E1},
	{0x119E3, 0x119E4},
	{0x11A00, 0x11A32},
	{0x11A35, 0x11A3E},
	{0x11A50, 0x11A97},
	{0x11A9D, 0x11A9D},
	{0x11AB0, 0x11AF8},
	{0x11B60, 0x11B67},
	{0x11BC0, 0x11BE0},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C36},
	{0x11C38, 0x11C3E},
	{0x11C40, 0x11C40},
	{0x11C72, 0x11C8F},
	{0x11C92, 0x11CA7},
	{0x11CA9, 0x11CB6},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D41},
	{0x11D43, 0x11D43},
	{0x11D46, 0x11D47},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D8E},
	{0x11D90, 0x11D91},
	{0x11D93, 0x11D96},
	{0x11D98, 0x11D98},
	{0x11DB0, 0x11DDB},
	{0x11EE0, 0x11EF6},
	{0x11F00, 0x11F10},
	{0x11F12, 0x11F3A},
	{0x11F3E, 0x11F40},
	{0x11FB0, 0x11FB0},
	{0x12000, 0x12399},
	{0x12400, 0x1246E},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF0},
	{0x13000, 0x1342F},
	{0x13441, 0x13446},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x1612E},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A70, 0x16ABE},
	{0x16AD0, 0x16AED},
	{0x16B00, 0x16B2F},
	{0x16B40, 0x16B43},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D6C},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F4F, 0x16F87},
	{0x16F8F, 0x16F9F},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE3},
	{0x16FF0, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1BC9E, 0x1BC9E},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D6C0},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6FA},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D734},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D76E},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D7A8},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7CB},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
	{0x1E030, 0x1E06D},
	{0x1E08F, 0x1E08F},
	{0x1E100, 0x1E12C},
	{0x1E137, 0x1E13D},
	{0x1E14E, 0x1E14E},
	{0x1E290, 0x1E2AD},
	{0x1E2C0, 0x1E2EB},
	{0x1E4D0, 0x1E4EB},
	{0x1E5D0, 0x1E5ED},
	{0x1E5F0, 0x1E5F0},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6F5},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E900, 0x1E943},
	{0x1E947, 0x1E947},
	{0x1E94B, 0x1E94B},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1F130, 0x1F149},
	{0x1F150, 0x1F169},
	{0x1F170, 0x1F189},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodeRange kRanges_Any[] = {
	{0x0, 0x10FFFF},
};

static const UnicodeRange kRanges_Assigned[] = {
	{0x0, 0x377},
	{0x37A, 0x37F},
	{0x384, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x52F},
	{0x531, 0x556},
	{0x559, 0x58A},
	{0x58D, 0x58F},
	{0x591, 0x5C7},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F4},
	{0x600, 0x70D},
	{0x70F, 0x74A},
	{0x74D, 0x7B1},
	{0x7C0, 0x7FA},
	{0x7FD, 0x82D},
	{0x830, 0x83E},
	{0x840, 0x85B},
	{0x85E, 0x85E},
	{0x860, 0x86A},
	{0x870, 0x891},
	{0x897, 0x983},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BC, 0x9C4},
	{0x9C7, 0x9C8},
	{0x9CB, 0x9CE},
	{0x9D7, 0x9D7},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E3},
	{0x9E6, 0x9FE},
	{0xA01, 0xA03},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA3C, 0xA3C},
	{0xA3E, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4D},
	{0xA51, 0xA51},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA66, 0xA76},
	{0xA81, 0xA83},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABC, 0xAC5},
	{0xAC7, 0xAC9},
	{0xACB, 0xACD},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE3},
	{0xAE6, 0xAF1},
	{0xAF9, 0xAFF},
	{0xB01, 0xB03},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3C, 0xB44},
	{0xB47, 0xB48},
	{0xB4B, 0xB4D},
	{0xB55, 0xB57},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB63},
	{0xB66, 0xB77},
	{0xB82, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBBE, 0xBC2},
	{0xBC6, 0xBC8},
	{0xBCA, 0xBCD},
	{0xBD0, 0xBD0},
	{0xBD7, 0xBD7},
	{0xBE6, 0xBFA},
	{0xC00, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3C, 0xC44},
	{0xC46, 0xC48},
	{0xC4A, 0xC4D},
	{0xC55, 0xC56},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC63},
	{0xC66, 0xC6F},
	{0xC77, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBC, 0xCC4},
	{0xCC6, 0xCC8},
	{0xCCA, 0xCCD},
	{0xCD5, 0xCD6},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE3},
	{0xCE6, 0xCEF},
	{0xCF1, 0xCF3},
	{0xD00, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD44},
	{0xD46, 0xD48},
	{0xD4A, 0xD4F},
	{0xD54, 0xD63},
	{0xD66, 0xD7F},
	{0xD81, 0xD83},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xDCA, 0xDCA},
	{0xDCF, 0xDD4},
	{0xDD6, 0xDD6},
	{0xDD8, 0xDDF},
	{0xDE6, 0xDEF},
	{0xDF2, 0xDF4},
	{0xE01, 0xE3A},
	{0xE3F, 0xE5B},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xEC8, 0xECE},
	{0xED0, 0xED9},
	{0xEDC, 0xEDF},
	{0xF00, 0xF47},
	{0xF49, 0xF6C},
	{0xF71, 0xF97},
	{0xF99, 0xFBC},
	{0xFBE, 0xFCC},
	{0xFCE, 0xFDA},
	{0x1000, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x135D, 0x137C},
	{0x1380, 0x1399},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1400, 0x169C},
	{0x16A0, 0x16F8},
	{0x1700, 0x1715},
	{0x171F, 0x1736},
	{0x1740, 0x1753},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1772, 0x1773},
	{0x1780, 0x17DD},
	{0x17E0, 0x17E9},
	{0x17F0, 0x17F9},
	{0x1800, 0x1819},
	{0x1820, 0x1878},
	{0x1880, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1920, 0x192B},
	{0x1930, 0x193B},
	{0x1940, 0x1940},
	{0x1944, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x19D0, 0x19DA},
	{0x19DE, 0x1A1B},
	{0x1A1E, 0x1A5E},
	{0x1A60, 0x1A7C},
	{0x1A7F, 0x1A89},
	{0x1A90, 0x1A99},
	{0x1AA0, 0x1AAD},
	{0x1AB0, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1B00, 0x1B4C},
	{0x1B4E, 0x1BF3},
	{0x1BFC, 0x1C37},
	{0x1C3B, 0x1C49},
	{0x1C4D, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CC7},
	{0x1CD0, 0x1CFA},
	{0x1D00, 0x1F15},
	{0x1F18, 0x1F1D},
	{0x1F20, 0x1F45},
	{0x1F48, 0x1F4D},
	{0x1F50, 0x1F57},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F7D},
	{0x1F80, 0x1FB4},
	{0x1FB6, 0x1FC4},
	{0x1FC6, 0x1FD3},
	{0x1FD6, 0x1FDB},
	{0x1FDD, 0x1FEF},
	{0x1FF2, 0x1FF4},
	{0x1FF6, 0x1FFE},
	{0x2000, 0x2064},
	{0x2066, 0x2071},
	{0x2074, 0x208E},
	{0x2090, 0x209C},
	{0x20A0, 0x20C1},
	{0x20D0, 0x20F0},
	{0x2100, 0x218B},
	{0x2190, 0x2429},
	{0x2440, 0x244A},
	{0x2460, 0x2B73},
	{0x2B76, 0x2CF3},
	{0x2CF9, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D70},
	{0x2D7F, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x2DE0, 0x2E5D},
	{0x2E80, 0x2E99},
	{0x2E9B, 0x2EF3},
	{0x2F00, 0x2FD5},
	{0x2FF0, 0x303F},
	{0x3041, 0x3096},
	{0x3099, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x3190, 0x31E5},
	{0x31EF, 0x321E},
	{0x3220, 0xA48C},
	{0xA490, 0xA4C6},
	{0xA4D0, 0xA62B},
	{0xA640, 0xA6F7},
	{0xA700, 0xA7DC},
	{0xA7F1, 0xA82C},
	{0xA830, 0xA839},
	{0xA840, 0xA877},
	{0xA880, 0xA8C5},
	{0xA8CE, 0xA8D9},
	{0xA8E0, 0xA953},
	{0xA95F, 0xA97C},
	{0xA980, 0xA9CD},
	{0xA9CF, 0xA9D9},
	{0xA9DE, 0xA9FE},
	{0xAA00, 0xAA36},
	{0xAA40, 0xAA4D},
	{0xAA50, 0xAA59},
	{0xAA5C, 0xAAC2},
	{0xAADB, 0xAAF6},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB6B},
	{0xAB70, 0xABED},
	{0xABF0, 0xABF9},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xD800, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFDCF},
	{0xFDF0, 0xFE19},
	{0xFE20, 0xFE52},
	{0xFE54, 0xFE66},
	{0xFE68, 0xFE6B},
	{0xFE70, 0xFE74},
	{0xFE76, 0xFEFC},
	{0xFEFF, 0xFEFF},
	{0xFF01, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0xFFE0, 0xFFE6},
	{0xFFE8, 0xFFEE},
	{0xFFF9, 0xFFFD},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10100, 0x10102},
	{0x10107, 0x10133},
	{0x10137, 0x1018E},
	{0x10190, 0x1019C},
	{0x101A0, 0x101A0},
	{0x101D0, 0x101FD},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x102E0, 0x102FB},
	{0x10300, 0x10323},
	{0x1032D, 0x1034A},
	{0x10350, 0x1037A},
	{0x10380, 0x1039D},
	{0x1039F, 0x103C3},
	{0x103C8, 0x103D5},
	{0x10400, 0x1049D},
	{0x104A0, 0x104A9},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x1056F, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10857, 0x1089E},
	{0x108A7, 0x108AF},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x108FB, 0x1091B},
	{0x1091F, 0x10939},
	{0x1093F, 0x10959},
	{0x10980, 0x109B7},
	{0x109BC, 0x109CF},
	{0x109D2, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A48},
	{0x10A50, 0x10A58},
	{0x10A60, 0x10A9F},
	{0x10AC0, 0x10AE6},
	{0x10AEB, 0x10AF6},
	{0x10B00, 0x10B35},
	{0x10B39, 0x10B55},
	{0x10B58, 0x10B72},
	{0x10B78, 0x10B91},
	{0x10B99, 0x10B9C},
	{0x10BA9, 0x10BAF},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10CFA, 0x10D27},
	{0x10D30, 0x10D39},
	{0x10D40, 0x10D65},
	{0x10D69, 0x10D85},
	{0x10D8E, 0x10D8F},
	{0x10E60, 0x10E7E},
	{0x10E80, 0x10EA9},
	{0x10EAB, 0x10EAD},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10ED0, 0x10ED8},
	{0x10EFA, 0x10F27},
	{0x10F30, 0x10F59},
	{0x10F70, 0x10F89},
	{0x10FB0, 0x10FCB},
	{0x10FE0, 0x10FF6},
	{0x11000, 0x1104D},
	{0x11052, 0x11075},
	{0x1107F, 0x110C2},
	{0x110CD, 0x110CD},
	{0x110D0, 0x110E8},
	{0x110F0, 0x110F9},
	{0x11100, 0x11134},
	{0x11136, 0x11147},
	{0x11150, 0x11176},
	{0x11180, 0x111DF},
	{0x111E1, 0x111F4},
	{0x11200, 0x11211},
	{0x11213, 0x11241},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A9},
	{0x112B0, 0x112EA},
	{0x112F0, 0x112F9},
	{0x11300, 0x11303},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133B, 0x11344},
	{0x11347, 0x11348},
	{0x1134B, 0x1134D},
	{0x11350, 0x11350},
	{0x11357, 0x11357},
	{0x1135D, 0x11363},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113C0},
	{0x113C2, 0x113C2},
	{0x113C5, 0x113C5},
	{0x113C7, 0x113CA},
	{0x113CC, 0x113D5},
	{0x113D7, 0x113D8},
	{0x113E1, 0x113E2},
	{0x11400, 0x1145B},
	{0x1145D, 0x11461},
	{0x11480, 0x114C7},
	{0x114D0, 0x114D9},
	{0x11580, 0x115B5},
	{0x115B8, 0x115DD},
	{0x11600, 0x11644},
	{0x11650, 0x11659},
	{0x11660, 0x1166C},
	{0x11680, 0x116B9},
	{0x116C0, 0x116C9},
	{0x116D0, 0x116E3},
	{0x11700, 0x1171A},
	{0x1171D, 0x1172B},
	{0x11730, 0x11746},
	{0x11800, 0x1183B},
	{0x118A0, 0x118F2},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x11935},
	{0x11937, 0x11938},
	{0x1193B, 0x11946},
	{0x11950, 0x11959},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D7},
	{0x119DA, 0x119E4},
	{0x11A00, 0x11A47},
	{0x11A50, 0x11AA2},
	{0x11AB0, 0x11AF8},
	{0x11B00, 0x11B09},
	{0x11B60, 0x11B67},
	{0x11BC0, 0x11BE1},
	{0x11BF0, 0x11BF9},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C36},
	{0x11C38, 0x11C45},
	{0x11C50, 0x11C6C},
	{0x11C70, 0x11C8F},
	{0x11C92, 0x11CA7},
	{0x11CA9, 0x11CB6},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D47},
	{0x11D50, 0x11D59},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D8E},
	{0x11D90, 0x11D91},
	{0x11D93, 0x11D98},
	{0x11DA0, 0x11DA9},
	{0x11DB0, 0x11DDB},
	{0x11DE0, 0x11DE9},
	{0x11EE0, 0x11EF8},
	{0x11F00, 0x11F10},
	{0x11F12, 0x11F3A},
	{0x11F3E, 0x11F5A},
	{0x11FB0, 0x11FB0},
	{0x11FC0, 0x11FF1},
	{0x11FFF, 0x12399},
	{0x12400, 0x1246E},
	{0x12470, 0x12474},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF2},
	{0x13000, 0x13455},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x16139},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A60, 0x16A69},
	{0x16A6E, 0x16ABE},
	{0x16AC0, 0x16AC9},
	{0x16AD0, 0x16AED},
	{0x16AF0, 0x16AF5},
	{0x16B00, 0x16B45},
	{0x16B50, 0x16B59},
	{0x16B5B, 0x16B61},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D79},
	{0x16E40, 0x16E9A},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F4F, 0x16F87},
	{0x16F8F, 0x16F9F},
	{0x16FE0, 0x16FE4},
	{0x16FF0, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1BC9C, 0x1BCA3},
	{0x1CC00, 0x1CCFC},
	{0x1CD00, 0x1CEB3},
	{0x1CEBA, 0x1CED0},
	{0x1CEE0, 0x1CEF0},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1CF50, 0x1CFC3},
	{0x1D000, 0x1D0F5},
	{0x1D100, 0x1D126},
	{0x1D129, 0x1D1EA},
	{0x1D200, 0x1D245},
	{0x1D2C0, 0x1D2D3},
	{0x1D2E0, 0x1D2F3},
	{0x1D300, 0x1D356},
	{0x1D360, 0x1D378},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D7CB},
	{0x1D7CE, 0x1DA8B},
	{0x1DA9B, 0x1DA9F},
	{0x1DAA1, 0x1DAAF},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
	{0x1E030, 0x1E06D},
	{0x1E08F, 0x1E08F},
	{0x1E100, 0x1E12C},
	{0x1E130, 0x1E13D},
	{0x1E140, 0x1E149},
	{0x1E14E, 0x1E14F},
	{0x1E290, 0x1E2AE},
	{0x1E2C0, 0x1E2F9},
	{0x1E2FF, 0x1E2FF},
	{0x1E4D0, 0x1E4F9},
	{0x1E5D0, 0x1E5FA},
	{0x1E5FF, 0x1E5FF},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6F5},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E8C7, 0x1E8D6},
	{0x1E900, 0x1E94B},
	{0x1E950, 0x1E959},
	{0x1E95E, 0x1E95F},
	{0x1EC71, 0x1ECB4},
	{0x1ED01, 0x1ED3D},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1EEF0, 0x1EEF1},
	{0x1F000, 0x1F02B},
	{0x1F030, 0x1F093},
	{0x1F0A0, 0x1F0AE},
	{0x1F0B1, 0x1F0BF},
	{0x1F0C1, 0x1F0CF},
	{0x1F0D1, 0x1F0F5},
	{0x1F100, 0x1F1AD},
	{0x1F1E6, 0x1F202},
	{0x1F210, 0x1F23B},
	{0x1F240, 0x1F248},
	{0x1F250, 0x1F251},
	{0x1F260, 0x1F265},
	{0x1F300, 0x1F6D8},
	{0x1F6DC, 0x1F6EC},
	{0x1F6F0, 0x1F6FC},
	{0x1F700, 0x1F7D9},
	{0x1F7E0, 0x1F7EB},
	{0x1F7F0, 0x1F7F0},
	{0x1F800, 0x1F80B},
	{0x1F810, 0x1F847},
	{0x1F850, 0x1F859},
	{0x1F860, 0x1F887},
	{0x1F890, 0x1F8AD},
	{0x1F8B0, 0x1F8BB},
	{0x1F8C0, 0x1F8C1},
	{0x1F8D0, 0x1F8D8},
	{0x1F900, 0x1FA57},
	{0x1FA60, 0x1FA6D},
	{0x1FA70, 0x1FA7C},
	{0x1FA80, 0x1FA8A},
	{0x1FA8E, 0x1FAC6},
	{0x1FAC8, 0x1FAC8},
	{0x1FACD, 0x1FADC},
	{0x1FADF, 0x1FAEA},
	{0x1FAEF, 0x1FAF8},
	{0x1FB00, 0x1FB92},
	{0x1FB94, 0x1FBFA},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
	{0xE0001, 0xE0001},
	{0xE0020, 0xE007F},
	{0xE0100, 0xE01EF},
	{0xF0000, 0xFFFFD},
	{0x100000, 0x10FFFD},
};

static const UnicodeRange kRanges_Bidi_Control[] = {
	{0x61C, 0x61C},
	{0x200E, 0x200F},
	{0x202A, 0x202E},
	{0x2066, 0x2069},
};

static const UnicodeRange kRanges_Bidi_Mirrored[] = {
	{0x28, 0x29},
	{0x3C, 0x3C},
	{0x3E, 0x3E},
	{0x5B, 0x5B},
	{0x5D, 0x5D},
	{0x7B, 0x7B},
	{0x7D, 0x7D},
	{0xAB, 0xAB},
	{0xBB, 0xBB},
	{0xF3A, 0xF3D},
	{0x169B, 0x169C},
	{0x2039, 0x203A},
	{0x2045, 0x2046},
	{0x207D, 0x207E},
	{0x208D, 0x208E},
	{0x2140, 0x2140},
	{0x2201, 0x2204},
	{0x2208, 0x220D},
	{0x2211, 0x2211},
	{0x2215, 0x2216},
	{0x221A, 0x221D},
	{0x221F, 0x2222},
	{0x2224, 0x2224},
	{0x2226, 0x2226},
	{0x222B, 0x2233},
	{0x2239, 0x2239},
	{0x223B, 0x224C},
	{0x2252, 0x2255},
	{0x225F, 0x2260},
	{0x2262, 0x2262},
	{0x2264, 0x226B},
	{0x226D, 0x228C},
	{0x228F, 0x2292},
	{0x2298, 0x2298},
	{0x22A2, 0x22A3},
	{0x22A6, 0x22B8},
	{0x22BE, 0x22BF},
	{0x22C9, 0x22CD},
	{0x22D0, 0x22D1},
	{0x22D6, 0x22ED},
	{0x22F0, 0x22FF},
	{0x2308, 0x230B},
	{0x2320, 0x2321},
	{0x2329, 0x232A},
	{0x2768, 0x2775},
	{0x27C0, 0x27C0},
	{0x27C3, 0x27C6},
	{0x27C8, 0x27C9},
	{0x27CB, 0x27CD},
	{0x27D3, 0x27D6},
	{0x27DC, 0x27DE},
	{0x27E2, 0x27EF},
	{0x2983, 0x2998},
	{0x299B, 0x29A0},
	{0x29A2, 0x29AF},
	{0x29B8, 0x29B8},
	{0x29C0, 0x29C5},
	{0x29C9, 0x29C9},
	{0x29CE, 0x29D2},
	{0x29D4, 0x29D5},
	{0x29D8, 0x29DC},
	{0x29E1, 0x29E1},
	{0x29E3, 0x29E5},
	{0x29E8, 0x29E9},
	{0x29F4, 0x29F9},
	{0x29FC, 0x29FD},
	{0x2A0A, 0x2A1C},
	{0x2A1E, 0x2A21},
	{0x2A24, 0x2A24},
	{0x2A26, 0x2A26},
	{0x2A29, 0x2A29},
	{0x2A2B, 0x2A2E},
	{0x2A34, 0x2A35},
	{0x2A3C, 0x2A3E},
	{0x2A57, 0x2A58},
	{0x2A64, 0x2A65},
	{0x2A6A, 0x2A6D},
	{0x2A6F, 0x2A70},
	{0x2A73, 0x2A74},
	{0x2A79, 0x2AA3},
	{0x2AA6, 0x2AAD},
	{0x2AAF, 0x2AD6},
	{0x2ADC, 0x2ADC},
	{0x2ADE, 0x2ADE},
	{0x2AE2, 0x2AE6},
	{0x2AEC, 0x2AEE},
	{0x2AF3, 0x2AF3},
	{0x2AF7, 0x2AFB},
	{0x2AFD, 0x2AFD},
	{0x2BFE, 0x2BFE},
	{0x2E02, 0x2E05},
	{0x2E09, 0x2E0A},
	{0x2E0C, 0x2E0D},
	{0x2E1C, 0x2E1D},
	{0x2E20, 0x2E29},
	{0x2E55, 0x2E5C},
	{0x3008, 0x3011},
	{0x3014, 0x301B},
	{0xFE59, 0xFE5E},
	{0xFE64, 0xFE65},
	{0xFF08, 0xFF09},
	{0xFF1C, 0xFF1C},
	{0xFF1E, 0xFF1E},
	{0xFF3B, 0xFF3B},
	{0xFF3D, 0xFF3D},
	{0xFF5B, 0xFF5B},
	{0xFF5D, 0xFF5D},
	{0xFF5F, 0xFF60},
	{0xFF62, 0xFF63},
	{0x1D6DB, 0x1D6DB},
	{0x1D715, 0x1D715},
	{0x1D74F, 0x1D74F},
	{0x1D789, 0x1D789},
	{0x1D7C3, 0x1D7C3},
};

static const UnicodeRange kRanges_Case_Ignorable[] = {
	{0x27, 0x27},
	{0x2E, 0x2E},
	{0x3A, 0x3A},
	{0x5E, 0x5E},
	{0x60, 0x60},
	{0xA8, 0xA8},
	{0xAD, 0xAD},
	{0xAF, 0xAF},
	{0xB4, 0xB4},
	{0xB7, 0xB8},
	{0x2B0, 0x36F},
	{0x374, 0x375},
	{0x37A, 0x37A},
	{0x384, 0x385},
	{0x387, 0x387},
	{0x483, 0x489},
	{0x559, 0x559},
	{0x55F, 0x55F},
	{0x591, 0x5BD},
	{0x5BF, 0x5BF},
	{0x5C1, 0x5C2},
	{0x5C4, 0x5C5},
	{0x5C7, 0x5C7},
	{0x5F4, 0x5F4},
	{0x600, 0x605},
	{0x610, 0x61A},
	{0x61C, 0x61C},
	{0x640, 0x640},
	{0x64B, 0x65F},
	{0x670, 0x670},
	{0x6D6, 0x6DD},
	{0x6DF, 0x6E8},
	{0x6EA, 0x6ED},
	{0x70F, 0x70F},
	{0x711, 0x711},
	{0x730, 0x74A},
	{0x7A6, 0x7B0},
	{0x7EB, 0x7F5},
	{0x7FA, 0x7FA},
	{0x7FD, 0x7FD},
	{0x816, 0x82D},
	{0x859, 0x85B},
	{0x888, 0x888},
	{0x890, 0x891},
	{0x897, 0x89F},
	{0x8C9, 0x902},
	{0x93A, 0x93A},
	{0x93C, 0x93C},
	{0x941, 0x948},
	{0x94D, 0x94D},
	{0x951, 0x957},
	{0x962, 0x963},
	{0x971, 0x971},
	{0x981, 0x981},
	{0x9BC, 0x9BC},
	{0x9C1, 0x9C4},
	{0x9CD, 0x9CD},
	{0x9E2, 0x9E3},
	{0x9FE, 0x9FE},
	{0xA01, 0xA02},
	{0xA3C, 0xA3C},
	{0xA41, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4D},
	{0xA51, 0xA51},
	{0xA70, 0xA71},
	{0xA75, 0xA75},
	{0xA81, 0xA82},
	{0xABC, 0xABC},
	{0xAC1, 0xAC5},
	{0xAC7, 0xAC8},
	{0xACD, 0xACD},
	{0xAE2, 0xAE3},
	{0xAFA, 0xAFF},
	{0xB01, 0xB01},
	{0xB3C, 0xB3C},
	{0xB3F, 0xB3F},
	{0xB41, 0xB44},
	{0xB4D, 0xB4D},
	{0xB55, 0xB56},
	{0xB62, 0xB63},
	{0xB82, 0xB82},
	{0xBC0, 0xBC0},
	{0xBCD, 0xBCD},
	{0xC00, 0xC00},
	{0xC04, 0xC04},
	{0xC3C, 0xC3C},
	{0xC3E, 0xC40},
	{0xC46, 0xC48},
	{0xC4A, 0xC4D},
	{0xC55, 0xC56},
	{0xC62, 0xC63},
	{0xC81, 0xC81},
	{0xCBC, 0xCBC},
	{0xCBF, 0xCBF},
	{0xCC6, 0xCC6},
	{0xCCC, 0xCCD},
	{0xCE2, 0xCE3},
	{0xD00, 0xD01},
	{0xD3B, 0xD3C},
	{0xD41, 0xD44},
	{0xD4D, 0xD4D},
	{0xD62, 0xD63},
	{0xD81, 0xD81},
	{0xDCA, 0xDCA},
	{0xDD2, 0xDD4},
	{0xDD6, 0xDD6},
	{0xE31, 0xE31},
	{0xE34, 0xE3A},
	{0xE46, 0xE4E},
	{0xEB1, 0xEB1},
	{0xEB4, 0xEBC},
	{0xEC6, 0xEC6},
	{0xEC8, 0xECE},
	{0xF18, 0xF19},
	{0xF35, 0xF35},
	{0xF37, 0xF37},
	{0xF39, 0xF39},
	{0xF71, 0xF7E},
	{0xF80, 0xF84},
	{0xF86, 0xF87},
	{0xF8D, 0xF97},
	{0xF99, 0xFBC},
	{0xFC6, 0xFC6},
	{0x102D, 0x1030},
	{0x1032, 0x1037},
	{0x1039, 0x103A},
	{0x103D, 0x103E},
	{0x1058, 0x1059},
	{0x105E, 0x1060},
	{0x1071, 0x1074},
	{0x1082, 0x1082},
	{0x1085, 0x1086},
	{0x108D, 0x108D},
	{0x109D, 0x109D},
	{0x10FC, 0x10FC},
	{0x135D, 0x135F},
	{0x1712, 0x1714},
	{0x1732, 0x1733},
	{0x1752, 0x1753},
	{0x1772, 0x1773},
	{0x17B4, 0x17B5},
	{0x17B7, 0x17BD},
	{0x17C6, 0x17C6},
	{0x17C9, 0x17D3},
	{0x17D7, 0x17D7},
	{0x17DD, 0x17DD},
	{0x180B, 0x180F},
	{0x1843, 0x1843},
	{0x1885, 0x1886},
	{0x18A9, 0x18A9},
	{0x1920, 0x1922},
	{0x1927, 0x1928},
	{0x1932, 0x1932},
	{0x1939, 0x193B},
	{0x1A17, 0x1A18},
	{0x1A1B, 0x1A1B},
	{0x1A56, 0x1A56},
	{0x1A58, 0x1A5E},
	{0x1A60, 0x1A60},
	{0x1A62, 0x1A62},
	{0x1A65, 0x1A6C},
	{0x1A73, 0x1A7C},
	{0x1A7F, 0x1A7F},
	{0x1AA7, 0x1AA7},
	{0x1AB0, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1B00, 0x1B03},
	{0x1B34, 0x1B34},
	{0x1B36, 0x1B3A},
	{0x1B3C, 0x1B3C},
	{0x1B42, 0x1B42},
	{0x1B6B, 0x1B73},
	{0x1B80, 0x1B81},
	{0x1BA2, 0x1BA5},
	{0x1BA8, 0x1BA9},
	{0x1BAB, 0x1BAD},
	{0x1BE6, 0x1BE6},
	{0x1BE8, 0x1BE9},
	{0x1BED, 0x1BED},
	{0x1BEF, 0x1BF1},
	{0x1C2C, 0x1C33},
	{0x1C36, 0x1C37},
	{0x1C78, 0x1C7D},
	{0x1CD0, 0x1CD2},
	{0x1CD4, 0x1CE0},
	{0x1CE2, 0x1CE8},
	{0x1CED, 0x1CED},
	{0x1CF4, 0x1CF4},
	{0x1CF8, 0x1CF9},
	{0x1D2C, 0x1D6A},
	{0x1D78, 0x1D78},
	{0x1D9B, 0x1DFF},
	{0x1FBD, 0x1FBD},
	{0x1FBF, 0x1FC1},
	{0x1FCD, 0x1FCF},
	{0x1FDD, 0x1FDF},
	{0x1FED, 0x1FEF},
	{0x1FFD, 0x1FFE},
	{0x200B, 0x200F},
	{0x2018, 0x2019},
	{0x2024, 0x2024},
	{0x2027, 0x2027},
	{0x202A, 0x202E},
	{0x2060, 0x2064},
	{0x2066, 0x206F},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x20D0, 0x20F0},
	{0x2C7C, 0x2C7D},
	{0x2CEF, 0x2CF1},
	{0x2D6F, 0x2D6F},
	{0x2D7F, 0x2D7F},
	{0x2DE0, 0x2DFF},
	{0x2E2F, 0x2E2F},
	{0x3005, 0x3005},
	{0x302A, 0x302D},
	{0x3031, 0x3035},
	{0x303B, 0x303B},
	{0x3099, 0x309E},
	{0x30FC, 0x30FE},
	{0xA015, 0xA015},
	{0xA4F8, 0xA4FD},
	{0xA60C, 0xA60C},
	{0xA66F, 0xA672},
	{0xA674, 0xA67D},
	{0xA67F, 0xA67F},
	{0xA69C, 0xA69F},
	{0xA6F0, 0xA6F1},
	{0xA700, 0xA721},
	{0xA770, 0xA770},
	{0xA788, 0xA78A},
	{0xA7F1, 0xA7F4},
	{0xA7F8, 0xA7F9},
	{0xA802, 0xA802},
	{0xA806, 0xA806},
	{0xA80B, 0xA80B},
	{0xA825, 0xA826},
	{0xA82C, 0xA82C},
	{0xA8C4, 0xA8C5},
	{0xA8E0, 0xA8F1},
	{0xA8FF, 0xA8FF},
	{0xA926, 0xA92D},
	{0xA947, 0xA951},
	{0xA980, 0xA982},
	{0xA9B3, 0xA9B3},
	{0xA9B6, 0xA9B9},
	{0xA9BC, 0xA9BD},
	{0xA9CF, 0xA9CF},
	{0xA9E5, 0xA9E6},
	{0xAA29, 0xAA2E},
	{0xAA31, 0xAA32},
	{0xAA35, 0xAA36},
	{0xAA43, 0xAA43},
	{0xAA4C, 0xAA4C},
	{0xAA70, 0xAA70},
	{0xAA7C, 0xAA7C},
	{0xAAB0, 0xAAB0},
	{0xAAB2, 0xAAB4},
	{0xAAB7, 0xAAB8},
	{0xAABE, 0xAABF},
	{0xAAC1, 0xAAC1},
	{0xAADD, 0xAADD},
	{0xAAEC, 0xAAED},
	{0xAAF3, 0xAAF4},
	{0xAAF6, 0xAAF6},
	{0xAB5B, 0xAB5F},
	{0xAB69, 0xAB6B},
	{0xABE5, 0xABE5},
	{0xABE8, 0xABE8},
	{0xABED, 0xABED},
	{0xFB1E, 0xFB1E},
	{0xFBB2, 0xFBC2},
	{0xFE00, 0xFE0F},
	{0xFE13, 0xFE13},
	{0xFE20, 0xFE2F},
	{0xFE52, 0xFE52},
	{0xFE55, 0xFE55},
	{0xFEFF, 0xFEFF},
	{0xFF07, 0xFF07},
	{0xFF0E, 0xFF0E},
	{0xFF1A, 0xFF1A},
	{0xFF3E, 0xFF3E},
	{0xFF40, 0xFF40},
	{0xFF70, 0xFF70},
	{0xFF9E, 0xFF9F},
	{0xFFE3, 0xFFE3},
	{0xFFF9, 0xFFFB},
	{0x101FD, 0x101FD},
	{0x102E0, 0x102E0},
	{0x10376, 0x1037A},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10A01, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A0F},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A3F},
	{0x10AE5, 0x10AE6},
	{0x10D24, 0x10D27},
	{0x10D4E, 0x10D4E},
	{0x10D69, 0x10D6D},
	{0x10D6F, 0x10D6F},
	{0x10EAB, 0x10EAC},
	{0x10EC5, 0x10EC5},
	{0x10EFA, 0x10EFF},
	{0x10F46, 0x10F50},
	{0x10F82, 0x10F85},
	{0x11001, 0x11001},
	{0x11038, 0x11046},
	{0x11070, 0x11070},
	{0x11073, 0x11074},
	{0x1107F, 0x11081},
	{0x110B3, 0x110B6},
	{0x110B9, 0x110BA},
	{0x110BD, 0x110BD},
	{0x110C2, 0x110C2},
	{0x110CD, 0x110CD},
	{0x11100, 0x11102},
	{0x11127, 0x1112B},
	{0x1112D, 0x11134},
	{0x11173, 0x11173},
	{0x11180, 0x11181},
	{0x111B6, 0x111BE},
	{0x111C9, 0x111CC},
	{0x111CF, 0x111CF},
	{0x1122F, 0x11231},
	{0x11234, 0x11234},
	{0x11236, 0x11237},
	{0x1123E, 0x1123E},
	{0x11241, 0x11241},
	{0x112DF, 0x112DF},
	{0x112E3, 0x112EA},
	{0x11300, 0x11301},
	{0x1133B, 0x1133C},
	{0x11340, 0x11340},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x113BB, 0x113C0},
	{0x113CE, 0x113CE},
	{0x113D0, 0x113D0},
	{0x113D2, 0x113D2},
	{0x113E1, 0x113E2},
	{0x11438, 0x1143F},
	{0x11442, 0x11444},
	{0x11446, 0x11446},
	{0x1145E, 0x1145E},
	{0x114B3, 0x114B8},
	{0x114BA, 0x114BA},
	{0x114BF, 0x114C0},
	{0x114C2, 0x114C3},
	{0x115B2, 0x115B5},
	{0x115BC, 0x115BD},
	{0x115BF, 0x115C0},
	{0x115DC, 0x115DD},
	{0x11633, 0x1163A},
	{0x1163D, 0x1163D},
	{0x1163F, 0x11640},
	{0x116AB, 0x116AB},
	{0x116AD, 0x116AD},
	{0x116B0, 0x116B5},
	{0x116B7, 0x116B7},
	{0x1171D, 0x1171D},
	{0x1171F, 0x1171F},
	{0x11722, 0x11725},
	{0x11727, 0x1172B},
	{0x1182F, 0x11837},
	{0x11839, 0x1183A},
	{0x1193B, 0x1193C},
	{0x1193E, 0x1193E},
	{0x11943, 0x11943},
	{0x119D4, 0x119D7},
	{0x119DA, 0x119DB},
	{0x119E0, 0x119E0},
	{0x11A01, 0x11A0A},
	{0x11A33, 0x11A38},
	{0x11A3B, 0x11A3E},
	{0x11A47, 0x11A47},
	{0x11A51, 0x11A56},
	{0x11A59, 0x11A5B},
	{0x11A8A, 0x11A96},
	{0x11A98, 0x11A99},
	{0x11B60, 0x11B60},
	{0x11B62, 0x11B64},
	{0x11B66, 0x11B66},
	{0x11C30, 0x11C36},
	{0x11C38, 0x11C3D},
	{0x11C3F, 0x11C3F},
	{0x11C92, 0x11CA7},
	{0x11CAA, 0x11CB0},
	{0x11CB2, 0x11CB3},
	{0x11CB5, 0x11CB6},
	{0x11D31, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D45},
	{0x11D47, 0x11D47},
	{0x11D90, 0x11D91},
	{0x11D95, 0x11D95},
	{0x11D97, 0x11D97},
	{0x11DD9, 0x11DD9},
	{0x11EF3, 0x11EF4},
	{0x11F00, 0x11F01},
	{0x11F36, 0x11F3A},
	{0x11F40, 0x11F40},
	{0x11F42, 0x11F42},
	{0x11F5A, 0x11F5A},
	{0x13430, 0x13440},
	{0x13447, 0x13455},
	{0x1611E, 0x16129},
	{0x1612D, 0x1612F},
	{0x16AF0, 0x16AF4},
	{0x16B30, 0x16B36},
	{0x16B40, 0x16B43},
	{0x16D40, 0x16D42},
	{0x16D6B, 0x16D6C},
	{0x16F4F, 0x16F4F},
	{0x16F8F, 0x16F9F},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE4},
	{0x16FF2, 0x16FF3},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1BC9D, 0x1BC9E},
	{0x1BCA0, 0x1BCA3},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1D167, 0x1D169},
	{0x1D173, 0x1D182},
	{0x1D185, 0x1D18B},
	{0x1D1AA, 0x1D1AD},
	{0x1D242, 0x1D244},
	{0x1DA00, 0x1DA36},
	{0x1DA3B, 0x1DA6C},
	{0x1DA75, 0x1DA75},
	{0x1DA84, 0x1DA84},
	{0x1DA9B, 0x1DA9F},
	{0x1DAA1, 0x1DAAF},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
	{0x1E030, 0x1E06D},
	{0x1E08F, 0x1E08F},
	{0x1E130, 0x1E13D},
	{0x1E2AE, 0x1E2AE},
	{0x1E2EC, 0x1E2EF},
	{0x1E4EB, 0x1E4EF},
	{0x1E5EE, 0x1E5EF},
	{0x1E6E3, 0x1E6E3},
	{0x1E6E6, 0x1E6E6},
	{0x1E6EE, 0x1E6EF},
	{0x1E6F5, 0x1E6F5},
	{0x1E6FF, 0x1E6FF},
	{0x1E8D0, 0x1E8D6},
	{0x1E944, 0x1E94B},
	{0x1F3FB, 0x1F3FF},
	{0xE0001, 0xE0001},
	{0xE0020, 0xE007F},
	{0xE0100, 0xE01EF},
};

static const UnicodeRange kRanges_Cased[] = {
	{0x41, 0x5A},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x1BA},
	{0x1BC, 0x1BF},
	{0x1C4, 0x293},
	{0x296, 0x2B8},
	{0x2C0, 0x2C1},
	{0x2E0, 0x2E4},
	{0x345, 0x345},
	{0x370, 0x373},
	{0x376, 0x377},
	{0x37A, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3F5},
	{0x3F7, 0x481},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x560, 0x588},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FC, 0x10FF},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1D00, 0x1DBF},
	{0x1E00, 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},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2119, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x212D},
	{0x212F, 0x2134},
	{0x2139, 0x2139},
	{0x213C, 0x213F},
	{0x2145, 0x2149},
	{0x214E, 0x214E},
	{0x2160, 0x217F},
	{0x2183, 0x2184},
	{0x24B6, 0x24E9},
	{0x2C00, 0x2CE4},
	{0x2CEB, 0x2CEE},
	{0x2CF2, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0xA640, 0xA66D},
	{0xA680, 0xA69D},
	{0xA722, 0xA787},
	{0xA78B, 0xA78E},
	{0xA790, 0xA7DC},
	{0xA7F1, 0xA7F6},
	{0xA7F8, 0xA7FA},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABBF},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFF21, 0xFF3A},
	{0xFF41, 0xFF5A},
	{0x10400, 0x1044F},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x10780, 0x10780},
	{0x10783, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D50, 0x10D65},
	{0x10D70, 0x10D85},
	{0x118A0, 0x118DF},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D6C0},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6FA},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D734},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D76E},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D7A8},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7CB},
	{0x1DF00, 0x1DF09},
	{0x1DF0B, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E030, 0x1E06D},
	{0x1E900, 0x1E943},
	{0x1F130, 0x1F149},
	{0x1F150, 0x1F169},
	{0x1F170, 0x1F189},
};

static const UnicodeRange kRanges_Changes_When_Casefolded[] = {
	{0x41, 0x5A},
	{0xB5, 0xB5},
	{0xC0, 0xD6},
	{0xD8, 0xDF},
	{0x100, 0x100},
	{0x102, 0x102},
	{0x104, 0x104},
	{0x106, 0x106},
	{0x108, 0x108},
	{0x10A, 0x10A},
	{0x10C, 0x10C},
	{0x10E, 0x10E},
	{0x110, 0x110},
	{0x112, 0x112},
	{0x114, 0x114},
	{0x116, 0x116},
	{0x118, 0x118},
	{0x11A, 0x11A},
	{0x11C, 0x11C},
	{0x11E, 0x11E},
	{0x120, 0x120},
	{0x122, 0x122},
	{0x124, 0x124},
	{0x126, 0x126},
	{0x128, 0x128},
	{0x12A, 0x12A},
	{0x12C, 0x12C},
	{0x12E, 0x12E},
	{0x130, 0x130},
	{0x132, 0x132},
	{0x134, 0x134},
	{0x136, 0x136},
	{0x139, 0x139},
	{0x13B, 0x13B},
	{0x13D, 0x13D},
	{0x13F, 0x13F},
	{0x141, 0x141},
	{0x143, 0x143},
	{0x145, 0x145},
	{0x147, 0x147},
	{0x149, 0x14A},
	{0x14C, 0x14C},
	{0x14E, 0x14E},
	{0x150, 0x150},
	{0x152, 0x152},
	{0x154, 0x154},
	{0x156, 0x156},
	{0x158, 0x158},
	{0x15A, 0x15A},
	{0x15C, 0x15C},
	{0x15E, 0x15E},
	{0x160, 0x160},
	{0x162, 0x162},
	{0x164, 0x164},
	{0x166, 0x166},
	{0x168, 0x168},
	{0x16A, 0x16A},
	{0x16C, 0x16C},
	{0x16E, 0x16E},
	{0x170, 0x170},
	{0x172, 0x172},
	{0x174, 0x174},
	{0x176, 0x176},
	{0x178, 0x179},
	{0x17B, 0x17B},
	{0x17D, 0x17D},
	{0x17F, 0x17F},
	{0x181, 0x182},
	{0x184, 0x184},
	{0x186, 0x187},
	{0x189, 0x18B},
	{0x18E, 0x191},
	{0x193, 0x194},
	{0x196, 0x198},
	{0x19C, 0x19D},
	{0x19F, 0x1A0},
	{0x1A2, 0x1A2},
	{0x1A4, 0x1A4},
	{0x1A6, 0x1A7},
	{0x1A9, 0x1A9},
	{0x1AC, 0x1AC},
	{0x1AE, 0x1AF},
	{0x1B1, 0x1B3},
	{0x1B5, 0x1B5},
	{0x1B7, 0x1B8},
	{0x1BC, 0x1BC},
	{0x1C4, 0x1C5},
	{0x1C7, 0x1C8},
	{0x1CA, 0x1CB},
	{0x1CD, 0x1CD},
	{0x1CF, 0x1CF},
	{0x1D1, 0x1D1},
	{0x1D3, 0x1D3},
	{0x1D5, 0x1D5},
	{0x1D7, 0x1D7},
	{0x1D9, 0x1D9},
	{0x1DB, 0x1DB},
	{0x1DE, 0x1DE},
	{0x1E0, 0x1E0},
	{0x1E2, 0x1E2},
	{0x1E4, 0x1E4},
	{0x1E6, 0x1E6},
	{0x1E8, 0x1E8},
	{0x1EA, 0x1EA},
	{0x1EC, 0x1EC},
	{0x1EE, 0x1EE},
	{0x1F1, 0x1F2},
	{0x1F4, 0x1F4},
	{0x1F6, 0x1F8},
	{0x1FA, 0x1FA},
	{0x1FC, 0x1FC},
	{0x1FE, 0x1FE},
	{0x200, 0x200},
	{0x202, 0x202},
	{0x204, 0x204},
	{0x206, 0x206},
	{0x208, 0x208},
	{0x20A, 0x20A},
	{0x20C, 0x20C},
	{0x20E, 0x20E},
	{0x210, 0x210},
	{0x212, 0x212},
	{0x214, 0x214},
	{0x216, 0x216},
	{0x218, 0x218},
	{0x21A, 0x21A},
	{0x21C, 0x21C},
	{0x21E, 0x21E},
	{0x220, 0x220},
	{0x222, 0x222},
	{0x224, 0x224},
	{0x226, 0x226},
	{0x228, 0x228},
	{0x22A, 0x22A},
	{0x22C, 0x22C},
	{0x22E, 0x22E},
	{0x230, 0x230},
	{0x232, 0x232},
	{0x23A, 0x23B},
	{0x23D, 0x23E},
	{0x241, 0x241},
	{0x243, 0x246},
	{0x248, 0x248},
	{0x24A, 0x24A},
	{0x24C, 0x24C},
	{0x24E, 0x24E},
	{0x345, 0x345},
	{0x370, 0x370},
	{0x372, 0x372},
	{0x376, 0x376},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x38F},
	{0x391, 0x3A1},
	{0x3A3, 0x3AB},
	{0x3C2, 0x3C2},
	{0x3CF, 0x3D1},
	{0x3D5, 0x3D6},
	{0x3D8, 0x3D8},
	{0x3DA, 0x3DA},
	{0x3DC, 0x3DC},
	{0x3DE, 0x3DE},
	{0x3E0, 0x3E0},
	{0x3E2, 0x3E2},
	{0x3E4, 0x3E4},
	{0x3E6, 0x3E6},
	{0x3E8, 0x3E8},
	{0x3EA, 0x3EA},
	{0x3EC, 0x3EC},
	{0x3EE, 0x3EE},
	{0x3F0, 0x3F1},
	{0x3F4, 0x3F5},
	{0x3F7, 0x3F7},
	{0x3F9, 0x3FA},
	{0x3FD, 0x42F},
	{0x460, 0x460},
	{0x462, 0x462},
	{0x464, 0x464},
	{0x466, 0x466},
	{0x468, 0x468},
	{0x46A, 0x46A},
	{0x46C, 0x46C},
	{0x46E, 0x46E},
	{0x470, 0x470},
	{0x472, 0x472},
	{0x474, 0x474},
	{0x476, 0x476},
	{0x478, 0x478},
	{0x47A, 0x47A},
	{0x47C, 0x47C},
	{0x47E, 0x47E},
	{0x480, 0x480},
	{0x48A, 0x48A},
	{0x48C, 0x48C},
	{0x48E, 0x48E},
	{0x490, 0x490},
	{0x492, 0x492},
	{0x494, 0x494},
	{0x496, 0x496},
	{0x498, 0x498},
	{0x49A, 0x49A},
	{0x49C, 0x49C},
	{0x49E, 0x49E},
	{0x4A0, 0x4A0},
	{0x4A2, 0x4A2},
	{0x4A4, 0x4A4},
	{0x4A6, 0x4A6},
	{0x4A8, 0x4A8},
	{0x4AA, 0x4AA},
	{0x4AC, 0x4AC},
	{0x4AE, 0x4AE},
	{0x4B0, 0x4B0},
	{0x4B2, 0x4B2},
	{0x4B4, 0x4B4},
	{0x4B6, 0x4B6},
	{0x4B8, 0x4B8},
	{0x4BA, 0x4BA},
	{0x4BC, 0x4BC},
	{0x4BE, 0x4BE},
	{0x4C0, 0x4C1},
	{0x4C3, 0x4C3},
	{0x4C5, 0x4C5},
	{0x4C7, 0x4C7},
	{0x4C9, 0x4C9},
	{0x4CB, 0x4CB},
	{0x4CD, 0x4CD},
	{0x4D0, 0x4D0},
	{0x4D2, 0x4D2},
	{0x4D4, 0x4D4},
	{0x4D6, 0x4D6},
	{0x4D8, 0x4D8},
	{0x4DA, 0x4DA},
	{0x4DC, 0x4DC},
	{0x4DE, 0x4DE},
	{0x4E0, 0x4E0},
	{0x4E2, 0x4E2},
	{0x4E4, 0x4E4},
	{0x4E6, 0x4E6},
	{0x4E8, 0x4E8},
	{0x4EA, 0x4EA},
	{0x4EC, 0x4EC},
	{0x4EE, 0x4EE},
	{0x4F0, 0x4F0},
	{0x4F2, 0x4F2},
	{0x4F4, 0x4F4},
	{0x4F6, 0x4F6},
	{0x4F8, 0x4F8},
	{0x4FA, 0x4FA},
	{0x4FC, 0x4FC},
	{0x4FE, 0x4FE},
	{0x500, 0x500},
	{0x502, 0x502},
	{0x504, 0x504},
	{0x506, 0x506},
	{0x508, 0x508},
	{0x50A, 0x50A},
	{0x50C, 0x50C},
	{0x50E, 0x50E},
	{0x510, 0x510},
	{0x512, 0x512},
	{0x514, 0x514},
	{0x516, 0x516},
	{0x518, 0x518},
	{0x51A, 0x51A},
	{0x51C, 0x51C},
	{0x51E, 0x51E},
	{0x520, 0x520},
	{0x522, 0x522},
	{0x524, 0x524},
	{0x526, 0x526},
	{0x528, 0x528},
	{0x52A, 0x52A},
	{0x52C, 0x52C},
	{0x52E, 0x52E},
	{0x531, 0x556},
	{0x587, 0x587},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x13F8, 0x13FD},
	{0x1C80, 0x1C89},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1E00, 0x1E00},
	{0x1E02, 0x1E02},
	{0x1E04, 0x1E04},
	{0x1E06, 0x1E06},
	{0x1E08, 0x1E08},
	{0x1E0A, 0x1E0A},
	{0x1E0C, 0x1E0C},
	{0x1E0E, 0x1E0E},
	{0x1E10, 0x1E10},
	{0x1E12, 0x1E12},
	{0x1E14, 0x1E14},
	{0x1E16, 0x1E16},
	{0x1E18, 0x1E18},
	{0x1E1A, 0x1E1A},
	{0x1E1C, 0x1E1C},
	{0x1E1E, 0x1E1E},
	{0x1E20, 0x1E20},
	{0x1E22, 0x1E22},
	{0x1E24, 0x1E24},
	{0x1E26, 0x1E26},
	{0x1E28, 0x1E28},
	{0x1E2A, 0x1E2A},
	{0x1E2C, 0x1E2C},
	{0x1E2E, 0x1E2E},
	{0x1E30, 0x1E30},
	{0x1E32, 0x1E32},
	{0x1E34, 0x1E34},
	{0x1E36, 0x1E36},
	{0x1E38, 0x1E38},
	{0x1E3A, 0x1E3A},
	{0x1E3C, 0x1E3C},
	{0x1E3E, 0x1E3E},
	{0x1E40, 0x1E40},
	{0x1E42, 0x1E42},
	{0x1E44, 0x1E44},
	{0x1E46, 0x1E46},
	{0x1E48, 0x1E48},
	{0x1E4A, 0x1E4A},
	{0x1E4C, 0x1E4C},
	{0x1E4E, 0x1E4E},
	{0x1E50, 0x1E50},
	{0x1E52, 0x1E52},
	{0x1E54, 0x1E54},
	{0x1E56, 0x1E56},
	{0x1E58, 0x1E58},
	{0x1E5A, 0x1E5A},
	{0x1E5C, 0x1E5C},
	{0x1E5E, 0x1E5E},
	{0x1E60, 0x1E60},
	{0x1E62, 0x1E62},
	{0x1E64, 0x1E64},
	{0x1E66, 0x1E66},
	{0x1E68, 0x1E68},
	{0x1E6A, 0x1E6A},
	{0x1E6C, 0x1E6C},
	{0x1E6E, 0x1E6E},
	{0x1E70, 0x1E70},
	{0x1E72, 0x1E72},
	{0x1E74, 0x1E74},
	{0x1E76, 0x1E76},
	{0x1E78, 0x1E78},
	{0x1E7A, 0x1E7A},
	{0x1E7C, 0x1E7C},
	{0x1E7E, 0x1E7E},
	{0x1E80, 0x1E80},
	{0x1E82, 0x1E82},
	{0x1E84, 0x1E84},
	{0x1E86, 0x1E86},
	{0x1E88, 0x1E88},
	{0x1E8A, 0x1E8A},
	{0x1E8C, 0x1E8C},
	{0x1E8E, 0x1E8E},
	{0x1E90, 0x1E90},
	{0x1E92, 0x1E92},
	{0x1E94, 0x1E94},
	{0x1E9A, 0x1E9B},
	{0x1E9E, 0x1E9E},
	{0x1EA0, 0x1EA0},
	{0x1EA2, 0x1EA2},
	{0x1EA4, 0x1EA4},
	{0x1EA6, 0x1EA6},
	{0x1EA8, 0x1EA8},
	{0x1EAA, 0x1EAA},
	{0x1EAC, 0x1EAC},
	{0x1EAE, 0x1EAE},
	{0x1EB0, 0x1EB0},
	{0x1EB2, 0x1EB2},
	{0x1EB4, 0x1EB4},
	{0x1EB6, 0x1EB6},
	{0x1EB8, 0x1EB8},
	{0x1EBA, 0x1EBA},
	{0x1EBC, 0x1EBC},
	{0x1EBE, 0x1EBE},
	{0x1EC0, 0x1EC0},
	{0x1EC2, 0x1EC2},
	{0x1EC4, 0x1EC4},
	{0x1EC6, 0x1EC6},
	{0x1EC8, 0x1EC8},
	{0x1ECA, 0x1ECA},
	{0x1ECC, 0x1ECC},
	{0x1ECE, 0x1ECE},
	{0x1ED0, 0x1ED0},
	{0x1ED2, 0x1ED2},
	{0x1ED4, 0x1ED4},
	{0x1ED6, 0x1ED6},
	{0x1ED8, 0x1ED8},
	{0x1EDA, 0x1EDA},
	{0x1EDC, 0x1EDC},
	{0x1EDE, 0x1EDE},
	{0x1EE0, 0x1EE0},
	{0x1EE2, 0x1EE2},
	{0x1EE4, 0x1EE4},
	{0x1EE6, 0x1EE6},
	{0x1EE8, 0x1EE8},
	{0x1EEA, 0x1EEA},
	{0x1EEC, 0x1EEC},
	{0x1EEE, 0x1EEE},
	{0x1EF0, 0x1EF0},
	{0x1EF2, 0x1EF2},
	{0x1EF4, 0x1EF4},
	{0x1EF6, 0x1EF6},
	{0x1EF8, 0x1EF8},
	{0x1EFA, 0x1EFA},
	{0x1EFC, 0x1EFC},
	{0x1EFE, 0x1EFE},
	{0x1F08, 0x1F0F},
	{0x1F18, 0x1F1D},
	{0x1F28, 0x1F2F},
	{0x1F38, 0x1F3F},
	{0x1F48, 0x1F4D},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F5F},
	{0x1F68, 0x1F6F},
	{0x1F80, 0x1FAF},
	{0x1FB2, 0x1FB4},
	{0x1FB7, 0x1FBC},
	{0x1FC2, 0x1FC4},
	{0x1FC7, 0x1FCC},
	{0x1FD8, 0x1FDB},
	{0x1FE8, 0x1FEC},
	{0x1FF2, 0x1FF4},
	{0x1FF7, 0x1FFC},
	{0x2126, 0x2126},
	{0x212A, 0x212B},
	{0x2132, 0x2132},
	{0x2160, 0x216F},
	{0x2183, 0x2183},
	{0x24B6, 0x24CF},
	{0x2C00, 0x2C2F},
	{0x2C60, 0x2C60},
	{0x2C62, 0x2C64},
	{0x2C67, 0x2C67},
	{0x2C69, 0x2C69},
	{0x2C6B, 0x2C6B},
	{0x2C6D, 0x2C70},
	{0x2C72, 0x2C72},
	{0x2C75, 0x2C75},
	{0x2C7E, 0x2C80},
	{0x2C82, 0x2C82},
	{0x2C84, 0x2C84},
	{0x2C86, 0x2C86},
	{0x2C88, 0x2C88},
	{0x2C8A, 0x2C8A},
	{0x2C8C, 0x2C8C},
	{0x2C8E, 0x2C8E},
	{0x2C90, 0x2C90},
	{0x2C92, 0x2C92},
	{0x2C94, 0x2C94},
	{0x2C96, 0x2C96},
	{0x2C98, 0x2C98},
	{0x2C9A, 0x2C9A},
	{0x2C9C, 0x2C9C},
	{0x2C9E, 0x2C9E},
	{0x2CA0, 0x2CA0},
	{0x2CA2, 0x2CA2},
	{0x2CA4, 0x2CA4},
	{0x2CA6, 0x2CA6},
	{0x2CA8, 0x2CA8},
	{0x2CAA, 0x2CAA},
	{0x2CAC, 0x2CAC},
	{0x2CAE, 0x2CAE},
	{0x2CB0, 0x2CB0},
	{0x2CB2, 0x2CB2},
	{0x2CB4, 0x2CB4},
	{0x2CB6, 0x2CB6},
	{0x2CB8, 0x2CB8},
	{0x2CBA, 0x2CBA},
	{0x2CBC, 0x2CBC},
	{0x2CBE, 0x2CBE},
	{0x2CC0, 0x2CC0},
	{0x2CC2, 0x2CC2},
	{0x2CC4, 0x2CC4},
	{0x2CC6, 0x2CC6},
	{0x2CC8, 0x2CC8},
	{0x2CCA, 0x2CCA},
	{0x2CCC, 0x2CCC},
	{0x2CCE, 0x2CCE},
	{0x2CD0, 0x2CD0},
	{0x2CD2, 0x2CD2},
	{0x2CD4, 0x2CD4},
	{0x2CD6, 0x2CD6},
	{0x2CD8, 0x2CD8},
	{0x2CDA, 0x2CDA},
	{0x2CDC, 0x2CDC},
	{0x2CDE, 0x2CDE},
	{0x2CE0, 0x2CE0},
	{0x2CE2, 0x2CE2},
	{0x2CEB, 0x2CEB},
	{0x2CED, 0x2CED},
	{0x2CF2, 0x2CF2},
	{0xA640, 0xA640},
	{0xA642, 0xA642},
	{0xA644, 0xA644},
	{0xA646, 0xA646},
	{0xA648, 0xA648},
	{0xA64A, 0xA64A},
	{0xA64C, 0xA64C},
	{0xA64E, 0xA64E},
	{0xA650, 0xA650},
	{0xA652, 0xA652},
	{0xA654, 0xA654},
	{0xA656, 0xA656},
	{0xA658, 0xA658},
	{0xA65A, 0xA65A},
	{0xA65C, 0xA65C},
	{0xA65E, 0xA65E},
	{0xA660, 0xA660},
	{0xA662, 0xA662},
	{0xA664, 0xA664},
	{0xA666, 0xA666},
	{0xA668, 0xA668},
	{0xA66A, 0xA66A},
	{0xA66C, 0xA66C},
	{0xA680, 0xA680},
	{0xA682, 0xA682},
	{0xA684, 0xA684},
	{0xA686, 0xA686},
	{0xA688, 0xA688},
	{0xA68A, 0xA68A},
	{0xA68C, 0xA68C},
	{0xA68E, 0xA68E},
	{0xA690, 0xA690},
	{0xA692, 0xA692},
	{0xA694, 0xA694},
	{0xA696, 0xA696},
	{0xA698, 0xA698},
	{0xA69A, 0xA69A},
	{0xA722, 0xA722},
	{0xA724, 0xA724},
	{0xA726, 0xA726},
	{0xA728, 0xA728},
	{0xA72A, 0xA72A},
	{0xA72C, 0xA72C},
	{0xA72E, 0xA72E},
	{0xA732, 0xA732},
	{0xA734, 0xA734},
	{0xA736, 0xA736},
	{0xA738, 0xA738},
	{0xA73A, 0xA73A},
	{0xA73C, 0xA73C},
	{0xA73E, 0xA73E},
	{0xA740, 0xA740},
	{0xA742, 0xA742},
	{0xA744, 0xA744},
	{0xA746, 0xA746},
	{0xA748, 0xA748},
	{0xA74A, 0xA74A},
	{0xA74C, 0xA74C},
	{0xA74E, 0xA74E},
	{0xA750, 0xA750},
	{0xA752, 0xA752},
	{0xA754, 0xA754},
	{0xA756, 0xA756},
	{0xA758, 0xA758},
	{0xA75A, 0xA75A},
	{0xA75C, 0xA75C},
	{0xA75E, 0xA75E},
	{0xA760, 0xA760},
	{0xA762, 0xA762},
	{0xA764, 0xA764},
	{0xA766, 0xA766},
	{0xA768, 0xA768},
	{0xA76A, 0xA76A},
	{0xA76C, 0xA76C},
	{0xA76E, 0xA76E},
	{0xA779, 0xA779},
	{0xA77B, 0xA77B},
	{0xA77D, 0xA77E},
	{0xA780, 0xA780},
	{0xA782, 0xA782},
	{0xA784, 0xA784},
	{0xA786, 0xA786},
	{0xA78B, 0xA78B},
	{0xA78D, 0xA78D},
	{0xA790, 0xA790},
	{0xA792, 0xA792},
	{0xA796, 0xA796},
	{0xA798, 0xA798},
	{0xA79A, 0xA79A},
	{0xA79C, 0xA79C},
	{0xA79E, 0xA79E},
	{0xA7A0, 0xA7A0},
	{0xA7A2, 0xA7A2},
	{0xA7A4, 0xA7A4},
	{0xA7A6, 0xA7A6},
	{0xA7A8, 0xA7A8},
	{0xA7AA, 0xA7AE},
	{0xA7B0, 0xA7B4},
	{0xA7B6, 0xA7B6},
	{0xA7B8, 0xA7B8},
	{0xA7BA, 0xA7BA},
	{0xA7BC, 0xA7BC},
	{0xA7BE, 0xA7BE},
	{0xA7C0, 0xA7C0},
	{0xA7C2, 0xA7C2},
	{0xA7C4, 0xA7C7},
	{0xA7C9, 0xA7C9},
	{0xA7CB, 0xA7CC},
	{0xA7CE, 0xA7CE},
	{0xA7D0, 0xA7D0},
	{0xA7D2, 0xA7D2},
	{0xA7D4, 0xA7D4},
	{0xA7D6, 0xA7D6},
	{0xA7D8, 0xA7D8},
	{0xA7DA, 0xA7DA},
	{0xA7DC, 0xA7DC},
	{0xA7F5, 0xA7F5},
	{0xAB70, 0xABBF},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFF21, 0xFF3A},
	{0x10400, 0x10427},
	{0x104B0, 0x104D3},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10C80, 0x10CB2},
	{0x10D50, 0x10D65},
	{0x118A0, 0x118BF},
	{0x16E40, 0x16E5F},
	{0x16EA0, 0x16EB8},
	{0x1E900, 0x1E921},
};

static const UnicodeRange kRanges_Changes_When_Casemapped[] = {
	{0x41, 0x5A},
	{0x61, 0x7A},
	{0xB5, 0xB5},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x137},
	{0x139, 0x18C},
	{0x18E, 0x1A9},
	{0x1AC, 0x1B9},
	{0x1BC, 0x1BD},
	{0x1BF, 0x1BF},
	{0x1C4, 0x220},
	{0x222, 0x233},
	{0x23A, 0x254},
	{0x256, 0x257},
	{0x259, 0x259},
	{0x25B, 0x25C},
	{0x260, 0x261},
	{0x263, 0x266},
	{0x268, 0x26C},
	{0x26F, 0x26F},
	{0x271, 0x272},
	{0x275, 0x275},
	{0x27D, 0x27D},
	{0x280, 0x280},
	{0x282, 0x283},
	{0x287, 0x28C},
	{0x292, 0x292},
	{0x29D, 0x29E},
	{0x345, 0x345},
	{0x370, 0x373},
	{0x376, 0x377},
	{0x37B, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3D1},
	{0x3D5, 0x3F5},
	{0x3F7, 0x3FB},
	{0x3FD, 0x481},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x561, 0x587},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FD, 0x10FF},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1D79, 0x1D79},
	{0x1D7D, 0x1D7D},
	{0x1D8E, 0x1D8E},
	{0x1E00, 0x1E9B},
	{0x1E9E, 0x1E9E},
	{0x1EA0, 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},
	{0x2126, 0x2126},
	{0x212A, 0x212B},
	{0x2132, 0x2132},
	{0x214E, 0x214E},
	{0x2160, 0x217F},
	{0x2183, 0x2184},
	{0x24B6, 0x24E9},
	{0x2C00, 0x2C70},
	{0x2C72, 0x2C73},
	{0x2C75, 0x2C76},
	{0x2C7E, 0x2CE3},
	{0x2CEB, 0x2CEE},
	{0x2CF2, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0xA640, 0xA66D},
	{0xA680, 0xA69B},
	{0xA722, 0xA72F},
	{0xA732, 0xA76F},
	{0xA779, 0xA787},
	{0xA78B, 0xA78D},
	{0xA790, 0xA794},
	{0xA796, 0xA7AE},
	{0xA7B0, 0xA7DC},
	{0xA7F5, 0xA7F6},
	{0xAB53, 0xAB53},
	{0xAB70, 0xABBF},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFF21, 0xFF3A},
	{0xFF41, 0xFF5A},
	{0x10400, 0x1044F},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D50, 0x10D65},
	{0x10D70, 0x10D85},
	{0x118A0, 0x118DF},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x1E900, 0x1E943},
};

static const UnicodeRange kRanges_Changes_When_Lowercased[] = {
	{0x41, 0x5A},
	{0xC0, 0xD6},
	{0xD8, 0xDE},
	{0x100, 0x100},
	{0x102, 0x102},
	{0x104, 0x104},
	{0x106, 0x106},
	{0x108, 0x108},
	{0x10A, 0x10A},
	{0x10C, 0x10C},
	{0x10E, 0x10E},
	{0x110, 0x110},
	{0x112, 0x112},
	{0x114, 0x114},
	{0x116, 0x116},
	{0x118, 0x118},
	{0x11A, 0x11A},
	{0x11C, 0x11C},
	{0x11E, 0x11E},
	{0x120, 0x120},
	{0x122, 0x122},
	{0x124, 0x124},
	{0x126, 0x126},
	{0x128, 0x128},
	{0x12A, 0x12A},
	{0x12C, 0x12C},
	{0x12E, 0x12E},
	{0x130, 0x130},
	{0x132, 0x132},
	{0x134, 0x134},
	{0x136, 0x136},
	{0x139, 0x139},
	{0x13B, 0x13B},
	{0x13D, 0x13D},
	{0x13F, 0x13F},
	{0x141, 0x141},
	{0x143, 0x143},
	{0x145, 0x145},
	{0x147, 0x147},
	{0x14A, 0x14A},
	{0x14C, 0x14C},
	{0x14E, 0x14E},
	{0x150, 0x150},
	{0x152, 0x152},
	{0x154, 0x154},
	{0x156, 0x156},
	{0x158, 0x158},
	{0x15A, 0x15A},
	{0x15C, 0x15C},
	{0x15E, 0x15E},
	{0x160, 0x160},
	{0x162, 0x162},
	{0x164, 0x164},
	{0x166, 0x166},
	{0x168, 0x168},
	{0x16A, 0x16A},
	{0x16C, 0x16C},
	{0x16E, 0x16E},
	{0x170, 0x170},
	{0x172, 0x172},
	{0x174, 0x174},
	{0x176, 0x176},
	{0x178, 0x179},
	{0x17B, 0x17B},
	{0x17D, 0x17D},
	{0x181, 0x182},
	{0x184, 0x184},
	{0x186, 0x187},
	{0x189, 0x18B},
	{0x18E, 0x191},
	{0x193, 0x194},
	{0x196, 0x198},
	{0x19C, 0x19D},
	{0x19F, 0x1A0},
	{0x1A2, 0x1A2},
	{0x1A4, 0x1A4},
	{0x1A6, 0x1A7},
	{0x1A9, 0x1A9},
	{0x1AC, 0x1AC},
	{0x1AE, 0x1AF},
	{0x1B1, 0x1B3},
	{0x1B5, 0x1B5},
	{0x1B7, 0x1B8},
	{0x1BC, 0x1BC},
	{0x1C4, 0x1C5},
	{0x1C7, 0x1C8},
	{0x1CA, 0x1CB},
	{0x1CD, 0x1CD},
	{0x1CF, 0x1CF},
	{0x1D1, 0x1D1},
	{0x1D3, 0x1D3},
	{0x1D5, 0x1D5},
	{0x1D7, 0x1D7},
	{0x1D9, 0x1D9},
	{0x1DB, 0x1DB},
	{0x1DE, 0x1DE},
	{0x1E0, 0x1E0},
	{0x1E2, 0x1E2},
	{0x1E4, 0x1E4},
	{0x1E6, 0x1E6},
	{0x1E8, 0x1E8},
	{0x1EA, 0x1EA},
	{0x1EC, 0x1EC},
	{0x1EE, 0x1EE},
	{0x1F1, 0x1F2},
	{0x1F4, 0x1F4},
	{0x1F6, 0x1F8},
	{0x1FA, 0x1FA},
	{0x1FC, 0x1FC},
	{0x1FE, 0x1FE},
	{0x200, 0x200},
	{0x202, 0x202},
	{0x204, 0x204},
	{0x206, 0x206},
	{0x208, 0x208},
	{0x20A, 0x20A},
	{0x20C, 0x20C},
	{0x20E, 0x20E},
	{0x210, 0x210},
	{0x212, 0x212},
	{0x214, 0x214},
	{0x216, 0x216},
	{0x218, 0x218},
	{0x21A, 0x21A},
	{0x21C, 0x21C},
	{0x21E, 0x21E},
	{0x220, 0x220},
	{0x222, 0x222},
	{0x224, 0x224},
	{0x226, 0x226},
	{0x228, 0x228},
	{0x22A, 0x22A},
	{0x22C, 0x22C},
	{0x22E, 0x22E},
	{0x230, 0x230},
	{0x232, 0x232},
	{0x23A, 0x23B},
	{0x23D, 0x23E},
	{0x241, 0x241},
	{0x243, 0x246},
	{0x248, 0x248},
	{0x24A, 0x24A},
	{0x24C, 0x24C},
	{0x24E, 0x24E},
	{0x370, 0x370},
	{0x372, 0x372},
	{0x376, 0x376},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x38F},
	{0x391, 0x3A1},
	{0x3A3, 0x3AB},
	{0x3CF, 0x3CF},
	{0x3D8, 0x3D8},
	{0x3DA, 0x3DA},
	{0x3DC, 0x3DC},
	{0x3DE, 0x3DE},
	{0x3E0, 0x3E0},
	{0x3E2, 0x3E2},
	{0x3E4, 0x3E4},
	{0x3E6, 0x3E6},
	{0x3E8, 0x3E8},
	{0x3EA, 0x3EA},
	{0x3EC, 0x3EC},
	{0x3EE, 0x3EE},
	{0x3F4, 0x3F4},
	{0x3F7, 0x3F7},
	{0x3F9, 0x3FA},
	{0x3FD, 0x42F},
	{0x460, 0x460},
	{0x462, 0x462},
	{0x464, 0x464},
	{0x466, 0x466},
	{0x468, 0x468},
	{0x46A, 0x46A},
	{0x46C, 0x46C},
	{0x46E, 0x46E},
	{0x470, 0x470},
	{0x472, 0x472},
	{0x474, 0x474},
	{0x476, 0x476},
	{0x478, 0x478},
	{0x47A, 0x47A},
	{0x47C, 0x47C},
	{0x47E, 0x47E},
	{0x480, 0x480},
	{0x48A, 0x48A},
	{0x48C, 0x48C},
	{0x48E, 0x48E},
	{0x490, 0x490},
	{0x492, 0x492},
	{0x494, 0x494},
	{0x496, 0x496},
	{0x498, 0x498},
	{0x49A, 0x49A},
	{0x49C, 0x49C},
	{0x49E, 0x49E},
	{0x4A0, 0x4A0},
	{0x4A2, 0x4A2},
	{0x4A4, 0x4A4},
	{0x4A6, 0x4A6},
	{0x4A8, 0x4A8},
	{0x4AA, 0x4AA},
	{0x4AC, 0x4AC},
	{0x4AE, 0x4AE},
	{0x4B0, 0x4B0},
	{0x4B2, 0x4B2},
	{0x4B4, 0x4B4},
	{0x4B6, 0x4B6},
	{0x4B8, 0x4B8},
	{0x4BA, 0x4BA},
	{0x4BC, 0x4BC},
	{0x4BE, 0x4BE},
	{0x4C0, 0x4C1},
	{0x4C3, 0x4C3},
	{0x4C5, 0x4C5},
	{0x4C7, 0x4C7},
	{0x4C9, 0x4C9},
	{0x4CB, 0x4CB},
	{0x4CD, 0x4CD},
	{0x4D0, 0x4D0},
	{0x4D2, 0x4D2},
	{0x4D4, 0x4D4},
	{0x4D6, 0x4D6},
	{0x4D8, 0x4D8},
	{0x4DA, 0x4DA},
	{0x4DC, 0x4DC},
	{0x4DE, 0x4DE},
	{0x4E0, 0x4E0},
	{0x4E2, 0x4E2},
	{0x4E4, 0x4E4},
	{0x4E6, 0x4E6},
	{0x4E8, 0x4E8},
	{0x4EA, 0x4EA},
	{0x4EC, 0x4EC},
	{0x4EE, 0x4EE},
	{0x4F0, 0x4F0},
	{0x4F2, 0x4F2},
	{0x4F4, 0x4F4},
	{0x4F6, 0x4F6},
	{0x4F8, 0x4F8},
	{0x4FA, 0x4FA},
	{0x4FC, 0x4FC},
	{0x4FE, 0x4FE},
	{0x500, 0x500},
	{0x502, 0x502},
	{0x504, 0x504},
	{0x506, 0x506},
	{0x508, 0x508},
	{0x50A, 0x50A},
	{0x50C, 0x50C},
	{0x50E, 0x50E},
	{0x510, 0x510},
	{0x512, 0x512},
	{0x514, 0x514},
	{0x516, 0x516},
	{0x518, 0x518},
	{0x51A, 0x51A},
	{0x51C, 0x51C},
	{0x51E, 0x51E},
	{0x520, 0x520},
	{0x522, 0x522},
	{0x524, 0x524},
	{0x526, 0x526},
	{0x528, 0x528},
	{0x52A, 0x52A},
	{0x52C, 0x52C},
	{0x52E, 0x52E},
	{0x531, 0x556},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x13A0, 0x13F5},
	{0x1C89, 0x1C89},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1E00, 0x1E00},
	{0x1E02, 0x1E02},
	{0x1E04, 0x1E04},
	{0x1E06, 0x1E06},
	{0x1E08, 0x1E08},
	{0x1E0A, 0x1E0A},
	{0x1E0C, 0x1E0C},
	{0x1E0E, 0x1E0E},
	{0x1E10, 0x1E10},
	{0x1E12, 0x1E12},
	{0x1E14, 0x1E14},
	{0x1E16, 0x1E16},
	{0x1E18, 0x1E18},
	{0x1E1A, 0x1E1A},
	{0x1E1C, 0x1E1C},
	{0x1E1E, 0x1E1E},
	{0x1E20, 0x1E20},
	{0x1E22, 0x1E22},
	{0x1E24, 0x1E24},
	{0x1E26, 0x1E26},
	{0x1E28, 0x1E28},
	{0x1E2A, 0x1E2A},
	{0x1E2C, 0x1E2C},
	{0x1E2E, 0x1E2E},
	{0x1E30, 0x1E30},
	{0x1E32, 0x1E32},
	{0x1E34, 0x1E34},
	{0x1E36, 0x1E36},
	{0x1E38, 0x1E38},
	{0x1E3A, 0x1E3A},
	{0x1E3C, 0x1E3C},
	{0x1E3E, 0x1E3E},
	{0x1E40, 0x1E40},
	{0x1E42, 0x1E42},
	{0x1E44, 0x1E44},
	{0x1E46, 0x1E46},
	{0x1E48, 0x1E48},
	{0x1E4A, 0x1E4A},
	{0x1E4C, 0x1E4C},
	{0x1E4E, 0x1E4E},
	{0x1E50, 0x1E50},
	{0x1E52, 0x1E52},
	{0x1E54, 0x1E54},
	{0x1E56, 0x1E56},
	{0x1E58, 0x1E58},
	{0x1E5A, 0x1E5A},
	{0x1E5C, 0x1E5C},
	{0x1E5E, 0x1E5E},
	{0x1E60, 0x1E60},
	{0x1E62, 0x1E62},
	{0x1E64, 0x1E64},
	{0x1E66, 0x1E66},
	{0x1E68, 0x1E68},
	{0x1E6A, 0x1E6A},
	{0x1E6C, 0x1E6C},
	{0x1E6E, 0x1E6E},
	{0x1E70, 0x1E70},
	{0x1E72, 0x1E72},
	{0x1E74, 0x1E74},
	{0x1E76, 0x1E76},
	{0x1E78, 0x1E78},
	{0x1E7A, 0x1E7A},
	{0x1E7C, 0x1E7C},
	{0x1E7E, 0x1E7E},
	{0x1E80, 0x1E80},
	{0x1E82, 0x1E82},
	{0x1E84, 0x1E84},
	{0x1E86, 0x1E86},
	{0x1E88, 0x1E88},
	{0x1E8A, 0x1E8A},
	{0x1E8C, 0x1E8C},
	{0x1E8E, 0x1E8E},
	{0x1E90, 0x1E90},
	{0x1E92, 0x1E92},
	{0x1E94, 0x1E94},
	{0x1E9E, 0x1E9E},
	{0x1EA0, 0x1EA0},
	{0x1EA2, 0x1EA2},
	{0x1EA4, 0x1EA4},
	{0x1EA6, 0x1EA6},
	{0x1EA8, 0x1EA8},
	{0x1EAA, 0x1EAA},
	{0x1EAC, 0x1EAC},
	{0x1EAE, 0x1EAE},
	{0x1EB0, 0x1EB0},
	{0x1EB2, 0x1EB2},
	{0x1EB4, 0x1EB4},
	{0x1EB6, 0x1EB6},
	{0x1EB8, 0x1EB8},
	{0x1EBA, 0x1EBA},
	{0x1EBC, 0x1EBC},
	{0x1EBE, 0x1EBE},
	{0x1EC0, 0x1EC0},
	{0x1EC2, 0x1EC2},
	{0x1EC4, 0x1EC4},
	{0x1EC6, 0x1EC6},
	{0x1EC8, 0x1EC8},
	{0x1ECA, 0x1ECA},
	{0x1ECC, 0x1ECC},
	{0x1ECE, 0x1ECE},
	{0x1ED0, 0x1ED0},
	{0x1ED2, 0x1ED2},
	{0x1ED4, 0x1ED4},
	{0x1ED6, 0x1ED6},
	{0x1ED8, 0x1ED8},
	{0x1EDA, 0x1EDA},
	{0x1EDC, 0x1EDC},
	{0x1EDE, 0x1EDE},
	{0x1EE0, 0x1EE0},
	{0x1EE2, 0x1EE2},
	{0x1EE4, 0x1EE4},
	{0x1EE6, 0x1EE6},
	{0x1EE8, 0x1EE8},
	{0x1EEA, 0x1EEA},
	{0x1EEC, 0x1EEC},
	{0x1EEE, 0x1EEE},
	{0x1EF0, 0x1EF0},
	{0x1EF2, 0x1EF2},
	{0x1EF4, 0x1EF4},
	{0x1EF6, 0x1EF6},
	{0x1EF8, 0x1EF8},
	{0x1EFA, 0x1EFA},
	{0x1EFC, 0x1EFC},
	{0x1EFE, 0x1EFE},
	{0x1F08, 0x1F0F},
	{0x1F18, 0x1F1D},
	{0x1F28, 0x1F2F},
	{0x1F38, 0x1F3F},
	{0x1F48, 0x1F4D},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F5F},
	{0x1F68, 0x1F6F},
	{0x1F88, 0x1F8F},
	{0x1F98, 0x1F9F},
	{0x1FA8, 0x1FAF},
	{0x1FB8, 0x1FBC},
	{0x1FC8, 0x1FCC},
	{0x1FD8, 0x1FDB},
	{0x1FE8, 0x1FEC},
	{0x1FF8, 0x1FFC},
	{0x2126, 0x2126},
	{0x212A, 0x212B},
	{0x2132, 0x2132},
	{0x2160, 0x216F},
	{0x2183, 0x2183},
	{0x24B6, 0x24CF},
	{0x2C00, 0x2C2F},
	{0x2C60, 0x2C60},
	{0x2C62, 0x2C64},
	{0x2C67, 0x2C67},
	{0x2C69, 0x2C69},
	{0x2C6B, 0x2C6B},
	{0x2C6D, 0x2C70},
	{0x2C72, 0x2C72},
	{0x2C75, 0x2C75},
	{0x2C7E, 0x2C80},
	{0x2C82, 0x2C82},
	{0x2C84, 0x2C84},
	{0x2C86, 0x2C86},
	{0x2C88, 0x2C88},
	{0x2C8A, 0x2C8A},
	{0x2C8C, 0x2C8C},
	{0x2C8E, 0x2C8E},
	{0x2C90, 0x2C90},
	{0x2C92, 0x2C92},
	{0x2C94, 0x2C94},
	{0x2C96, 0x2C96},
	{0x2C98, 0x2C98},
	{0x2C9A, 0x2C9A},
	{0x2C9C, 0x2C9C},
	{0x2C9E, 0x2C9E},
	{0x2CA0, 0x2CA0},
	{0x2CA2, 0x2CA2},
	{0x2CA4, 0x2CA4},
	{0x2CA6, 0x2CA6},
	{0x2CA8, 0x2CA8},
	{0x2CAA, 0x2CAA},
	{0x2CAC, 0x2CAC},
	{0x2CAE, 0x2CAE},
	{0x2CB0, 0x2CB0},
	{0x2CB2, 0x2CB2},
	{0x2CB4, 0x2CB4},
	{0x2CB6, 0x2CB6},
	{0x2CB8, 0x2CB8},
	{0x2CBA, 0x2CBA},
	{0x2CBC, 0x2CBC},
	{0x2CBE, 0x2CBE},
	{0x2CC0, 0x2CC0},
	{0x2CC2, 0x2CC2},
	{0x2CC4, 0x2CC4},
	{0x2CC6, 0x2CC6},
	{0x2CC8, 0x2CC8},
	{0x2CCA, 0x2CCA},
	{0x2CCC, 0x2CCC},
	{0x2CCE, 0x2CCE},
	{0x2CD0, 0x2CD0},
	{0x2CD2, 0x2CD2},
	{0x2CD4, 0x2CD4},
	{0x2CD6, 0x2CD6},
	{0x2CD8, 0x2CD8},
	{0x2CDA, 0x2CDA},
	{0x2CDC, 0x2CDC},
	{0x2CDE, 0x2CDE},
	{0x2CE0, 0x2CE0},
	{0x2CE2, 0x2CE2},
	{0x2CEB, 0x2CEB},
	{0x2CED, 0x2CED},
	{0x2CF2, 0x2CF2},
	{0xA640, 0xA640},
	{0xA642, 0xA642},
	{0xA644, 0xA644},
	{0xA646, 0xA646},
	{0xA648, 0xA648},
	{0xA64A, 0xA64A},
	{0xA64C, 0xA64C},
	{0xA64E, 0xA64E},
	{0xA650, 0xA650},
	{0xA652, 0xA652},
	{0xA654, 0xA654},
	{0xA656, 0xA656},
	{0xA658, 0xA658},
	{0xA65A, 0xA65A},
	{0xA65C, 0xA65C},
	{0xA65E, 0xA65E},
	{0xA660, 0xA660},
	{0xA662, 0xA662},
	{0xA664, 0xA664},
	{0xA666, 0xA666},
	{0xA668, 0xA668},
	{0xA66A, 0xA66A},
	{0xA66C, 0xA66C},
	{0xA680, 0xA680},
	{0xA682, 0xA682},
	{0xA684, 0xA684},
	{0xA686, 0xA686},
	{0xA688, 0xA688},
	{0xA68A, 0xA68A},
	{0xA68C, 0xA68C},
	{0xA68E, 0xA68E},
	{0xA690, 0xA690},
	{0xA692, 0xA692},
	{0xA694, 0xA694},
	{0xA696, 0xA696},
	{0xA698, 0xA698},
	{0xA69A, 0xA69A},
	{0xA722, 0xA722},
	{0xA724, 0xA724},
	{0xA726, 0xA726},
	{0xA728, 0xA728},
	{0xA72A, 0xA72A},
	{0xA72C, 0xA72C},
	{0xA72E, 0xA72E},
	{0xA732, 0xA732},
	{0xA734, 0xA734},
	{0xA736, 0xA736},
	{0xA738, 0xA738},
	{0xA73A, 0xA73A},
	{0xA73C, 0xA73C},
	{0xA73E, 0xA73E},
	{0xA740, 0xA740},
	{0xA742, 0xA742},
	{0xA744, 0xA744},
	{0xA746, 0xA746},
	{0xA748, 0xA748},
	{0xA74A, 0xA74A},
	{0xA74C, 0xA74C},
	{0xA74E, 0xA74E},
	{0xA750, 0xA750},
	{0xA752, 0xA752},
	{0xA754, 0xA754},
	{0xA756, 0xA756},
	{0xA758, 0xA758},
	{0xA75A, 0xA75A},
	{0xA75C, 0xA75C},
	{0xA75E, 0xA75E},
	{0xA760, 0xA760},
	{0xA762, 0xA762},
	{0xA764, 0xA764},
	{0xA766, 0xA766},
	{0xA768, 0xA768},
	{0xA76A, 0xA76A},
	{0xA76C, 0xA76C},
	{0xA76E, 0xA76E},
	{0xA779, 0xA779},
	{0xA77B, 0xA77B},
	{0xA77D, 0xA77E},
	{0xA780, 0xA780},
	{0xA782, 0xA782},
	{0xA784, 0xA784},
	{0xA786, 0xA786},
	{0xA78B, 0xA78B},
	{0xA78D, 0xA78D},
	{0xA790, 0xA790},
	{0xA792, 0xA792},
	{0xA796, 0xA796},
	{0xA798, 0xA798},
	{0xA79A, 0xA79A},
	{0xA79C, 0xA79C},
	{0xA79E, 0xA79E},
	{0xA7A0, 0xA7A0},
	{0xA7A2, 0xA7A2},
	{0xA7A4, 0xA7A4},
	{0xA7A6, 0xA7A6},
	{0xA7A8, 0xA7A8},
	{0xA7AA, 0xA7AE},
	{0xA7B0, 0xA7B4},
	{0xA7B6, 0xA7B6},
	{0xA7B8, 0xA7B8},
	{0xA7BA, 0xA7BA},
	{0xA7BC, 0xA7BC},
	{0xA7BE, 0xA7BE},
	{0xA7C0, 0xA7C0},
	{0xA7C2, 0xA7C2},
	{0xA7C4, 0xA7C7},
	{0xA7C9, 0xA7C9},
	{0xA7CB, 0xA7CC},
	{0xA7CE, 0xA7CE},
	{0xA7D0, 0xA7D0},
	{0xA7D2, 0xA7D2},
	{0xA7D4, 0xA7D4},
	{0xA7D6, 0xA7D6},
	{0xA7D8, 0xA7D8},
	{0xA7DA, 0xA7DA},
	{0xA7DC, 0xA7DC},
	{0xA7F5, 0xA7F5},
	{0xFF21, 0xFF3A},
	{0x10400, 0x10427},
	{0x104B0, 0x104D3},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10C80, 0x10CB2},
	{0x10D50, 0x10D65},
	{0x118A0, 0x118BF},
	{0x16E40, 0x16E5F},
	{0x16EA0, 0x16EB8},
	{0x1E900, 0x1E921},
};

static const UnicodeRange kRanges_Changes_When_NFKC_Casefolded[] = {
	{0x41, 0x5A},
	{0xA0, 0xA0},
	{0xA8, 0xA8},
	{0xAA, 0xAA},
	{0xAD, 0xAD},
	{0xAF, 0xAF},
	{0xB2, 0xB5},
	{0xB8, 0xBA},
	{0xBC, 0xBE},
	{0xC0, 0xD6},
	{0xD8, 0xDF},
	{0x100, 0x100},
	{0x102, 0x102},
	{0x104, 0x104},
	{0x106, 0x106},
	{0x108, 0x108},
	{0x10A, 0x10A},
	{0x10C, 0x10C},
	{0x10E, 0x10E},
	{0x110, 0x110},
	{0x112, 0x112},
	{0x114, 0x114},
	{0x116, 0x116},
	{0x118, 0x118},
	{0x11A, 0x11A},
	{0x11C, 0x11C},
	{0x11E, 0x11E},
	{0x120, 0x120},
	{0x122, 0x122},
	{0x124, 0x124},
	{0x126, 0x126},
	{0x128, 0x128},
	{0x12A, 0x12A},
	{0x12C, 0x12C},
	{0x12E, 0x12E},
	{0x130, 0x130},
	{0x132, 0x134},
	{0x136, 0x136},
	{0x139, 0x139},
	{0x13B, 0x13B},
	{0x13D, 0x13D},
	{0x13F, 0x141},
	{0x143, 0x143},
	{0x145, 0x145},
	{0x147, 0x147},
	{0x149, 0x14A},
	{0x14C, 0x14C},
	{0x14E, 0x14E},
	{0x150, 0x150},
	{0x152, 0x152},
	{0x154, 0x154},
	{0x156, 0x156},
	{0x158, 0x158},
	{0x15A, 0x15A},
	{0x15C, 0x15C},
	{0x15E, 0x15E},
	{0x160, 0x160},
	{0x162, 0x162},
	{0x164, 0x164},
	{0x166, 0x166},
	{0x168, 0x168},
	{0x16A, 0x16A},
	{0x16C, 0x16C},
	{0x16E, 0x16E},
	{0x170, 0x170},
	{0x172, 0x172},
	{0x174, 0x174},
	{0x176, 0x176},
	{0x178, 0x179},
	{0x17B, 0x17B},
	{0x17D, 0x17D},
	{0x17F, 0x17F},
	{0x181, 0x182},
	{0x184, 0x184},
	{0x186, 0x187},
	{0x189, 0x18B},
	{0x18E, 0x191},
	{0x193, 0x194},
	{0x196, 0x198},
	{0x19C, 0x19D},
	{0x19F, 0x1A0},
	{0x1A2, 0x1A2},
	{0x1A4, 0x1A4},
	{0x1A6, 0x1A7},
	{0x1A9, 0x1A9},
	{0x1AC, 0x1AC},
	{0x1AE, 0x1AF},
	{0x1B1, 0x1B3},
	{0x1B5, 0x1B5},
	{0x1B7, 0x1B8},
	{0x1BC, 0x1BC},
	{0x1C4, 0x1CD},
	{0x1CF, 0x1CF},
	{0x1D1, 0x1D1},
	{0x1D3, 0x1D3},
	{0x1D5, 0x1D5},
	{0x1D7, 0x1D7},
	{0x1D9, 0x1D9},
	{0x1DB, 0x1DB},
	{0x1DE, 0x1DE},
	{0x1E0, 0x1E0},
	{0x1E2, 0x1E2},
	{0x1E4, 0x1E4},
	{0x1E6, 0x1E6},
	{0x1E8, 0x1E8},
	{0x1EA, 0x1EA},
	{0x1EC, 0x1EC},
	{0x1EE, 0x1EE},
	{0x1F1, 0x1F4},
	{0x1F6, 0x1F8},
	{0x1FA, 0x1FA},
	{0x1FC, 0x1FC},
	{0x1FE, 0x1FE},
	{0x200, 0x200},
	{0x202, 0x202},
	{0x204, 0x204},
	{0x206, 0x206},
	{0x208, 0x208},
	{0x20A, 0x20A},
	{0x20C, 0x20C},
	{0x20E, 0x20E},
	{0x210, 0x210},
	{0x212, 0x212},
	{0x214, 0x214},
	{0x216, 0x216},
	{0x218, 0x218},
	{0x21A, 0x21A},
	{0x21C, 0x21C},
	{0x21E, 0x21E},
	{0x220, 0x220},
	{0x222, 0x222},
	{0x224, 0x224},
	{0x226, 0x226},
	{0x228, 0x228},
	{0x22A, 0x22A},
	{0x22C, 0x22C},
	{0x22E, 0x22E},
	{0x230, 0x230},
	{0x232, 0x232},
	{0x23A, 0x23B},
	{0x23D, 0x23E},
	{0x241, 0x241},
	{0x243, 0x246},
	{0x248, 0x248},
	{0x24A, 0x24A},
	{0x24C, 0x24C},
	{0x24E, 0x24E},
	{0x2B0, 0x2B8},
	{0x2D8, 0x2DD},
	{0x2E0, 0x2E4},
	{0x340, 0x341},
	{0x343, 0x345},
	{0x34F, 0x34F},
	{0x370, 0x370},
	{0x372, 0x372},
	{0x374, 0x374},
	{0x376, 0x376},
	{0x37A, 0x37A},
	{0x37E, 0x37F},
	{0x384, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x38F},
	{0x391, 0x3A1},
	{0x3A3, 0x3AB},
	{0x3C2, 0x3C2},
	{0x3CF, 0x3D6},
	{0x3D8, 0x3D8},
	{0x3DA, 0x3DA},
	{0x3DC, 0x3DC},
	{0x3DE, 0x3DE},
	{0x3E0, 0x3E0},
	{0x3E2, 0x3E2},
	{0x3E4, 0x3E4},
	{0x3E6, 0x3E6},
	{0x3E8, 0x3E8},
	{0x3EA, 0x3EA},
	{0x3EC, 0x3EC},
	{0x3EE, 0x3EE},
	{0x3F0, 0x3F2},
	{0x3F4, 0x3F5},
	{0x3F7, 0x3F7},
	{0x3F9, 0x3FA},
	{0x3FD, 0x42F},
	{0x460, 0x460},
	{0x462, 0x462},
	{0x464, 0x464},
	{0x466, 0x466},
	{0x468, 0x468},
	{0x46A, 0x46A},
	{0x46C, 0x46C},
	{0x46E, 0x46E},
	{0x470, 0x470},
	{0x472, 0x472},
	{0x474, 0x474},
	{0x476, 0x476},
	{0x478, 0x478},
	{0x47A, 0x47A},
	{0x47C, 0x47C},
	{0x47E, 0x47E},
	{0x480, 0x480},
	{0x48A, 0x48A},
	{0x48C, 0x48C},
	{0x48E, 0x48E},
	{0x490, 0x490},
	{0x492, 0x492},
	{0x494, 0x494},
	{0x496, 0x496},
	{0x498, 0x498},
	{0x49A, 0x49A},
	{0x49C, 0x49C},
	{0x49E, 0x49E},
	{0x4A0, 0x4A0},
	{0x4A2, 0x4A2},
	{0x4A4, 0x4A4},
	{0x4A6, 0x4A6},
	{0x4A8, 0x4A8},
	{0x4AA, 0x4AA},
	{0x4AC, 0x4AC},
	{0x4AE, 0x4AE},
	{0x4B0, 0x4B0},
	{0x4B2, 0x4B2},
	{0x4B4, 0x4B4},
	{0x4B6, 0x4B6},
	{0x4B8, 0x4B8},
	{0x4BA, 0x4BA},
	{0x4BC, 0x4BC},
	{0x4BE, 0x4BE},
	{0x4C0, 0x4C1},
	{0x4C3, 0x4C3},
	{0x4C5, 0x4C5},
	{0x4C7, 0x4C7},
	{0x4C9, 0x4C9},
	{0x4CB, 0x4CB},
	{0x4CD, 0x4CD},
	{0x4D0, 0x4D0},
	{0x4D2, 0x4D2},
	{0x4D4, 0x4D4},
	{0x4D6, 0x4D6},
	{0x4D8, 0x4D8},
	{0x4DA, 0x4DA},
	{0x4DC, 0x4DC},
	{0x4DE, 0x4DE},
	{0x4E0, 0x4E0},
	{0x4E2, 0x4E2},
	{0x4E4, 0x4E4},
	{0x4E6, 0x4E6},
	{0x4E8, 0x4E8},
	{0x4EA, 0x4EA},
	{0x4EC, 0x4EC},
	{0x4EE, 0x4EE},
	{0x4F0, 0x4F0},
	{0x4F2, 0x4F2},
	{0x4F4, 0x4F4},
	{0x4F6, 0x4F6},
	{0x4F8, 0x4F8},
	{0x4FA, 0x4FA},
	{0x4FC, 0x4FC},
	{0x4FE, 0x4FE},
	{0x500, 0x500},
	{0x502, 0x502},
	{0x504, 0x504},
	{0x506, 0x506},
	{0x508, 0x508},
	{0x50A, 0x50A},
	{0x50C, 0x50C},
	{0x50E, 0x50E},
	{0x510, 0x510},
	{0x512, 0x512},
	{0x514, 0x514},
	{0x516, 0x516},
	{0x518, 0x518},
	{0x51A, 0x51A},
	{0x51C, 0x51C},
	{0x51E, 0x51E},
	{0x520, 0x520},
	{0x522, 0x522},
	{0x524, 0x524},
	{0x526, 0x526},
	{0x528, 0x528},
	{0x52A, 0x52A},
	{0x52C, 0x52C},
	{0x52E, 0x52E},
	{0x531, 0x556},
	{0x587, 0x587},
	{0x61C, 0x61C},
	{0x675, 0x678},
	{0x958, 0x95F},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9DF},
	{0xA33, 0xA33},
	{0xA36, 0xA36},
	{0xA59, 0xA5B},
	{0xA5E, 0xA5E},
	{0xB5C, 0xB5D},
	{0xE33, 0xE33},
	{0xEB3, 0xEB3},
	{0xEDC, 0xEDD},
	{0xF0C, 0xF0C},
	{0xF43, 0xF43},
	{0xF4D, 0xF4D},
	{0xF52, 0xF52},
	{0xF57, 0xF57},
	{0xF5C, 0xF5C},
	{0xF69, 0xF69},
	{0xF73, 0xF73},
	{0xF75, 0xF79},
	{0xF81, 0xF81},
	{0xF93, 0xF93},
	{0xF9D, 0xF9D},
	{0xFA2, 0xFA2},
	{0xFA7, 0xFA7},
	{0xFAC, 0xFAC},
	{0xFB9, 0xFB9},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10FC, 0x10FC},
	{0x115F, 0x1160},
	{0x13F8, 0x13FD},
	{0x17B4, 0x17B5},
	{0x180B, 0x180F},
	{0x1C80, 0x1C89},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1D2C, 0x1D2E},
	{0x1D30, 0x1D3A},
	{0x1D3C, 0x1D4D},
	{0x1D4F, 0x1D6A},
	{0x1D78, 0x1D78},
	{0x1D9B, 0x1DBF},
	{0x1E00, 0x1E00},
	{0x1E02, 0x1E02},
	{0x1E04, 0x1E04},
	{0x1E06, 0x1E06},
	{0x1E08, 0x1E08},
	{0x1E0A, 0x1E0A},
	{0x1E0C, 0x1E0C},
	{0x1E0E, 0x1E0E},
	{0x1E10, 0x1E10},
	{0x1E12, 0x1E12},
	{0x1E14, 0x1E14},
	{0x1E16, 0x1E16},
	{0x1E18, 0x1E18},
	{0x1E1A, 0x1E1A},
	{0x1E1C, 0x1E1C},
	{0x1E1E, 0x1E1E},
	{0x1E20, 0x1E20},
	{0x1E22, 0x1E22},
	{0x1E24, 0x1E24},
	{0x1E26, 0x1E26},
	{0x1E28, 0x1E28},
	{0x1E2A, 0x1E2A},
	{0x1E2C, 0x1E2C},
	{0x1E2E, 0x1E2E},
	{0x1E30, 0x1E30},
	{0x1E32, 0x1E32},
	{0x1E34, 0x1E34},
	{0x1E36, 0x1E36},
	{0x1E38, 0x1E38},
	{0x1E3A, 0x1E3A},
	{0x1E3C, 0x1E3C},
	{0x1E3E, 0x1E3E},
	{0x1E40, 0x1E40},
	{0x1E42, 0x1E42},
	{0x1E44, 0x1E44},
	{0x1E46, 0x1E46},
	{0x1E48, 0x1E48},
	{0x1E4A, 0x1E4A},
	{0x1E4C, 0x1E4C},
	{0x1E4E, 0x1E4E},
	{0x1E50, 0x1E50},
	{0x1E52, 0x1E52},
	{0x1E54, 0x1E54},
	{0x1E56, 0x1E56},
	{0x1E58, 0x1E58},
	{0x1E5A, 0x1E5A},
	{0x1E5C, 0x1E5C},
	{0x1E5E, 0x1E5E},
	{0x1E60, 0x1E60},
	{0x1E62, 0x1E62},
	{0x1E64, 0x1E64},
	{0x1E66, 0x1E66},
	{0x1E68, 0x1E68},
	{0x1E6A, 0x1E6A},
	{0x1E6C, 0x1E6C},
	{0x1E6E, 0x1E6E},
	{0x1E70, 0x1E70},
	{0x1E72, 0x1E72},
	{0x1E74, 0x1E74},
	{0x1E76, 0x1E76},
	{0x1E78, 0x1E78},
	{0x1E7A, 0x1E7A},
	{0x1E7C, 0x1E7C},
	{0x1E7E, 0x1E7E},
	{0x1E80, 0x1E80},
	{0x1E82, 0x1E82},
	{0x1E84, 0x1E84},
	{0x1E86, 0x1E86},
	{0x1E88, 0x1E88},
	{0x1E8A, 0x1E8A},
	{0x1E8C, 0x1E8C},
	{0x1E8E, 0x1E8E},
	{0x1E90, 0x1E90},
	{0x1E92, 0x1E92},
	{0x1E94, 0x1E94},
	{0x1E9A, 0x1E9B},
	{0x1E9E, 0x1E9E},
	{0x1EA0, 0x1EA0},
	{0x1EA2, 0x1EA2},
	{0x1EA4, 0x1EA4},
	{0x1EA6, 0x1EA6},
	{0x1EA8, 0x1EA8},
	{0x1EAA, 0x1EAA},
	{0x1EAC, 0x1EAC},
	{0x1EAE, 0x1EAE},
	{0x1EB0, 0x1EB0},
	{0x1EB2, 0x1EB2},
	{0x1EB4, 0x1EB4},
	{0x1EB6, 0x1EB6},
	{0x1EB8, 0x1EB8},
	{0x1EBA, 0x1EBA},
	{0x1EBC, 0x1EBC},
	{0x1EBE, 0x1EBE},
	{0x1EC0, 0x1EC0},
	{0x1EC2, 0x1EC2},
	{0x1EC4, 0x1EC4},
	{0x1EC6, 0x1EC6},
	{0x1EC8, 0x1EC8},
	{0x1ECA, 0x1ECA},
	{0x1ECC, 0x1ECC},
	{0x1ECE, 0x1ECE},
	{0x1ED0, 0x1ED0},
	{0x1ED2, 0x1ED2},
	{0x1ED4, 0x1ED4},
	{0x1ED6, 0x1ED6},
	{0x1ED8, 0x1ED8},
	{0x1EDA, 0x1EDA},
	{0x1EDC, 0x1EDC},
	{0x1EDE, 0x1EDE},
	{0x1EE0, 0x1EE0},
	{0x1EE2, 0x1EE2},
	{0x1EE4, 0x1EE4},
	{0x1EE6, 0x1EE6},
	{0x1EE8, 0x1EE8},
	{0x1EEA, 0x1EEA},
	{0x1EEC, 0x1EEC},
	{0x1EEE, 0x1EEE},
	{0x1EF0, 0x1EF0},
	{0x1EF2, 0x1EF2},
	{0x1EF4, 0x1EF4},
	{0x1EF6, 0x1EF6},
	{0x1EF8, 0x1EF8},
	{0x1EFA, 0x1EFA},
	{0x1EFC, 0x1EFC},
	{0x1EFE, 0x1EFE},
	{0x1F08, 0x1F0F},
	{0x1F18, 0x1F1D},
	{0x1F28, 0x1F2F},
	{0x1F38, 0x1F3F},
	{0x1F48, 0x1F4D},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F5F},
	{0x1F68, 0x1F6F},
	{0x1F71, 0x1F71},
	{0x1F73, 0x1F73},
	{0x1F75, 0x1F75},
	{0x1F77, 0x1F77},
	{0x1F79, 0x1F79},
	{0x1F7B, 0x1F7B},
	{0x1F7D, 0x1F7D},
	{0x1F80, 0x1FAF},
	{0x1FB2, 0x1FB4},
	{0x1FB7, 0x1FC4},
	{0x1FC7, 0x1FCF},
	{0x1FD3, 0x1FD3},
	{0x1FD8, 0x1FDB},
	{0x1FDD, 0x1FDF},
	{0x1FE3, 0x1FE3},
	{0x1FE8, 0x1FEF},
	{0x1FF2, 0x1FF4},
	{0x1FF7, 0x1FFE},
	{0x2000, 0x200F},
	{0x2011, 0x2011},
	{0x2017, 0x2017},
	{0x2024, 0x2026},
	{0x202A, 0x202F},
	{0x2033, 0x2034},
	{0x2036, 0x2037},
	{0x203C, 0x203C},
	{0x203E, 0x203E},
	{0x2047, 0x2049},
	{0x2057, 0x2057},
	{0x205F, 0x2071},
	{0x2074, 0x208E},
	{0x2090, 0x209C},
	{0x20A8, 0x20A8},
	{0x2100, 0x2103},
	{0x2105, 0x2107},
	{0x2109, 0x2113},
	{0x2115, 0x2116},
	{0x2119, 0x211D},
	{0x2120, 0x2122},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x212D},
	{0x212F, 0x2139},
	{0x213B, 0x2140},
	{0x2145, 0x2149},
	{0x2150, 0x217F},
	{0x2183, 0x2183},
	{0x2189, 0x2189},
	{0x222C, 0x222D},
	{0x222F, 0x2230},
	{0x2329, 0x232A},
	{0x2460, 0x24EA},
	{0x2A0C, 0x2A0C},
	{0x2A74, 0x2A76},
	{0x2ADC, 0x2ADC},
	{0x2C00, 0x2C2F},
	{0x2C60, 0x2C60},
	{0x2C62, 0x2C64},
	{0x2C67, 0x2C67},
	{0x2C69, 0x2C69},
	{0x2C6B, 0x2C6B},
	{0x2C6D, 0x2C70},
	{0x2C72, 0x2C72},
	{0x2C75, 0x2C75},
	{0x2C7C, 0x2C80},
	{0x2C82, 0x2C82},
	{0x2C84, 0x2C84},
	{0x2C86, 0x2C86},
	{0x2C88, 0x2C88},
	{0x2C8A, 0x2C8A},
	{0x2C8C, 0x2C8C},
	{0x2C8E, 0x2C8E},
	{0x2C90, 0x2C90},
	{0x2C92, 0x2C92},
	{0x2C94, 0x2C94},
	{0x2C96, 0x2C96},
	{0x2C98, 0x2C98},
	{0x2C9A, 0x2C9A},
	{0x2C9C, 0x2C9C},
	{0x2C9E, 0x2C9E},
	{0x2CA0, 0x2CA0},
	{0x2CA2, 0x2CA2},
	{0x2CA4, 0x2CA4},
	{0x2CA6, 0x2CA6},
	{0x2CA8, 0x2CA8},
	{0x2CAA, 0x2CAA},
	{0x2CAC, 0x2CAC},
	{0x2CAE, 0x2CAE},
	{0x2CB0, 0x2CB0},
	{0x2CB2, 0x2CB2},
	{0x2CB4, 0x2CB4},
	{0x2CB6, 0x2CB6},
	{0x2CB8, 0x2CB8},
	{0x2CBA, 0x2CBA},
	{0x2CBC, 0x2CBC},
	{0x2CBE, 0x2CBE},
	{0x2CC0, 0x2CC0},
	{0x2CC2, 0x2CC2},
	{0x2CC4, 0x2CC4},
	{0x2CC6, 0x2CC6},
	{0x2CC8, 0x2CC8},
	{0x2CCA, 0x2CCA},
	{0x2CCC, 0x2CCC},
	{0x2CCE, 0x2CCE},
	{0x2CD0, 0x2CD0},
	{0x2CD2, 0x2CD2},
	{0x2CD4, 0x2CD4},
	{0x2CD6, 0x2CD6},
	{0x2CD8, 0x2CD8},
	{0x2CDA, 0x2CDA},
	{0x2CDC, 0x2CDC},
	{0x2CDE, 0x2CDE},
	{0x2CE0, 0x2CE0},
	{0x2CE2, 0x2CE2},
	{0x2CEB, 0x2CEB},
	{0x2CED, 0x2CED},
	{0x2CF2, 0x2CF2},
	{0x2D6F, 0x2D6F},
	{0x2E9F, 0x2E9F},
	{0x2EF3, 0x2EF3},
	{0x2F00, 0x2FD5},
	{0x3000, 0x3000},
	{0x3036, 0x3036},
	{0x3038, 0x303A},
	{0x309B, 0x309C},
	{0x309F, 0x309F},
	{0x30FF, 0x30FF},
	{0x3131, 0x318E},
	{0x3192, 0x319F},
	{0x3200, 0x321E},
	{0x3220, 0x3247},
	{0x3250, 0x327E},
	{0x3280, 0x33FF},
	{0xA640, 0xA640},
	{0xA642, 0xA642},
	{0xA644, 0xA644},
	{0xA646, 0xA646},
	{0xA648, 0xA648},
	{0xA64A, 0xA64A},
	{0xA64C, 0xA64C},
	{0xA64E, 0xA64E},
	{0xA650, 0xA650},
	{0xA652, 0xA652},
	{0xA654, 0xA654},
	{0xA656, 0xA656},
	{0xA658, 0xA658},
	{0xA65A, 0xA65A},
	{0xA65C, 0xA65C},
	{0xA65E, 0xA65E},
	{0xA660, 0xA660},
	{0xA662, 0xA662},
	{0xA664, 0xA664},
	{0xA666, 0xA666},
	{0xA668, 0xA668},
	{0xA66A, 0xA66A},
	{0xA66C, 0xA66C},
	{0xA680, 0xA680},
	{0xA682, 0xA682},
	{0xA684, 0xA684},
	{0xA686, 0xA686},
	{0xA688, 0xA688},
	{0xA68A, 0xA68A},
	{0xA68C, 0xA68C},
	{0xA68E, 0xA68E},
	{0xA690, 0xA690},
	{0xA692, 0xA692},
	{0xA694, 0xA694},
	{0xA696, 0xA696},
	{0xA698, 0xA698},
	{0xA69A, 0xA69A},
	{0xA69C, 0xA69D},
	{0xA722, 0xA722},
	{0xA724, 0xA724},
	{0xA726, 0xA726},
	{0xA728, 0xA728},
	{0xA72A, 0xA72A},
	{0xA72C, 0xA72C},
	{0xA72E, 0xA72E},
	{0xA732, 0xA732},
	{0xA734, 0xA734},
	{0xA736, 0xA736},
	{0xA738, 0xA738},
	{0xA73A, 0xA73A},
	{0xA73C, 0xA73C},
	{0xA73E, 0xA73E},
	{0xA740, 0xA740},
	{0xA742, 0xA742},
	{0xA744, 0xA744},
	{0xA746, 0xA746},
	{0xA748, 0xA748},
	{0xA74A, 0xA74A},
	{0xA74C, 0xA74C},
	{0xA74E, 0xA74E},
	{0xA750, 0xA750},
	{0xA752, 0xA752},
	{0xA754, 0xA754},
	{0xA756, 0xA756},
	{0xA758, 0xA758},
	{0xA75A, 0xA75A},
	{0xA75C, 0xA75C},
	{0xA75E, 0xA75E},
	{0xA760, 0xA760},
	{0xA762, 0xA762},
	{0xA764, 0xA764},
	{0xA766, 0xA766},
	{0xA768, 0xA768},
	{0xA76A, 0xA76A},
	{0xA76C, 0xA76C},
	{0xA76E, 0xA76E},
	{0xA770, 0xA770},
	{0xA779, 0xA779},
	{0xA77B, 0xA77B},
	{0xA77D, 0xA77E},
	{0xA780, 0xA780},
	{0xA782, 0xA782},
	{0xA784, 0xA784},
	{0xA786, 0xA786},
	{0xA78B, 0xA78B},
	{0xA78D, 0xA78D},
	{0xA790, 0xA790},
	{0xA792, 0xA792},
	{0xA796, 0xA796},
	{0xA798, 0xA798},
	{0xA79A, 0xA79A},
	{0xA79C, 0xA79C},
	{0xA79E, 0xA79E},
	{0xA7A0, 0xA7A0},
	{0xA7A2, 0xA7A2},
	{0xA7A4, 0xA7A4},
	{0xA7A6, 0xA7A6},
	{0xA7A8, 0xA7A8},
	{0xA7AA, 0xA7AE},
	{0xA7B0, 0xA7B4},
	{0xA7B6, 0xA7B6},
	{0xA7B8, 0xA7B8},
	{0xA7BA, 0xA7BA},
	{0xA7BC, 0xA7BC},
	{0xA7BE, 0xA7BE},
	{0xA7C0, 0xA7C0},
	{0xA7C2, 0xA7C2},
	{0xA7C4, 0xA7C7},
	{0xA7C9, 0xA7C9},
	{0xA7CB, 0xA7CC},
	{0xA7CE, 0xA7CE},
	{0xA7D0, 0xA7D0},
	{0xA7D2, 0xA7D2},
	{0xA7D4, 0xA7D4},
	{0xA7D6, 0xA7D6},
	{0xA7D8, 0xA7D8},
	{0xA7DA, 0xA7DA},
	{0xA7DC, 0xA7DC},
	{0xA7F1, 0xA7F5},
	{0xA7F8, 0xA7F9},
	{0xAB5C, 0xAB5F},
	{0xAB69, 0xAB69},
	{0xAB70, 0xABBF},
	{0xF900, 0xFA0D},
	{0xFA10, 0xFA10},
	{0xFA12, 0xFA12},
	{0xFA15, 0xFA1E},
	{0xFA20, 0xFA20},
	{0xFA22, 0xFA22},
	{0xFA25, 0xFA26},
	{0xFA2A, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB1D},
	{0xFB1F, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFBB1},
	{0xFBD3, 0xFD3D},
	{0xFD50, 0xFD8F},
	{0xFD92, 0xFDC7},
	{0xFDF0, 0xFDFC},
	{0xFE00, 0xFE19},
	{0xFE30, 0xFE44},
	{0xFE47, 0xFE52},
	{0xFE54, 0xFE66},
	{0xFE68, 0xFE6B},
	{0xFE70, 0xFE72},
	{0xFE74, 0xFE74},
	{0xFE76, 0xFEFC},
	{0xFEFF, 0xFEFF},
	{0xFF01, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0xFFE0, 0xFFE6},
	{0xFFE8, 0xFFEE},
	{0xFFF0, 0xFFF8},
	{0x10400, 0x10427},
	{0x104B0, 0x104D3},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10781, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10C80, 0x10CB2},
	{0x10D50, 0x10D65},
	{0x118A0, 0x118BF},
	{0x16E40, 0x16E5F},
	{0x16EA0, 0x16EB8},
	{0x1BCA0, 0x1BCA3},
	{0x1CCD6, 0x1CCF9},
	{0x1D15E, 0x1D164},
	{0x1D173, 0x1D17A},
	{0x1D1BB, 0x1D1C0},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D7CB},
	{0x1D7CE, 0x1D7FF},
	{0x1E030, 0x1E06D},
	{0x1E900, 0x1E921},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1F100, 0x1F10A},
	{0x1F110, 0x1F12E},
	{0x1F130, 0x1F14F},
	{0x1F16A, 0x1F16C},
	{0x1F190, 0x1F190},
	{0x1F200, 0x1F202},
	{0x1F210, 0x1F23B},
	{0x1F240, 0x1F248},
	{0x1F250, 0x1F251},
	{0x1FBF0, 0x1FBF9},
	{0x2F800, 0x2FA1D},
	{0xE0000, 0xE0FFF},
};

static const UnicodeRange kRanges_Changes_When_Titlecased[] = {
	{0x61, 0x7A},
	{0xB5, 0xB5},
	{0xDF, 0xF6},
	{0xF8, 0xFF},
	{0x101, 0x101},
	{0x103, 0x103},
	{0x105, 0x105},
	{0x107, 0x107},
	{0x109, 0x109},
	{0x10B, 0x10B},
	{0x10D, 0x10D},
	{0x10F, 0x10F},
	{0x111, 0x111},
	{0x113, 0x113},
	{0x115, 0x115},
	{0x117, 0x117},
	{0x119, 0x119},
	{0x11B, 0x11B},
	{0x11D, 0x11D},
	{0x11F, 0x11F},
	{0x121, 0x121},
	{0x123, 0x123},
	{0x125, 0x125},
	{0x127, 0x127},
	{0x129, 0x129},
	{0x12B, 0x12B},
	{0x12D, 0x12D},
	{0x12F, 0x12F},
	{0x131, 0x131},
	{0x133, 0x133},
	{0x135, 0x135},
	{0x137, 0x137},
	{0x13A, 0x13A},
	{0x13C, 0x13C},
	{0x13E, 0x13E},
	{0x140, 0x140},
	{0x142, 0x142},
	{0x144, 0x144},
	{0x146, 0x146},
	{0x148, 0x149},
	{0x14B, 0x14B},
	{0x14D, 0x14D},
	{0x14F, 0x14F},
	{0x151, 0x151},
	{0x153, 0x153},
	{0x155, 0x155},
	{0x157, 0x157},
	{0x159, 0x159},
	{0x15B, 0x15B},
	{0x15D, 0x15D},
	{0x15F, 0x15F},
	{0x161, 0x161},
	{0x163, 0x163},
	{0x165, 0x165},
	{0x167, 0x167},
	{0x169, 0x169},
	{0x16B, 0x16B},
	{0x16D, 0x16D},
	{0x16F, 0x16F},
	{0x171, 0x171},
	{0x173, 0x173},
	{0x175, 0x175},
	{0x177, 0x177},
	{0x17A, 0x17A},
	{0x17C, 0x17C},
	{0x17E, 0x180},
	{0x183, 0x183},
	{0x185, 0x185},
	{0x188, 0x188},
	{0x18C, 0x18C},
	{0x192, 0x192},
	{0x195, 0x195},
	{0x199, 0x19B},
	{0x19E, 0x19E},
	{0x1A1, 0x1A1},
	{0x1A3, 0x1A3},
	{0x1A5, 0x1A5},
	{0x1A8, 0x1A8},
	{0x1AD, 0x1AD},
	{0x1B0, 0x1B0},
	{0x1B4, 0x1B4},
	{0x1B6, 0x1B6},
	{0x1B9, 0x1B9},
	{0x1BD, 0x1BD},
	{0x1BF, 0x1BF},
	{0x1C4, 0x1C4},
	{0x1C6, 0x1C7},
	{0x1C9, 0x1CA},
	{0x1CC, 0x1CC},
	{0x1CE, 0x1CE},
	{0x1D0, 0x1D0},
	{0x1D2, 0x1D2},
	{0x1D4, 0x1D4},
	{0x1D6, 0x1D6},
	{0x1D8, 0x1D8},
	{0x1DA, 0x1DA},
	{0x1DC, 0x1DD},
	{0x1DF, 0x1DF},
	{0x1E1, 0x1E1},
	{0x1E3, 0x1E3},
	{0x1E5, 0x1E5},
	{0x1E7, 0x1E7},
	{0x1E9, 0x1E9},
	{0x1EB, 0x1EB},
	{0x1ED, 0x1ED},
	{0x1EF, 0x1F1},
	{0x1F3, 0x1F3},
	{0x1F5, 0x1F5},
	{0x1F9, 0x1F9},
	{0x1FB, 0x1FB},
	{0x1FD, 0x1FD},
	{0x1FF, 0x1FF},
	{0x201, 0x201},
	{0x203, 0x203},
	{0x205, 0x205},
	{0x207, 0x207},
	{0x209, 0x209},
	{0x20B, 0x20B},
	{0x20D, 0x20D},
	{0x20F, 0x20F},
	{0x211, 0x211},
	{0x213, 0x213},
	{0x215, 0x215},
	{0x217, 0x217},
	{0x219, 0x219},
	{0x21B, 0x21B},
	{0x21D, 0x21D},
	{0x21F, 0x21F},
	{0x223, 0x223},
	{0x225, 0x225},
	{0x227, 0x227},
	{0x229, 0x229},
	{0x22B, 0x22B},
	{0x22D, 0x22D},
	{0x22F, 0x22F},
	{0x231, 0x231},
	{0x233, 0x233},
	{0x23C, 0x23C},
	{0x23F, 0x240},
	{0x242, 0x242},
	{0x247, 0x247},
	{0x249, 0x249},
	{0x24B, 0x24B},
	{0x24D, 0x24D},
	{0x24F, 0x254},
	{0x256, 0x257},
	{0x259, 0x259},
	{0x25B, 0x25C},
	{0x260, 0x261},
	{0x263, 0x266},
	{0x268, 0x26C},
	{0x26F, 0x26F},
	{0x271, 0x272},
	{0x275, 0x275},
	{0x27D, 0x27D},
	{0x280, 0x280},
	{0x282, 0x283},
	{0x287, 0x28C},
	{0x292, 0x292},
	{0x29D, 0x29E},
	{0x345, 0x345},
	{0x371, 0x371},
	{0x373, 0x373},
	{0x377, 0x377},
	{0x37B, 0x37D},
	{0x390, 0x390},
	{0x3AC, 0x3CE},
	{0x3D0, 0x3D1},
	{0x3D5, 0x3D7},
	{0x3D9, 0x3D9},
	{0x3DB, 0x3DB},
	{0x3DD, 0x3DD},
	{0x3DF, 0x3DF},
	{0x3E1, 0x3E1},
	{0x3E3, 0x3E3},
	{0x3E5, 0x3E5},
	{0x3E7, 0x3E7},
	{0x3E9, 0x3E9},
	{0x3EB, 0x3EB},
	{0x3ED, 0x3ED},
	{0x3EF, 0x3F3},
	{0x3F5, 0x3F5},
	{0x3F8, 0x3F8},
	{0x3FB, 0x3FB},
	{0x430, 0x45F},
	{0x461, 0x461},
	{0x463, 0x463},
	{0x465, 0x465},
	{0x467, 0x467},
	{0x469, 0x469},
	{0x46B, 0x46B},
	{0x46D, 0x46D},
	{0x46F, 0x46F},
	{0x471, 0x471},
	{0x473, 0x473},
	{0x475, 0x475},
	{0x477, 0x477},
	{0x479, 0x479},
	{0x47B, 0x47B},
	{0x47D, 0x47D},
	{0x47F, 0x47F},
	{0x481, 0x481},
	{0x48B, 0x48B},
	{0x48D, 0x48D},
	{0x48F, 0x48F},
	{0x491, 0x491},
	{0x493, 0x493},
	{0x495, 0x495},
	{0x497, 0x497},
	{0x499, 0x499},
	{0x49B, 0x49B},
	{0x49D, 0x49D},
	{0x49F, 0x49F},
	{0x4A1, 0x4A1},
	{0x4A3, 0x4A3},
	{0x4A5, 0x4A5},
	{0x4A7, 0x4A7},
	{0x4A9, 0x4A9},
	{0x4AB, 0x4AB},
	{0x4AD, 0x4AD},
	{0x4AF, 0x4AF},
	{0x4B1, 0x4B1},
	{0x4B3, 0x4B3},
	{0x4B5, 0x4B5},
	{0x4B7, 0x4B7},
	{0x4B9, 0x4B9},
	{0x4BB, 0x4BB},
	{0x4BD, 0x4BD},
	{0x4BF, 0x4BF},
	{0x4C2, 0x4C2},
	{0x4C4, 0x4C4},
	{0x4C6, 0x4C6},
	{0x4C8, 0x4C8},
	{0x4CA, 0x4CA},
	{0x4CC, 0x4CC},
	{0x4CE, 0x4CF},
	{0x4D1, 0x4D1},
	{0x4D3, 0x4D3},
	{0x4D5, 0x4D5},
	{0x4D7, 0x4D7},
	{0x4D9, 0x4D9},
	{0x4DB, 0x4DB},
	{0x4DD, 0x4DD},
	{0x4DF, 0x4DF},
	{0x4E1, 0x4E1},
	{0x4E3, 0x4E3},
	{0x4E5, 0x4E5},
	{0x4E7, 0x4E7},
	{0x4E9, 0x4E9},
	{0x4EB, 0x4EB},
	{0x4ED, 0x4ED},
	{0x4EF, 0x4EF},
	{0x4F1, 0x4F1},
	{0x4F3, 0x4F3},
	{0x4F5, 0x4F5},
	{0x4F7, 0x4F7},
	{0x4F9, 0x4F9},
	{0x4FB, 0x4FB},
	{0x4FD, 0x4FD},
	{0x4FF, 0x4FF},
	{0x501, 0x501},
	{0x503, 0x503},
	{0x505, 0x505},
	{0x507, 0x507},
	{0x509, 0x509},
	{0x50B, 0x50B},
	{0x50D, 0x50D},
	{0x50F, 0x50F},
	{0x511, 0x511},
	{0x513, 0x513},
	{0x515, 0x515},
	{0x517, 0x517},
	{0x519, 0x519},
	{0x51B, 0x51B},
	{0x51D, 0x51D},
	{0x51F, 0x51F},
	{0x521, 0x521},
	{0x523, 0x523},
	{0x525, 0x525},
	{0x527, 0x527},
	{0x529, 0x529},
	{0x52B, 0x52B},
	{0x52D, 0x52D},
	{0x52F, 0x52F},
	{0x561, 0x587},
	{0x13F8, 0x13FD},
	{0x1C80, 0x1C88},
	{0x1C8A, 0x1C8A},
	{0x1D79, 0x1D79},
	{0x1D7D, 0x1D7D},
	{0x1D8E, 0x1D8E},
	{0x1E01, 0x1E01},
	{0x1E03, 0x1E03},
	{0x1E05, 0x1E05},
	{0x1E07, 0x1E07},
	{0x1E09, 0x1E09},
	{0x1E0B, 0x1E0B},
	{0x1E0D, 0x1E0D},
	{0x1E0F, 0x1E0F},
	{0x1E11, 0x1E11},
	{0x1E13, 0x1E13},
	{0x1E15, 0x1E15},
	{0x1E17, 0x1E17},
	{0x1E19, 0x1E19},
	{0x1E1B, 0x1E1B},
	{0x1E1D, 0x1E1D},
	{0x1E1F, 0x1E1F},
	{0x1E21, 0x1E21},
	{0x1E23, 0x1E23},
	{0x1E25, 0x1E25},
	{0x1E27, 0x1E27},
	{0x1E29, 0x1E29},
	{0x1E2B, 0x1E2B},
	{0x1E2D, 0x1E2D},
	{0x1E2F, 0x1E2F},
	{0x1E31, 0x1E31},
	{0x1E33, 0x1E33},
	{0x1E35, 0x1E35},
	{0x1E37, 0x1E37},
	{0x1E39, 0x1E39},
	{0x1E3B, 0x1E3B},
	{0x1E3D, 0x1E3D},
	{0x1E3F, 0x1E3F},
	{0x1E41, 0x1E41},
	{0x1E43, 0x1E43},
	{0x1E45, 0x1E45},
	{0x1E47, 0x1E47},
	{0x1E49, 0x1E49},
	{0x1E4B, 0x1E4B},
	{0x1E4D, 0x1E4D},
	{0x1E4F, 0x1E4F},
	{0x1E51, 0x1E51},
	{0x1E53, 0x1E53},
	{0x1E55, 0x1E55},
	{0x1E57, 0x1E57},
	{0x1E59, 0x1E59},
	{0x1E5B, 0x1E5B},
	{0x1E5D, 0x1E5D},
	{0x1E5F, 0x1E5F},
	{0x1E61, 0x1E61},
	{0x1E63, 0x1E63},
	{0x1E65, 0x1E65},
	{0x1E67, 0x1E67},
	{0x1E69, 0x1E69},
	{0x1E6B, 0x1E6B},
	{0x1E6D, 0x1E6D},
	{0x1E6F, 0x1E6F},
	{0x1E71, 0x1E71},
	{0x1E73, 0x1E73},
	{0x1E75, 0x1E75},
	{0x1E77, 0x1E77},
	{0x1E79, 0x1E79},
	{0x1E7B, 0x1E7B},
	{0x1E7D, 0x1E7D},
	{0x1E7F, 0x1E7F},
	{0x1E81, 0x1E81},
	{0x1E83, 0x1E83},
	{0x1E85, 0x1E85},
	{0x1E87, 0x1E87},
	{0x1E89, 0x1E89},
	{0x1E8B, 0x1E8B},
	{0x1E8D, 0x1E8D},
	{0x1E8F, 0x1E8F},
	{0x1E91, 0x1E91},
	{0x1E93, 0x1E93},
	{0x1E95, 0x1E9B},
	{0x1EA1, 0x1EA1},
	{0x1EA3, 0x1EA3},
	{0x1EA5, 0x1EA5},
	{0x1EA7, 0x1EA7},
	{0x1EA9, 0x1EA9},
	{0x1EAB, 0x1EAB},
	{0x1EAD, 0x1EAD},
	{0x1EAF, 0x1EAF},
	{0x1EB1, 0x1EB1},
	{0x1EB3, 0x1EB3},
	{0x1EB5, 0x1EB5},
	{0x1EB7, 0x1EB7},
	{0x1EB9, 0x1EB9},
	{0x1EBB, 0x1EBB},
	{0x1EBD, 0x1EBD},
	{0x1EBF, 0x1EBF},
	{0x1EC1, 0x1EC1},
	{0x1EC3, 0x1EC3},
	{0x1EC5, 0x1EC5},
	{0x1EC7, 0x1EC7},
	{0x1EC9, 0x1EC9},
	{0x1ECB, 0x1ECB},
	{0x1ECD, 0x1ECD},
	{0x1ECF, 0x1ECF},
	{0x1ED1, 0x1ED1},
	{0x1ED3, 0x1ED3},
	{0x1ED5, 0x1ED5},
	{0x1ED7, 0x1ED7},
	{0x1ED9, 0x1ED9},
	{0x1EDB, 0x1EDB},
	{0x1EDD, 0x1EDD},
	{0x1EDF, 0x1EDF},
	{0x1EE1, 0x1EE1},
	{0x1EE3, 0x1EE3},
	{0x1EE5, 0x1EE5},
	{0x1EE7, 0x1EE7},
	{0x1EE9, 0x1EE9},
	{0x1EEB, 0x1EEB},
	{0x1EED, 0x1EED},
	{0x1EEF, 0x1EEF},
	{0x1EF1, 0x1EF1},
	{0x1EF3, 0x1EF3},
	{0x1EF5, 0x1EF5},
	{0x1EF7, 0x1EF7},
	{0x1EF9, 0x1EF9},
	{0x1EFB, 0x1EFB},
	{0x1EFD, 0x1EFD},
	{0x1EFF, 0x1F07},
	{0x1F10, 0x1F15},
	{0x1F20, 0x1F27},
	{0x1F30, 0x1F37},
	{0x1F40, 0x1F45},
	{0x1F50, 0x1F57},
	{0x1F60, 0x1F67},
	{0x1F70, 0x1F7D},
	{0x1F80, 0x1F87},
	{0x1F90, 0x1F97},
	{0x1FA0, 0x1FA7},
	{0x1FB0, 0x1FB4},
	{0x1FB6, 0x1FB7},
	{0x1FBE, 0x1FBE},
	{0x1FC2, 0x1FC4},
	{0x1FC6, 0x1FC7},
	{0x1FD0, 0x1FD3},
	{0x1FD6, 0x1FD7},
	{0x1FE0, 0x1FE7},
	{0x1FF2, 0x1FF4},
	{0x1FF6, 0x1FF7},
	{0x214E, 0x214E},
	{0x2170, 0x217F},
	{0x2184, 0x2184},
	{0x24D0, 0x24E9},
	{0x2C30, 0x2C5F},
	{0x2C61, 0x2C61},
	{0x2C65, 0x2C66},
	{0x2C68, 0x2C68},
	{0x2C6A, 0x2C6A},
	{0x2C6C, 0x2C6C},
	{0x2C73, 0x2C73},
	{0x2C76, 0x2C76},
	{0x2C81, 0x2C81},
	{0x2C83, 0x2C83},
	{0x2C85, 0x2C85},
	{0x2C87, 0x2C87},
	{0x2C89, 0x2C89},
	{0x2C8B, 0x2C8B},
	{0x2C8D, 0x2C8D},
	{0x2C8F, 0x2C8F},
	{0x2C91, 0x2C91},
	{0x2C93, 0x2C93},
	{0x2C95, 0x2C95},
	{0x2C97, 0x2C97},
	{0x2C99, 0x2C99},
	{0x2C9B, 0x2C9B},
	{0x2C9D, 0x2C9D},
	{0x2C9F, 0x2C9F},
	{0x2CA1, 0x2CA1},
	{0x2CA3, 0x2CA3},
	{0x2CA5, 0x2CA5},
	{0x2CA7, 0x2CA7},
	{0x2CA9, 0x2CA9},
	{0x2CAB, 0x2CAB},
	{0x2CAD, 0x2CAD},
	{0x2CAF, 0x2CAF},
	{0x2CB1, 0x2CB1},
	{0x2CB3, 0x2CB3},
	{0x2CB5, 0x2CB5},
	{0x2CB7, 0x2CB7},
	{0x2CB9, 0x2CB9},
	{0x2CBB, 0x2CBB},
	{0x2CBD, 0x2CBD},
	{0x2CBF, 0x2CBF},
	{0x2CC1, 0x2CC1},
	{0x2CC3, 0x2CC3},
	{0x2CC5, 0x2CC5},
	{0x2CC7, 0x2CC7},
	{0x2CC9, 0x2CC9},
	{0x2CCB, 0x2CCB},
	{0x2CCD, 0x2CCD},
	{0x2CCF, 0x2CCF},
	{0x2CD1, 0x2CD1},
	{0x2CD3, 0x2CD3},
	{0x2CD5, 0x2CD5},
	{0x2CD7, 0x2CD7},
	{0x2CD9, 0x2CD9},
	{0x2CDB, 0x2CDB},
	{0x2CDD, 0x2CDD},
	{0x2CDF, 0x2CDF},
	{0x2CE1, 0x2CE1},
	{0x2CE3, 0x2CE3},
	{0x2CEC, 0x2CEC},
	{0x2CEE, 0x2CEE},
	{0x2CF3, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0xA641, 0xA641},
	{0xA643, 0xA643},
	{0xA645, 0xA645},
	{0xA647, 0xA647},
	{0xA649, 0xA649},
	{0xA64B, 0xA64B},
	{0xA64D, 0xA64D},
	{0xA64F, 0xA64F},
	{0xA651, 0xA651},
	{0xA653, 0xA653},
	{0xA655, 0xA655},
	{0xA657, 0xA657},
	{0xA659, 0xA659},
	{0xA65B, 0xA65B},
	{0xA65D, 0xA65D},
	{0xA65F, 0xA65F},
	{0xA661, 0xA661},
	{0xA663, 0xA663},
	{0xA665, 0xA665},
	{0xA667, 0xA667},
	{0xA669, 0xA669},
	{0xA66B, 0xA66B},
	{0xA66D, 0xA66D},
	{0xA681, 0xA681},
	{0xA683, 0xA683},
	{0xA685, 0xA685},
	{0xA687, 0xA687},
	{0xA689, 0xA689},
	{0xA68B, 0xA68B},
	{0xA68D, 0xA68D},
	{0xA68F, 0xA68F},
	{0xA691, 0xA691},
	{0xA693, 0xA693},
	{0xA695, 0xA695},
	{0xA697, 0xA697},
	{0xA699, 0xA699},
	{0xA69B, 0xA69B},
	{0xA723, 0xA723},
	{0xA725, 0xA725},
	{0xA727, 0xA727},
	{0xA729, 0xA729},
	{0xA72B, 0xA72B},
	{0xA72D, 0xA72D},
	{0xA72F, 0xA72F},
	{0xA733, 0xA733},
	{0xA735, 0xA735},
	{0xA737, 0xA737},
	{0xA739, 0xA739},
	{0xA73B, 0xA73B},
	{0xA73D, 0xA73D},
	{0xA73F, 0xA73F},
	{0xA741, 0xA741},
	{0xA743, 0xA743},
	{0xA745, 0xA745},
	{0xA747, 0xA747},
	{0xA749, 0xA749},
	{0xA74B, 0xA74B},
	{0xA74D, 0xA74D},
	{0xA74F, 0xA74F},
	{0xA751, 0xA751},
	{0xA753, 0xA753},
	{0xA755, 0xA755},
	{0xA757, 0xA757},
	{0xA759, 0xA759},
	{0xA75B, 0xA75B},
	{0xA75D, 0xA75D},
	{0xA75F, 0xA75F},
	{0xA761, 0xA761},
	{0xA763, 0xA763},
	{0xA765, 0xA765},
	{0xA767, 0xA767},
	{0xA769, 0xA769},
	{0xA76B, 0xA76B},
	{0xA76D, 0xA76D},
	{0xA76F, 0xA76F},
	{0xA77A, 0xA77A},
	{0xA77C, 0xA77C},
	{0xA77F, 0xA77F},
	{0xA781, 0xA781},
	{0xA783, 0xA783},
	{0xA785, 0xA785},
	{0xA787, 0xA787},
	{0xA78C, 0xA78C},
	{0xA791, 0xA791},
	{0xA793, 0xA794},
	{0xA797, 0xA797},
	{0xA799, 0xA799},
	{0xA79B, 0xA79B},
	{0xA79D, 0xA79D},
	{0xA79F, 0xA79F},
	{0xA7A1, 0xA7A1},
	{0xA7A3, 0xA7A3},
	{0xA7A5, 0xA7A5},
	{0xA7A7, 0xA7A7},
	{0xA7A9, 0xA7A9},
	{0xA7B5, 0xA7B5},
	{0xA7B7, 0xA7B7},
	{0xA7B9, 0xA7B9},
	{0xA7BB, 0xA7BB},
	{0xA7BD, 0xA7BD},
	{0xA7BF, 0xA7BF},
	{0xA7C1, 0xA7C1},
	{0xA7C3, 0xA7C3},
	{0xA7C8, 0xA7C8},
	{0xA7CA, 0xA7CA},
	{0xA7CD, 0xA7CD},
	{0xA7CF, 0xA7CF},
	{0xA7D1, 0xA7D1},
	{0xA7D3, 0xA7D3},
	{0xA7D5, 0xA7D5},
	{0xA7D7, 0xA7D7},
	{0xA7D9, 0xA7D9},
	{0xA7DB, 0xA7DB},
	{0xA7F6, 0xA7F6},
	{0xAB53, 0xAB53},
	{0xAB70, 0xABBF},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFF41, 0xFF5A},
	{0x10428, 0x1044F},
	{0x104D8, 0x104FB},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x10CC0, 0x10CF2},
	{0x10D70, 0x10D85},
	{0x118C0, 0x118DF},
	{0x16E60, 0x16E7F},
	{0x16EBB, 0x16ED3},
	{0x1E922, 0x1E943},
};

static const UnicodeRange kRanges_Changes_When_Uppercased[] = {
	{0x61, 0x7A},
	{0xB5, 0xB5},
	{0xDF, 0xF6},
	{0xF8, 0xFF},
	{0x101, 0x101},
	{0x103, 0x103},
	{0x105, 0x105},
	{0x107, 0x107},
	{0x109, 0x109},
	{0x10B, 0x10B},
	{0x10D, 0x10D},
	{0x10F, 0x10F},
	{0x111, 0x111},
	{0x113, 0x113},
	{0x115, 0x115},
	{0x117, 0x117},
	{0x119, 0x119},
	{0x11B, 0x11B},
	{0x11D, 0x11D},
	{0x11F, 0x11F},
	{0x121, 0x121},
	{0x123, 0x123},
	{0x125, 0x125},
	{0x127, 0x127},
	{0x129, 0x129},
	{0x12B, 0x12B},
	{0x12D, 0x12D},
	{0x12F, 0x12F},
	{0x131, 0x131},
	{0x133, 0x133},
	{0x135, 0x135},
	{0x137, 0x137},
	{0x13A, 0x13A},
	{0x13C, 0x13C},
	{0x13E, 0x13E},
	{0x140, 0x140},
	{0x142, 0x142},
	{0x144, 0x144},
	{0x146, 0x146},
	{0x148, 0x149},
	{0x14B, 0x14B},
	{0x14D, 0x14D},
	{0x14F, 0x14F},
	{0x151, 0x151},
	{0x153, 0x153},
	{0x155, 0x155},
	{0x157, 0x157},
	{0x159, 0x159},
	{0x15B, 0x15B},
	{0x15D, 0x15D},
	{0x15F, 0x15F},
	{0x161, 0x161},
	{0x163, 0x163},
	{0x165, 0x165},
	{0x167, 0x167},
	{0x169, 0x169},
	{0x16B, 0x16B},
	{0x16D, 0x16D},
	{0x16F, 0x16F},
	{0x171, 0x171},
	{0x173, 0x173},
	{0x175, 0x175},
	{0x177, 0x177},
	{0x17A, 0x17A},
	{0x17C, 0x17C},
	{0x17E, 0x180},
	{0x183, 0x183},
	{0x185, 0x185},
	{0x188, 0x188},
	{0x18C, 0x18C},
	{0x192, 0x192},
	{0x195, 0x195},
	{0x199, 0x19B},
	{0x19E, 0x19E},
	{0x1A1, 0x1A1},
	{0x1A3, 0x1A3},
	{0x1A5, 0x1A5},
	{0x1A8, 0x1A8},
	{0x1AD, 0x1AD},
	{0x1B0, 0x1B0},
	{0x1B4, 0x1B4},
	{0x1B6, 0x1B6},
	{0x1B9, 0x1B9},
	{0x1BD, 0x1BD},
	{0x1BF, 0x1BF},
	{0x1C5, 0x1C6},
	{0x1C8, 0x1C9},
	{0x1CB, 0x1CC},
	{0x1CE, 0x1CE},
	{0x1D0, 0x1D0},
	{0x1D2, 0x1D2},
	{0x1D4, 0x1D4},
	{0x1D6, 0x1D6},
	{0x1D8, 0x1D8},
	{0x1DA, 0x1DA},
	{0x1DC, 0x1DD},
	{0x1DF, 0x1DF},
	{0x1E1, 0x1E1},
	{0x1E3, 0x1E3},
	{0x1E5, 0x1E5},
	{0x1E7, 0x1E7},
	{0x1E9, 0x1E9},
	{0x1EB, 0x1EB},
	{0x1ED, 0x1ED},
	{0x1EF, 0x1F0},
	{0x1F2, 0x1F3},
	{0x1F5, 0x1F5},
	{0x1F9, 0x1F9},
	{0x1FB, 0x1FB},
	{0x1FD, 0x1FD},
	{0x1FF, 0x1FF},
	{0x201, 0x201},
	{0x203, 0x203},
	{0x205, 0x205},
	{0x207, 0x207},
	{0x209, 0x209},
	{0x20B, 0x20B},
	{0x20D, 0x20D},
	{0x20F, 0x20F},
	{0x211, 0x211},
	{0x213, 0x213},
	{0x215, 0x215},
	{0x217, 0x217},
	{0x219, 0x219},
	{0x21B, 0x21B},
	{0x21D, 0x21D},
	{0x21F, 0x21F},
	{0x223, 0x223},
	{0x225, 0x225},
	{0x227, 0x227},
	{0x229, 0x229},
	{0x22B, 0x22B},
	{0x22D, 0x22D},
	{0x22F, 0x22F},
	{0x231, 0x231},
	{0x233, 0x233},
	{0x23C, 0x23C},
	{0x23F, 0x240},
	{0x242, 0x242},
	{0x247, 0x247},
	{0x249, 0x249},
	{0x24B, 0x24B},
	{0x24D, 0x24D},
	{0x24F, 0x254},
	{0x256, 0x257},
	{0x259, 0x259},
	{0x25B, 0x25C},
	{0x260, 0x261},
	{0x263, 0x266},
	{0x268, 0x26C},
	{0x26F, 0x26F},
	{0x271, 0x272},
	{0x275, 0x275},
	{0x27D, 0x27D},
	{0x280, 0x280},
	{0x282, 0x283},
	{0x287, 0x28C},
	{0x292, 0x292},
	{0x29D, 0x29E},
	{0x345, 0x345},
	{0x371, 0x371},
	{0x373, 0x373},
	{0x377, 0x377},
	{0x37B, 0x37D},
	{0x390, 0x390},
	{0x3AC, 0x3CE},
	{0x3D0, 0x3D1},
	{0x3D5, 0x3D7},
	{0x3D9, 0x3D9},
	{0x3DB, 0x3DB},
	{0x3DD, 0x3DD},
	{0x3DF, 0x3DF},
	{0x3E1, 0x3E1},
	{0x3E3, 0x3E3},
	{0x3E5, 0x3E5},
	{0x3E7, 0x3E7},
	{0x3E9, 0x3E9},
	{0x3EB, 0x3EB},
	{0x3ED, 0x3ED},
	{0x3EF, 0x3F3},
	{0x3F5, 0x3F5},
	{0x3F8, 0x3F8},
	{0x3FB, 0x3FB},
	{0x430, 0x45F},
	{0x461, 0x461},
	{0x463, 0x463},
	{0x465, 0x465},
	{0x467, 0x467},
	{0x469, 0x469},
	{0x46B, 0x46B},
	{0x46D, 0x46D},
	{0x46F, 0x46F},
	{0x471, 0x471},
	{0x473, 0x473},
	{0x475, 0x475},
	{0x477, 0x477},
	{0x479, 0x479},
	{0x47B, 0x47B},
	{0x47D, 0x47D},
	{0x47F, 0x47F},
	{0x481, 0x481},
	{0x48B, 0x48B},
	{0x48D, 0x48D},
	{0x48F, 0x48F},
	{0x491, 0x491},
	{0x493, 0x493},
	{0x495, 0x495},
	{0x497, 0x497},
	{0x499, 0x499},
	{0x49B, 0x49B},
	{0x49D, 0x49D},
	{0x49F, 0x49F},
	{0x4A1, 0x4A1},
	{0x4A3, 0x4A3},
	{0x4A5, 0x4A5},
	{0x4A7, 0x4A7},
	{0x4A9, 0x4A9},
	{0x4AB, 0x4AB},
	{0x4AD, 0x4AD},
	{0x4AF, 0x4AF},
	{0x4B1, 0x4B1},
	{0x4B3, 0x4B3},
	{0x4B5, 0x4B5},
	{0x4B7, 0x4B7},
	{0x4B9, 0x4B9},
	{0x4BB, 0x4BB},
	{0x4BD, 0x4BD},
	{0x4BF, 0x4BF},
	{0x4C2, 0x4C2},
	{0x4C4, 0x4C4},
	{0x4C6, 0x4C6},
	{0x4C8, 0x4C8},
	{0x4CA, 0x4CA},
	{0x4CC, 0x4CC},
	{0x4CE, 0x4CF},
	{0x4D1, 0x4D1},
	{0x4D3, 0x4D3},
	{0x4D5, 0x4D5},
	{0x4D7, 0x4D7},
	{0x4D9, 0x4D9},
	{0x4DB, 0x4DB},
	{0x4DD, 0x4DD},
	{0x4DF, 0x4DF},
	{0x4E1, 0x4E1},
	{0x4E3, 0x4E3},
	{0x4E5, 0x4E5},
	{0x4E7, 0x4E7},
	{0x4E9, 0x4E9},
	{0x4EB, 0x4EB},
	{0x4ED, 0x4ED},
	{0x4EF, 0x4EF},
	{0x4F1, 0x4F1},
	{0x4F3, 0x4F3},
	{0x4F5, 0x4F5},
	{0x4F7, 0x4F7},
	{0x4F9, 0x4F9},
	{0x4FB, 0x4FB},
	{0x4FD, 0x4FD},
	{0x4FF, 0x4FF},
	{0x501, 0x501},
	{0x503, 0x503},
	{0x505, 0x505},
	{0x507, 0x507},
	{0x509, 0x509},
	{0x50B, 0x50B},
	{0x50D, 0x50D},
	{0x50F, 0x50F},
	{0x511, 0x511},
	{0x513, 0x513},
	{0x515, 0x515},
	{0x517, 0x517},
	{0x519, 0x519},
	{0x51B, 0x51B},
	{0x51D, 0x51D},
	{0x51F, 0x51F},
	{0x521, 0x521},
	{0x523, 0x523},
	{0x525, 0x525},
	{0x527, 0x527},
	{0x529, 0x529},
	{0x52B, 0x52B},
	{0x52D, 0x52D},
	{0x52F, 0x52F},
	{0x561, 0x587},
	{0x10D0, 0x10FA},
	{0x10FD, 0x10FF},
	{0x13F8, 0x13FD},
	{0x1C80, 0x1C88},
	{0x1C8A, 0x1C8A},
	{0x1D79, 0x1D79},
	{0x1D7D, 0x1D7D},
	{0x1D8E, 0x1D8E},
	{0x1E01, 0x1E01},
	{0x1E03, 0x1E03},
	{0x1E05, 0x1E05},
	{0x1E07, 0x1E07},
	{0x1E09, 0x1E09},
	{0x1E0B, 0x1E0B},
	{0x1E0D, 0x1E0D},
	{0x1E0F, 0x1E0F},
	{0x1E11, 0x1E11},
	{0x1E13, 0x1E13},
	{0x1E15, 0x1E15},
	{0x1E17, 0x1E17},
	{0x1E19, 0x1E19},
	{0x1E1B, 0x1E1B},
	{0x1E1D, 0x1E1D},
	{0x1E1F, 0x1E1F},
	{0x1E21, 0x1E21},
	{0x1E23, 0x1E23},
	{0x1E25, 0x1E25},
	{0x1E27, 0x1E27},
	{0x1E29, 0x1E29},
	{0x1E2B, 0x1E2B},
	{0x1E2D, 0x1E2D},
	{0x1E2F, 0x1E2F},
	{0x1E31, 0x1E31},
	{0x1E33, 0x1E33},
	{0x1E35, 0x1E35},
	{0x1E37, 0x1E37},
	{0x1E39, 0x1E39},
	{0x1E3B, 0x1E3B},
	{0x1E3D, 0x1E3D},
	{0x1E3F, 0x1E3F},
	{0x1E41, 0x1E41},
	{0x1E43, 0x1E43},
	{0x1E45, 0x1E45},
	{0x1E47, 0x1E47},
	{0x1E49, 0x1E49},
	{0x1E4B, 0x1E4B},
	{0x1E4D, 0x1E4D},
	{0x1E4F, 0x1E4F},
	{0x1E51, 0x1E51},
	{0x1E53, 0x1E53},
	{0x1E55, 0x1E55},
	{0x1E57, 0x1E57},
	{0x1E59, 0x1E59},
	{0x1E5B, 0x1E5B},
	{0x1E5D, 0x1E5D},
	{0x1E5F, 0x1E5F},
	{0x1E61, 0x1E61},
	{0x1E63, 0x1E63},
	{0x1E65, 0x1E65},
	{0x1E67, 0x1E67},
	{0x1E69, 0x1E69},
	{0x1E6B, 0x1E6B},
	{0x1E6D, 0x1E6D},
	{0x1E6F, 0x1E6F},
	{0x1E71, 0x1E71},
	{0x1E73, 0x1E73},
	{0x1E75, 0x1E75},
	{0x1E77, 0x1E77},
	{0x1E79, 0x1E79},
	{0x1E7B, 0x1E7B},
	{0x1E7D, 0x1E7D},
	{0x1E7F, 0x1E7F},
	{0x1E81, 0x1E81},
	{0x1E83, 0x1E83},
	{0x1E85, 0x1E85},
	{0x1E87, 0x1E87},
	{0x1E89, 0x1E89},
	{0x1E8B, 0x1E8B},
	{0x1E8D, 0x1E8D},
	{0x1E8F, 0x1E8F},
	{0x1E91, 0x1E91},
	{0x1E93, 0x1E93},
	{0x1E95, 0x1E9B},
	{0x1EA1, 0x1EA1},
	{0x1EA3, 0x1EA3},
	{0x1EA5, 0x1EA5},
	{0x1EA7, 0x1EA7},
	{0x1EA9, 0x1EA9},
	{0x1EAB, 0x1EAB},
	{0x1EAD, 0x1EAD},
	{0x1EAF, 0x1EAF},
	{0x1EB1, 0x1EB1},
	{0x1EB3, 0x1EB3},
	{0x1EB5, 0x1EB5},
	{0x1EB7, 0x1EB7},
	{0x1EB9, 0x1EB9},
	{0x1EBB, 0x1EBB},
	{0x1EBD, 0x1EBD},
	{0x1EBF, 0x1EBF},
	{0x1EC1, 0x1EC1},
	{0x1EC3, 0x1EC3},
	{0x1EC5, 0x1EC5},
	{0x1EC7, 0x1EC7},
	{0x1EC9, 0x1EC9},
	{0x1ECB, 0x1ECB},
	{0x1ECD, 0x1ECD},
	{0x1ECF, 0x1ECF},
	{0x1ED1, 0x1ED1},
	{0x1ED3, 0x1ED3},
	{0x1ED5, 0x1ED5},
	{0x1ED7, 0x1ED7},
	{0x1ED9, 0x1ED9},
	{0x1EDB, 0x1EDB},
	{0x1EDD, 0x1EDD},
	{0x1EDF, 0x1EDF},
	{0x1EE1, 0x1EE1},
	{0x1EE3, 0x1EE3},
	{0x1EE5, 0x1EE5},
	{0x1EE7, 0x1EE7},
	{0x1EE9, 0x1EE9},
	{0x1EEB, 0x1EEB},
	{0x1EED, 0x1EED},
	{0x1EEF, 0x1EEF},
	{0x1EF1, 0x1EF1},
	{0x1EF3, 0x1EF3},
	{0x1EF5, 0x1EF5},
	{0x1EF7, 0x1EF7},
	{0x1EF9, 0x1EF9},
	{0x1EFB, 0x1EFB},
	{0x1EFD, 0x1EFD},
	{0x1EFF, 0x1F07},
	{0x1F10, 0x1F15},
	{0x1F20, 0x1F27},
	{0x1F30, 0x1F37},
	{0x1F40, 0x1F45},
	{0x1F50, 0x1F57},
	{0x1F60, 0x1F67},
	{0x1F70, 0x1F7D},
	{0x1F80, 0x1FB4},
	{0x1FB6, 0x1FB7},
	{0x1FBC, 0x1FBC},
	{0x1FBE, 0x1FBE},
	{0x1FC2, 0x1FC4},
	{0x1FC6, 0x1FC7},
	{0x1FCC, 0x1FCC},
	{0x1FD0, 0x1FD3},
	{0x1FD6, 0x1FD7},
	{0x1FE0, 0x1FE7},
	{0x1FF2, 0x1FF4},
	{0x1FF6, 0x1FF7},
	{0x1FFC, 0x1FFC},
	{0x214E, 0x214E},
	{0x2170, 0x217F},
	{0x2184, 0x2184},
	{0x24D0, 0x24E9},
	{0x2C30, 0x2C5F},
	{0x2C61, 0x2C61},
	{0x2C65, 0x2C66},
	{0x2C68, 0x2C68},
	{0x2C6A, 0x2C6A},
	{0x2C6C, 0x2C6C},
	{0x2C73, 0x2C73},
	{0x2C76, 0x2C76},
	{0x2C81, 0x2C81},
	{0x2C83, 0x2C83},
	{0x2C85, 0x2C85},
	{0x2C87, 0x2C87},
	{0x2C89, 0x2C89},
	{0x2C8B, 0x2C8B},
	{0x2C8D, 0x2C8D},
	{0x2C8F, 0x2C8F},
	{0x2C91, 0x2C91},
	{0x2C93, 0x2C93},
	{0x2C95, 0x2C95},
	{0x2C97, 0x2C97},
	{0x2C99, 0x2C99},
	{0x2C9B, 0x2C9B},
	{0x2C9D, 0x2C9D},
	{0x2C9F, 0x2C9F},
	{0x2CA1, 0x2CA1},
	{0x2CA3, 0x2CA3},
	{0x2CA5, 0x2CA5},
	{0x2CA7, 0x2CA7},
	{0x2CA9, 0x2CA9},
	{0x2CAB, 0x2CAB},
	{0x2CAD, 0x2CAD},
	{0x2CAF, 0x2CAF},
	{0x2CB1, 0x2CB1},
	{0x2CB3, 0x2CB3},
	{0x2CB5, 0x2CB5},
	{0x2CB7, 0x2CB7},
	{0x2CB9, 0x2CB9},
	{0x2CBB, 0x2CBB},
	{0x2CBD, 0x2CBD},
	{0x2CBF, 0x2CBF},
	{0x2CC1, 0x2CC1},
	{0x2CC3, 0x2CC3},
	{0x2CC5, 0x2CC5},
	{0x2CC7, 0x2CC7},
	{0x2CC9, 0x2CC9},
	{0x2CCB, 0x2CCB},
	{0x2CCD, 0x2CCD},
	{0x2CCF, 0x2CCF},
	{0x2CD1, 0x2CD1},
	{0x2CD3, 0x2CD3},
	{0x2CD5, 0x2CD5},
	{0x2CD7, 0x2CD7},
	{0x2CD9, 0x2CD9},
	{0x2CDB, 0x2CDB},
	{0x2CDD, 0x2CDD},
	{0x2CDF, 0x2CDF},
	{0x2CE1, 0x2CE1},
	{0x2CE3, 0x2CE3},
	{0x2CEC, 0x2CEC},
	{0x2CEE, 0x2CEE},
	{0x2CF3, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0xA641, 0xA641},
	{0xA643, 0xA643},
	{0xA645, 0xA645},
	{0xA647, 0xA647},
	{0xA649, 0xA649},
	{0xA64B, 0xA64B},
	{0xA64D, 0xA64D},
	{0xA64F, 0xA64F},
	{0xA651, 0xA651},
	{0xA653, 0xA653},
	{0xA655, 0xA655},
	{0xA657, 0xA657},
	{0xA659, 0xA659},
	{0xA65B, 0xA65B},
	{0xA65D, 0xA65D},
	{0xA65F, 0xA65F},
	{0xA661, 0xA661},
	{0xA663, 0xA663},
	{0xA665, 0xA665},
	{0xA667, 0xA667},
	{0xA669, 0xA669},
	{0xA66B, 0xA66B},
	{0xA66D, 0xA66D},
	{0xA681, 0xA681},
	{0xA683, 0xA683},
	{0xA685, 0xA685},
	{0xA687, 0xA687},
	{0xA689, 0xA689},
	{0xA68B, 0xA68B},
	{0xA68D, 0xA68D},
	{0xA68F, 0xA68F},
	{0xA691, 0xA691},
	{0xA693, 0xA693},
	{0xA695, 0xA695},
	{0xA697, 0xA697},
	{0xA699, 0xA699},
	{0xA69B, 0xA69B},
	{0xA723, 0xA723},
	{0xA725, 0xA725},
	{0xA727, 0xA727},
	{0xA729, 0xA729},
	{0xA72B, 0xA72B},
	{0xA72D, 0xA72D},
	{0xA72F, 0xA72F},
	{0xA733, 0xA733},
	{0xA735, 0xA735},
	{0xA737, 0xA737},
	{0xA739, 0xA739},
	{0xA73B, 0xA73B},
	{0xA73D, 0xA73D},
	{0xA73F, 0xA73F},
	{0xA741, 0xA741},
	{0xA743, 0xA743},
	{0xA745, 0xA745},
	{0xA747, 0xA747},
	{0xA749, 0xA749},
	{0xA74B, 0xA74B},
	{0xA74D, 0xA74D},
	{0xA74F, 0xA74F},
	{0xA751, 0xA751},
	{0xA753, 0xA753},
	{0xA755, 0xA755},
	{0xA757, 0xA757},
	{0xA759, 0xA759},
	{0xA75B, 0xA75B},
	{0xA75D, 0xA75D},
	{0xA75F, 0xA75F},
	{0xA761, 0xA761},
	{0xA763, 0xA763},
	{0xA765, 0xA765},
	{0xA767, 0xA767},
	{0xA769, 0xA769},
	{0xA76B, 0xA76B},
	{0xA76D, 0xA76D},
	{0xA76F, 0xA76F},
	{0xA77A, 0xA77A},
	{0xA77C, 0xA77C},
	{0xA77F, 0xA77F},
	{0xA781, 0xA781},
	{0xA783, 0xA783},
	{0xA785, 0xA785},
	{0xA787, 0xA787},
	{0xA78C, 0xA78C},
	{0xA791, 0xA791},
	{0xA793, 0xA794},
	{0xA797, 0xA797},
	{0xA799, 0xA799},
	{0xA79B, 0xA79B},
	{0xA79D, 0xA79D},
	{0xA79F, 0xA79F},
	{0xA7A1, 0xA7A1},
	{0xA7A3, 0xA7A3},
	{0xA7A5, 0xA7A5},
	{0xA7A7, 0xA7A7},
	{0xA7A9, 0xA7A9},
	{0xA7B5, 0xA7B5},
	{0xA7B7, 0xA7B7},
	{0xA7B9, 0xA7B9},
	{0xA7BB, 0xA7BB},
	{0xA7BD, 0xA7BD},
	{0xA7BF, 0xA7BF},
	{0xA7C1, 0xA7C1},
	{0xA7C3, 0xA7C3},
	{0xA7C8, 0xA7C8},
	{0xA7CA, 0xA7CA},
	{0xA7CD, 0xA7CD},
	{0xA7CF, 0xA7CF},
	{0xA7D1, 0xA7D1},
	{0xA7D3, 0xA7D3},
	{0xA7D5, 0xA7D5},
	{0xA7D7, 0xA7D7},
	{0xA7D9, 0xA7D9},
	{0xA7DB, 0xA7DB},
	{0xA7F6, 0xA7F6},
	{0xAB53, 0xAB53},
	{0xAB70, 0xABBF},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFF41, 0xFF5A},
	{0x10428, 0x1044F},
	{0x104D8, 0x104FB},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x10CC0, 0x10CF2},
	{0x10D70, 0x10D85},
	{0x118C0, 0x118DF},
	{0x16E60, 0x16E7F},
	{0x16EBB, 0x16ED3},
	{0x1E922, 0x1E943},
};

static const UnicodeRange kRanges_Dash[] = {
	{0x2D, 0x2D},
	{0x58A, 0x58A},
	{0x5BE, 0x5BE},
	{0x1400, 0x1400},
	{0x1806, 0x1806},
	{0x2010, 0x2015},
	{0x2053, 0x2053},
	{0x207B, 0x207B},
	{0x208B, 0x208B},
	{0x2212, 0x2212},
	{0x2E17, 0x2E17},
	{0x2E1A, 0x2E1A},
	{0x2E3A, 0x2E3B},
	{0x2E40, 0x2E40},
	{0x2E5D, 0x2E5D},
	{0x301C, 0x301C},
	{0x3030, 0x3030},
	{0x30A0, 0x30A0},
	{0xFE31, 0xFE32},
	{0xFE58, 0xFE58},
	{0xFE63, 0xFE63},
	{0xFF0D, 0xFF0D},
	{0x10D6E, 0x10D6E},
	{0x10EAD, 0x10EAD},
};

static const UnicodeRange kRanges_Default_Ignorable_Code_Point[] = {
	{0xAD, 0xAD},
	{0x34F, 0x34F},
	{0x61C, 0x61C},
	{0x115F, 0x1160},
	{0x17B4, 0x17B5},
	{0x180B, 0x180F},
	{0x200B, 0x200F},
	{0x202A, 0x202E},
	{0x2060, 0x206F},
	{0x3164, 0x3164},
	{0xFE00, 0xFE0F},
	{0xFEFF, 0xFEFF},
	{0xFFA0, 0xFFA0},
	{0xFFF0, 0xFFF8},
	{0x1BCA0, 0x1BCA3},
	{0x1D173, 0x1D17A},
	{0xE0000, 0xE0FFF},
};

static const UnicodeRange kRanges_Deprecated[] = {
	{0x149, 0x149},
	{0x673, 0x673},
	{0xF77, 0xF77},
	{0xF79, 0xF79},
	{0x17A3, 0x17A4},
	{0x206A, 0x206F},
	{0x2329, 0x232A},
	{0xE0001, 0xE0001},
};

static const UnicodeRange kRanges_Diacritic[] = {
	{0x5E, 0x5E},
	{0x60, 0x60},
	{0xA8, 0xA8},
	{0xAF, 0xAF},
	{0xB4, 0xB4},
	{0xB7, 0xB8},
	{0x2B0, 0x34E},
	{0x350, 0x357},
	{0x35D, 0x362},
	{0x374, 0x375},
	{0x37A, 0x37A},
	{0x384, 0x385},
	{0x483, 0x487},
	{0x559, 0x559},
	{0x591, 0x5BD},
	{0x5BF, 0x5BF},
	{0x5C1, 0x5C2},
	{0x5C4, 0x5C5},
	{0x5C7, 0x5C7},
	{0x64B, 0x652},
	{0x657, 0x658},
	{0x6DF, 0x6E0},
	{0x6E5, 0x6E6},
	{0x6EA, 0x6EC},
	{0x730, 0x74A},
	{0x7A6, 0x7B0},
	{0x7EB, 0x7F5},
	{0x818, 0x819},
	{0x898, 0x89F},
	{0x8C9, 0x8D2},
	{0x8E3, 0x8FE},
	{0x93C, 0x93C},
	{0x94D, 0x94D},
	{0x951, 0x954},
	{0x971, 0x971},
	{0x9BC, 0x9BC},
	{0x9CD, 0x9CD},
	{0xA3C, 0xA3C},
	{0xA4D, 0xA4D},
	{0xABC, 0xABC},
	{0xACD, 0xACD},
	{0xAFD, 0xAFF},
	{0xB3C, 0xB3C},
	{0xB4D, 0xB4D},
	{0xB55, 0xB55},
	{0xBCD, 0xBCD},
	{0xC3C, 0xC3C},
	{0xC4D, 0xC4D},
	{0xCBC, 0xCBC},
	{0xCCD, 0xCCD},
	{0xD3B, 0xD3C},
	{0xD4D, 0xD4D},
	{0xDCA, 0xDCA},
	{0xE3A, 0xE3A},
	{0xE47, 0xE4C},
	{0xE4E, 0xE4E},
	{0xEBA, 0xEBA},
	{0xEC8, 0xECC},
	{0xF18, 0xF19},
	{0xF35, 0xF35},
	{0xF37, 0xF37},
	{0xF39, 0xF39},
	{0xF3E, 0xF3F},
	{0xF82, 0xF84},
	{0xF86, 0xF87},
	{0xFC6, 0xFC6},
	{0x1037, 0x1037},
	{0x1039, 0x103A},
	{0x1063, 0x1064},
	{0x1069, 0x106D},
	{0x1087, 0x108D},
	{0x108F, 0x108F},
	{0x109A, 0x109B},
	{0x135D, 0x135F},
	{0x1714, 0x1715},
	{0x1734, 0x1734},
	{0x17C9, 0x17D3},
	{0x17DD, 0x17DD},
	{0x1939, 0x193B},
	{0x1A60, 0x1A60},
	{0x1A75, 0x1A7C},
	{0x1A7F, 0x1A7F},
	{0x1AB0, 0x1ABE},
	{0x1AC1, 0x1ACB},
	{0x1ACF, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1B34, 0x1B34},
	{0x1B44, 0x1B44},
	{0x1B6B, 0x1B73},
	{0x1BAA, 0x1BAB},
	{0x1BE6, 0x1BE6},
	{0x1BF2, 0x1BF3},
	{0x1C36, 0x1C37},
	{0x1C78, 0x1C7D},
	{0x1CD0, 0x1CE8},
	{0x1CED, 0x1CED},
	{0x1CF4, 0x1CF4},
	{0x1CF7, 0x1CF9},
	{0x1D2C, 0x1D6A},
	{0x1D9B, 0x1DBE},
	{0x1DC4, 0x1DCF},
	{0x1DF5, 0x1DFF},
	{0x1FBD, 0x1FBD},
	{0x1FBF, 0x1FC1},
	{0x1FCD, 0x1FCF},
	{0x1FDD, 0x1FDF},
	{0x1FED, 0x1FEF},
	{0x1FFD, 0x1FFE},
	{0x2CEF, 0x2CF1},
	{0x2E2F, 0x2E2F},
	{0x302A, 0x302F},
	{0x3099, 0x309C},
	{0x30FC, 0x30FC},
	{0xA66F, 0xA66F},
	{0xA67C, 0xA67D},
	{0xA67F, 0xA67F},
	{0xA69C, 0xA69D},
	{0xA6F0, 0xA6F1},
	{0xA700, 0xA721},
	{0xA788, 0xA78A},
	{0xA7F1, 0xA7F1},
	{0xA7F8, 0xA7F9},
	{0xA806, 0xA806},
	{0xA82C, 0xA82C},
	{0xA8C4, 0xA8C4},
	{0xA8E0, 0xA8F1},
	{0xA92B, 0xA92E},
	{0xA953, 0xA953},
	{0xA9B3, 0xA9B3},
	{0xA9C0, 0xA9C0},
	{0xA9E5, 0xA9E5},
	{0xAA7B, 0xAA7D},
	{0xAABF, 0xAAC2},
	{0xAAF6, 0xAAF6},
	{0xAB5B, 0xAB5F},
	{0xAB69, 0xAB6B},
	{0xABEC, 0xABED},
	{0xFB1E, 0xFB1E},
	{0xFE20, 0xFE2F},
	{0xFF3E, 0xFF3E},
	{0xFF40, 0xFF40},
	{0xFF70, 0xFF70},
	{0xFF9E, 0xFF9F},
	{0xFFE3, 0xFFE3},
	{0x102E0, 0x102E0},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A3F},
	{0x10AE5, 0x10AE6},
	{0x10D22, 0x10D27},
	{0x10D4E, 0x10D4E},
	{0x10D69, 0x10D6D},
	{0x10EFA, 0x10EFA},
	{0x10EFD, 0x10EFF},
	{0x10F46, 0x10F50},
	{0x10F82, 0x10F85},
	{0x11046, 0x11046},
	{0x11070, 0x11070},
	{0x110B9, 0x110BA},
	{0x11133, 0x11134},
	{0x11173, 0x11173},
	{0x111C0, 0x111C0},
	{0x111CA, 0x111CC},
	{0x11235, 0x11236},
	{0x112E9, 0x112EA},
	{0x1133B, 0x1133C},
	{0x1134D, 0x1134D},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x113CE, 0x113D0},
	{0x113D2, 0x113D3},
	{0x113E1, 0x113E2},
	{0x11442, 0x11442},
	{0x11446, 0x11446},
	{0x114C2, 0x114C3},
	{0x115BF, 0x115C0},
	{0x1163F, 0x1163F},
	{0x116B6, 0x116B7},
	{0x1172B, 0x1172B},
	{0x11839, 0x1183A},
	{0x1193D, 0x1193E},
	{0x11943, 0x11943},
	{0x119E0, 0x119E0},
	{0x11A34, 0x11A34},
	{0x11A47, 0x11A47},
	{0x11A99, 0x11A99},
	{0x11C3F, 0x11C3F},
	{0x11D42, 0x11D42},
	{0x11D44, 0x11D45},
	{0x11D97, 0x11D97},
	{0x11DD9, 0x11DD9},
	{0x11F41, 0x11F42},
	{0x11F5A, 0x11F5A},
	{0x13447, 0x13455},
	{0x1612F, 0x1612F},
	{0x16AF0, 0x16AF4},
	{0x16B30, 0x16B36},
	{0x16D6B, 0x16D6C},
	{0x16F8F, 0x16F9F},
	{0x16FF0, 0x16FF1},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1D167, 0x1D169},
	{0x1D16D, 0x1D172},
	{0x1D17B, 0x1D182},
	{0x1D185, 0x1D18B},
	{0x1D1AA, 0x1D1AD},
	{0x1E030, 0x1E06D},
	{0x1E130, 0x1E136},
	{0x1E2AE, 0x1E2AE},
	{0x1E2EC, 0x1E2EF},
	{0x1E5EE, 0x1E5EF},
	{0x1E8D0, 0x1E8D6},
	{0x1E944, 0x1E946},
	{0x1E948, 0x1E94A},
};

static const UnicodeRange kRanges_Emoji[] = {
	{0x23, 0x23},
	{0x2A, 0x2A},
	{0x30, 0x39},
	{0xA9, 0xA9},
	{0xAE, 0xAE},
	{0x203C, 0x203C},
	{0x2049, 0x2049},
	{0x2122, 0x2122},
	{0x2139, 0x2139},
	{0x2194, 0x2199},
	{0x21A9, 0x21AA},
	{0x231A, 0x231B},
	{0x2328, 0x2328},
	{0x23CF, 0x23CF},
	{0x23E9, 0x23F3},
	{0x23F8, 0x23FA},
	{0x24C2, 0x24C2},
	{0x25AA, 0x25AB},
	{0x25B6, 0x25B6},
	{0x25C0, 0x25C0},
	{0x25FB, 0x25FE},
	{0x2600, 0x2604},
	{0x260E, 0x260E},
	{0x2611, 0x2611},
	{0x2614, 0x2615},
	{0x2618, 0x2618},
	{0x261D, 0x261D},
	{0x2620, 0x2620},
	{0x2622, 0x2623},
	{0x2626, 0x2626},
	{0x262A, 0x262A},
	{0x262E, 0x262F},
	{0x2638, 0x263A},
	{0x2640, 0x2640},
	{0x2642, 0x2642},
	{0x2648, 0x2653},
	{0x265F, 0x2660},
	{0x2663, 0x2663},
	{0x2665, 0x2666},
	{0x2668, 0x2668},
	{0x267B, 0x267B},
	{0x267E, 0x267F},
	{0x2692, 0x2697},
	{0x2699, 0x2699},
	{0x269B, 0x269C},
	{0x26A0, 0x26A1},
	{0x26A7, 0x26A7},
	{0x26AA, 0x26AB},
	{0x26B0, 0x26B1},
	{0x26BD, 0x26BE},
	{0x26C4, 0x26C5},
	{0x26C8, 0x26C8},
	{0x26CE, 0x26CF},
	{0x26D1, 0x26D1},
	{0x26D3, 0x26D4},
	{0x26E9, 0x26EA},
	{0x26F0, 0x26F5},
	{0x26F7, 0x26FA},
	{0x26FD, 0x26FD},
	{0x2702, 0x2702},
	{0x2705, 0x2705},
	{0x2708, 0x270D},
	{0x270F, 0x270F},
	{0x2712, 0x2712},
	{0x2714, 0x2714},
	{0x2716, 0x2716},
	{0x271D, 0x271D},
	{0x2721, 0x2721},
	{0x2728, 0x2728},
	{0x2733, 0x2734},
	{0x2744, 0x2744},
	{0x2747, 0x2747},
	{0x274C, 0x274C},
	{0x274E, 0x274E},
	{0x2753, 0x2755},
	{0x2757, 0x2757},
	{0x2763, 0x2764},
	{0x2795, 0x2797},
	{0x27A1, 0x27A1},
	{0x27B0, 0x27B0},
	{0x27BF, 0x27BF},
	{0x2934, 0x2935},
	{0x2B05, 0x2B07},
	{0x2B1B, 0x2B1C},
	{0x2B50, 0x2B50},
	{0x2B55, 0x2B55},
	{0x3030, 0x3030},
	{0x303D, 0x303D},
	{0x3297, 0x3297},
	{0x3299, 0x3299},
	{0x1F004, 0x1F004},
	{0x1F0CF, 0x1F0CF},
	{0x1F170, 0x1F171},
	{0x1F17E, 0x1F17F},
	{0x1F18E, 0x1F18E},
	{0x1F191, 0x1F19A},
	{0x1F1E6, 0x1F1FF},
	{0x1F201, 0x1F202},
	{0x1F21A, 0x1F21A},
	{0x1F22F, 0x1F22F},
	{0x1F232, 0x1F23A},
	{0x1F250, 0x1F251},
	{0x1F300, 0x1F321},
	{0x1F324, 0x1F393},
	{0x1F396, 0x1F397},
	{0x1F399, 0x1F39B},
	{0x1F39E, 0x1F3F0},
	{0x1F3F3, 0x1F3F5},
	{0x1F3F7, 0x1F4FD},
	{0x1F4FF, 0x1F53D},
	{0x1F549, 0x1F54E},
	{0x1F550, 0x1F567},
	{0x1F56F, 0x1F570},
	{0x1F573, 0x1F57A},
	{0x1F587, 0x1F587},
	{0x1F58A, 0x1F58D},
	{0x1F590, 0x1F590},
	{0x1F595, 0x1F596},
	{0x1F5A4, 0x1F5A5},
	{0x1F5A8, 0x1F5A8},
	{0x1F5B1, 0x1F5B2},
	{0x1F5BC, 0x1F5BC},
	{0x1F5C2, 0x1F5C4},
	{0x1F5D1, 0x1F5D3},
	{0x1F5DC, 0x1F5DE},
	{0x1F5E1, 0x1F5E1},
	{0x1F5E3, 0x1F5E3},
	{0x1F5E8, 0x1F5E8},
	{0x1F5EF, 0x1F5EF},
	{0x1F5F3, 0x1F5F3},
	{0x1F5FA, 0x1F64F},
	{0x1F680, 0x1F6C5},
	{0x1F6CB, 0x1F6D2},
	{0x1F6D5, 0x1F6D8},
	{0x1F6DC, 0x1F6E5},
	{0x1F6E9, 0x1F6E9},
	{0x1F6EB, 0x1F6EC},
	{0x1F6F0, 0x1F6F0},
	{0x1F6F3, 0x1F6FC},
	{0x1F7E0, 0x1F7EB},
	{0x1F7F0, 0x1F7F0},
	{0x1F90C, 0x1F93A},
	{0x1F93C, 0x1F945},
	{0x1F947, 0x1F9FF},
	{0x1FA70, 0x1FA7C},
	{0x1FA80, 0x1FA8A},
	{0x1FA8E, 0x1FAC6},
	{0x1FAC8, 0x1FAC8},
	{0x1FACD, 0x1FADC},
	{0x1FADF, 0x1FAEA},
	{0x1FAEF, 0x1FAF8},
};

static const UnicodeRange kRanges_Emoji_Component[] = {
	{0x23, 0x23},
	{0x2A, 0x2A},
	{0x30, 0x39},
	{0x200D, 0x200D},
	{0x20E3, 0x20E3},
	{0xFE0F, 0xFE0F},
	{0x1F1E6, 0x1F1FF},
	{0x1F3FB, 0x1F3FF},
	{0x1F9B0, 0x1F9B3},
	{0xE0020, 0xE007F},
};

static const UnicodeRange kRanges_Emoji_Modifier[] = {
	{0x1F3FB, 0x1F3FF},
};

static const UnicodeRange kRanges_Emoji_Modifier_Base[] = {
	{0x261D, 0x261D},
	{0x26F9, 0x26F9},
	{0x270A, 0x270D},
	{0x1F385, 0x1F385},
	{0x1F3C2, 0x1F3C4},
	{0x1F3C7, 0x1F3C7},
	{0x1F3CA, 0x1F3CC},
	{0x1F442, 0x1F443},
	{0x1F446, 0x1F450},
	{0x1F466, 0x1F478},
	{0x1F47C, 0x1F47C},
	{0x1F481, 0x1F483},
	{0x1F485, 0x1F487},
	{0x1F48F, 0x1F48F},
	{0x1F491, 0x1F491},
	{0x1F4AA, 0x1F4AA},
	{0x1F574, 0x1F575},
	{0x1F57A, 0x1F57A},
	{0x1F590, 0x1F590},
	{0x1F595, 0x1F596},
	{0x1F645, 0x1F647},
	{0x1F64B, 0x1F64F},
	{0x1F6A3, 0x1F6A3},
	{0x1F6B4, 0x1F6B6},
	{0x1F6C0, 0x1F6C0},
	{0x1F6CC, 0x1F6CC},
	{0x1F90C, 0x1F90C},
	{0x1F90F, 0x1F90F},
	{0x1F918, 0x1F91F},
	{0x1F926, 0x1F926},
	{0x1F930, 0x1F939},
	{0x1F93C, 0x1F93E},
	{0x1F977, 0x1F977},
	{0x1F9B5, 0x1F9B6},
	{0x1F9B8, 0x1F9B9},
	{0x1F9BB, 0x1F9BB},
	{0x1F9CD, 0x1F9CF},
	{0x1F9D1, 0x1F9DD},
	{0x1FAC3, 0x1FAC5},
	{0x1FAF0, 0x1FAF8},
};

static const UnicodeRange kRanges_Emoji_Presentation[] = {
	{0x231A, 0x231B},
	{0x23E9, 0x23EC},
	{0x23F0, 0x23F0},
	{0x23F3, 0x23F3},
	{0x25FD, 0x25FE},
	{0x2614, 0x2615},
	{0x2648, 0x2653},
	{0x267F, 0x267F},
	{0x2693, 0x2693},
	{0x26A1, 0x26A1},
	{0x26AA, 0x26AB},
	{0x26BD, 0x26BE},
	{0x26C4, 0x26C5},
	{0x26CE, 0x26CE},
	{0x26D4, 0x26D4},
	{0x26EA, 0x26EA},
	{0x26F2, 0x26F3},
	{0x26F5, 0x26F5},
	{0x26FA, 0x26FA},
	{0x26FD, 0x26FD},
	{0x2705, 0x2705},
	{0x270A, 0x270B},
	{0x2728, 0x2728},
	{0x274C, 0x274C},
	{0x274E, 0x274E},
	{0x2753, 0x2755},
	{0x2757, 0x2757},
	{0x2795, 0x2797},
	{0x27B0, 0x27B0},
	{0x27BF, 0x27BF},
	{0x2B1B, 0x2B1C},
	{0x2B50, 0x2B50},
	{0x2B55, 0x2B55},
	{0x1F004, 0x1F004},
	{0x1F0CF, 0x1F0CF},
	{0x1F18E, 0x1F18E},
	{0x1F191, 0x1F19A},
	{0x1F1E6, 0x1F1FF},
	{0x1F201, 0x1F201},
	{0x1F21A, 0x1F21A},
	{0x1F22F, 0x1F22F},
	{0x1F232, 0x1F236},
	{0x1F238, 0x1F23A},
	{0x1F250, 0x1F251},
	{0x1F300, 0x1F320},
	{0x1F32D, 0x1F335},
	{0x1F337, 0x1F37C},
	{0x1F37E, 0x1F393},
	{0x1F3A0, 0x1F3CA},
	{0x1F3CF, 0x1F3D3},
	{0x1F3E0, 0x1F3F0},
	{0x1F3F4, 0x1F3F4},
	{0x1F3F8, 0x1F43E},
	{0x1F440, 0x1F440},
	{0x1F442, 0x1F4FC},
	{0x1F4FF, 0x1F53D},
	{0x1F54B, 0x1F54E},
	{0x1F550, 0x1F567},
	{0x1F57A, 0x1F57A},
	{0x1F595, 0x1F596},
	{0x1F5A4, 0x1F5A4},
	{0x1F5FB, 0x1F64F},
	{0x1F680, 0x1F6C5},
	{0x1F6CC, 0x1F6CC},
	{0x1F6D0, 0x1F6D2},
	{0x1F6D5, 0x1F6D8},
	{0x1F6DC, 0x1F6DF},
	{0x1F6EB, 0x1F6EC},
	{0x1F6F4, 0x1F6FC},
	{0x1F7E0, 0x1F7EB},
	{0x1F7F0, 0x1F7F0},
	{0x1F90C, 0x1F93A},
	{0x1F93C, 0x1F945},
	{0x1F947, 0x1F9FF},
	{0x1FA70, 0x1FA7C},
	{0x1FA80, 0x1FA8A},
	{0x1FA8E, 0x1FAC6},
	{0x1FAC8, 0x1FAC8},
	{0x1FACD, 0x1FADC},
	{0x1FADF, 0x1FAEA},
	{0x1FAEF, 0x1FAF8},
};

static const UnicodeRange kRanges_Extended_Pictographic[] = {
	{0xA9, 0xA9},
	{0xAE, 0xAE},
	{0x203C, 0x203C},
	{0x2049, 0x2049},
	{0x2122, 0x2122},
	{0x2139, 0x2139},
	{0x2194, 0x2199},
	{0x21A9, 0x21AA},
	{0x231A, 0x231B},
	{0x2328, 0x2328},
	{0x23CF, 0x23CF},
	{0x23E9, 0x23F3},
	{0x23F8, 0x23FA},
	{0x24C2, 0x24C2},
	{0x25AA, 0x25AB},
	{0x25B6, 0x25B6},
	{0x25C0, 0x25C0},
	{0x25FB, 0x25FE},
	{0x2600, 0x2604},
	{0x260E, 0x260E},
	{0x2611, 0x2611},
	{0x2614, 0x2615},
	{0x2618, 0x2618},
	{0x261D, 0x261D},
	{0x2620, 0x2620},
	{0x2622, 0x2623},
	{0x2626, 0x2626},
	{0x262A, 0x262A},
	{0x262E, 0x262F},
	{0x2638, 0x263A},
	{0x2640, 0x2640},
	{0x2642, 0x2642},
	{0x2648, 0x2653},
	{0x265F, 0x2660},
	{0x2663, 0x2663},
	{0x2665, 0x2666},
	{0x2668, 0x2668},
	{0x267B, 0x267B},
	{0x267E, 0x267F},
	{0x2692, 0x2697},
	{0x2699, 0x2699},
	{0x269B, 0x269C},
	{0x26A0, 0x26A1},
	{0x26A7, 0x26A7},
	{0x26AA, 0x26AB},
	{0x26B0, 0x26B1},
	{0x26BD, 0x26BE},
	{0x26C4, 0x26C5},
	{0x26C8, 0x26C8},
	{0x26CE, 0x26CF},
	{0x26D1, 0x26D1},
	{0x26D3, 0x26D4},
	{0x26E9, 0x26EA},
	{0x26F0, 0x26F5},
	{0x26F7, 0x26FA},
	{0x26FD, 0x26FD},
	{0x2702, 0x2702},
	{0x2705, 0x2705},
	{0x2708, 0x270D},
	{0x270F, 0x270F},
	{0x2712, 0x2712},
	{0x2714, 0x2714},
	{0x2716, 0x2716},
	{0x271D, 0x271D},
	{0x2721, 0x2721},
	{0x2728, 0x2728},
	{0x2733, 0x2734},
	{0x2744, 0x2744},
	{0x2747, 0x2747},
	{0x274C, 0x274C},
	{0x274E, 0x274E},
	{0x2753, 0x2755},
	{0x2757, 0x2757},
	{0x2763, 0x2764},
	{0x2795, 0x2797},
	{0x27A1, 0x27A1},
	{0x27B0, 0x27B0},
	{0x27BF, 0x27BF},
	{0x2934, 0x2935},
	{0x2B05, 0x2B07},
	{0x2B1B, 0x2B1C},
	{0x2B50, 0x2B50},
	{0x2B55, 0x2B55},
	{0x3030, 0x3030},
	{0x303D, 0x303D},
	{0x3297, 0x3297},
	{0x3299, 0x3299},
	{0x1F004, 0x1F004},
	{0x1F02C, 0x1F02F},
	{0x1F094, 0x1F09F},
	{0x1F0AF, 0x1F0B0},
	{0x1F0C0, 0x1F0C0},
	{0x1F0CF, 0x1F0D0},
	{0x1F0F6, 0x1F0FF},
	{0x1F170, 0x1F171},
	{0x1F17E, 0x1F17F},
	{0x1F18E, 0x1F18E},
	{0x1F191, 0x1F19A},
	{0x1F1AE, 0x1F1E5},
	{0x1F201, 0x1F20F},
	{0x1F21A, 0x1F21A},
	{0x1F22F, 0x1F22F},
	{0x1F232, 0x1F23A},
	{0x1F23C, 0x1F23F},
	{0x1F249, 0x1F25F},
	{0x1F266, 0x1F321},
	{0x1F324, 0x1F393},
	{0x1F396, 0x1F397},
	{0x1F399, 0x1F39B},
	{0x1F39E, 0x1F3F0},
	{0x1F3F3, 0x1F3F5},
	{0x1F3F7, 0x1F3FA},
	{0x1F400, 0x1F4FD},
	{0x1F4FF, 0x1F53D},
	{0x1F549, 0x1F54E},
	{0x1F550, 0x1F567},
	{0x1F56F, 0x1F570},
	{0x1F573, 0x1F57A},
	{0x1F587, 0x1F587},
	{0x1F58A, 0x1F58D},
	{0x1F590, 0x1F590},
	{0x1F595, 0x1F596},
	{0x1F5A4, 0x1F5A5},
	{0x1F5A8, 0x1F5A8},
	{0x1F5B1, 0x1F5B2},
	{0x1F5BC, 0x1F5BC},
	{0x1F5C2, 0x1F5C4},
	{0x1F5D1, 0x1F5D3},
	{0x1F5DC, 0x1F5DE},
	{0x1F5E1, 0x1F5E1},
	{0x1F5E3, 0x1F5E3},
	{0x1F5E8, 0x1F5E8},
	{0x1F5EF, 0x1F5EF},
	{0x1F5F3, 0x1F5F3},
	{0x1F5FA, 0x1F64F},
	{0x1F680, 0x1F6C5},
	{0x1F6CB, 0x1F6D2},
	{0x1F6D5, 0x1F6E5},
	{0x1F6E9, 0x1F6E9},
	{0x1F6EB, 0x1F6F0},
	{0x1F6F3, 0x1F6FF},
	{0x1F7DA, 0x1F7FF},
	{0x1F80C, 0x1F80F},
	{0x1F848, 0x1F84F},
	{0x1F85A, 0x1F85F},
	{0x1F888, 0x1F88F},
	{0x1F8AE, 0x1F8AF},
	{0x1F8BC, 0x1F8BF},
	{0x1F8C2, 0x1F8CF},
	{0x1F8D9, 0x1F8FF},
	{0x1F90C, 0x1F93A},
	{0x1F93C, 0x1F945},
	{0x1F947, 0x1F9FF},
	{0x1FA58, 0x1FA5F},
	{0x1FA6E, 0x1FAFF},
	{0x1FC00, 0x1FFFD},
};

static const UnicodeRange kRanges_Extender[] = {
	{0xB7, 0xB7},
	{0x2D0, 0x2D1},
	{0x640, 0x640},
	{0x7FA, 0x7FA},
	{0xA71, 0xA71},
	{0xAFB, 0xAFB},
	{0xB55, 0xB55},
	{0xE46, 0xE46},
	{0xEC6, 0xEC6},
	{0x180A, 0x180A},
	{0x1843, 0x1843},
	{0x1AA7, 0x1AA7},
	{0x1C36, 0x1C36},
	{0x1C7B, 0x1C7B},
	{0x3005, 0x3005},
	{0x3031, 0x3035},
	{0x309D, 0x309E},
	{0x30FC, 0x30FE},
	{0xA015, 0xA015},
	{0xA60C, 0xA60C},
	{0xA9CF, 0xA9CF},
	{0xA9E6, 0xA9E6},
	{0xAA70, 0xAA70},
	{0xAADD, 0xAADD},
	{0xAAF3, 0xAAF4},
	{0xFF70, 0xFF70},
	{0x10781, 0x10782},
	{0x10D4E, 0x10D4E},
	{0x10D6A, 0x10D6A},
	{0x10D6F, 0x10D6F},
	{0x11237, 0x11237},
	{0x1135D, 0x1135D},
	{0x113D2, 0x113D3},
	{0x115C6, 0x115C8},
	{0x11A98, 0x11A98},
	{0x11DD9, 0x11DD9},
	{0x16B42, 0x16B43},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE3},
	{0x16FF2, 0x16FF3},
	{0x1E13C, 0x1E13D},
	{0x1E5EF, 0x1E5EF},
	{0x1E944, 0x1E946},
};

static const UnicodeRange kRanges_Grapheme_Base[] = {
	{0x20, 0x7E},
	{0xA0, 0xAC},
	{0xAE, 0x2FF},
	{0x370, 0x377},
	{0x37A, 0x37F},
	{0x384, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x482},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x559, 0x58A},
	{0x58D, 0x58F},
	{0x5BE, 0x5BE},
	{0x5C0, 0x5C0},
	{0x5C3, 0x5C3},
	{0x5C6, 0x5C6},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F4},
	{0x606, 0x60F},
	{0x61B, 0x61B},
	{0x61D, 0x64A},
	{0x660, 0x66F},
	{0x671, 0x6D5},
	{0x6DE, 0x6DE},
	{0x6E5, 0x6E6},
	{0x6E9, 0x6E9},
	{0x6EE, 0x70D},
	{0x710, 0x710},
	{0x712, 0x72F},
	{0x74D, 0x7A5},
	{0x7B1, 0x7B1},
	{0x7C0, 0x7EA},
	{0x7F4, 0x7FA},
	{0x7FE, 0x815},
	{0x81A, 0x81A},
	{0x824, 0x824},
	{0x828, 0x828},
	{0x830, 0x83E},
	{0x840, 0x858},
	{0x85E, 0x85E},
	{0x860, 0x86A},
	{0x870, 0x88F},
	{0x8A0, 0x8C9},
	{0x903, 0x939},
	{0x93B, 0x93B},
	{0x93D, 0x940},
	{0x949, 0x94C},
	{0x94E, 0x950},
	{0x958, 0x961},
	{0x964, 0x980},
	{0x982, 0x983},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BD, 0x9BD},
	{0x9BF, 0x9C0},
	{0x9C7, 0x9C8},
	{0x9CB, 0x9CC},
	{0x9CE, 0x9CE},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E1},
	{0x9E6, 0x9FD},
	{0xA03, 0xA03},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA3E, 0xA40},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA66, 0xA6F},
	{0xA72, 0xA74},
	{0xA76, 0xA76},
	{0xA83, 0xA83},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABD, 0xAC0},
	{0xAC9, 0xAC9},
	{0xACB, 0xACC},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE1},
	{0xAE6, 0xAF1},
	{0xAF9, 0xAF9},
	{0xB02, 0xB03},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3D, 0xB3D},
	{0xB40, 0xB40},
	{0xB47, 0xB48},
	{0xB4B, 0xB4C},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB61},
	{0xB66, 0xB77},
	{0xB83, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBBF, 0xBBF},
	{0xBC1, 0xBC2},
	{0xBC6, 0xBC8},
	{0xBCA, 0xBCC},
	{0xBD0, 0xBD0},
	{0xBE6, 0xBFA},
	{0xC01, 0xC03},
	{0xC05, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3D, 0xC3D},
	{0xC41, 0xC44},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC61},
	{0xC66, 0xC6F},
	{0xC77, 0xC80},
	{0xC82, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBD, 0xCBE},
	{0xCC1, 0xCC1},
	{0xCC3, 0xCC4},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE1},
	{0xCE6, 0xCEF},
	{0xCF1, 0xCF3},
	{0xD02, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD3A},
	{0xD3D, 0xD3D},
	{0xD3F, 0xD40},
	{0xD46, 0xD48},
	{0xD4A, 0xD4C},
	{0xD4E, 0xD4F},
	{0xD54, 0xD56},
	{0xD58, 0xD61},
	{0xD66, 0xD7F},
	{0xD82, 0xD83},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xDD0, 0xDD1},
	{0xDD8, 0xDDE},
	{0xDE6, 0xDEF},
	{0xDF2, 0xDF4},
	{0xE01, 0xE30},
	{0xE32, 0xE33},
	{0xE3F, 0xE46},
	{0xE4F, 0xE5B},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEB0},
	{0xEB2, 0xEB3},
	{0xEBD, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xED0, 0xED9},
	{0xEDC, 0xEDF},
	{0xF00, 0xF17},
	{0xF1A, 0xF34},
	{0xF36, 0xF36},
	{0xF38, 0xF38},
	{0xF3A, 0xF47},
	{0xF49, 0xF6C},
	{0xF7F, 0xF7F},
	{0xF85, 0xF85},
	{0xF88, 0xF8C},
	{0xFBE, 0xFC5},
	{0xFC7, 0xFCC},
	{0xFCE, 0xFDA},
	{0x1000, 0x102C},
	{0x1031, 0x1031},
	{0x1038, 0x1038},
	{0x103B, 0x103C},
	{0x103F, 0x1057},
	{0x105A, 0x105D},
	{0x1061, 0x1070},
	{0x1075, 0x1081},
	{0x1083, 0x1084},
	{0x1087, 0x108C},
	{0x108E, 0x109C},
	{0x109E, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x1360, 0x137C},
	{0x1380, 0x1399},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1400, 0x169C},
	{0x16A0, 0x16F8},
	{0x1700, 0x1711},
	{0x171F, 0x1731},
	{0x1735, 0x1736},
	{0x1740, 0x1751},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1780, 0x17B3},
	{0x17B6, 0x17B6},
	{0x17BE, 0x17C5},
	{0x17C7, 0x17C8},
	{0x17D4, 0x17DC},
	{0x17E0, 0x17E9},
	{0x17F0, 0x17F9},
	{0x1800, 0x180A},
	{0x1810, 0x1819},
	{0x1820, 0x1878},
	{0x1880, 0x1884},
	{0x1887, 0x18A8},
	{0x18AA, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1923, 0x1926},
	{0x1929, 0x192B},
	{0x1930, 0x1931},
	{0x1933, 0x1938},
	{0x1940, 0x1940},
	{0x1944, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x19D0, 0x19DA},
	{0x19DE, 0x1A16},
	{0x1A19, 0x1A1A},
	{0x1A1E, 0x1A55},
	{0x1A57, 0x1A57},
	{0x1A61, 0x1A61},
	{0x1A63, 0x1A64},
	{0x1A6D, 0x1A72},
	{0x1A80, 0x1A89},
	{0x1A90, 0x1A99},
	{0x1AA0, 0x1AAD},
	{0x1B04, 0x1B33},
	{0x1B3E, 0x1B41},
	{0x1B45, 0x1B4C},
	{0x1B4E, 0x1B6A},
	{0x1B74, 0x1B7F},
	{0x1B82, 0x1BA1},
	{0x1BA6, 0x1BA7},
	{0x1BAE, 0x1BE5},
	{0x1BE7, 0x1BE7},
	{0x1BEA, 0x1BEC},
	{0x1BEE, 0x1BEE},
	{0x1BFC, 0x1C2B},
	{0x1C34, 0x1C35},
	{0x1C3B, 0x1C49},
	{0x1C4D, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CC7},
	{0x1CD3, 0x1CD3},
	{0x1CE1, 0x1CE1},
	{0x1CE9, 0x1CEC},
	{0x1CEE, 0x1CF3},
	{0x1CF5, 0x1CF7},
	{0x1CFA, 0x1CFA},
	{0x1D00, 0x1DBF},
	{0x1E00, 0x1F15},
	{0x1F18, 0x1F1D},
	{0x1F20, 0x1F45},
	{0x1F48, 0x1F4D},
	{0x1F50, 0x1F57},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F7D},
	{0x1F80, 0x1FB4},
	{0x1FB6, 0x1FC4},
	{0x1FC6, 0x1FD3},
	{0x1FD6, 0x1FDB},
	{0x1FDD, 0x1FEF},
	{0x1FF2, 0x1FF4},
	{0x1FF6, 0x1FFE},
	{0x2000, 0x200A},
	{0x2010, 0x2027},
	{0x202F, 0x205F},
	{0x2070, 0x2071},
	{0x2074, 0x208E},
	{0x2090, 0x209C},
	{0x20A0, 0x20C1},
	{0x2100, 0x218B},
	{0x2190, 0x2429},
	{0x2440, 0x244A},
	{0x2460, 0x2B73},
	{0x2B76, 0x2CEE},
	{0x2CF2, 0x2CF3},
	{0x2CF9, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D70},
	{0x2D80, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x2E00, 0x2E5D},
	{0x2E80, 0x2E99},
	{0x2E9B, 0x2EF3},
	{0x2F00, 0x2FD5},
	{0x2FF0, 0x3029},
	{0x3030, 0x303F},
	{0x3041, 0x3096},
	{0x309B, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x3190, 0x31E5},
	{0x31EF, 0x321E},
	{0x3220, 0xA48C},
	{0xA490, 0xA4C6},
	{0xA4D0, 0xA62B},
	{0xA640, 0xA66E},
	{0xA673, 0xA673},
	{0xA67E, 0xA69D},
	{0xA6A0, 0xA6EF},
	{0xA6F2, 0xA6F7},
	{0xA700, 0xA7DC},
	{0xA7F1, 0xA801},
	{0xA803, 0xA805},
	{0xA807, 0xA80A},
	{0xA80C, 0xA824},
	{0xA827, 0xA82B},
	{0xA830, 0xA839},
	{0xA840, 0xA877},
	{0xA880, 0xA8C3},
	{0xA8CE, 0xA8D9},
	{0xA8F2, 0xA8FE},
	{0xA900, 0xA925},
	{0xA92E, 0xA946},
	{0xA952, 0xA952},
	{0xA95F, 0xA97C},
	{0xA983, 0xA9B2},
	{0xA9B4, 0xA9B5},
	{0xA9BA, 0xA9BB},
	{0xA9BE, 0xA9BF},
	{0xA9C1, 0xA9CD},
	{0xA9CF, 0xA9D9},
	{0xA9DE, 0xA9E4},
	{0xA9E6, 0xA9FE},
	{0xAA00, 0xAA28},
	{0xAA2F, 0xAA30},
	{0xAA33, 0xAA34},
	{0xAA40, 0xAA42},
	{0xAA44, 0xAA4B},
	{0xAA4D, 0xAA4D},
	{0xAA50, 0xAA59},
	{0xAA5C, 0xAA7B},
	{0xAA7D, 0xAAAF},
	{0xAAB1, 0xAAB1},
	{0xAAB5, 0xAAB6},
	{0xAAB9, 0xAABD},
	{0xAAC0, 0xAAC0},
	{0xAAC2, 0xAAC2},
	{0xAADB, 0xAAEB},
	{0xAAEE, 0xAAF5},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB6B},
	{0xAB70, 0xABE4},
	{0xABE6, 0xABE7},
	{0xABE9, 0xABEC},
	{0xABF0, 0xABF9},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB1D},
	{0xFB1F, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFDCF},
	{0xFDF0, 0xFDFF},
	{0xFE10, 0xFE19},
	{0xFE30, 0xFE52},
	{0xFE54, 0xFE66},
	{0xFE68, 0xFE6B},
	{0xFE70, 0xFE74},
	{0xFE76, 0xFEFC},
	{0xFF01, 0xFF9D},
	{0xFFA0, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0xFFE0, 0xFFE6},
	{0xFFE8, 0xFFEE},
	{0xFFFC, 0xFFFD},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10100, 0x10102},
	{0x10107, 0x10133},
	{0x10137, 0x1018E},
	{0x10190, 0x1019C},
	{0x101A0, 0x101A0},
	{0x101D0, 0x101FC},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x102E1, 0x102FB},
	{0x10300, 0x10323},
	{0x1032D, 0x1034A},
	{0x10350, 0x10375},
	{0x10380, 0x1039D},
	{0x1039F, 0x103C3},
	{0x103C8, 0x103D5},
	{0x10400, 0x1049D},
	{0x104A0, 0x104A9},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x1056F, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10857, 0x1089E},
	{0x108A7, 0x108AF},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x108FB, 0x1091B},
	{0x1091F, 0x10939},
	{0x1093F, 0x10959},
	{0x10980, 0x109B7},
	{0x109BC, 0x109CF},
	{0x109D2, 0x10A00},
	{0x10A10, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A40, 0x10A48},
	{0x10A50, 0x10A58},
	{0x10A60, 0x10A9F},
	{0x10AC0, 0x10AE4},
	{0x10AEB, 0x10AF6},
	{0x10B00, 0x10B35},
	{0x10B39, 0x10B55},
	{0x10B58, 0x10B72},
	{0x10B78, 0x10B91},
	{0x10B99, 0x10B9C},
	{0x10BA9, 0x10BAF},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10CFA, 0x10D23},
	{0x10D30, 0x10D39},
	{0x10D40, 0x10D65},
	{0x10D6E, 0x10D85},
	{0x10D8E, 0x10D8F},
	{0x10E60, 0x10E7E},
	{0x10E80, 0x10EA9},
	{0x10EAD, 0x10EAD},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10ED0, 0x10ED8},
	{0x10F00, 0x10F27},
	{0x10F30, 0x10F45},
	{0x10F51, 0x10F59},
	{0x10F70, 0x10F81},
	{0x10F86, 0x10F89},
	{0x10FB0, 0x10FCB},
	{0x10FE0, 0x10FF6},
	{0x11000, 0x11000},
	{0x11002, 0x11037},
	{0x11047, 0x1104D},
	{0x11052, 0x1106F},
	{0x11071, 0x11072},
	{0x11075, 0x11075},
	{0x11082, 0x110B2},
	{0x110B7, 0x110B8},
	{0x110BB, 0x110BC},
	{0x110BE, 0x110C1},
	{0x110D0, 0x110E8},
	{0x110F0, 0x110F9},
	{0x11103, 0x11126},
	{0x1112C, 0x1112C},
	{0x11136, 0x11147},
	{0x11150, 0x11172},
	{0x11174, 0x11176},
	{0x11182, 0x111B5},
	{0x111BF, 0x111BF},
	{0x111C1, 0x111C8},
	{0x111CD, 0x111CE},
	{0x111D0, 0x111DF},
	{0x111E1, 0x111F4},
	{0x11200, 0x11211},
	{0x11213, 0x1122E},
	{0x11232, 0x11233},
	{0x11238, 0x1123D},
	{0x1123F, 0x11240},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A9},
	{0x112B0, 0x112DE},
	{0x112E0, 0x112E2},
	{0x112F0, 0x112F9},
	{0x11302, 0x11303},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133D, 0x1133D},
	{0x1133F, 0x1133F},
	{0x11341, 0x11344},
	{0x11347, 0x11348},
	{0x1134B, 0x1134C},
	{0x11350, 0x11350},
	{0x1135D, 0x11363},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113B7},
	{0x113B9, 0x113BA},
	{0x113CA, 0x113CA},
	{0x113CC, 0x113CD},
	{0x113D1, 0x113D1},
	{0x113D3, 0x113D5},
	{0x113D7, 0x113D8},
	{0x11400, 0x11437},
	{0x11440, 0x11441},
	{0x11445, 0x11445},
	{0x11447, 0x1145B},
	{0x1145D, 0x1145D},
	{0x1145F, 0x11461},
	{0x11480, 0x114AF},
	{0x114B1, 0x114B2},
	{0x114B9, 0x114B9},
	{0x114BB, 0x114BC},
	{0x114BE, 0x114BE},
	{0x114C1, 0x114C1},
	{0x114C4, 0x114C7},
	{0x114D0, 0x114D9},
	{0x11580, 0x115AE},
	{0x115B0, 0x115B1},
	{0x115B8, 0x115BB},
	{0x115BE, 0x115BE},
	{0x115C1, 0x115DB},
	{0x11600, 0x11632},
	{0x1163B, 0x1163C},
	{0x1163E, 0x1163E},
	{0x11641, 0x11644},
	{0x11650, 0x11659},
	{0x11660, 0x1166C},
	{0x11680, 0x116AA},
	{0x116AC, 0x116AC},
	{0x116AE, 0x116AF},
	{0x116B8, 0x116B9},
	{0x116C0, 0x116C9},
	{0x116D0, 0x116E3},
	{0x11700, 0x1171A},
	{0x1171E, 0x1171E},
	{0x11720, 0x11721},
	{0x11726, 0x11726},
	{0x11730, 0x11746},
	{0x11800, 0x1182E},
	{0x11838, 0x11838},
	{0x1183B, 0x1183B},
	{0x118A0, 0x118F2},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x1192F},
	{0x11931, 0x11935},
	{0x11937, 0x11938},
	{0x1193F, 0x11942},
	{0x11944, 0x11946},
	{0x11950, 0x11959},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D3},
	{0x119DC, 0x119DF},
	{0x119E1, 0x119E4},
	{0x11A00, 0x11A00},
	{0x11A0B, 0x11A32},
	{0x11A39, 0x11A3A},
	{0x11A3F, 0x11A46},
	{0x11A50, 0x11A50},
	{0x11A57, 0x11A58},
	{0x11A5C, 0x11A89},
	{0x11A97, 0x11A97},
	{0x11A9A, 0x11AA2},
	{0x11AB0, 0x11AF8},
	{0x11B00, 0x11B09},
	{0x11B61, 0x11B61},
	{0x11B65, 0x11B65},
	{0x11B67, 0x11B67},
	{0x11BC0, 0x11BE1},
	{0x11BF0, 0x11BF9},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C2F},
	{0x11C3E, 0x11C3E},
	{0x11C40, 0x11C45},
	{0x11C50, 0x11C6C},
	{0x11C70, 0x11C8F},
	{0x11CA9, 0x11CA9},
	{0x11CB1, 0x11CB1},
	{0x11CB4, 0x11CB4},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D30},
	{0x11D46, 0x11D46},
	{0x11D50, 0x11D59},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D8E},
	{0x11D93, 0x11D94},
	{0x11D96, 0x11D96},
	{0x11D98, 0x11D98},
	{0x11DA0, 0x11DA9},
	{0x11DB0, 0x11DDB},
	{0x11DE0, 0x11DE9},
	{0x11EE0, 0x11EF2},
	{0x11EF5, 0x11EF8},
	{0x11F02, 0x11F10},
	{0x11F12, 0x11F35},
	{0x11F3E, 0x11F3F},
	{0x11F43, 0x11F59},
	{0x11FB0, 0x11FB0},
	{0x11FC0, 0x11FF1},
	{0x11FFF, 0x12399},
	{0x12400, 0x1246E},
	{0x12470, 0x12474},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF2},
	{0x13000, 0x1342F},
	{0x13441, 0x13446},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x1611D},
	{0x1612A, 0x1612C},
	{0x16130, 0x16139},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A60, 0x16A69},
	{0x16A6E, 0x16ABE},
	{0x16AC0, 0x16AC9},
	{0x16AD0, 0x16AED},
	{0x16AF5, 0x16AF5},
	{0x16B00, 0x16B2F},
	{0x16B37, 0x16B45},
	{0x16B50, 0x16B59},
	{0x16B5B, 0x16B61},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D79},
	{0x16E40, 0x16E9A},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F50, 0x16F87},
	{0x16F93, 0x16F9F},
	{0x16FE0, 0x16FE3},
	{0x16FF2, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1BC9C, 0x1BC9C},
	{0x1BC9F, 0x1BC9F},
	{0x1CC00, 0x1CCFC},
	{0x1CD00, 0x1CEB3},
	{0x1CEBA, 0x1CED0},
	{0x1CEE0, 0x1CEF0},
	{0x1CF50, 0x1CFC3},
	{0x1D000, 0x1D0F5},
	{0x1D100, 0x1D126},
	{0x1D129, 0x1D164},
	{0x1D16A, 0x1D16C},
	{0x1D183, 0x1D184},
	{0x1D18C, 0x1D1A9},
	{0x1D1AE, 0x1D1EA},
	{0x1D200, 0x1D241},
	{0x1D245, 0x1D245},
	{0x1D2C0, 0x1D2D3},
	{0x1D2E0, 0x1D2F3},
	{0x1D300, 0x1D356},
	{0x1D360, 0x1D378},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D7CB},
	{0x1D7CE, 0x1D9FF},
	{0x1DA37, 0x1DA3A},
	{0x1DA6D, 0x1DA74},
	{0x1DA76, 0x1DA83},
	{0x1DA85, 0x1DA8B},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E030, 0x1E06D},
	{0x1E100, 0x1E12C},
	{0x1E137, 0x1E13D},
	{0x1E140, 0x1E149},
	{0x1E14E, 0x1E14F},
	{0x1E290, 0x1E2AD},
	{0x1E2C0, 0x1E2EB},
	{0x1E2F0, 0x1E2F9},
	{0x1E2FF, 0x1E2FF},
	{0x1E4D0, 0x1E4EB},
	{0x1E4F0, 0x1E4F9},
	{0x1E5D0, 0x1E5ED},
	{0x1E5F0, 0x1E5FA},
	{0x1E5FF, 0x1E5FF},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6E2},
	{0x1E6E4, 0x1E6E5},
	{0x1E6E7, 0x1E6ED},
	{0x1E6F0, 0x1E6F4},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E8C7, 0x1E8CF},
	{0x1E900, 0x1E943},
	{0x1E94B, 0x1E94B},
	{0x1E950, 0x1E959},
	{0x1E95E, 0x1E95F},
	{0x1EC71, 0x1ECB4},
	{0x1ED01, 0x1ED3D},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1EEF0, 0x1EEF1},
	{0x1F000, 0x1F02B},
	{0x1F030, 0x1F093},
	{0x1F0A0, 0x1F0AE},
	{0x1F0B1, 0x1F0BF},
	{0x1F0C1, 0x1F0CF},
	{0x1F0D1, 0x1F0F5},
	{0x1F100, 0x1F1AD},
	{0x1F1E6, 0x1F202},
	{0x1F210, 0x1F23B},
	{0x1F240, 0x1F248},
	{0x1F250, 0x1F251},
	{0x1F260, 0x1F265},
	{0x1F300, 0x1F6D8},
	{0x1F6DC, 0x1F6EC},
	{0x1F6F0, 0x1F6FC},
	{0x1F700, 0x1F7D9},
	{0x1F7E0, 0x1F7EB},
	{0x1F7F0, 0x1F7F0},
	{0x1F800, 0x1F80B},
	{0x1F810, 0x1F847},
	{0x1F850, 0x1F859},
	{0x1F860, 0x1F887},
	{0x1F890, 0x1F8AD},
	{0x1F8B0, 0x1F8BB},
	{0x1F8C0, 0x1F8C1},
	{0x1F8D0, 0x1F8D8},
	{0x1F900, 0x1FA57},
	{0x1FA60, 0x1FA6D},
	{0x1FA70, 0x1FA7C},
	{0x1FA80, 0x1FA8A},
	{0x1FA8E, 0x1FAC6},
	{0x1FAC8, 0x1FAC8},
	{0x1FACD, 0x1FADC},
	{0x1FADF, 0x1FAEA},
	{0x1FAEF, 0x1FAF8},
	{0x1FB00, 0x1FB92},
	{0x1FB94, 0x1FBFA},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodeRange kRanges_Grapheme_Extend[] = {
	{0x300, 0x36F},
	{0x483, 0x489},
	{0x591, 0x5BD},
	{0x5BF, 0x5BF},
	{0x5C1, 0x5C2},
	{0x5C4, 0x5C5},
	{0x5C7, 0x5C7},
	{0x610, 0x61A},
	{0x64B, 0x65F},
	{0x670, 0x670},
	{0x6D6, 0x6DC},
	{0x6DF, 0x6E4},
	{0x6E7, 0x6E8},
	{0x6EA, 0x6ED},
	{0x711, 0x711},
	{0x730, 0x74A},
	{0x7A6, 0x7B0},
	{0x7EB, 0x7F3},
	{0x7FD, 0x7FD},
	{0x816, 0x819},
	{0x81B, 0x823},
	{0x825, 0x827},
	{0x829, 0x82D},
	{0x859, 0x85B},
	{0x897, 0x89F},
	{0x8CA, 0x8E1},
	{0x8E3, 0x902},
	{0x93A, 0x93A},
	{0x93C, 0x93C},
	{0x941, 0x948},
	{0x94D, 0x94D},
	{0x951, 0x957},
	{0x962, 0x963},
	{0x981, 0x981},
	{0x9BC, 0x9BC},
	{0x9BE, 0x9BE},
	{0x9C1, 0x9C4},
	{0x9CD, 0x9CD},
	{0x9D7, 0x9D7},
	{0x9E2, 0x9E3},
	{0x9FE, 0x9FE},
	{0xA01, 0xA02},
	{0xA3C, 0xA3C},
	{0xA41, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4D},
	{0xA51, 0xA51},
	{0xA70, 0xA71},
	{0xA75, 0xA75},
	{0xA81, 0xA82},
	{0xABC, 0xABC},
	{0xAC1, 0xAC5},
	{0xAC7, 0xAC8},
	{0xACD, 0xACD},
	{0xAE2, 0xAE3},
	{0xAFA, 0xAFF},
	{0xB01, 0xB01},
	{0xB3C, 0xB3C},
	{0xB3E, 0xB3F},
	{0xB41, 0xB44},
	{0xB4D, 0xB4D},
	{0xB55, 0xB57},
	{0xB62, 0xB63},
	{0xB82, 0xB82},
	{0xBBE, 0xBBE},
	{0xBC0, 0xBC0},
	{0xBCD, 0xBCD},
	{0xBD7, 0xBD7},
	{0xC00, 0xC00},
	{0xC04, 0xC04},
	{0xC3C, 0xC3C},
	{0xC3E, 0xC40},
	{0xC46, 0xC48},
	{0xC4A, 0xC4D},
	{0xC55, 0xC56},
	{0xC62, 0xC63},
	{0xC81, 0xC81},
	{0xCBC, 0xCBC},
	{0xCBF, 0xCC0},
	{0xCC2, 0xCC2},
	{0xCC6, 0xCC8},
	{0xCCA, 0xCCD},
	{0xCD5, 0xCD6},
	{0xCE2, 0xCE3},
	{0xD00, 0xD01},
	{0xD3B, 0xD3C},
	{0xD3E, 0xD3E},
	{0xD41, 0xD44},
	{0xD4D, 0xD4D},
	{0xD57, 0xD57},
	{0xD62, 0xD63},
	{0xD81, 0xD81},
	{0xDCA, 0xDCA},
	{0xDCF, 0xDCF},
	{0xDD2, 0xDD4},
	{0xDD6, 0xDD6},
	{0xDDF, 0xDDF},
	{0xE31, 0xE31},
	{0xE34, 0xE3A},
	{0xE47, 0xE4E},
	{0xEB1, 0xEB1},
	{0xEB4, 0xEBC},
	{0xEC8, 0xECE},
	{0xF18, 0xF19},
	{0xF35, 0xF35},
	{0xF37, 0xF37},
	{0xF39, 0xF39},
	{0xF71, 0xF7E},
	{0xF80, 0xF84},
	{0xF86, 0xF87},
	{0xF8D, 0xF97},
	{0xF99, 0xFBC},
	{0xFC6, 0xFC6},
	{0x102D, 0x1030},
	{0x1032, 0x1037},
	{0x1039, 0x103A},
	{0x103D, 0x103E},
	{0x1058, 0x1059},
	{0x105E, 0x1060},
	{0x1071, 0x1074},
	{0x1082, 0x1082},
	{0x1085, 0x1086},
	{0x108D, 0x108D},
	{0x109D, 0x109D},
	{0x135D, 0x135F},
	{0x1712, 0x1715},
	{0x1732, 0x1734},
	{0x1752, 0x1753},
	{0x1772, 0x1773},
	{0x17B4, 0x17B5},
	{0x17B7, 0x17BD},
	{0x17C6, 0x17C6},
	{0x17C9, 0x17D3},
	{0x17DD, 0x17DD},
	{0x180B, 0x180D},
	{0x180F, 0x180F},
	{0x1885, 0x1886},
	{0x18A9, 0x18A9},
	{0x1920, 0x1922},
	{0x1927, 0x1928},
	{0x1932, 0x1932},
	{0x1939, 0x193B},
	{0x1A17, 0x1A18},
	{0x1A1B, 0x1A1B},
	{0x1A56, 0x1A56},
	{0x1A58, 0x1A5E},
	{0x1A60, 0x1A60},
	{0x1A62, 0x1A62},
	{0x1A65, 0x1A6C},
	{0x1A73, 0x1A7C},
	{0x1A7F, 0x1A7F},
	{0x1AB0, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1B00, 0x1B03},
	{0x1B34, 0x1B3D},
	{0x1B42, 0x1B44},
	{0x1B6B, 0x1B73},
	{0x1B80, 0x1B81},
	{0x1BA2, 0x1BA5},
	{0x1BA8, 0x1BAD},
	{0x1BE6, 0x1BE6},
	{0x1BE8, 0x1BE9},
	{0x1BED, 0x1BED},
	{0x1BEF, 0x1BF3},
	{0x1C2C, 0x1C33},
	{0x1C36, 0x1C37},
	{0x1CD0, 0x1CD2},
	{0x1CD4, 0x1CE0},
	{0x1CE2, 0x1CE8},
	{0x1CED, 0x1CED},
	{0x1CF4, 0x1CF4},
	{0x1CF8, 0x1CF9},
	{0x1DC0, 0x1DFF},
	{0x200C, 0x200C},
	{0x20D0, 0x20F0},
	{0x2CEF, 0x2CF1},
	{0x2D7F, 0x2D7F},
	{0x2DE0, 0x2DFF},
	{0x302A, 0x302F},
	{0x3099, 0x309A},
	{0xA66F, 0xA672},
	{0xA674, 0xA67D},
	{0xA69E, 0xA69F},
	{0xA6F0, 0xA6F1},
	{0xA802, 0xA802},
	{0xA806, 0xA806},
	{0xA80B, 0xA80B},
	{0xA825, 0xA826},
	{0xA82C, 0xA82C},
	{0xA8C4, 0xA8C5},
	{0xA8E0, 0xA8F1},
	{0xA8FF, 0xA8FF},
	{0xA926, 0xA92D},
	{0xA947, 0xA951},
	{0xA953, 0xA953},
	{0xA980, 0xA982},
	{0xA9B3, 0xA9B3},
	{0xA9B6, 0xA9B9},
	{0xA9BC, 0xA9BD},
	{0xA9C0, 0xA9C0},
	{0xA9E5, 0xA9E5},
	{0xAA29, 0xAA2E},
	{0xAA31, 0xAA32},
	{0xAA35, 0xAA36},
	{0xAA43, 0xAA43},
	{0xAA4C, 0xAA4C},
	{0xAA7C, 0xAA7C},
	{0xAAB0, 0xAAB0},
	{0xAAB2, 0xAAB4},
	{0xAAB7, 0xAAB8},
	{0xAABE, 0xAABF},
	{0xAAC1, 0xAAC1},
	{0xAAEC, 0xAAED},
	{0xAAF6, 0xAAF6},
	{0xABE5, 0xABE5},
	{0xABE8, 0xABE8},
	{0xABED, 0xABED},
	{0xFB1E, 0xFB1E},
	{0xFE00, 0xFE0F},
	{0xFE20, 0xFE2F},
	{0xFF9E, 0xFF9F},
	{0x101FD, 0x101FD},
	{0x102E0, 0x102E0},
	{0x10376, 0x1037A},
	{0x10A01, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A0F},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A3F},
	{0x10AE5, 0x10AE6},
	{0x10D24, 0x10D27},
	{0x10D69, 0x10D6D},
	{0x10EAB, 0x10EAC},
	{0x10EFA, 0x10EFF},
	{0x10F46, 0x10F50},
	{0x10F82, 0x10F85},
	{0x11001, 0x11001},
	{0x11038, 0x11046},
	{0x11070, 0x11070},
	{0x11073, 0x11074},
	{0x1107F, 0x11081},
	{0x110B3, 0x110B6},
	{0x110B9, 0x110BA},
	{0x110C2, 0x110C2},
	{0x11100, 0x11102},
	{0x11127, 0x1112B},
	{0x1112D, 0x11134},
	{0x11173, 0x11173},
	{0x11180, 0x11181},
	{0x111B6, 0x111BE},
	{0x111C0, 0x111C0},
	{0x111C9, 0x111CC},
	{0x111CF, 0x111CF},
	{0x1122F, 0x11231},
	{0x11234, 0x11237},
	{0x1123E, 0x1123E},
	{0x11241, 0x11241},
	{0x112DF, 0x112DF},
	{0x112E3, 0x112EA},
	{0x11300, 0x11301},
	{0x1133B, 0x1133C},
	{0x1133E, 0x1133E},
	{0x11340, 0x11340},
	{0x1134D, 0x1134D},
	{0x11357, 0x11357},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x113B8, 0x113B8},
	{0x113BB, 0x113C0},
	{0x113C2, 0x113C2},
	{0x113C5, 0x113C5},
	{0x113C7, 0x113C9},
	{0x113CE, 0x113D0},
	{0x113D2, 0x113D2},
	{0x113E1, 0x113E2},
	{0x11438, 0x1143F},
	{0x11442, 0x11444},
	{0x11446, 0x11446},
	{0x1145E, 0x1145E},
	{0x114B0, 0x114B0},
	{0x114B3, 0x114B8},
	{0x114BA, 0x114BA},
	{0x114BD, 0x114BD},
	{0x114BF, 0x114C0},
	{0x114C2, 0x114C3},
	{0x115AF, 0x115AF},
	{0x115B2, 0x115B5},
	{0x115BC, 0x115BD},
	{0x115BF, 0x115C0},
	{0x115DC, 0x115DD},
	{0x11633, 0x1163A},
	{0x1163D, 0x1163D},
	{0x1163F, 0x11640},
	{0x116AB, 0x116AB},
	{0x116AD, 0x116AD},
	{0x116B0, 0x116B7},
	{0x1171D, 0x1171D},
	{0x1171F, 0x1171F},
	{0x11722, 0x11725},
	{0x11727, 0x1172B},
	{0x1182F, 0x11837},
	{0x11839, 0x1183A},
	{0x11930, 0x11930},
	{0x1193B, 0x1193E},
	{0x11943, 0x11943},
	{0x119D4, 0x119D7},
	{0x119DA, 0x119DB},
	{0x119E0, 0x119E0},
	{0x11A01, 0x11A0A},
	{0x11A33, 0x11A38},
	{0x11A3B, 0x11A3E},
	{0x11A47, 0x11A47},
	{0x11A51, 0x11A56},
	{0x11A59, 0x11A5B},
	{0x11A8A, 0x11A96},
	{0x11A98, 0x11A99},
	{0x11B60, 0x11B60},
	{0x11B62, 0x11B64},
	{0x11B66, 0x11B66},
	{0x11C30, 0x11C36},
	{0x11C38, 0x11C3D},
	{0x11C3F, 0x11C3F},
	{0x11C92, 0x11CA7},
	{0x11CAA, 0x11CB0},
	{0x11CB2, 0x11CB3},
	{0x11CB5, 0x11CB6},
	{0x11D31, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D45},
	{0x11D47, 0x11D47},
	{0x11D90, 0x11D91},
	{0x11D95, 0x11D95},
	{0x11D97, 0x11D97},
	{0x11EF3, 0x11EF4},
	{0x11F00, 0x11F01},
	{0x11F36, 0x11F3A},
	{0x11F40, 0x11F42},
	{0x11F5A, 0x11F5A},
	{0x13440, 0x13440},
	{0x13447, 0x13455},
	{0x1611E, 0x16129},
	{0x1612D, 0x1612F},
	{0x16AF0, 0x16AF4},
	{0x16B30, 0x16B36},
	{0x16F4F, 0x16F4F},
	{0x16F8F, 0x16F92},
	{0x16FE4, 0x16FE4},
	{0x16FF0, 0x16FF1},
	{0x1BC9D, 0x1BC9E},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1D165, 0x1D169},
	{0x1D16D, 0x1D172},
	{0x1D17B, 0x1D182},
	{0x1D185, 0x1D18B},
	{0x1D1AA, 0x1D1AD},
	{0x1D242, 0x1D244},
	{0x1DA00, 0x1DA36},
	{0x1DA3B, 0x1DA6C},
	{0x1DA75, 0x1DA75},
	{0x1DA84, 0x1DA84},
	{0x1DA9B, 0x1DA9F},
	{0x1DAA1, 0x1DAAF},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
	{0x1E08F, 0x1E08F},
	{0x1E130, 0x1E136},
	{0x1E2AE, 0x1E2AE},
	{0x1E2EC, 0x1E2EF},
	{0x1E4EC, 0x1E4EF},
	{0x1E5EE, 0x1E5EF},
	{0x1E6E3, 0x1E6E3},
	{0x1E6E6, 0x1E6E6},
	{0x1E6EE, 0x1E6EF},
	{0x1E6F5, 0x1E6F5},
	{0x1E8D0, 0x1E8D6},
	{0x1E944, 0x1E94A},
	{0xE0020, 0xE007F},
	{0xE0100, 0xE01EF},
};

static const UnicodeRange kRanges_Hex_Digit[] = {
	{0x30, 0x39},
	{0x41, 0x46},
	{0x61, 0x66},
	{0xFF10, 0xFF19},
	{0xFF21, 0xFF26},
	{0xFF41, 0xFF46},
};

static const UnicodeRange kRanges_IDS_Binary_Operator[] = {
	{0x2FF0, 0x2FF1},
	{0x2FF4, 0x2FFD},
	{0x31EF, 0x31EF},
};

static const UnicodeRange kRanges_IDS_Trinary_Operator[] = {
	{0x2FF2, 0x2FF3},
};

static const UnicodeRange kRanges_ID_Continue[] = {
	{0x30, 0x39},
	{0x41, 0x5A},
	{0x5F, 0x5F},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xB7, 0xB7},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x2C1},
	{0x2C6, 0x2D1},
	{0x2E0, 0x2E4},
	{0x2EC, 0x2EC},
	{0x2EE, 0x2EE},
	{0x300, 0x374},
	{0x376, 0x377},
	{0x37A, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3F5},
	{0x3F7, 0x481},
	{0x483, 0x487},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x559, 0x559},
	{0x560, 0x588},
	{0x591, 0x5BD},
	{0x5BF, 0x5BF},
	{0x5C1, 0x5C2},
	{0x5C4, 0x5C5},
	{0x5C7, 0x5C7},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F2},
	{0x610, 0x61A},
	{0x620, 0x669},
	{0x66E, 0x6D3},
	{0x6D5, 0x6DC},
	{0x6DF, 0x6E8},
	{0x6EA, 0x6FC},
	{0x6FF, 0x6FF},
	{0x710, 0x74A},
	{0x74D, 0x7B1},
	{0x7C0, 0x7F5},
	{0x7FA, 0x7FA},
	{0x7FD, 0x7FD},
	{0x800, 0x82D},
	{0x840, 0x85B},
	{0x860, 0x86A},
	{0x870, 0x887},
	{0x889, 0x88F},
	{0x897, 0x8E1},
	{0x8E3, 0x963},
	{0x966, 0x96F},
	{0x971, 0x983},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BC, 0x9C4},
	{0x9C7, 0x9C8},
	{0x9CB, 0x9CE},
	{0x9D7, 0x9D7},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E3},
	{0x9E6, 0x9F1},
	{0x9FC, 0x9FC},
	{0x9FE, 0x9FE},
	{0xA01, 0xA03},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA3C, 0xA3C},
	{0xA3E, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4D},
	{0xA51, 0xA51},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA66, 0xA75},
	{0xA81, 0xA83},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABC, 0xAC5},
	{0xAC7, 0xAC9},
	{0xACB, 0xACD},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE3},
	{0xAE6, 0xAEF},
	{0xAF9, 0xAFF},
	{0xB01, 0xB03},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3C, 0xB44},
	{0xB47, 0xB48},
	{0xB4B, 0xB4D},
	{0xB55, 0xB57},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB63},
	{0xB66, 0xB6F},
	{0xB71, 0xB71},
	{0xB82, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBBE, 0xBC2},
	{0xBC6, 0xBC8},
	{0xBCA, 0xBCD},
	{0xBD0, 0xBD0},
	{0xBD7, 0xBD7},
	{0xBE6, 0xBEF},
	{0xC00, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3C, 0xC44},
	{0xC46, 0xC48},
	{0xC4A, 0xC4D},
	{0xC55, 0xC56},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC63},
	{0xC66, 0xC6F},
	{0xC80, 0xC83},
	{0xC85, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBC, 0xCC4},
	{0xCC6, 0xCC8},
	{0xCCA, 0xCCD},
	{0xCD5, 0xCD6},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE3},
	{0xCE6, 0xCEF},
	{0xCF1, 0xCF3},
	{0xD00, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD44},
	{0xD46, 0xD48},
	{0xD4A, 0xD4E},
	{0xD54, 0xD57},
	{0xD5F, 0xD63},
	{0xD66, 0xD6F},
	{0xD7A, 0xD7F},
	{0xD81, 0xD83},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xDCA, 0xDCA},
	{0xDCF, 0xDD4},
	{0xDD6, 0xDD6},
	{0xDD8, 0xDDF},
	{0xDE6, 0xDEF},
	{0xDF2, 0xDF3},
	{0xE01, 0xE3A},
	{0xE40, 0xE4E},
	{0xE50, 0xE59},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xEC8, 0xECE},
	{0xED0, 0xED9},
	{0xEDC, 0xEDF},
	{0xF00, 0xF00},
	{0xF18, 0xF19},
	{0xF20, 0xF29},
	{0xF35, 0xF35},
	{0xF37, 0xF37},
	{0xF39, 0xF39},
	{0xF3E, 0xF47},
	{0xF49, 0xF6C},
	{0xF71, 0xF84},
	{0xF86, 0xF97},
	{0xF99, 0xFBC},
	{0xFC6, 0xFC6},
	{0x1000, 0x1049},
	{0x1050, 0x109D},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FC, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x135D, 0x135F},
	{0x1369, 0x1371},
	{0x1380, 0x138F},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1401, 0x166C},
	{0x166F, 0x167F},
	{0x1681, 0x169A},
	{0x16A0, 0x16EA},
	{0x16EE, 0x16F8},
	{0x1700, 0x1715},
	{0x171F, 0x1734},
	{0x1740, 0x1753},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1772, 0x1773},
	{0x1780, 0x17D3},
	{0x17D7, 0x17D7},
	{0x17DC, 0x17DD},
	{0x17E0, 0x17E9},
	{0x180B, 0x180D},
	{0x180F, 0x1819},
	{0x1820, 0x1878},
	{0x1880, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1920, 0x192B},
	{0x1930, 0x193B},
	{0x1946, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x19D0, 0x19DA},
	{0x1A00, 0x1A1B},
	{0x1A20, 0x1A5E},
	{0x1A60, 0x1A7C},
	{0x1A7F, 0x1A89},
	{0x1A90, 0x1A99},
	{0x1AA7, 0x1AA7},
	{0x1AB0, 0x1ABD},
	{0x1ABF, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1B00, 0x1B4C},
	{0x1B50, 0x1B59},
	{0x1B6B, 0x1B73},
	{0x1B80, 0x1BF3},
	{0x1C00, 0x1C37},
	{0x1C40, 0x1C49},
	{0x1C4D, 0x1C7D},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1CD0, 0x1CD2},
	{0x1CD4, 0x1CFA},
	{0x1D00, 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},
	{0x200C, 0x200D},
	{0x203F, 0x2040},
	{0x2054, 0x2054},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x20D0, 0x20DC},
	{0x20E1, 0x20E1},
	{0x20E5, 0x20F0},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2118, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x2139},
	{0x213C, 0x213F},
	{0x2145, 0x2149},
	{0x214E, 0x214E},
	{0x2160, 0x2188},
	{0x2C00, 0x2CE4},
	{0x2CEB, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D6F},
	{0x2D7F, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x2DE0, 0x2DFF},
	{0x3005, 0x3007},
	{0x3021, 0x302F},
	{0x3031, 0x3035},
	{0x3038, 0x303C},
	{0x3041, 0x3096},
	{0x3099, 0x309F},
	{0x30A1, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x31A0, 0x31BF},
	{0x31F0, 0x31FF},
	{0x3400, 0x4DBF},
	{0x4E00, 0xA48C},
	{0xA4D0, 0xA4FD},
	{0xA500, 0xA60C},
	{0xA610, 0xA62B},
	{0xA640, 0xA66F},
	{0xA674, 0xA67D},
	{0xA67F, 0xA6F1},
	{0xA717, 0xA71F},
	{0xA722, 0xA788},
	{0xA78B, 0xA7DC},
	{0xA7F1, 0xA827},
	{0xA82C, 0xA82C},
	{0xA840, 0xA873},
	{0xA880, 0xA8C5},
	{0xA8D0, 0xA8D9},
	{0xA8E0, 0xA8F7},
	{0xA8FB, 0xA8FB},
	{0xA8FD, 0xA92D},
	{0xA930, 0xA953},
	{0xA960, 0xA97C},
	{0xA980, 0xA9C0},
	{0xA9CF, 0xA9D9},
	{0xA9E0, 0xA9FE},
	{0xAA00, 0xAA36},
	{0xAA40, 0xAA4D},
	{0xAA50, 0xAA59},
	{0xAA60, 0xAA76},
	{0xAA7A, 0xAAC2},
	{0xAADB, 0xAADD},
	{0xAAE0, 0xAAEF},
	{0xAAF2, 0xAAF6},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABEA},
	{0xABEC, 0xABED},
	{0xABF0, 0xABF9},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB28},
	{0xFB2A, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFBB1},
	{0xFBD3, 0xFD3D},
	{0xFD50, 0xFD8F},
	{0xFD92, 0xFDC7},
	{0xFDF0, 0xFDFB},
	{0xFE00, 0xFE0F},
	{0xFE20, 0xFE2F},
	{0xFE33, 0xFE34},
	{0xFE4D, 0xFE4F},
	{0xFE70, 0xFE74},
	{0xFE76, 0xFEFC},
	{0xFF10, 0xFF19},
	{0xFF21, 0xFF3A},
	{0xFF3F, 0xFF3F},
	{0xFF41, 0xFF5A},
	{0xFF65, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10140, 0x10174},
	{0x101FD, 0x101FD},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x102E0, 0x102E0},
	{0x10300, 0x1031F},
	{0x1032D, 0x1034A},
	{0x10350, 0x1037A},
	{0x10380, 0x1039D},
	{0x103A0, 0x103C3},
	{0x103C8, 0x103CF},
	{0x103D1, 0x103D5},
	{0x10400, 0x1049D},
	{0x104A0, 0x104A9},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10860, 0x10876},
	{0x10880, 0x1089E},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x10900, 0x10915},
	{0x10920, 0x10939},
	{0x10940, 0x10959},
	{0x10980, 0x109B7},
	{0x109BE, 0x109BF},
	{0x10A00, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A3F},
	{0x10A60, 0x10A7C},
	{0x10A80, 0x10A9C},
	{0x10AC0, 0x10AC7},
	{0x10AC9, 0x10AE6},
	{0x10B00, 0x10B35},
	{0x10B40, 0x10B55},
	{0x10B60, 0x10B72},
	{0x10B80, 0x10B91},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D00, 0x10D27},
	{0x10D30, 0x10D39},
	{0x10D40, 0x10D65},
	{0x10D69, 0x10D6D},
	{0x10D6F, 0x10D85},
	{0x10E80, 0x10EA9},
	{0x10EAB, 0x10EAC},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10EFA, 0x10F1C},
	{0x10F27, 0x10F27},
	{0x10F30, 0x10F50},
	{0x10F70, 0x10F85},
	{0x10FB0, 0x10FC4},
	{0x10FE0, 0x10FF6},
	{0x11000, 0x11046},
	{0x11066, 0x11075},
	{0x1107F, 0x110BA},
	{0x110C2, 0x110C2},
	{0x110D0, 0x110E8},
	{0x110F0, 0x110F9},
	{0x11100, 0x11134},
	{0x11136, 0x1113F},
	{0x11144, 0x11147},
	{0x11150, 0x11173},
	{0x11176, 0x11176},
	{0x11180, 0x111C4},
	{0x111C9, 0x111CC},
	{0x111CE, 0x111DA},
	{0x111DC, 0x111DC},
	{0x11200, 0x11211},
	{0x11213, 0x11237},
	{0x1123E, 0x11241},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A8},
	{0x112B0, 0x112EA},
	{0x112F0, 0x112F9},
	{0x11300, 0x11303},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133B, 0x11344},
	{0x11347, 0x11348},
	{0x1134B, 0x1134D},
	{0x11350, 0x11350},
	{0x11357, 0x11357},
	{0x1135D, 0x11363},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113C0},
	{0x113C2, 0x113C2},
	{0x113C5, 0x113C5},
	{0x113C7, 0x113CA},
	{0x113CC, 0x113D3},
	{0x113E1, 0x113E2},
	{0x11400, 0x1144A},
	{0x11450, 0x11459},
	{0x1145E, 0x11461},
	{0x11480, 0x114C5},
	{0x114C7, 0x114C7},
	{0x114D0, 0x114D9},
	{0x11580, 0x115B5},
	{0x115B8, 0x115C0},
	{0x115D8, 0x115DD},
	{0x11600, 0x11640},
	{0x11644, 0x11644},
	{0x11650, 0x11659},
	{0x11680, 0x116B8},
	{0x116C0, 0x116C9},
	{0x116D0, 0x116E3},
	{0x11700, 0x1171A},
	{0x1171D, 0x1172B},
	{0x11730, 0x11739},
	{0x11740, 0x11746},
	{0x11800, 0x1183A},
	{0x118A0, 0x118E9},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x11935},
	{0x11937, 0x11938},
	{0x1193B, 0x11943},
	{0x11950, 0x11959},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D7},
	{0x119DA, 0x119E1},
	{0x119E3, 0x119E4},
	{0x11A00, 0x11A3E},
	{0x11A47, 0x11A47},
	{0x11A50, 0x11A99},
	{0x11A9D, 0x11A9D},
	{0x11AB0, 0x11AF8},
	{0x11B60, 0x11B67},
	{0x11BC0, 0x11BE0},
	{0x11BF0, 0x11BF9},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C36},
	{0x11C38, 0x11C40},
	{0x11C50, 0x11C59},
	{0x11C72, 0x11C8F},
	{0x11C92, 0x11CA7},
	{0x11CA9, 0x11CB6},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D47},
	{0x11D50, 0x11D59},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D8E},
	{0x11D90, 0x11D91},
	{0x11D93, 0x11D98},
	{0x11DA0, 0x11DA9},
	{0x11DB0, 0x11DDB},
	{0x11DE0, 0x11DE9},
	{0x11EE0, 0x11EF6},
	{0x11F00, 0x11F10},
	{0x11F12, 0x11F3A},
	{0x11F3E, 0x11F42},
	{0x11F50, 0x11F5A},
	{0x11FB0, 0x11FB0},
	{0x12000, 0x12399},
	{0x12400, 0x1246E},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF0},
	{0x13000, 0x1342F},
	{0x13440, 0x13455},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x16139},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A60, 0x16A69},
	{0x16A70, 0x16ABE},
	{0x16AC0, 0x16AC9},
	{0x16AD0, 0x16AED},
	{0x16AF0, 0x16AF4},
	{0x16B00, 0x16B36},
	{0x16B40, 0x16B43},
	{0x16B50, 0x16B59},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D6C},
	{0x16D70, 0x16D79},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F4F, 0x16F87},
	{0x16F8F, 0x16F9F},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE4},
	{0x16FF0, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1BC9D, 0x1BC9E},
	{0x1CCF0, 0x1CCF9},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1D165, 0x1D169},
	{0x1D16D, 0x1D172},
	{0x1D17B, 0x1D182},
	{0x1D185, 0x1D18B},
	{0x1D1AA, 0x1D1AD},
	{0x1D242, 0x1D244},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D6C0},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6FA},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D734},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D76E},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D7A8},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7CB},
	{0x1D7CE, 0x1D7FF},
	{0x1DA00, 0x1DA36},
	{0x1DA3B, 0x1DA6C},
	{0x1DA75, 0x1DA75},
	{0x1DA84, 0x1DA84},
	{0x1DA9B, 0x1DA9F},
	{0x1DAA1, 0x1DAAF},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
	{0x1E030, 0x1E06D},
	{0x1E08F, 0x1E08F},
	{0x1E100, 0x1E12C},
	{0x1E130, 0x1E13D},
	{0x1E140, 0x1E149},
	{0x1E14E, 0x1E14E},
	{0x1E290, 0x1E2AE},
	{0x1E2C0, 0x1E2F9},
	{0x1E4D0, 0x1E4F9},
	{0x1E5D0, 0x1E5FA},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6F5},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E8D0, 0x1E8D6},
	{0x1E900, 0x1E94B},
	{0x1E950, 0x1E959},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1FBF0, 0x1FBF9},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
	{0xE0100, 0xE01EF},
};

static const UnicodeRange kRanges_ID_Start[] = {
	{0x41, 0x5A},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x2C1},
	{0x2C6, 0x2D1},
	{0x2E0, 0x2E4},
	{0x2EC, 0x2EC},
	{0x2EE, 0x2EE},
	{0x370, 0x374},
	{0x376, 0x377},
	{0x37A, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3F5},
	{0x3F7, 0x481},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x559, 0x559},
	{0x560, 0x588},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F2},
	{0x620, 0x64A},
	{0x66E, 0x66F},
	{0x671, 0x6D3},
	{0x6D5, 0x6D5},
	{0x6E5, 0x6E6},
	{0x6EE, 0x6EF},
	{0x6FA, 0x6FC},
	{0x6FF, 0x6FF},
	{0x710, 0x710},
	{0x712, 0x72F},
	{0x74D, 0x7A5},
	{0x7B1, 0x7B1},
	{0x7CA, 0x7EA},
	{0x7F4, 0x7F5},
	{0x7FA, 0x7FA},
	{0x800, 0x815},
	{0x81A, 0x81A},
	{0x824, 0x824},
	{0x828, 0x828},
	{0x840, 0x858},
	{0x860, 0x86A},
	{0x870, 0x887},
	{0x889, 0x88F},
	{0x8A0, 0x8C9},
	{0x904, 0x939},
	{0x93D, 0x93D},
	{0x950, 0x950},
	{0x958, 0x961},
	{0x971, 0x980},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BD, 0x9BD},
	{0x9CE, 0x9CE},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E1},
	{0x9F0, 0x9F1},
	{0x9FC, 0x9FC},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA72, 0xA74},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABD, 0xABD},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE1},
	{0xAF9, 0xAF9},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3D, 0xB3D},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB61},
	{0xB71, 0xB71},
	{0xB83, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBD0, 0xBD0},
	{0xC05, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3D, 0xC3D},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC61},
	{0xC80, 0xC80},
	{0xC85, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBD, 0xCBD},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE1},
	{0xCF1, 0xCF2},
	{0xD04, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD3A},
	{0xD3D, 0xD3D},
	{0xD4E, 0xD4E},
	{0xD54, 0xD56},
	{0xD5F, 0xD61},
	{0xD7A, 0xD7F},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xE01, 0xE30},
	{0xE32, 0xE33},
	{0xE40, 0xE46},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEB0},
	{0xEB2, 0xEB3},
	{0xEBD, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xEDC, 0xEDF},
	{0xF00, 0xF00},
	{0xF40, 0xF47},
	{0xF49, 0xF6C},
	{0xF88, 0xF8C},
	{0x1000, 0x102A},
	{0x103F, 0x103F},
	{0x1050, 0x1055},
	{0x105A, 0x105D},
	{0x1061, 0x1061},
	{0x1065, 0x1066},
	{0x106E, 0x1070},
	{0x1075, 0x1081},
	{0x108E, 0x108E},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FC, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x1380, 0x138F},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1401, 0x166C},
	{0x166F, 0x167F},
	{0x1681, 0x169A},
	{0x16A0, 0x16EA},
	{0x16EE, 0x16F8},
	{0x1700, 0x1711},
	{0x171F, 0x1731},
	{0x1740, 0x1751},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1780, 0x17B3},
	{0x17D7, 0x17D7},
	{0x17DC, 0x17DC},
	{0x1820, 0x1878},
	{0x1880, 0x18A8},
	{0x18AA, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1950, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x1A00, 0x1A16},
	{0x1A20, 0x1A54},
	{0x1AA7, 0x1AA7},
	{0x1B05, 0x1B33},
	{0x1B45, 0x1B4C},
	{0x1B83, 0x1BA0},
	{0x1BAE, 0x1BAF},
	{0x1BBA, 0x1BE5},
	{0x1C00, 0x1C23},
	{0x1C4D, 0x1C4F},
	{0x1C5A, 0x1C7D},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1CE9, 0x1CEC},
	{0x1CEE, 0x1CF3},
	{0x1CF5, 0x1CF6},
	{0x1CFA, 0x1CFA},
	{0x1D00, 0x1DBF},
	{0x1E00, 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},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2118, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x2139},
	{0x213C, 0x213F},
	{0x2145, 0x2149},
	{0x214E, 0x214E},
	{0x2160, 0x2188},
	{0x2C00, 0x2CE4},
	{0x2CEB, 0x2CEE},
	{0x2CF2, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D6F},
	{0x2D80, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x3005, 0x3007},
	{0x3021, 0x3029},
	{0x3031, 0x3035},
	{0x3038, 0x303C},
	{0x3041, 0x3096},
	{0x309B, 0x309F},
	{0x30A1, 0x30FA},
	{0x30FC, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x31A0, 0x31BF},
	{0x31F0, 0x31FF},
	{0x3400, 0x4DBF},
	{0x4E00, 0xA48C},
	{0xA4D0, 0xA4FD},
	{0xA500, 0xA60C},
	{0xA610, 0xA61F},
	{0xA62A, 0xA62B},
	{0xA640, 0xA66E},
	{0xA67F, 0xA69D},
	{0xA6A0, 0xA6EF},
	{0xA717, 0xA71F},
	{0xA722, 0xA788},
	{0xA78B, 0xA7DC},
	{0xA7F1, 0xA801},
	{0xA803, 0xA805},
	{0xA807, 0xA80A},
	{0xA80C, 0xA822},
	{0xA840, 0xA873},
	{0xA882, 0xA8B3},
	{0xA8F2, 0xA8F7},
	{0xA8FB, 0xA8FB},
	{0xA8FD, 0xA8FE},
	{0xA90A, 0xA925},
	{0xA930, 0xA946},
	{0xA960, 0xA97C},
	{0xA984, 0xA9B2},
	{0xA9CF, 0xA9CF},
	{0xA9E0, 0xA9E4},
	{0xA9E6, 0xA9EF},
	{0xA9FA, 0xA9FE},
	{0xAA00, 0xAA28},
	{0xAA40, 0xAA42},
	{0xAA44, 0xAA4B},
	{0xAA60, 0xAA76},
	{0xAA7A, 0xAA7A},
	{0xAA7E, 0xAAAF},
	{0xAAB1, 0xAAB1},
	{0xAAB5, 0xAAB6},
	{0xAAB9, 0xAABD},
	{0xAAC0, 0xAAC0},
	{0xAAC2, 0xAAC2},
	{0xAADB, 0xAADD},
	{0xAAE0, 0xAAEA},
	{0xAAF2, 0xAAF4},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABE2},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB1D},
	{0xFB1F, 0xFB28},
	{0xFB2A, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFBB1},
	{0xFBD3, 0xFD3D},
	{0xFD50, 0xFD8F},
	{0xFD92, 0xFDC7},
	{0xFDF0, 0xFDFB},
	{0xFE70, 0xFE74},
	{0xFE76, 0xFEFC},
	{0xFF21, 0xFF3A},
	{0xFF41, 0xFF5A},
	{0xFF66, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10140, 0x10174},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x10300, 0x1031F},
	{0x1032D, 0x1034A},
	{0x10350, 0x10375},
	{0x10380, 0x1039D},
	{0x103A0, 0x103C3},
	{0x103C8, 0x103CF},
	{0x103D1, 0x103D5},
	{0x10400, 0x1049D},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10860, 0x10876},
	{0x10880, 0x1089E},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x10900, 0x10915},
	{0x10920, 0x10939},
	{0x10940, 0x10959},
	{0x10980, 0x109B7},
	{0x109BE, 0x109BF},
	{0x10A00, 0x10A00},
	{0x10A10, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A60, 0x10A7C},
	{0x10A80, 0x10A9C},
	{0x10AC0, 0x10AC7},
	{0x10AC9, 0x10AE4},
	{0x10B00, 0x10B35},
	{0x10B40, 0x10B55},
	{0x10B60, 0x10B72},
	{0x10B80, 0x10B91},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D00, 0x10D23},
	{0x10D4A, 0x10D65},
	{0x10D6F, 0x10D85},
	{0x10E80, 0x10EA9},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10F00, 0x10F1C},
	{0x10F27, 0x10F27},
	{0x10F30, 0x10F45},
	{0x10F70, 0x10F81},
	{0x10FB0, 0x10FC4},
	{0x10FE0, 0x10FF6},
	{0x11003, 0x11037},
	{0x11071, 0x11072},
	{0x11075, 0x11075},
	{0x11083, 0x110AF},
	{0x110D0, 0x110E8},
	{0x11103, 0x11126},
	{0x11144, 0x11144},
	{0x11147, 0x11147},
	{0x11150, 0x11172},
	{0x11176, 0x11176},
	{0x11183, 0x111B2},
	{0x111C1, 0x111C4},
	{0x111DA, 0x111DA},
	{0x111DC, 0x111DC},
	{0x11200, 0x11211},
	{0x11213, 0x1122B},
	{0x1123F, 0x11240},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A8},
	{0x112B0, 0x112DE},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133D, 0x1133D},
	{0x11350, 0x11350},
	{0x1135D, 0x11361},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113B7},
	{0x113D1, 0x113D1},
	{0x113D3, 0x113D3},
	{0x11400, 0x11434},
	{0x11447, 0x1144A},
	{0x1145F, 0x11461},
	{0x11480, 0x114AF},
	{0x114C4, 0x114C5},
	{0x114C7, 0x114C7},
	{0x11580, 0x115AE},
	{0x115D8, 0x115DB},
	{0x11600, 0x1162F},
	{0x11644, 0x11644},
	{0x11680, 0x116AA},
	{0x116B8, 0x116B8},
	{0x11700, 0x1171A},
	{0x11740, 0x11746},
	{0x11800, 0x1182B},
	{0x118A0, 0x118DF},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x1192F},
	{0x1193F, 0x1193F},
	{0x11941, 0x11941},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D0},
	{0x119E1, 0x119E1},
	{0x119E3, 0x119E3},
	{0x11A00, 0x11A00},
	{0x11A0B, 0x11A32},
	{0x11A3A, 0x11A3A},
	{0x11A50, 0x11A50},
	{0x11A5C, 0x11A89},
	{0x11A9D, 0x11A9D},
	{0x11AB0, 0x11AF8},
	{0x11BC0, 0x11BE0},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C2E},
	{0x11C40, 0x11C40},
	{0x11C72, 0x11C8F},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D30},
	{0x11D46, 0x11D46},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D89},
	{0x11D98, 0x11D98},
	{0x11DB0, 0x11DDB},
	{0x11EE0, 0x11EF2},
	{0x11F02, 0x11F02},
	{0x11F04, 0x11F10},
	{0x11F12, 0x11F33},
	{0x11FB0, 0x11FB0},
	{0x12000, 0x12399},
	{0x12400, 0x1246E},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF0},
	{0x13000, 0x1342F},
	{0x13441, 0x13446},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x1611D},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A70, 0x16ABE},
	{0x16AD0, 0x16AED},
	{0x16B00, 0x16B2F},
	{0x16B40, 0x16B43},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D6C},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F50, 0x16F50},
	{0x16F93, 0x16F9F},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE3},
	{0x16FF2, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D6C0},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6FA},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D734},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D76E},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D7A8},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7CB},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E030, 0x1E06D},
	{0x1E100, 0x1E12C},
	{0x1E137, 0x1E13D},
	{0x1E14E, 0x1E14E},
	{0x1E290, 0x1E2AD},
	{0x1E2C0, 0x1E2EB},
	{0x1E4D0, 0x1E4EB},
	{0x1E5D0, 0x1E5ED},
	{0x1E5F0, 0x1E5F0},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6E2},
	{0x1E6E4, 0x1E6E5},
	{0x1E6E7, 0x1E6ED},
	{0x1E6F0, 0x1E6F4},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E900, 0x1E943},
	{0x1E94B, 0x1E94B},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodeRange kRanges_Ideographic[] = {
	{0x3006, 0x3007},
	{0x3021, 0x3029},
	{0x3038, 0x303A},
	{0x3400, 0x4DBF},
	{0x4E00, 0x9FFF},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0x16FE4, 0x16FE4},
	{0x16FF2, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1B170, 0x1B2FB},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodeRange kRanges_Join_Control[] = {
	{0x200C, 0x200D},
};

static const UnicodeRange kRanges_Logical_Order_Exception[] = {
	{0xE40, 0xE44},
	{0xEC0, 0xEC4},
	{0x19B5, 0x19B7},
	{0x19BA, 0x19BA},
	{0xAAB5, 0xAAB6},
	{0xAAB9, 0xAAB9},
	{0xAABB, 0xAABC},
};

static const UnicodeRange kRanges_Lowercase[] = {
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xBA, 0xBA},
	{0xDF, 0xF6},
	{0xF8, 0xFF},
	{0x101, 0x101},
	{0x103, 0x103},
	{0x105, 0x105},
	{0x107, 0x107},
	{0x109, 0x109},
	{0x10B, 0x10B},
	{0x10D, 0x10D},
	{0x10F, 0x10F},
	{0x111, 0x111},
	{0x113, 0x113},
	{0x115, 0x115},
	{0x117, 0x117},
	{0x119, 0x119},
	{0x11B, 0x11B},
	{0x11D, 0x11D},
	{0x11F, 0x11F},
	{0x121, 0x121},
	{0x123, 0x123},
	{0x125, 0x125},
	{0x127, 0x127},
	{0x129, 0x129},
	{0x12B, 0x12B},
	{0x12D, 0x12D},
	{0x12F, 0x12F},
	{0x131, 0x131},
	{0x133, 0x133},
	{0x135, 0x135},
	{0x137, 0x138},
	{0x13A, 0x13A},
	{0x13C, 0x13C},
	{0x13E, 0x13E},
	{0x140, 0x140},
	{0x142, 0x142},
	{0x144, 0x144},
	{0x146, 0x146},
	{0x148, 0x149},
	{0x14B, 0x14B},
	{0x14D, 0x14D},
	{0x14F, 0x14F},
	{0x151, 0x151},
	{0x153, 0x153},
	{0x155, 0x155},
	{0x157, 0x157},
	{0x159, 0x159},
	{0x15B, 0x15B},
	{0x15D, 0x15D},
	{0x15F, 0x15F},
	{0x161, 0x161},
	{0x163, 0x163},
	{0x165, 0x165},
	{0x167, 0x167},
	{0x169, 0x169},
	{0x16B, 0x16B},
	{0x16D, 0x16D},
	{0x16F, 0x16F},
	{0x171, 0x171},
	{0x173, 0x173},
	{0x175, 0x175},
	{0x177, 0x177},
	{0x17A, 0x17A},
	{0x17C, 0x17C},
	{0x17E, 0x180},
	{0x183, 0x183},
	{0x185, 0x185},
	{0x188, 0x188},
	{0x18C, 0x18D},
	{0x192, 0x192},
	{0x195, 0x195},
	{0x199, 0x19B},
	{0x19E, 0x19E},
	{0x1A1, 0x1A1},
	{0x1A3, 0x1A3},
	{0x1A5, 0x1A5},
	{0x1A8, 0x1A8},
	{0x1AA, 0x1AB},
	{0x1AD, 0x1AD},
	{0x1B0, 0x1B0},
	{0x1B4, 0x1B4},
	{0x1B6, 0x1B6},
	{0x1B9, 0x1BA},
	{0x1BD, 0x1BF},
	{0x1C6, 0x1C6},
	{0x1C9, 0x1C9},
	{0x1CC, 0x1CC},
	{0x1CE, 0x1CE},
	{0x1D0, 0x1D0},
	{0x1D2, 0x1D2},
	{0x1D4, 0x1D4},
	{0x1D6, 0x1D6},
	{0x1D8, 0x1D8},
	{0x1DA, 0x1DA},
	{0x1DC, 0x1DD},
	{0x1DF, 0x1DF},
	{0x1E1, 0x1E1},
	{0x1E3, 0x1E3},
	{0x1E5, 0x1E5},
	{0x1E7, 0x1E7},
	{0x1E9, 0x1E9},
	{0x1EB, 0x1EB},
	{0x1ED, 0x1ED},
	{0x1EF, 0x1F0},
	{0x1F3, 0x1F3},
	{0x1F5, 0x1F5},
	{0x1F9, 0x1F9},
	{0x1FB, 0x1FB},
	{0x1FD, 0x1FD},
	{0x1FF, 0x1FF},
	{0x201, 0x201},
	{0x203, 0x203},
	{0x205, 0x205},
	{0x207, 0x207},
	{0x209, 0x209},
	{0x20B, 0x20B},
	{0x20D, 0x20D},
	{0x20F, 0x20F},
	{0x211, 0x211},
	{0x213, 0x213},
	{0x215, 0x215},
	{0x217, 0x217},
	{0x219, 0x219},
	{0x21B, 0x21B},
	{0x21D, 0x21D},
	{0x21F, 0x21F},
	{0x221, 0x221},
	{0x223, 0x223},
	{0x225, 0x225},
	{0x227, 0x227},
	{0x229, 0x229},
	{0x22B, 0x22B},
	{0x22D, 0x22D},
	{0x22F, 0x22F},
	{0x231, 0x231},
	{0x233, 0x239},
	{0x23C, 0x23C},
	{0x23F, 0x240},
	{0x242, 0x242},
	{0x247, 0x247},
	{0x249, 0x249},
	{0x24B, 0x24B},
	{0x24D, 0x24D},
	{0x24F, 0x293},
	{0x296, 0x2B8},
	{0x2C0, 0x2C1},
	{0x2E0, 0x2E4},
	{0x345, 0x345},
	{0x371, 0x371},
	{0x373, 0x373},
	{0x377, 0x377},
	{0x37A, 0x37D},
	{0x390, 0x390},
	{0x3AC, 0x3CE},
	{0x3D0, 0x3D1},
	{0x3D5, 0x3D7},
	{0x3D9, 0x3D9},
	{0x3DB, 0x3DB},
	{0x3DD, 0x3DD},
	{0x3DF, 0x3DF},
	{0x3E1, 0x3E1},
	{0x3E3, 0x3E3},
	{0x3E5, 0x3E5},
	{0x3E7, 0x3E7},
	{0x3E9, 0x3E9},
	{0x3EB, 0x3EB},
	{0x3ED, 0x3ED},
	{0x3EF, 0x3F3},
	{0x3F5, 0x3F5},
	{0x3F8, 0x3F8},
	{0x3FB, 0x3FC},
	{0x430, 0x45F},
	{0x461, 0x461},
	{0x463, 0x463},
	{0x465, 0x465},
	{0x467, 0x467},
	{0x469, 0x469},
	{0x46B, 0x46B},
	{0x46D, 0x46D},
	{0x46F, 0x46F},
	{0x471, 0x471},
	{0x473, 0x473},
	{0x475, 0x475},
	{0x477, 0x477},
	{0x479, 0x479},
	{0x47B, 0x47B},
	{0x47D, 0x47D},
	{0x47F, 0x47F},
	{0x481, 0x481},
	{0x48B, 0x48B},
	{0x48D, 0x48D},
	{0x48F, 0x48F},
	{0x491, 0x491},
	{0x493, 0x493},
	{0x495, 0x495},
	{0x497, 0x497},
	{0x499, 0x499},
	{0x49B, 0x49B},
	{0x49D, 0x49D},
	{0x49F, 0x49F},
	{0x4A1, 0x4A1},
	{0x4A3, 0x4A3},
	{0x4A5, 0x4A5},
	{0x4A7, 0x4A7},
	{0x4A9, 0x4A9},
	{0x4AB, 0x4AB},
	{0x4AD, 0x4AD},
	{0x4AF, 0x4AF},
	{0x4B1, 0x4B1},
	{0x4B3, 0x4B3},
	{0x4B5, 0x4B5},
	{0x4B7, 0x4B7},
	{0x4B9, 0x4B9},
	{0x4BB, 0x4BB},
	{0x4BD, 0x4BD},
	{0x4BF, 0x4BF},
	{0x4C2, 0x4C2},
	{0x4C4, 0x4C4},
	{0x4C6, 0x4C6},
	{0x4C8, 0x4C8},
	{0x4CA, 0x4CA},
	{0x4CC, 0x4CC},
	{0x4CE, 0x4CF},
	{0x4D1, 0x4D1},
	{0x4D3, 0x4D3},
	{0x4D5, 0x4D5},
	{0x4D7, 0x4D7},
	{0x4D9, 0x4D9},
	{0x4DB, 0x4DB},
	{0x4DD, 0x4DD},
	{0x4DF, 0x4DF},
	{0x4E1, 0x4E1},
	{0x4E3, 0x4E3},
	{0x4E5, 0x4E5},
	{0x4E7, 0x4E7},
	{0x4E9, 0x4E9},
	{0x4EB, 0x4EB},
	{0x4ED, 0x4ED},
	{0x4EF, 0x4EF},
	{0x4F1, 0x4F1},
	{0x4F3, 0x4F3},
	{0x4F5, 0x4F5},
	{0x4F7, 0x4F7},
	{0x4F9, 0x4F9},
	{0x4FB, 0x4FB},
	{0x4FD, 0x4FD},
	{0x4FF, 0x4FF},
	{0x501, 0x501},
	{0x503, 0x503},
	{0x505, 0x505},
	{0x507, 0x507},
	{0x509, 0x509},
	{0x50B, 0x50B},
	{0x50D, 0x50D},
	{0x50F, 0x50F},
	{0x511, 0x511},
	{0x513, 0x513},
	{0x515, 0x515},
	{0x517, 0x517},
	{0x519, 0x519},
	{0x51B, 0x51B},
	{0x51D, 0x51D},
	{0x51F, 0x51F},
	{0x521, 0x521},
	{0x523, 0x523},
	{0x525, 0x525},
	{0x527, 0x527},
	{0x529, 0x529},
	{0x52B, 0x52B},
	{0x52D, 0x52D},
	{0x52F, 0x52F},
	{0x560, 0x588},
	{0x10D0, 0x10FA},
	{0x10FC, 0x10FF},
	{0x13F8, 0x13FD},
	{0x1C80, 0x1C88},
	{0x1C8A, 0x1C8A},
	{0x1D00, 0x1DBF},
	{0x1E01, 0x1E01},
	{0x1E03, 0x1E03},
	{0x1E05, 0x1E05},
	{0x1E07, 0x1E07},
	{0x1E09, 0x1E09},
	{0x1E0B, 0x1E0B},
	{0x1E0D, 0x1E0D},
	{0x1E0F, 0x1E0F},
	{0x1E11, 0x1E11},
	{0x1E13, 0x1E13},
	{0x1E15, 0x1E15},
	{0x1E17, 0x1E17},
	{0x1E19, 0x1E19},
	{0x1E1B, 0x1E1B},
	{0x1E1D, 0x1E1D},
	{0x1E1F, 0x1E1F},
	{0x1E21, 0x1E21},
	{0x1E23, 0x1E23},
	{0x1E25, 0x1E25},
	{0x1E27, 0x1E27},
	{0x1E29, 0x1E29},
	{0x1E2B, 0x1E2B},
	{0x1E2D, 0x1E2D},
	{0x1E2F, 0x1E2F},
	{0x1E31, 0x1E31},
	{0x1E33, 0x1E33},
	{0x1E35, 0x1E35},
	{0x1E37, 0x1E37},
	{0x1E39, 0x1E39},
	{0x1E3B, 0x1E3B},
	{0x1E3D, 0x1E3D},
	{0x1E3F, 0x1E3F},
	{0x1E41, 0x1E41},
	{0x1E43, 0x1E43},
	{0x1E45, 0x1E45},
	{0x1E47, 0x1E47},
	{0x1E49, 0x1E49},
	{0x1E4B, 0x1E4B},
	{0x1E4D, 0x1E4D},
	{0x1E4F, 0x1E4F},
	{0x1E51, 0x1E51},
	{0x1E53, 0x1E53},
	{0x1E55, 0x1E55},
	{0x1E57, 0x1E57},
	{0x1E59, 0x1E59},
	{0x1E5B, 0x1E5B},
	{0x1E5D, 0x1E5D},
	{0x1E5F, 0x1E5F},
	{0x1E61, 0x1E61},
	{0x1E63, 0x1E63},
	{0x1E65, 0x1E65},
	{0x1E67, 0x1E67},
	{0x1E69, 0x1E69},
	{0x1E6B, 0x1E6B},
	{0x1E6D, 0x1E6D},
	{0x1E6F, 0x1E6F},
	{0x1E71, 0x1E71},
	{0x1E73, 0x1E73},
	{0x1E75, 0x1E75},
	{0x1E77, 0x1E77},
	{0x1E79, 0x1E79},
	{0x1E7B, 0x1E7B},
	{0x1E7D, 0x1E7D},
	{0x1E7F, 0x1E7F},
	{0x1E81, 0x1E81},
	{0x1E83, 0x1E83},
	{0x1E85, 0x1E85},
	{0x1E87, 0x1E87},
	{0x1E89, 0x1E89},
	{0x1E8B, 0x1E8B},
	{0x1E8D, 0x1E8D},
	{0x1E8F, 0x1E8F},
	{0x1E91, 0x1E91},
	{0x1E93, 0x1E93},
	{0x1E95, 0x1E9D},
	{0x1E9F, 0x1E9F},
	{0x1EA1, 0x1EA1},
	{0x1EA3, 0x1EA3},
	{0x1EA5, 0x1EA5},
	{0x1EA7, 0x1EA7},
	{0x1EA9, 0x1EA9},
	{0x1EAB, 0x1EAB},
	{0x1EAD, 0x1EAD},
	{0x1EAF, 0x1EAF},
	{0x1EB1, 0x1EB1},
	{0x1EB3, 0x1EB3},
	{0x1EB5, 0x1EB5},
	{0x1EB7, 0x1EB7},
	{0x1EB9, 0x1EB9},
	{0x1EBB, 0x1EBB},
	{0x1EBD, 0x1EBD},
	{0x1EBF, 0x1EBF},
	{0x1EC1, 0x1EC1},
	{0x1EC3, 0x1EC3},
	{0x1EC5, 0x1EC5},
	{0x1EC7, 0x1EC7},
	{0x1EC9, 0x1EC9},
	{0x1ECB, 0x1ECB},
	{0x1ECD, 0x1ECD},
	{0x1ECF, 0x1ECF},
	{0x1ED1, 0x1ED1},
	{0x1ED3, 0x1ED3},
	{0x1ED5, 0x1ED5},
	{0x1ED7, 0x1ED7},
	{0x1ED9, 0x1ED9},
	{0x1EDB, 0x1EDB},
	{0x1EDD, 0x1EDD},
	{0x1EDF, 0x1EDF},
	{0x1EE1, 0x1EE1},
	{0x1EE3, 0x1EE3},
	{0x1EE5, 0x1EE5},
	{0x1EE7, 0x1EE7},
	{0x1EE9, 0x1EE9},
	{0x1EEB, 0x1EEB},
	{0x1EED, 0x1EED},
	{0x1EEF, 0x1EEF},
	{0x1EF1, 0x1EF1},
	{0x1EF3, 0x1EF3},
	{0x1EF5, 0x1EF5},
	{0x1EF7, 0x1EF7},
	{0x1EF9, 0x1EF9},
	{0x1EFB, 0x1EFB},
	{0x1EFD, 0x1EFD},
	{0x1EFF, 0x1F07},
	{0x1F10, 0x1F15},
	{0x1F20, 0x1F27},
	{0x1F30, 0x1F37},
	{0x1F40, 0x1F45},
	{0x1F50, 0x1F57},
	{0x1F60, 0x1F67},
	{0x1F70, 0x1F7D},
	{0x1F80, 0x1F87},
	{0x1F90, 0x1F97},
	{0x1FA0, 0x1FA7},
	{0x1FB0, 0x1FB4},
	{0x1FB6, 0x1FB7},
	{0x1FBE, 0x1FBE},
	{0x1FC2, 0x1FC4},
	{0x1FC6, 0x1FC7},
	{0x1FD0, 0x1FD3},
	{0x1FD6, 0x1FD7},
	{0x1FE0, 0x1FE7},
	{0x1FF2, 0x1FF4},
	{0x1FF6, 0x1FF7},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x210A, 0x210A},
	{0x210E, 0x210F},
	{0x2113, 0x2113},
	{0x212F, 0x212F},
	{0x2134, 0x2134},
	{0x2139, 0x2139},
	{0x213C, 0x213D},
	{0x2146, 0x2149},
	{0x214E, 0x214E},
	{0x2170, 0x217F},
	{0x2184, 0x2184},
	{0x24D0, 0x24E9},
	{0x2C30, 0x2C5F},
	{0x2C61, 0x2C61},
	{0x2C65, 0x2C66},
	{0x2C68, 0x2C68},
	{0x2C6A, 0x2C6A},
	{0x2C6C, 0x2C6C},
	{0x2C71, 0x2C71},
	{0x2C73, 0x2C74},
	{0x2C76, 0x2C7D},
	{0x2C81, 0x2C81},
	{0x2C83, 0x2C83},
	{0x2C85, 0x2C85},
	{0x2C87, 0x2C87},
	{0x2C89, 0x2C89},
	{0x2C8B, 0x2C8B},
	{0x2C8D, 0x2C8D},
	{0x2C8F, 0x2C8F},
	{0x2C91, 0x2C91},
	{0x2C93, 0x2C93},
	{0x2C95, 0x2C95},
	{0x2C97, 0x2C97},
	{0x2C99, 0x2C99},
	{0x2C9B, 0x2C9B},
	{0x2C9D, 0x2C9D},
	{0x2C9F, 0x2C9F},
	{0x2CA1, 0x2CA1},
	{0x2CA3, 0x2CA3},
	{0x2CA5, 0x2CA5},
	{0x2CA7, 0x2CA7},
	{0x2CA9, 0x2CA9},
	{0x2CAB, 0x2CAB},
	{0x2CAD, 0x2CAD},
	{0x2CAF, 0x2CAF},
	{0x2CB1, 0x2CB1},
	{0x2CB3, 0x2CB3},
	{0x2CB5, 0x2CB5},
	{0x2CB7, 0x2CB7},
	{0x2CB9, 0x2CB9},
	{0x2CBB, 0x2CBB},
	{0x2CBD, 0x2CBD},
	{0x2CBF, 0x2CBF},
	{0x2CC1, 0x2CC1},
	{0x2CC3, 0x2CC3},
	{0x2CC5, 0x2CC5},
	{0x2CC7, 0x2CC7},
	{0x2CC9, 0x2CC9},
	{0x2CCB, 0x2CCB},
	{0x2CCD, 0x2CCD},
	{0x2CCF, 0x2CCF},
	{0x2CD1, 0x2CD1},
	{0x2CD3, 0x2CD3},
	{0x2CD5, 0x2CD5},
	{0x2CD7, 0x2CD7},
	{0x2CD9, 0x2CD9},
	{0x2CDB, 0x2CDB},
	{0x2CDD, 0x2CDD},
	{0x2CDF, 0x2CDF},
	{0x2CE1, 0x2CE1},
	{0x2CE3, 0x2CE4},
	{0x2CEC, 0x2CEC},
	{0x2CEE, 0x2CEE},
	{0x2CF3, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0xA641, 0xA641},
	{0xA643, 0xA643},
	{0xA645, 0xA645},
	{0xA647, 0xA647},
	{0xA649, 0xA649},
	{0xA64B, 0xA64B},
	{0xA64D, 0xA64D},
	{0xA64F, 0xA64F},
	{0xA651, 0xA651},
	{0xA653, 0xA653},
	{0xA655, 0xA655},
	{0xA657, 0xA657},
	{0xA659, 0xA659},
	{0xA65B, 0xA65B},
	{0xA65D, 0xA65D},
	{0xA65F, 0xA65F},
	{0xA661, 0xA661},
	{0xA663, 0xA663},
	{0xA665, 0xA665},
	{0xA667, 0xA667},
	{0xA669, 0xA669},
	{0xA66B, 0xA66B},
	{0xA66D, 0xA66D},
	{0xA681, 0xA681},
	{0xA683, 0xA683},
	{0xA685, 0xA685},
	{0xA687, 0xA687},
	{0xA689, 0xA689},
	{0xA68B, 0xA68B},
	{0xA68D, 0xA68D},
	{0xA68F, 0xA68F},
	{0xA691, 0xA691},
	{0xA693, 0xA693},
	{0xA695, 0xA695},
	{0xA697, 0xA697},
	{0xA699, 0xA699},
	{0xA69B, 0xA69D},
	{0xA723, 0xA723},
	{0xA725, 0xA725},
	{0xA727, 0xA727},
	{0xA729, 0xA729},
	{0xA72B, 0xA72B},
	{0xA72D, 0xA72D},
	{0xA72F, 0xA731},
	{0xA733, 0xA733},
	{0xA735, 0xA735},
	{0xA737, 0xA737},
	{0xA739, 0xA739},
	{0xA73B, 0xA73B},
	{0xA73D, 0xA73D},
	{0xA73F, 0xA73F},
	{0xA741, 0xA741},
	{0xA743, 0xA743},
	{0xA745, 0xA745},
	{0xA747, 0xA747},
	{0xA749, 0xA749},
	{0xA74B, 0xA74B},
	{0xA74D, 0xA74D},
	{0xA74F, 0xA74F},
	{0xA751, 0xA751},
	{0xA753, 0xA753},
	{0xA755, 0xA755},
	{0xA757, 0xA757},
	{0xA759, 0xA759},
	{0xA75B, 0xA75B},
	{0xA75D, 0xA75D},
	{0xA75F, 0xA75F},
	{0xA761, 0xA761},
	{0xA763, 0xA763},
	{0xA765, 0xA765},
	{0xA767, 0xA767},
	{0xA769, 0xA769},
	{0xA76B, 0xA76B},
	{0xA76D, 0xA76D},
	{0xA76F, 0xA778},
	{0xA77A, 0xA77A},
	{0xA77C, 0xA77C},
	{0xA77F, 0xA77F},
	{0xA781, 0xA781},
	{0xA783, 0xA783},
	{0xA785, 0xA785},
	{0xA787, 0xA787},
	{0xA78C, 0xA78C},
	{0xA78E, 0xA78E},
	{0xA791, 0xA791},
	{0xA793, 0xA795},
	{0xA797, 0xA797},
	{0xA799, 0xA799},
	{0xA79B, 0xA79B},
	{0xA79D, 0xA79D},
	{0xA79F, 0xA79F},
	{0xA7A1, 0xA7A1},
	{0xA7A3, 0xA7A3},
	{0xA7A5, 0xA7A5},
	{0xA7A7, 0xA7A7},
	{0xA7A9, 0xA7A9},
	{0xA7AF, 0xA7AF},
	{0xA7B5, 0xA7B5},
	{0xA7B7, 0xA7B7},
	{0xA7B9, 0xA7B9},
	{0xA7BB, 0xA7BB},
	{0xA7BD, 0xA7BD},
	{0xA7BF, 0xA7BF},
	{0xA7C1, 0xA7C1},
	{0xA7C3, 0xA7C3},
	{0xA7C8, 0xA7C8},
	{0xA7CA, 0xA7CA},
	{0xA7CD, 0xA7CD},
	{0xA7CF, 0xA7CF},
	{0xA7D1, 0xA7D1},
	{0xA7D3, 0xA7D3},
	{0xA7D5, 0xA7D5},
	{0xA7D7, 0xA7D7},
	{0xA7D9, 0xA7D9},
	{0xA7DB, 0xA7DB},
	{0xA7F1, 0xA7F4},
	{0xA7F6, 0xA7F6},
	{0xA7F8, 0xA7FA},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABBF},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFF41, 0xFF5A},
	{0x10428, 0x1044F},
	{0x104D8, 0x104FB},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x10780, 0x10780},
	{0x10783, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10CC0, 0x10CF2},
	{0x10D70, 0x10D85},
	{0x118C0, 0x118DF},
	{0x16E60, 0x16E7F},
	{0x16EBB, 0x16ED3},
	{0x1D41A, 0x1D433},
	{0x1D44E, 0x1D454},
	{0x1D456, 0x1D467},
	{0x1D482, 0x1D49B},
	{0x1D4B6, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D4CF},
	{0x1D4EA, 0x1D503},
	{0x1D51E, 0x1D537},
	{0x1D552, 0x1D56B},
	{0x1D586, 0x1D59F},
	{0x1D5BA, 0x1D5D3},
	{0x1D5EE, 0x1D607},
	{0x1D622, 0x1D63B},
	{0x1D656, 0x1D66F},
	{0x1D68A, 0x1D6A5},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6E1},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D71B},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D755},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D78F},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7C9},
	{0x1D7CB, 0x1D7CB},
	{0x1DF00, 0x1DF09},
	{0x1DF0B, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E030, 0x1E06D},
	{0x1E922, 0x1E943},
};

static const UnicodeRange kRanges_Math[] = {
	{0x2B, 0x2B},
	{0x3C, 0x3E},
	{0x5E, 0x5E},
	{0x7C, 0x7C},
	{0x7E, 0x7E},
	{0xAC, 0xAC},
	{0xB1, 0xB1},
	{0xD7, 0xD7},
	{0xF7, 0xF7},
	{0x3D0, 0x3D2},
	{0x3D5, 0x3D5},
	{0x3F0, 0x3F1},
	{0x3F4, 0x3F6},
	{0x606, 0x608},
	{0x2016, 0x2016},
	{0x2032, 0x2034},
	{0x2040, 0x2040},
	{0x2044, 0x2044},
	{0x2052, 0x2052},
	{0x2061, 0x2064},
	{0x207A, 0x207E},
	{0x208A, 0x208E},
	{0x20D0, 0x20DC},
	{0x20E1, 0x20E1},
	{0x20E5, 0x20E6},
	{0x20EB, 0x20EF},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2118, 0x211D},
	{0x2124, 0x2124},
	{0x2128, 0x2129},
	{0x212C, 0x212D},
	{0x212F, 0x2131},
	{0x2133, 0x2138},
	{0x213C, 0x2149},
	{0x214B, 0x214B},
	{0x2190, 0x21A7},
	{0x21A9, 0x21AE},
	{0x21B0, 0x21B1},
	{0x21B6, 0x21B7},
	{0x21BC, 0x21DB},
	{0x21DD, 0x21DD},
	{0x21E4, 0x21E5},
	{0x21F4, 0x22FF},
	{0x2308, 0x230B},
	{0x2320, 0x2321},
	{0x237C, 0x237C},
	{0x239B, 0x23B5},
	{0x23B7, 0x23B7},
	{0x23D0, 0x23D0},
	{0x23DC, 0x23E2},
	{0x25A0, 0x25A1},
	{0x25AE, 0x25B7},
	{0x25BC, 0x25C1},
	{0x25C6, 0x25C7},
	{0x25CA, 0x25CB},
	{0x25CF, 0x25D3},
	{0x25E2, 0x25E2},
	{0x25E4, 0x25E4},
	{0x25E7, 0x25EC},
	{0x25F8, 0x25FF},
	{0x2605, 0x2606},
	{0x2640, 0x2640},
	{0x2642, 0x2642},
	{0x2660, 0x2663},
	{0x266D, 0x266F},
	{0x27C0, 0x27FF},
	{0x2900, 0x2AFF},
	{0x2B30, 0x2B44},
	{0x2B47, 0x2B4C},
	{0xFB29, 0xFB29},
	{0xFE61, 0xFE66},
	{0xFE68, 0xFE68},
	{0xFF0B, 0xFF0B},
	{0xFF1C, 0xFF1E},
	{0xFF3C, 0xFF3C},
	{0xFF3E, 0xFF3E},
	{0xFF5C, 0xFF5C},
	{0xFF5E, 0xFF5E},
	{0xFFE2, 0xFFE2},
	{0xFFE9, 0xFFEC},
	{0x10D8E, 0x10D8F},
	{0x1CEF0, 0x1CEF0},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D7CB},
	{0x1D7CE, 0x1D7FF},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1EEF0, 0x1EEF1},
	{0x1F8D0, 0x1F8D8},
};

static const UnicodeRange kRanges_Noncharacter_Code_Point[] = {
	{0xFDD0, 0xFDEF},
	{0xFFFE, 0xFFFF},
	{0x1FFFE, 0x1FFFF},
	{0x2FFFE, 0x2FFFF},
	{0x3FFFE, 0x3FFFF},
	{0x4FFFE, 0x4FFFF},
	{0x5FFFE, 0x5FFFF},
	{0x6FFFE, 0x6FFFF},
	{0x7FFFE, 0x7FFFF},
	{0x8FFFE, 0x8FFFF},
	{0x9FFFE, 0x9FFFF},
	{0xAFFFE, 0xAFFFF},
	{0xBFFFE, 0xBFFFF},
	{0xCFFFE, 0xCFFFF},
	{0xDFFFE, 0xDFFFF},
	{0xEFFFE, 0xEFFFF},
	{0xFFFFE, 0xFFFFF},
	{0x10FFFE, 0x10FFFF},
};

static const UnicodeRange kRanges_Pattern_Syntax[] = {
	{0x21, 0x2F},
	{0x3A, 0x40},
	{0x5B, 0x5E},
	{0x60, 0x60},
	{0x7B, 0x7E},
	{0xA1, 0xA7},
	{0xA9, 0xA9},
	{0xAB, 0xAC},
	{0xAE, 0xAE},
	{0xB0, 0xB1},
	{0xB6, 0xB6},
	{0xBB, 0xBB},
	{0xBF, 0xBF},
	{0xD7, 0xD7},
	{0xF7, 0xF7},
	{0x2010, 0x2027},
	{0x2030, 0x203E},
	{0x2041, 0x2053},
	{0x2055, 0x205E},
	{0x2190, 0x245F},
	{0x2500, 0x2775},
	{0x2794, 0x2BFF},
	{0x2E00, 0x2E7F},
	{0x3001, 0x3003},
	{0x3008, 0x3020},
	{0x3030, 0x3030},
	{0xFD3E, 0xFD3F},
	{0xFE45, 0xFE46},
};

static const UnicodeRange kRanges_Pattern_White_Space[] = {
	{0x9, 0xD},
	{0x20, 0x20},
	{0x85, 0x85},
	{0x200E, 0x200F},
	{0x2028, 0x2029},
};

static const UnicodeRange kRanges_Quotation_Mark[] = {
	{0x22, 0x22},
	{0x27, 0x27},
	{0xAB, 0xAB},
	{0xBB, 0xBB},
	{0x2018, 0x201F},
	{0x2039, 0x203A},
	{0x2E42, 0x2E42},
	{0x300C, 0x300F},
	{0x301D, 0x301F},
	{0xFE41, 0xFE44},
	{0xFF02, 0xFF02},
	{0xFF07, 0xFF07},
	{0xFF62, 0xFF63},
};

static const UnicodeRange kRanges_Radical[] = {
	{0x2E80, 0x2E99},
	{0x2E9B, 0x2EF3},
	{0x2F00, 0x2FD5},
};

static const UnicodeRange kRanges_Regional_Indicator[] = {
	{0x1F1E6, 0x1F1FF},
};

static const UnicodeRange kRanges_Sentence_Terminal[] = {
	{0x21, 0x21},
	{0x2E, 0x2E},
	{0x3F, 0x3F},
	{0x589, 0x589},
	{0x61D, 0x61F},
	{0x6D4, 0x6D4},
	{0x700, 0x702},
	{0x7F9, 0x7F9},
	{0x837, 0x837},
	{0x839, 0x839},
	{0x83D, 0x83E},
	{0x964, 0x965},
	{0x104A, 0x104B},
	{0x1362, 0x1362},
	{0x1367, 0x1368},
	{0x166E, 0x166E},
	{0x1735, 0x1736},
	{0x17D4, 0x17D5},
	{0x1803, 0x1803},
	{0x1809, 0x1809},
	{0x1944, 0x1945},
	{0x1AA8, 0x1AAB},
	{0x1B4E, 0x1B4F},
	{0x1B5A, 0x1B5B},
	{0x1B5E, 0x1B5F},
	{0x1B7D, 0x1B7F},
	{0x1C3B, 0x1C3C},
	{0x1C7E, 0x1C7F},
	{0x2024, 0x2024},
	{0x203C, 0x203D},
	{0x2047, 0x2049},
	{0x2CF9, 0x2CFB},
	{0x2E2E, 0x2E2E},
	{0x2E3C, 0x2E3C},
	{0x2E53, 0x2E54},
	{0x3002, 0x3002},
	{0xA4FF, 0xA4FF},
	{0xA60E, 0xA60F},
	{0xA6F3, 0xA6F3},
	{0xA6F7, 0xA6F7},
	{0xA876, 0xA877},
	{0xA8CE, 0xA8CF},
	{0xA92F, 0xA92F},
	{0xA9C8, 0xA9C9},
	{0xAA5D, 0xAA5F},
	{0xAAF0, 0xAAF1},
	{0xABEB, 0xABEB},
	{0xFE12, 0xFE12},
	{0xFE15, 0xFE16},
	{0xFE52, 0xFE52},
	{0xFE56, 0xFE57},
	{0xFF01, 0xFF01},
	{0xFF0E, 0xFF0E},
	{0xFF1F, 0xFF1F},
	{0xFF61, 0xFF61},
	{0x10A56, 0x10A57},
	{0x10F55, 0x10F59},
	{0x10F86, 0x10F89},
	{0x11047, 0x11048},
	{0x110BE, 0x110C1},
	{0x11141, 0x11143},
	{0x111C5, 0x111C6},
	{0x111CD, 0x111CD},
	{0x111DE, 0x111DF},
	{0x11238, 0x11239},
	{0x1123B, 0x1123C},
	{0x112A9, 0x112A9},
	{0x113D4, 0x113D5},
	{0x1144B, 0x1144C},
	{0x115C2, 0x115C3},
	{0x115C9, 0x115D7},
	{0x11641, 0x11642},
	{0x1173C, 0x1173E},
	{0x11944, 0x11944},
	{0x11946, 0x11946},
	{0x11A42, 0x11A43},
	{0x11A9B, 0x11A9C},
	{0x11C41, 0x11C42},
	{0x11EF7, 0x11EF8},
	{0x11F43, 0x11F44},
	{0x16A6E, 0x16A6F},
	{0x16AF5, 0x16AF5},
	{0x16B37, 0x16B38},
	{0x16B44, 0x16B44},
	{0x16D6E, 0x16D6F},
	{0x16E98, 0x16E98},
	{0x1BC9F, 0x1BC9F},
	{0x1DA88, 0x1DA88},
};

static const UnicodeRange kRanges_Soft_Dotted[] = {
	{0x69, 0x6A},
	{0x12F, 0x12F},
	{0x249, 0x249},
	{0x268, 0x268},
	{0x29D, 0x29D},
	{0x2B2, 0x2B2},
	{0x3F3, 0x3F3},
	{0x456, 0x456},
	{0x458, 0x458},
	{0x1D62, 0x1D62},
	{0x1D96, 0x1D96},
	{0x1DA4, 0x1DA4},
	{0x1DA8, 0x1DA8},
	{0x1E2D, 0x1E2D},
	{0x1ECB, 0x1ECB},
	{0x2071, 0x2071},
	{0x2148, 0x2149},
	{0x2C7C, 0x2C7C},
	{0x1D422, 0x1D423},
	{0x1D456, 0x1D457},
	{0x1D48A, 0x1D48B},
	{0x1D4BE, 0x1D4BF},
	{0x1D4F2, 0x1D4F3},
	{0x1D526, 0x1D527},
	{0x1D55A, 0x1D55B},
	{0x1D58E, 0x1D58F},
	{0x1D5C2, 0x1D5C3},
	{0x1D5F6, 0x1D5F7},
	{0x1D62A, 0x1D62B},
	{0x1D65E, 0x1D65F},
	{0x1D692, 0x1D693},
	{0x1DF1A, 0x1DF1A},
	{0x1E04C, 0x1E04D},
	{0x1E068, 0x1E068},
};

static const UnicodeRange kRanges_Terminal_Punctuation[] = {
	{0x21, 0x21},
	{0x2C, 0x2C},
	{0x2E, 0x2E},
	{0x3A, 0x3B},
	{0x3F, 0x3F},
	{0x37E, 0x37E},
	{0x387, 0x387},
	{0x589, 0x589},
	{0x5C3, 0x5C3},
	{0x60C, 0x60C},
	{0x61B, 0x61B},
	{0x61D, 0x61F},
	{0x6D4, 0x6D4},
	{0x700, 0x70A},
	{0x70C, 0x70C},
	{0x7F8, 0x7F9},
	{0x830, 0x835},
	{0x837, 0x83E},
	{0x85E, 0x85E},
	{0x964, 0x965},
	{0xE5A, 0xE5B},
	{0xF08, 0xF08},
	{0xF0D, 0xF12},
	{0x104A, 0x104B},
	{0x1361, 0x1368},
	{0x166E, 0x166E},
	{0x16EB, 0x16ED},
	{0x1735, 0x1736},
	{0x17D4, 0x17D6},
	{0x17DA, 0x17DA},
	{0x1802, 0x1805},
	{0x1808, 0x1809},
	{0x1944, 0x1945},
	{0x1AA8, 0x1AAB},
	{0x1B4E, 0x1B4F},
	{0x1B5A, 0x1B5B},
	{0x1B5D, 0x1B5F},
	{0x1B7D, 0x1B7F},
	{0x1C3B, 0x1C3F},
	{0x1C7E, 0x1C7F},
	{0x2024, 0x2024},
	{0x203C, 0x203D},
	{0x2047, 0x2049},
	{0x2CF9, 0x2CFB},
	{0x2E2E, 0x2E2E},
	{0x2E3C, 0x2E3C},
	{0x2E41, 0x2E41},
	{0x2E4C, 0x2E4C},
	{0x2E4E, 0x2E4F},
	{0x2E53, 0x2E54},
	{0x3001, 0x3002},
	{0xA4FE, 0xA4FF},
	{0xA60D, 0xA60F},
	{0xA6F3, 0xA6F7},
	{0xA876, 0xA877},
	{0xA8CE, 0xA8CF},
	{0xA92F, 0xA92F},
	{0xA9C7, 0xA9C9},
	{0xAA5D, 0xAA5F},
	{0xAADF, 0xAADF},
	{0xAAF0, 0xAAF1},
	{0xABEB, 0xABEB},
	{0xFE12, 0xFE12},
	{0xFE15, 0xFE16},
	{0xFE50, 0xFE52},
	{0xFE54, 0xFE57},
	{0xFF01, 0xFF01},
	{0xFF0C, 0xFF0C},
	{0xFF0E, 0xFF0E},
	{0xFF1A, 0xFF1B},
	{0xFF1F, 0xFF1F},
	{0xFF61, 0xFF61},
	{0xFF64, 0xFF64},
	{0x1039F, 0x1039F},
	{0x103D0, 0x103D0},
	{0x10857, 0x10857},
	{0x1091F, 0x1091F},
	{0x10A56, 0x10A57},
	{0x10AF0, 0x10AF5},
	{0x10B3A, 0x10B3F},
	{0x10B99, 0x10B9C},
	{0x10F55, 0x10F59},
	{0x10F86, 0x10F89},
	{0x11047, 0x1104D},
	{0x110BE, 0x110C1},
	{0x11141, 0x11143},
	{0x111C5, 0x111C6},
	{0x111CD, 0x111CD},
	{0x111DE, 0x111DF},
	{0x11238, 0x1123C},
	{0x112A9, 0x112A9},
	{0x113D4, 0x113D5},
	{0x1144B, 0x1144D},
	{0x1145A, 0x1145B},
	{0x115C2, 0x115C5},
	{0x115C9, 0x115D7},
	{0x11641, 0x11642},
	{0x1173C, 0x1173E},
	{0x11944, 0x11944},
	{0x11946, 0x11946},
	{0x11A42, 0x11A43},
	{0x11A9B, 0x11A9C},
	{0x11AA1, 0x11AA2},
	{0x11C41, 0x11C43},
	{0x11C71, 0x11C71},
	{0x11EF7, 0x11EF8},
	{0x11F43, 0x11F44},
	{0x12470, 0x12474},
	{0x16A6E, 0x16A6F},
	{0x16AF5, 0x16AF5},
	{0x16B37, 0x16B39},
	{0x16B44, 0x16B44},
	{0x16D6E, 0x16D6F},
	{0x16E97, 0x16E98},
	{0x1BC9F, 0x1BC9F},
	{0x1DA87, 0x1DA8A},
};

static const UnicodeRange kRanges_Unified_Ideograph[] = {
	{0x3400, 0x4DBF},
	{0x4E00, 0x9FFF},
	{0xFA0E, 0xFA0F},
	{0xFA11, 0xFA11},
	{0xFA13, 0xFA14},
	{0xFA1F, 0xFA1F},
	{0xFA21, 0xFA21},
	{0xFA23, 0xFA24},
	{0xFA27, 0xFA29},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodeRange kRanges_Uppercase[] = {
	{0x41, 0x5A},
	{0xC0, 0xD6},
	{0xD8, 0xDE},
	{0x100, 0x100},
	{0x102, 0x102},
	{0x104, 0x104},
	{0x106, 0x106},
	{0x108, 0x108},
	{0x10A, 0x10A},
	{0x10C, 0x10C},
	{0x10E, 0x10E},
	{0x110, 0x110},
	{0x112, 0x112},
	{0x114, 0x114},
	{0x116, 0x116},
	{0x118, 0x118},
	{0x11A, 0x11A},
	{0x11C, 0x11C},
	{0x11E, 0x11E},
	{0x120, 0x120},
	{0x122, 0x122},
	{0x124, 0x124},
	{0x126, 0x126},
	{0x128, 0x128},
	{0x12A, 0x12A},
	{0x12C, 0x12C},
	{0x12E, 0x12E},
	{0x130, 0x130},
	{0x132, 0x132},
	{0x134, 0x134},
	{0x136, 0x136},
	{0x139, 0x139},
	{0x13B, 0x13B},
	{0x13D, 0x13D},
	{0x13F, 0x13F},
	{0x141, 0x141},
	{0x143, 0x143},
	{0x145, 0x145},
	{0x147, 0x147},
	{0x14A, 0x14A},
	{0x14C, 0x14C},
	{0x14E, 0x14E},
	{0x150, 0x150},
	{0x152, 0x152},
	{0x154, 0x154},
	{0x156, 0x156},
	{0x158, 0x158},
	{0x15A, 0x15A},
	{0x15C, 0x15C},
	{0x15E, 0x15E},
	{0x160, 0x160},
	{0x162, 0x162},
	{0x164, 0x164},
	{0x166, 0x166},
	{0x168, 0x168},
	{0x16A, 0x16A},
	{0x16C, 0x16C},
	{0x16E, 0x16E},
	{0x170, 0x170},
	{0x172, 0x172},
	{0x174, 0x174},
	{0x176, 0x176},
	{0x178, 0x179},
	{0x17B, 0x17B},
	{0x17D, 0x17D},
	{0x181, 0x182},
	{0x184, 0x184},
	{0x186, 0x187},
	{0x189, 0x18B},
	{0x18E, 0x191},
	{0x193, 0x194},
	{0x196, 0x198},
	{0x19C, 0x19D},
	{0x19F, 0x1A0},
	{0x1A2, 0x1A2},
	{0x1A4, 0x1A4},
	{0x1A6, 0x1A7},
	{0x1A9, 0x1A9},
	{0x1AC, 0x1AC},
	{0x1AE, 0x1AF},
	{0x1B1, 0x1B3},
	{0x1B5, 0x1B5},
	{0x1B7, 0x1B8},
	{0x1BC, 0x1BC},
	{0x1C4, 0x1C4},
	{0x1C7, 0x1C7},
	{0x1CA, 0x1CA},
	{0x1CD, 0x1CD},
	{0x1CF, 0x1CF},
	{0x1D1, 0x1D1},
	{0x1D3, 0x1D3},
	{0x1D5, 0x1D5},
	{0x1D7, 0x1D7},
	{0x1D9, 0x1D9},
	{0x1DB, 0x1DB},
	{0x1DE, 0x1DE},
	{0x1E0, 0x1E0},
	{0x1E2, 0x1E2},
	{0x1E4, 0x1E4},
	{0x1E6, 0x1E6},
	{0x1E8, 0x1E8},
	{0x1EA, 0x1EA},
	{0x1EC, 0x1EC},
	{0x1EE, 0x1EE},
	{0x1F1, 0x1F1},
	{0x1F4, 0x1F4},
	{0x1F6, 0x1F8},
	{0x1FA, 0x1FA},
	{0x1FC, 0x1FC},
	{0x1FE, 0x1FE},
	{0x200, 0x200},
	{0x202, 0x202},
	{0x204, 0x204},
	{0x206, 0x206},
	{0x208, 0x208},
	{0x20A, 0x20A},
	{0x20C, 0x20C},
	{0x20E, 0x20E},
	{0x210, 0x210},
	{0x212, 0x212},
	{0x214, 0x214},
	{0x216, 0x216},
	{0x218, 0x218},
	{0x21A, 0x21A},
	{0x21C, 0x21C},
	{0x21E, 0x21E},
	{0x220, 0x220},
	{0x222, 0x222},
	{0x224, 0x224},
	{0x226, 0x226},
	{0x228, 0x228},
	{0x22A, 0x22A},
	{0x22C, 0x22C},
	{0x22E, 0x22E},
	{0x230, 0x230},
	{0x232, 0x232},
	{0x23A, 0x23B},
	{0x23D, 0x23E},
	{0x241, 0x241},
	{0x243, 0x246},
	{0x248, 0x248},
	{0x24A, 0x24A},
	{0x24C, 0x24C},
	{0x24E, 0x24E},
	{0x370, 0x370},
	{0x372, 0x372},
	{0x376, 0x376},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x38F},
	{0x391, 0x3A1},
	{0x3A3, 0x3AB},
	{0x3CF, 0x3CF},
	{0x3D2, 0x3D4},
	{0x3D8, 0x3D8},
	{0x3DA, 0x3DA},
	{0x3DC, 0x3DC},
	{0x3DE, 0x3DE},
	{0x3E0, 0x3E0},
	{0x3E2, 0x3E2},
	{0x3E4, 0x3E4},
	{0x3E6, 0x3E6},
	{0x3E8, 0x3E8},
	{0x3EA, 0x3EA},
	{0x3EC, 0x3EC},
	{0x3EE, 0x3EE},
	{0x3F4, 0x3F4},
	{0x3F7, 0x3F7},
	{0x3F9, 0x3FA},
	{0x3FD, 0x42F},
	{0x460, 0x460},
	{0x462, 0x462},
	{0x464, 0x464},
	{0x466, 0x466},
	{0x468, 0x468},
	{0x46A, 0x46A},
	{0x46C, 0x46C},
	{0x46E, 0x46E},
	{0x470, 0x470},
	{0x472, 0x472},
	{0x474, 0x474},
	{0x476, 0x476},
	{0x478, 0x478},
	{0x47A, 0x47A},
	{0x47C, 0x47C},
	{0x47E, 0x47E},
	{0x480, 0x480},
	{0x48A, 0x48A},
	{0x48C, 0x48C},
	{0x48E, 0x48E},
	{0x490, 0x490},
	{0x492, 0x492},
	{0x494, 0x494},
	{0x496, 0x496},
	{0x498, 0x498},
	{0x49A, 0x49A},
	{0x49C, 0x49C},
	{0x49E, 0x49E},
	{0x4A0, 0x4A0},
	{0x4A2, 0x4A2},
	{0x4A4, 0x4A4},
	{0x4A6, 0x4A6},
	{0x4A8, 0x4A8},
	{0x4AA, 0x4AA},
	{0x4AC, 0x4AC},
	{0x4AE, 0x4AE},
	{0x4B0, 0x4B0},
	{0x4B2, 0x4B2},
	{0x4B4, 0x4B4},
	{0x4B6, 0x4B6},
	{0x4B8, 0x4B8},
	{0x4BA, 0x4BA},
	{0x4BC, 0x4BC},
	{0x4BE, 0x4BE},
	{0x4C0, 0x4C1},
	{0x4C3, 0x4C3},
	{0x4C5, 0x4C5},
	{0x4C7, 0x4C7},
	{0x4C9, 0x4C9},
	{0x4CB, 0x4CB},
	{0x4CD, 0x4CD},
	{0x4D0, 0x4D0},
	{0x4D2, 0x4D2},
	{0x4D4, 0x4D4},
	{0x4D6, 0x4D6},
	{0x4D8, 0x4D8},
	{0x4DA, 0x4DA},
	{0x4DC, 0x4DC},
	{0x4DE, 0x4DE},
	{0x4E0, 0x4E0},
	{0x4E2, 0x4E2},
	{0x4E4, 0x4E4},
	{0x4E6, 0x4E6},
	{0x4E8, 0x4E8},
	{0x4EA, 0x4EA},
	{0x4EC, 0x4EC},
	{0x4EE, 0x4EE},
	{0x4F0, 0x4F0},
	{0x4F2, 0x4F2},
	{0x4F4, 0x4F4},
	{0x4F6, 0x4F6},
	{0x4F8, 0x4F8},
	{0x4FA, 0x4FA},
	{0x4FC, 0x4FC},
	{0x4FE, 0x4FE},
	{0x500, 0x500},
	{0x502, 0x502},
	{0x504, 0x504},
	{0x506, 0x506},
	{0x508, 0x508},
	{0x50A, 0x50A},
	{0x50C, 0x50C},
	{0x50E, 0x50E},
	{0x510, 0x510},
	{0x512, 0x512},
	{0x514, 0x514},
	{0x516, 0x516},
	{0x518, 0x518},
	{0x51A, 0x51A},
	{0x51C, 0x51C},
	{0x51E, 0x51E},
	{0x520, 0x520},
	{0x522, 0x522},
	{0x524, 0x524},
	{0x526, 0x526},
	{0x528, 0x528},
	{0x52A, 0x52A},
	{0x52C, 0x52C},
	{0x52E, 0x52E},
	{0x531, 0x556},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x13A0, 0x13F5},
	{0x1C89, 0x1C89},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1E00, 0x1E00},
	{0x1E02, 0x1E02},
	{0x1E04, 0x1E04},
	{0x1E06, 0x1E06},
	{0x1E08, 0x1E08},
	{0x1E0A, 0x1E0A},
	{0x1E0C, 0x1E0C},
	{0x1E0E, 0x1E0E},
	{0x1E10, 0x1E10},
	{0x1E12, 0x1E12},
	{0x1E14, 0x1E14},
	{0x1E16, 0x1E16},
	{0x1E18, 0x1E18},
	{0x1E1A, 0x1E1A},
	{0x1E1C, 0x1E1C},
	{0x1E1E, 0x1E1E},
	{0x1E20, 0x1E20},
	{0x1E22, 0x1E22},
	{0x1E24, 0x1E24},
	{0x1E26, 0x1E26},
	{0x1E28, 0x1E28},
	{0x1E2A, 0x1E2A},
	{0x1E2C, 0x1E2C},
	{0x1E2E, 0x1E2E},
	{0x1E30, 0x1E30},
	{0x1E32, 0x1E32},
	{0x1E34, 0x1E34},
	{0x1E36, 0x1E36},
	{0x1E38, 0x1E38},
	{0x1E3A, 0x1E3A},
	{0x1E3C, 0x1E3C},
	{0x1E3E, 0x1E3E},
	{0x1E40, 0x1E40},
	{0x1E42, 0x1E42},
	{0x1E44, 0x1E44},
	{0x1E46, 0x1E46},
	{0x1E48, 0x1E48},
	{0x1E4A, 0x1E4A},
	{0x1E4C, 0x1E4C},
	{0x1E4E, 0x1E4E},
	{0x1E50, 0x1E50},
	{0x1E52, 0x1E52},
	{0x1E54, 0x1E54},
	{0x1E56, 0x1E56},
	{0x1E58, 0x1E58},
	{0x1E5A, 0x1E5A},
	{0x1E5C, 0x1E5C},
	{0x1E5E, 0x1E5E},
	{0x1E60, 0x1E60},
	{0x1E62, 0x1E62},
	{0x1E64, 0x1E64},
	{0x1E66, 0x1E66},
	{0x1E68, 0x1E68},
	{0x1E6A, 0x1E6A},
	{0x1E6C, 0x1E6C},
	{0x1E6E, 0x1E6E},
	{0x1E70, 0x1E70},
	{0x1E72, 0x1E72},
	{0x1E74, 0x1E74},
	{0x1E76, 0x1E76},
	{0x1E78, 0x1E78},
	{0x1E7A, 0x1E7A},
	{0x1E7C, 0x1E7C},
	{0x1E7E, 0x1E7E},
	{0x1E80, 0x1E80},
	{0x1E82, 0x1E82},
	{0x1E84, 0x1E84},
	{0x1E86, 0x1E86},
	{0x1E88, 0x1E88},
	{0x1E8A, 0x1E8A},
	{0x1E8C, 0x1E8C},
	{0x1E8E, 0x1E8E},
	{0x1E90, 0x1E90},
	{0x1E92, 0x1E92},
	{0x1E94, 0x1E94},
	{0x1E9E, 0x1E9E},
	{0x1EA0, 0x1EA0},
	{0x1EA2, 0x1EA2},
	{0x1EA4, 0x1EA4},
	{0x1EA6, 0x1EA6},
	{0x1EA8, 0x1EA8},
	{0x1EAA, 0x1EAA},
	{0x1EAC, 0x1EAC},
	{0x1EAE, 0x1EAE},
	{0x1EB0, 0x1EB0},
	{0x1EB2, 0x1EB2},
	{0x1EB4, 0x1EB4},
	{0x1EB6, 0x1EB6},
	{0x1EB8, 0x1EB8},
	{0x1EBA, 0x1EBA},
	{0x1EBC, 0x1EBC},
	{0x1EBE, 0x1EBE},
	{0x1EC0, 0x1EC0},
	{0x1EC2, 0x1EC2},
	{0x1EC4, 0x1EC4},
	{0x1EC6, 0x1EC6},
	{0x1EC8, 0x1EC8},
	{0x1ECA, 0x1ECA},
	{0x1ECC, 0x1ECC},
	{0x1ECE, 0x1ECE},
	{0x1ED0, 0x1ED0},
	{0x1ED2, 0x1ED2},
	{0x1ED4, 0x1ED4},
	{0x1ED6, 0x1ED6},
	{0x1ED8, 0x1ED8},
	{0x1EDA, 0x1EDA},
	{0x1EDC, 0x1EDC},
	{0x1EDE, 0x1EDE},
	{0x1EE0, 0x1EE0},
	{0x1EE2, 0x1EE2},
	{0x1EE4, 0x1EE4},
	{0x1EE6, 0x1EE6},
	{0x1EE8, 0x1EE8},
	{0x1EEA, 0x1EEA},
	{0x1EEC, 0x1EEC},
	{0x1EEE, 0x1EEE},
	{0x1EF0, 0x1EF0},
	{0x1EF2, 0x1EF2},
	{0x1EF4, 0x1EF4},
	{0x1EF6, 0x1EF6},
	{0x1EF8, 0x1EF8},
	{0x1EFA, 0x1EFA},
	{0x1EFC, 0x1EFC},
	{0x1EFE, 0x1EFE},
	{0x1F08, 0x1F0F},
	{0x1F18, 0x1F1D},
	{0x1F28, 0x1F2F},
	{0x1F38, 0x1F3F},
	{0x1F48, 0x1F4D},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F5F},
	{0x1F68, 0x1F6F},
	{0x1FB8, 0x1FBB},
	{0x1FC8, 0x1FCB},
	{0x1FD8, 0x1FDB},
	{0x1FE8, 0x1FEC},
	{0x1FF8, 0x1FFB},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210B, 0x210D},
	{0x2110, 0x2112},
	{0x2115, 0x2115},
	{0x2119, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x212D},
	{0x2130, 0x2133},
	{0x213E, 0x213F},
	{0x2145, 0x2145},
	{0x2160, 0x216F},
	{0x2183, 0x2183},
	{0x24B6, 0x24CF},
	{0x2C00, 0x2C2F},
	{0x2C60, 0x2C60},
	{0x2C62, 0x2C64},
	{0x2C67, 0x2C67},
	{0x2C69, 0x2C69},
	{0x2C6B, 0x2C6B},
	{0x2C6D, 0x2C70},
	{0x2C72, 0x2C72},
	{0x2C75, 0x2C75},
	{0x2C7E, 0x2C80},
	{0x2C82, 0x2C82},
	{0x2C84, 0x2C84},
	{0x2C86, 0x2C86},
	{0x2C88, 0x2C88},
	{0x2C8A, 0x2C8A},
	{0x2C8C, 0x2C8C},
	{0x2C8E, 0x2C8E},
	{0x2C90, 0x2C90},
	{0x2C92, 0x2C92},
	{0x2C94, 0x2C94},
	{0x2C96, 0x2C96},
	{0x2C98, 0x2C98},
	{0x2C9A, 0x2C9A},
	{0x2C9C, 0x2C9C},
	{0x2C9E, 0x2C9E},
	{0x2CA0, 0x2CA0},
	{0x2CA2, 0x2CA2},
	{0x2CA4, 0x2CA4},
	{0x2CA6, 0x2CA6},
	{0x2CA8, 0x2CA8},
	{0x2CAA, 0x2CAA},
	{0x2CAC, 0x2CAC},
	{0x2CAE, 0x2CAE},
	{0x2CB0, 0x2CB0},
	{0x2CB2, 0x2CB2},
	{0x2CB4, 0x2CB4},
	{0x2CB6, 0x2CB6},
	{0x2CB8, 0x2CB8},
	{0x2CBA, 0x2CBA},
	{0x2CBC, 0x2CBC},
	{0x2CBE, 0x2CBE},
	{0x2CC0, 0x2CC0},
	{0x2CC2, 0x2CC2},
	{0x2CC4, 0x2CC4},
	{0x2CC6, 0x2CC6},
	{0x2CC8, 0x2CC8},
	{0x2CCA, 0x2CCA},
	{0x2CCC, 0x2CCC},
	{0x2CCE, 0x2CCE},
	{0x2CD0, 0x2CD0},
	{0x2CD2, 0x2CD2},
	{0x2CD4, 0x2CD4},
	{0x2CD6, 0x2CD6},
	{0x2CD8, 0x2CD8},
	{0x2CDA, 0x2CDA},
	{0x2CDC, 0x2CDC},
	{0x2CDE, 0x2CDE},
	{0x2CE0, 0x2CE0},
	{0x2CE2, 0x2CE2},
	{0x2CEB, 0x2CEB},
	{0x2CED, 0x2CED},
	{0x2CF2, 0x2CF2},
	{0xA640, 0xA640},
	{0xA642, 0xA642},
	{0xA644, 0xA644},
	{0xA646, 0xA646},
	{0xA648, 0xA648},
	{0xA64A, 0xA64A},
	{0xA64C, 0xA64C},
	{0xA64E, 0xA64E},
	{0xA650, 0xA650},
	{0xA652, 0xA652},
	{0xA654, 0xA654},
	{0xA656, 0xA656},
	{0xA658, 0xA658},
	{0xA65A, 0xA65A},
	{0xA65C, 0xA65C},
	{0xA65E, 0xA65E},
	{0xA660, 0xA660},
	{0xA662, 0xA662},
	{0xA664, 0xA664},
	{0xA666, 0xA666},
	{0xA668, 0xA668},
	{0xA66A, 0xA66A},
	{0xA66C, 0xA66C},
	{0xA680, 0xA680},
	{0xA682, 0xA682},
	{0xA684, 0xA684},
	{0xA686, 0xA686},
	{0xA688, 0xA688},
	{0xA68A, 0xA68A},
	{0xA68C, 0xA68C},
	{0xA68E, 0xA68E},
	{0xA690, 0xA690},
	{0xA692, 0xA692},
	{0xA694, 0xA694},
	{0xA696, 0xA696},
	{0xA698, 0xA698},
	{0xA69A, 0xA69A},
	{0xA722, 0xA722},
	{0xA724, 0xA724},
	{0xA726, 0xA726},
	{0xA728, 0xA728},
	{0xA72A, 0xA72A},
	{0xA72C, 0xA72C},
	{0xA72E, 0xA72E},
	{0xA732, 0xA732},
	{0xA734, 0xA734},
	{0xA736, 0xA736},
	{0xA738, 0xA738},
	{0xA73A, 0xA73A},
	{0xA73C, 0xA73C},
	{0xA73E, 0xA73E},
	{0xA740, 0xA740},
	{0xA742, 0xA742},
	{0xA744, 0xA744},
	{0xA746, 0xA746},
	{0xA748, 0xA748},
	{0xA74A, 0xA74A},
	{0xA74C, 0xA74C},
	{0xA74E, 0xA74E},
	{0xA750, 0xA750},
	{0xA752, 0xA752},
	{0xA754, 0xA754},
	{0xA756, 0xA756},
	{0xA758, 0xA758},
	{0xA75A, 0xA75A},
	{0xA75C, 0xA75C},
	{0xA75E, 0xA75E},
	{0xA760, 0xA760},
	{0xA762, 0xA762},
	{0xA764, 0xA764},
	{0xA766, 0xA766},
	{0xA768, 0xA768},
	{0xA76A, 0xA76A},
	{0xA76C, 0xA76C},
	{0xA76E, 0xA76E},
	{0xA779, 0xA779},
	{0xA77B, 0xA77B},
	{0xA77D, 0xA77E},
	{0xA780, 0xA780},
	{0xA782, 0xA782},
	{0xA784, 0xA784},
	{0xA786, 0xA786},
	{0xA78B, 0xA78B},
	{0xA78D, 0xA78D},
	{0xA790, 0xA790},
	{0xA792, 0xA792},
	{0xA796, 0xA796},
	{0xA798, 0xA798},
	{0xA79A, 0xA79A},
	{0xA79C, 0xA79C},
	{0xA79E, 0xA79E},
	{0xA7A0, 0xA7A0},
	{0xA7A2, 0xA7A2},
	{0xA7A4, 0xA7A4},
	{0xA7A6, 0xA7A6},
	{0xA7A8, 0xA7A8},
	{0xA7AA, 0xA7AE},
	{0xA7B0, 0xA7B4},
	{0xA7B6, 0xA7B6},
	{0xA7B8, 0xA7B8},
	{0xA7BA, 0xA7BA},
	{0xA7BC, 0xA7BC},
	{0xA7BE, 0xA7BE},
	{0xA7C0, 0xA7C0},
	{0xA7C2, 0xA7C2},
	{0xA7C4, 0xA7C7},
	{0xA7C9, 0xA7C9},
	{0xA7CB, 0xA7CC},
	{0xA7CE, 0xA7CE},
	{0xA7D0, 0xA7D0},
	{0xA7D2, 0xA7D2},
	{0xA7D4, 0xA7D4},
	{0xA7D6, 0xA7D6},
	{0xA7D8, 0xA7D8},
	{0xA7DA, 0xA7DA},
	{0xA7DC, 0xA7DC},
	{0xA7F5, 0xA7F5},
	{0xFF21, 0xFF3A},
	{0x10400, 0x10427},
	{0x104B0, 0x104D3},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10C80, 0x10CB2},
	{0x10D50, 0x10D65},
	{0x118A0, 0x118BF},
	{0x16E40, 0x16E5F},
	{0x16EA0, 0x16EB8},
	{0x1D400, 0x1D419},
	{0x1D434, 0x1D44D},
	{0x1D468, 0x1D481},
	{0x1D49C, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B5},
	{0x1D4D0, 0x1D4E9},
	{0x1D504, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D538, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D56C, 0x1D585},
	{0x1D5A0, 0x1D5B9},
	{0x1D5D4, 0x1D5ED},
	{0x1D608, 0x1D621},
	{0x1D63C, 0x1D655},
	{0x1D670, 0x1D689},
	{0x1D6A8, 0x1D6C0},
	{0x1D6E2, 0x1D6FA},
	{0x1D71C, 0x1D734},
	{0x1D756, 0x1D76E},
	{0x1D790, 0x1D7A8},
	{0x1D7CA, 0x1D7CA},
	{0x1E900, 0x1E921},
	{0x1F130, 0x1F149},
	{0x1F150, 0x1F169},
	{0x1F170, 0x1F189},
};

static const UnicodeRange kRanges_Variation_Selector[] = {
	{0x180B, 0x180D},
	{0x180F, 0x180F},
	{0xFE00, 0xFE0F},
	{0xE0100, 0xE01EF},
};

static const UnicodeRange kRanges_White_Space[] = {
	{0x9, 0xD},
	{0x20, 0x20},
	{0x85, 0x85},
	{0xA0, 0xA0},
	{0x1680, 0x1680},
	{0x2000, 0x200A},
	{0x2028, 0x2029},
	{0x202F, 0x202F},
	{0x205F, 0x205F},
	{0x3000, 0x3000},
};

static const UnicodeRange kRanges_XID_Continue[] = {
	{0x30, 0x39},
	{0x41, 0x5A},
	{0x5F, 0x5F},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xB7, 0xB7},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x2C1},
	{0x2C6, 0x2D1},
	{0x2E0, 0x2E4},
	{0x2EC, 0x2EC},
	{0x2EE, 0x2EE},
	{0x300, 0x374},
	{0x376, 0x377},
	{0x37B, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3F5},
	{0x3F7, 0x481},
	{0x483, 0x487},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x559, 0x559},
	{0x560, 0x588},
	{0x591, 0x5BD},
	{0x5BF, 0x5BF},
	{0x5C1, 0x5C2},
	{0x5C4, 0x5C5},
	{0x5C7, 0x5C7},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F2},
	{0x610, 0x61A},
	{0x620, 0x669},
	{0x66E, 0x6D3},
	{0x6D5, 0x6DC},
	{0x6DF, 0x6E8},
	{0x6EA, 0x6FC},
	{0x6FF, 0x6FF},
	{0x710, 0x74A},
	{0x74D, 0x7B1},
	{0x7C0, 0x7F5},
	{0x7FA, 0x7FA},
	{0x7FD, 0x7FD},
	{0x800, 0x82D},
	{0x840, 0x85B},
	{0x860, 0x86A},
	{0x870, 0x887},
	{0x889, 0x88F},
	{0x897, 0x8E1},
	{0x8E3, 0x963},
	{0x966, 0x96F},
	{0x971, 0x983},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BC, 0x9C4},
	{0x9C7, 0x9C8},
	{0x9CB, 0x9CE},
	{0x9D7, 0x9D7},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E3},
	{0x9E6, 0x9F1},
	{0x9FC, 0x9FC},
	{0x9FE, 0x9FE},
	{0xA01, 0xA03},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA3C, 0xA3C},
	{0xA3E, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4D},
	{0xA51, 0xA51},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA66, 0xA75},
	{0xA81, 0xA83},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABC, 0xAC5},
	{0xAC7, 0xAC9},
	{0xACB, 0xACD},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE3},
	{0xAE6, 0xAEF},
	{0xAF9, 0xAFF},
	{0xB01, 0xB03},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3C, 0xB44},
	{0xB47, 0xB48},
	{0xB4B, 0xB4D},
	{0xB55, 0xB57},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB63},
	{0xB66, 0xB6F},
	{0xB71, 0xB71},
	{0xB82, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBBE, 0xBC2},
	{0xBC6, 0xBC8},
	{0xBCA, 0xBCD},
	{0xBD0, 0xBD0},
	{0xBD7, 0xBD7},
	{0xBE6, 0xBEF},
	{0xC00, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3C, 0xC44},
	{0xC46, 0xC48},
	{0xC4A, 0xC4D},
	{0xC55, 0xC56},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC63},
	{0xC66, 0xC6F},
	{0xC80, 0xC83},
	{0xC85, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBC, 0xCC4},
	{0xCC6, 0xCC8},
	{0xCCA, 0xCCD},
	{0xCD5, 0xCD6},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE3},
	{0xCE6, 0xCEF},
	{0xCF1, 0xCF3},
	{0xD00, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD44},
	{0xD46, 0xD48},
	{0xD4A, 0xD4E},
	{0xD54, 0xD57},
	{0xD5F, 0xD63},
	{0xD66, 0xD6F},
	{0xD7A, 0xD7F},
	{0xD81, 0xD83},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xDCA, 0xDCA},
	{0xDCF, 0xDD4},
	{0xDD6, 0xDD6},
	{0xDD8, 0xDDF},
	{0xDE6, 0xDEF},
	{0xDF2, 0xDF3},
	{0xE01, 0xE3A},
	{0xE40, 0xE4E},
	{0xE50, 0xE59},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xEC8, 0xECE},
	{0xED0, 0xED9},
	{0xEDC, 0xEDF},
	{0xF00, 0xF00},
	{0xF18, 0xF19},
	{0xF20, 0xF29},
	{0xF35, 0xF35},
	{0xF37, 0xF37},
	{0xF39, 0xF39},
	{0xF3E, 0xF47},
	{0xF49, 0xF6C},
	{0xF71, 0xF84},
	{0xF86, 0xF97},
	{0xF99, 0xFBC},
	{0xFC6, 0xFC6},
	{0x1000, 0x1049},
	{0x1050, 0x109D},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FC, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x135D, 0x135F},
	{0x1369, 0x1371},
	{0x1380, 0x138F},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1401, 0x166C},
	{0x166F, 0x167F},
	{0x1681, 0x169A},
	{0x16A0, 0x16EA},
	{0x16EE, 0x16F8},
	{0x1700, 0x1715},
	{0x171F, 0x1734},
	{0x1740, 0x1753},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1772, 0x1773},
	{0x1780, 0x17D3},
	{0x17D7, 0x17D7},
	{0x17DC, 0x17DD},
	{0x17E0, 0x17E9},
	{0x180B, 0x180D},
	{0x180F, 0x1819},
	{0x1820, 0x1878},
	{0x1880, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1920, 0x192B},
	{0x1930, 0x193B},
	{0x1946, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x19D0, 0x19DA},
	{0x1A00, 0x1A1B},
	{0x1A20, 0x1A5E},
	{0x1A60, 0x1A7C},
	{0x1A7F, 0x1A89},
	{0x1A90, 0x1A99},
	{0x1AA7, 0x1AA7},
	{0x1AB0, 0x1ABD},
	{0x1ABF, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1B00, 0x1B4C},
	{0x1B50, 0x1B59},
	{0x1B6B, 0x1B73},
	{0x1B80, 0x1BF3},
	{0x1C00, 0x1C37},
	{0x1C40, 0x1C49},
	{0x1C4D, 0x1C7D},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1CD0, 0x1CD2},
	{0x1CD4, 0x1CFA},
	{0x1D00, 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},
	{0x200C, 0x200D},
	{0x203F, 0x2040},
	{0x2054, 0x2054},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x20D0, 0x20DC},
	{0x20E1, 0x20E1},
	{0x20E5, 0x20F0},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2118, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x2139},
	{0x213C, 0x213F},
	{0x2145, 0x2149},
	{0x214E, 0x214E},
	{0x2160, 0x2188},
	{0x2C00, 0x2CE4},
	{0x2CEB, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D6F},
	{0x2D7F, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x2DE0, 0x2DFF},
	{0x3005, 0x3007},
	{0x3021, 0x302F},
	{0x3031, 0x3035},
	{0x3038, 0x303C},
	{0x3041, 0x3096},
	{0x3099, 0x309A},
	{0x309D, 0x309F},
	{0x30A1, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x31A0, 0x31BF},
	{0x31F0, 0x31FF},
	{0x3400, 0x4DBF},
	{0x4E00, 0xA48C},
	{0xA4D0, 0xA4FD},
	{0xA500, 0xA60C},
	{0xA610, 0xA62B},
	{0xA640, 0xA66F},
	{0xA674, 0xA67D},
	{0xA67F, 0xA6F1},
	{0xA717, 0xA71F},
	{0xA722, 0xA788},
	{0xA78B, 0xA7DC},
	{0xA7F1, 0xA827},
	{0xA82C, 0xA82C},
	{0xA840, 0xA873},
	{0xA880, 0xA8C5},
	{0xA8D0, 0xA8D9},
	{0xA8E0, 0xA8F7},
	{0xA8FB, 0xA8FB},
	{0xA8FD, 0xA92D},
	{0xA930, 0xA953},
	{0xA960, 0xA97C},
	{0xA980, 0xA9C0},
	{0xA9CF, 0xA9D9},
	{0xA9E0, 0xA9FE},
	{0xAA00, 0xAA36},
	{0xAA40, 0xAA4D},
	{0xAA50, 0xAA59},
	{0xAA60, 0xAA76},
	{0xAA7A, 0xAAC2},
	{0xAADB, 0xAADD},
	{0xAAE0, 0xAAEF},
	{0xAAF2, 0xAAF6},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABEA},
	{0xABEC, 0xABED},
	{0xABF0, 0xABF9},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB28},
	{0xFB2A, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFBB1},
	{0xFBD3, 0xFC5D},
	{0xFC64, 0xFD3D},
	{0xFD50, 0xFD8F},
	{0xFD92, 0xFDC7},
	{0xFDF0, 0xFDF9},
	{0xFE00, 0xFE0F},
	{0xFE20, 0xFE2F},
	{0xFE33, 0xFE34},
	{0xFE4D, 0xFE4F},
	{0xFE71, 0xFE71},
	{0xFE73, 0xFE73},
	{0xFE77, 0xFE77},
	{0xFE79, 0xFE79},
	{0xFE7B, 0xFE7B},
	{0xFE7D, 0xFE7D},
	{0xFE7F, 0xFEFC},
	{0xFF10, 0xFF19},
	{0xFF21, 0xFF3A},
	{0xFF3F, 0xFF3F},
	{0xFF41, 0xFF5A},
	{0xFF65, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10140, 0x10174},
	{0x101FD, 0x101FD},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x102E0, 0x102E0},
	{0x10300, 0x1031F},
	{0x1032D, 0x1034A},
	{0x10350, 0x1037A},
	{0x10380, 0x1039D},
	{0x103A0, 0x103C3},
	{0x103C8, 0x103CF},
	{0x103D1, 0x103D5},
	{0x10400, 0x1049D},
	{0x104A0, 0x104A9},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10860, 0x10876},
	{0x10880, 0x1089E},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x10900, 0x10915},
	{0x10920, 0x10939},
	{0x10940, 0x10959},
	{0x10980, 0x109B7},
	{0x109BE, 0x109BF},
	{0x10A00, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A3F},
	{0x10A60, 0x10A7C},
	{0x10A80, 0x10A9C},
	{0x10AC0, 0x10AC7},
	{0x10AC9, 0x10AE6},
	{0x10B00, 0x10B35},
	{0x10B40, 0x10B55},
	{0x10B60, 0x10B72},
	{0x10B80, 0x10B91},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D00, 0x10D27},
	{0x10D30, 0x10D39},
	{0x10D40, 0x10D65},
	{0x10D69, 0x10D6D},
	{0x10D6F, 0x10D85},
	{0x10E80, 0x10EA9},
	{0x10EAB, 0x10EAC},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10EFA, 0x10F1C},
	{0x10F27, 0x10F27},
	{0x10F30, 0x10F50},
	{0x10F70, 0x10F85},
	{0x10FB0, 0x10FC4},
	{0x10FE0, 0x10FF6},
	{0x11000, 0x11046},
	{0x11066, 0x11075},
	{0x1107F, 0x110BA},
	{0x110C2, 0x110C2},
	{0x110D0, 0x110E8},
	{0x110F0, 0x110F9},
	{0x11100, 0x11134},
	{0x11136, 0x1113F},
	{0x11144, 0x11147},
	{0x11150, 0x11173},
	{0x11176, 0x11176},
	{0x11180, 0x111C4},
	{0x111C9, 0x111CC},
	{0x111CE, 0x111DA},
	{0x111DC, 0x111DC},
	{0x11200, 0x11211},
	{0x11213, 0x11237},
	{0x1123E, 0x11241},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A8},
	{0x112B0, 0x112EA},
	{0x112F0, 0x112F9},
	{0x11300, 0x11303},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133B, 0x11344},
	{0x11347, 0x11348},
	{0x1134B, 0x1134D},
	{0x11350, 0x11350},
	{0x11357, 0x11357},
	{0x1135D, 0x11363},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113C0},
	{0x113C2, 0x113C2},
	{0x113C5, 0x113C5},
	{0x113C7, 0x113CA},
	{0x113CC, 0x113D3},
	{0x113E1, 0x113E2},
	{0x11400, 0x1144A},
	{0x11450, 0x11459},
	{0x1145E, 0x11461},
	{0x11480, 0x114C5},
	{0x114C7, 0x114C7},
	{0x114D0, 0x114D9},
	{0x11580, 0x115B5},
	{0x115B8, 0x115C0},
	{0x115D8, 0x115DD},
	{0x11600, 0x11640},
	{0x11644, 0x11644},
	{0x11650, 0x11659},
	{0x11680, 0x116B8},
	{0x116C0, 0x116C9},
	{0x116D0, 0x116E3},
	{0x11700, 0x1171A},
	{0x1171D, 0x1172B},
	{0x11730, 0x11739},
	{0x11740, 0x11746},
	{0x11800, 0x1183A},
	{0x118A0, 0x118E9},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x11935},
	{0x11937, 0x11938},
	{0x1193B, 0x11943},
	{0x11950, 0x11959},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D7},
	{0x119DA, 0x119E1},
	{0x119E3, 0x119E4},
	{0x11A00, 0x11A3E},
	{0x11A47, 0x11A47},
	{0x11A50, 0x11A99},
	{0x11A9D, 0x11A9D},
	{0x11AB0, 0x11AF8},
	{0x11B60, 0x11B67},
	{0x11BC0, 0x11BE0},
	{0x11BF0, 0x11BF9},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C36},
	{0x11C38, 0x11C40},
	{0x11C50, 0x11C59},
	{0x11C72, 0x11C8F},
	{0x11C92, 0x11CA7},
	{0x11CA9, 0x11CB6},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D47},
	{0x11D50, 0x11D59},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D8E},
	{0x11D90, 0x11D91},
	{0x11D93, 0x11D98},
	{0x11DA0, 0x11DA9},
	{0x11DB0, 0x11DDB},
	{0x11DE0, 0x11DE9},
	{0x11EE0, 0x11EF6},
	{0x11F00, 0x11F10},
	{0x11F12, 0x11F3A},
	{0x11F3E, 0x11F42},
	{0x11F50, 0x11F5A},
	{0x11FB0, 0x11FB0},
	{0x12000, 0x12399},
	{0x12400, 0x1246E},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF0},
	{0x13000, 0x1342F},
	{0x13440, 0x13455},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x16139},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A60, 0x16A69},
	{0x16A70, 0x16ABE},
	{0x16AC0, 0x16AC9},
	{0x16AD0, 0x16AED},
	{0x16AF0, 0x16AF4},
	{0x16B00, 0x16B36},
	{0x16B40, 0x16B43},
	{0x16B50, 0x16B59},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D6C},
	{0x16D70, 0x16D79},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F4F, 0x16F87},
	{0x16F8F, 0x16F9F},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE4},
	{0x16FF0, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1BC9D, 0x1BC9E},
	{0x1CCF0, 0x1CCF9},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1D165, 0x1D169},
	{0x1D16D, 0x1D172},
	{0x1D17B, 0x1D182},
	{0x1D185, 0x1D18B},
	{0x1D1AA, 0x1D1AD},
	{0x1D242, 0x1D244},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D6C0},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6FA},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D734},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D76E},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D7A8},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7CB},
	{0x1D7CE, 0x1D7FF},
	{0x1DA00, 0x1DA36},
	{0x1DA3B, 0x1DA6C},
	{0x1DA75, 0x1DA75},
	{0x1DA84, 0x1DA84},
	{0x1DA9B, 0x1DA9F},
	{0x1DAA1, 0x1DAAF},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
	{0x1E030, 0x1E06D},
	{0x1E08F, 0x1E08F},
	{0x1E100, 0x1E12C},
	{0x1E130, 0x1E13D},
	{0x1E140, 0x1E149},
	{0x1E14E, 0x1E14E},
	{0x1E290, 0x1E2AE},
	{0x1E2C0, 0x1E2F9},
	{0x1E4D0, 0x1E4F9},
	{0x1E5D0, 0x1E5FA},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6F5},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E8D0, 0x1E8D6},
	{0x1E900, 0x1E94B},
	{0x1E950, 0x1E959},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1FBF0, 0x1FBF9},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
	{0xE0100, 0xE01EF},
};

static const UnicodeRange kRanges_XID_Start[] = {
	{0x41, 0x5A},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB5, 0xB5},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x2C1},
	{0x2C6, 0x2D1},
	{0x2E0, 0x2E4},
	{0x2EC, 0x2EC},
	{0x2EE, 0x2EE},
	{0x370, 0x374},
	{0x376, 0x377},
	{0x37B, 0x37D},
	{0x37F, 0x37F},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3F5},
	{0x3F7, 0x481},
	{0x48A, 0x52F},
	{0x531, 0x556},
	{0x559, 0x559},
	{0x560, 0x588},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F2},
	{0x620, 0x64A},
	{0x66E, 0x66F},
	{0x671, 0x6D3},
	{0x6D5, 0x6D5},
	{0x6E5, 0x6E6},
	{0x6EE, 0x6EF},
	{0x6FA, 0x6FC},
	{0x6FF, 0x6FF},
	{0x710, 0x710},
	{0x712, 0x72F},
	{0x74D, 0x7A5},
	{0x7B1, 0x7B1},
	{0x7CA, 0x7EA},
	{0x7F4, 0x7F5},
	{0x7FA, 0x7FA},
	{0x800, 0x815},
	{0x81A, 0x81A},
	{0x824, 0x824},
	{0x828, 0x828},
	{0x840, 0x858},
	{0x860, 0x86A},
	{0x870, 0x887},
	{0x889, 0x88F},
	{0x8A0, 0x8C9},
	{0x904, 0x939},
	{0x93D, 0x93D},
	{0x950, 0x950},
	{0x958, 0x961},
	{0x971, 0x980},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BD, 0x9BD},
	{0x9CE, 0x9CE},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E1},
	{0x9F0, 0x9F1},
	{0x9FC, 0x9FC},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA72, 0xA74},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABD, 0xABD},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE1},
	{0xAF9, 0xAF9},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3D, 0xB3D},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB61},
	{0xB71, 0xB71},
	{0xB83, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBD0, 0xBD0},
	{0xC05, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3D, 0xC3D},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC61},
	{0xC80, 0xC80},
	{0xC85, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBD, 0xCBD},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE1},
	{0xCF1, 0xCF2},
	{0xD04, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD3A},
	{0xD3D, 0xD3D},
	{0xD4E, 0xD4E},
	{0xD54, 0xD56},
	{0xD5F, 0xD61},
	{0xD7A, 0xD7F},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xE01, 0xE30},
	{0xE32, 0xE32},
	{0xE40, 0xE46},
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEB0},
	{0xEB2, 0xEB2},
	{0xEBD, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xEDC, 0xEDF},
	{0xF00, 0xF00},
	{0xF40, 0xF47},
	{0xF49, 0xF6C},
	{0xF88, 0xF8C},
	{0x1000, 0x102A},
	{0x103F, 0x103F},
	{0x1050, 0x1055},
	{0x105A, 0x105D},
	{0x1061, 0x1061},
	{0x1065, 0x1066},
	{0x106E, 0x1070},
	{0x1075, 0x1081},
	{0x108E, 0x108E},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FA},
	{0x10FC, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x1380, 0x138F},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0x1401, 0x166C},
	{0x166F, 0x167F},
	{0x1681, 0x169A},
	{0x16A0, 0x16EA},
	{0x16EE, 0x16F8},
	{0x1700, 0x1711},
	{0x171F, 0x1731},
	{0x1740, 0x1751},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1780, 0x17B3},
	{0x17D7, 0x17D7},
	{0x17DC, 0x17DC},
	{0x1820, 0x1878},
	{0x1880, 0x18A8},
	{0x18AA, 0x18AA},
	{0x18B0, 0x18F5},
	{0x1900, 0x191E},
	{0x1950, 0x196D},
	{0x1970, 0x1974},
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x1A00, 0x1A16},
	{0x1A20, 0x1A54},
	{0x1AA7, 0x1AA7},
	{0x1B05, 0x1B33},
	{0x1B45, 0x1B4C},
	{0x1B83, 0x1BA0},
	{0x1BAE, 0x1BAF},
	{0x1BBA, 0x1BE5},
	{0x1C00, 0x1C23},
	{0x1C4D, 0x1C4F},
	{0x1C5A, 0x1C7D},
	{0x1C80, 0x1C8A},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x1CE9, 0x1CEC},
	{0x1CEE, 0x1CF3},
	{0x1CF5, 0x1CF6},
	{0x1CFA, 0x1CFA},
	{0x1D00, 0x1DBF},
	{0x1E00, 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},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x2102, 0x2102},
	{0x2107, 0x2107},
	{0x210A, 0x2113},
	{0x2115, 0x2115},
	{0x2118, 0x211D},
	{0x2124, 0x2124},
	{0x2126, 0x2126},
	{0x2128, 0x2128},
	{0x212A, 0x2139},
	{0x213C, 0x213F},
	{0x2145, 0x2149},
	{0x214E, 0x214E},
	{0x2160, 0x2188},
	{0x2C00, 0x2CE4},
	{0x2CEB, 0x2CEE},
	{0x2CF2, 0x2CF3},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D6F},
	{0x2D80, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0x3005, 0x3007},
	{0x3021, 0x3029},
	{0x3031, 0x3035},
	{0x3038, 0x303C},
	{0x3041, 0x3096},
	{0x309D, 0x309F},
	{0x30A1, 0x30FA},
	{0x30FC, 0x30FF},
	{0x3105, 0x312F},
	{0x3131, 0x318E},
	{0x31A0, 0x31BF},
	{0x31F0, 0x31FF},
	{0x3400, 0x4DBF},
	{0x4E00, 0xA48C},
	{0xA4D0, 0xA4FD},
	{0xA500, 0xA60C},
	{0xA610, 0xA61F},
	{0xA62A, 0xA62B},
	{0xA640, 0xA66E},
	{0xA67F, 0xA69D},
	{0xA6A0, 0xA6EF},
	{0xA717, 0xA71F},
	{0xA722, 0xA788},
	{0xA78B, 0xA7DC},
	{0xA7F1, 0xA801},
	{0xA803, 0xA805},
	{0xA807, 0xA80A},
	{0xA80C, 0xA822},
	{0xA840, 0xA873},
	{0xA882, 0xA8B3},
	{0xA8F2, 0xA8F7},
	{0xA8FB, 0xA8FB},
	{0xA8FD, 0xA8FE},
	{0xA90A, 0xA925},
	{0xA930, 0xA946},
	{0xA960, 0xA97C},
	{0xA984, 0xA9B2},
	{0xA9CF, 0xA9CF},
	{0xA9E0, 0xA9E4},
	{0xA9E6, 0xA9EF},
	{0xA9FA, 0xA9FE},
	{0xAA00, 0xAA28},
	{0xAA40, 0xAA42},
	{0xAA44, 0xAA4B},
	{0xAA60, 0xAA76},
	{0xAA7A, 0xAA7A},
	{0xAA7E, 0xAAAF},
	{0xAAB1, 0xAAB1},
	{0xAAB5, 0xAAB6},
	{0xAAB9, 0xAABD},
	{0xAAC0, 0xAAC0},
	{0xAAC2, 0xAAC2},
	{0xAADB, 0xAADD},
	{0xAAE0, 0xAAEA},
	{0xAAF2, 0xAAF4},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB69},
	{0xAB70, 0xABE2},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFB00, 0xFB06},
	{0xFB13, 0xFB17},
	{0xFB1D, 0xFB1D},
	{0xFB1F, 0xFB28},
	{0xFB2A, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFBB1},
	{0xFBD3, 0xFC5D},
	{0xFC64, 0xFD3D},
	{0xFD50, 0xFD8F},
	{0xFD92, 0xFDC7},
	{0xFDF0, 0xFDF9},
	{0xFE71, 0xFE71},
	{0xFE73, 0xFE73},
	{0xFE77, 0xFE77},
	{0xFE79, 0xFE79},
	{0xFE7B, 0xFE7B},
	{0xFE7D, 0xFE7D},
	{0xFE7F, 0xFEFC},
	{0xFF21, 0xFF3A},
	{0xFF41, 0xFF5A},
	{0xFF66, 0xFF9D},
	{0xFFA0, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10140, 0x10174},
	{0x10280, 0x1029C},
	{0x102A0, 0x102D0},
	{0x10300, 0x1031F},
	{0x1032D, 0x1034A},
	{0x10350, 0x10375},
	{0x10380, 0x1039D},
	{0x103A0, 0x103C3},
	{0x103C8, 0x103CF},
	{0x103D1, 0x103D5},
	{0x10400, 0x1049D},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
	{0x10500, 0x10527},
	{0x10530, 0x10563},
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
	{0x105C0, 0x105F3},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x10855},
	{0x10860, 0x10876},
	{0x10880, 0x1089E},
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x10900, 0x10915},
	{0x10920, 0x10939},
	{0x10940, 0x10959},
	{0x10980, 0x109B7},
	{0x109BE, 0x109BF},
	{0x10A00, 0x10A00},
	{0x10A10, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A60, 0x10A7C},
	{0x10A80, 0x10A9C},
	{0x10AC0, 0x10AC7},
	{0x10AC9, 0x10AE4},
	{0x10B00, 0x10B35},
	{0x10B40, 0x10B55},
	{0x10B60, 0x10B72},
	{0x10B80, 0x10B91},
	{0x10C00, 0x10C48},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10D00, 0x10D23},
	{0x10D4A, 0x10D65},
	{0x10D6F, 0x10D85},
	{0x10E80, 0x10EA9},
	{0x10EB0, 0x10EB1},
	{0x10EC2, 0x10EC7},
	{0x10F00, 0x10F1C},
	{0x10F27, 0x10F27},
	{0x10F30, 0x10F45},
	{0x10F70, 0x10F81},
	{0x10FB0, 0x10FC4},
	{0x10FE0, 0x10FF6},
	{0x11003, 0x11037},
	{0x11071, 0x11072},
	{0x11075, 0x11075},
	{0x11083, 0x110AF},
	{0x110D0, 0x110E8},
	{0x11103, 0x11126},
	{0x11144, 0x11144},
	{0x11147, 0x11147},
	{0x11150, 0x11172},
	{0x11176, 0x11176},
	{0x11183, 0x111B2},
	{0x111C1, 0x111C4},
	{0x111DA, 0x111DA},
	{0x111DC, 0x111DC},
	{0x11200, 0x11211},
	{0x11213, 0x1122B},
	{0x1123F, 0x11240},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A8},
	{0x112B0, 0x112DE},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133D, 0x1133D},
	{0x11350, 0x11350},
	{0x1135D, 0x11361},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113B7},
	{0x113D1, 0x113D1},
	{0x113D3, 0x113D3},
	{0x11400, 0x11434},
	{0x11447, 0x1144A},
	{0x1145F, 0x11461},
	{0x11480, 0x114AF},
	{0x114C4, 0x114C5},
	{0x114C7, 0x114C7},
	{0x11580, 0x115AE},
	{0x115D8, 0x115DB},
	{0x11600, 0x1162F},
	{0x11644, 0x11644},
	{0x11680, 0x116AA},
	{0x116B8, 0x116B8},
	{0x11700, 0x1171A},
	{0x11740, 0x11746},
	{0x11800, 0x1182B},
	{0x118A0, 0x118DF},
	{0x118FF, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x1192F},
	{0x1193F, 0x1193F},
	{0x11941, 0x11941},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D0},
	{0x119E1, 0x119E1},
	{0x119E3, 0x119E3},
	{0x11A00, 0x11A00},
	{0x11A0B, 0x11A32},
	{0x11A3A, 0x11A3A},
	{0x11A50, 0x11A50},
	{0x11A5C, 0x11A89},
	{0x11A9D, 0x11A9D},
	{0x11AB0, 0x11AF8},
	{0x11BC0, 0x11BE0},
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C2E},
	{0x11C40, 0x11C40},
	{0x11C72, 0x11C8F},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D30},
	{0x11D46, 0x11D46},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D89},
	{0x11D98, 0x11D98},
	{0x11DB0, 0x11DDB},
	{0x11EE0, 0x11EF2},
	{0x11F02, 0x11F02},
	{0x11F04, 0x11F10},
	{0x11F12, 0x11F33},
	{0x11FB0, 0x11FB0},
	{0x12000, 0x12399},
	{0x12400, 0x1246E},
	{0x12480, 0x12543},
	{0x12F90, 0x12FF0},
	{0x13000, 0x1342F},
	{0x13441, 0x13446},
	{0x13460, 0x143FA},
	{0x14400, 0x14646},
	{0x16100, 0x1611D},
	{0x16800, 0x16A38},
	{0x16A40, 0x16A5E},
	{0x16A70, 0x16ABE},
	{0x16AD0, 0x16AED},
	{0x16B00, 0x16B2F},
	{0x16B40, 0x16B43},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
	{0x16D40, 0x16D6C},
	{0x16E40, 0x16E7F},
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
	{0x16F00, 0x16F4A},
	{0x16F50, 0x16F50},
	{0x16F93, 0x16F9F},
	{0x16FE0, 0x16FE1},
	{0x16FE3, 0x16FE3},
	{0x16FF2, 0x16FF6},
	{0x17000, 0x18CD5},
	{0x18CFF, 0x18D1E},
	{0x18D80, 0x18DF2},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B122},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
	{0x1B170, 0x1B2FB},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D6C0},
	{0x1D6C2, 0x1D6DA},
	{0x1D6DC, 0x1D6FA},
	{0x1D6FC, 0x1D714},
	{0x1D716, 0x1D734},
	{0x1D736, 0x1D74E},
	{0x1D750, 0x1D76E},
	{0x1D770, 0x1D788},
	{0x1D78A, 0x1D7A8},
	{0x1D7AA, 0x1D7C2},
	{0x1D7C4, 0x1D7CB},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
	{0x1E030, 0x1E06D},
	{0x1E100, 0x1E12C},
	{0x1E137, 0x1E13D},
	{0x1E14E, 0x1E14E},
	{0x1E290, 0x1E2AD},
	{0x1E2C0, 0x1E2EB},
	{0x1E4D0, 0x1E4EB},
	{0x1E5D0, 0x1E5ED},
	{0x1E5F0, 0x1E5F0},
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6E2},
	{0x1E6E4, 0x1E6E5},
	{0x1E6E7, 0x1E6ED},
	{0x1E6F0, 0x1E6F4},
	{0x1E6FE, 0x1E6FF},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
	{0x1E800, 0x1E8C4},
	{0x1E900, 0x1E943},
	{0x1E94B, 0x1E94B},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodePropertyTable kBinaryProperties[] = {
	{"ASCII", kRanges_ASCII, 1},
	{"ASCII_Hex_Digit", kRanges_ASCII_Hex_Digit, 3},
	{"AHex", kRanges_ASCII_Hex_Digit, 3},
	{"Alphabetic", kRanges_Alphabetic, 761},
	{"Alpha", kRanges_Alphabetic, 761},
	{"Any", kRanges_Any, 1},
	{"Assigned", kRanges_Assigned, 735},
	{"Bidi_Control", kRanges_Bidi_Control, 4},
	{"Bidi_C", kRanges_Bidi_Control, 4},
	{"Bidi_Mirrored", kRanges_Bidi_Mirrored, 114},
	{"Bidi_M", kRanges_Bidi_Mirrored, 114},
	{"Case_Ignorable", kRanges_Case_Ignorable, 464},
	{"CI", kRanges_Case_Ignorable, 464},
	{"Cased", kRanges_Cased, 158},
	{"Changes_When_Casefolded", kRanges_Changes_When_Casefolded, 630},
	{"CWCF", kRanges_Changes_When_Casefolded, 630},
	{"Changes_When_Casemapped", kRanges_Changes_When_Casemapped, 131},
	{"CWCM", kRanges_Changes_When_Casemapped, 131},
	{"Changes_When_Lowercased", kRanges_Changes_When_Lowercased, 618},
	{"CWL", kRanges_Changes_When_Lowercased, 618},
	{"Changes_When_NFKC_Casefolded", kRanges_Changes_When_NFKC_Casefolded, 848},
	{"CWKCF", kRanges_Changes_When_NFKC_Casefolded, 848},
	{"Changes_When_Titlecased", kRanges_Changes_When_Titlecased, 633},
	{"CWT", kRanges_Changes_When_Titlecased, 633},
	{"Changes_When_Uppercased", kRanges_Changes_When_Uppercased, 634},
	{"CWU", kRanges_Changes_When_Uppercased, 634},
	{"Dash", kRanges_Dash, 24},
	{"Default_Ignorable_Code_Point", kRanges_Default_Ignorable_Code_Point, 17},
	{"DI", kRanges_Default_Ignorable_Code_Point, 17},
	{"Deprecated", kRanges_Deprecated, 8},
	{"Dep", kRanges_Deprecated, 8},
	{"Diacritic", kRanges_Diacritic, 220},
	{"Dia", kRanges_Diacritic, 220},
	{"Emoji", kRanges_Emoji, 151},
	{"Emoji_Component", kRanges_Emoji_Component, 10},
	{"EComp", kRanges_Emoji_Component, 10},
	{"Emoji_Modifier", kRanges_Emoji_Modifier, 1},
	{"EMod", kRanges_Emoji_Modifier, 1},
	{"Emoji_Modifier_Base", kRanges_Emoji_Modifier_Base, 40},
	{"EBase", kRanges_Emoji_Modifier_Base, 40},
	{"Emoji_Presentation", kRanges_Emoji_Presentation, 81},
	{"EPres", kRanges_Emoji_Presentation, 81},
	{"Extended_Pictographic", kRanges_Extended_Pictographic, 156},
	{"ExtPict", kRanges_Extended_Pictographic, 156},
	{"Extender", kRanges_Extender, 43},
	{"Ext", kRanges_Extender, 43},
	{"Grapheme_Base", kRanges_Grapheme_Base, 904},
	{"Gr_Base", kRanges_Grapheme_Base, 904},
	{"Grapheme_Extend", kRanges_Grapheme_Extend, 383},
	{"Gr_Ext", kRanges_Grapheme_Extend, 383},
	{"Hex_Digit", kRanges_Hex_Digit, 6},
	{"Hex", kRanges_Hex_Digit, 6},
	{"IDS_Binary_Operator", kRanges_IDS_Binary_Operator, 3},
	{"IDSB", kRanges_IDS_Binary_Operator, 3},
	{"IDS_Trinary_Operator", kRanges_IDS_Trinary_Operator, 1},
	{"IDST", kRanges_IDS_Trinary_Operator, 1},
	{"ID_Continue", kRanges_ID_Continue, 799},
	{"IDC", kRanges_ID_Continue, 799},
	{"ID_Start", kRanges_ID_Start, 684},
	{"IDS", kRanges_ID_Start, 684},
	{"Ideographic", kRanges_Ideographic, 21},
	{"Ideo", kRanges_Ideographic, 21},
	{"Join_Control", kRanges_Join_Control, 1},
	{"Join_C", kRanges_Join_Control, 1},
	{"Logical_Order_Exception", kRanges_Logical_Order_Exception, 7},
	{"LOE", kRanges_Logical_Order_Exception, 7},
	{"Lowercase", kRanges_Lowercase, 677},
	{"Lower", kRanges_Lowercase, 677},
	{"Math", kRanges_Math, 141},
	{"Noncharacter_Code_Point", kRanges_Noncharacter_Code_Point, 18},
	{"NChar", kRanges_Noncharacter_Code_Point, 18},
	{"Pattern_Syntax", kRanges_Pattern_Syntax, 28},
	{"Pat_Syn", kRanges_Pattern_Syntax, 28},
	{"Pattern_White_Space", kRanges_Pattern_White_Space, 5},
	{"Pat_WS", kRanges_Pattern_White_Space, 5},
	{"Quotation_Mark", kRanges_Quotation_Mark, 13},
	{"QMark", kRanges_Quotation_Mark, 13},
	{"Radical", kRanges_Radical, 3},
	{"Regional_Indicator", kRanges_Regional_Indicator, 1},
	{"RI", kRanges_Regional_Indicator, 1},
	{"Sentence_Terminal", kRanges_Sentence_Terminal, 88},
	{"STerm", kRanges_Sentence_Terminal, 88},
	{"Soft_Dotted", kRanges_Soft_Dotted, 34},
	{"SD", kRanges_Soft_Dotted, 34},
	{"Terminal_Punctuation", kRanges_Terminal_Punctuation, 116},
	{"Term", kRanges_Terminal_Punctuation, 116},
	{"Unified_Ideograph", kRanges_Unified_Ideograph, 16},
	{"UIdeo", kRanges_Unified_Ideograph, 16},
	{"Uppercase", kRanges_Uppercase, 660},
	{"Upper", kRanges_Uppercase, 660},
	{"Variation_Selector", kRanges_Variation_Selector, 4},
	{"VS", kRanges_Variation_Selector, 4},
	{"White_Space", kRanges_White_Space, 10},
	{"space", kRanges_White_Space, 10},
	{"XID_Continue", kRanges_XID_Continue, 806},
	{"XIDC", kRanges_XID_Continue, 806},
	{"XID_Start", kRanges_XID_Start, 691},
	{"XIDS", kRanges_XID_Start, 691},
};
static const size_t kBinaryPropertiesCount = sizeof(kBinaryProperties) / sizeof(UnicodePropertyTable);

static const UnicodeRange kRanges_Adlam[] = {
	{0x61F, 0x61F},
	{0x640, 0x640},
	{0x204F, 0x204F},
	{0x2E41, 0x2E41},
	{0x1E900, 0x1E94B},
	{0x1E950, 0x1E959},
	{0x1E95E, 0x1E95F},
};

static const UnicodeRange kRanges_Ahom[] = {
	{0x11700, 0x1171A},
	{0x1171D, 0x1172B},
	{0x11730, 0x11746},
};

static const UnicodeRange kRanges_Anatolian_Hieroglyphs[] = {
	{0x14400, 0x14646},
};

static const UnicodeRange kRanges_Arabic[] = {
	{0x600, 0x604},
	{0x606, 0x6DC},
	{0x6DE, 0x6FF},
	{0x750, 0x77F},
	{0x870, 0x891},
	{0x897, 0x8E1},
	{0x8E3, 0x8FF},
	{0x204F, 0x204F},
	{0x2E41, 0x2E41},
	{0xFB50, 0xFDCF},
	{0xFDF0, 0xFDFF},
	{0xFE70, 0xFE74},
	{0xFE76, 0xFEFC},
	{0x102E0, 0x102FB},
	{0x10E60, 0x10E7E},
	{0x10EC2, 0x10EC7},
	{0x10ED0, 0x10ED8},
	{0x10EFA, 0x10EFF},
	{0x1EE00, 0x1EE03},
	{0x1EE05, 0x1EE1F},
	{0x1EE21, 0x1EE22},
	{0x1EE24, 0x1EE24},
	{0x1EE27, 0x1EE27},
	{0x1EE29, 0x1EE32},
	{0x1EE34, 0x1EE37},
	{0x1EE39, 0x1EE39},
	{0x1EE3B, 0x1EE3B},
	{0x1EE42, 0x1EE42},
	{0x1EE47, 0x1EE47},
	{0x1EE49, 0x1EE49},
	{0x1EE4B, 0x1EE4B},
	{0x1EE4D, 0x1EE4F},
	{0x1EE51, 0x1EE52},
	{0x1EE54, 0x1EE54},
	{0x1EE57, 0x1EE57},
	{0x1EE59, 0x1EE59},
	{0x1EE5B, 0x1EE5B},
	{0x1EE5D, 0x1EE5D},
	{0x1EE5F, 0x1EE5F},
	{0x1EE61, 0x1EE62},
	{0x1EE64, 0x1EE64},
	{0x1EE67, 0x1EE6A},
	{0x1EE6C, 0x1EE72},
	{0x1EE74, 0x1EE77},
	{0x1EE79, 0x1EE7C},
	{0x1EE7E, 0x1EE7E},
	{0x1EE80, 0x1EE89},
	{0x1EE8B, 0x1EE9B},
	{0x1EEA1, 0x1EEA3},
	{0x1EEA5, 0x1EEA9},
	{0x1EEAB, 0x1EEBB},
	{0x1EEF0, 0x1EEF1},
};

static const UnicodeRange kRanges_Armenian[] = {
	{0x308, 0x308},
	{0x531, 0x556},
	{0x559, 0x58A},
	{0x58D, 0x58F},
	{0xFB13, 0xFB17},
};

static const UnicodeRange kRanges_Avestan[] = {
	{0xB7, 0xB7},
	{0x2E30, 0x2E31},
	{0x10B00, 0x10B35},
	{0x10B39, 0x10B3F},
};

static const UnicodeRange kRanges_Balinese[] = {
	{0x1B00, 0x1B4C},
	{0x1B4E, 0x1B7F},
};

static const UnicodeRange kRanges_Bamum[] = {
	{0xA6A0, 0xA6F7},
	{0x16800, 0x16A38},
};

static const UnicodeRange kRanges_Bassa_Vah[] = {
	{0x16AD0, 0x16AED},
	{0x16AF0, 0x16AF5},
};

static const UnicodeRange kRanges_Batak[] = {
	{0x1BC0, 0x1BF3},
	{0x1BFC, 0x1BFF},
};

static const UnicodeRange kRanges_Bengali[] = {
	{0x2BC, 0x2BC},
	{0x951, 0x952},
	{0x964, 0x965},
	{0x980, 0x983},
	{0x985, 0x98C},
	{0x98F, 0x990},
	{0x993, 0x9A8},
	{0x9AA, 0x9B0},
	{0x9B2, 0x9B2},
	{0x9B6, 0x9B9},
	{0x9BC, 0x9C4},
	{0x9C7, 0x9C8},
	{0x9CB, 0x9CE},
	{0x9D7, 0x9D7},
	{0x9DC, 0x9DD},
	{0x9DF, 0x9E3},
	{0x9E6, 0x9FE},
	{0x1CD0, 0x1CD0},
	{0x1CD2, 0x1CD2},
	{0x1CD5, 0x1CD6},
	{0x1CD8, 0x1CD8},
	{0x1CE1, 0x1CE1},
	{0x1CEA, 0x1CEA},
	{0x1CED, 0x1CED},
	{0x1CF2, 0x1CF2},
	{0x1CF5, 0x1CF7},
	{0xA8F1, 0xA8F1},
};

static const UnicodeRange kRanges_Beria_Erfe[] = {
	{0x16EA0, 0x16EB8},
	{0x16EBB, 0x16ED3},
};

static const UnicodeRange kRanges_Bhaiksuki[] = {
	{0x11C00, 0x11C08},
	{0x11C0A, 0x11C36},
	{0x11C38, 0x11C45},
	{0x11C50, 0x11C6C},
};

static const UnicodeRange kRanges_Bopomofo[] = {
	{0x2C7, 0x2C7},
	{0x2C9, 0x2CB},
	{0x2D9, 0x2D9},
	{0x2EA, 0x2EB},
	{0x3001, 0x3003},
	{0x3008, 0x3011},
	{0x3013, 0x301F},
	{0x302A, 0x302D},
	{0x3030, 0x3030},
	{0x3037, 0x3037},
	{0x30FB, 0x30FB},
	{0x3105, 0x312F},
	{0x31A0, 0x31BF},
	{0xFE45, 0xFE46},
	{0xFF61, 0xFF65},
};

static const UnicodeRange kRanges_Brahmi[] = {
	{0x11000, 0x1104D},
	{0x11052, 0x11075},
	{0x1107F, 0x1107F},
};

static const UnicodeRange kRanges_Braille[] = {
	{0x2800, 0x28FF},
};

static const UnicodeRange kRanges_Buginese[] = {
	{0x1A00, 0x1A1B},
	{0x1A1E, 0x1A1F},
	{0xA9CF, 0xA9CF},
};

static const UnicodeRange kRanges_Buhid[] = {
	{0x1735, 0x1736},
	{0x1740, 0x1753},
};

static const UnicodeRange kRanges_Canadian_Aboriginal[] = {
	{0x1400, 0x167F},
	{0x18B0, 0x18F5},
	{0x11AB0, 0x11ABF},
};

static const UnicodeRange kRanges_Carian[] = {
	{0xB7, 0xB7},
	{0x205A, 0x205A},
	{0x205D, 0x205D},
	{0x2E31, 0x2E31},
	{0x102A0, 0x102D0},
};

static const UnicodeRange kRanges_Caucasian_Albanian[] = {
	{0x304, 0x304},
	{0x331, 0x331},
	{0x35E, 0x35E},
	{0x10530, 0x10563},
	{0x1056F, 0x1056F},
};

static const UnicodeRange kRanges_Chakma[] = {
	{0x9E6, 0x9EF},
	{0x1040, 0x1049},
	{0x11100, 0x11134},
	{0x11136, 0x11147},
};

static const UnicodeRange kRanges_Cham[] = {
	{0xAA00, 0xAA36},
	{0xAA40, 0xAA4D},
	{0xAA50, 0xAA59},
	{0xAA5C, 0xAA5F},
};

static const UnicodeRange kRanges_Cherokee[] = {
	{0x300, 0x302},
	{0x304, 0x304},
	{0x30B, 0x30C},
	{0x323, 0x324},
	{0x330, 0x331},
	{0x13A0, 0x13F5},
	{0x13F8, 0x13FD},
	{0xAB70, 0xABBF},
};

static const UnicodeRange kRanges_Chorasmian[] = {
	{0x10FB0, 0x10FCB},
};

static const UnicodeRange kRanges_Common[] = {
	{0x0, 0x40},
	{0x5B, 0x60},
	{0x7B, 0xA9},
	{0xAB, 0xB6},
	{0xB8, 0xB9},
	{0xBB, 0xBF},
	{0xD7, 0xD7},
	{0xF7, 0xF7},
	{0x2B9, 0x2BB},
	{0x2BD, 0x2C6},
	{0x2C8, 0x2C8},
	{0x2CC, 0x2CC},
	{0x2CE, 0x2D6},
	{0x2D8, 0x2D8},
	{0x2DA, 0x2DF},
	{0x2E5, 0x2E9},
	{0x2EC, 0x2FF},
	{0x37E, 0x37E},
	{0x385, 0x385},
	{0x387, 0x387},
	{0x605, 0x605},
	{0x6DD, 0x6DD},
	{0x8E2, 0x8E2},
	{0xE3F, 0xE3F},
	{0xFD5, 0xFD8},
	{0x2000, 0x200B},
	{0x200E, 0x202E},
	{0x2030, 0x204E},
	{0x2050, 0x2059},
	{0x205B, 0x205C},
	{0x205E, 0x2064},
	{0x2066, 0x2070},
	{0x2074, 0x207E},
	{0x2080, 0x208E},
	{0x20A0, 0x20C1},
	{0x2100, 0x2125},
	{0x2127, 0x2129},
	{0x212C, 0x2131},
	{0x2133, 0x214D},
	{0x214F, 0x215F},
	{0x2189, 0x218B},
	{0x2190, 0x2429},
	{0x2440, 0x244A},
	{0x2460, 0x27FF},
	{0x2900, 0x2B73},
	{0x2B76, 0x2BFF},
	{0x2E00, 0x2E16},
	{0x2E18, 0x2E2F},
	{0x2E32, 0x2E3B},
	{0x2E3D, 0x2E40},
	{0x2E42, 0x2E42},
	{0x2E44, 0x2E5D},
	{0x3000, 0x3000},
	{0x3004, 0x3004},
	{0x3012, 0x3012},
	{0x3020, 0x3020},
	{0x3036, 0x3036},
	{0x3248, 0x325F},
	{0x327F, 0x327F},
	{0x32B1, 0x32BF},
	{0x32CC, 0x32CF},
	{0x3371, 0x337A},
	{0x3380, 0x33DF},
	{0x33FF, 0x33FF},
	{0x4DC0, 0x4DFF},
	{0xA708, 0xA721},
	{0xA788, 0xA78A},
	{0xAB5B, 0xAB5B},
	{0xAB6A, 0xAB6B},
	{0xFE10, 0xFE19},
	{0xFE30, 0xFE44},
	{0xFE47, 0xFE52},
	{0xFE54, 0xFE66},
	{0xFE68, 0xFE6B},
	{0xFEFF, 0xFEFF},
	{0xFF01, 0xFF20},
	{0xFF3B, 0xFF40},
	{0xFF5B, 0xFF60},
	{0xFFE0, 0xFFE6},
	{0xFFE8, 0xFFEE},
	{0xFFF9, 0xFFFD},
	{0x10190, 0x1019C},
	{0x101D0, 0x101FC},
	{0x1CC00, 0x1CCFC},
	{0x1CD00, 0x1CEB3},
	{0x1CEBA, 0x1CED0},
	{0x1CEE0, 0x1CEF0},
	{0x1CF50, 0x1CFC3},
	{0x1D000, 0x1D0F5},
	{0x1D100, 0x1D126},
	{0x1D129, 0x1D166},
	{0x1D16A, 0x1D17A},
	{0x1D183, 0x1D184},
	{0x1D18C, 0x1D1A9},
	{0x1D1AE, 0x1D1EA},
	{0x1D2C0, 0x1D2D3},
	{0x1D2E0, 0x1D2F3},
	{0x1D300, 0x1D356},
	{0x1D372, 0x1D378},
	{0x1D400, 0x1D454},
	{0x1D456, 0x1D49C},
	{0x1D49E, 0x1D49F},
	{0x1D4A2, 0x1D4A2},
	{0x1D4A5, 0x1D4A6},
	{0x1D4A9, 0x1D4AC},
	{0x1D4AE, 0x1D4B9},
	{0x1D4BB, 0x1D4BB},
	{0x1D4BD, 0x1D4C3},
	{0x1D4C5, 0x1D505},
	{0x1D507, 0x1D50A},
	{0x1D50D, 0x1D514},
	{0x1D516, 0x1D51C},
	{0x1D51E, 0x1D539},
	{0x1D53B, 0x1D53E},
	{0x1D540, 0x1D544},
	{0x1D546, 0x1D546},
	{0x1D54A, 0x1D550},
	{0x1D552, 0x1D6A5},
	{0x1D6A8, 0x1D7CB},
	{0x1D7CE, 0x1D7FF},
	{0x1EC71, 0x1ECB4},
	{0x1ED01, 0x1ED3D},
	{0x1F000, 0x1F02B},
	{0x1F030, 0x1F093},
	{0x1F0A0, 0x1F0AE},
	{0x1F0B1, 0x1F0BF},
	{0x1F0C1, 0x1F0CF},
	{0x1F0D1, 0x1F0F5},
	{0x1F100, 0x1F1AD},
	{0x1F1E6, 0x1F1FF},
	{0x1F201, 0x1F202},
	{0x1F210, 0x1F23B},
	{0x1F240, 0x1F248},
	{0x1F260, 0x1F265},
	{0x1F300, 0x1F6D8},
	{0x1F6DC, 0x1F6EC},
	{0x1F6F0, 0x1F6FC},
	{0x1F700, 0x1F7D9},
	{0x1F7E0, 0x1F7EB},
	{0x1F7F0, 0x1F7F0},
	{0x1F800, 0x1F80B},
	{0x1F810, 0x1F847},
	{0x1F850, 0x1F859},
	{0x1F860, 0x1F887},
	{0x1F890, 0x1F8AD},
	{0x1F8B0, 0x1F8BB},
	{0x1F8C0, 0x1F8C1},
	{0x1F8D0, 0x1F8D8},
	{0x1F900, 0x1FA57},
	{0x1FA60, 0x1FA6D},
	{0x1FA70, 0x1FA7C},
	{0x1FA80, 0x1FA8A},
	{0x1FA8E, 0x1FAC6},
	{0x1FAC8, 0x1FAC8},
	{0x1FACD, 0x1FADC},
	{0x1FADF, 0x1FAEA},
	{0x1FAEF, 0x1FAF8},
	{0x1FB00, 0x1FB92},
	{0x1FB94, 0x1FBFA},
	{0xE0001, 0xE0001},
	{0xE0020, 0xE007F},
};

static const UnicodeRange kRanges_Coptic[] = {
	{0xB7, 0xB7},
	{0x300, 0x300},
	{0x304, 0x305},
	{0x307, 0x307},
	{0x374, 0x375},
	{0x3E2, 0x3EF},
	{0x2C80, 0x2CF3},
	{0x2CF9, 0x2CFF},
	{0x2E17, 0x2E17},
	{0x102E0, 0x102FB},
};

static const UnicodeRange kRanges_Cuneiform[] = {
	{0x12000, 0x12399},
	{0x12400, 0x1246E},
	{0x12470, 0x12474},
	{0x12480, 0x12543},
};

static const UnicodeRange kRanges_Cypriot[] = {
	{0x10100, 0x10102},
	{0x10107, 0x10133},
	{0x10137, 0x1013F},
	{0x10800, 0x10805},
	{0x10808, 0x10808},
	{0x1080A, 0x10835},
	{0x10837, 0x10838},
	{0x1083C, 0x1083C},
	{0x1083F, 0x1083F},
};

static const UnicodeRange kRanges_Cypro_Minoan[] = {
	{0x10100, 0x10101},
	{0x12F90, 0x12FF2},
};

static const UnicodeRange kRanges_Cyrillic[] = {
	{0x2BC, 0x2BC},
	{0x300, 0x302},
	{0x304, 0x304},
	{0x306, 0x306},
	{0x308, 0x308},
	{0x30B, 0x30B},
	{0x311, 0x311},
	{0x400, 0x52F},
	{0x1C80, 0x1C8A},
	{0x1D2B, 0x1D2B},
	{0x1D78, 0x1D78},
	{0x1DF8, 0x1DF8},
	{0x2DE0, 0x2DFF},
	{0x2E43, 0x2E43},
	{0xA640, 0xA69F},
	{0xFE2E, 0xFE2F},
	{0x1E030, 0x1E06D},
	{0x1E08F, 0x1E08F},
};

static const UnicodeRange kRanges_Deseret[] = {
	{0x10400, 0x1044F},
};

static const UnicodeRange kRanges_Devanagari[] = {
	{0x2BC, 0x2BC},
	{0x900, 0x952},
	{0x955, 0x97F},
	{0x1CD0, 0x1CF6},
	{0x1CF8, 0x1CF9},
	{0x20F0, 0x20F0},
	{0xA830, 0xA839},
	{0xA8E0, 0xA8FF},
	{0x11B00, 0x11B09},
};

static const UnicodeRange kRanges_Dives_Akuru[] = {
	{0x11900, 0x11906},
	{0x11909, 0x11909},
	{0x1190C, 0x11913},
	{0x11915, 0x11916},
	{0x11918, 0x11935},
	{0x11937, 0x11938},
	{0x1193B, 0x11946},
	{0x11950, 0x11959},
};

static const UnicodeRange kRanges_Dogra[] = {
	{0x964, 0x96F},
	{0xA830, 0xA839},
	{0x11800, 0x1183B},
};

static const UnicodeRange kRanges_Duployan[] = {
	{0xB7, 0xB7},
	{0x307, 0x308},
	{0x30A, 0x30A},
	{0x323, 0x324},
	{0x2E3C, 0x2E3C},
	{0x1BC00, 0x1BC6A},
	{0x1BC70, 0x1BC7C},
	{0x1BC80, 0x1BC88},
	{0x1BC90, 0x1BC99},
	{0x1BC9C, 0x1BCA3},
};

static const UnicodeRange kRanges_Egyptian_Hieroglyphs[] = {
	{0x13000, 0x13455},
	{0x13460, 0x143FA},
};

static const UnicodeRange kRanges_Elbasan[] = {
	{0xB7, 0xB7},
	{0x305, 0x305},
	{0x10500, 0x10527},
};

static const UnicodeRange kRanges_Elymaic[] = {
	{0x10FE0, 0x10FF6},
};

static const UnicodeRange kRanges_Ethiopic[] = {
	{0x30E, 0x30E},
	{0x1200, 0x1248},
	{0x124A, 0x124D},
	{0x1250, 0x1256},
	{0x1258, 0x1258},
	{0x125A, 0x125D},
	{0x1260, 0x1288},
	{0x128A, 0x128D},
	{0x1290, 0x12B0},
	{0x12B2, 0x12B5},
	{0x12B8, 0x12BE},
	{0x12C0, 0x12C0},
	{0x12C2, 0x12C5},
	{0x12C8, 0x12D6},
	{0x12D8, 0x1310},
	{0x1312, 0x1315},
	{0x1318, 0x135A},
	{0x135D, 0x137C},
	{0x1380, 0x1399},
	{0x2D80, 0x2D96},
	{0x2DA0, 0x2DA6},
	{0x2DA8, 0x2DAE},
	{0x2DB0, 0x2DB6},
	{0x2DB8, 0x2DBE},
	{0x2DC0, 0x2DC6},
	{0x2DC8, 0x2DCE},
	{0x2DD0, 0x2DD6},
	{0x2DD8, 0x2DDE},
	{0xAB01, 0xAB06},
	{0xAB09, 0xAB0E},
	{0xAB11, 0xAB16},
	{0xAB20, 0xAB26},
	{0xAB28, 0xAB2E},
	{0x1E7E0, 0x1E7E6},
	{0x1E7E8, 0x1E7EB},
	{0x1E7ED, 0x1E7EE},
	{0x1E7F0, 0x1E7FE},
};

static const UnicodeRange kRanges_Garay[] = {
	{0x60C, 0x60C},
	{0x61B, 0x61B},
	{0x61F, 0x61F},
	{0x10D40, 0x10D65},
	{0x10D69, 0x10D85},
	{0x10D8E, 0x10D8F},
};

static const UnicodeRange kRanges_Georgian[] = {
	{0xB7, 0xB7},
	{0x589, 0x589},
	{0x10A0, 0x10C5},
	{0x10C7, 0x10C7},
	{0x10CD, 0x10CD},
	{0x10D0, 0x10FF},
	{0x1C90, 0x1CBA},
	{0x1CBD, 0x1CBF},
	{0x205A, 0x205A},
	{0x2D00, 0x2D25},
	{0x2D27, 0x2D27},
	{0x2D2D, 0x2D2D},
	{0x2E31, 0x2E31},
};

static const UnicodeRange kRanges_Glagolitic[] = {
	{0xB7, 0xB7},
	{0x303, 0x303},
	{0x305, 0x305},
	{0x484, 0x484},
	{0x487, 0x487},
	{0x589, 0x589},
	{0x10FB, 0x10FB},
	{0x205A, 0x205A},
	{0x2C00, 0x2C5F},
	{0x2E43, 0x2E43},
	{0xA66F, 0xA66F},
	{0x1E000, 0x1E006},
	{0x1E008, 0x1E018},
	{0x1E01B, 0x1E021},
	{0x1E023, 0x1E024},
	{0x1E026, 0x1E02A},
};

static const UnicodeRange kRanges_Gothic[] = {
	{0xB7, 0xB7},
	{0x304, 0x305},
	{0x308, 0x308},
	{0x331, 0x331},
	{0x10330, 0x1034A},
};

static const UnicodeRange kRanges_Grantha[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xBE6, 0xBF3},
	{0x1CD0, 0x1CD0},
	{0x1CD2, 0x1CD3},
	{0x1CF2, 0x1CF4},
	{0x1CF8, 0x1CF9},
	{0x20F0, 0x20F0},
	{0x11300, 0x11303},
	{0x11305, 0x1130C},
	{0x1130F, 0x11310},
	{0x11313, 0x11328},
	{0x1132A, 0x11330},
	{0x11332, 0x11333},
	{0x11335, 0x11339},
	{0x1133B, 0x11344},
	{0x11347, 0x11348},
	{0x1134B, 0x1134D},
	{0x11350, 0x11350},
	{0x11357, 0x11357},
	{0x1135D, 0x11363},
	{0x11366, 0x1136C},
	{0x11370, 0x11374},
	{0x11FD0, 0x11FD1},
	{0x11FD3, 0x11FD3},
};

static const UnicodeRange kRanges_Greek[] = {
	{0xB7, 0xB7},
	{0x300, 0x301},
	{0x304, 0x304},
	{0x306, 0x306},
	{0x308, 0x308},
	{0x313, 0x313},
	{0x342, 0x342},
	{0x345, 0x345},
	{0x370, 0x377},
	{0x37A, 0x37D},
	{0x37F, 0x37F},
	{0x384, 0x384},
	{0x386, 0x386},
	{0x388, 0x38A},
	{0x38C, 0x38C},
	{0x38E, 0x3A1},
	{0x3A3, 0x3E1},
	{0x3F0, 0x3FF},
	{0x1D26, 0x1D2A},
	{0x1D5D, 0x1D61},
	{0x1D66, 0x1D6A},
	{0x1DBF, 0x1DC1},
	{0x1F00, 0x1F15},
	{0x1F18, 0x1F1D},
	{0x1F20, 0x1F45},
	{0x1F48, 0x1F4D},
	{0x1F50, 0x1F57},
	{0x1F59, 0x1F59},
	{0x1F5B, 0x1F5B},
	{0x1F5D, 0x1F5D},
	{0x1F5F, 0x1F7D},
	{0x1F80, 0x1FB4},
	{0x1FB6, 0x1FC4},
	{0x1FC6, 0x1FD3},
	{0x1FD6, 0x1FDB},
	{0x1FDD, 0x1FEF},
	{0x1FF2, 0x1FF4},
	{0x1FF6, 0x1FFE},
	{0x205D, 0x205D},
	{0x2126, 0x2126},
	{0xAB65, 0xAB65},
	{0x10140, 0x1018E},
	{0x101A0, 0x101A0},
	{0x1D200, 0x1D245},
};

static const UnicodeRange kRanges_Gujarati[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xA81, 0xA83},
	{0xA85, 0xA8D},
	{0xA8F, 0xA91},
	{0xA93, 0xAA8},
	{0xAAA, 0xAB0},
	{0xAB2, 0xAB3},
	{0xAB5, 0xAB9},
	{0xABC, 0xAC5},
	{0xAC7, 0xAC9},
	{0xACB, 0xACD},
	{0xAD0, 0xAD0},
	{0xAE0, 0xAE3},
	{0xAE6, 0xAF1},
	{0xAF9, 0xAFF},
	{0xA830, 0xA839},
};

static const UnicodeRange kRanges_Gunjala_Gondi[] = {
	{0xB7, 0xB7},
	{0x964, 0x965},
	{0x11D60, 0x11D65},
	{0x11D67, 0x11D68},
	{0x11D6A, 0x11D8E},
	{0x11D90, 0x11D91},
	{0x11D93, 0x11D98},
	{0x11DA0, 0x11DA9},
};

static const UnicodeRange kRanges_Gurmukhi[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xA01, 0xA03},
	{0xA05, 0xA0A},
	{0xA0F, 0xA10},
	{0xA13, 0xA28},
	{0xA2A, 0xA30},
	{0xA32, 0xA33},
	{0xA35, 0xA36},
	{0xA38, 0xA39},
	{0xA3C, 0xA3C},
	{0xA3E, 0xA42},
	{0xA47, 0xA48},
	{0xA4B, 0xA4D},
	{0xA51, 0xA51},
	{0xA59, 0xA5C},
	{0xA5E, 0xA5E},
	{0xA66, 0xA76},
	{0xA830, 0xA839},
};

static const UnicodeRange kRanges_Gurung_Khema[] = {
	{0x965, 0x965},
	{0x16100, 0x16139},
};

static const UnicodeRange kRanges_Han[] = {
	{0xB7, 0xB7},
	{0x2E80, 0x2E99},
	{0x2E9B, 0x2EF3},
	{0x2F00, 0x2FD5},
	{0x2FF0, 0x2FFF},
	{0x3001, 0x3003},
	{0x3005, 0x3011},
	{0x3013, 0x301F},
	{0x3021, 0x302D},
	{0x3030, 0x3030},
	{0x3037, 0x303F},
	{0x30FB, 0x30FB},
	{0x3190, 0x319F},
	{0x31C0, 0x31E5},
	{0x31EF, 0x31EF},
	{0x3220, 0x3247},
	{0x3280, 0x32B0},
	{0x32C0, 0x32CB},
	{0x32FF, 0x32FF},
	{0x3358, 0x3370},
	{0x337B, 0x337F},
	{0x33E0, 0x33FE},
	{0x3400, 0x4DBF},
	{0x4E00, 0x9FFF},
	{0xA700, 0xA707},
	{0xF900, 0xFA6D},
	{0xFA70, 0xFAD9},
	{0xFE45, 0xFE46},
	{0xFF61, 0xFF65},
	{0x16FE2, 0x16FE3},
	{0x16FF0, 0x16FF6},
	{0x1D360, 0x1D371},
	{0x1F250, 0x1F251},
	{0x20000, 0x2A6DF},
	{0x2A700, 0x2B81D},
	{0x2B820, 0x2CEAD},
	{0x2CEB0, 0x2EBE0},
	{0x2EBF0, 0x2EE5D},
	{0x2F800, 0x2FA1D},
	{0x30000, 0x3134A},
	{0x31350, 0x33479},
};

static const UnicodeRange kRanges_Hangul[] = {
	{0x1100, 0x11FF},
	{0x3001, 0x3003},
	{0x3008, 0x3011},
	{0x3013, 0x301F},
	{0x302E, 0x3030},
	{0x3037, 0x3037},
	{0x30FB, 0x30FB},
	{0x3131, 0x318E},
	{0x3200, 0x321E},
	{0x3260, 0x327E},
	{0xA960, 0xA97C},
	{0xAC00, 0xD7A3},
	{0xD7B0, 0xD7C6},
	{0xD7CB, 0xD7FB},
	{0xFE45, 0xFE46},
	{0xFF61, 0xFF65},
	{0xFFA0, 0xFFBE},
	{0xFFC2, 0xFFC7},
	{0xFFCA, 0xFFCF},
	{0xFFD2, 0xFFD7},
	{0xFFDA, 0xFFDC},
};

static const UnicodeRange kRanges_Hanifi_Rohingya[] = {
	{0x60C, 0x60C},
	{0x61B, 0x61B},
	{0x61F, 0x61F},
	{0x640, 0x640},
	{0x6D4, 0x6D4},
	{0x10D00, 0x10D27},
	{0x10D30, 0x10D39},
};

static const UnicodeRange kRanges_Hanunoo[] = {
	{0x1720, 0x1736},
};

static const UnicodeRange kRanges_Hatran[] = {
	{0x108E0, 0x108F2},
	{0x108F4, 0x108F5},
	{0x108FB, 0x108FF},
};

static const UnicodeRange kRanges_Hebrew[] = {
	{0x307, 0x308},
	{0x591, 0x5C7},
	{0x5D0, 0x5EA},
	{0x5EF, 0x5F4},
	{0xFB1D, 0xFB36},
	{0xFB38, 0xFB3C},
	{0xFB3E, 0xFB3E},
	{0xFB40, 0xFB41},
	{0xFB43, 0xFB44},
	{0xFB46, 0xFB4F},
};

static const UnicodeRange kRanges_Hiragana[] = {
	{0x3001, 0x3003},
	{0x3008, 0x3011},
	{0x3013, 0x301F},
	{0x3030, 0x3035},
	{0x3037, 0x3037},
	{0x303C, 0x303D},
	{0x3041, 0x3096},
	{0x3099, 0x30A0},
	{0x30FB, 0x30FC},
	{0xFE45, 0xFE46},
	{0xFF61, 0xFF65},
	{0xFF70, 0xFF70},
	{0xFF9E, 0xFF9F},
	{0x1B001, 0x1B11F},
	{0x1B132, 0x1B132},
	{0x1B150, 0x1B152},
	{0x1F200, 0x1F200},
};

static const UnicodeRange kRanges_Imperial_Aramaic[] = {
	{0x10840, 0x10855},
	{0x10857, 0x1085F},
};

static const UnicodeRange kRanges_Inherited[] = {
	{0x30F, 0x30F},
	{0x312, 0x312},
	{0x314, 0x322},
	{0x326, 0x32C},
	{0x32F, 0x32F},
	{0x332, 0x341},
	{0x343, 0x344},
	{0x346, 0x357},
	{0x359, 0x35D},
	{0x35F, 0x362},
	{0x953, 0x954},
	{0x1AB0, 0x1ADD},
	{0x1AE0, 0x1AEB},
	{0x1DC2, 0x1DF7},
	{0x1DF9, 0x1DF9},
	{0x1DFB, 0x1DFF},
	{0x200C, 0x200D},
	{0x20D0, 0x20EF},
	{0xFE00, 0xFE0F},
	{0xFE20, 0xFE2D},
	{0x101FD, 0x101FD},
	{0x1CF00, 0x1CF2D},
	{0x1CF30, 0x1CF46},
	{0x1D167, 0x1D169},
	{0x1D17B, 0x1D182},
	{0x1D185, 0x1D18B},
	{0x1D1AA, 0x1D1AD},
	{0xE0100, 0xE01EF},
};

static const UnicodeRange kRanges_Inscriptional_Pahlavi[] = {
	{0x10B60, 0x10B72},
	{0x10B78, 0x10B7F},
};

static const UnicodeRange kRanges_Inscriptional_Parthian[] = {
	{0x10B40, 0x10B55},
	{0x10B58, 0x10B5F},
};

static const UnicodeRange kRanges_Javanese[] = {
	{0xA980, 0xA9CD},
	{0xA9CF, 0xA9D9},
	{0xA9DE, 0xA9DF},
};

static const UnicodeRange kRanges_Kaithi[] = {
	{0x966, 0x96F},
	{0x2E31, 0x2E31},
	{0xA830, 0xA839},
	{0x11080, 0x110C2},
	{0x110CD, 0x110CD},
};

static const UnicodeRange kRanges_Kannada[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xC80, 0xC8C},
	{0xC8E, 0xC90},
	{0xC92, 0xCA8},
	{0xCAA, 0xCB3},
	{0xCB5, 0xCB9},
	{0xCBC, 0xCC4},
	{0xCC6, 0xCC8},
	{0xCCA, 0xCCD},
	{0xCD5, 0xCD6},
	{0xCDC, 0xCDE},
	{0xCE0, 0xCE3},
	{0xCE6, 0xCEF},
	{0xCF1, 0xCF3},
	{0x1CD0, 0x1CD0},
	{0x1CD2, 0x1CD3},
	{0x1CDA, 0x1CDA},
	{0x1CF2, 0x1CF2},
	{0x1CF4, 0x1CF4},
	{0xA830, 0xA835},
};

static const UnicodeRange kRanges_Katakana[] = {
	{0x305, 0x305},
	{0x323, 0x323},
	{0x3001, 0x3003},
	{0x3008, 0x3011},
	{0x3013, 0x301F},
	{0x3030, 0x3035},
	{0x3037, 0x3037},
	{0x303C, 0x303D},
	{0x3099, 0x309C},
	{0x30A0, 0x30FF},
	{0x31F0, 0x31FF},
	{0x32D0, 0x32FE},
	{0x3300, 0x3357},
	{0xFE45, 0xFE46},
	{0xFF61, 0xFF9F},
	{0x1AFF0, 0x1AFF3},
	{0x1AFF5, 0x1AFFB},
	{0x1AFFD, 0x1AFFE},
	{0x1B000, 0x1B000},
	{0x1B120, 0x1B122},
	{0x1B155, 0x1B155},
	{0x1B164, 0x1B167},
};

static const UnicodeRange kRanges_Kawi[] = {
	{0x11F00, 0x11F10},
	{0x11F12, 0x11F3A},
	{0x11F3E, 0x11F5A},
};

static const UnicodeRange kRanges_Kayah_Li[] = {
	{0xA900, 0xA92F},
};

static const UnicodeRange kRanges_Kharoshthi[] = {
	{0x10A00, 0x10A03},
	{0x10A05, 0x10A06},
	{0x10A0C, 0x10A13},
	{0x10A15, 0x10A17},
	{0x10A19, 0x10A35},
	{0x10A38, 0x10A3A},
	{0x10A3F, 0x10A48},
	{0x10A50, 0x10A58},
};

static const UnicodeRange kRanges_Khitan_Small_Script[] = {
	{0x16FE4, 0x16FE4},
	{0x18B00, 0x18CD5},
	{0x18CFF, 0x18CFF},
};

static const UnicodeRange kRanges_Khmer[] = {
	{0x1780, 0x17DD},
	{0x17E0, 0x17E9},
	{0x17F0, 0x17F9},
	{0x19E0, 0x19FF},
};

static const UnicodeRange kRanges_Khojki[] = {
	{0xAE6, 0xAEF},
	{0xA830, 0xA839},
	{0x11200, 0x11211},
	{0x11213, 0x11241},
};

static const UnicodeRange kRanges_Khudawadi[] = {
	{0x964, 0x965},
	{0xA830, 0xA839},
	{0x112B0, 0x112EA},
	{0x112F0, 0x112F9},
};

static const UnicodeRange kRanges_Kirat_Rai[] = {
	{0x16D40, 0x16D79},
};

static const UnicodeRange kRanges_Lao[] = {
	{0xE81, 0xE82},
	{0xE84, 0xE84},
	{0xE86, 0xE8A},
	{0xE8C, 0xEA3},
	{0xEA5, 0xEA5},
	{0xEA7, 0xEBD},
	{0xEC0, 0xEC4},
	{0xEC6, 0xEC6},
	{0xEC8, 0xECE},
	{0xED0, 0xED9},
	{0xEDC, 0xEDF},
};

static const UnicodeRange kRanges_Latin[] = {
	{0x41, 0x5A},
	{0x61, 0x7A},
	{0xAA, 0xAA},
	{0xB7, 0xB7},
	{0xBA, 0xBA},
	{0xC0, 0xD6},
	{0xD8, 0xF6},
	{0xF8, 0x2B8},
	{0x2BC, 0x2BC},
	{0x2C7, 0x2C7},
	{0x2C9, 0x2CB},
	{0x2CD, 0x2CD},
	{0x2D7, 0x2D7},
	{0x2D9, 0x2D9},
	{0x2E0, 0x2E4},
	{0x300, 0x30E},
	{0x310, 0x311},
	{0x313, 0x313},
	{0x323, 0x325},
	{0x32D, 0x32E},
	{0x330, 0x331},
	{0x358, 0x358},
	{0x35E, 0x35E},
	{0x363, 0x36F},
	{0x485, 0x486},
	{0x951, 0x952},
	{0x10FB, 0x10FB},
	{0x1D00, 0x1D25},
	{0x1D2C, 0x1D5C},
	{0x1D62, 0x1D65},
	{0x1D6B, 0x1D77},
	{0x1D79, 0x1DBE},
	{0x1DF8, 0x1DF8},
	{0x1E00, 0x1EFF},
	{0x202F, 0x202F},
	{0x2071, 0x2071},
	{0x207F, 0x207F},
	{0x2090, 0x209C},
	{0x20F0, 0x20F0},
	{0x212A, 0x212B},
	{0x2132, 0x2132},
	{0x214E, 0x214E},
	{0x2160, 0x2188},
	{0x2C60, 0x2C7F},
	{0x2E17, 0x2E17},
	{0xA700, 0xA707},
	{0xA722, 0xA787},
	{0xA78B, 0xA7DC},
	{0xA7F1, 0xA7FF},
	{0xA92E, 0xA92E},
	{0xAB30, 0xAB5A},
	{0xAB5C, 0xAB64},
	{0xAB66, 0xAB69},
	{0xFB00, 0xFB06},
	{0xFF21, 0xFF3A},
	{0xFF41, 0xFF5A},
	{0x10780, 0x10785},
	{0x10787, 0x107B0},
	{0x107B2, 0x107BA},
	{0x1DF00, 0x1DF1E},
	{0x1DF25, 0x1DF2A},
};

static const UnicodeRange kRanges_Lepcha[] = {
	{0x1C00, 0x1C37},
	{0x1C3B, 0x1C49},
	{0x1C4D, 0x1C4F},
};

static const UnicodeRange kRanges_Limbu[] = {
	{0x965, 0x965},
	{0x1900, 0x191E},
	{0x1920, 0x192B},
	{0x1930, 0x193B},
	{0x1940, 0x1940},
	{0x1944, 0x194F},
};

static const UnicodeRange kRanges_Linear_A[] = {
	{0x10107, 0x10133},
	{0x10600, 0x10736},
	{0x10740, 0x10755},
	{0x10760, 0x10767},
};

static const UnicodeRange kRanges_Linear_B[] = {
	{0x10000, 0x1000B},
	{0x1000D, 0x10026},
	{0x10028, 0x1003A},
	{0x1003C, 0x1003D},
	{0x1003F, 0x1004D},
	{0x10050, 0x1005D},
	{0x10080, 0x100FA},
	{0x10100, 0x10102},
	{0x10107, 0x10133},
	{0x10137, 0x1013F},
};

static const UnicodeRange kRanges_Lisu[] = {
	{0x2BC, 0x2BC},
	{0x2CD, 0x2CD},
	{0x300A, 0x300B},
	{0xA4D0, 0xA4FF},
	{0x11FB0, 0x11FB0},
};

static const UnicodeRange kRanges_Lycian[] = {
	{0x205A, 0x205A},
	{0x10280, 0x1029C},
};

static const UnicodeRange kRanges_Lydian[] = {
	{0xB7, 0xB7},
	{0x2E31, 0x2E31},
	{0x10920, 0x10939},
	{0x1093F, 0x1093F},
};

static const UnicodeRange kRanges_Mahajani[] = {
	{0xB7, 0xB7},
	{0x964, 0x96F},
	{0xA830, 0xA839},
	{0x11150, 0x11176},
};

static const UnicodeRange kRanges_Makasar[] = {
	{0x11EE0, 0x11EF8},
};

static const UnicodeRange kRanges_Malayalam[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xD00, 0xD0C},
	{0xD0E, 0xD10},
	{0xD12, 0xD44},
	{0xD46, 0xD48},
	{0xD4A, 0xD4F},
	{0xD54, 0xD63},
	{0xD66, 0xD7F},
	{0x1CDA, 0x1CDA},
	{0x1CF2, 0x1CF2},
	{0xA830, 0xA832},
};

static const UnicodeRange kRanges_Mandaic[] = {
	{0x640, 0x640},
	{0x840, 0x85B},
	{0x85E, 0x85E},
};

static const UnicodeRange kRanges_Manichaean[] = {
	{0x640, 0x640},
	{0x10AC0, 0x10AE6},
	{0x10AEB, 0x10AF6},
};

static const UnicodeRange kRanges_Marchen[] = {
	{0x11C70, 0x11C8F},
	{0x11C92, 0x11CA7},
	{0x11CA9, 0x11CB6},
};

static const UnicodeRange kRanges_Masaram_Gondi[] = {
	{0x964, 0x965},
	{0x11D00, 0x11D06},
	{0x11D08, 0x11D09},
	{0x11D0B, 0x11D36},
	{0x11D3A, 0x11D3A},
	{0x11D3C, 0x11D3D},
	{0x11D3F, 0x11D47},
	{0x11D50, 0x11D59},
};

static const UnicodeRange kRanges_Medefaidrin[] = {
	{0x16E40, 0x16E9A},
};

static const UnicodeRange kRanges_Meetei_Mayek[] = {
	{0xAAE0, 0xAAF6},
	{0xABC0, 0xABED},
	{0xABF0, 0xABF9},
};

static const UnicodeRange kRanges_Mende_Kikakui[] = {
	{0x1E800, 0x1E8C4},
	{0x1E8C7, 0x1E8D6},
};

static const UnicodeRange kRanges_Meroitic_Cursive[] = {
	{0x109A0, 0x109B7},
	{0x109BC, 0x109CF},
	{0x109D2, 0x109FF},
};

static const UnicodeRange kRanges_Meroitic_Hieroglyphs[] = {
	{0x205D, 0x205D},
	{0x10980, 0x1099F},
};

static const UnicodeRange kRanges_Miao[] = {
	{0x16F00, 0x16F4A},
	{0x16F4F, 0x16F87},
	{0x16F8F, 0x16F9F},
};

static const UnicodeRange kRanges_Modi[] = {
	{0xA830, 0xA839},
	{0x11600, 0x11644},
	{0x11650, 0x11659},
};

static const UnicodeRange kRanges_Mongolian[] = {
	{0x1800, 0x1819},
	{0x1820, 0x1878},
	{0x1880, 0x18AA},
	{0x202F, 0x202F},
	{0x3001, 0x3002},
	{0x3008, 0x300B},
	{0x11660, 0x1166C},
};

static const UnicodeRange kRanges_Mro[] = {
	{0x16A40, 0x16A5E},
	{0x16A60, 0x16A69},
	{0x16A6E, 0x16A6F},
};

static const UnicodeRange kRanges_Multani[] = {
	{0xA66, 0xA6F},
	{0x11280, 0x11286},
	{0x11288, 0x11288},
	{0x1128A, 0x1128D},
	{0x1128F, 0x1129D},
	{0x1129F, 0x112A9},
};

static const UnicodeRange kRanges_Myanmar[] = {
	{0x1000, 0x109F},
	{0xA92E, 0xA92E},
	{0xA9E0, 0xA9FE},
	{0xAA60, 0xAA7F},
	{0x116D0, 0x116E3},
};

static const UnicodeRange kRanges_Nabataean[] = {
	{0x10880, 0x1089E},
	{0x108A7, 0x108AF},
};

static const UnicodeRange kRanges_Nag_Mundari[] = {
	{0x1E4D0, 0x1E4F9},
};

static const UnicodeRange kRanges_Nandinagari[] = {
	{0x951, 0x951},
	{0x964, 0x965},
	{0xCE6, 0xCEF},
	{0x1CE9, 0x1CE9},
	{0x1CF2, 0x1CF2},
	{0x1CFA, 0x1CFA},
	{0xA830, 0xA835},
	{0x119A0, 0x119A7},
	{0x119AA, 0x119D7},
	{0x119DA, 0x119E4},
};

static const UnicodeRange kRanges_New_Tai_Lue[] = {
	{0x1980, 0x19AB},
	{0x19B0, 0x19C9},
	{0x19D0, 0x19DA},
	{0x19DE, 0x19DF},
};

static const UnicodeRange kRanges_Newa[] = {
	{0x951, 0x952},
	{0x1CD5, 0x1CD5},
	{0x1CD7, 0x1CD8},
	{0x1CE2, 0x1CE2},
	{0x1CE9, 0x1CE9},
	{0x1CEB, 0x1CEB},
	{0x1CED, 0x1CED},
	{0x11400, 0x1145B},
	{0x1145D, 0x11461},
};

static const UnicodeRange kRanges_Nko[] = {
	{0x60C, 0x60C},
	{0x61B, 0x61B},
	{0x61F, 0x61F},
	{0x7C0, 0x7FA},
	{0x7FD, 0x7FF},
	{0xFD3E, 0xFD3F},
};

static const UnicodeRange kRanges_Nushu[] = {
	{0x16FE1, 0x16FE1},
	{0x1B170, 0x1B2FB},
};

static const UnicodeRange kRanges_Nyiakeng_Puachue_Hmong[] = {
	{0x1E100, 0x1E12C},
	{0x1E130, 0x1E13D},
	{0x1E140, 0x1E149},
	{0x1E14E, 0x1E14F},
};

static const UnicodeRange kRanges_Ogham[] = {
	{0x1680, 0x169C},
};

static const UnicodeRange kRanges_Ol_Chiki[] = {
	{0x1C50, 0x1C7F},
};

static const UnicodeRange kRanges_Ol_Onal[] = {
	{0x964, 0x965},
	{0x1E5D0, 0x1E5FA},
	{0x1E5FF, 0x1E5FF},
};

static const UnicodeRange kRanges_Old_Hungarian[] = {
	{0x205A, 0x205A},
	{0x205D, 0x205D},
	{0x2E31, 0x2E31},
	{0x2E41, 0x2E41},
	{0x10C80, 0x10CB2},
	{0x10CC0, 0x10CF2},
	{0x10CFA, 0x10CFF},
};

static const UnicodeRange kRanges_Old_Italic[] = {
	{0x10300, 0x10323},
	{0x1032D, 0x1032F},
};

static const UnicodeRange kRanges_Old_North_Arabian[] = {
	{0x10A80, 0x10A9F},
};

static const UnicodeRange kRanges_Old_Permic[] = {
	{0xB7, 0xB7},
	{0x300, 0x300},
	{0x306, 0x308},
	{0x313, 0x313},
	{0x483, 0x483},
	{0x10350, 0x1037A},
};

static const UnicodeRange kRanges_Old_Persian[] = {
	{0x103A0, 0x103C3},
	{0x103C8, 0x103D5},
};

static const UnicodeRange kRanges_Old_Sogdian[] = {
	{0x10F00, 0x10F27},
};

static const UnicodeRange kRanges_Old_South_Arabian[] = {
	{0x10A60, 0x10A7F},
};

static const UnicodeRange kRanges_Old_Turkic[] = {
	{0x205A, 0x205A},
	{0x2E30, 0x2E30},
	{0x10C00, 0x10C48},
};

static const UnicodeRange kRanges_Old_Uyghur[] = {
	{0x640, 0x640},
	{0x10AF2, 0x10AF2},
	{0x10F70, 0x10F89},
};

static const UnicodeRange kRanges_Oriya[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xB01, 0xB03},
	{0xB05, 0xB0C},
	{0xB0F, 0xB10},
	{0xB13, 0xB28},
	{0xB2A, 0xB30},
	{0xB32, 0xB33},
	{0xB35, 0xB39},
	{0xB3C, 0xB44},
	{0xB47, 0xB48},
	{0xB4B, 0xB4D},
	{0xB55, 0xB57},
	{0xB5C, 0xB5D},
	{0xB5F, 0xB63},
	{0xB66, 0xB77},
	{0x1CDA, 0x1CDA},
	{0x1CF2, 0x1CF2},
};

static const UnicodeRange kRanges_Osage[] = {
	{0x301, 0x301},
	{0x304, 0x304},
	{0x30B, 0x30B},
	{0x358, 0x358},
	{0x104B0, 0x104D3},
	{0x104D8, 0x104FB},
};

static const UnicodeRange kRanges_Osmanya[] = {
	{0x10480, 0x1049D},
	{0x104A0, 0x104A9},
};

static const UnicodeRange kRanges_Pahawh_Hmong[] = {
	{0x16B00, 0x16B45},
	{0x16B50, 0x16B59},
	{0x16B5B, 0x16B61},
	{0x16B63, 0x16B77},
	{0x16B7D, 0x16B8F},
};

static const UnicodeRange kRanges_Palmyrene[] = {
	{0x10860, 0x1087F},
};

static const UnicodeRange kRanges_Pau_Cin_Hau[] = {
	{0x11AC0, 0x11AF8},
};

static const UnicodeRange kRanges_Phags_Pa[] = {
	{0x1802, 0x1803},
	{0x1805, 0x1805},
	{0x202F, 0x202F},
	{0x3002, 0x3002},
	{0xA840, 0xA877},
};

static const UnicodeRange kRanges_Phoenician[] = {
	{0x10900, 0x1091B},
	{0x1091F, 0x1091F},
};

static const UnicodeRange kRanges_Psalter_Pahlavi[] = {
	{0x640, 0x640},
	{0x10B80, 0x10B91},
	{0x10B99, 0x10B9C},
	{0x10BA9, 0x10BAF},
};

static const UnicodeRange kRanges_Rejang[] = {
	{0xA930, 0xA953},
	{0xA95F, 0xA95F},
};

static const UnicodeRange kRanges_Runic[] = {
	{0x16A0, 0x16F8},
};

static const UnicodeRange kRanges_Samaritan[] = {
	{0x800, 0x82D},
	{0x830, 0x83E},
	{0x2E31, 0x2E31},
};

static const UnicodeRange kRanges_Saurashtra[] = {
	{0xA880, 0xA8C5},
	{0xA8CE, 0xA8D9},
};

static const UnicodeRange kRanges_Sharada[] = {
	{0x951, 0x951},
	{0x1CD7, 0x1CD7},
	{0x1CD9, 0x1CD9},
	{0x1CDC, 0x1CDD},
	{0x1CE0, 0x1CE0},
	{0x1CEA, 0x1CEA},
	{0x1CED, 0x1CED},
	{0xA830, 0xA835},
	{0xA838, 0xA838},
	{0x11180, 0x111DF},
	{0x11B60, 0x11B67},
};

static const UnicodeRange kRanges_Shavian[] = {
	{0xB7, 0xB7},
	{0x10450, 0x1047F},
};

static const UnicodeRange kRanges_Siddham[] = {
	{0x11580, 0x115B5},
	{0x115B8, 0x115DD},
};

static const UnicodeRange kRanges_Sidetic[] = {
	{0x10940, 0x10959},
};

static const UnicodeRange kRanges_SignWriting[] = {
	{0x1D800, 0x1DA8B},
	{0x1DA9B, 0x1DA9F},
	{0x1DAA1, 0x1DAAF},
};

static const UnicodeRange kRanges_Sinhala[] = {
	{0x964, 0x965},
	{0xD81, 0xD83},
	{0xD85, 0xD96},
	{0xD9A, 0xDB1},
	{0xDB3, 0xDBB},
	{0xDBD, 0xDBD},
	{0xDC0, 0xDC6},
	{0xDCA, 0xDCA},
	{0xDCF, 0xDD4},
	{0xDD6, 0xDD6},
	{0xDD8, 0xDDF},
	{0xDE6, 0xDEF},
	{0xDF2, 0xDF4},
	{0x1CF2, 0x1CF2},
	{0x111E1, 0x111F4},
};

static const UnicodeRange kRanges_Sogdian[] = {
	{0x640, 0x640},
	{0x10F30, 0x10F59},
};

static const UnicodeRange kRanges_Sora_Sompeng[] = {
	{0x110D0, 0x110E8},
	{0x110F0, 0x110F9},
};

static const UnicodeRange kRanges_Soyombo[] = {
	{0x11A50, 0x11AA2},
};

static const UnicodeRange kRanges_Sundanese[] = {
	{0x1B80, 0x1BBF},
	{0x1CC0, 0x1CC7},
};

static const UnicodeRange kRanges_Sunuwar[] = {
	{0x300, 0x301},
	{0x303, 0x303},
	{0x30D, 0x30D},
	{0x310, 0x310},
	{0x32D, 0x32D},
	{0x331, 0x331},
	{0x11BC0, 0x11BE1},
	{0x11BF0, 0x11BF9},
};

static const UnicodeRange kRanges_Syloti_Nagri[] = {
	{0x964, 0x965},
	{0x9E6, 0x9EF},
	{0xA800, 0xA82C},
};

static const UnicodeRange kRanges_Syriac[] = {
	{0x303, 0x304},
	{0x307, 0x308},
	{0x30A, 0x30A},
	{0x323, 0x325},
	{0x32D, 0x32E},
	{0x330, 0x331},
	{0x60C, 0x60C},
	{0x61B, 0x61C},
	{0x61F, 0x61F},
	{0x640, 0x640},
	{0x64B, 0x655},
	{0x670, 0x670},
	{0x700, 0x70D},
	{0x70F, 0x74A},
	{0x74D, 0x74F},
	{0x860, 0x86A},
	{0x1DF8, 0x1DF8},
	{0x1DFA, 0x1DFA},
};

static const UnicodeRange kRanges_Tagalog[] = {
	{0x1700, 0x1715},
	{0x171F, 0x171F},
	{0x1735, 0x1736},
};

static const UnicodeRange kRanges_Tagbanwa[] = {
	{0x1735, 0x1736},
	{0x1760, 0x176C},
	{0x176E, 0x1770},
	{0x1772, 0x1773},
};

static const UnicodeRange kRanges_Tai_Le[] = {
	{0x300, 0x301},
	{0x307, 0x308},
	{0x30C, 0x30C},
	{0x1040, 0x1049},
	{0x1950, 0x196D},
	{0x1970, 0x1974},
};

static const UnicodeRange kRanges_Tai_Tham[] = {
	{0x1A20, 0x1A5E},
	{0x1A60, 0x1A7C},
	{0x1A7F, 0x1A89},
	{0x1A90, 0x1A99},
	{0x1AA0, 0x1AAD},
};

static const UnicodeRange kRanges_Tai_Viet[] = {
	{0xAA80, 0xAAC2},
	{0xAADB, 0xAADF},
};

static const UnicodeRange kRanges_Tai_Yo[] = {
	{0x1E6C0, 0x1E6DE},
	{0x1E6E0, 0x1E6F5},
	{0x1E6FE, 0x1E6FF},
};

static const UnicodeRange kRanges_Takri[] = {
	{0x964, 0x965},
	{0xA830, 0xA839},
	{0x11680, 0x116B9},
	{0x116C0, 0x116C9},
};

static const UnicodeRange kRanges_Tamil[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xB82, 0xB83},
	{0xB85, 0xB8A},
	{0xB8E, 0xB90},
	{0xB92, 0xB95},
	{0xB99, 0xB9A},
	{0xB9C, 0xB9C},
	{0xB9E, 0xB9F},
	{0xBA3, 0xBA4},
	{0xBA8, 0xBAA},
	{0xBAE, 0xBB9},
	{0xBBE, 0xBC2},
	{0xBC6, 0xBC8},
	{0xBCA, 0xBCD},
	{0xBD0, 0xBD0},
	{0xBD7, 0xBD7},
	{0xBE6, 0xBFA},
	{0x1CDA, 0x1CDA},
	{0xA8F3, 0xA8F3},
	{0x11301, 0x11301},
	{0x11303, 0x11303},
	{0x1133B, 0x1133C},
	{0x11FC0, 0x11FF1},
	{0x11FFF, 0x11FFF},
};

static const UnicodeRange kRanges_Tangsa[] = {
	{0x16A70, 0x16ABE},
	{0x16AC0, 0x16AC9},
};

static const UnicodeRange kRanges_Tangut[] = {
	{0x2FF0, 0x2FFF},
	{0x31EF, 0x31EF},
	{0x16FE0, 0x16FE0},
	{0x17000, 0x18AFF},
	{0x18D00, 0x18D1E},
	{0x18D80, 0x18DF2},
};

static const UnicodeRange kRanges_Telugu[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0xC00, 0xC0C},
	{0xC0E, 0xC10},
	{0xC12, 0xC28},
	{0xC2A, 0xC39},
	{0xC3C, 0xC44},
	{0xC46, 0xC48},
	{0xC4A, 0xC4D},
	{0xC55, 0xC56},
	{0xC58, 0xC5A},
	{0xC5C, 0xC5D},
	{0xC60, 0xC63},
	{0xC66, 0xC6F},
	{0xC77, 0xC7F},
	{0x1CD5, 0x1CD6},
	{0x1CD8, 0x1CD8},
	{0x1CDA, 0x1CDA},
	{0x1CF2, 0x1CF2},
};

static const UnicodeRange kRanges_Thaana[] = {
	{0x60C, 0x60C},
	{0x61B, 0x61C},
	{0x61F, 0x61F},
	{0x660, 0x669},
	{0x780, 0x7B1},
	{0xFDF2, 0xFDF2},
	{0xFDFD, 0xFDFD},
};

static const UnicodeRange kRanges_Thai[] = {
	{0x2BC, 0x2BC},
	{0x2D7, 0x2D7},
	{0x303, 0x303},
	{0x331, 0x331},
	{0xE01, 0xE3A},
	{0xE40, 0xE5B},
};

static const UnicodeRange kRanges_Tibetan[] = {
	{0xF00, 0xF47},
	{0xF49, 0xF6C},
	{0xF71, 0xF97},
	{0xF99, 0xFBC},
	{0xFBE, 0xFCC},
	{0xFCE, 0xFD4},
	{0xFD9, 0xFDA},
	{0x3008, 0x300B},
};

static const UnicodeRange kRanges_Tifinagh[] = {
	{0x302, 0x302},
	{0x304, 0x304},
	{0x306, 0x309},
	{0x323, 0x323},
	{0x2D30, 0x2D67},
	{0x2D6F, 0x2D70},
	{0x2D7F, 0x2D7F},
};

static const UnicodeRange kRanges_Tirhuta[] = {
	{0x951, 0x952},
	{0x964, 0x965},
	{0x1CD5, 0x1CD5},
	{0x1CE2, 0x1CE2},
	{0x1CF2, 0x1CF2},
	{0xA830, 0xA839},
	{0x11480, 0x114C7},
	{0x114D0, 0x114D9},
};

static const UnicodeRange kRanges_Todhri[] = {
	{0x301, 0x301},
	{0x304, 0x304},
	{0x307, 0x307},
	{0x311, 0x311},
	{0x313, 0x313},
	{0x35E, 0x35E},
	{0x105C0, 0x105F3},
};

static const UnicodeRange kRanges_Tolong_Siki[] = {
	{0x11DB0, 0x11DDB},
	{0x11DE0, 0x11DE9},
};

static const UnicodeRange kRanges_Toto[] = {
	{0x2BC, 0x2BC},
	{0x1E290, 0x1E2AE},
};

static const UnicodeRange kRanges_Tulu_Tigalari[] = {
	{0xCE6, 0xCEF},
	{0x1CF2, 0x1CF2},
	{0x1CF4, 0x1CF4},
	{0xA830, 0xA835},
	{0xA8F1, 0xA8F1},
	{0x11380, 0x11389},
	{0x1138B, 0x1138B},
	{0x1138E, 0x1138E},
	{0x11390, 0x113B5},
	{0x113B7, 0x113C0},
	{0x113C2, 0x113C2},
	{0x113C5, 0x113C5},
	{0x113C7, 0x113CA},
	{0x113CC, 0x113D5},
	{0x113D7, 0x113D8},
	{0x113E1, 0x113E2},
};

static const UnicodeRange kRanges_Ugaritic[] = {
	{0x10380, 0x1039D},
	{0x1039F, 0x1039F},
};

static const UnicodeRange kRanges_Unknown[] = {
	{0x378, 0x379},
	{0x380, 0x383},
	{0x38B, 0x38B},
	{0x38D, 0x38D},
	{0x3A2, 0x3A2},
	{0x530, 0x530},
	{0x557, 0x558},
	{0x58B, 0x58C},
	{0x590, 0x590},
	{0x5C8, 0x5CF},
	{0x5EB, 0x5EE},
	{0x5F5, 0x5FF},
	{0x70E, 0x70E},
	{0x74B, 0x74C},
	{0x7B2, 0x7BF},
	{0x7FB, 0x7FC},
	{0x82E, 0x82F},
	{0x83F, 0x83F},
	{0x85C, 0x85D},
	{0x85F, 0x85F},
	{0x86B, 0x86F},
	{0x892, 0x896},
	{0x984, 0x984},
	{0x98D, 0x98E},
	{0x991, 0x992},
	{0x9A9, 0x9A9},
	{0x9B1, 0x9B1},
	{0x9B3, 0x9B5},
	{0x9BA, 0x9BB},
	{0x9C5, 0x9C6},
	{0x9C9, 0x9CA},
	{0x9CF, 0x9D6},
	{0x9D8, 0x9DB},
	{0x9DE, 0x9DE},
	{0x9E4, 0x9E5},
	{0x9FF, 0xA00},
	{0xA04, 0xA04},
	{0xA0B, 0xA0E},
	{0xA11, 0xA12},
	{0xA29, 0xA29},
	{0xA31, 0xA31},
	{0xA34, 0xA34},
	{0xA37, 0xA37},
	{0xA3A, 0xA3B},
	{0xA3D, 0xA3D},
	{0xA43, 0xA46},
	{0xA49, 0xA4A},
	{0xA4E, 0xA50},
	{0xA52, 0xA58},
	{0xA5D, 0xA5D},
	{0xA5F, 0xA65},
	{0xA77, 0xA80},
	{0xA84, 0xA84},
	{0xA8E, 0xA8E},
	{0xA92, 0xA92},
	{0xAA9, 0xAA9},
	{0xAB1, 0xAB1},
	{0xAB4, 0xAB4},
	{0xABA, 0xABB},
	{0xAC6, 0xAC6},
	{0xACA, 0xACA},
	{0xACE, 0xACF},
	{0xAD1, 0xADF},
	{0xAE4, 0xAE5},
	{0xAF2, 0xAF8},
	{0xB00, 0xB00},
	{0xB04, 0xB04},
	{0xB0D, 0xB0E},
	{0xB11, 0xB12},
	{0xB29, 0xB29},
	{0xB31, 0xB31},
	{0xB34, 0xB34},
	{0xB3A, 0xB3B},
	{0xB45, 0xB46},
	{0xB49, 0xB4A},
	{0xB4E, 0xB54},
	{0xB58, 0xB5B},
	{0xB5E, 0xB5E},
	{0xB64, 0xB65},
	{0xB78, 0xB81},
	{0xB84, 0xB84},
	{0xB8B, 0xB8D},
	{0xB91, 0xB91},
	{0xB96, 0xB98},
	{0xB9B, 0xB9B},
	{0xB9D, 0xB9D},
	{0xBA0, 0xBA2},
	{0xBA5, 0xBA7},
	{0xBAB, 0xBAD},
	{0xBBA, 0xBBD},
	{0xBC3, 0xBC5},
	{0xBC9, 0xBC9},
	{0xBCE, 0xBCF},
	{0xBD1, 0xBD6},
	{0xBD8, 0xBE5},
	{0xBFB, 0xBFF},
	{0xC0D, 0xC0D},
	{0xC11, 0xC11},
	{0xC29, 0xC29},
	{0xC3A, 0xC3B},
	{0xC45, 0xC45},
	{0xC49, 0xC49},
	{0xC4E, 0xC54},
	{0xC57, 0xC57},
	{0xC5B, 0xC5B},
	{0xC5E, 0xC5F},
	{0xC64, 0xC65},
	{0xC70, 0xC76},
	{0xC8D, 0xC8D},
	{0xC91, 0xC91},
	{0xCA9, 0xCA9},
	{0xCB4, 0xCB4},
	{0xCBA, 0xCBB},
	{0xCC5, 0xCC5},
	{0xCC9, 0xCC9},
	{0xCCE, 0xCD4},
	{0xCD7, 0xCDB},
	{0xCDF, 0xCDF},
	{0xCE4, 0xCE5},
	{0xCF0, 0xCF0},
	{0xCF4, 0xCFF},
	{0xD0D, 0xD0D},
	{0xD11, 0xD11},
	{0xD45, 0xD45},
	{0xD49, 0xD49},
	{0xD50, 0xD53},
	{0xD64, 0xD65},
	{0xD80, 0xD80},
	{0xD84, 0xD84},
	{0xD97, 0xD99},
	{0xDB2, 0xDB2},
	{0xDBC, 0xDBC},
	{0xDBE, 0xDBF},
	{0xDC7, 0xDC9},
	{0xDCB, 0xDCE},
	{0xDD5, 0xDD5},
	{0xDD7, 0xDD7},
	{0xDE0, 0xDE5},
	{0xDF0, 0xDF1},
	{0xDF5, 0xE00},
	{0xE3B, 0xE3E},
	{0xE5C, 0xE80},
	{0xE83, 0xE83},
	{0xE85, 0xE85},
	{0xE8B, 0xE8B},
	{0xEA4, 0xEA4},
	{0xEA6, 0xEA6},
	{0xEBE, 0xEBF},
	{0xEC5, 0xEC5},
	{0xEC7, 0xEC7},
	{0xECF, 0xECF},
	{0xEDA, 0xEDB},
	{0xEE0, 0xEFF},
	{0xF48, 0xF48},
	{0xF6D, 0xF70},
	{0xF98, 0xF98},
	{0xFBD, 0xFBD},
	{0xFCD, 0xFCD},
	{0xFDB, 0xFFF},
	{0x10C6, 0x10C6},
	{0x10C8, 0x10CC},
	{0x10CE, 0x10CF},
	{0x1249, 0x1249},
	{0x124E, 0x124F},
	{0x1257, 0x1257},
	{0x1259, 0x1259},
	{0x125E, 0x125F},
	{0x1289, 0x1289},
	{0x128E, 0x128F},
	{0x12B1, 0x12B1},
	{0x12B6, 0x12B7},
	{0x12BF, 0x12BF},
	{0x12C1, 0x12C1},
	{0x12C6, 0x12C7},
	{0x12D7, 0x12D7},
	{0x1311, 0x1311},
	{0x1316, 0x1317},
	{0x135B, 0x135C},
	{0x137D, 0x137F},
	{0x139A, 0x139F},
	{0x13F6, 0x13F7},
	{0x13FE, 0x13FF},
	{0x169D, 0x169F},
	{0x16F9, 0x16FF},
	{0x1716, 0x171E},
	{0x1737, 0x173F},
	{0x1754, 0x175F},
	{0x176D, 0x176D},
	{0x1771, 0x1771},
	{0x1774, 0x177F},
	{0x17DE, 0x17DF},
	{0x17EA, 0x17EF},
	{0x17FA, 0x17FF},
	{0x181A, 0x181F},
	{0x1879, 0x187F},
	{0x18AB, 0x18AF},
	{0x18F6, 0x18FF},
	{0x191F, 0x191F},
	{0x192C, 0x192F},
	{0x193C, 0x193F},
	{0x1941, 0x1943},
	{0x196E, 0x196F},
	{0x1975, 0x197F},
	{0x19AC, 0x19AF},
	{0x19CA, 0x19CF},
	{0x19DB, 0x19DD},
	{0x1A1C, 0x1A1D},
	{0x1A5F, 0x1A5F},
	{0x1A7D, 0x1A7E},
	{0x1A8A, 0x1A8F},
	{0x1A9A, 0x1A9F},
	{0x1AAE, 0x1AAF},
	{0x1ADE, 0x1ADF},
	{0x1AEC, 0x1AFF},
	{0x1B4D, 0x1B4D},
	{0x1BF4, 0x1BFB},
	{0x1C38, 0x1C3A},
	{0x1C4A, 0x1C4C},
	{0x1C8B, 0x1C8F},
	{0x1CBB, 0x1CBC},
	{0x1CC8, 0x1CCF},
	{0x1CFB, 0x1CFF},
	{0x1F16, 0x1F17},
	{0x1F1E, 0x1F1F},
	{0x1F46, 0x1F47},
	{0x1F4E, 0x1F4F},
	{0x1F58, 0x1F58},
	{0x1F5A, 0x1F5A},
	{0x1F5C, 0x1F5C},
	{0x1F5E, 0x1F5E},
	{0x1F7E, 0x1F7F},
	{0x1FB5, 0x1FB5},
	{0x1FC5, 0x1FC5},
	{0x1FD4, 0x1FD5},
	{0x1FDC, 0x1FDC},
	{0x1FF0, 0x1FF1},
	{0x1FF5, 0x1FF5},
	{0x1FFF, 0x1FFF},
	{0x2065, 0x2065},
	{0x2072, 0x2073},
	{0x208F, 0x208F},
	{0x209D, 0x209F},
	{0x20C2, 0x20CF},
	{0x20F1, 0x20FF},
	{0x218C, 0x218F},
	{0x242A, 0x243F},
	{0x244B, 0x245F},
	{0x2B74, 0x2B75},
	{0x2CF4, 0x2CF8},
	{0x2D26, 0x2D26},
	{0x2D28, 0x2D2C},
	{0x2D2E, 0x2D2F},
	{0x2D68, 0x2D6E},
	{0x2D71, 0x2D7E},
	{0x2D97, 0x2D9F},
	{0x2DA7, 0x2DA7},
	{0x2DAF, 0x2DAF},
	{0x2DB7, 0x2DB7},
	{0x2DBF, 0x2DBF},
	{0x2DC7, 0x2DC7},
	{0x2DCF, 0x2DCF},
	{0x2DD7, 0x2DD7},
	{0x2DDF, 0x2DDF},
	{0x2E5E, 0x2E7F},
	{0x2E9A, 0x2E9A},
	{0x2EF4, 0x2EFF},
	{0x2FD6, 0x2FEF},
	{0x3040, 0x3040},
	{0x3097, 0x3098},
	{0x3100, 0x3104},
	{0x3130, 0x3130},
	{0x318F, 0x318F},
	{0x31E6, 0x31EE},
	{0x321F, 0x321F},
	{0xA48D, 0xA48F},
	{0xA4C7, 0xA4CF},
	{0xA62C, 0xA63F},
	{0xA6F8, 0xA6FF},
	{0xA7DD, 0xA7F0},
	{0xA82D, 0xA82F},
	{0xA83A, 0xA83F},
	{0xA878, 0xA87F},
	{0xA8C6, 0xA8CD},
	{0xA8DA, 0xA8DF},
	{0xA954, 0xA95E},
	{0xA97D, 0xA97F},
	{0xA9CE, 0xA9CE},
	{0xA9DA, 0xA9DD},
	{0xA9FF, 0xA9FF},
	{0xAA37, 0xAA3F},
	{0xAA4E, 0xAA4F},
	{0xAA5A, 0xAA5B},
	{0xAAC3, 0xAADA},
	{0xAAF7, 0xAB00},
	{0xAB07, 0xAB08},
	{0xAB0F, 0xAB10},
	{0xAB17, 0xAB1F},
	{0xAB27, 0xAB27},
	{0xAB2F, 0xAB2F},
	{0xAB6C, 0xAB6F},
	{0xABEE, 0xABEF},
	{0xABFA, 0xABFF},
	{0xD7A4, 0xD7AF},
	{0xD7C7, 0xD7CA},
	{0xD7FC, 0xF8FF},
	{0xFA6E, 0xFA6F},
	{0xFADA, 0xFAFF},
	{0xFB07, 0xFB12},
	{0xFB18, 0xFB1C},
	{0xFB37, 0xFB37},
	{0xFB3D, 0xFB3D},
	{0xFB3F, 0xFB3F},
	{0xFB42, 0xFB42},
	{0xFB45, 0xFB45},
	{0xFDD0, 0xFDEF},
	{0xFE1A, 0xFE1F},
	{0xFE53, 0xFE53},
	{0xFE67, 0xFE67},
	{0xFE6C, 0xFE6F},
	{0xFE75, 0xFE75},
	{0xFEFD, 0xFEFE},
	{0xFF00, 0xFF00},
	{0xFFBF, 0xFFC1},
	{0xFFC8, 0xFFC9},
	{0xFFD0, 0xFFD1},
	{0xFFD8, 0xFFD9},
	{0xFFDD, 0xFFDF},
	{0xFFE7, 0xFFE7},
	{0xFFEF, 0xFFF8},
	{0xFFFE, 0xFFFF},
	{0x1000C, 0x1000C},
	{0x10027, 0x10027},
	{0x1003B, 0x1003B},
	{0x1003E, 0x1003E},
	{0x1004E, 0x1004F},
	{0x1005E, 0x1007F},
	{0x100FB, 0x100FF},
	{0x10103, 0x10106},
	{0x10134, 0x10136},
	{0x1018F, 0x1018F},
	{0x1019D, 0x1019F},
	{0x101A1, 0x101CF},
	{0x101FE, 0x1027F},
	{0x1029D, 0x1029F},
	{0x102D1, 0x102DF},
	{0x102FC, 0x102FF},
	{0x10324, 0x1032C},
	{0x1034B, 0x1034F},
	{0x1037B, 0x1037F},
	{0x1039E, 0x1039E},
	{0x103C4, 0x103C7},
	{0x103D6, 0x103FF},
	{0x1049E, 0x1049F},
	{0x104AA, 0x104AF},
	{0x104D4, 0x104D7},
	{0x104FC, 0x104FF},
	{0x10528, 0x1052F},
	{0x10564, 0x1056E},
	{0x1057B, 0x1057B},
	{0x1058B, 0x1058B},
	{0x10593, 0x10593},
	{0x10596, 0x10596},
	{0x105A2, 0x105A2},
	{0x105B2, 0x105B2},
	{0x105BA, 0x105BA},
	{0x105BD, 0x105BF},
	{0x105F4, 0x105FF},
	{0x10737, 0x1073F},
	{0x10756, 0x1075F},
	{0x10768, 0x1077F},
	{0x10786, 0x10786},
	{0x107B1, 0x107B1},
	{0x107BB, 0x107FF},
	{0x10806, 0x10807},
	{0x10809, 0x10809},
	{0x10836, 0x10836},
	{0x10839, 0x1083B},
	{0x1083D, 0x1083E},
	{0x10856, 0x10856},
	{0x1089F, 0x108A6},
	{0x108B0, 0x108DF},
	{0x108F3, 0x108F3},
	{0x108F6, 0x108FA},
	{0x1091C, 0x1091E},
	{0x1093A, 0x1093E},
	{0x1095A, 0x1097F},
	{0x109B8, 0x109BB},
	{0x109D0, 0x109D1},
	{0x10A04, 0x10A04},
	{0x10A07, 0x10A0B},
	{0x10A14, 0x10A14},
	{0x10A18, 0x10A18},
	{0x10A36, 0x10A37},
	{0x10A3B, 0x10A3E},
	{0x10A49, 0x10A4F},
	{0x10A59, 0x10A5F},
	{0x10AA0, 0x10ABF},
	{0x10AE7, 0x10AEA},
	{0x10AF7, 0x10AFF},
	{0x10B36, 0x10B38},
	{0x10B56, 0x10B57},
	{0x10B73, 0x10B77},
	{0x10B92, 0x10B98},
	{0x10B9D, 0x10BA8},
	{0x10BB0, 0x10BFF},
	{0x10C49, 0x10C7F},
	{0x10CB3, 0x10CBF},
	{0x10CF3, 0x10CF9},
	{0x10D28, 0x10D2F},
	{0x10D3A, 0x10D3F},
	{0x10D66, 0x10D68},
	{0x10D86, 0x10D8D},
	{0x10D90, 0x10E5F},
	{0x10E7F, 0x10E7F},
	{0x10EAA, 0x10EAA},
	{0x10EAE, 0x10EAF},
	{0x10EB2, 0x10EC1},
	{0x10EC8, 0x10ECF},
	{0x10ED9, 0x10EF9},
	{0x10F28, 0x10F2F},
	{0x10F5A, 0x10F6F},
	{0x10F8A, 0x10FAF},
	{0x10FCC, 0x10FDF},
	{0x10FF7, 0x10FFF},
	{0x1104E, 0x11051},
	{0x11076, 0x1107E},
	{0x110C3, 0x110CC},
	{0x110CE, 0x110CF},
	{0x110E9, 0x110EF},
	{0x110FA, 0x110FF},
	{0x11135, 0x11135},
	{0x11148, 0x1114F},
	{0x11177, 0x1117F},
	{0x111E0, 0x111E0},
	{0x111F5, 0x111FF},
	{0x11212, 0x11212},
	{0x11242, 0x1127F},
	{0x11287, 0x11287},
	{0x11289, 0x11289},
	{0x1128E, 0x1128E},
	{0x1129E, 0x1129E},
	{0x112AA, 0x112AF},
	{0x112EB, 0x112EF},
	{0x112FA, 0x112FF},
	{0x11304, 0x11304},
	{0x1130D, 0x1130E},
	{0x11311, 0x11312},
	{0x11329, 0x11329},
	{0x11331, 0x11331},
	{0x11334, 0x11334},
	{0x1133A, 0x1133A},
	{0x11345, 0x11346},
	{0x11349, 0x1134A},
	{0x1134E, 0x1134F},
	{0x11351, 0x11356},
	{0x11358, 0x1135C},
	{0x11364, 0x11365},
	{0x1136D, 0x1136F},
	{0x11375, 0x1137F},
	{0x1138A, 0x1138A},
	{0x1138C, 0x1138D},
	{0x1138F, 0x1138F},
	{0x113B6, 0x113B6},
	{0x113C1, 0x113C1},
	{0x113C3, 0x113C4},
	{0x113C6, 0x113C6},
	{0x113CB, 0x113CB},
	{0x113D6, 0x113D6},
	{0x113D9, 0x113E0},
	{0x113E3, 0x113FF},
	{0x1145C, 0x1145C},
	{0x11462, 0x1147F},
	{0x114C8, 0x114CF},
	{0x114DA, 0x1157F},
	{0x115B6, 0x115B7},
	{0x115DE, 0x115FF},
	{0x11645, 0x1164F},
	{0x1165A, 0x1165F},
	{0x1166D, 0x1167F},
	{0x116BA, 0x116BF},
	{0x116CA, 0x116CF},
	{0x116E4, 0x116FF},
	{0x1171B, 0x1171C},
	{0x1172C, 0x1172F},
	{0x11747, 0x117FF},
	{0x1183C, 0x1189F},
	{0x118F3, 0x118FE},
	{0x11907, 0x11908},
	{0x1190A, 0x1190B},
	{0x11914, 0x11914},
	{0x11917, 0x11917},
	{0x11936, 0x11936},
	{0x11939, 0x1193A},
	{0x11947, 0x1194F},
	{0x1195A, 0x1199F},
	{0x119A8, 0x119A9},
	{0x119D8, 0x119D9},
	{0x119E5, 0x119FF},
	{0x11A48, 0x11A4F},
	{0x11AA3, 0x11AAF},
	{0x11AF9, 0x11AFF},
	{0x11B0A, 0x11B5F},
	{0x11B68, 0x11BBF},
	{0x11BE2, 0x11BEF},
	{0x11BFA, 0x11BFF},
	{0x11C09, 0x11C09},
	{0x11C37, 0x11C37},
	{0x11C46, 0x11C4F},
	{0x11C6D, 0x11C6F},
	{0x11C90, 0x11C91},
	{0x11CA8, 0x11CA8},
	{0x11CB7, 0x11CFF},
	{0x11D07, 0x11D07},
	{0x11D0A, 0x11D0A},
	{0x11D37, 0x11D39},
	{0x11D3B, 0x11D3B},
	{0x11D3E, 0x11D3E},
	{0x11D48, 0x11D4F},
	{0x11D5A, 0x11D5F},
	{0x11D66, 0x11D66},
	{0x11D69, 0x11D69},
	{0x11D8F, 0x11D8F},
	{0x11D92, 0x11D92},
	{0x11D99, 0x11D9F},
	{0x11DAA, 0x11DAF},
	{0x11DDC, 0x11DDF},
	{0x11DEA, 0x11EDF},
	{0x11EF9, 0x11EFF},
	{0x11F11, 0x11F11},
	{0x11F3B, 0x11F3D},
	{0x11F5B, 0x11FAF},
	{0x11FB1, 0x11FBF},
	{0x11FF2, 0x11FFE},
	{0x1239A, 0x123FF},
	{0x1246F, 0x1246F},
	{0x12475, 0x1247F},
	{0x12544, 0x12F8F},
	{0x12FF3, 0x12FFF},
	{0x13456, 0x1345F},
	{0x143FB, 0x143FF},
	{0x14647, 0x160FF},
	{0x1613A, 0x167FF},
	{0x16A39, 0x16A3F},
	{0x16A5F, 0x16A5F},
	{0x16A6A, 0x16A6D},
	{0x16ABF, 0x16ABF},
	{0x16ACA, 0x16ACF},
	{0x16AEE, 0x16AEF},
	{0x16AF6, 0x16AFF},
	{0x16B46, 0x16B4F},
	{0x16B5A, 0x16B5A},
	{0x16B62, 0x16B62},
	{0x16B78, 0x16B7C},
	{0x16B90, 0x16D3F},
	{0x16D7A, 0x16E3F},
	{0x16E9B, 0x16E9F},
	{0x16EB9, 0x16EBA},
	{0x16ED4, 0x16EFF},
	{0x16F4B, 0x16F4E},
	{0x16F88, 0x16F8E},
	{0x16FA0, 0x16FDF},
	{0x16FE5, 0x16FEF},
	{0x16FF7, 0x16FFF},
	{0x18CD6, 0x18CFE},
	{0x18D1F, 0x18D7F},
	{0x18DF3, 0x1AFEF},
	{0x1AFF4, 0x1AFF4},
	{0x1AFFC, 0x1AFFC},
	{0x1AFFF, 0x1AFFF},
	{0x1B123, 0x1B131},
	{0x1B133, 0x1B14F},
	{0x1B153, 0x1B154},
	{0x1B156, 0x1B163},
	{0x1B168, 0x1B16F},
	{0x1B2FC, 0x1BBFF},
	{0x1BC6B, 0x1BC6F},
	{0x1BC7D, 0x1BC7F},
	{0x1BC89, 0x1BC8F},
	{0x1BC9A, 0x1BC9B},
	{0x1BCA4, 0x1CBFF},
	{0x1CCFD, 0x1CCFF},
	{0x1CEB4, 0x1CEB9},
	{0x1CED1, 0x1CEDF},
	{0x1CEF1, 0x1CEFF},
	{0x1CF2E, 0x1CF2F},
	{0x1CF47, 0x1CF4F},
	{0x1CFC4, 0x1CFFF},
	{0x1D0F6, 0x1D0FF},
	{0x1D127, 0x1D128},
	{0x1D1EB, 0x1D1FF},
	{0x1D246, 0x1D2BF},
	{0x1D2D4, 0x1D2DF},
	{0x1D2F4, 0x1D2FF},
	{0x1D357, 0x1D35F},
	{0x1D379, 0x1D3FF},
	{0x1D455, 0x1D455},
	{0x1D49D, 0x1D49D},
	{0x1D4A0, 0x1D4A1},
	{0x1D4A3, 0x1D4A4},
	{0x1D4A7, 0x1D4A8},
	{0x1D4AD, 0x1D4AD},
	{0x1D4BA, 0x1D4BA},
	{0x1D4BC, 0x1D4BC},
	{0x1D4C4, 0x1D4C4},
	{0x1D506, 0x1D506},
	{0x1D50B, 0x1D50C},
	{0x1D515, 0x1D515},
	{0x1D51D, 0x1D51D},
	{0x1D53A, 0x1D53A},
	{0x1D53F, 0x1D53F},
	{0x1D545, 0x1D545},
	{0x1D547, 0x1D549},
	{0x1D551, 0x1D551},
	{0x1D6A6, 0x1D6A7},
	{0x1D7CC, 0x1D7CD},
	{0x1DA8C, 0x1DA9A},
	{0x1DAA0, 0x1DAA0},
	{0x1DAB0, 0x1DEFF},
	{0x1DF1F, 0x1DF24},
	{0x1DF2B, 0x1DFFF},
	{0x1E007, 0x1E007},
	{0x1E019, 0x1E01A},
	{0x1E022, 0x1E022},
	{0x1E025, 0x1E025},
	{0x1E02B, 0x1E02F},
	{0x1E06E, 0x1E08E},
	{0x1E090, 0x1E0FF},
	{0x1E12D, 0x1E12F},
	{0x1E13E, 0x1E13F},
	{0x1E14A, 0x1E14D},
	{0x1E150, 0x1E28F},
	{0x1E2AF, 0x1E2BF},
	{0x1E2FA, 0x1E2FE},
	{0x1E300, 0x1E4CF},
	{0x1E4FA, 0x1E5CF},
	{0x1E5FB, 0x1E5FE},
	{0x1E600, 0x1E6BF},
	{0x1E6DF, 0x1E6DF},
	{0x1E6F6, 0x1E6FD},
	{0x1E700, 0x1E7DF},
	{0x1E7E7, 0x1E7E7},
	{0x1E7EC, 0x1E7EC},
	{0x1E7EF, 0x1E7EF},
	{0x1E7FF, 0x1E7FF},
	{0x1E8C5, 0x1E8C6},
	{0x1E8D7, 0x1E8FF},
	{0x1E94C, 0x1E94F},
	{0x1E95A, 0x1E95D},
	{0x1E960, 0x1EC70},
	{0x1ECB5, 0x1ED00},
	{0x1ED3E, 0x1EDFF},
	{0x1EE04, 0x1EE04},
	{0x1EE20, 0x1EE20},
	{0x1EE23, 0x1EE23},
	{0x1EE25, 0x1EE26},
	{0x1EE28, 0x1EE28},
	{0x1EE33, 0x1EE33},
	{0x1EE38, 0x1EE38},
	{0x1EE3A, 0x1EE3A},
	{0x1EE3C, 0x1EE41},
	{0x1EE43, 0x1EE46},
	{0x1EE48, 0x1EE48},
	{0x1EE4A, 0x1EE4A},
	{0x1EE4C, 0x1EE4C},
	{0x1EE50, 0x1EE50},
	{0x1EE53, 0x1EE53},
	{0x1EE55, 0x1EE56},
	{0x1EE58, 0x1EE58},
	{0x1EE5A, 0x1EE5A},
	{0x1EE5C, 0x1EE5C},
	{0x1EE5E, 0x1EE5E},
	{0x1EE60, 0x1EE60},
	{0x1EE63, 0x1EE63},
	{0x1EE65, 0x1EE66},
	{0x1EE6B, 0x1EE6B},
	{0x1EE73, 0x1EE73},
	{0x1EE78, 0x1EE78},
	{0x1EE7D, 0x1EE7D},
	{0x1EE7F, 0x1EE7F},
	{0x1EE8A, 0x1EE8A},
	{0x1EE9C, 0x1EEA0},
	{0x1EEA4, 0x1EEA4},
	{0x1EEAA, 0x1EEAA},
	{0x1EEBC, 0x1EEEF},
	{0x1EEF2, 0x1EFFF},
	{0x1F02C, 0x1F02F},
	{0x1F094, 0x1F09F},
	{0x1F0AF, 0x1F0B0},
	{0x1F0C0, 0x1F0C0},
	{0x1F0D0, 0x1F0D0},
	{0x1F0F6, 0x1F0FF},
	{0x1F1AE, 0x1F1E5},
	{0x1F203, 0x1F20F},
	{0x1F23C, 0x1F23F},
	{0x1F249, 0x1F24F},
	{0x1F252, 0x1F25F},
	{0x1F266, 0x1F2FF},
	{0x1F6D9, 0x1F6DB},
	{0x1F6ED, 0x1F6EF},
	{0x1F6FD, 0x1F6FF},
	{0x1F7DA, 0x1F7DF},
	{0x1F7EC, 0x1F7EF},
	{0x1F7F1, 0x1F7FF},
	{0x1F80C, 0x1F80F},
	{0x1F848, 0x1F84F},
	{0x1F85A, 0x1F85F},
	{0x1F888, 0x1F88F},
	{0x1F8AE, 0x1F8AF},
	{0x1F8BC, 0x1F8BF},
	{0x1F8C2, 0x1F8CF},
	{0x1F8D9, 0x1F8FF},
	{0x1FA58, 0x1FA5F},
	{0x1FA6E, 0x1FA6F},
	{0x1FA7D, 0x1FA7F},
	{0x1FA8B, 0x1FA8D},
	{0x1FAC7, 0x1FAC7},
	{0x1FAC9, 0x1FACC},
	{0x1FADD, 0x1FADE},
	{0x1FAEB, 0x1FAEE},
	{0x1FAF9, 0x1FAFF},
	{0x1FB93, 0x1FB93},
	{0x1FBFB, 0x1FFFF},
	{0x2A6E0, 0x2A6FF},
	{0x2B81E, 0x2B81F},
	{0x2CEAE, 0x2CEAF},
	{0x2EBE1, 0x2EBEF},
	{0x2EE5E, 0x2F7FF},
	{0x2FA1E, 0x2FFFF},
	{0x3134B, 0x3134F},
	{0x3347A, 0xE0000},
	{0xE0002, 0xE001F},
	{0xE0080, 0xE00FF},
	{0xE01F0, 0x10FFFF},
};

static const UnicodeRange kRanges_Vai[] = {
	{0xA500, 0xA62B},
};

static const UnicodeRange kRanges_Vithkuqi[] = {
	{0x10570, 0x1057A},
	{0x1057C, 0x1058A},
	{0x1058C, 0x10592},
	{0x10594, 0x10595},
	{0x10597, 0x105A1},
	{0x105A3, 0x105B1},
	{0x105B3, 0x105B9},
	{0x105BB, 0x105BC},
};

static const UnicodeRange kRanges_Wancho[] = {
	{0x1E2C0, 0x1E2F9},
	{0x1E2FF, 0x1E2FF},
};

static const UnicodeRange kRanges_Warang_Citi[] = {
	{0x118A0, 0x118F2},
	{0x118FF, 0x118FF},
};

static const UnicodeRange kRanges_Yezidi[] = {
	{0x60C, 0x60C},
	{0x61B, 0x61B},
	{0x61F, 0x61F},
	{0x660, 0x669},
	{0x10E80, 0x10EA9},
	{0x10EAB, 0x10EAD},
	{0x10EB0, 0x10EB1},
};

static const UnicodeRange kRanges_Yi[] = {
	{0x3001, 0x3002},
	{0x3008, 0x3011},
	{0x3014, 0x301B},
	{0x30FB, 0x30FB},
	{0xA000, 0xA48C},
	{0xA490, 0xA4C6},
	{0xFF61, 0xFF65},
};

static const UnicodeRange kRanges_Zanabazar_Square[] = {
	{0x11A00, 0x11A47},
};

static const UnicodePropertyTable kScriptExtensions[] = {
	{"Adlam", kRanges_Adlam, 7},
	{"Adlm", kRanges_Adlam, 7},
	{"Ahom", kRanges_Ahom, 3},
	{"Anatolian_Hieroglyphs", kRanges_Anatolian_Hieroglyphs, 1},
	{"Hluw", kRanges_Anatolian_Hieroglyphs, 1},
	{"Arabic", kRanges_Arabic, 52},
	{"Arab", kRanges_Arabic, 52},
	{"Armenian", kRanges_Armenian, 5},
	{"Armn", kRanges_Armenian, 5},
	{"Avestan", kRanges_Avestan, 4},
	{"Avst", kRanges_Avestan, 4},
	{"Balinese", kRanges_Balinese, 2},
	{"Bali", kRanges_Balinese, 2},
	{"Bamum", kRanges_Bamum, 2},
	{"Bamu", kRanges_Bamum, 2},
	{"Bassa_Vah", kRanges_Bassa_Vah, 2},
	{"Bass", kRanges_Bassa_Vah, 2},
	{"Batak", kRanges_Batak, 2},
	{"Batk", kRanges_Batak, 2},
	{"Bengali", kRanges_Bengali, 27},
	{"Beng", kRanges_Bengali, 27},
	{"Beria_Erfe", kRanges_Beria_Erfe, 2},
	{"Berf", kRanges_Beria_Erfe, 2},
	{"Bhaiksuki", kRanges_Bhaiksuki, 4},
	{"Bhks", kRanges_Bhaiksuki, 4},
	{"Bopomofo", kRanges_Bopomofo, 15},
	{"Bopo", kRanges_Bopomofo, 15},
	{"Brahmi", kRanges_Brahmi, 3},
	{"Brah", kRanges_Brahmi, 3},
	{"Braille", kRanges_Braille, 1},
	{"Brai", kRanges_Braille, 1},
	{"Buginese", kRanges_Buginese, 3},
	{"Bugi", kRanges_Buginese, 3},
	{"Buhid", kRanges_Buhid, 2},
	{"Buhd", kRanges_Buhid, 2},
	{"Canadian_Aboriginal", kRanges_Canadian_Aboriginal, 3},
	{"Cans", kRanges_Canadian_Aboriginal, 3},
	{"Carian", kRanges_Carian, 5},
	{"Cari", kRanges_Carian, 5},
	{"Caucasian_Albanian", kRanges_Caucasian_Albanian, 5},
	{"Aghb", kRanges_Caucasian_Albanian, 5},
	{"Chakma", kRanges_Chakma, 4},
	{"Cakm", kRanges_Chakma, 4},
	{"Cham", kRanges_Cham, 4},
	{"Cherokee", kRanges_Cherokee, 8},
	{"Cher", kRanges_Cherokee, 8},
	{"Chorasmian", kRanges_Chorasmian, 1},
	{"Chrs", kRanges_Chorasmian, 1},
	{"Common", kRanges_Common, 161},
	{"Zyyy", kRanges_Common, 161},
	{"Coptic", kRanges_Coptic, 10},
	{"Copt", kRanges_Coptic, 10},
	{"Cuneiform", kRanges_Cuneiform, 4},
	{"Xsux", kRanges_Cuneiform, 4},
	{"Cypriot", kRanges_Cypriot, 9},
	{"Cprt", kRanges_Cypriot, 9},
	{"Cypro_Minoan", kRanges_Cypro_Minoan, 2},
	{"Cpmn", kRanges_Cypro_Minoan, 2},
	{"Cyrillic", kRanges_Cyrillic, 18},
	{"Cyrl", kRanges_Cyrillic, 18},
	{"Deseret", kRanges_Deseret, 1},
	{"Dsrt", kRanges_Deseret, 1},
	{"Devanagari", kRanges_Devanagari, 9},
	{"Deva", kRanges_Devanagari, 9},
	{"Dives_Akuru", kRanges_Dives_Akuru, 8},
	{"Diak", kRanges_Dives_Akuru, 8},
	{"Dogra", kRanges_Dogra, 3},
	{"Dogr", kRanges_Dogra, 3},
	{"Duployan", kRanges_Duployan, 10},
	{"Dupl", kRanges_Duployan, 10},
	{"Egyptian_Hieroglyphs", kRanges_Egyptian_Hieroglyphs, 2},
	{"Egyp", kRanges_Egyptian_Hieroglyphs, 2},
	{"Elbasan", kRanges_Elbasan, 3},
	{"Elba", kRanges_Elbasan, 3},
	{"Elymaic", kRanges_Elymaic, 1},
	{"Elym", kRanges_Elymaic, 1},
	{"Ethiopic", kRanges_Ethiopic, 37},
	{"Ethi", kRanges_Ethiopic, 37},
	{"Garay", kRanges_Garay, 6},
	{"Gara", kRanges_Garay, 6},
	{"Georgian", kRanges_Georgian, 13},
	{"Geor", kRanges_Georgian, 13},
	{"Glagolitic", kRanges_Glagolitic, 16},
	{"Glag", kRanges_Glagolitic, 16},
	{"Gothic", kRanges_Gothic, 5},
	{"Goth", kRanges_Gothic, 5},
	{"Grantha", kRanges_Grantha, 25},
	{"Gran", kRanges_Grantha, 25},
	{"Greek", kRanges_Greek, 44},
	{"Grek", kRanges_Greek, 44},
	{"Gujarati", kRanges_Gujarati, 17},
	{"Gujr", kRanges_Gujarati, 17},
	{"Gunjala_Gondi", kRanges_Gunjala_Gondi, 8},
	{"Gong", kRanges_Gunjala_Gondi, 8},
	{"Gurmukhi", kRanges_Gurmukhi, 19},
	{"Guru", kRanges_Gurmukhi, 19},
	{"Gurung_Khema", kRanges_Gurung_Khema, 2},
	{"Gukh", kRanges_Gurung_Khema, 2},
	{"Han", kRanges_Han, 41},
	{"Hani", kRanges_Han, 41},
	{"Hangul", kRanges_Hangul, 21},
	{"Hang", kRanges_Hangul, 21},
	{"Hanifi_Rohingya", kRanges_Hanifi_Rohingya, 7},
	{"Rohg", kRanges_Hanifi_Rohingya, 7},
	{"Hanunoo", kRanges_Hanunoo, 1},
	{"Hano", kRanges_Hanunoo, 1},
	{"Hatran", kRanges_Hatran, 3},
	{"Hatr", kRanges_Hatran, 3},
	{"Hebrew", kRanges_Hebrew, 10},
	{"Hebr", kRanges_Hebrew, 10},
	{"Hiragana", kRanges_Hiragana, 17},
	{"Hira", kRanges_Hiragana, 17},
	{"Imperial_Aramaic", kRanges_Imperial_Aramaic, 2},
	{"Armi", kRanges_Imperial_Aramaic, 2},
	{"Inherited", kRanges_Inherited, 28},
	{"Zinh", kRanges_Inherited, 28},
	{"Inscriptional_Pahlavi", kRanges_Inscriptional_Pahlavi, 2},
	{"Phli", kRanges_Inscriptional_Pahlavi, 2},
	{"Inscriptional_Parthian", kRanges_Inscriptional_Parthian, 2},
	{"Prti", kRanges_Inscriptional_Parthian, 2},
	{"Javanese", kRanges_Javanese, 3},
	{"Java", kRanges_Javanese, 3},
	{"Kaithi", kRanges_Kaithi, 5},
	{"Kthi", kRanges_Kaithi, 5},
	{"Kannada", kRanges_Kannada, 21},
	{"Knda", kRanges_Kannada, 21},
	{"Katakana", kRanges_Katakana, 22},
	{"Kana", kRanges_Katakana, 22},
	{"Kawi", kRanges_Kawi, 3},
	{"Kayah_Li", kRanges_Kayah_Li, 1},
	{"Kali", kRanges_Kayah_Li, 1},
	{"Kharoshthi", kRanges_Kharoshthi, 8},
	{"Khar", kRanges_Kharoshthi, 8},
	{"Khitan_Small_Script", kRanges_Khitan_Small_Script, 3},
	{"Kits", kRanges_Khitan_Small_Script, 3},
	{"Khmer", kRanges_Khmer, 4},
	{"Khmr", kRanges_Khmer, 4},
	{"Khojki", kRanges_Khojki, 4},
	{"Khoj", kRanges_Khojki, 4},
	{"Khudawadi", kRanges_Khudawadi, 4},
	{"Sind", kRanges_Khudawadi, 4},
	{"Kirat_Rai", kRanges_Kirat_Rai, 1},
	{"Krai", kRanges_Kirat_Rai, 1},
	{"Lao", kRanges_Lao, 11},
	{"Laoo", kRanges_Lao, 11},
	{"Latin", kRanges_Latin, 61},
	{"Latn", kRanges_Latin, 61},
	{"Lepcha", kRanges_Lepcha, 3},
	{"Lepc", kRanges_Lepcha, 3},
	{"Limbu", kRanges_Limbu, 6},
	{"Limb", kRanges_Limbu, 6},
	{"Linear_A", kRanges_Linear_A, 4},
	{"Lina", kRanges_Linear_A, 4},
	{"Linear_B", kRanges_Linear_B, 10},
	{"Linb", kRanges_Linear_B, 10},
	{"Lisu", kRanges_Lisu, 5},
	{"Lycian", kRanges_Lycian, 2},
	{"Lyci", kRanges_Lycian, 2},
	{"Lydian", kRanges_Lydian, 4},
	{"Lydi", kRanges_Lydian, 4},
	{"Mahajani", kRanges_Mahajani, 4},
	{"Mahj", kRanges_Mahajani, 4},
	{"Makasar", kRanges_Makasar, 1},
	{"Maka", kRanges_Makasar, 1},
	{"Malayalam", kRanges_Malayalam, 12},
	{"Mlym", kRanges_Malayalam, 12},
	{"Mandaic", kRanges_Mandaic, 3},
	{"Mand", kRanges_Mandaic, 3},
	{"Manichaean", kRanges_Manichaean, 3},
	{"Mani", kRanges_Manichaean, 3},
	{"Marchen", kRanges_Marchen, 3},
	{"Marc", kRanges_Marchen, 3},
	{"Masaram_Gondi", kRanges_Masaram_Gondi, 8},
	{"Gonm", kRanges_Masaram_Gondi, 8},
	{"Medefaidrin", kRanges_Medefaidrin, 1},
	{"Medf", kRanges_Medefaidrin, 1},
	{"Meetei_Mayek", kRanges_Meetei_Mayek, 3},
	{"Mtei", kRanges_Meetei_Mayek, 3},
	{"Mende_Kikakui", kRanges_Mende_Kikakui, 2},
	{"Mend", kRanges_Mende_Kikakui, 2},
	{"Meroitic_Cursive", kRanges_Meroitic_Cursive, 3},
	{"Merc", kRanges_Meroitic_Cursive, 3},
	{"Meroitic_Hieroglyphs", kRanges_Meroitic_Hieroglyphs, 2},
	{"Mero", kRanges_Meroitic_Hieroglyphs, 2},
	{"Miao", kRanges_Miao, 3},
	{"Plrd", kRanges_Miao, 3},
	{"Modi", kRanges_Modi, 3},
	{"Mongolian", kRanges_Mongolian, 7},
	{"Mong", kRanges_Mongolian, 7},
	{"Mro", kRanges_Mro, 3},
	{"Mroo", kRanges_Mro, 3},
	{"Multani", kRanges_Multani, 6},
	{"Mult", kRanges_Multani, 6},
	{"Myanmar", kRanges_Myanmar, 5},
	{"Mymr", kRanges_Myanmar, 5},
	{"Nabataean", kRanges_Nabataean, 2},
	{"Nbat", kRanges_Nabataean, 2},
	{"Nag_Mundari", kRanges_Nag_Mundari, 1},
	{"Nagm", kRanges_Nag_Mundari, 1},
	{"Nandinagari", kRanges_Nandinagari, 10},
	{"Nand", kRanges_Nandinagari, 10},
	{"New_Tai_Lue", kRanges_New_Tai_Lue, 4},
	{"Talu", kRanges_New_Tai_Lue, 4},
	{"Newa", kRanges_Newa, 9},
	{"Nko", kRanges_Nko, 6},
	{"Nkoo", kRanges_Nko, 6},
	{"Nushu", kRanges_Nushu, 2},
	{"Nshu", kRanges_Nushu, 2},
	{"Nyiakeng_Puachue_Hmong", kRanges_Nyiakeng_Puachue_Hmong, 4},
	{"Hmnp", kRanges_Nyiakeng_Puachue_Hmong, 4},
	{"Ogham", kRanges_Ogham, 1},
	{"Ogam", kRanges_Ogham, 1},
	{"Ol_Chiki", kRanges_Ol_Chiki, 1},
	{"Olck", kRanges_Ol_Chiki, 1},
	{"Ol_Onal", kRanges_Ol_Onal, 3},
	{"Onao", kRanges_Ol_Onal, 3},
	{"Old_Hungarian", kRanges_Old_Hungarian, 7},
	{"Hung", kRanges_Old_Hungarian, 7},
	{"Old_Italic", kRanges_Old_Italic, 2},
	{"Ital", kRanges_Old_Italic, 2},
	{"Old_North_Arabian", kRanges_Old_North_Arabian, 1},
	{"Narb", kRanges_Old_North_Arabian, 1},
	{"Old_Permic", kRanges_Old_Permic, 6},
	{"Perm", kRanges_Old_Permic, 6},
	{"Old_Persian", kRanges_Old_Persian, 2},
	{"Xpeo", kRanges_Old_Persian, 2},
	{"Old_Sogdian", kRanges_Old_Sogdian, 1},
	{"Sogo", kRanges_Old_Sogdian, 1},
	{"Old_South_Arabian", kRanges_Old_South_Arabian, 1},
	{"Sarb", kRanges_Old_South_Arabian, 1},
	{"Old_Turkic", kRanges_Old_Turkic, 3},
	{"Orkh", kRanges_Old_Turkic, 3},
	{"Old_Uyghur", kRanges_Old_Uyghur, 3},
	{"Ougr", kRanges_Old_Uyghur, 3},
	{"Oriya", kRanges_Oriya, 18},
	{"Orya", kRanges_Oriya, 18},
	{"Osage", kRanges_Osage, 6},
	{"Osge", kRanges_Osage, 6},
	{"Osmanya", kRanges_Osmanya, 2},
	{"Osma", kRanges_Osmanya, 2},
	{"Pahawh_Hmong", kRanges_Pahawh_Hmong, 5},
	{"Hmng", kRanges_Pahawh_Hmong, 5},
	{"Palmyrene", kRanges_Palmyrene, 1},
	{"Palm", kRanges_Palmyrene, 1},
	{"Pau_Cin_Hau", kRanges_Pau_Cin_Hau, 1},
	{"Pauc", kRanges_Pau_Cin_Hau, 1},
	{"Phags_Pa", kRanges_Phags_Pa, 5},
	{"Phag", kRanges_Phags_Pa, 5},
	{"Phoenician", kRanges_Phoenician, 2},
	{"Phnx", kRanges_Phoenician, 2},
	{"Psalter_Pahlavi", kRanges_Psalter_Pahlavi, 4},
	{"Phlp", kRanges_Psalter_Pahlavi, 4},
	{"Rejang", kRanges_Rejang, 2},
	{"Rjng", kRanges_Rejang, 2},
	{"Runic", kRanges_Runic, 1},
	{"Runr", kRanges_Runic, 1},
	{"Samaritan", kRanges_Samaritan, 3},
	{"Samr", kRanges_Samaritan, 3},
	{"Saurashtra", kRanges_Saurashtra, 2},
	{"Saur", kRanges_Saurashtra, 2},
	{"Sharada", kRanges_Sharada, 11},
	{"Shrd", kRanges_Sharada, 11},
	{"Shavian", kRanges_Shavian, 2},
	{"Shaw", kRanges_Shavian, 2},
	{"Siddham", kRanges_Siddham, 2},
	{"Sidd", kRanges_Siddham, 2},
	{"Sidetic", kRanges_Sidetic, 1},
	{"Sidt", kRanges_Sidetic, 1},
	{"SignWriting", kRanges_SignWriting, 3},
	{"Sgnw", kRanges_SignWriting, 3},
	{"Sinhala", kRanges_Sinhala, 15},
	{"Sinh", kRanges_Sinhala, 15},
	{"Sogdian", kRanges_Sogdian, 2},
	{"Sogd", kRanges_Sogdian, 2},
	{"Sora_Sompeng", kRanges_Sora_Sompeng, 2},
	{"Sora", kRanges_Sora_Sompeng, 2},
	{"Soyombo", kRanges_Soyombo, 1},
	{"Soyo", kRanges_Soyombo, 1},
	{"Sundanese", kRanges_Sundanese, 2},
	{"Sund", kRanges_Sundanese, 2},
	{"Sunuwar", kRanges_Sunuwar, 8},
	{"Sunu", kRanges_Sunuwar, 8},
	{"Syloti_Nagri", kRanges_Syloti_Nagri, 3},
	{"Sylo", kRanges_Syloti_Nagri, 3},
	{"Syriac", kRanges_Syriac, 18},
	{"Syrc", kRanges_Syriac, 18},
	{"Tagalog", kRanges_Tagalog, 3},
	{"Tglg", kRanges_Tagalog, 3},
	{"Tagbanwa", kRanges_Tagbanwa, 4},
	{"Tagb", kRanges_Tagbanwa, 4},
	{"Tai_Le", kRanges_Tai_Le, 6},
	{"Tale", kRanges_Tai_Le, 6},
	{"Tai_Tham", kRanges_Tai_Tham, 5},
	{"Lana", kRanges_Tai_Tham, 5},
	{"Tai_Viet", kRanges_Tai_Viet, 2},
	{"Tavt", kRanges_Tai_Viet, 2},
	{"Tai_Yo", kRanges_Tai_Yo, 3},
	{"Tayo", kRanges_Tai_Yo, 3},
	{"Takri", kRanges_Takri, 4},
	{"Takr", kRanges_Takri, 4},
	{"Tamil", kRanges_Tamil, 25},
	{"Taml", kRanges_Tamil, 25},
	{"Tangsa", kRanges_Tangsa, 2},
	{"Tnsa", kRanges_Tangsa, 2},
	{"Tangut", kRanges_Tangut, 6},
	{"Tang", kRanges_Tangut, 6},
	{"Telugu", kRanges_Telugu, 19},
	{"Telu", kRanges_Telugu, 19},
	{"Thaana", kRanges_Thaana, 7},
	{"Thaa", kRanges_Thaana, 7},
	{"Thai", kRanges_Thai, 6},
	{"Tibetan", kRanges_Tibetan, 8},
	{"Tibt", kRanges_Tibetan, 8},
	{"Tifinagh", kRanges_Tifinagh, 7},
	{"Tfng", kRanges_Tifinagh, 7},
	{"Tirhuta", kRanges_Tirhuta, 8},
	{"Tirh", kRanges_Tirhuta, 8},
	{"Todhri", kRanges_Todhri, 7},
	{"Todr", kRanges_Todhri, 7},
	{"Tolong_Siki", kRanges_Tolong_Siki, 2},
	{"Tols", kRanges_Tolong_Siki, 2},
	{"Toto", kRanges_Toto, 2},
	{"Tulu_Tigalari", kRanges_Tulu_Tigalari, 16},
	{"Tutg", kRanges_Tulu_Tigalari, 16},
	{"Ugaritic", kRanges_Ugaritic, 2},
	{"Ugar", kRanges_Ugaritic, 2},
	{"Unknown", kRanges_Unknown, 733},
	{"Zzzz", kRanges_Unknown, 733},
	{"Vai", kRanges_Vai, 1},
	{"Vaii", kRanges_Vai, 1},
	{"Vithkuqi", kRanges_Vithkuqi, 8},
	{"Vith", kRanges_Vithkuqi, 8},
	{"Wancho", kRanges_Wancho, 2},
	{"Wcho", kRanges_Wancho, 2},
	{"Warang_Citi", kRanges_Warang_Citi, 2},
	{"Wara", kRanges_Warang_Citi, 2},
	{"Yezidi", kRanges_Yezidi, 7},
	{"Yezi", kRanges_Yezidi, 7},
	{"Yi", kRanges_Yi, 7},
	{"Yiii", kRanges_Yi, 7},
	{"Zanabazar_Square", kRanges_Zanabazar_Square, 1},
	{"Zanb", kRanges_Zanabazar_Square, 1},
};
static const size_t kScriptExtensionsCount = sizeof(kScriptExtensions) / sizeof(UnicodePropertyTable);
