This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Generate all binary Unicode property tables
authorKarl Williamson <khw@cpan.org>
Fri, 20 Apr 2018 02:06:27 +0000 (20:06 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 20 Apr 2018 07:11:52 +0000 (01:11 -0600)
This is in preparation for future commits.  All the tables are
generated, but the newly generated ones remain unused by the core.  The
tables also are renamed to have a prefix 'PL_' in front of them, and
some casing changes.  The code that explicitly mentions to generate the
current tables is removed, so that these are part of the grander scheme
of things.

charclass_invlists.h
regen/mk_invlists.pl
utf8.c

index 8d25ee7..f1b4e13 100644 (file)
@@ -33,644 +33,899 @@ static const UV AboveLatin1_invlist[] = {
 
 #   if 'A' == 65 /* ASCII/Latin1 */
 
-static const UV ASCII_invlist[] = { /* for ASCII/Latin1 */
-       2,      /* Number of elements */
-       148565664, /* Version and data structure type */
-       0,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x80
-};
-
-#   endif      /* ASCII/Latin1 */
-
-#   if 'A' == 193 /* EBCDIC 1047 */ \
-     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
-     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 121
-
-static const UV ASCII_invlist[] = { /* for EBCDIC 1047 */
-       54,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       0,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x4,
-       0x5,
-       0x6,
-       0x7,
-       0x8,
-       0xB,
-       0x14,
-       0x15,
-       0x17,
-       0x18,
-       0x1A,
-       0x1C,
-       0x20,
-       0x26,
-       0x28,
-       0x2D,
-       0x30,
-       0x32,
-       0x33,
-       0x37,
-       0x38,
-       0x3C,
-       0x3E,
-       0x3F,
-       0x41,
-       0x4B,
-       0x51,
-       0x5A,
-       0x62,
-       0x6B,
-       0x70,
-       0x79,
-       0x80,
-       0x81,
-       0x8A,
-       0x91,
-       0x9A,
-       0xA1,
-       0xAA,
-       0xAD,
-       0xAE,
-       0xBD,
-       0xBE,
-       0xC0,
-       0xCA,
-       0xD0,
-       0xDA,
-       0xE0,
-       0xE1,
-       0xE2,
-       0xEA,
-       0xF0,
-       0xFA
-};
-
-#   endif      /* EBCDIC 1047 */
-
-#   if 'A' == 193 /* EBCDIC 037 */ \
-     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
-     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 121
-
-static const UV ASCII_invlist[] = { /* for EBCDIC 037 */
-       56,     /* Number of elements */
+static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
+       1373,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
                   1 if it starts at the element beyond 0 */
        0x0,
-       0x4,
-       0x5,
-       0x6,
-       0x7,
-       0x8,
-       0xB,
-       0x14,
-       0x16,
-       0x17,
-       0x18,
-       0x1A,
-       0x1C,
-       0x20,
-       0x25,
-       0x28,
-       0x2D,
-       0x30,
-       0x32,
-       0x33,
-       0x37,
-       0x38,
-       0x3C,
-       0x3E,
-       0x3F,
        0x41,
-       0x4B,
-       0x51,
-       0x5A,
-       0x5F,
-       0x60,
-       0x62,
-       0x6B,
-       0x70,
-       0x79,
-       0x80,
-       0x81,
-       0x8A,
-       0x91,
-       0x9A,
-       0xA1,
-       0xAA,
-       0xB0,
-       0xB1,
-       0xBA,
-       0xBC,
+       0x5B,
+       0xB5,
+       0xB6,
        0xC0,
-       0xCA,
-       0xD0,
-       0xDA,
+       0xD7,
+       0xD8,
+       0xDF,
        0xE0,
-       0xE1,
-       0xE2,
-       0xEA,
-       0xF0,
-       0xFA
-};
-
-#   endif      /* EBCDIC 037 */
-
-static const UV Assigned_invlist[] = { /* for all charsets */
-       1298,   /* Number of elements */
-       148565664, /* Version and data structure type */
-       0,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x378,
-       0x37A,
+       0x100,
+       0x101,
+       0x102,
+       0x103,
+       0x104,
+       0x105,
+       0x106,
+       0x107,
+       0x108,
+       0x109,
+       0x10A,
+       0x10B,
+       0x10C,
+       0x10D,
+       0x10E,
+       0x10F,
+       0x110,
+       0x111,
+       0x112,
+       0x113,
+       0x114,
+       0x115,
+       0x116,
+       0x117,
+       0x118,
+       0x119,
+       0x11A,
+       0x11B,
+       0x11C,
+       0x11D,
+       0x11E,
+       0x11F,
+       0x120,
+       0x121,
+       0x122,
+       0x123,
+       0x124,
+       0x125,
+       0x126,
+       0x127,
+       0x128,
+       0x129,
+       0x12A,
+       0x12B,
+       0x12C,
+       0x12D,
+       0x12E,
+       0x12F,
+       0x130,
+       0x131,
+       0x132,
+       0x133,
+       0x134,
+       0x135,
+       0x136,
+       0x137,
+       0x139,
+       0x13A,
+       0x13B,
+       0x13C,
+       0x13D,
+       0x13E,
+       0x13F,
+       0x140,
+       0x141,
+       0x142,
+       0x143,
+       0x144,
+       0x145,
+       0x146,
+       0x147,
+       0x148,
+       0x149,
+       0x14A,
+       0x14B,
+       0x14C,
+       0x14D,
+       0x14E,
+       0x14F,
+       0x150,
+       0x151,
+       0x152,
+       0x153,
+       0x154,
+       0x155,
+       0x156,
+       0x157,
+       0x158,
+       0x159,
+       0x15A,
+       0x15B,
+       0x15C,
+       0x15D,
+       0x15E,
+       0x15F,
+       0x160,
+       0x161,
+       0x162,
+       0x163,
+       0x164,
+       0x165,
+       0x166,
+       0x167,
+       0x168,
+       0x169,
+       0x16A,
+       0x16B,
+       0x16C,
+       0x16D,
+       0x16E,
+       0x16F,
+       0x170,
+       0x171,
+       0x172,
+       0x173,
+       0x174,
+       0x175,
+       0x176,
+       0x177,
+       0x178,
+       0x179,
+       0x17A,
+       0x17B,
+       0x17C,
+       0x17D,
+       0x17E,
+       0x17F,
+       0x180,
+       0x181,
+       0x182,
+       0x183,
+       0x184,
+       0x185,
+       0x186,
+       0x187,
+       0x188,
+       0x189,
+       0x18B,
+       0x18C,
+       0x18E,
+       0x18F,
+       0x190,
+       0x191,
+       0x192,
+       0x193,
+       0x194,
+       0x195,
+       0x196,
+       0x197,
+       0x198,
+       0x199,
+       0x19C,
+       0x19D,
+       0x19E,
+       0x19F,
+       0x1A0,
+       0x1A1,
+       0x1A2,
+       0x1A3,
+       0x1A4,
+       0x1A5,
+       0x1A6,
+       0x1A7,
+       0x1A8,
+       0x1A9,
+       0x1AA,
+       0x1AC,
+       0x1AD,
+       0x1AE,
+       0x1AF,
+       0x1B0,
+       0x1B1,
+       0x1B3,
+       0x1B4,
+       0x1B5,
+       0x1B6,
+       0x1B7,
+       0x1B8,
+       0x1B9,
+       0x1BC,
+       0x1BD,
+       0x1C4,
+       0x1C5,
+       0x1C6,
+       0x1C7,
+       0x1C8,
+       0x1C9,
+       0x1CA,
+       0x1CB,
+       0x1CC,
+       0x1CD,
+       0x1CE,
+       0x1CF,
+       0x1D0,
+       0x1D1,
+       0x1D2,
+       0x1D3,
+       0x1D4,
+       0x1D5,
+       0x1D6,
+       0x1D7,
+       0x1D8,
+       0x1D9,
+       0x1DA,
+       0x1DB,
+       0x1DC,
+       0x1DE,
+       0x1DF,
+       0x1E0,
+       0x1E1,
+       0x1E2,
+       0x1E3,
+       0x1E4,
+       0x1E5,
+       0x1E6,
+       0x1E7,
+       0x1E8,
+       0x1E9,
+       0x1EA,
+       0x1EB,
+       0x1EC,
+       0x1ED,
+       0x1EE,
+       0x1EF,
+       0x1F0,
+       0x1F1,
+       0x1F2,
+       0x1F3,
+       0x1F4,
+       0x1F5,
+       0x1F6,
+       0x1F7,
+       0x1F8,
+       0x1F9,
+       0x1FA,
+       0x1FB,
+       0x1FC,
+       0x1FD,
+       0x1FE,
+       0x1FF,
+       0x200,
+       0x201,
+       0x202,
+       0x203,
+       0x204,
+       0x205,
+       0x206,
+       0x207,
+       0x208,
+       0x209,
+       0x20A,
+       0x20B,
+       0x20C,
+       0x20D,
+       0x20E,
+       0x20F,
+       0x210,
+       0x211,
+       0x212,
+       0x213,
+       0x214,
+       0x215,
+       0x216,
+       0x217,
+       0x218,
+       0x219,
+       0x21A,
+       0x21B,
+       0x21C,
+       0x21D,
+       0x21E,
+       0x21F,
+       0x220,
+       0x221,
+       0x222,
+       0x223,
+       0x224,
+       0x225,
+       0x226,
+       0x227,
+       0x228,
+       0x229,
+       0x22A,
+       0x22B,
+       0x22C,
+       0x22D,
+       0x22E,
+       0x22F,
+       0x230,
+       0x231,
+       0x232,
+       0x233,
+       0x23A,
+       0x23B,
+       0x23C,
+       0x23D,
+       0x23E,
+       0x23F,
+       0x241,
+       0x242,
+       0x243,
+       0x244,
+       0x245,
+       0x246,
+       0x247,
+       0x248,
+       0x249,
+       0x24A,
+       0x24B,
+       0x24C,
+       0x24D,
+       0x24E,
+       0x24F,
+       0x345,
+       0x346,
+       0x370,
+       0x371,
+       0x372,
+       0x373,
+       0x376,
+       0x377,
+       0x37F,
        0x380,
-       0x384,
+       0x386,
+       0x387,
+       0x388,
        0x38B,
        0x38C,
        0x38D,
        0x38E,
+       0x390,
+       0x391,
        0x3A2,
        0x3A3,
-       0x530,
+       0x3AC,
+       0x3B0,
+       0x3B1,
+       0x3C2,
+       0x3C3,
+       0x3CF,
+       0x3D0,
+       0x3D1,
+       0x3D2,
+       0x3D5,
+       0x3D6,
+       0x3D7,
+       0x3D8,
+       0x3D9,
+       0x3DA,
+       0x3DB,
+       0x3DC,
+       0x3DD,
+       0x3DE,
+       0x3DF,
+       0x3E0,
+       0x3E1,
+       0x3E2,
+       0x3E3,
+       0x3E4,
+       0x3E5,
+       0x3E6,
+       0x3E7,
+       0x3E8,
+       0x3E9,
+       0x3EA,
+       0x3EB,
+       0x3EC,
+       0x3ED,
+       0x3EE,
+       0x3EF,
+       0x3F0,
+       0x3F1,
+       0x3F2,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FA,
+       0x3FB,
+       0x3FD,
+       0x400,
+       0x410,
+       0x430,
+       0x460,
+       0x461,
+       0x462,
+       0x463,
+       0x464,
+       0x465,
+       0x466,
+       0x467,
+       0x468,
+       0x469,
+       0x46A,
+       0x46B,
+       0x46C,
+       0x46D,
+       0x46E,
+       0x46F,
+       0x470,
+       0x471,
+       0x472,
+       0x473,
+       0x474,
+       0x475,
+       0x476,
+       0x477,
+       0x478,
+       0x479,
+       0x47A,
+       0x47B,
+       0x47C,
+       0x47D,
+       0x47E,
+       0x47F,
+       0x480,
+       0x481,
+       0x48A,
+       0x48B,
+       0x48C,
+       0x48D,
+       0x48E,
+       0x48F,
+       0x490,
+       0x491,
+       0x492,
+       0x493,
+       0x494,
+       0x495,
+       0x496,
+       0x497,
+       0x498,
+       0x499,
+       0x49A,
+       0x49B,
+       0x49C,
+       0x49D,
+       0x49E,
+       0x49F,
+       0x4A0,
+       0x4A1,
+       0x4A2,
+       0x4A3,
+       0x4A4,
+       0x4A5,
+       0x4A6,
+       0x4A7,
+       0x4A8,
+       0x4A9,
+       0x4AA,
+       0x4AB,
+       0x4AC,
+       0x4AD,
+       0x4AE,
+       0x4AF,
+       0x4B0,
+       0x4B1,
+       0x4B2,
+       0x4B3,
+       0x4B4,
+       0x4B5,
+       0x4B6,
+       0x4B7,
+       0x4B8,
+       0x4B9,
+       0x4BA,
+       0x4BB,
+       0x4BC,
+       0x4BD,
+       0x4BE,
+       0x4BF,
+       0x4C0,
+       0x4C1,
+       0x4C2,
+       0x4C3,
+       0x4C4,
+       0x4C5,
+       0x4C6,
+       0x4C7,
+       0x4C8,
+       0x4C9,
+       0x4CA,
+       0x4CB,
+       0x4CC,
+       0x4CD,
+       0x4CE,
+       0x4D0,
+       0x4D1,
+       0x4D2,
+       0x4D3,
+       0x4D4,
+       0x4D5,
+       0x4D6,
+       0x4D7,
+       0x4D8,
+       0x4D9,
+       0x4DA,
+       0x4DB,
+       0x4DC,
+       0x4DD,
+       0x4DE,
+       0x4DF,
+       0x4E0,
+       0x4E1,
+       0x4E2,
+       0x4E3,
+       0x4E4,
+       0x4E5,
+       0x4E6,
+       0x4E7,
+       0x4E8,
+       0x4E9,
+       0x4EA,
+       0x4EB,
+       0x4EC,
+       0x4ED,
+       0x4EE,
+       0x4EF,
+       0x4F0,
+       0x4F1,
+       0x4F2,
+       0x4F3,
+       0x4F4,
+       0x4F5,
+       0x4F6,
+       0x4F7,
+       0x4F8,
+       0x4F9,
+       0x4FA,
+       0x4FB,
+       0x4FC,
+       0x4FD,
+       0x4FE,
+       0x4FF,
+       0x500,
+       0x501,
+       0x502,
+       0x503,
+       0x504,
+       0x505,
+       0x506,
+       0x507,
+       0x508,
+       0x509,
+       0x50A,
+       0x50B,
+       0x50C,
+       0x50D,
+       0x50E,
+       0x50F,
+       0x510,
+       0x511,
+       0x512,
+       0x513,
+       0x514,
+       0x515,
+       0x516,
+       0x517,
+       0x518,
+       0x519,
+       0x51A,
+       0x51B,
+       0x51C,
+       0x51D,
+       0x51E,
+       0x51F,
+       0x520,
+       0x521,
+       0x522,
+       0x523,
+       0x524,
+       0x525,
+       0x526,
+       0x527,
+       0x528,
+       0x529,
+       0x52A,
+       0x52B,
+       0x52C,
+       0x52D,
+       0x52E,
+       0x52F,
        0x531,
        0x557,
-       0x559,
-       0x560,
-       0x561,
+       0x587,
        0x588,
-       0x589,
-       0x58B,
-       0x58D,
-       0x590,
-       0x591,
-       0x5C8,
-       0x5D0,
-       0x5EB,
-       0x5F0,
-       0x5F5,
-       0x600,
-       0x61D,
-       0x61E,
-       0x70E,
-       0x70F,
-       0x74B,
-       0x74D,
-       0x7B2,
-       0x7C0,
-       0x7FB,
-       0x800,
-       0x82E,
-       0x830,
-       0x83F,
-       0x840,
-       0x85C,
-       0x85E,
-       0x85F,
-       0x860,
-       0x86B,
-       0x8A0,
-       0x8B5,
-       0x8B6,
-       0x8BE,
-       0x8D4,
-       0x984,
-       0x985,
-       0x98D,
-       0x98F,
-       0x991,
-       0x993,
-       0x9A9,
-       0x9AA,
-       0x9B1,
-       0x9B2,
-       0x9B3,
-       0x9B6,
-       0x9BA,
-       0x9BC,
-       0x9C5,
-       0x9C7,
-       0x9C9,
-       0x9CB,
-       0x9CF,
-       0x9D7,
-       0x9D8,
-       0x9DC,
-       0x9DE,
-       0x9DF,
-       0x9E4,
-       0x9E6,
-       0x9FE,
-       0xA01,
-       0xA04,
-       0xA05,
-       0xA0B,
-       0xA0F,
-       0xA11,
-       0xA13,
-       0xA29,
-       0xA2A,
-       0xA31,
-       0xA32,
-       0xA34,
-       0xA35,
-       0xA37,
-       0xA38,
-       0xA3A,
-       0xA3C,
-       0xA3D,
-       0xA3E,
-       0xA43,
-       0xA47,
-       0xA49,
-       0xA4B,
-       0xA4E,
-       0xA51,
-       0xA52,
-       0xA59,
-       0xA5D,
-       0xA5E,
-       0xA5F,
-       0xA66,
-       0xA76,
-       0xA81,
-       0xA84,
-       0xA85,
-       0xA8E,
-       0xA8F,
-       0xA92,
-       0xA93,
-       0xAA9,
-       0xAAA,
-       0xAB1,
-       0xAB2,
-       0xAB4,
-       0xAB5,
-       0xABA,
-       0xABC,
-       0xAC6,
-       0xAC7,
-       0xACA,
-       0xACB,
-       0xACE,
-       0xAD0,
-       0xAD1,
-       0xAE0,
-       0xAE4,
-       0xAE6,
-       0xAF2,
-       0xAF9,
-       0xB00,
-       0xB01,
-       0xB04,
-       0xB05,
-       0xB0D,
-       0xB0F,
-       0xB11,
-       0xB13,
-       0xB29,
-       0xB2A,
-       0xB31,
-       0xB32,
-       0xB34,
-       0xB35,
-       0xB3A,
-       0xB3C,
-       0xB45,
-       0xB47,
-       0xB49,
-       0xB4B,
-       0xB4E,
-       0xB56,
-       0xB58,
-       0xB5C,
-       0xB5E,
-       0xB5F,
-       0xB64,
-       0xB66,
-       0xB78,
-       0xB82,
-       0xB84,
-       0xB85,
-       0xB8B,
-       0xB8E,
-       0xB91,
-       0xB92,
-       0xB96,
-       0xB99,
-       0xB9B,
-       0xB9C,
-       0xB9D,
-       0xB9E,
-       0xBA0,
-       0xBA3,
-       0xBA5,
-       0xBA8,
-       0xBAB,
-       0xBAE,
-       0xBBA,
-       0xBBE,
-       0xBC3,
-       0xBC6,
-       0xBC9,
-       0xBCA,
-       0xBCE,
-       0xBD0,
-       0xBD1,
-       0xBD7,
-       0xBD8,
-       0xBE6,
-       0xBFB,
-       0xC00,
-       0xC04,
-       0xC05,
-       0xC0D,
-       0xC0E,
-       0xC11,
-       0xC12,
-       0xC29,
-       0xC2A,
-       0xC3A,
-       0xC3D,
-       0xC45,
-       0xC46,
-       0xC49,
-       0xC4A,
-       0xC4E,
-       0xC55,
-       0xC57,
-       0xC58,
-       0xC5B,
-       0xC60,
-       0xC64,
-       0xC66,
-       0xC70,
-       0xC78,
-       0xC84,
-       0xC85,
-       0xC8D,
-       0xC8E,
-       0xC91,
-       0xC92,
-       0xCA9,
-       0xCAA,
-       0xCB4,
-       0xCB5,
-       0xCBA,
-       0xCBC,
-       0xCC5,
-       0xCC6,
-       0xCC9,
-       0xCCA,
-       0xCCE,
-       0xCD5,
-       0xCD7,
-       0xCDE,
-       0xCDF,
-       0xCE0,
-       0xCE4,
-       0xCE6,
-       0xCF0,
-       0xCF1,
-       0xCF3,
-       0xD00,
-       0xD04,
-       0xD05,
-       0xD0D,
-       0xD0E,
-       0xD11,
-       0xD12,
-       0xD45,
-       0xD46,
-       0xD49,
-       0xD4A,
-       0xD50,
-       0xD54,
-       0xD64,
-       0xD66,
-       0xD80,
-       0xD82,
-       0xD84,
-       0xD85,
-       0xD97,
-       0xD9A,
-       0xDB2,
-       0xDB3,
-       0xDBC,
-       0xDBD,
-       0xDBE,
-       0xDC0,
-       0xDC7,
-       0xDCA,
-       0xDCB,
-       0xDCF,
-       0xDD5,
-       0xDD6,
-       0xDD7,
-       0xDD8,
-       0xDE0,
-       0xDE6,
-       0xDF0,
-       0xDF2,
-       0xDF5,
-       0xE01,
-       0xE3B,
-       0xE3F,
-       0xE5C,
-       0xE81,
-       0xE83,
-       0xE84,
-       0xE85,
-       0xE87,
-       0xE89,
-       0xE8A,
-       0xE8B,
-       0xE8D,
-       0xE8E,
-       0xE94,
-       0xE98,
-       0xE99,
-       0xEA0,
-       0xEA1,
-       0xEA4,
-       0xEA5,
-       0xEA6,
-       0xEA7,
-       0xEA8,
-       0xEAA,
-       0xEAC,
-       0xEAD,
-       0xEBA,
-       0xEBB,
-       0xEBE,
-       0xEC0,
-       0xEC5,
-       0xEC6,
-       0xEC7,
-       0xEC8,
-       0xECE,
-       0xED0,
-       0xEDA,
-       0xEDC,
-       0xEE0,
-       0xF00,
-       0xF48,
-       0xF49,
-       0xF6D,
-       0xF71,
-       0xF98,
-       0xF99,
-       0xFBD,
-       0xFBE,
-       0xFCD,
-       0xFCE,
-       0xFDB,
-       0x1000,
+       0x10A0,
        0x10C6,
        0x10C7,
        0x10C8,
        0x10CD,
        0x10CE,
-       0x10D0,
-       0x1249,
-       0x124A,
-       0x124E,
-       0x1250,
-       0x1257,
-       0x1258,
-       0x1259,
-       0x125A,
-       0x125E,
-       0x1260,
-       0x1289,
-       0x128A,
-       0x128E,
-       0x1290,
-       0x12B1,
-       0x12B2,
-       0x12B6,
-       0x12B8,
-       0x12BF,
-       0x12C0,
-       0x12C1,
-       0x12C2,
-       0x12C6,
-       0x12C8,
-       0x12D7,
-       0x12D8,
-       0x1311,
-       0x1312,
-       0x1316,
-       0x1318,
-       0x135B,
-       0x135D,
-       0x137D,
-       0x1380,
-       0x139A,
-       0x13A0,
-       0x13F6,
        0x13F8,
        0x13FE,
-       0x1400,
-       0x169D,
-       0x16A0,
-       0x16F9,
-       0x1700,
-       0x170D,
-       0x170E,
-       0x1715,
-       0x1720,
-       0x1737,
-       0x1740,
-       0x1754,
-       0x1760,
-       0x176D,
-       0x176E,
-       0x1771,
-       0x1772,
-       0x1774,
-       0x1780,
-       0x17DE,
-       0x17E0,
-       0x17EA,
-       0x17F0,
-       0x17FA,
-       0x1800,
-       0x180F,
-       0x1810,
-       0x181A,
-       0x1820,
-       0x1878,
-       0x1880,
-       0x18AB,
-       0x18B0,
-       0x18F6,
-       0x1900,
-       0x191F,
-       0x1920,
-       0x192C,
-       0x1930,
-       0x193C,
-       0x1940,
-       0x1941,
-       0x1944,
-       0x196E,
-       0x1970,
-       0x1975,
-       0x1980,
-       0x19AC,
-       0x19B0,
-       0x19CA,
-       0x19D0,
-       0x19DB,
-       0x19DE,
-       0x1A1C,
-       0x1A1E,
-       0x1A5F,
-       0x1A60,
-       0x1A7D,
-       0x1A7F,
-       0x1A8A,
-       0x1A90,
-       0x1A9A,
-       0x1AA0,
-       0x1AAE,
-       0x1AB0,
-       0x1ABF,
-       0x1B00,
-       0x1B4C,
-       0x1B50,
-       0x1B7D,
-       0x1B80,
-       0x1BF4,
-       0x1BFC,
-       0x1C38,
-       0x1C3B,
-       0x1C4A,
-       0x1C4D,
+       0x1C80,
+       0x1C81,
+       0x1C82,
+       0x1C83,
+       0x1C85,
+       0x1C86,
+       0x1C87,
+       0x1C88,
        0x1C89,
-       0x1CC0,
-       0x1CC8,
-       0x1CD0,
-       0x1CFA,
-       0x1D00,
-       0x1DFA,
-       0x1DFB,
-       0x1F16,
+       0x1E00,
+       0x1E01,
+       0x1E02,
+       0x1E03,
+       0x1E04,
+       0x1E05,
+       0x1E06,
+       0x1E07,
+       0x1E08,
+       0x1E09,
+       0x1E0A,
+       0x1E0B,
+       0x1E0C,
+       0x1E0D,
+       0x1E0E,
+       0x1E0F,
+       0x1E10,
+       0x1E11,
+       0x1E12,
+       0x1E13,
+       0x1E14,
+       0x1E15,
+       0x1E16,
+       0x1E17,
+       0x1E18,
+       0x1E19,
+       0x1E1A,
+       0x1E1B,
+       0x1E1C,
+       0x1E1D,
+       0x1E1E,
+       0x1E1F,
+       0x1E20,
+       0x1E21,
+       0x1E22,
+       0x1E23,
+       0x1E24,
+       0x1E25,
+       0x1E26,
+       0x1E27,
+       0x1E28,
+       0x1E29,
+       0x1E2A,
+       0x1E2B,
+       0x1E2C,
+       0x1E2D,
+       0x1E2E,
+       0x1E2F,
+       0x1E30,
+       0x1E31,
+       0x1E32,
+       0x1E33,
+       0x1E34,
+       0x1E35,
+       0x1E36,
+       0x1E37,
+       0x1E38,
+       0x1E39,
+       0x1E3A,
+       0x1E3B,
+       0x1E3C,
+       0x1E3D,
+       0x1E3E,
+       0x1E3F,
+       0x1E40,
+       0x1E41,
+       0x1E42,
+       0x1E43,
+       0x1E44,
+       0x1E45,
+       0x1E46,
+       0x1E47,
+       0x1E48,
+       0x1E49,
+       0x1E4A,
+       0x1E4B,
+       0x1E4C,
+       0x1E4D,
+       0x1E4E,
+       0x1E4F,
+       0x1E50,
+       0x1E51,
+       0x1E52,
+       0x1E53,
+       0x1E54,
+       0x1E55,
+       0x1E56,
+       0x1E57,
+       0x1E58,
+       0x1E59,
+       0x1E5A,
+       0x1E5B,
+       0x1E5C,
+       0x1E5D,
+       0x1E5E,
+       0x1E5F,
+       0x1E60,
+       0x1E61,
+       0x1E62,
+       0x1E63,
+       0x1E64,
+       0x1E65,
+       0x1E66,
+       0x1E67,
+       0x1E68,
+       0x1E69,
+       0x1E6A,
+       0x1E6B,
+       0x1E6C,
+       0x1E6D,
+       0x1E6E,
+       0x1E6F,
+       0x1E70,
+       0x1E71,
+       0x1E72,
+       0x1E73,
+       0x1E74,
+       0x1E75,
+       0x1E76,
+       0x1E77,
+       0x1E78,
+       0x1E79,
+       0x1E7A,
+       0x1E7B,
+       0x1E7C,
+       0x1E7D,
+       0x1E7E,
+       0x1E7F,
+       0x1E80,
+       0x1E81,
+       0x1E82,
+       0x1E83,
+       0x1E84,
+       0x1E85,
+       0x1E86,
+       0x1E87,
+       0x1E88,
+       0x1E89,
+       0x1E8A,
+       0x1E8B,
+       0x1E8C,
+       0x1E8D,
+       0x1E8E,
+       0x1E8F,
+       0x1E90,
+       0x1E91,
+       0x1E92,
+       0x1E93,
+       0x1E94,
+       0x1E95,
+       0x1E96,
+       0x1E97,
+       0x1E98,
+       0x1E99,
+       0x1E9A,
+       0x1E9B,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1EA1,
+       0x1EA2,
+       0x1EA3,
+       0x1EA4,
+       0x1EA5,
+       0x1EA6,
+       0x1EA7,
+       0x1EA8,
+       0x1EA9,
+       0x1EAA,
+       0x1EAB,
+       0x1EAC,
+       0x1EAD,
+       0x1EAE,
+       0x1EAF,
+       0x1EB0,
+       0x1EB1,
+       0x1EB2,
+       0x1EB3,
+       0x1EB4,
+       0x1EB5,
+       0x1EB6,
+       0x1EB7,
+       0x1EB8,
+       0x1EB9,
+       0x1EBA,
+       0x1EBB,
+       0x1EBC,
+       0x1EBD,
+       0x1EBE,
+       0x1EBF,
+       0x1EC0,
+       0x1EC1,
+       0x1EC2,
+       0x1EC3,
+       0x1EC4,
+       0x1EC5,
+       0x1EC6,
+       0x1EC7,
+       0x1EC8,
+       0x1EC9,
+       0x1ECA,
+       0x1ECB,
+       0x1ECC,
+       0x1ECD,
+       0x1ECE,
+       0x1ECF,
+       0x1ED0,
+       0x1ED1,
+       0x1ED2,
+       0x1ED3,
+       0x1ED4,
+       0x1ED5,
+       0x1ED6,
+       0x1ED7,
+       0x1ED8,
+       0x1ED9,
+       0x1EDA,
+       0x1EDB,
+       0x1EDC,
+       0x1EDD,
+       0x1EDE,
+       0x1EDF,
+       0x1EE0,
+       0x1EE1,
+       0x1EE2,
+       0x1EE3,
+       0x1EE4,
+       0x1EE5,
+       0x1EE6,
+       0x1EE7,
+       0x1EE8,
+       0x1EE9,
+       0x1EEA,
+       0x1EEB,
+       0x1EEC,
+       0x1EED,
+       0x1EEE,
+       0x1EEF,
+       0x1EF0,
+       0x1EF1,
+       0x1EF2,
+       0x1EF3,
+       0x1EF4,
+       0x1EF5,
+       0x1EF6,
+       0x1EF7,
+       0x1EF8,
+       0x1EF9,
+       0x1EFA,
+       0x1EFB,
+       0x1EFC,
+       0x1EFD,
+       0x1EFE,
+       0x1EFF,
+       0x1F08,
+       0x1F10,
        0x1F18,
        0x1F1E,
-       0x1F20,
-       0x1F46,
+       0x1F28,
+       0x1F30,
+       0x1F38,
+       0x1F40,
        0x1F48,
        0x1F4E,
        0x1F50,
-       0x1F58,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
        0x1F59,
        0x1F5A,
        0x1F5B,
@@ -678,19778 +933,17167 @@ static const UV Assigned_invlist[] = { /* for all charsets */
        0x1F5D,
        0x1F5E,
        0x1F5F,
-       0x1F7E,
+       0x1F60,
+       0x1F68,
+       0x1F70,
        0x1F80,
+       0x1F81,
+       0x1F82,
+       0x1F83,
+       0x1F84,
+       0x1F85,
+       0x1F86,
+       0x1F87,
+       0x1F88,
+       0x1F89,
+       0x1F8A,
+       0x1F8B,
+       0x1F8C,
+       0x1F8D,
+       0x1F8E,
+       0x1F8F,
+       0x1F90,
+       0x1F91,
+       0x1F92,
+       0x1F93,
+       0x1F94,
+       0x1F95,
+       0x1F96,
+       0x1F97,
+       0x1F98,
+       0x1F99,
+       0x1F9A,
+       0x1F9B,
+       0x1F9C,
+       0x1F9D,
+       0x1F9E,
+       0x1F9F,
+       0x1FA0,
+       0x1FA1,
+       0x1FA2,
+       0x1FA3,
+       0x1FA4,
+       0x1FA5,
+       0x1FA6,
+       0x1FA7,
+       0x1FA8,
+       0x1FA9,
+       0x1FAA,
+       0x1FAB,
+       0x1FAC,
+       0x1FAD,
+       0x1FAE,
+       0x1FAF,
+       0x1FB0,
+       0x1FB2,
+       0x1FB3,
+       0x1FB4,
        0x1FB5,
        0x1FB6,
+       0x1FB7,
+       0x1FB8,
+       0x1FBA,
+       0x1FBC,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC3,
+       0x1FC4,
        0x1FC5,
        0x1FC6,
+       0x1FC7,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD3,
        0x1FD4,
        0x1FD6,
+       0x1FD7,
+       0x1FD8,
+       0x1FDA,
        0x1FDC,
-       0x1FDD,
-       0x1FF0,
+       0x1FE2,
+       0x1FE3,
+       0x1FE4,
+       0x1FE5,
+       0x1FE6,
+       0x1FE7,
+       0x1FE8,
+       0x1FEA,
+       0x1FEC,
+       0x1FED,
        0x1FF2,
+       0x1FF3,
+       0x1FF4,
        0x1FF5,
        0x1FF6,
-       0x1FFF,
-       0x2000,
-       0x2065,
-       0x2066,
-       0x2072,
-       0x2074,
-       0x208F,
-       0x2090,
-       0x209D,
-       0x20A0,
-       0x20C0,
-       0x20D0,
-       0x20F1,
-       0x2100,
-       0x218C,
-       0x2190,
-       0x2427,
-       0x2440,
-       0x244B,
-       0x2460,
-       0x2B74,
-       0x2B76,
-       0x2B96,
-       0x2B98,
-       0x2BBA,
-       0x2BBD,
-       0x2BC9,
-       0x2BCA,
-       0x2BD3,
-       0x2BEC,
-       0x2BF0,
+       0x1FF7,
+       0x1FF8,
+       0x1FFA,
+       0x1FFC,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212B,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x2160,
+       0x2170,
+       0x2183,
+       0x2184,
+       0x24B6,
+       0x24D0,
        0x2C00,
        0x2C2F,
-       0x2C30,
-       0x2C5F,
        0x2C60,
-       0x2CF4,
-       0x2CF9,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0x2D30,
-       0x2D68,
-       0x2D6F,
-       0x2D71,
-       0x2D7F,
-       0x2D97,
-       0x2DA0,
-       0x2DA7,
-       0x2DA8,
-       0x2DAF,
-       0x2DB0,
-       0x2DB7,
-       0x2DB8,
-       0x2DBF,
-       0x2DC0,
-       0x2DC7,
-       0x2DC8,
-       0x2DCF,
-       0x2DD0,
-       0x2DD7,
-       0x2DD8,
-       0x2DDF,
-       0x2DE0,
-       0x2E4A,
-       0x2E80,
-       0x2E9A,
-       0x2E9B,
-       0x2EF4,
-       0x2F00,
-       0x2FD6,
-       0x2FF0,
-       0x2FFC,
-       0x3000,
-       0x3040,
-       0x3041,
-       0x3097,
-       0x3099,
-       0x3100,
-       0x3105,
-       0x312F,
-       0x3131,
-       0x318F,
-       0x3190,
-       0x31BB,
-       0x31C0,
-       0x31E4,
-       0x31F0,
-       0x321F,
-       0x3220,
-       0x32FF,
-       0x3300,
-       0x4DB6,
-       0x4DC0,
-       0x9FEB,
-       0xA000,
-       0xA48D,
-       0xA490,
-       0xA4C7,
-       0xA4D0,
-       0xA62C,
+       0x2C61,
+       0x2C62,
+       0x2C63,
+       0x2C64,
+       0x2C65,
+       0x2C67,
+       0x2C68,
+       0x2C69,
+       0x2C6A,
+       0x2C6B,
+       0x2C6C,
+       0x2C6D,
+       0x2C6E,
+       0x2C6F,
+       0x2C70,
+       0x2C71,
+       0x2C72,
+       0x2C73,
+       0x2C75,
+       0x2C76,
+       0x2C7E,
+       0x2C80,
+       0x2C81,
+       0x2C82,
+       0x2C83,
+       0x2C84,
+       0x2C85,
+       0x2C86,
+       0x2C87,
+       0x2C88,
+       0x2C89,
+       0x2C8A,
+       0x2C8B,
+       0x2C8C,
+       0x2C8D,
+       0x2C8E,
+       0x2C8F,
+       0x2C90,
+       0x2C91,
+       0x2C92,
+       0x2C93,
+       0x2C94,
+       0x2C95,
+       0x2C96,
+       0x2C97,
+       0x2C98,
+       0x2C99,
+       0x2C9A,
+       0x2C9B,
+       0x2C9C,
+       0x2C9D,
+       0x2C9E,
+       0x2C9F,
+       0x2CA0,
+       0x2CA1,
+       0x2CA2,
+       0x2CA3,
+       0x2CA4,
+       0x2CA5,
+       0x2CA6,
+       0x2CA7,
+       0x2CA8,
+       0x2CA9,
+       0x2CAA,
+       0x2CAB,
+       0x2CAC,
+       0x2CAD,
+       0x2CAE,
+       0x2CAF,
+       0x2CB0,
+       0x2CB1,
+       0x2CB2,
+       0x2CB3,
+       0x2CB4,
+       0x2CB5,
+       0x2CB6,
+       0x2CB7,
+       0x2CB8,
+       0x2CB9,
+       0x2CBA,
+       0x2CBB,
+       0x2CBC,
+       0x2CBD,
+       0x2CBE,
+       0x2CBF,
+       0x2CC0,
+       0x2CC1,
+       0x2CC2,
+       0x2CC3,
+       0x2CC4,
+       0x2CC5,
+       0x2CC6,
+       0x2CC7,
+       0x2CC8,
+       0x2CC9,
+       0x2CCA,
+       0x2CCB,
+       0x2CCC,
+       0x2CCD,
+       0x2CCE,
+       0x2CCF,
+       0x2CD0,
+       0x2CD1,
+       0x2CD2,
+       0x2CD3,
+       0x2CD4,
+       0x2CD5,
+       0x2CD6,
+       0x2CD7,
+       0x2CD8,
+       0x2CD9,
+       0x2CDA,
+       0x2CDB,
+       0x2CDC,
+       0x2CDD,
+       0x2CDE,
+       0x2CDF,
+       0x2CE0,
+       0x2CE1,
+       0x2CE2,
+       0x2CE3,
+       0x2CEB,
+       0x2CEC,
+       0x2CED,
+       0x2CEE,
+       0x2CF2,
+       0x2CF3,
        0xA640,
-       0xA6F8,
-       0xA700,
+       0xA641,
+       0xA642,
+       0xA643,
+       0xA644,
+       0xA645,
+       0xA646,
+       0xA647,
+       0xA648,
+       0xA649,
+       0xA64A,
+       0xA64B,
+       0xA64C,
+       0xA64D,
+       0xA64E,
+       0xA64F,
+       0xA650,
+       0xA651,
+       0xA652,
+       0xA653,
+       0xA654,
+       0xA655,
+       0xA656,
+       0xA657,
+       0xA658,
+       0xA659,
+       0xA65A,
+       0xA65B,
+       0xA65C,
+       0xA65D,
+       0xA65E,
+       0xA65F,
+       0xA660,
+       0xA661,
+       0xA662,
+       0xA663,
+       0xA664,
+       0xA665,
+       0xA666,
+       0xA667,
+       0xA668,
+       0xA669,
+       0xA66A,
+       0xA66B,
+       0xA66C,
+       0xA66D,
+       0xA680,
+       0xA681,
+       0xA682,
+       0xA683,
+       0xA684,
+       0xA685,
+       0xA686,
+       0xA687,
+       0xA688,
+       0xA689,
+       0xA68A,
+       0xA68B,
+       0xA68C,
+       0xA68D,
+       0xA68E,
+       0xA68F,
+       0xA690,
+       0xA691,
+       0xA692,
+       0xA693,
+       0xA694,
+       0xA695,
+       0xA696,
+       0xA697,
+       0xA698,
+       0xA699,
+       0xA69A,
+       0xA69B,
+       0xA722,
+       0xA723,
+       0xA724,
+       0xA725,
+       0xA726,
+       0xA727,
+       0xA728,
+       0xA729,
+       0xA72A,
+       0xA72B,
+       0xA72C,
+       0xA72D,
+       0xA72E,
+       0xA72F,
+       0xA732,
+       0xA733,
+       0xA734,
+       0xA735,
+       0xA736,
+       0xA737,
+       0xA738,
+       0xA739,
+       0xA73A,
+       0xA73B,
+       0xA73C,
+       0xA73D,
+       0xA73E,
+       0xA73F,
+       0xA740,
+       0xA741,
+       0xA742,
+       0xA743,
+       0xA744,
+       0xA745,
+       0xA746,
+       0xA747,
+       0xA748,
+       0xA749,
+       0xA74A,
+       0xA74B,
+       0xA74C,
+       0xA74D,
+       0xA74E,
+       0xA74F,
+       0xA750,
+       0xA751,
+       0xA752,
+       0xA753,
+       0xA754,
+       0xA755,
+       0xA756,
+       0xA757,
+       0xA758,
+       0xA759,
+       0xA75A,
+       0xA75B,
+       0xA75C,
+       0xA75D,
+       0xA75E,
+       0xA75F,
+       0xA760,
+       0xA761,
+       0xA762,
+       0xA763,
+       0xA764,
+       0xA765,
+       0xA766,
+       0xA767,
+       0xA768,
+       0xA769,
+       0xA76A,
+       0xA76B,
+       0xA76C,
+       0xA76D,
+       0xA76E,
+       0xA76F,
+       0xA779,
+       0xA77A,
+       0xA77B,
+       0xA77C,
+       0xA77D,
+       0xA77E,
+       0xA77F,
+       0xA780,
+       0xA781,
+       0xA782,
+       0xA783,
+       0xA784,
+       0xA785,
+       0xA786,
+       0xA787,
+       0xA78B,
+       0xA78C,
+       0xA78D,
+       0xA78E,
+       0xA790,
+       0xA791,
+       0xA792,
+       0xA793,
+       0xA796,
+       0xA797,
+       0xA798,
+       0xA799,
+       0xA79A,
+       0xA79B,
+       0xA79C,
+       0xA79D,
+       0xA79E,
+       0xA79F,
+       0xA7A0,
+       0xA7A1,
+       0xA7A2,
+       0xA7A3,
+       0xA7A4,
+       0xA7A5,
+       0xA7A6,
+       0xA7A7,
+       0xA7A8,
+       0xA7A9,
+       0xA7AA,
+       0xA7AB,
+       0xA7AC,
+       0xA7AD,
+       0xA7AE,
        0xA7AF,
        0xA7B0,
-       0xA7B8,
-       0xA7F7,
-       0xA82C,
-       0xA830,
-       0xA83A,
-       0xA840,
-       0xA878,
-       0xA880,
-       0xA8C6,
-       0xA8CE,
-       0xA8DA,
-       0xA8E0,
-       0xA8FE,
-       0xA900,
-       0xA954,
-       0xA95F,
-       0xA97D,
-       0xA980,
-       0xA9CE,
-       0xA9CF,
-       0xA9DA,
-       0xA9DE,
-       0xA9FF,
-       0xAA00,
-       0xAA37,
-       0xAA40,
-       0xAA4E,
-       0xAA50,
-       0xAA5A,
-       0xAA5C,
-       0xAAC3,
-       0xAADB,
-       0xAAF7,
-       0xAB01,
-       0xAB07,
-       0xAB09,
-       0xAB0F,
-       0xAB11,
-       0xAB17,
-       0xAB20,
-       0xAB27,
-       0xAB28,
-       0xAB2F,
-       0xAB30,
-       0xAB66,
-       0xAB70,
-       0xABEE,
-       0xABF0,
-       0xABFA,
-       0xAC00,
-       0xD7A4,
-       0xD7B0,
-       0xD7C7,
-       0xD7CB,
-       0xD7FC,
-       0xD800,
-       0xFA6E,
-       0xFA70,
-       0xFADA,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFB1D,
-       0xFB37,
-       0xFB38,
-       0xFB3D,
-       0xFB3E,
-       0xFB3F,
-       0xFB40,
-       0xFB42,
-       0xFB43,
-       0xFB45,
-       0xFB46,
-       0xFBC2,
-       0xFBD3,
-       0xFD40,
-       0xFD50,
-       0xFD90,
-       0xFD92,
-       0xFDC8,
-       0xFDF0,
-       0xFDFE,
-       0xFE00,
-       0xFE1A,
-       0xFE20,
-       0xFE53,
-       0xFE54,
-       0xFE67,
-       0xFE68,
-       0xFE6C,
-       0xFE70,
-       0xFE75,
-       0xFE76,
-       0xFEFD,
-       0xFEFF,
-       0xFF00,
-       0xFF01,
-       0xFFBF,
-       0xFFC2,
-       0xFFC8,
-       0xFFCA,
-       0xFFD0,
-       0xFFD2,
-       0xFFD8,
-       0xFFDA,
-       0xFFDD,
-       0xFFE0,
-       0xFFE7,
-       0xFFE8,
-       0xFFEF,
-       0xFFF9,
-       0xFFFE,
-       0x10000,
-       0x1000C,
-       0x1000D,
-       0x10027,
-       0x10028,
-       0x1003B,
-       0x1003C,
-       0x1003E,
-       0x1003F,
-       0x1004E,
-       0x10050,
-       0x1005E,
-       0x10080,
-       0x100FB,
-       0x10100,
-       0x10103,
-       0x10107,
-       0x10134,
-       0x10137,
-       0x1018F,
-       0x10190,
-       0x1019C,
-       0x101A0,
-       0x101A1,
-       0x101D0,
-       0x101FE,
-       0x10280,
-       0x1029D,
-       0x102A0,
-       0x102D1,
-       0x102E0,
-       0x102FC,
-       0x10300,
-       0x10324,
-       0x1032D,
-       0x1034B,
-       0x10350,
-       0x1037B,
-       0x10380,
-       0x1039E,
-       0x1039F,
-       0x103C4,
-       0x103C8,
-       0x103D6,
-       0x10400,
-       0x1049E,
-       0x104A0,
-       0x104AA,
-       0x104B0,
-       0x104D4,
-       0x104D8,
-       0x104FC,
-       0x10500,
-       0x10528,
-       0x10530,
-       0x10564,
-       0x1056F,
-       0x10570,
-       0x10600,
-       0x10737,
-       0x10740,
-       0x10756,
-       0x10760,
-       0x10768,
-       0x10800,
-       0x10806,
-       0x10808,
-       0x10809,
-       0x1080A,
-       0x10836,
-       0x10837,
-       0x10839,
-       0x1083C,
-       0x1083D,
-       0x1083F,
-       0x10856,
-       0x10857,
-       0x1089F,
-       0x108A7,
-       0x108B0,
-       0x108E0,
-       0x108F3,
-       0x108F4,
-       0x108F6,
-       0x108FB,
-       0x1091C,
-       0x1091F,
-       0x1093A,
-       0x1093F,
-       0x10940,
-       0x10980,
-       0x109B8,
-       0x109BC,
-       0x109D0,
-       0x109D2,
-       0x10A04,
-       0x10A05,
-       0x10A07,
-       0x10A0C,
-       0x10A14,
-       0x10A15,
-       0x10A18,
-       0x10A19,
-       0x10A34,
-       0x10A38,
-       0x10A3B,
-       0x10A3F,
-       0x10A48,
-       0x10A50,
-       0x10A59,
-       0x10A60,
-       0x10AA0,
-       0x10AC0,
-       0x10AE7,
-       0x10AEB,
-       0x10AF7,
-       0x10B00,
-       0x10B36,
-       0x10B39,
-       0x10B56,
-       0x10B58,
-       0x10B73,
-       0x10B78,
-       0x10B92,
-       0x10B99,
-       0x10B9D,
-       0x10BA9,
-       0x10BB0,
-       0x10C00,
-       0x10C49,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x10CFA,
-       0x10D00,
-       0x10E60,
-       0x10E7F,
-       0x11000,
-       0x1104E,
-       0x11052,
-       0x11070,
-       0x1107F,
-       0x110C2,
-       0x110D0,
-       0x110E9,
-       0x110F0,
-       0x110FA,
-       0x11100,
-       0x11135,
-       0x11136,
-       0x11144,
-       0x11150,
-       0x11177,
-       0x11180,
-       0x111CE,
-       0x111D0,
-       0x111E0,
-       0x111E1,
-       0x111F5,
-       0x11200,
-       0x11212,
-       0x11213,
-       0x1123F,
-       0x11280,
-       0x11287,
-       0x11288,
-       0x11289,
-       0x1128A,
-       0x1128E,
-       0x1128F,
-       0x1129E,
-       0x1129F,
-       0x112AA,
-       0x112B0,
-       0x112EB,
-       0x112F0,
-       0x112FA,
-       0x11300,
-       0x11304,
-       0x11305,
-       0x1130D,
-       0x1130F,
-       0x11311,
-       0x11313,
-       0x11329,
-       0x1132A,
-       0x11331,
-       0x11332,
-       0x11334,
-       0x11335,
-       0x1133A,
-       0x1133C,
-       0x11345,
-       0x11347,
-       0x11349,
-       0x1134B,
-       0x1134E,
-       0x11350,
-       0x11351,
-       0x11357,
-       0x11358,
-       0x1135D,
-       0x11364,
-       0x11366,
-       0x1136D,
-       0x11370,
-       0x11375,
-       0x11400,
-       0x1145A,
-       0x1145B,
-       0x1145C,
-       0x1145D,
-       0x1145E,
-       0x11480,
-       0x114C8,
-       0x114D0,
-       0x114DA,
-       0x11580,
-       0x115B6,
-       0x115B8,
-       0x115DE,
-       0x11600,
-       0x11645,
-       0x11650,
-       0x1165A,
-       0x11660,
-       0x1166D,
-       0x11680,
-       0x116B8,
-       0x116C0,
-       0x116CA,
-       0x11700,
-       0x1171A,
-       0x1171D,
-       0x1172C,
-       0x11730,
-       0x11740,
-       0x118A0,
-       0x118F3,
-       0x118FF,
-       0x11900,
-       0x11A00,
-       0x11A48,
-       0x11A50,
-       0x11A84,
-       0x11A86,
-       0x11A9D,
-       0x11A9E,
-       0x11AA3,
-       0x11AC0,
-       0x11AF9,
-       0x11C00,
-       0x11C09,
-       0x11C0A,
-       0x11C37,
-       0x11C38,
-       0x11C46,
-       0x11C50,
-       0x11C6D,
-       0x11C70,
-       0x11C90,
-       0x11C92,
-       0x11CA8,
-       0x11CA9,
-       0x11CB7,
-       0x11D00,
-       0x11D07,
-       0x11D08,
-       0x11D0A,
-       0x11D0B,
-       0x11D37,
-       0x11D3A,
-       0x11D3B,
-       0x11D3C,
-       0x11D3E,
-       0x11D3F,
-       0x11D48,
-       0x11D50,
-       0x11D5A,
-       0x12000,
-       0x1239A,
-       0x12400,
-       0x1246F,
-       0x12470,
-       0x12475,
-       0x12480,
-       0x12544,
-       0x13000,
-       0x1342F,
-       0x14400,
-       0x14647,
-       0x16800,
-       0x16A39,
-       0x16A40,
-       0x16A5F,
-       0x16A60,
-       0x16A6A,
-       0x16A6E,
-       0x16A70,
-       0x16AD0,
-       0x16AEE,
-       0x16AF0,
-       0x16AF6,
-       0x16B00,
-       0x16B46,
-       0x16B50,
-       0x16B5A,
-       0x16B5B,
-       0x16B62,
-       0x16B63,
-       0x16B78,
-       0x16B7D,
-       0x16B90,
-       0x16F00,
-       0x16F45,
-       0x16F50,
-       0x16F7F,
-       0x16F8F,
-       0x16FA0,
-       0x16FE0,
-       0x16FE2,
-       0x17000,
-       0x187ED,
-       0x18800,
-       0x18AF3,
-       0x1B000,
-       0x1B11F,
-       0x1B170,
-       0x1B2FC,
-       0x1BC00,
-       0x1BC6B,
-       0x1BC70,
-       0x1BC7D,
-       0x1BC80,
-       0x1BC89,
-       0x1BC90,
-       0x1BC9A,
-       0x1BC9C,
-       0x1BCA4,
-       0x1D000,
-       0x1D0F6,
-       0x1D100,
-       0x1D127,
-       0x1D129,
-       0x1D1E9,
-       0x1D200,
-       0x1D246,
-       0x1D300,
-       0x1D357,
-       0x1D360,
-       0x1D372,
-       0x1D400,
-       0x1D455,
-       0x1D456,
-       0x1D49D,
-       0x1D49E,
-       0x1D4A0,
-       0x1D4A2,
-       0x1D4A3,
-       0x1D4A5,
-       0x1D4A7,
-       0x1D4A9,
-       0x1D4AD,
-       0x1D4AE,
-       0x1D4BA,
-       0x1D4BB,
-       0x1D4BC,
-       0x1D4BD,
-       0x1D4C4,
-       0x1D4C5,
-       0x1D506,
-       0x1D507,
-       0x1D50B,
-       0x1D50D,
-       0x1D515,
-       0x1D516,
-       0x1D51D,
-       0x1D51E,
-       0x1D53A,
-       0x1D53B,
-       0x1D53F,
-       0x1D540,
-       0x1D545,
-       0x1D546,
-       0x1D547,
-       0x1D54A,
-       0x1D551,
-       0x1D552,
-       0x1D6A6,
-       0x1D6A8,
-       0x1D7CC,
-       0x1D7CE,
-       0x1DA8C,
-       0x1DA9B,
-       0x1DAA0,
-       0x1DAA1,
-       0x1DAB0,
-       0x1E000,
-       0x1E007,
-       0x1E008,
-       0x1E019,
-       0x1E01B,
-       0x1E022,
-       0x1E023,
-       0x1E025,
-       0x1E026,
-       0x1E02B,
-       0x1E800,
-       0x1E8C5,
-       0x1E8C7,
-       0x1E8D7,
-       0x1E900,
-       0x1E94B,
-       0x1E950,
-       0x1E95A,
-       0x1E95E,
-       0x1E960,
-       0x1EE00,
-       0x1EE04,
-       0x1EE05,
-       0x1EE20,
-       0x1EE21,
-       0x1EE23,
-       0x1EE24,
-       0x1EE25,
-       0x1EE27,
-       0x1EE28,
-       0x1EE29,
-       0x1EE33,
-       0x1EE34,
-       0x1EE38,
-       0x1EE39,
-       0x1EE3A,
-       0x1EE3B,
-       0x1EE3C,
-       0x1EE42,
-       0x1EE43,
-       0x1EE47,
-       0x1EE48,
-       0x1EE49,
-       0x1EE4A,
-       0x1EE4B,
-       0x1EE4C,
-       0x1EE4D,
-       0x1EE50,
-       0x1EE51,
-       0x1EE53,
-       0x1EE54,
-       0x1EE55,
-       0x1EE57,
-       0x1EE58,
-       0x1EE59,
-       0x1EE5A,
-       0x1EE5B,
-       0x1EE5C,
-       0x1EE5D,
-       0x1EE5E,
-       0x1EE5F,
-       0x1EE60,
-       0x1EE61,
-       0x1EE63,
-       0x1EE64,
-       0x1EE65,
-       0x1EE67,
-       0x1EE6B,
-       0x1EE6C,
-       0x1EE73,
-       0x1EE74,
-       0x1EE78,
-       0x1EE79,
-       0x1EE7D,
-       0x1EE7E,
-       0x1EE7F,
-       0x1EE80,
-       0x1EE8A,
-       0x1EE8B,
-       0x1EE9C,
-       0x1EEA1,
-       0x1EEA4,
-       0x1EEA5,
-       0x1EEAA,
-       0x1EEAB,
-       0x1EEBC,
-       0x1EEF0,
-       0x1EEF2,
-       0x1F000,
-       0x1F02C,
-       0x1F030,
-       0x1F094,
-       0x1F0A0,
-       0x1F0AF,
-       0x1F0B1,
-       0x1F0C0,
-       0x1F0C1,
-       0x1F0D0,
-       0x1F0D1,
-       0x1F0F6,
-       0x1F100,
-       0x1F10D,
-       0x1F110,
-       0x1F12F,
-       0x1F130,
-       0x1F16C,
-       0x1F170,
-       0x1F1AD,
-       0x1F1E6,
-       0x1F203,
-       0x1F210,
-       0x1F23C,
-       0x1F240,
-       0x1F249,
-       0x1F250,
-       0x1F252,
-       0x1F260,
-       0x1F266,
-       0x1F300,
-       0x1F6D5,
-       0x1F6E0,
-       0x1F6ED,
-       0x1F6F0,
-       0x1F6F9,
-       0x1F700,
-       0x1F774,
-       0x1F780,
-       0x1F7D5,
-       0x1F800,
-       0x1F80C,
-       0x1F810,
-       0x1F848,
-       0x1F850,
-       0x1F85A,
-       0x1F860,
-       0x1F888,
-       0x1F890,
-       0x1F8AE,
-       0x1F900,
-       0x1F90C,
-       0x1F910,
-       0x1F93F,
-       0x1F940,
-       0x1F94D,
-       0x1F950,
-       0x1F96C,
-       0x1F980,
-       0x1F998,
-       0x1F9C0,
-       0x1F9C1,
-       0x1F9D0,
-       0x1F9E7,
-       0x20000,
-       0x2A6D7,
-       0x2A700,
-       0x2B735,
-       0x2B740,
-       0x2B81E,
-       0x2B820,
-       0x2CEA2,
-       0x2CEB0,
-       0x2EBE1,
-       0x2F800,
-       0x2FA1E,
-       0xE0001,
-       0xE0002,
-       0xE0020,
-       0xE0080,
-       0xE0100,
-       0xE01F0,
-       0xF0000,
-       0xFFFFE,
-       0x100000,
-       0x10FFFE
-};
-
-#   if 'A' == 65 /* ASCII/Latin1 */
-
-static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
-       271,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x41,
-       0x5B,
-       0x61,
-       0x7B,
-       0xAA,
-       0xAB,
-       0xB5,
-       0xB6,
-       0xBA,
-       0xBB,
-       0xC0,
-       0xD7,
-       0xD8,
-       0xF7,
-       0xF8,
-       0x1BB,
-       0x1BC,
-       0x1C0,
-       0x1C4,
-       0x294,
-       0x295,
-       0x2B9,
-       0x2C0,
-       0x2C2,
-       0x2E0,
-       0x2E5,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37A,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3F6,
-       0x3F7,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1C80,
-       0x1C89,
-       0x1D00,
-       0x1DC0,
-       0x1E00,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
-       0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2071,
-       0x2072,
-       0x207F,
-       0x2080,
-       0x2090,
-       0x209D,
-       0x2102,
-       0x2103,
-       0x2107,
-       0x2108,
-       0x210A,
-       0x2114,
-       0x2115,
-       0x2116,
-       0x2119,
-       0x211E,
-       0x2124,
-       0x2125,
-       0x2126,
-       0x2127,
-       0x2128,
-       0x2129,
-       0x212A,
-       0x212E,
-       0x212F,
-       0x2135,
-       0x2139,
-       0x213A,
-       0x213C,
-       0x2140,
-       0x2145,
-       0x214A,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2CE5,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69E,
-       0xA722,
-       0xA788,
-       0xA78B,
-       0xA78F,
-       0xA790,
-       0xA7AF,
-       0xA7B0,
-       0xA7B8,
-       0xA7F8,
-       0xA7FB,
-       0xAB30,
-       0xAB5B,
-       0xAB5C,
-       0xAB66,
+       0xA7B1,
+       0xA7B2,
+       0xA7B3,
+       0xA7B4,
+       0xA7B5,
+       0xA7B6,
+       0xA7B7,
        0xAB70,
        0xABC0,
        0xFB00,
+       0xFB01,
+       0xFB02,
+       0xFB03,
+       0xFB04,
+       0xFB05,
        0xFB07,
        0xFB13,
+       0xFB14,
+       0xFB15,
+       0xFB16,
+       0xFB17,
        0xFB18,
        0xFF21,
        0xFF3B,
-       0xFF41,
-       0xFF5B,
        0x10400,
-       0x10450,
+       0x10428,
        0x104B0,
        0x104D4,
-       0x104D8,
-       0x104FC,
        0x10C80,
        0x10CB3,
-       0x10CC0,
-       0x10CF3,
        0x118A0,
-       0x118E0,
-       0x1D400,
-       0x1D455,
-       0x1D456,
-       0x1D49D,
-       0x1D49E,
-       0x1D4A0,
-       0x1D4A2,
-       0x1D4A3,
-       0x1D4A5,
-       0x1D4A7,
-       0x1D4A9,
-       0x1D4AD,
-       0x1D4AE,
-       0x1D4BA,
-       0x1D4BB,
-       0x1D4BC,
-       0x1D4BD,
-       0x1D4C4,
-       0x1D4C5,
-       0x1D506,
-       0x1D507,
-       0x1D50B,
-       0x1D50D,
-       0x1D515,
-       0x1D516,
-       0x1D51D,
-       0x1D51E,
-       0x1D53A,
-       0x1D53B,
-       0x1D53F,
-       0x1D540,
-       0x1D545,
-       0x1D546,
-       0x1D547,
-       0x1D54A,
-       0x1D551,
-       0x1D552,
-       0x1D6A6,
-       0x1D6A8,
-       0x1D6C1,
-       0x1D6C2,
-       0x1D6DB,
-       0x1D6DC,
-       0x1D6FB,
-       0x1D6FC,
-       0x1D715,
-       0x1D716,
-       0x1D735,
-       0x1D736,
-       0x1D74F,
-       0x1D750,
-       0x1D76F,
-       0x1D770,
-       0x1D789,
-       0x1D78A,
-       0x1D7A9,
-       0x1D7AA,
-       0x1D7C3,
-       0x1D7C4,
-       0x1D7CC,
+       0x118C0,
        0x1E900,
-       0x1E944,
-       0x1F130,
-       0x1F14A,
-       0x1F150,
-       0x1F16A,
-       0x1F170,
-       0x1F18A
+       0x1E922
 };
 
 #   endif      /* ASCII/Latin1 */
 
-#   if 'A' == 193 /* EBCDIC 1047 */ \
-     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
-     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 121
+#endif /* defined(PERL_IN_UTF8_C) */
 
-static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
-       297,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x42,
-       0x4A,
-       0x51,
-       0x5A,
-       0x62,
-       0x6A,
-       0x70,
-       0x79,
-       0x80,
-       0x8A,
-       0x8C,
-       0x8F,
-       0x91,
-       0x9D,
-       0x9E,
-       0x9F,
-       0xA0,
-       0xA1,
-       0xA2,
-       0xAA,
-       0xAC,
-       0xAD,
-       0xAE,
-       0xAF,
-       0xBA,
-       0xBB,
-       0xC1,
-       0xCA,
-       0xCB,
-       0xD0,
-       0xD1,
-       0xDA,
-       0xDB,
-       0xE0,
-       0xE2,
-       0xEA,
-       0xEB,
-       0xF0,
-       0xFB,
-       0xFF,
-       0x100,
-       0x1BB,
-       0x1BC,
-       0x1C0,
-       0x1C4,
-       0x294,
-       0x295,
-       0x2B9,
-       0x2C0,
-       0x2C2,
-       0x2E0,
-       0x2E5,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37A,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3F6,
-       0x3F7,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1C80,
-       0x1C89,
-       0x1D00,
-       0x1DC0,
-       0x1E00,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
-       0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2071,
-       0x2072,
-       0x207F,
-       0x2080,
-       0x2090,
-       0x209D,
-       0x2102,
-       0x2103,
-       0x2107,
-       0x2108,
-       0x210A,
-       0x2114,
-       0x2115,
-       0x2116,
-       0x2119,
-       0x211E,
-       0x2124,
-       0x2125,
-       0x2126,
-       0x2127,
-       0x2128,
-       0x2129,
-       0x212A,
-       0x212E,
-       0x212F,
-       0x2135,
-       0x2139,
-       0x213A,
-       0x213C,
-       0x2140,
-       0x2145,
-       0x214A,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2CE5,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69E,
-       0xA722,
-       0xA788,
-       0xA78B,
-       0xA78F,
-       0xA790,
-       0xA7AF,
-       0xA7B0,
-       0xA7B8,
-       0xA7F8,
-       0xA7FB,
-       0xAB30,
-       0xAB5B,
-       0xAB5C,
-       0xAB66,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0xFF41,
-       0xFF5B,
-       0x10400,
-       0x10450,
-       0x104B0,
-       0x104D4,
-       0x104D8,
-       0x104FC,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x118A0,
-       0x118E0,
-       0x1D400,
-       0x1D455,
-       0x1D456,
-       0x1D49D,
-       0x1D49E,
-       0x1D4A0,
-       0x1D4A2,
-       0x1D4A3,
-       0x1D4A5,
-       0x1D4A7,
-       0x1D4A9,
-       0x1D4AD,
-       0x1D4AE,
-       0x1D4BA,
-       0x1D4BB,
-       0x1D4BC,
-       0x1D4BD,
-       0x1D4C4,
-       0x1D4C5,
-       0x1D506,
-       0x1D507,
-       0x1D50B,
-       0x1D50D,
-       0x1D515,
-       0x1D516,
-       0x1D51D,
-       0x1D51E,
-       0x1D53A,
-       0x1D53B,
-       0x1D53F,
-       0x1D540,
-       0x1D545,
-       0x1D546,
-       0x1D547,
-       0x1D54A,
-       0x1D551,
-       0x1D552,
-       0x1D6A6,
-       0x1D6A8,
-       0x1D6C1,
-       0x1D6C2,
-       0x1D6DB,
-       0x1D6DC,
-       0x1D6FB,
-       0x1D6FC,
-       0x1D715,
-       0x1D716,
-       0x1D735,
-       0x1D736,
-       0x1D74F,
-       0x1D750,
-       0x1D76F,
-       0x1D770,
-       0x1D789,
-       0x1D78A,
-       0x1D7A9,
-       0x1D7AA,
-       0x1D7C3,
-       0x1D7C4,
-       0x1D7CC,
-       0x1E900,
-       0x1E944,
-       0x1F130,
-       0x1F14A,
-       0x1F150,
-       0x1F16A,
-       0x1F170,
-       0x1F18A
+#if defined(PERL_IN_UTF8_C)
+
+#   if 'A' == 65 /* ASCII/Latin1 */
+
+/* Negative enum values indicate the need to use an auxiliary table
+ * consisting of the list of enums this one expands to.  The absolute
+ * values of the negative enums are indices into a table of the auxiliary
+ * tables' addresses */
+typedef enum {
+       CF_0 = 0,
+       CF_use_AUX_TABLE_1 = -1,
+       CF_use_AUX_TABLE_2 = -2,
+       CF_use_AUX_TABLE_3 = -3,
+       CF_use_AUX_TABLE_4 = -4,
+       CF_use_AUX_TABLE_5 = -5,
+       CF_use_AUX_TABLE_6 = -6,
+       CF_use_AUX_TABLE_7 = -7,
+       CF_use_AUX_TABLE_8 = -8,
+       CF_use_AUX_TABLE_9 = -9,
+       CF_use_AUX_TABLE_10 = -10,
+       CF_use_AUX_TABLE_11 = -11,
+       CF_use_AUX_TABLE_12 = -12,
+       CF_use_AUX_TABLE_13 = -13,
+       CF_use_AUX_TABLE_14 = -14,
+       CF_use_AUX_TABLE_15 = -15,
+       CF_use_AUX_TABLE_16 = -16,
+       CF_use_AUX_TABLE_17 = -17,
+       CF_use_AUX_TABLE_18 = -18,
+       CF_use_AUX_TABLE_19 = -19,
+       CF_use_AUX_TABLE_20 = -20,
+       CF_use_AUX_TABLE_21 = -21,
+       CF_use_AUX_TABLE_22 = -22,
+       CF_use_AUX_TABLE_23 = -23,
+       CF_use_AUX_TABLE_24 = -24,
+       CF_use_AUX_TABLE_25 = -25,
+       CF_use_AUX_TABLE_26 = -26,
+       CF_use_AUX_TABLE_27 = -27,
+       CF_use_AUX_TABLE_28 = -28,
+       CF_use_AUX_TABLE_29 = -29,
+       CF_use_AUX_TABLE_30 = -30,
+       CF_use_AUX_TABLE_31 = -31,
+       CF_use_AUX_TABLE_32 = -32,
+       CF_use_AUX_TABLE_33 = -33,
+       CF_use_AUX_TABLE_34 = -34,
+       CF_use_AUX_TABLE_35 = -35,
+       CF_use_AUX_TABLE_36 = -36,
+       CF_use_AUX_TABLE_37 = -37,
+       CF_use_AUX_TABLE_38 = -38,
+       CF_use_AUX_TABLE_39 = -39,
+       CF_use_AUX_TABLE_40 = -40,
+       CF_use_AUX_TABLE_41 = -41,
+       CF_use_AUX_TABLE_42 = -42,
+       CF_use_AUX_TABLE_43 = -43,
+       CF_use_AUX_TABLE_44 = -44,
+       CF_use_AUX_TABLE_45 = -45,
+       CF_use_AUX_TABLE_46 = -46,
+       CF_use_AUX_TABLE_47 = -47,
+       CF_use_AUX_TABLE_48 = -48,
+       CF_use_AUX_TABLE_49 = -49,
+       CF_use_AUX_TABLE_50 = -50,
+       CF_use_AUX_TABLE_51 = -51,
+       CF_use_AUX_TABLE_52 = -52,
+       CF_use_AUX_TABLE_53 = -53,
+       CF_use_AUX_TABLE_54 = -54,
+       CF_use_AUX_TABLE_55 = -55,
+       CF_use_AUX_TABLE_56 = -56,
+       CF_use_AUX_TABLE_57 = -57,
+       CF_use_AUX_TABLE_58 = -58,
+       CF_use_AUX_TABLE_59 = -59,
+       CF_use_AUX_TABLE_60 = -60,
+       CF_use_AUX_TABLE_61 = -61,
+       CF_use_AUX_TABLE_62 = -62,
+       CF_use_AUX_TABLE_63 = -63,
+       CF_use_AUX_TABLE_64 = -64,
+       CF_use_AUX_TABLE_65 = -65,
+       CF_use_AUX_TABLE_66 = -66,
+       CF_use_AUX_TABLE_67 = -67,
+       CF_use_AUX_TABLE_68 = -68,
+       CF_use_AUX_TABLE_69 = -69,
+       CF_use_AUX_TABLE_70 = -70,
+       CF_use_AUX_TABLE_71 = -71,
+       CF_use_AUX_TABLE_72 = -72,
+       CF_use_AUX_TABLE_73 = -73
+} CF_enum;
+
+#   endif      /* ASCII/Latin1 */
+
+#   if 'A' == 65 /* ASCII/Latin1 */
+
+#define HAS_CF_AUX_TABLES
+
+static const unsigned int CF_AUX_TABLE_1[] = {
+       0x73,
+       0x73
 };
 
-#   endif      /* EBCDIC 1047 */
+static const unsigned int CF_AUX_TABLE_2[] = {
+       0x69,
+       0x307
+};
 
-#   if 'A' == 193 /* EBCDIC 037 */ \
-     && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
-     && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
-     && '$' == 91 && '@' == 124 && '`' == 121
+static const unsigned int CF_AUX_TABLE_3[] = {
+       0x2BC,
+       0x6E
+};
 
-static const UV Cased_invlist[] = { /* for EBCDIC 037 */
-       293,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x42,
-       0x4A,
-       0x51,
-       0x5A,
-       0x62,
+static const unsigned int CF_AUX_TABLE_4[] = {
        0x6A,
-       0x70,
+       0x30C
+};
+
+static const unsigned int CF_AUX_TABLE_5[] = {
+       0x3B9,
+       0x308,
+       0x301
+};
+
+static const unsigned int CF_AUX_TABLE_6[] = {
+       0x3C5,
+       0x308,
+       0x301
+};
+
+static const unsigned int CF_AUX_TABLE_7[] = {
+       0x565,
+       0x582
+};
+
+static const unsigned int CF_AUX_TABLE_8[] = {
+       0x68,
+       0x331
+};
+
+static const unsigned int CF_AUX_TABLE_9[] = {
+       0x74,
+       0x308
+};
+
+static const unsigned int CF_AUX_TABLE_10[] = {
+       0x77,
+       0x30A
+};
+
+static const unsigned int CF_AUX_TABLE_11[] = {
        0x79,
-       0x80,
-       0x8A,
-       0x8C,
-       0x8F,
-       0x91,
-       0x9D,
-       0x9E,
-       0x9F,
-       0xA0,
-       0xA1,
-       0xA2,
-       0xAA,
-       0xAC,
-       0xAF,
-       0xC1,
-       0xCA,
-       0xCB,
-       0xD0,
-       0xD1,
-       0xDA,
-       0xDB,
-       0xE0,
-       0xE2,
-       0xEA,
-       0xEB,
-       0xF0,
-       0xFB,
-       0xFF,
-       0x100,
-       0x1BB,
-       0x1BC,
-       0x1C0,
-       0x1C4,
-       0x294,
-       0x295,
-       0x2B9,
-       0x2C0,
-       0x2C2,
-       0x2E0,
-       0x2E5,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37A,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3F6,
-       0x3F7,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1C80,
-       0x1C89,
-       0x1D00,
-       0x1DC0,
-       0x1E00,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
+       0x30A
+};
+
+static const unsigned int CF_AUX_TABLE_12[] = {
+       0x61,
+       0x2BE
+};
+
+static const unsigned int CF_AUX_TABLE_13[] = {
+       0x3C5,
+       0x313
+};
+
+static const unsigned int CF_AUX_TABLE_14[] = {
+       0x3C5,
+       0x313,
+       0x300
+};
+
+static const unsigned int CF_AUX_TABLE_15[] = {
+       0x3C5,
+       0x313,
+       0x301
+};
+
+static const unsigned int CF_AUX_TABLE_16[] = {
+       0x3C5,
+       0x313,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_17[] = {
+       0x1F00,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_18[] = {
+       0x1F01,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_19[] = {
+       0x1F02,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_20[] = {
+       0x1F03,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_21[] = {
+       0x1F04,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_22[] = {
+       0x1F05,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_23[] = {
+       0x1F06,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_24[] = {
+       0x1F07,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_25[] = {
        0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2071,
-       0x2072,
-       0x207F,
-       0x2080,
-       0x2090,
-       0x209D,
-       0x2102,
-       0x2103,
-       0x2107,
-       0x2108,
-       0x210A,
-       0x2114,
-       0x2115,
-       0x2116,
-       0x2119,
-       0x211E,
-       0x2124,
-       0x2125,
-       0x2126,
-       0x2127,
-       0x2128,
-       0x2129,
-       0x212A,
-       0x212E,
-       0x212F,
-       0x2135,
-       0x2139,
-       0x213A,
-       0x213C,
-       0x2140,
-       0x2145,
-       0x214A,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2CE5,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69E,
-       0xA722,
-       0xA788,
-       0xA78B,
-       0xA78F,
-       0xA790,
-       0xA7AF,
-       0xA7B0,
-       0xA7B8,
-       0xA7F8,
-       0xA7FB,
-       0xAB30,
-       0xAB5B,
-       0xAB5C,
-       0xAB66,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0xFF41,
-       0xFF5B,
-       0x10400,
-       0x10450,
-       0x104B0,
-       0x104D4,
-       0x104D8,
-       0x104FC,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x118A0,
-       0x118E0,
-       0x1D400,
-       0x1D455,
-       0x1D456,
-       0x1D49D,
-       0x1D49E,
-       0x1D4A0,
-       0x1D4A2,
-       0x1D4A3,
-       0x1D4A5,
-       0x1D4A7,
-       0x1D4A9,
-       0x1D4AD,
-       0x1D4AE,
-       0x1D4BA,
-       0x1D4BB,
-       0x1D4BC,
-       0x1D4BD,
-       0x1D4C4,
-       0x1D4C5,
-       0x1D506,
-       0x1D507,
-       0x1D50B,
-       0x1D50D,
-       0x1D515,
-       0x1D516,
-       0x1D51D,
-       0x1D51E,
-       0x1D53A,
-       0x1D53B,
-       0x1D53F,
-       0x1D540,
-       0x1D545,
-       0x1D546,
-       0x1D547,
-       0x1D54A,
-       0x1D551,
-       0x1D552,
-       0x1D6A6,
-       0x1D6A8,
-       0x1D6C1,
-       0x1D6C2,
-       0x1D6DB,
-       0x1D6DC,
-       0x1D6FB,
-       0x1D6FC,
-       0x1D715,
-       0x1D716,
-       0x1D735,
-       0x1D736,
-       0x1D74F,
-       0x1D750,
-       0x1D76F,
-       0x1D770,
-       0x1D789,
-       0x1D78A,
-       0x1D7A9,
-       0x1D7AA,
-       0x1D7C3,
-       0x1D7C4,
-       0x1D7CC,
-       0x1E900,
-       0x1E944,
-       0x1F130,
-       0x1F14A,
-       0x1F150,
-       0x1F16A,
-       0x1F170,
-       0x1F18A
+       0x3B9
 };
 
-#   endif      /* EBCDIC 037 */
+static const unsigned int CF_AUX_TABLE_26[] = {
+       0x1F21,
+       0x3B9
+};
 
-#   if 'A' == 65 /* ASCII/Latin1 */
+static const unsigned int CF_AUX_TABLE_27[] = {
+       0x1F22,
+       0x3B9
+};
 
-static const UV Case_Folding_invlist[] = { /* for ASCII/Latin1 */
-       1373,   /* Number of elements */
-       148565664, /* Version and data structure type */
-       0,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x41,
-       0x5B,
-       0xB5,
-       0xB6,
-       0xC0,
-       0xD7,
-       0xD8,
-       0xDF,
-       0xE0,
-       0x100,
-       0x101,
-       0x102,
-       0x103,
-       0x104,
-       0x105,
-       0x106,
-       0x107,
-       0x108,
-       0x109,
-       0x10A,
-       0x10B,
-       0x10C,
-       0x10D,
-       0x10E,
-       0x10F,
-       0x110,
-       0x111,
-       0x112,
-       0x113,
-       0x114,
-       0x115,
-       0x116,
-       0x117,
-       0x118,
-       0x119,
-       0x11A,
-       0x11B,
-       0x11C,
-       0x11D,
-       0x11E,
-       0x11F,
-       0x120,
-       0x121,
-       0x122,
-       0x123,
-       0x124,
-       0x125,
-       0x126,
-       0x127,
-       0x128,
-       0x129,
-       0x12A,
-       0x12B,
-       0x12C,
-       0x12D,
-       0x12E,
-       0x12F,
-       0x130,
-       0x131,
-       0x132,
-       0x133,
-       0x134,
-       0x135,
-       0x136,
-       0x137,
-       0x139,
-       0x13A,
-       0x13B,
-       0x13C,
-       0x13D,
-       0x13E,
-       0x13F,
-       0x140,
-       0x141,
-       0x142,
-       0x143,
-       0x144,
-       0x145,
-       0x146,
-       0x147,
-       0x148,
-       0x149,
-       0x14A,
-       0x14B,
-       0x14C,
-       0x14D,
-       0x14E,
-       0x14F,
-       0x150,
-       0x151,
-       0x152,
-       0x153,
-       0x154,
-       0x155,
-       0x156,
-       0x157,
-       0x158,
-       0x159,
-       0x15A,
-       0x15B,
-       0x15C,
-       0x15D,
-       0x15E,
-       0x15F,
-       0x160,
-       0x161,
-       0x162,
-       0x163,
-       0x164,
-       0x165,
-       0x166,
-       0x167,
-       0x168,
-       0x169,
-       0x16A,
-       0x16B,
-       0x16C,
-       0x16D,
-       0x16E,
-       0x16F,
-       0x170,
-       0x171,
-       0x172,
-       0x173,
-       0x174,
-       0x175,
-       0x176,
-       0x177,
-       0x178,
-       0x179,
-       0x17A,
-       0x17B,
-       0x17C,
-       0x17D,
-       0x17E,
-       0x17F,
-       0x180,
-       0x181,
-       0x182,
-       0x183,
-       0x184,
-       0x185,
-       0x186,
-       0x187,
-       0x188,
-       0x189,
-       0x18B,
-       0x18C,
-       0x18E,
-       0x18F,
-       0x190,
-       0x191,
-       0x192,
-       0x193,
-       0x194,
-       0x195,
-       0x196,
-       0x197,
-       0x198,
-       0x199,
-       0x19C,
-       0x19D,
-       0x19E,
-       0x19F,
-       0x1A0,
-       0x1A1,
-       0x1A2,
-       0x1A3,
-       0x1A4,
-       0x1A5,
-       0x1A6,
-       0x1A7,
-       0x1A8,
-       0x1A9,
-       0x1AA,
-       0x1AC,
-       0x1AD,
-       0x1AE,
-       0x1AF,
-       0x1B0,
-       0x1B1,
-       0x1B3,
-       0x1B4,
-       0x1B5,
-       0x1B6,
-       0x1B7,
-       0x1B8,
-       0x1B9,
-       0x1BC,
-       0x1BD,
-       0x1C4,
-       0x1C5,
-       0x1C6,
-       0x1C7,
-       0x1C8,
-       0x1C9,
-       0x1CA,
-       0x1CB,
-       0x1CC,
-       0x1CD,
-       0x1CE,
-       0x1CF,
-       0x1D0,
-       0x1D1,
-       0x1D2,
-       0x1D3,
-       0x1D4,
-       0x1D5,
-       0x1D6,
-       0x1D7,
-       0x1D8,
-       0x1D9,
-       0x1DA,
-       0x1DB,
-       0x1DC,
-       0x1DE,
-       0x1DF,
-       0x1E0,
-       0x1E1,
-       0x1E2,
-       0x1E3,
-       0x1E4,
-       0x1E5,
-       0x1E6,
-       0x1E7,
-       0x1E8,
-       0x1E9,
-       0x1EA,
-       0x1EB,
-       0x1EC,
-       0x1ED,
-       0x1EE,
-       0x1EF,
-       0x1F0,
-       0x1F1,
-       0x1F2,
-       0x1F3,
-       0x1F4,
-       0x1F5,
-       0x1F6,
-       0x1F7,
-       0x1F8,
-       0x1F9,
-       0x1FA,
-       0x1FB,
-       0x1FC,
-       0x1FD,
-       0x1FE,
-       0x1FF,
-       0x200,
-       0x201,
-       0x202,
-       0x203,
-       0x204,
-       0x205,
-       0x206,
-       0x207,
-       0x208,
-       0x209,
-       0x20A,
-       0x20B,
-       0x20C,
-       0x20D,
-       0x20E,
-       0x20F,
-       0x210,
-       0x211,
-       0x212,
-       0x213,
-       0x214,
-       0x215,
-       0x216,
-       0x217,
-       0x218,
-       0x219,
-       0x21A,
-       0x21B,
-       0x21C,
-       0x21D,
-       0x21E,
-       0x21F,
-       0x220,
-       0x221,
-       0x222,
-       0x223,
-       0x224,
-       0x225,
-       0x226,
-       0x227,
-       0x228,
-       0x229,
-       0x22A,
-       0x22B,
-       0x22C,
-       0x22D,
-       0x22E,
+static const unsigned int CF_AUX_TABLE_28[] = {
+       0x1F23,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_29[] = {
+       0x1F24,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_30[] = {
+       0x1F25,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_31[] = {
+       0x1F26,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_32[] = {
+       0x1F27,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_33[] = {
+       0x1F60,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_34[] = {
+       0x1F61,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_35[] = {
+       0x1F62,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_36[] = {
+       0x1F63,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_37[] = {
+       0x1F64,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_38[] = {
+       0x1F65,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_39[] = {
+       0x1F66,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_40[] = {
+       0x1F67,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_41[] = {
+       0x1F70,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_42[] = {
+       0x3B1,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_43[] = {
+       0x3AC,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_44[] = {
+       0x3B1,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_45[] = {
+       0x3B1,
+       0x342,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_46[] = {
+       0x1F74,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_47[] = {
+       0x3B7,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_48[] = {
+       0x3AE,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_49[] = {
+       0x3B7,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_50[] = {
+       0x3B7,
+       0x342,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_51[] = {
+       0x3B9,
+       0x308,
+       0x300
+};
+
+static const unsigned int CF_AUX_TABLE_52[] = {
+       0x3B9,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_53[] = {
+       0x3B9,
+       0x308,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_54[] = {
+       0x3C5,
+       0x308,
+       0x300
+};
+
+static const unsigned int CF_AUX_TABLE_55[] = {
+       0x3C1,
+       0x313
+};
+
+static const unsigned int CF_AUX_TABLE_56[] = {
+       0x3C5,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_57[] = {
+       0x3C5,
+       0x308,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_58[] = {
+       0x1F7C,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_59[] = {
+       0x3C9,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_60[] = {
+       0x3CE,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_61[] = {
+       0x3C9,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_62[] = {
+       0x3C9,
+       0x342,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_63[] = {
+       0x66,
+       0x66
+};
+
+static const unsigned int CF_AUX_TABLE_64[] = {
+       0x66,
+       0x69
+};
+
+static const unsigned int CF_AUX_TABLE_65[] = {
+       0x66,
+       0x6C
+};
+
+static const unsigned int CF_AUX_TABLE_66[] = {
+       0x66,
+       0x66,
+       0x69
+};
+
+static const unsigned int CF_AUX_TABLE_67[] = {
+       0x66,
+       0x66,
+       0x6C
+};
+
+static const unsigned int CF_AUX_TABLE_68[] = {
+       0x73,
+       0x74
+};
+
+static const unsigned int CF_AUX_TABLE_69[] = {
+       0x574,
+       0x576
+};
+
+static const unsigned int CF_AUX_TABLE_70[] = {
+       0x574,
+       0x565
+};
+
+static const unsigned int CF_AUX_TABLE_71[] = {
+       0x574,
+       0x56B
+};
+
+static const unsigned int CF_AUX_TABLE_72[] = {
+       0x57E,
+       0x576
+};
+
+static const unsigned int CF_AUX_TABLE_73[] = {
+       0x574,
+       0x56D
+};
+
+static const unsigned int * const CF_AUX_TABLE_ptrs[] = {
+       NULL,   /* Placeholder */
+       CF_AUX_TABLE_1,
+       CF_AUX_TABLE_2,
+       CF_AUX_TABLE_3,
+       CF_AUX_TABLE_4,
+       CF_AUX_TABLE_5,
+       CF_AUX_TABLE_6,
+       CF_AUX_TABLE_7,
+       CF_AUX_TABLE_8,
+       CF_AUX_TABLE_9,
+       CF_AUX_TABLE_10,
+       CF_AUX_TABLE_11,
+       CF_AUX_TABLE_12,
+       CF_AUX_TABLE_13,
+       CF_AUX_TABLE_14,
+       CF_AUX_TABLE_15,
+       CF_AUX_TABLE_16,
+       CF_AUX_TABLE_17,
+       CF_AUX_TABLE_18,
+       CF_AUX_TABLE_19,
+       CF_AUX_TABLE_20,
+       CF_AUX_TABLE_21,
+       CF_AUX_TABLE_22,
+       CF_AUX_TABLE_23,
+       CF_AUX_TABLE_24,
+       CF_AUX_TABLE_25,
+       CF_AUX_TABLE_26,
+       CF_AUX_TABLE_27,
+       CF_AUX_TABLE_28,
+       CF_AUX_TABLE_29,
+       CF_AUX_TABLE_30,
+       CF_AUX_TABLE_31,
+       CF_AUX_TABLE_32,
+       CF_AUX_TABLE_33,
+       CF_AUX_TABLE_34,
+       CF_AUX_TABLE_35,
+       CF_AUX_TABLE_36,
+       CF_AUX_TABLE_37,
+       CF_AUX_TABLE_38,
+       CF_AUX_TABLE_39,
+       CF_AUX_TABLE_40,
+       CF_AUX_TABLE_41,
+       CF_AUX_TABLE_42,
+       CF_AUX_TABLE_43,
+       CF_AUX_TABLE_44,
+       CF_AUX_TABLE_45,
+       CF_AUX_TABLE_46,
+       CF_AUX_TABLE_47,
+       CF_AUX_TABLE_48,
+       CF_AUX_TABLE_49,
+       CF_AUX_TABLE_50,
+       CF_AUX_TABLE_51,
+       CF_AUX_TABLE_52,
+       CF_AUX_TABLE_53,
+       CF_AUX_TABLE_54,
+       CF_AUX_TABLE_55,
+       CF_AUX_TABLE_56,
+       CF_AUX_TABLE_57,
+       CF_AUX_TABLE_58,
+       CF_AUX_TABLE_59,
+       CF_AUX_TABLE_60,
+       CF_AUX_TABLE_61,
+       CF_AUX_TABLE_62,
+       CF_AUX_TABLE_63,
+       CF_AUX_TABLE_64,
+       CF_AUX_TABLE_65,
+       CF_AUX_TABLE_66,
+       CF_AUX_TABLE_67,
+       CF_AUX_TABLE_68,
+       CF_AUX_TABLE_69,
+       CF_AUX_TABLE_70,
+       CF_AUX_TABLE_71,
+       CF_AUX_TABLE_72,
+       CF_AUX_TABLE_73
+};
+
+/* Parallel table to the above, giving the number of elements in each table
+ * pointed to */
+static const U8 CF_AUX_TABLE_lengths[] = {
+       0,      /* Placeholder */
+       2       /* CF_AUX_TABLE_1 */,
+       2       /* CF_AUX_TABLE_2 */,
+       2       /* CF_AUX_TABLE_3 */,
+       2       /* CF_AUX_TABLE_4 */,
+       3       /* CF_AUX_TABLE_5 */,
+       3       /* CF_AUX_TABLE_6 */,
+       2       /* CF_AUX_TABLE_7 */,
+       2       /* CF_AUX_TABLE_8 */,
+       2       /* CF_AUX_TABLE_9 */,
+       2       /* CF_AUX_TABLE_10 */,
+       2       /* CF_AUX_TABLE_11 */,
+       2       /* CF_AUX_TABLE_12 */,
+       2       /* CF_AUX_TABLE_13 */,
+       3       /* CF_AUX_TABLE_14 */,
+       3       /* CF_AUX_TABLE_15 */,
+       3       /* CF_AUX_TABLE_16 */,
+       2       /* CF_AUX_TABLE_17 */,
+       2       /* CF_AUX_TABLE_18 */,
+       2       /* CF_AUX_TABLE_19 */,
+       2       /* CF_AUX_TABLE_20 */,
+       2       /* CF_AUX_TABLE_21 */,
+       2       /* CF_AUX_TABLE_22 */,
+       2       /* CF_AUX_TABLE_23 */,
+       2       /* CF_AUX_TABLE_24 */,
+       2       /* CF_AUX_TABLE_25 */,
+       2       /* CF_AUX_TABLE_26 */,
+       2       /* CF_AUX_TABLE_27 */,
+       2       /* CF_AUX_TABLE_28 */,
+       2       /* CF_AUX_TABLE_29 */,
+       2       /* CF_AUX_TABLE_30 */,
+       2       /* CF_AUX_TABLE_31 */,
+       2       /* CF_AUX_TABLE_32 */,
+       2       /* CF_AUX_TABLE_33 */,
+       2       /* CF_AUX_TABLE_34 */,
+       2       /* CF_AUX_TABLE_35 */,
+       2       /* CF_AUX_TABLE_36 */,
+       2       /* CF_AUX_TABLE_37 */,
+       2       /* CF_AUX_TABLE_38 */,
+       2       /* CF_AUX_TABLE_39 */,
+       2       /* CF_AUX_TABLE_40 */,
+       2       /* CF_AUX_TABLE_41 */,
+       2       /* CF_AUX_TABLE_42 */,
+       2       /* CF_AUX_TABLE_43 */,
+       2       /* CF_AUX_TABLE_44 */,
+       3       /* CF_AUX_TABLE_45 */,
+       2       /* CF_AUX_TABLE_46 */,
+       2       /* CF_AUX_TABLE_47 */,
+       2       /* CF_AUX_TABLE_48 */,
+       2       /* CF_AUX_TABLE_49 */,
+       3       /* CF_AUX_TABLE_50 */,
+       3       /* CF_AUX_TABLE_51 */,
+       2       /* CF_AUX_TABLE_52 */,
+       3       /* CF_AUX_TABLE_53 */,
+       3       /* CF_AUX_TABLE_54 */,
+       2       /* CF_AUX_TABLE_55 */,
+       2       /* CF_AUX_TABLE_56 */,
+       3       /* CF_AUX_TABLE_57 */,
+       2       /* CF_AUX_TABLE_58 */,
+       2       /* CF_AUX_TABLE_59 */,
+       2       /* CF_AUX_TABLE_60 */,
+       2       /* CF_AUX_TABLE_61 */,
+       3       /* CF_AUX_TABLE_62 */,
+       2       /* CF_AUX_TABLE_63 */,
+       2       /* CF_AUX_TABLE_64 */,
+       2       /* CF_AUX_TABLE_65 */,
+       3       /* CF_AUX_TABLE_66 */,
+       3       /* CF_AUX_TABLE_67 */,
+       2       /* CF_AUX_TABLE_68 */,
+       2       /* CF_AUX_TABLE_69 */,
+       2       /* CF_AUX_TABLE_70 */,
+       2       /* CF_AUX_TABLE_71 */,
+       2       /* CF_AUX_TABLE_72 */,
+       2       /* CF_AUX_TABLE_73 */
+};
+
+static const int Case_Folding_invmap[] = { /* for ASCII/Latin1 */
+       0,
+       0x61,
+       0,
+       0x3BC,
+       0,
+       0xE0,
+       0,
+       0xF8,
+       CF_use_AUX_TABLE_1,
+       0,
+       0x101,
+       0,
+       0x103,
+       0,
+       0x105,
+       0,
+       0x107,
+       0,
+       0x109,
+       0,
+       0x10B,
+       0,
+       0x10D,
+       0,
+       0x10F,
+       0,
+       0x111,
+       0,
+       0x113,
+       0,
+       0x115,
+       0,
+       0x117,
+       0,
+       0x119,
+       0,
+       0x11B,
+       0,
+       0x11D,
+       0,
+       0x11F,
+       0,
+       0x121,
+       0,
+       0x123,
+       0,
+       0x125,
+       0,
+       0x127,
+       0,
+       0x129,
+       0,
+       0x12B,
+       0,
+       0x12D,
+       0,
+       0x12F,
+       0,
+       CF_use_AUX_TABLE_2,
+       0,
+       0x133,
+       0,
+       0x135,
+       0,
+       0x137,
+       0,
+       0x13A,
+       0,
+       0x13C,
+       0,
+       0x13E,
+       0,
+       0x140,
+       0,
+       0x142,
+       0,
+       0x144,
+       0,
+       0x146,
+       0,
+       0x148,
+       0,
+       CF_use_AUX_TABLE_3,
+       0x14B,
+       0,
+       0x14D,
+       0,
+       0x14F,
+       0,
+       0x151,
+       0,
+       0x153,
+       0,
+       0x155,
+       0,
+       0x157,
+       0,
+       0x159,
+       0,
+       0x15B,
+       0,
+       0x15D,
+       0,
+       0x15F,
+       0,
+       0x161,
+       0,
+       0x163,
+       0,
+       0x165,
+       0,
+       0x167,
+       0,
+       0x169,
+       0,
+       0x16B,
+       0,
+       0x16D,
+       0,
+       0x16F,
+       0,
+       0x171,
+       0,
+       0x173,
+       0,
+       0x175,
+       0,
+       0x177,
+       0,
+       0xFF,
+       0x17A,
+       0,
+       0x17C,
+       0,
+       0x17E,
+       0,
+       0x73,
+       0,
+       0x253,
+       0x183,
+       0,
+       0x185,
+       0,
+       0x254,
+       0x188,
+       0,
+       0x256,
+       0x18C,
+       0,
+       0x1DD,
+       0x259,
+       0x25B,
+       0x192,
+       0,
+       0x260,
+       0x263,
+       0,
+       0x269,
+       0x268,
+       0x199,
+       0,
+       0x26F,
+       0x272,
+       0,
+       0x275,
+       0x1A1,
+       0,
+       0x1A3,
+       0,
+       0x1A5,
+       0,
+       0x280,
+       0x1A8,
+       0,
+       0x283,
+       0,
+       0x1AD,
+       0,
+       0x288,
+       0x1B0,
+       0,
+       0x28A,
+       0x1B4,
+       0,
+       0x1B6,
+       0,
+       0x292,
+       0x1B9,
+       0,
+       0x1BD,
+       0,
+       0x1C6,
+       0x1C6,
+       0,
+       0x1C9,
+       0x1C9,
+       0,
+       0x1CC,
+       0x1CC,
+       0,
+       0x1CE,
+       0,
+       0x1D0,
+       0,
+       0x1D2,
+       0,
+       0x1D4,
+       0,
+       0x1D6,
+       0,
+       0x1D8,
+       0,
+       0x1DA,
+       0,
+       0x1DC,
+       0,
+       0x1DF,
+       0,
+       0x1E1,
+       0,
+       0x1E3,
+       0,
+       0x1E5,
+       0,
+       0x1E7,
+       0,
+       0x1E9,
+       0,
+       0x1EB,
+       0,
+       0x1ED,
+       0,
+       0x1EF,
+       0,
+       CF_use_AUX_TABLE_4,
+       0x1F3,
+       0x1F3,
+       0,
+       0x1F5,
+       0,
+       0x195,
+       0x1BF,
+       0x1F9,
+       0,
+       0x1FB,
+       0,
+       0x1FD,
+       0,
+       0x1FF,
+       0,
+       0x201,
+       0,
+       0x203,
+       0,
+       0x205,
+       0,
+       0x207,
+       0,
+       0x209,
+       0,
+       0x20B,
+       0,
+       0x20D,
+       0,
+       0x20F,
+       0,
+       0x211,
+       0,
+       0x213,
+       0,
+       0x215,
+       0,
+       0x217,
+       0,
+       0x219,
+       0,
+       0x21B,
+       0,
+       0x21D,
+       0,
+       0x21F,
+       0,
+       0x19E,
+       0,
+       0x223,
+       0,
+       0x225,
+       0,
+       0x227,
+       0,
+       0x229,
+       0,
+       0x22B,
+       0,
+       0x22D,
+       0,
        0x22F,
-       0x230,
+       0,
        0x231,
-       0x232,
+       0,
        0x233,
-       0x23A,
-       0x23B,
+       0,
+       0x2C65,
        0x23C,
-       0x23D,
-       0x23E,
-       0x23F,
-       0x241,
+       0,
+       0x19A,
+       0x2C66,
+       0,
        0x242,
-       0x243,
-       0x244,
-       0x245,
-       0x246,
+       0,
+       0x180,
+       0x289,
+       0x28C,
        0x247,
-       0x248,
+       0,
        0x249,
-       0x24A,
+       0,
        0x24B,
-       0x24C,
+       0,
        0x24D,
-       0x24E,
+       0,
        0x24F,
-       0x345,
-       0x346,
-       0x370,
+       0,
+       0x3B9,
+       0,
        0x371,
-       0x372,
+       0,
        0x373,
-       0x376,
+       0,
        0x377,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x390,
-       0x391,
-       0x3A2,
-       0x3A3,
+       0,
+       0x3F3,
+       0,
        0x3AC,
-       0x3B0,
+       0,
+       0x3AD,
+       0,
+       0x3CC,
+       0,
+       0x3CD,
+       CF_use_AUX_TABLE_5,
        0x3B1,
-       0x3C2,
+       0,
        0x3C3,
-       0x3CF,
-       0x3D0,
-       0x3D1,
-       0x3D2,
-       0x3D5,
-       0x3D6,
+       0,
+       CF_use_AUX_TABLE_6,
+       0,
+       0x3C3,
+       0,
        0x3D7,
-       0x3D8,
+       0x3B2,
+       0x3B8,
+       0,
+       0x3C6,
+       0x3C0,
+       0,
        0x3D9,
-       0x3DA,
+       0,
        0x3DB,
-       0x3DC,
+       0,
        0x3DD,
-       0x3DE,
+       0,
        0x3DF,
-       0x3E0,
+       0,
        0x3E1,
-       0x3E2,
+       0,
        0x3E3,
-       0x3E4,
+       0,
        0x3E5,
-       0x3E6,
+       0,
        0x3E7,
-       0x3E8,
+       0,
        0x3E9,
-       0x3EA,
+       0,
        0x3EB,
-       0x3EC,
+       0,
        0x3ED,
-       0x3EE,
+       0,
        0x3EF,
-       0x3F0,
-       0x3F1,
-       0x3F2,
-       0x3F4,
-       0x3F5,
-       0x3F6,
-       0x3F7,
+       0,
+       0x3BA,
+       0x3C1,
+       0,
+       0x3B8,
+       0x3B5,
+       0,
        0x3F8,
-       0x3F9,
-       0x3FA,
+       0,
+       0x3F2,
        0x3FB,
-       0x3FD,
-       0x400,
-       0x410,
+       0,
+       0x37B,
+       0x450,
        0x430,
-       0x460,
+       0,
        0x461,
-       0x462,
+       0,
        0x463,
-       0x464,
+       0,
        0x465,
-       0x466,
+       0,
        0x467,
-       0x468,
+       0,
        0x469,
-       0x46A,
+       0,
        0x46B,
-       0x46C,
+       0,
        0x46D,
-       0x46E,
+       0,
        0x46F,
-       0x470,
+       0,
        0x471,
-       0x472,
+       0,
        0x473,
-       0x474,
+       0,
        0x475,
-       0x476,
+       0,
        0x477,
-       0x478,
+       0,
        0x479,
-       0x47A,
+       0,
        0x47B,
-       0x47C,
+       0,
        0x47D,
-       0x47E,
+       0,
        0x47F,
-       0x480,
+       0,
        0x481,
-       0x48A,
+       0,
        0x48B,
-       0x48C,
+       0,
        0x48D,
-       0x48E,
+       0,
        0x48F,
-       0x490,
+       0,
        0x491,
-       0x492,
+       0,
        0x493,
-       0x494,
+       0,
        0x495,
-       0x496,
+       0,
        0x497,
-       0x498,
+       0,
        0x499,
-       0x49A,
+       0,
        0x49B,
-       0x49C,
+       0,
        0x49D,
-       0x49E,
+       0,
        0x49F,
-       0x4A0,
+       0,
        0x4A1,
-       0x4A2,
+       0,
        0x4A3,
-       0x4A4,
+       0,
        0x4A5,
-       0x4A6,
+       0,
        0x4A7,
-       0x4A8,
+       0,
        0x4A9,
-       0x4AA,
+       0,
        0x4AB,
-       0x4AC,
+       0,
        0x4AD,
-       0x4AE,
+       0,
        0x4AF,
-       0x4B0,
+       0,
        0x4B1,
-       0x4B2,
+       0,
        0x4B3,
-       0x4B4,
+       0,
        0x4B5,
-       0x4B6,
+       0,
        0x4B7,
-       0x4B8,
+       0,
        0x4B9,
-       0x4BA,
+       0,
        0x4BB,
-       0x4BC,
+       0,
        0x4BD,
-       0x4BE,
+       0,
        0x4BF,
-       0x4C0,
-       0x4C1,
+       0,
+       0x4CF,
        0x4C2,
-       0x4C3,
+       0,
        0x4C4,
-       0x4C5,
+       0,
        0x4C6,
-       0x4C7,
+       0,
        0x4C8,
-       0x4C9,
+       0,
        0x4CA,
-       0x4CB,
+       0,
        0x4CC,
-       0x4CD,
+       0,
        0x4CE,
-       0x4D0,
+       0,
        0x4D1,
-       0x4D2,
+       0,
        0x4D3,
-       0x4D4,
+       0,
        0x4D5,
-       0x4D6,
+       0,
        0x4D7,
-       0x4D8,
+       0,
        0x4D9,
-       0x4DA,
+       0,
        0x4DB,
-       0x4DC,
+       0,
        0x4DD,
-       0x4DE,
+       0,
        0x4DF,
-       0x4E0,
+       0,
        0x4E1,
-       0x4E2,
+       0,
        0x4E3,
-       0x4E4,
+       0,
        0x4E5,
-       0x4E6,
+       0,
        0x4E7,
-       0x4E8,
+       0,
        0x4E9,
-       0x4EA,
+       0,
        0x4EB,
-       0x4EC,
+       0,
        0x4ED,
-       0x4EE,
+       0,
        0x4EF,
-       0x4F0,
+       0,
        0x4F1,
-       0x4F2,
+       0,
        0x4F3,
-       0x4F4,
+       0,
        0x4F5,
-       0x4F6,
+       0,
        0x4F7,
-       0x4F8,
+       0,
        0x4F9,
-       0x4FA,
+       0,
        0x4FB,
-       0x4FC,
+       0,
        0x4FD,
-       0x4FE,
+       0,
        0x4FF,
-       0x500,
+       0,
        0x501,
-       0x502,
+       0,
        0x503,
-       0x504,
+       0,
        0x505,
-       0x506,
+       0,
        0x507,
-       0x508,
+       0,
        0x509,
-       0x50A,
+       0,
        0x50B,
-       0x50C,
+       0,
        0x50D,
-       0x50E,
+       0,
        0x50F,
-       0x510,
+       0,
        0x511,
-       0x512,
+       0,
        0x513,
-       0x514,
+       0,
        0x515,
-       0x516,
+       0,
        0x517,
-       0x518,
+       0,
        0x519,
-       0x51A,
+       0,
        0x51B,
-       0x51C,
+       0,
        0x51D,
-       0x51E,
+       0,
        0x51F,
-       0x520,
+       0,
        0x521,
-       0x522,
+       0,
        0x523,
-       0x524,
+       0,
        0x525,
-       0x526,
+       0,
        0x527,
-       0x528,
+       0,
        0x529,
-       0x52A,
+       0,
        0x52B,
-       0x52C,
+       0,
        0x52D,
-       0x52E,
+       0,
        0x52F,
-       0x531,
-       0x557,
-       0x587,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13F8,
-       0x13FE,
-       0x1C80,
-       0x1C81,
-       0x1C82,
-       0x1C83,
-       0x1C85,
-       0x1C86,
-       0x1C87,
-       0x1C88,
-       0x1C89,
-       0x1E00,
+       0,
+       0x561,
+       0,
+       CF_use_AUX_TABLE_7,
+       0,
+       0x2D00,
+       0,
+       0x2D27,
+       0,
+       0x2D2D,
+       0,
+       0x13F0,
+       0,
+       0x432,
+       0x434,
+       0x43E,
+       0x441,
+       0x442,
+       0x44A,
+       0x463,
+       0xA64B,
+       0,
        0x1E01,
-       0x1E02,
+       0,
        0x1E03,
-       0x1E04,
+       0,
        0x1E05,
-       0x1E06,
+       0,
        0x1E07,
-       0x1E08,
+       0,
        0x1E09,
-       0x1E0A,
+       0,
        0x1E0B,
-       0x1E0C,
+       0,
        0x1E0D,
-       0x1E0E,
+       0,
        0x1E0F,
-       0x1E10,
+       0,
        0x1E11,
-       0x1E12,
+       0,
        0x1E13,
-       0x1E14,
+       0,
        0x1E15,
-       0x1E16,
+       0,
        0x1E17,
-       0x1E18,
+       0,
        0x1E19,
-       0x1E1A,
+       0,
        0x1E1B,
-       0x1E1C,
+       0,
        0x1E1D,
-       0x1E1E,
+       0,
        0x1E1F,
-       0x1E20,
+       0,
        0x1E21,
-       0x1E22,
+       0,
        0x1E23,
-       0x1E24,
+       0,
        0x1E25,
-       0x1E26,
+       0,
        0x1E27,
-       0x1E28,
+       0,
        0x1E29,
-       0x1E2A,
+       0,
        0x1E2B,
-       0x1E2C,
+       0,
        0x1E2D,
-       0x1E2E,
+       0,
        0x1E2F,
-       0x1E30,
+       0,
        0x1E31,
-       0x1E32,
+       0,
        0x1E33,
-       0x1E34,
+       0,
        0x1E35,
-       0x1E36,
+       0,
        0x1E37,
-       0x1E38,
+       0,
        0x1E39,
-       0x1E3A,
+       0,
        0x1E3B,
-       0x1E3C,
+       0,
        0x1E3D,
-       0x1E3E,
+       0,
        0x1E3F,
-       0x1E40,
+       0,
        0x1E41,
-       0x1E42,
+       0,
        0x1E43,
-       0x1E44,
+       0,
        0x1E45,
-       0x1E46,
+       0,
        0x1E47,
-       0x1E48,
+       0,
        0x1E49,
-       0x1E4A,
+       0,
        0x1E4B,
-       0x1E4C,
+       0,
        0x1E4D,
-       0x1E4E,
+       0,
        0x1E4F,
-       0x1E50,
+       0,
        0x1E51,
-       0x1E52,
+       0,
        0x1E53,
-       0x1E54,
+       0,
        0x1E55,
-       0x1E56,
+       0,
        0x1E57,
-       0x1E58,
+       0,
        0x1E59,
-       0x1E5A,
+       0,
        0x1E5B,
-       0x1E5C,
+       0,
        0x1E5D,
-       0x1E5E,
+       0,
        0x1E5F,
-       0x1E60,
+       0,
        0x1E61,
-       0x1E62,
+       0,
        0x1E63,
-       0x1E64,
+       0,
        0x1E65,
-       0x1E66,
+       0,
        0x1E67,
-       0x1E68,
+       0,
        0x1E69,
-       0x1E6A,
+       0,
        0x1E6B,
-       0x1E6C,
+       0,
        0x1E6D,
-       0x1E6E,
+       0,
        0x1E6F,
-       0x1E70,
+       0,
        0x1E71,
-       0x1E72,
+       0,
        0x1E73,
-       0x1E74,
+       0,
        0x1E75,
-       0x1E76,
+       0,
        0x1E77,
-       0x1E78,
+       0,
        0x1E79,
-       0x1E7A,
+       0,
        0x1E7B,
-       0x1E7C,
+       0,
        0x1E7D,
-       0x1E7E,
+       0,
        0x1E7F,
-       0x1E80,
+       0,
        0x1E81,
-       0x1E82,
+       0,
        0x1E83,
-       0x1E84,
+       0,
        0x1E85,
-       0x1E86,
+       0,
        0x1E87,
-       0x1E88,
+       0,
        0x1E89,
-       0x1E8A,
+       0,
        0x1E8B,
-       0x1E8C,
+       0,
        0x1E8D,
-       0x1E8E,
+       0,
        0x1E8F,
-       0x1E90,
+       0,
        0x1E91,
-       0x1E92,
+       0,
        0x1E93,
-       0x1E94,
+       0,
        0x1E95,
-       0x1E96,
-       0x1E97,
-       0x1E98,
-       0x1E99,
-       0x1E9A,
-       0x1E9B,
-       0x1E9C,
-       0x1E9E,
-       0x1E9F,
-       0x1EA0,
+       0,
+       CF_use_AUX_TABLE_8,
+       CF_use_AUX_TABLE_9,
+       CF_use_AUX_TABLE_10,
+       CF_use_AUX_TABLE_11,
+       CF_use_AUX_TABLE_12,
+       0x1E61,
+       0,
+       CF_use_AUX_TABLE_1,
+       0,
        0x1EA1,
-       0x1EA2,
+       0,
        0x1EA3,
-       0x1EA4,
+       0,
        0x1EA5,
-       0x1EA6,
+       0,
        0x1EA7,
-       0x1EA8,
+       0,
        0x1EA9,
-       0x1EAA,
+       0,
        0x1EAB,
-       0x1EAC,
+       0,
        0x1EAD,
-       0x1EAE,
+       0,
        0x1EAF,
-       0x1EB0,
+       0,
        0x1EB1,
-       0x1EB2,
+       0,
        0x1EB3,
-       0x1EB4,
+       0,
        0x1EB5,
-       0x1EB6,
+       0,
        0x1EB7,
-       0x1EB8,
+       0,
        0x1EB9,
-       0x1EBA,
+       0,
        0x1EBB,
-       0x1EBC,
+       0,
        0x1EBD,
-       0x1EBE,
+       0,
        0x1EBF,
-       0x1EC0,
+       0,
        0x1EC1,
-       0x1EC2,
+       0,
        0x1EC3,
-       0x1EC4,
+       0,
        0x1EC5,
-       0x1EC6,
+       0,
        0x1EC7,
-       0x1EC8,
+       0,
        0x1EC9,
-       0x1ECA,
+       0,
        0x1ECB,
-       0x1ECC,
+       0,
        0x1ECD,
-       0x1ECE,
+       0,
        0x1ECF,
-       0x1ED0,
+       0,
        0x1ED1,
-       0x1ED2,
+       0,
        0x1ED3,
-       0x1ED4,
+       0,
        0x1ED5,
-       0x1ED6,
+       0,
        0x1ED7,
-       0x1ED8,
+       0,
        0x1ED9,
-       0x1EDA,
+       0,
        0x1EDB,
-       0x1EDC,
+       0,
        0x1EDD,
-       0x1EDE,
+       0,
        0x1EDF,
-       0x1EE0,
+       0,
        0x1EE1,
-       0x1EE2,
+       0,
        0x1EE3,
-       0x1EE4,
+       0,
        0x1EE5,
-       0x1EE6,
+       0,
        0x1EE7,
-       0x1EE8,
+       0,
        0x1EE9,
-       0x1EEA,
+       0,
        0x1EEB,
-       0x1EEC,
+       0,
        0x1EED,
-       0x1EEE,
+       0,
        0x1EEF,
-       0x1EF0,
+       0,
        0x1EF1,
-       0x1EF2,
+       0,
        0x1EF3,
-       0x1EF4,
+       0,
        0x1EF5,
-       0x1EF6,
+       0,
        0x1EF7,
-       0x1EF8,
+       0,
        0x1EF9,
-       0x1EFA,
+       0,
        0x1EFB,
-       0x1EFC,
+       0,
        0x1EFD,
-       0x1EFE,
+       0,
        0x1EFF,
-       0x1F08,
+       0,
+       0x1F00,
+       0,
        0x1F10,
-       0x1F18,
-       0x1F1E,
-       0x1F28,
+       0,
+       0x1F20,
+       0,
        0x1F30,
-       0x1F38,
+       0,
        0x1F40,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
+       0,
+       CF_use_AUX_TABLE_13,
+       0,
+       CF_use_AUX_TABLE_14,
+       0,
+       CF_use_AUX_TABLE_15,
+       0,
+       CF_use_AUX_TABLE_16,
+       0,
        0x1F51,
-       0x1F52,
+       0,
        0x1F53,
-       0x1F54,
+       0,
        0x1F55,
-       0x1F56,
+       0,
        0x1F57,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
+       0,
        0x1F60,
-       0x1F68,
-       0x1F70,
-       0x1F80,
-       0x1F81,
-       0x1F82,
-       0x1F83,
-       0x1F84,
-       0x1F85,
-       0x1F86,
-       0x1F87,
-       0x1F88,
-       0x1F89,
-       0x1F8A,
-       0x1F8B,
-       0x1F8C,
-       0x1F8D,
-       0x1F8E,
-       0x1F8F,
-       0x1F90,
-       0x1F91,
-       0x1F92,
-       0x1F93,
-       0x1F94,
-       0x1F95,
-       0x1F96,
-       0x1F97,
-       0x1F98,
-       0x1F99,
-       0x1F9A,
-       0x1F9B,
-       0x1F9C,
-       0x1F9D,
-       0x1F9E,
-       0x1F9F,
-       0x1FA0,
-       0x1FA1,
-       0x1FA2,
-       0x1FA3,
-       0x1FA4,
-       0x1FA5,
-       0x1FA6,
-       0x1FA7,
-       0x1FA8,
-       0x1FA9,
-       0x1FAA,
-       0x1FAB,
-       0x1FAC,
-       0x1FAD,
-       0x1FAE,
-       0x1FAF,
+       0,
+       CF_use_AUX_TABLE_17,
+       CF_use_AUX_TABLE_18,
+       CF_use_AUX_TABLE_19,
+       CF_use_AUX_TABLE_20,
+       CF_use_AUX_TABLE_21,
+       CF_use_AUX_TABLE_22,
+       CF_use_AUX_TABLE_23,
+       CF_use_AUX_TABLE_24,
+       CF_use_AUX_TABLE_17,
+       CF_use_AUX_TABLE_18,
+       CF_use_AUX_TABLE_19,
+       CF_use_AUX_TABLE_20,
+       CF_use_AUX_TABLE_21,
+       CF_use_AUX_TABLE_22,
+       CF_use_AUX_TABLE_23,
+       CF_use_AUX_TABLE_24,
+       CF_use_AUX_TABLE_25,
+       CF_use_AUX_TABLE_26,
+       CF_use_AUX_TABLE_27,
+       CF_use_AUX_TABLE_28,
+       CF_use_AUX_TABLE_29,
+       CF_use_AUX_TABLE_30,
+       CF_use_AUX_TABLE_31,
+       CF_use_AUX_TABLE_32,
+       CF_use_AUX_TABLE_25,
+       CF_use_AUX_TABLE_26,
+       CF_use_AUX_TABLE_27,
+       CF_use_AUX_TABLE_28,
+       CF_use_AUX_TABLE_29,
+       CF_use_AUX_TABLE_30,
+       CF_use_AUX_TABLE_31,
+       CF_use_AUX_TABLE_32,
+       CF_use_AUX_TABLE_33,
+       CF_use_AUX_TABLE_34,
+       CF_use_AUX_TABLE_35,
+       CF_use_AUX_TABLE_36,
+       CF_use_AUX_TABLE_37,
+       CF_use_AUX_TABLE_38,
+       CF_use_AUX_TABLE_39,
+       CF_use_AUX_TABLE_40,
+       CF_use_AUX_TABLE_33,
+       CF_use_AUX_TABLE_34,
+       CF_use_AUX_TABLE_35,
+       CF_use_AUX_TABLE_36,
+       CF_use_AUX_TABLE_37,
+       CF_use_AUX_TABLE_38,
+       CF_use_AUX_TABLE_39,
+       CF_use_AUX_TABLE_40,
+       0,
+       CF_use_AUX_TABLE_41,
+       CF_use_AUX_TABLE_42,
+       CF_use_AUX_TABLE_43,
+       0,
+       CF_use_AUX_TABLE_44,
+       CF_use_AUX_TABLE_45,
        0x1FB0,
-       0x1FB2,
-       0x1FB3,
-       0x1FB4,
-       0x1FB5,
-       0x1FB6,
-       0x1FB7,
-       0x1FB8,
-       0x1FBA,
-       0x1FBC,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC3,
-       0x1FC4,
-       0x1FC5,
-       0x1FC6,
-       0x1FC7,
-       0x1FC8,
-       0x1FCC,
-       0x1FCD,
-       0x1FD2,
-       0x1FD3,
-       0x1FD4,
-       0x1FD6,
-       0x1FD7,
-       0x1FD8,
-       0x1FDA,
-       0x1FDC,
-       0x1FE2,
-       0x1FE3,
-       0x1FE4,
+       0x1F70,
+       CF_use_AUX_TABLE_42,
+       0,
+       0x3B9,
+       0,
+       CF_use_AUX_TABLE_46,
+       CF_use_AUX_TABLE_47,
+       CF_use_AUX_TABLE_48,
+       0,
+       CF_use_AUX_TABLE_49,
+       CF_use_AUX_TABLE_50,
+       0x1F72,
+       CF_use_AUX_TABLE_47,
+       0,
+       CF_use_AUX_TABLE_51,
+       CF_use_AUX_TABLE_5,
+       0,
+       CF_use_AUX_TABLE_52,
+       CF_use_AUX_TABLE_53,
+       0x1FD0,
+       0x1F76,
+       0,
+       CF_use_AUX_TABLE_54,
+       CF_use_AUX_TABLE_6,
+       CF_use_AUX_TABLE_55,
+       0,
+       CF_use_AUX_TABLE_56,
+       CF_use_AUX_TABLE_57,
+       0x1FE0,
+       0x1F7A,
        0x1FE5,
-       0x1FE6,
-       0x1FE7,
-       0x1FE8,
-       0x1FEA,
-       0x1FEC,
-       0x1FED,
-       0x1FF2,
-       0x1FF3,
-       0x1FF4,
-       0x1FF5,
-       0x1FF6,
-       0x1FF7,
-       0x1FF8,
-       0x1FFA,
-       0x1FFC,
-       0x1FFD,
-       0x2126,
-       0x2127,
-       0x212A,
-       0x212B,
-       0x212C,
-       0x2132,
-       0x2133,
-       0x2160,
+       0,
+       CF_use_AUX_TABLE_58,
+       CF_use_AUX_TABLE_59,
+       CF_use_AUX_TABLE_60,
+       0,
+       CF_use_AUX_TABLE_61,
+       CF_use_AUX_TABLE_62,
+       0x1F78,
+       0x1F7C,
+       CF_use_AUX_TABLE_59,
+       0,
+       0x3C9,
+       0,
+       0x6B,
+       0xE5,
+       0,
+       0x214E,
+       0,
        0x2170,
-       0x2183,
+       0,
        0x2184,
-       0x24B6,
+       0,
        0x24D0,
-       0x2C00,
-       0x2C2F,
-       0x2C60,
+       0,
+       0x2C30,
+       0,
        0x2C61,
-       0x2C62,
-       0x2C63,
-       0x2C64,
-       0x2C65,
-       0x2C67,
+       0,
+       0x26B,
+       0x1D7D,
+       0x27D,
+       0,
        0x2C68,
-       0x2C69,
+       0,
        0x2C6A,
-       0x2C6B,
+       0,
        0x2C6C,
-       0x2C6D,
-       0x2C6E,
-       0x2C6F,
-       0x2C70,
-       0x2C71,
-       0x2C72,
+       0,
+       0x251,
+       0x271,
+       0x250,
+       0x252,
+       0,
        0x2C73,
-       0x2C75,
+       0,
        0x2C76,
-       0x2C7E,
-       0x2C80,
+       0,
+       0x23F,
        0x2C81,
-       0x2C82,
+       0,
        0x2C83,
-       0x2C84,
+       0,
        0x2C85,
-       0x2C86,
+       0,
        0x2C87,
-       0x2C88,
+       0,
        0x2C89,
-       0x2C8A,
+       0,
        0x2C8B,
-       0x2C8C,
+       0,
        0x2C8D,
-       0x2C8E,
+       0,
        0x2C8F,
-       0x2C90,
+       0,
        0x2C91,
-       0x2C92,
+       0,
        0x2C93,
-       0x2C94,
+       0,
        0x2C95,
-       0x2C96,
+       0,
        0x2C97,
-       0x2C98,
+       0,
        0x2C99,
-       0x2C9A,
+       0,
        0x2C9B,
-       0x2C9C,
+       0,
        0x2C9D,
-       0x2C9E,
+       0,
        0x2C9F,
-       0x2CA0,
+       0,
        0x2CA1,
-       0x2CA2,
+       0,
        0x2CA3,
-       0x2CA4,
+       0,
        0x2CA5,
-       0x2CA6,
+       0,
        0x2CA7,
-       0x2CA8,
+       0,
        0x2CA9,
-       0x2CAA,
+       0,
        0x2CAB,
-       0x2CAC,
+       0,
        0x2CAD,
-       0x2CAE,
+       0,
        0x2CAF,
-       0x2CB0,
+       0,
        0x2CB1,
-       0x2CB2,
+       0,
        0x2CB3,
-       0x2CB4,
+       0,
        0x2CB5,
-       0x2CB6,
+       0,
        0x2CB7,
-       0x2CB8,
+       0,
        0x2CB9,
-       0x2CBA,
+       0,
        0x2CBB,
-       0x2CBC,
+       0,
        0x2CBD,
-       0x2CBE,
+       0,
        0x2CBF,
-       0x2CC0,
+       0,
        0x2CC1,
-       0x2CC2,
+       0,
        0x2CC3,
-       0x2CC4,
+       0,
        0x2CC5,
-       0x2CC6,
+       0,
        0x2CC7,
-       0x2CC8,
+       0,
        0x2CC9,
-       0x2CCA,
+       0,
        0x2CCB,
-       0x2CCC,
+       0,
        0x2CCD,
-       0x2CCE,
+       0,
        0x2CCF,
-       0x2CD0,
+       0,
        0x2CD1,
-       0x2CD2,
+       0,
        0x2CD3,
-       0x2CD4,
+       0,
        0x2CD5,
-       0x2CD6,
+       0,
        0x2CD7,
-       0x2CD8,
+       0,
        0x2CD9,
-       0x2CDA,
+       0,
        0x2CDB,
-       0x2CDC,
+       0,
        0x2CDD,
-       0x2CDE,
+       0,
        0x2CDF,
-       0x2CE0,
+       0,
        0x2CE1,
-       0x2CE2,
+       0,
        0x2CE3,
-       0x2CEB,
+       0,
        0x2CEC,
-       0x2CED,
+       0,
        0x2CEE,
-       0x2CF2,
+       0,
        0x2CF3,
-       0xA640,
+       0,
        0xA641,
-       0xA642,
+       0,
        0xA643,
-       0xA644,
+       0,
        0xA645,
-       0xA646,
+       0,
        0xA647,
-       0xA648,
+       0,
        0xA649,
-       0xA64A,
+       0,
        0xA64B,
-       0xA64C,
+       0,
        0xA64D,
-       0xA64E,
+       0,
        0xA64F,
-       0xA650,
+       0,
        0xA651,
-       0xA652,
+       0,
        0xA653,
-       0xA654,
+       0,
        0xA655,
-       0xA656,
+       0,
        0xA657,
-       0xA658,
+       0,
        0xA659,
-       0xA65A,
+       0,
        0xA65B,
-       0xA65C,
+       0,
        0xA65D,
-       0xA65E,
+       0,
        0xA65F,
-       0xA660,
+       0,
        0xA661,
-       0xA662,
+       0,
        0xA663,
-       0xA664,
+       0,
        0xA665,
-       0xA666,
+       0,
        0xA667,
-       0xA668,
+       0,
        0xA669,
-       0xA66A,
+       0,
        0xA66B,
-       0xA66C,
+       0,
        0xA66D,
-       0xA680,
+       0,
        0xA681,
-       0xA682,
+       0,
        0xA683,
-       0xA684,
+       0,
        0xA685,
-       0xA686,
+       0,
        0xA687,
-       0xA688,
+       0,
        0xA689,
-       0xA68A,
+       0,
        0xA68B,
-       0xA68C,
+       0,
        0xA68D,
-       0xA68E,
+       0,
        0xA68F,
-       0xA690,
+       0,
        0xA691,
-       0xA692,
+       0,
        0xA693,
-       0xA694,
+       0,
        0xA695,
-       0xA696,
+       0,
        0xA697,
-       0xA698,
+       0,
        0xA699,
-       0xA69A,
+       0,
        0xA69B,
-       0xA722,
+       0,
        0xA723,
-       0xA724,
+       0,
        0xA725,
-       0xA726,
+       0,
        0xA727,
-       0xA728,
+       0,
        0xA729,
-       0xA72A,
+       0,
        0xA72B,
-       0xA72C,
+       0,
        0xA72D,
-       0xA72E,
+       0,
        0xA72F,
-       0xA732,
+       0,
        0xA733,
-       0xA734,
+       0,
        0xA735,
-       0xA736,
+       0,
        0xA737,
-       0xA738,
+       0,
        0xA739,
-       0xA73A,
+       0,
        0xA73B,
-       0xA73C,
+       0,
        0xA73D,
-       0xA73E,
+       0,
        0xA73F,
-       0xA740,
+       0,
        0xA741,
-       0xA742,
+       0,
        0xA743,
-       0xA744,
+       0,
        0xA745,
-       0xA746,
+       0,
        0xA747,
-       0xA748,
+       0,
        0xA749,
-       0xA74A,
+       0,
        0xA74B,
-       0xA74C,
+       0,
        0xA74D,
-       0xA74E,
+       0,
        0xA74F,
-       0xA750,
+       0,
        0xA751,
-       0xA752,
+       0,
        0xA753,
-       0xA754,
+       0,
        0xA755,
-       0xA756,
+       0,
        0xA757,
-       0xA758,
+       0,
        0xA759,
-       0xA75A,
+       0,
        0xA75B,
-       0xA75C,
+       0,
        0xA75D,
-       0xA75E,
+       0,
        0xA75F,
-       0xA760,
+       0,
        0xA761,
-       0xA762,
+       0,
        0xA763,
-       0xA764,
+       0,
        0xA765,
-       0xA766,
+       0,
        0xA767,
-       0xA768,
+       0,
        0xA769,
-       0xA76A,
+       0,
        0xA76B,
-       0xA76C,
+       0,
        0xA76D,
-       0xA76E,
+       0,
        0xA76F,
-       0xA779,
+       0,
        0xA77A,
-       0xA77B,
+       0,
        0xA77C,
-       0xA77D,
-       0xA77E,
+       0,
+       0x1D79,
        0xA77F,
-       0xA780,
+       0,
        0xA781,
-       0xA782,
+       0,
        0xA783,
-       0xA784,
+       0,
        0xA785,
-       0xA786,
+       0,
        0xA787,
-       0xA78B,
+       0,
        0xA78C,
-       0xA78D,
-       0xA78E,
-       0xA790,
+       0,
+       0x265,
+       0,
        0xA791,
-       0xA792,
+       0,
        0xA793,
-       0xA796,
+       0,
        0xA797,
-       0xA798,
+       0,
        0xA799,
-       0xA79A,
+       0,
        0xA79B,
-       0xA79C,
+       0,
        0xA79D,
-       0xA79E,
+       0,
        0xA79F,
-       0xA7A0,
+       0,
        0xA7A1,
-       0xA7A2,
+       0,
        0xA7A3,
-       0xA7A4,
+       0,
        0xA7A5,
-       0xA7A6,
+       0,
        0xA7A7,
-       0xA7A8,
+       0,
        0xA7A9,
-       0xA7AA,
-       0xA7AB,
-       0xA7AC,
-       0xA7AD,
-       0xA7AE,
-       0xA7AF,
-       0xA7B0,
-       0xA7B1,
-       0xA7B2,
-       0xA7B3,
-       0xA7B4,
+       0,
+       0x266,
+       0x25C,
+       0x261,
+       0x26C,
+       0x26A,
+       0,
+       0x29E,
+       0x287,
+       0x29D,
+       0xAB53,
        0xA7B5,
-       0xA7B6,
+       0,
        0xA7B7,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB01,
-       0xFB02,
-       0xFB03,
-       0xFB04,
-       0xFB05,
-       0xFB07,
-       0xFB13,
-       0xFB14,
-       0xFB15,
-       0xFB16,
-       0xFB17,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0x10400,
+       0,
+       0x13A0,
+       0,
+       CF_use_AUX_TABLE_63,
+       CF_use_AUX_TABLE_64,
+       CF_use_AUX_TABLE_65,
+       CF_use_AUX_TABLE_66,
+       CF_use_AUX_TABLE_67,
+       CF_use_AUX_TABLE_68,
+       0,
+       CF_use_AUX_TABLE_69,
+       CF_use_AUX_TABLE_70,
+       CF_use_AUX_TABLE_71,
+       CF_use_AUX_TABLE_72,
+       CF_use_AUX_TABLE_73,
+       0,
+       0xFF41,
+       0,
        0x10428,
-       0x104B0,
-       0x104D4,
-       0x10C80,
-       0x10CB3,
-       0x118A0,
+       0,
+       0x104D8,
+       0,
+       0x10CC0,
+       0,
        0x118C0,
-       0x1E900,
-       0x1E922
+       0,
+       0x1E922,
+       0
 };
 
 #   endif      /* ASCII/Latin1 */
 
-#endif /* defined(PERL_IN_UTF8_C) */
-
-#if defined(PERL_IN_UTF8_C)
-
-#   if 'A' == 65 /* ASCII/Latin1 */
+#   if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
 
-/* Negative enum values indicate the need to use an auxiliary table
- * consisting of the list of enums this one expands to.  The absolute
- * values of the negative enums are indices into a table of the auxiliary
- * tables' addresses */
-typedef enum {
-       CF_0 = 0,
-       CF_use_AUX_TABLE_1 = -1,
-       CF_use_AUX_TABLE_2 = -2,
-       CF_use_AUX_TABLE_3 = -3,
-       CF_use_AUX_TABLE_4 = -4,
-       CF_use_AUX_TABLE_5 = -5,
-       CF_use_AUX_TABLE_6 = -6,
-       CF_use_AUX_TABLE_7 = -7,
-       CF_use_AUX_TABLE_8 = -8,
-       CF_use_AUX_TABLE_9 = -9,
-       CF_use_AUX_TABLE_10 = -10,
-       CF_use_AUX_TABLE_11 = -11,
-       CF_use_AUX_TABLE_12 = -12,
-       CF_use_AUX_TABLE_13 = -13,
-       CF_use_AUX_TABLE_14 = -14,
-       CF_use_AUX_TABLE_15 = -15,
-       CF_use_AUX_TABLE_16 = -16,
-       CF_use_AUX_TABLE_17 = -17,
-       CF_use_AUX_TABLE_18 = -18,
-       CF_use_AUX_TABLE_19 = -19,
-       CF_use_AUX_TABLE_20 = -20,
-       CF_use_AUX_TABLE_21 = -21,
-       CF_use_AUX_TABLE_22 = -22,
-       CF_use_AUX_TABLE_23 = -23,
-       CF_use_AUX_TABLE_24 = -24,
-       CF_use_AUX_TABLE_25 = -25,
-       CF_use_AUX_TABLE_26 = -26,
-       CF_use_AUX_TABLE_27 = -27,
-       CF_use_AUX_TABLE_28 = -28,
-       CF_use_AUX_TABLE_29 = -29,
-       CF_use_AUX_TABLE_30 = -30,
-       CF_use_AUX_TABLE_31 = -31,
-       CF_use_AUX_TABLE_32 = -32,
-       CF_use_AUX_TABLE_33 = -33,
-       CF_use_AUX_TABLE_34 = -34,
-       CF_use_AUX_TABLE_35 = -35,
-       CF_use_AUX_TABLE_36 = -36,
-       CF_use_AUX_TABLE_37 = -37,
-       CF_use_AUX_TABLE_38 = -38,
-       CF_use_AUX_TABLE_39 = -39,
-       CF_use_AUX_TABLE_40 = -40,
-       CF_use_AUX_TABLE_41 = -41,
-       CF_use_AUX_TABLE_42 = -42,
-       CF_use_AUX_TABLE_43 = -43,
-       CF_use_AUX_TABLE_44 = -44,
-       CF_use_AUX_TABLE_45 = -45,
-       CF_use_AUX_TABLE_46 = -46,
-       CF_use_AUX_TABLE_47 = -47,
-       CF_use_AUX_TABLE_48 = -48,
-       CF_use_AUX_TABLE_49 = -49,
-       CF_use_AUX_TABLE_50 = -50,
-       CF_use_AUX_TABLE_51 = -51,
-       CF_use_AUX_TABLE_52 = -52,
-       CF_use_AUX_TABLE_53 = -53,
-       CF_use_AUX_TABLE_54 = -54,
-       CF_use_AUX_TABLE_55 = -55,
-       CF_use_AUX_TABLE_56 = -56,
-       CF_use_AUX_TABLE_57 = -57,
-       CF_use_AUX_TABLE_58 = -58,
-       CF_use_AUX_TABLE_59 = -59,
-       CF_use_AUX_TABLE_60 = -60,
-       CF_use_AUX_TABLE_61 = -61,
-       CF_use_AUX_TABLE_62 = -62,
-       CF_use_AUX_TABLE_63 = -63,
-       CF_use_AUX_TABLE_64 = -64,
-       CF_use_AUX_TABLE_65 = -65,
-       CF_use_AUX_TABLE_66 = -66,
-       CF_use_AUX_TABLE_67 = -67,
-       CF_use_AUX_TABLE_68 = -68,
-       CF_use_AUX_TABLE_69 = -69,
-       CF_use_AUX_TABLE_70 = -70,
-       CF_use_AUX_TABLE_71 = -71,
-       CF_use_AUX_TABLE_72 = -72,
-       CF_use_AUX_TABLE_73 = -73
-} CF_enum;
-
-#   endif      /* ASCII/Latin1 */
-
-#   if 'A' == 65 /* ASCII/Latin1 */
-
-#define HAS_CF_AUX_TABLES
-
-static const unsigned int CF_AUX_TABLE_1[] = {
-       0x73,
-       0x73
-};
-
-static const unsigned int CF_AUX_TABLE_2[] = {
-       0x69,
-       0x307
-};
-
-static const unsigned int CF_AUX_TABLE_3[] = {
-       0x2BC,
-       0x6E
-};
-
-static const unsigned int CF_AUX_TABLE_4[] = {
+static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
+       1392,   /* Number of elements */
+       148565664, /* Version and data structure type */
+       0,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x59,
+       0x5A,
+       0x62,
        0x6A,
-       0x30C
-};
-
-static const unsigned int CF_AUX_TABLE_5[] = {
-       0x3B9,
-       0x308,
-       0x301
-};
-
-static const unsigned int CF_AUX_TABLE_6[] = {
-       0x3C5,
-       0x308,
-       0x301
-};
-
-static const unsigned int CF_AUX_TABLE_7[] = {
-       0x565,
-       0x582
-};
-
-static const unsigned int CF_AUX_TABLE_8[] = {
-       0x68,
-       0x331
-};
-
-static const unsigned int CF_AUX_TABLE_9[] = {
-       0x74,
-       0x308
-};
-
-static const unsigned int CF_AUX_TABLE_10[] = {
-       0x77,
-       0x30A
-};
-
-static const unsigned int CF_AUX_TABLE_11[] = {
+       0x71,
        0x79,
-       0x30A
-};
-
-static const unsigned int CF_AUX_TABLE_12[] = {
-       0x61,
-       0x2BE
-};
-
-static const unsigned int CF_AUX_TABLE_13[] = {
-       0x3C5,
-       0x313
-};
-
-static const unsigned int CF_AUX_TABLE_14[] = {
-       0x3C5,
-       0x313,
-       0x300
-};
-
-static const unsigned int CF_AUX_TABLE_15[] = {
-       0x3C5,
-       0x313,
-       0x301
-};
-
-static const unsigned int CF_AUX_TABLE_16[] = {
-       0x3C5,
-       0x313,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_17[] = {
-       0x1F00,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_18[] = {
-       0x1F01,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_19[] = {
-       0x1F02,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_20[] = {
-       0x1F03,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_21[] = {
-       0x1F04,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_22[] = {
-       0x1F05,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_23[] = {
-       0x1F06,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_24[] = {
-       0x1F07,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_25[] = {
-       0x1F20,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_26[] = {
-       0x1F21,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_27[] = {
-       0x1F22,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_28[] = {
-       0x1F23,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_29[] = {
-       0x1F24,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_30[] = {
-       0x1F25,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_31[] = {
-       0x1F26,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_32[] = {
-       0x1F27,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_33[] = {
-       0x1F60,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_34[] = {
-       0x1F61,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_35[] = {
-       0x1F62,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_36[] = {
-       0x1F63,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_37[] = {
-       0x1F64,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_38[] = {
-       0x1F65,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_39[] = {
-       0x1F66,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_40[] = {
-       0x1F67,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_41[] = {
-       0x1F70,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_42[] = {
-       0x3B1,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_43[] = {
-       0x3AC,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_44[] = {
-       0x3B1,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_45[] = {
-       0x3B1,
-       0x342,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_46[] = {
-       0x1F74,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_47[] = {
-       0x3B7,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_48[] = {
-       0x3AE,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_49[] = {
-       0x3B7,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_50[] = {
-       0x3B7,
-       0x342,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_51[] = {
-       0x3B9,
-       0x308,
-       0x300
-};
-
-static const unsigned int CF_AUX_TABLE_52[] = {
-       0x3B9,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_53[] = {
-       0x3B9,
-       0x308,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_54[] = {
-       0x3C5,
-       0x308,
-       0x300
-};
-
-static const unsigned int CF_AUX_TABLE_55[] = {
-       0x3C1,
-       0x313
-};
-
-static const unsigned int CF_AUX_TABLE_56[] = {
-       0x3C5,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_57[] = {
-       0x3C5,
-       0x308,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_58[] = {
-       0x1F7C,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_59[] = {
-       0x3C9,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_60[] = {
-       0x3CE,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_61[] = {
-       0x3C9,
-       0x342
-};
-
-static const unsigned int CF_AUX_TABLE_62[] = {
-       0x3C9,
-       0x342,
-       0x3B9
-};
-
-static const unsigned int CF_AUX_TABLE_63[] = {
-       0x66,
-       0x66
-};
-
-static const unsigned int CF_AUX_TABLE_64[] = {
-       0x66,
-       0x69
-};
-
-static const unsigned int CF_AUX_TABLE_65[] = {
-       0x66,
-       0x6C
-};
-
-static const unsigned int CF_AUX_TABLE_66[] = {
-       0x66,
-       0x66,
-       0x69
-};
-
-static const unsigned int CF_AUX_TABLE_67[] = {
-       0x66,
-       0x66,
-       0x6C
-};
-
-static const unsigned int CF_AUX_TABLE_68[] = {
-       0x73,
-       0x74
-};
-
-static const unsigned int CF_AUX_TABLE_69[] = {
-       0x574,
-       0x576
-};
-
-static const unsigned int CF_AUX_TABLE_70[] = {
-       0x574,
-       0x565
-};
-
-static const unsigned int CF_AUX_TABLE_71[] = {
-       0x574,
-       0x56B
-};
-
-static const unsigned int CF_AUX_TABLE_72[] = {
-       0x57E,
-       0x576
-};
-
-static const unsigned int CF_AUX_TABLE_73[] = {
-       0x574,
-       0x56D
-};
-
-static const unsigned int * const CF_AUX_TABLE_ptrs[] = {
-       NULL,   /* Placeholder */
-       CF_AUX_TABLE_1,
-       CF_AUX_TABLE_2,
-       CF_AUX_TABLE_3,
-       CF_AUX_TABLE_4,
-       CF_AUX_TABLE_5,
-       CF_AUX_TABLE_6,
-       CF_AUX_TABLE_7,
-       CF_AUX_TABLE_8,
-       CF_AUX_TABLE_9,
-       CF_AUX_TABLE_10,
-       CF_AUX_TABLE_11,
-       CF_AUX_TABLE_12,
-       CF_AUX_TABLE_13,
-       CF_AUX_TABLE_14,
-       CF_AUX_TABLE_15,
-       CF_AUX_TABLE_16,
-       CF_AUX_TABLE_17,
-       CF_AUX_TABLE_18,
-       CF_AUX_TABLE_19,
-       CF_AUX_TABLE_20,
-       CF_AUX_TABLE_21,
-       CF_AUX_TABLE_22,
-       CF_AUX_TABLE_23,
-       CF_AUX_TABLE_24,
-       CF_AUX_TABLE_25,
-       CF_AUX_TABLE_26,
-       CF_AUX_TABLE_27,
-       CF_AUX_TABLE_28,
-       CF_AUX_TABLE_29,
-       CF_AUX_TABLE_30,
-       CF_AUX_TABLE_31,
-       CF_AUX_TABLE_32,
-       CF_AUX_TABLE_33,
-       CF_AUX_TABLE_34,
-       CF_AUX_TABLE_35,
-       CF_AUX_TABLE_36,
-       CF_AUX_TABLE_37,
-       CF_AUX_TABLE_38,
-       CF_AUX_TABLE_39,
-       CF_AUX_TABLE_40,
-       CF_AUX_TABLE_41,
-       CF_AUX_TABLE_42,
-       CF_AUX_TABLE_43,
-       CF_AUX_TABLE_44,
-       CF_AUX_TABLE_45,
-       CF_AUX_TABLE_46,
-       CF_AUX_TABLE_47,
-       CF_AUX_TABLE_48,
-       CF_AUX_TABLE_49,
-       CF_AUX_TABLE_50,
-       CF_AUX_TABLE_51,
-       CF_AUX_TABLE_52,
-       CF_AUX_TABLE_53,
-       CF_AUX_TABLE_54,
-       CF_AUX_TABLE_55,
-       CF_AUX_TABLE_56,
-       CF_AUX_TABLE_57,
-       CF_AUX_TABLE_58,
-       CF_AUX_TABLE_59,
-       CF_AUX_TABLE_60,
-       CF_AUX_TABLE_61,
-       CF_AUX_TABLE_62,
-       CF_AUX_TABLE_63,
-       CF_AUX_TABLE_64,
-       CF_AUX_TABLE_65,
-       CF_AUX_TABLE_66,
-       CF_AUX_TABLE_67,
-       CF_AUX_TABLE_68,
-       CF_AUX_TABLE_69,
-       CF_AUX_TABLE_70,
-       CF_AUX_TABLE_71,
-       CF_AUX_TABLE_72,
-       CF_AUX_TABLE_73
-};
-
-/* Parallel table to the above, giving the number of elements in each table
- * pointed to */
-static const U8 CF_AUX_TABLE_lengths[] = {
-       0,      /* Placeholder */
-       2       /* CF_AUX_TABLE_1 */,
-       2       /* CF_AUX_TABLE_2 */,
-       2       /* CF_AUX_TABLE_3 */,
-       2       /* CF_AUX_TABLE_4 */,
-       3       /* CF_AUX_TABLE_5 */,
-       3       /* CF_AUX_TABLE_6 */,
-       2       /* CF_AUX_TABLE_7 */,
-       2       /* CF_AUX_TABLE_8 */,
-       2       /* CF_AUX_TABLE_9 */,
-       2       /* CF_AUX_TABLE_10 */,
-       2       /* CF_AUX_TABLE_11 */,
-       2       /* CF_AUX_TABLE_12 */,
-       2       /* CF_AUX_TABLE_13 */,
-       3       /* CF_AUX_TABLE_14 */,
-       3       /* CF_AUX_TABLE_15 */,
-       3       /* CF_AUX_TABLE_16 */,
-       2       /* CF_AUX_TABLE_17 */,
-       2       /* CF_AUX_TABLE_18 */,
-       2       /* CF_AUX_TABLE_19 */,
-       2       /* CF_AUX_TABLE_20 */,
-       2       /* CF_AUX_TABLE_21 */,
-       2       /* CF_AUX_TABLE_22 */,
-       2       /* CF_AUX_TABLE_23 */,
-       2       /* CF_AUX_TABLE_24 */,
-       2       /* CF_AUX_TABLE_25 */,
-       2       /* CF_AUX_TABLE_26 */,
-       2       /* CF_AUX_TABLE_27 */,
-       2       /* CF_AUX_TABLE_28 */,
-       2       /* CF_AUX_TABLE_29 */,
-       2       /* CF_AUX_TABLE_30 */,
-       2       /* CF_AUX_TABLE_31 */,
-       2       /* CF_AUX_TABLE_32 */,
-       2       /* CF_AUX_TABLE_33 */,
-       2       /* CF_AUX_TABLE_34 */,
-       2       /* CF_AUX_TABLE_35 */,
-       2       /* CF_AUX_TABLE_36 */,
-       2       /* CF_AUX_TABLE_37 */,
-       2       /* CF_AUX_TABLE_38 */,
-       2       /* CF_AUX_TABLE_39 */,
-       2       /* CF_AUX_TABLE_40 */,
-       2       /* CF_AUX_TABLE_41 */,
-       2       /* CF_AUX_TABLE_42 */,
-       2       /* CF_AUX_TABLE_43 */,
-       2       /* CF_AUX_TABLE_44 */,
-       3       /* CF_AUX_TABLE_45 */,
-       2       /* CF_AUX_TABLE_46 */,
-       2       /* CF_AUX_TABLE_47 */,
-       2       /* CF_AUX_TABLE_48 */,
-       2       /* CF_AUX_TABLE_49 */,
-       3       /* CF_AUX_TABLE_50 */,
-       3       /* CF_AUX_TABLE_51 */,
-       2       /* CF_AUX_TABLE_52 */,
-       3       /* CF_AUX_TABLE_53 */,
-       3       /* CF_AUX_TABLE_54 */,
-       2       /* CF_AUX_TABLE_55 */,
-       2       /* CF_AUX_TABLE_56 */,
-       3       /* CF_AUX_TABLE_57 */,
-       2       /* CF_AUX_TABLE_58 */,
-       2       /* CF_AUX_TABLE_59 */,
-       2       /* CF_AUX_TABLE_60 */,
-       2       /* CF_AUX_TABLE_61 */,
-       3       /* CF_AUX_TABLE_62 */,
-       2       /* CF_AUX_TABLE_63 */,
-       2       /* CF_AUX_TABLE_64 */,
-       2       /* CF_AUX_TABLE_65 */,
-       3       /* CF_AUX_TABLE_66 */,
-       3       /* CF_AUX_TABLE_67 */,
-       2       /* CF_AUX_TABLE_68 */,
-       2       /* CF_AUX_TABLE_69 */,
-       2       /* CF_AUX_TABLE_70 */,
-       2       /* CF_AUX_TABLE_71 */,
-       2       /* CF_AUX_TABLE_72 */,
-       2       /* CF_AUX_TABLE_73 */
-};
-
-static const int Case_Folding_invmap[] = { /* for ASCII/Latin1 */
-       0,
-       0x61,
-       0,
-       0x3BC,
-       0,
-       0xE0,
-       0,
-       0xF8,
-       CF_use_AUX_TABLE_1,
-       0,
+       0x80,
+       0x81,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xD1,
+       0xDA,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
        0x101,
-       0,
+       0x102,
        0x103,
-       0,
+       0x104,
        0x105,
-       0,
+       0x106,
        0x107,
-       0,
+       0x108,
        0x109,
-       0,
+       0x10A,
        0x10B,
-       0,
+       0x10C,
        0x10D,
-       0,
+       0x10E,
        0x10F,
-       0,
+       0x110,
        0x111,
-       0,
+       0x112,
        0x113,
-       0,
+       0x114,
        0x115,
-       0,
+       0x116,
        0x117,
-       0,
+       0x118,
        0x119,
-       0,
+       0x11A,
        0x11B,
-       0,
+       0x11C,
        0x11D,
-       0,
+       0x11E,
        0x11F,
-       0,
+       0x120,
        0x121,
-       0,
+       0x122,
        0x123,
-       0,
+       0x124,
        0x125,
-       0,
+       0x126,
        0x127,
-       0,
+       0x128,
        0x129,
-       0,
+       0x12A,
        0x12B,
-       0,
+       0x12C,
        0x12D,
-       0,
+       0x12E,
        0x12F,
-       0,
-       CF_use_AUX_TABLE_2,
-       0,
+       0x130,
+       0x131,
+       0x132,
        0x133,
-       0,
+       0x134,
        0x135,
-       0,
+       0x136,
        0x137,
-       0,
+       0x139,
        0x13A,
-       0,
+       0x13B,
        0x13C,
-       0,
+       0x13D,
        0x13E,
-       0,
+       0x13F,
        0x140,
-       0,
+       0x141,
        0x142,
-       0,
+       0x143,
        0x144,
-       0,
+       0x145,
        0x146,
-       0,
+       0x147,
        0x148,
-       0,
-       CF_use_AUX_TABLE_3,
+       0x149,
+       0x14A,
        0x14B,
-       0,
+       0x14C,
        0x14D,
-       0,
+       0x14E,
        0x14F,
-       0,
+       0x150,
        0x151,
-       0,
+       0x152,
        0x153,
-       0,
+       0x154,
        0x155,
-       0,
+       0x156,
        0x157,
-       0,
+       0x158,
        0x159,
-       0,
+       0x15A,
        0x15B,
-       0,
+       0x15C,
        0x15D,
-       0,
+       0x15E,
        0x15F,
-       0,
+       0x160,
        0x161,
-       0,
+       0x162,
        0x163,
-       0,
+       0x164,
        0x165,
-       0,
+       0x166,
        0x167,
-       0,
+       0x168,
        0x169,
-       0,
+       0x16A,
        0x16B,
-       0,
+       0x16C,
        0x16D,
-       0,
+       0x16E,
        0x16F,
-       0,
+       0x170,
        0x171,
-       0,
+       0x172,
        0x173,
-       0,
+       0x174,
        0x175,
-       0,
+       0x176,
        0x177,
-       0,
-       0xFF,
+       0x178,
+       0x179,
        0x17A,
-       0,
+       0x17B,
        0x17C,
-       0,
+       0x17D,
        0x17E,
-       0,
-       0x73,
-       0,
-       0x253,
+       0x17F,
+       0x180,
+       0x181,
+       0x182,
        0x183,
-       0,
+       0x184,
        0x185,
-       0,
-       0x254,
+       0x186,
+       0x187,
        0x188,
-       0,
-       0x256,
+       0x189,
+       0x18B,
        0x18C,
-       0,
-       0x1DD,
-       0x259,
-       0x25B,
+       0x18E,
+       0x18F,
+       0x190,
+       0x191,
        0x192,
-       0,
-       0x260,
-       0x263,
-       0,
-       0x269,
-       0x268,
+       0x193,
+       0x194,
+       0x195,
+       0x196,
+       0x197,
+       0x198,
        0x199,
-       0,
-       0x26F,
-       0x272,
-       0,
-       0x275,
+       0x19C,
+       0x19D,
+       0x19E,
+       0x19F,
+       0x1A0,
        0x1A1,
-       0,
+       0x1A2,
        0x1A3,
-       0,
+       0x1A4,
        0x1A5,
-       0,
-       0x280,
+       0x1A6,
+       0x1A7,
        0x1A8,
-       0,
-       0x283,
-       0,
+       0x1A9,
+       0x1AA,
+       0x1AC,
        0x1AD,
-       0,
-       0x288,
+       0x1AE,
+       0x1AF,
        0x1B0,
-       0,
-       0x28A,
+       0x1B1,
+       0x1B3,
        0x1B4,
-       0,
+       0x1B5,
        0x1B6,
-       0,
-       0x292,
+       0x1B7,
+       0x1B8,
        0x1B9,
-       0,
+       0x1BC,
        0x1BD,
-       0,
-       0x1C6,
+       0x1C4,
+       0x1C5,
        0x1C6,
-       0,
-       0x1C9,
+       0x1C7,
+       0x1C8,
        0x1C9,
-       0,
-       0x1CC,
+       0x1CA,
+       0x1CB,
        0x1CC,
-       0,
+       0x1CD,
        0x1CE,
-       0,
+       0x1CF,
        0x1D0,
-       0,
+       0x1D1,
        0x1D2,
-       0,
+       0x1D3,
        0x1D4,
-       0,
+       0x1D5,
        0x1D6,
-       0,
+       0x1D7,
        0x1D8,
-       0,
+       0x1D9,
        0x1DA,
-       0,
+       0x1DB,
        0x1DC,
-       0,
+       0x1DE,
        0x1DF,
-       0,
+       0x1E0,
        0x1E1,
-       0,
+       0x1E2,
        0x1E3,
-       0,
+       0x1E4,
        0x1E5,
-       0,
+       0x1E6,
        0x1E7,
-       0,
+       0x1E8,
        0x1E9,
-       0,
+       0x1EA,
        0x1EB,
-       0,
+       0x1EC,
        0x1ED,
-       0,
+       0x1EE,
        0x1EF,
-       0,
-       CF_use_AUX_TABLE_4,
-       0x1F3,
+       0x1F0,
+       0x1F1,
+       0x1F2,
        0x1F3,
-       0,
+       0x1F4,
        0x1F5,
-       0,
-       0x195,
-       0x1BF,
+       0x1F6,
+       0x1F7,
+       0x1F8,
        0x1F9,
-       0,
+       0x1FA,
        0x1FB,
-       0,
+       0x1FC,
        0x1FD,
-       0,
+       0x1FE,
        0x1FF,
-       0,
+       0x200,
        0x201,
-       0,
+       0x202,
        0x203,
-       0,
+       0x204,
        0x205,
-       0,
+       0x206,
        0x207,
-       0,
+       0x208,
        0x209,
-       0,
+       0x20A,
        0x20B,
-       0,
+       0x20C,
        0x20D,
-       0,
+       0x20E,
        0x20F,
-       0,
+       0x210,
        0x211,
-       0,
+       0x212,
        0x213,
-       0,
+       0x214,
        0x215,
-       0,
+       0x216,
        0x217,
-       0,
+       0x218,
        0x219,
-       0,
+       0x21A,
        0x21B,
-       0,
+       0x21C,
        0x21D,
-       0,
+       0x21E,
        0x21F,
-       0,
-       0x19E,
-       0,
+       0x220,
+       0x221,
+       0x222,
        0x223,
-       0,
+       0x224,
        0x225,
-       0,
+       0x226,
        0x227,
-       0,
+       0x228,
        0x229,
-       0,
+       0x22A,
        0x22B,
-       0,
+       0x22C,
        0x22D,
-       0,
+       0x22E,
        0x22F,
-       0,
+       0x230,
        0x231,
-       0,
+       0x232,
        0x233,
-       0,
-       0x2C65,
+       0x23A,
+       0x23B,
        0x23C,
-       0,
-       0x19A,
-       0x2C66,
-       0,
+       0x23D,
+       0x23E,
+       0x23F,
+       0x241,
        0x242,
-       0,
-       0x180,
-       0x289,
-       0x28C,
+       0x243,
+       0x244,
+       0x245,
+       0x246,
        0x247,
-       0,
+       0x248,
        0x249,
-       0,
+       0x24A,
        0x24B,
-       0,
+       0x24C,
        0x24D,
-       0,
+       0x24E,
        0x24F,
-       0,
-       0x3B9,
-       0,
+       0x345,
+       0x346,
+       0x370,
        0x371,
-       0,
+       0x372,
        0x373,
-       0,
+       0x376,
        0x377,
-       0,
-       0x3F3,
-       0,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x390,
+       0x391,
+       0x3A2,
+       0x3A3,
        0x3AC,
-       0,
-       0x3AD,
-       0,
-       0x3CC,
-       0,
-       0x3CD,
-       CF_use_AUX_TABLE_5,
+       0x3B0,
        0x3B1,
-       0,
-       0x3C3,
-       0,
-       CF_use_AUX_TABLE_6,
-       0,
+       0x3C2,
        0x3C3,
-       0,
+       0x3CF,
+       0x3D0,
+       0x3D1,
+       0x3D2,
+       0x3D5,
+       0x3D6,
        0x3D7,
-       0x3B2,
-       0x3B8,
-       0,
-       0x3C6,
-       0x3C0,
-       0,
+       0x3D8,
        0x3D9,
-       0,
+       0x3DA,
        0x3DB,
-       0,
+       0x3DC,
        0x3DD,
-       0,
+       0x3DE,
        0x3DF,
-       0,
+       0x3E0,
        0x3E1,
-       0,
+       0x3E2,
        0x3E3,
-       0,
+       0x3E4,
        0x3E5,
-       0,
+       0x3E6,
        0x3E7,
-       0,
+       0x3E8,
        0x3E9,
-       0,
+       0x3EA,
        0x3EB,
-       0,
+       0x3EC,
        0x3ED,
-       0,
+       0x3EE,
        0x3EF,
-       0,
-       0x3BA,
-       0x3C1,
-       0,
-       0x3B8,
-       0x3B5,
-       0,
-       0x3F8,
-       0,
+       0x3F0,
+       0x3F1,
        0x3F2,
+       0x3F4,
+       0x3F5,
+       0x3F6,
+       0x3F7,
+       0x3F8,
+       0x3F9,
+       0x3FA,
        0x3FB,
-       0,
-       0x37B,
-       0x450,
+       0x3FD,
+       0x400,
+       0x410,
        0x430,
-       0,
+       0x460,
        0x461,
-       0,
+       0x462,
        0x463,
-       0,
+       0x464,
        0x465,
-       0,
+       0x466,
        0x467,
-       0,
+       0x468,
        0x469,
-       0,
+       0x46A,
        0x46B,
-       0,
+       0x46C,
        0x46D,
-       0,
+       0x46E,
        0x46F,
-       0,
+       0x470,
        0x471,
-       0,
+       0x472,
        0x473,
-       0,
+       0x474,
        0x475,
-       0,
+       0x476,
        0x477,
-       0,
+       0x478,
        0x479,
-       0,
+       0x47A,
        0x47B,
-       0,
+       0x47C,
        0x47D,
-       0,
+       0x47E,
        0x47F,
-       0,
+       0x480,
        0x481,
-       0,
+       0x48A,
        0x48B,
-       0,
+       0x48C,
        0x48D,
-       0,
+       0x48E,
        0x48F,
-       0,
+       0x490,
        0x491,
-       0,
+       0x492,
        0x493,
-       0,
+       0x494,
        0x495,
-       0,
+       0x496,
        0x497,
-       0,
+       0x498,
        0x499,
-       0,
+       0x49A,
        0x49B,
-       0,
+       0x49C,
        0x49D,
-       0,
+       0x49E,
        0x49F,
-       0,
+       0x4A0,
        0x4A1,
-       0,
+       0x4A2,
        0x4A3,
-       0,
+       0x4A4,
        0x4A5,
-       0,
+       0x4A6,
        0x4A7,
-       0,
+       0x4A8,
        0x4A9,
-       0,
+       0x4AA,
        0x4AB,
-       0,
+       0x4AC,
        0x4AD,
-       0,
+       0x4AE,
        0x4AF,
-       0,
+       0x4B0,
        0x4B1,
-       0,
+       0x4B2,
        0x4B3,
-       0,
+       0x4B4,
        0x4B5,
-       0,
+       0x4B6,
        0x4B7,
-       0,
+       0x4B8,
        0x4B9,
-       0,
+       0x4BA,
        0x4BB,
-       0,
+       0x4BC,
        0x4BD,
-       0,
+       0x4BE,
        0x4BF,
-       0,
-       0x4CF,
+       0x4C0,
+       0x4C1,
        0x4C2,
-       0,
+       0x4C3,
        0x4C4,
-       0,
+       0x4C5,
        0x4C6,
-       0,
+       0x4C7,
        0x4C8,
-       0,
+       0x4C9,
        0x4CA,
-       0,
+       0x4CB,
        0x4CC,
-       0,
+       0x4CD,
        0x4CE,
-       0,
+       0x4D0,
        0x4D1,
-       0,
+       0x4D2,
        0x4D3,
-       0,
+       0x4D4,
        0x4D5,
-       0,
+       0x4D6,
        0x4D7,
-       0,
+       0x4D8,
        0x4D9,
-       0,
+       0x4DA,
        0x4DB,
-       0,
+       0x4DC,
        0x4DD,
-       0,
+       0x4DE,
        0x4DF,
-       0,
+       0x4E0,
        0x4E1,
-       0,
+       0x4E2,
        0x4E3,
-       0,
+       0x4E4,
        0x4E5,
-       0,
+       0x4E6,
        0x4E7,
-       0,
+       0x4E8,
        0x4E9,
-       0,
+       0x4EA,
        0x4EB,
-       0,
+       0x4EC,
        0x4ED,
-       0,
+       0x4EE,
        0x4EF,
-       0,
+       0x4F0,
        0x4F1,
-       0,
+       0x4F2,
        0x4F3,
-       0,
+       0x4F4,
        0x4F5,
-       0,
+       0x4F6,
        0x4F7,
-       0,
+       0x4F8,
        0x4F9,
-       0,
+       0x4FA,
        0x4FB,
-       0,
+       0x4FC,
        0x4FD,
-       0,
+       0x4FE,
        0x4FF,
-       0,
+       0x500,
        0x501,
-       0,
+       0x502,
        0x503,
-       0,
+       0x504,
        0x505,
-       0,
+       0x506,
        0x507,
-       0,
+       0x508,
        0x509,
-       0,
+       0x50A,
        0x50B,
-       0,
+       0x50C,
        0x50D,
-       0,
+       0x50E,
        0x50F,
-       0,
+       0x510,
        0x511,
-       0,
+       0x512,
        0x513,
-       0,
+       0x514,
        0x515,
-       0,
+       0x516,
        0x517,
-       0,
+       0x518,
        0x519,
-       0,
+       0x51A,
        0x51B,
-       0,
+       0x51C,
        0x51D,
-       0,
+       0x51E,
        0x51F,
-       0,
+       0x520,
        0x521,
-       0,
+       0x522,
        0x523,
-       0,
+       0x524,
        0x525,
-       0,
+       0x526,
        0x527,
-       0,
+       0x528,
        0x529,
-       0,
+       0x52A,
        0x52B,
-       0,
+       0x52C,
        0x52D,
-       0,
+       0x52E,
        0x52F,
-       0,
-       0x561,
-       0,
-       CF_use_AUX_TABLE_7,
-       0,
-       0x2D00,
-       0,
-       0x2D27,
-       0,
-       0x2D2D,
-       0,
-       0x13F0,
-       0,
-       0x432,
-       0x434,
-       0x43E,
-       0x441,
-       0x442,
-       0x44A,
-       0x463,
-       0xA64B,
-       0,
+       0x531,
+       0x557,
+       0x587,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x13F8,
+       0x13FE,
+       0x1C80,
+       0x1C81,
+       0x1C82,
+       0x1C83,
+       0x1C85,
+       0x1C86,
+       0x1C87,
+       0x1C88,
+       0x1C89,
+       0x1E00,
        0x1E01,
-       0,
+       0x1E02,
        0x1E03,
-       0,
+       0x1E04,
        0x1E05,
-       0,
+       0x1E06,
        0x1E07,
-       0,
+       0x1E08,
        0x1E09,
-       0,
+       0x1E0A,
        0x1E0B,
-       0,
+       0x1E0C,
        0x1E0D,
-       0,
+       0x1E0E,
        0x1E0F,
-       0,
+       0x1E10,
        0x1E11,
-       0,
+       0x1E12,
        0x1E13,
-       0,
+       0x1E14,
        0x1E15,
-       0,
+       0x1E16,
        0x1E17,
-       0,
+       0x1E18,
        0x1E19,
-       0,
+       0x1E1A,
        0x1E1B,
-       0,
+       0x1E1C,
        0x1E1D,
-       0,
+       0x1E1E,
        0x1E1F,
-       0,
+       0x1E20,
        0x1E21,
-       0,
+       0x1E22,
        0x1E23,
-       0,
+       0x1E24,
        0x1E25,
-       0,
+       0x1E26,
        0x1E27,
-       0,
+       0x1E28,
        0x1E29,
-       0,
+       0x1E2A,
        0x1E2B,
-       0,
+       0x1E2C,
        0x1E2D,
-       0,
+       0x1E2E,
        0x1E2F,
-       0,
+       0x1E30,
        0x1E31,
-       0,
+       0x1E32,
        0x1E33,
-       0,
+       0x1E34,
        0x1E35,
-       0,
+       0x1E36,
        0x1E37,
-       0,
+       0x1E38,
        0x1E39,
-       0,
+       0x1E3A,
        0x1E3B,
-       0,
+       0x1E3C,
        0x1E3D,
-       0,
+       0x1E3E,
        0x1E3F,
-       0,
+       0x1E40,
        0x1E41,
-       0,
+       0x1E42,
        0x1E43,
-       0,
+       0x1E44,
        0x1E45,
-       0,
+       0x1E46,
        0x1E47,
-       0,
+       0x1E48,
        0x1E49,
-       0,
+       0x1E4A,
        0x1E4B,
-       0,
+       0x1E4C,
        0x1E4D,
-       0,
+       0x1E4E,
        0x1E4F,
-       0,
+       0x1E50,
        0x1E51,
-       0,
+       0x1E52,
        0x1E53,
-       0,
+       0x1E54,
        0x1E55,
-       0,
+       0x1E56,
        0x1E57,
-       0,
+       0x1E58,
        0x1E59,
-       0,
+       0x1E5A,
        0x1E5B,
-       0,
+       0x1E5C,
        0x1E5D,
-       0,
+       0x1E5E,
        0x1E5F,
-       0,
+       0x1E60,
        0x1E61,
-       0,
+       0x1E62,
        0x1E63,
-       0,
+       0x1E64,
        0x1E65,
-       0,
+       0x1E66,
        0x1E67,
-       0,
+       0x1E68,
        0x1E69,
-       0,
+       0x1E6A,
        0x1E6B,
-       0,
+       0x1E6C,
        0x1E6D,
-       0,
+       0x1E6E,
        0x1E6F,
-       0,
+       0x1E70,
        0x1E71,
-       0,
+       0x1E72,
        0x1E73,
-       0,
+       0x1E74,
        0x1E75,
-       0,
+       0x1E76,
        0x1E77,
-       0,
+       0x1E78,
        0x1E79,
-       0,
+       0x1E7A,
        0x1E7B,
-       0,
+       0x1E7C,
        0x1E7D,
-       0,
+       0x1E7E,
        0x1E7F,
-       0,
+       0x1E80,
        0x1E81,
-       0,
+       0x1E82,
        0x1E83,
-       0,
+       0x1E84,
        0x1E85,
-       0,
+       0x1E86,
        0x1E87,
-       0,
+       0x1E88,
        0x1E89,
-       0,
+       0x1E8A,
        0x1E8B,
-       0,
+       0x1E8C,
        0x1E8D,
-       0,
+       0x1E8E,
        0x1E8F,
-       0,
+       0x1E90,
        0x1E91,
-       0,
+       0x1E92,
        0x1E93,
-       0,
+       0x1E94,
        0x1E95,
-       0,
-       CF_use_AUX_TABLE_8,
-       CF_use_AUX_TABLE_9,
-       CF_use_AUX_TABLE_10,
-       CF_use_AUX_TABLE_11,
-       CF_use_AUX_TABLE_12,
-       0x1E61,
-       0,
-       CF_use_AUX_TABLE_1,
-       0,
+       0x1E96,
+       0x1E97,
+       0x1E98,
+       0x1E99,
+       0x1E9A,
+       0x1E9B,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
        0x1EA1,
-       0,
+       0x1EA2,
        0x1EA3,
-       0,
+       0x1EA4,
        0x1EA5,
-       0,
+       0x1EA6,
        0x1EA7,
-       0,
+       0x1EA8,
        0x1EA9,
-       0,
+       0x1EAA,
        0x1EAB,
-       0,
+       0x1EAC,
        0x1EAD,
-       0,
+       0x1EAE,
        0x1EAF,
-       0,
+       0x1EB0,
        0x1EB1,
-       0,
+       0x1EB2,
        0x1EB3,
-       0,
+       0x1EB4,
        0x1EB5,
-       0,
+       0x1EB6,
        0x1EB7,
-       0,
+       0x1EB8,
        0x1EB9,
-       0,
+       0x1EBA,
        0x1EBB,
-       0,
+       0x1EBC,
        0x1EBD,
-       0,
+       0x1EBE,
        0x1EBF,
-       0,
+       0x1EC0,
        0x1EC1,
-       0,
+       0x1EC2,
        0x1EC3,
-       0,
+       0x1EC4,
        0x1EC5,
-       0,
+       0x1EC6,
        0x1EC7,
-       0,
+       0x1EC8,
        0x1EC9,
-       0,
+       0x1ECA,
        0x1ECB,
-       0,
+       0x1ECC,
        0x1ECD,
-       0,
+       0x1ECE,
        0x1ECF,
-       0,
+       0x1ED0,
        0x1ED1,
-       0,
+       0x1ED2,
        0x1ED3,
-       0,
+       0x1ED4,
        0x1ED5,
-       0,
+       0x1ED6,
        0x1ED7,
-       0,
+       0x1ED8,
        0x1ED9,
-       0,
+       0x1EDA,
        0x1EDB,
-       0,
+       0x1EDC,
        0x1EDD,
-       0,
+       0x1EDE,
        0x1EDF,
-       0,
+       0x1EE0,
        0x1EE1,
-       0,
+       0x1EE2,
        0x1EE3,
-       0,
+       0x1EE4,
        0x1EE5,
-       0,
+       0x1EE6,
        0x1EE7,
-       0,
+       0x1EE8,
        0x1EE9,
-       0,
+       0x1EEA,
        0x1EEB,
-       0,
+       0x1EEC,
        0x1EED,
-       0,
+       0x1EEE,
        0x1EEF,
-       0,
+       0x1EF0,
        0x1EF1,
-       0,
+       0x1EF2,
        0x1EF3,
-       0,
+       0x1EF4,
        0x1EF5,
-       0,
+       0x1EF6,
        0x1EF7,
-       0,
+       0x1EF8,
        0x1EF9,
-       0,
+       0x1EFA,
        0x1EFB,
-       0,
+       0x1EFC,
        0x1EFD,
-       0,
+       0x1EFE,
        0x1EFF,
-       0,
-       0x1F00,
-       0,
+       0x1F08,
        0x1F10,
-       0,
-       0x1F20,
-       0,
+       0x1F18,
+       0x1F1E,
+       0x1F28,
        0x1F30,
-       0,
+       0x1F38,
        0x1F40,
-       0,
-       CF_use_AUX_TABLE_13,
-       0,
-       CF_use_AUX_TABLE_14,
-       0,
-       CF_use_AUX_TABLE_15,
-       0,
-       CF_use_AUX_TABLE_16,
-       0,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
        0x1F51,
-       0,
+       0x1F52,
        0x1F53,
-       0,
+       0x1F54,
        0x1F55,
-       0,
+       0x1F56,
        0x1F57,
-       0,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
        0x1F60,
-       0,
-       CF_use_AUX_TABLE_17,
-       CF_use_AUX_TABLE_18,
-       CF_use_AUX_TABLE_19,
-       CF_use_AUX_TABLE_20,
-       CF_use_AUX_TABLE_21,
-       CF_use_AUX_TABLE_22,
-       CF_use_AUX_TABLE_23,
-       CF_use_AUX_TABLE_24,
-       CF_use_AUX_TABLE_17,
-       CF_use_AUX_TABLE_18,
-       CF_use_AUX_TABLE_19,
-       CF_use_AUX_TABLE_20,
-       CF_use_AUX_TABLE_21,
-       CF_use_AUX_TABLE_22,
-       CF_use_AUX_TABLE_23,
-       CF_use_AUX_TABLE_24,
-       CF_use_AUX_TABLE_25,
-       CF_use_AUX_TABLE_26,
-       CF_use_AUX_TABLE_27,
-       CF_use_AUX_TABLE_28,
-       CF_use_AUX_TABLE_29,
-       CF_use_AUX_TABLE_30,
-       CF_use_AUX_TABLE_31,
-       CF_use_AUX_TABLE_32,
-       CF_use_AUX_TABLE_25,
-       CF_use_AUX_TABLE_26,
-       CF_use_AUX_TABLE_27,
-       CF_use_AUX_TABLE_28,
-       CF_use_AUX_TABLE_29,
-       CF_use_AUX_TABLE_30,
-       CF_use_AUX_TABLE_31,
-       CF_use_AUX_TABLE_32,
-       CF_use_AUX_TABLE_33,
-       CF_use_AUX_TABLE_34,
-       CF_use_AUX_TABLE_35,
-       CF_use_AUX_TABLE_36,
-       CF_use_AUX_TABLE_37,
-       CF_use_AUX_TABLE_38,
-       CF_use_AUX_TABLE_39,
-       CF_use_AUX_TABLE_40,
-       CF_use_AUX_TABLE_33,
-       CF_use_AUX_TABLE_34,
-       CF_use_AUX_TABLE_35,
-       CF_use_AUX_TABLE_36,
-       CF_use_AUX_TABLE_37,
-       CF_use_AUX_TABLE_38,
-       CF_use_AUX_TABLE_39,
-       CF_use_AUX_TABLE_40,
-       0,
-       CF_use_AUX_TABLE_41,
-       CF_use_AUX_TABLE_42,
-       CF_use_AUX_TABLE_43,
-       0,
-       CF_use_AUX_TABLE_44,
-       CF_use_AUX_TABLE_45,
-       0x1FB0,
+       0x1F68,
        0x1F70,
-       CF_use_AUX_TABLE_42,
-       0,
-       0x3B9,
-       0,
-       CF_use_AUX_TABLE_46,
-       CF_use_AUX_TABLE_47,
-       CF_use_AUX_TABLE_48,
-       0,
-       CF_use_AUX_TABLE_49,
-       CF_use_AUX_TABLE_50,
-       0x1F72,
-       CF_use_AUX_TABLE_47,
-       0,
-       CF_use_AUX_TABLE_51,
-       CF_use_AUX_TABLE_5,
-       0,
-       CF_use_AUX_TABLE_52,
-       CF_use_AUX_TABLE_53,
-       0x1FD0,
-       0x1F76,
-       0,
-       CF_use_AUX_TABLE_54,
-       CF_use_AUX_TABLE_6,
-       CF_use_AUX_TABLE_55,
-       0,
-       CF_use_AUX_TABLE_56,
-       CF_use_AUX_TABLE_57,
-       0x1FE0,
-       0x1F7A,
+       0x1F80,
+       0x1F81,
+       0x1F82,
+       0x1F83,
+       0x1F84,
+       0x1F85,
+       0x1F86,
+       0x1F87,
+       0x1F88,
+       0x1F89,
+       0x1F8A,
+       0x1F8B,
+       0x1F8C,
+       0x1F8D,
+       0x1F8E,
+       0x1F8F,
+       0x1F90,
+       0x1F91,
+       0x1F92,
+       0x1F93,
+       0x1F94,
+       0x1F95,
+       0x1F96,
+       0x1F97,
+       0x1F98,
+       0x1F99,
+       0x1F9A,
+       0x1F9B,
+       0x1F9C,
+       0x1F9D,
+       0x1F9E,
+       0x1F9F,
+       0x1FA0,
+       0x1FA1,
+       0x1FA2,
+       0x1FA3,
+       0x1FA4,
+       0x1FA5,
+       0x1FA6,
+       0x1FA7,
+       0x1FA8,
+       0x1FA9,
+       0x1FAA,
+       0x1FAB,
+       0x1FAC,
+       0x1FAD,
+       0x1FAE,
+       0x1FAF,
+       0x1FB0,
+       0x1FB2,
+       0x1FB3,
+       0x1FB4,
+       0x1FB5,
+       0x1FB6,
+       0x1FB7,
+       0x1FB8,
+       0x1FBA,
+       0x1FBC,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC3,
+       0x1FC4,
+       0x1FC5,
+       0x1FC6,
+       0x1FC7,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD3,
+       0x1FD4,
+       0x1FD6,
+       0x1FD7,
+       0x1FD8,
+       0x1FDA,
+       0x1FDC,
+       0x1FE2,
+       0x1FE3,
+       0x1FE4,
        0x1FE5,
-       0,
-       CF_use_AUX_TABLE_58,
-       CF_use_AUX_TABLE_59,
-       CF_use_AUX_TABLE_60,
-       0,
-       CF_use_AUX_TABLE_61,
-       CF_use_AUX_TABLE_62,
-       0x1F78,
-       0x1F7C,
-       CF_use_AUX_TABLE_59,
-       0,
-       0x3C9,
-       0,
-       0x6B,
-       0xE5,
-       0,
-       0x214E,
-       0,
+       0x1FE6,
+       0x1FE7,
+       0x1FE8,
+       0x1FEA,
+       0x1FEC,
+       0x1FED,
+       0x1FF2,
+       0x1FF3,
+       0x1FF4,
+       0x1FF5,
+       0x1FF6,
+       0x1FF7,
+       0x1FF8,
+       0x1FFA,
+       0x1FFC,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212B,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x2160,
        0x2170,
-       0,
+       0x2183,
        0x2184,
-       0,
+       0x24B6,
        0x24D0,
-       0,
-       0x2C30,
-       0,
+       0x2C00,
+       0x2C2F,
+       0x2C60,
        0x2C61,
-       0,
-       0x26B,
-       0x1D7D,
-       0x27D,
-       0,
+       0x2C62,
+       0x2C63,
+       0x2C64,
+       0x2C65,
+       0x2C67,
        0x2C68,
-       0,
+       0x2C69,
        0x2C6A,
-       0,
+       0x2C6B,
        0x2C6C,
-       0,
-       0x251,
-       0x271,
-       0x250,
-       0x252,
-       0,
+       0x2C6D,
+       0x2C6E,
+       0x2C6F,
+       0x2C70,
+       0x2C71,
+       0x2C72,
        0x2C73,
-       0,
+       0x2C75,
        0x2C76,
-       0,
-       0x23F,
+       0x2C7E,
+       0x2C80,
        0x2C81,
-       0,
+       0x2C82,
        0x2C83,
-       0,
+       0x2C84,
        0x2C85,
-       0,
+       0x2C86,
        0x2C87,
-       0,
+       0x2C88,
        0x2C89,
-       0,
+       0x2C8A,
        0x2C8B,
-       0,
+       0x2C8C,
        0x2C8D,
-       0,
+       0x2C8E,
        0x2C8F,
-       0,
+       0x2C90,
        0x2C91,
-       0,
+       0x2C92,
        0x2C93,
-       0,
+       0x2C94,
        0x2C95,
-       0,
+       0x2C96,
        0x2C97,
-       0,
+       0x2C98,
        0x2C99,
-       0,
+       0x2C9A,
        0x2C9B,
-       0,
+       0x2C9C,
        0x2C9D,
-       0,
+       0x2C9E,
        0x2C9F,
-       0,
+       0x2CA0,
        0x2CA1,
-       0,
+       0x2CA2,
        0x2CA3,
-       0,
+       0x2CA4,
        0x2CA5,
-       0,
+       0x2CA6,
        0x2CA7,
-       0,
+       0x2CA8,
        0x2CA9,
-       0,
+       0x2CAA,
        0x2CAB,
-       0,
+       0x2CAC,
        0x2CAD,
-       0,
+       0x2CAE,
        0x2CAF,
-       0,
+       0x2CB0,
        0x2CB1,
-       0,
+       0x2CB2,
        0x2CB3,
-       0,
+       0x2CB4,
        0x2CB5,
-       0,
+       0x2CB6,
        0x2CB7,
-       0,
+       0x2CB8,
        0x2CB9,
-       0,
+       0x2CBA,
        0x2CBB,
-       0,
+       0x2CBC,
        0x2CBD,
-       0,
+       0x2CBE,
        0x2CBF,
-       0,
+       0x2CC0,
        0x2CC1,
-       0,
+       0x2CC2,
        0x2CC3,
-       0,
+       0x2CC4,
        0x2CC5,
-       0,
+       0x2CC6,
        0x2CC7,
-       0,
+       0x2CC8,
        0x2CC9,
-       0,
+       0x2CCA,
        0x2CCB,
-       0,
+       0x2CCC,
        0x2CCD,
-       0,
+       0x2CCE,
        0x2CCF,
-       0,
+       0x2CD0,
        0x2CD1,
-       0,
+       0x2CD2,
        0x2CD3,
-       0,
+       0x2CD4,
        0x2CD5,
-       0,
+       0x2CD6,
        0x2CD7,
-       0,
+       0x2CD8,
        0x2CD9,
-       0,
+       0x2CDA,
        0x2CDB,
-       0,
+       0x2CDC,
        0x2CDD,
-       0,
+       0x2CDE,
        0x2CDF,
-       0,
+       0x2CE0,
        0x2CE1,
-       0,
+       0x2CE2,
        0x2CE3,
-       0,
+       0x2CEB,
        0x2CEC,
-       0,
+       0x2CED,
        0x2CEE,
-       0,
+       0x2CF2,
        0x2CF3,
-       0,
+       0xA640,
        0xA641,
-       0,
+       0xA642,
        0xA643,
-       0,
+       0xA644,
        0xA645,
-       0,
+       0xA646,
        0xA647,
-       0,
+       0xA648,
        0xA649,
-       0,
+       0xA64A,
        0xA64B,
-       0,
+       0xA64C,
        0xA64D,
-       0,
+       0xA64E,
        0xA64F,
-       0,
+       0xA650,
        0xA651,
-       0,
+       0xA652,
        0xA653,
-       0,
+       0xA654,
        0xA655,
-       0,
+       0xA656,
        0xA657,
-       0,
+       0xA658,
        0xA659,
-       0,
+       0xA65A,
        0xA65B,
-       0,
+       0xA65C,
        0xA65D,
-       0,
+       0xA65E,
        0xA65F,
-       0,
+       0xA660,
        0xA661,
-       0,
+       0xA662,
        0xA663,
-       0,
+       0xA664,
        0xA665,
-       0,
+       0xA666,
        0xA667,
-       0,
+       0xA668,
        0xA669,
-       0,
+       0xA66A,
        0xA66B,
-       0,
+       0xA66C,
        0xA66D,
-       0,
+       0xA680,
        0xA681,
-       0,
+       0xA682,
        0xA683,
-       0,
+       0xA684,
        0xA685,
-       0,
+       0xA686,
        0xA687,
-       0,
+       0xA688,
        0xA689,
-       0,
+       0xA68A,
        0xA68B,
-       0,
+       0xA68C,
        0xA68D,
-       0,
+       0xA68E,
        0xA68F,
-       0,
+       0xA690,
        0xA691,
-       0,
+       0xA692,
        0xA693,
-       0,
+       0xA694,
        0xA695,
-       0,
+       0xA696,
        0xA697,
-       0,
+       0xA698,
        0xA699,
-       0,
+       0xA69A,
        0xA69B,
-       0,
+       0xA722,
        0xA723,
-       0,
+       0xA724,
        0xA725,
-       0,
+       0xA726,
        0xA727,
-       0,
+       0xA728,
        0xA729,
-       0,
+       0xA72A,
        0xA72B,
-       0,
+       0xA72C,
        0xA72D,
-       0,
+       0xA72E,
        0xA72F,
-       0,
+       0xA732,
        0xA733,
-       0,
+       0xA734,
        0xA735,
-       0,
+       0xA736,
        0xA737,
-       0,
+       0xA738,
        0xA739,
-       0,
+       0xA73A,
        0xA73B,
-       0,
+       0xA73C,
        0xA73D,
-       0,
+       0xA73E,
        0xA73F,
-       0,
+       0xA740,
        0xA741,
-       0,
+       0xA742,
        0xA743,
-       0,
+       0xA744,
        0xA745,
-       0,
+       0xA746,
        0xA747,
-       0,
+       0xA748,
        0xA749,
-       0,
+       0xA74A,
        0xA74B,
-       0,
+       0xA74C,
        0xA74D,
-       0,
+       0xA74E,
        0xA74F,
-       0,
+       0xA750,
        0xA751,
-       0,
+       0xA752,
        0xA753,
-       0,
+       0xA754,
        0xA755,
-       0,
+       0xA756,
        0xA757,
-       0,
+       0xA758,
        0xA759,
-       0,
+       0xA75A,
        0xA75B,
-       0,
+       0xA75C,
        0xA75D,
-       0,
+       0xA75E,
        0xA75F,
-       0,
+       0xA760,
        0xA761,
-       0,
+       0xA762,
        0xA763,
-       0,
+       0xA764,
        0xA765,
-       0,
+       0xA766,
        0xA767,
-       0,
+       0xA768,
        0xA769,
-       0,
+       0xA76A,
        0xA76B,
-       0,
+       0xA76C,
        0xA76D,
-       0,
+       0xA76E,
        0xA76F,
-       0,
+       0xA779,
        0xA77A,
-       0,
+       0xA77B,
        0xA77C,
-       0,
-       0x1D79,
+       0xA77D,
+       0xA77E,
        0xA77F,
-       0,
+       0xA780,
        0xA781,
-       0,
+       0xA782,
        0xA783,
-       0,
+       0xA784,
        0xA785,
-       0,
+       0xA786,
        0xA787,
-       0,
+       0xA78B,
        0xA78C,
-       0,
-       0x265,
-       0,
+       0xA78D,
+       0xA78E,
+       0xA790,
        0xA791,
-       0,
+       0xA792,
        0xA793,
-       0,
+       0xA796,
        0xA797,
-       0,
+       0xA798,
        0xA799,
-       0,
+       0xA79A,
        0xA79B,
-       0,
+       0xA79C,
        0xA79D,
-       0,
+       0xA79E,
        0xA79F,
-       0,
+       0xA7A0,
        0xA7A1,
-       0,
+       0xA7A2,
        0xA7A3,
-       0,
+       0xA7A4,
        0xA7A5,
-       0,
+       0xA7A6,
        0xA7A7,
-       0,
+       0xA7A8,
        0xA7A9,
-       0,
-       0x266,
-       0x25C,
-       0x261,
-       0x26C,
-       0x26A,
-       0,
-       0x29E,
-       0x287,
-       0x29D,
-       0xAB53,
+       0xA7AA,
+       0xA7AB,
+       0xA7AC,
+       0xA7AD,
+       0xA7AE,
+       0xA7AF,
+       0xA7B0,
+       0xA7B1,
+       0xA7B2,
+       0xA7B3,
+       0xA7B4,
        0xA7B5,
-       0,
+       0xA7B6,
        0xA7B7,
-       0,
-       0x13A0,
-       0,
-       CF_use_AUX_TABLE_63,
-       CF_use_AUX_TABLE_64,
-       CF_use_AUX_TABLE_65,
-       CF_use_AUX_TABLE_66,
-       CF_use_AUX_TABLE_67,
-       CF_use_AUX_TABLE_68,
-       0,
-       CF_use_AUX_TABLE_69,
-       CF_use_AUX_TABLE_70,
-       CF_use_AUX_TABLE_71,
-       CF_use_AUX_TABLE_72,
-       CF_use_AUX_TABLE_73,
-       0,
-       0xFF41,
-       0,
+       0xAB70,
+       0xABC0,
+       0xFB00,
+       0xFB01,
+       0xFB02,
+       0xFB03,
+       0xFB04,
+       0xFB05,
+       0xFB07,
+       0xFB13,
+       0xFB14,
+       0xFB15,
+       0xFB16,
+       0xFB17,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0x10400,
        0x10428,
-       0,
-       0x104D8,
-       0,
-       0x10CC0,
-       0,
+       0x104B0,
+       0x104D4,
+       0x10C80,
+       0x10CB3,
+       0x118A0,
        0x118C0,
-       0,
-       0x1E922,
-       0
+       0x1E900,
+       0x1E922
 };
 
-#   endif      /* ASCII/Latin1 */
+#   endif      /* EBCDIC 1047 */
+
+#endif /* defined(PERL_IN_UTF8_C) */
+
+#if defined(PERL_IN_UTF8_C)
 
 #   if 'A' == 193 /* EBCDIC 1047 */ \
      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
      && '$' == 91 && '@' == 124 && '`' == 121
 
-static const UV Case_Folding_invlist[] = { /* for EBCDIC 1047 */
-       1392,   /* Number of elements */
-       148565664, /* Version and data structure type */
-       0,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x59,
-       0x5A,
-       0x62,
-       0x6A,
-       0x71,
-       0x79,
-       0x80,
+/* Negative enum values indicate the need to use an auxiliary table
+ * consisting of the list of enums this one expands to.  The absolute
+ * values of the negative enums are indices into a table of the auxiliary
+ * tables' addresses */
+typedef enum {
+       CF_0 = 0,
+       CF_use_AUX_TABLE_1 = -1,
+       CF_use_AUX_TABLE_2 = -2,
+       CF_use_AUX_TABLE_3 = -3,
+       CF_use_AUX_TABLE_4 = -4,
+       CF_use_AUX_TABLE_5 = -5,
+       CF_use_AUX_TABLE_6 = -6,
+       CF_use_AUX_TABLE_7 = -7,
+       CF_use_AUX_TABLE_8 = -8,
+       CF_use_AUX_TABLE_9 = -9,
+       CF_use_AUX_TABLE_10 = -10,
+       CF_use_AUX_TABLE_11 = -11,
+       CF_use_AUX_TABLE_12 = -12,
+       CF_use_AUX_TABLE_13 = -13,
+       CF_use_AUX_TABLE_14 = -14,
+       CF_use_AUX_TABLE_15 = -15,
+       CF_use_AUX_TABLE_16 = -16,
+       CF_use_AUX_TABLE_17 = -17,
+       CF_use_AUX_TABLE_18 = -18,
+       CF_use_AUX_TABLE_19 = -19,
+       CF_use_AUX_TABLE_20 = -20,
+       CF_use_AUX_TABLE_21 = -21,
+       CF_use_AUX_TABLE_22 = -22,
+       CF_use_AUX_TABLE_23 = -23,
+       CF_use_AUX_TABLE_24 = -24,
+       CF_use_AUX_TABLE_25 = -25,
+       CF_use_AUX_TABLE_26 = -26,
+       CF_use_AUX_TABLE_27 = -27,
+       CF_use_AUX_TABLE_28 = -28,
+       CF_use_AUX_TABLE_29 = -29,
+       CF_use_AUX_TABLE_30 = -30,
+       CF_use_AUX_TABLE_31 = -31,
+       CF_use_AUX_TABLE_32 = -32,
+       CF_use_AUX_TABLE_33 = -33,
+       CF_use_AUX_TABLE_34 = -34,
+       CF_use_AUX_TABLE_35 = -35,
+       CF_use_AUX_TABLE_36 = -36,
+       CF_use_AUX_TABLE_37 = -37,
+       CF_use_AUX_TABLE_38 = -38,
+       CF_use_AUX_TABLE_39 = -39,
+       CF_use_AUX_TABLE_40 = -40,
+       CF_use_AUX_TABLE_41 = -41,
+       CF_use_AUX_TABLE_42 = -42,
+       CF_use_AUX_TABLE_43 = -43,
+       CF_use_AUX_TABLE_44 = -44,
+       CF_use_AUX_TABLE_45 = -45,
+       CF_use_AUX_TABLE_46 = -46,
+       CF_use_AUX_TABLE_47 = -47,
+       CF_use_AUX_TABLE_48 = -48,
+       CF_use_AUX_TABLE_49 = -49,
+       CF_use_AUX_TABLE_50 = -50,
+       CF_use_AUX_TABLE_51 = -51,
+       CF_use_AUX_TABLE_52 = -52,
+       CF_use_AUX_TABLE_53 = -53,
+       CF_use_AUX_TABLE_54 = -54,
+       CF_use_AUX_TABLE_55 = -55,
+       CF_use_AUX_TABLE_56 = -56,
+       CF_use_AUX_TABLE_57 = -57,
+       CF_use_AUX_TABLE_58 = -58,
+       CF_use_AUX_TABLE_59 = -59,
+       CF_use_AUX_TABLE_60 = -60,
+       CF_use_AUX_TABLE_61 = -61,
+       CF_use_AUX_TABLE_62 = -62,
+       CF_use_AUX_TABLE_63 = -63,
+       CF_use_AUX_TABLE_64 = -64,
+       CF_use_AUX_TABLE_65 = -65,
+       CF_use_AUX_TABLE_66 = -66,
+       CF_use_AUX_TABLE_67 = -67,
+       CF_use_AUX_TABLE_68 = -68,
+       CF_use_AUX_TABLE_69 = -69,
+       CF_use_AUX_TABLE_70 = -70,
+       CF_use_AUX_TABLE_71 = -71,
+       CF_use_AUX_TABLE_72 = -72,
+       CF_use_AUX_TABLE_73 = -73
+} CF_enum;
+
+#   endif      /* EBCDIC 1047 */
+
+#   if 'A' == 193 /* EBCDIC 1047 */ \
+     && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
+     && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
+     && '$' == 91 && '@' == 124 && '`' == 121
+
+#define HAS_CF_AUX_TABLES
+
+static const unsigned int CF_AUX_TABLE_1[] = {
+       0xA2,
+       0xA2
+};
+
+static const unsigned int CF_AUX_TABLE_2[] = {
+       0x89,
+       0x307
+};
+
+static const unsigned int CF_AUX_TABLE_3[] = {
+       0x2BC,
+       0x95
+};
+
+static const unsigned int CF_AUX_TABLE_4[] = {
+       0x91,
+       0x30C
+};
+
+static const unsigned int CF_AUX_TABLE_5[] = {
+       0x3B9,
+       0x308,
+       0x301
+};
+
+static const unsigned int CF_AUX_TABLE_6[] = {
+       0x3C5,
+       0x308,
+       0x301
+};
+
+static const unsigned int CF_AUX_TABLE_7[] = {
+       0x565,
+       0x582
+};
+
+static const unsigned int CF_AUX_TABLE_8[] = {
+       0x88,
+       0x331
+};
+
+static const unsigned int CF_AUX_TABLE_9[] = {
+       0xA3,
+       0x308
+};
+
+static const unsigned int CF_AUX_TABLE_10[] = {
+       0xA6,
+       0x30A
+};
+
+static const unsigned int CF_AUX_TABLE_11[] = {
+       0xA8,
+       0x30A
+};
+
+static const unsigned int CF_AUX_TABLE_12[] = {
        0x81,
-       0x9E,
-       0x9F,
-       0xA0,
-       0xA1,
-       0xAC,
-       0xAD,
-       0xAE,
-       0xAF,
-       0xBA,
-       0xBB,
-       0xC1,
-       0xCA,
-       0xD1,
-       0xDA,
-       0xE2,
-       0xEA,
-       0xEB,
-       0xF0,
-       0xFB,
-       0xFF,
-       0x100,
+       0x2BE
+};
+
+static const unsigned int CF_AUX_TABLE_13[] = {
+       0x3C5,
+       0x313
+};
+
+static const unsigned int CF_AUX_TABLE_14[] = {
+       0x3C5,
+       0x313,
+       0x300
+};
+
+static const unsigned int CF_AUX_TABLE_15[] = {
+       0x3C5,
+       0x313,
+       0x301
+};
+
+static const unsigned int CF_AUX_TABLE_16[] = {
+       0x3C5,
+       0x313,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_17[] = {
+       0x1F00,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_18[] = {
+       0x1F01,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_19[] = {
+       0x1F02,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_20[] = {
+       0x1F03,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_21[] = {
+       0x1F04,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_22[] = {
+       0x1F05,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_23[] = {
+       0x1F06,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_24[] = {
+       0x1F07,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_25[] = {
+       0x1F20,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_26[] = {
+       0x1F21,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_27[] = {
+       0x1F22,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_28[] = {
+       0x1F23,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_29[] = {
+       0x1F24,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_30[] = {
+       0x1F25,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_31[] = {
+       0x1F26,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_32[] = {
+       0x1F27,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_33[] = {
+       0x1F60,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_34[] = {
+       0x1F61,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_35[] = {
+       0x1F62,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_36[] = {
+       0x1F63,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_37[] = {
+       0x1F64,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_38[] = {
+       0x1F65,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_39[] = {
+       0x1F66,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_40[] = {
+       0x1F67,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_41[] = {
+       0x1F70,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_42[] = {
+       0x3B1,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_43[] = {
+       0x3AC,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_44[] = {
+       0x3B1,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_45[] = {
+       0x3B1,
+       0x342,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_46[] = {
+       0x1F74,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_47[] = {
+       0x3B7,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_48[] = {
+       0x3AE,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_49[] = {
+       0x3B7,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_50[] = {
+       0x3B7,
+       0x342,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_51[] = {
+       0x3B9,
+       0x308,
+       0x300
+};
+
+static const unsigned int CF_AUX_TABLE_52[] = {
+       0x3B9,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_53[] = {
+       0x3B9,
+       0x308,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_54[] = {
+       0x3C5,
+       0x308,
+       0x300
+};
+
+static const unsigned int CF_AUX_TABLE_55[] = {
+       0x3C1,
+       0x313
+};
+
+static const unsigned int CF_AUX_TABLE_56[] = {
+       0x3C5,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_57[] = {
+       0x3C5,
+       0x308,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_58[] = {
+       0x1F7C,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_59[] = {
+       0x3C9,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_60[] = {
+       0x3CE,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_61[] = {
+       0x3C9,
+       0x342
+};
+
+static const unsigned int CF_AUX_TABLE_62[] = {
+       0x3C9,
+       0x342,
+       0x3B9
+};
+
+static const unsigned int CF_AUX_TABLE_63[] = {
+       0x86,
+       0x86
+};
+
+static const unsigned int CF_AUX_TABLE_64[] = {
+       0x86,
+       0x89
+};
+
+static const unsigned int CF_AUX_TABLE_65[] = {
+       0x86,
+       0x93
+};
+
+static const unsigned int CF_AUX_TABLE_66[] = {
+       0x86,
+       0x86,
+       0x89
+};
+
+static const unsigned int CF_AUX_TABLE_67[] = {
+       0x86,
+       0x86,
+       0x93
+};
+
+static const unsigned int CF_AUX_TABLE_68[] = {
+       0xA2,
+       0xA3
+};
+
+static const unsigned int CF_AUX_TABLE_69[] = {
+       0x574,
+       0x576
+};
+
+static const unsigned int CF_AUX_TABLE_70[] = {
+       0x574,
+       0x565
+};
+
+static const unsigned int CF_AUX_TABLE_71[] = {
+       0x574,
+       0x56B
+};
+
+static const unsigned int CF_AUX_TABLE_72[] = {
+       0x57E,
+       0x576
+};
+
+static const unsigned int CF_AUX_TABLE_73[] = {
+       0x574,
+       0x56D
+};
+
+static const unsigned int * const CF_AUX_TABLE_ptrs[] = {
+       NULL,   /* Placeholder */
+       CF_AUX_TABLE_1,
+       CF_AUX_TABLE_2,
+       CF_AUX_TABLE_3,
+       CF_AUX_TABLE_4,
+       CF_AUX_TABLE_5,
+       CF_AUX_TABLE_6,
+       CF_AUX_TABLE_7,
+       CF_AUX_TABLE_8,
+       CF_AUX_TABLE_9,
+       CF_AUX_TABLE_10,
+       CF_AUX_TABLE_11,
+       CF_AUX_TABLE_12,
+       CF_AUX_TABLE_13,
+       CF_AUX_TABLE_14,
+       CF_AUX_TABLE_15,
+       CF_AUX_TABLE_16,
+       CF_AUX_TABLE_17,
+       CF_AUX_TABLE_18,
+       CF_AUX_TABLE_19,
+       CF_AUX_TABLE_20,
+       CF_AUX_TABLE_21,
+       CF_AUX_TABLE_22,
+       CF_AUX_TABLE_23,
+       CF_AUX_TABLE_24,
+       CF_AUX_TABLE_25,
+       CF_AUX_TABLE_26,
+       CF_AUX_TABLE_27,
+       CF_AUX_TABLE_28,
+       CF_AUX_TABLE_29,
+       CF_AUX_TABLE_30,
+       CF_AUX_TABLE_31,
+       CF_AUX_TABLE_32,
+       CF_AUX_TABLE_33,
+       CF_AUX_TABLE_34,
+       CF_AUX_TABLE_35,
+       CF_AUX_TABLE_36,
+       CF_AUX_TABLE_37,
+       CF_AUX_TABLE_38,
+       CF_AUX_TABLE_39,
+       CF_AUX_TABLE_40,
+       CF_AUX_TABLE_41,
+       CF_AUX_TABLE_42,
+       CF_AUX_TABLE_43,
+       CF_AUX_TABLE_44,
+       CF_AUX_TABLE_45,
+       CF_AUX_TABLE_46,
+       CF_AUX_TABLE_47,
+       CF_AUX_TABLE_48,
+       CF_AUX_TABLE_49,
+       CF_AUX_TABLE_50,
+       CF_AUX_TABLE_51,
+       CF_AUX_TABLE_52,
+       CF_AUX_TABLE_53,
+       CF_AUX_TABLE_54,
+       CF_AUX_TABLE_55,
+       CF_AUX_TABLE_56,
+       CF_AUX_TABLE_57,
+       CF_AUX_TABLE_58,
+       CF_AUX_TABLE_59,
+       CF_AUX_TABLE_60,
+       CF_AUX_TABLE_61,
+       CF_AUX_TABLE_62,
+       CF_AUX_TABLE_63,
+       CF_AUX_TABLE_64,
+       CF_AUX_TABLE_65,
+       CF_AUX_TABLE_66,
+       CF_AUX_TABLE_67,
+       CF_AUX_TABLE_68,
+       CF_AUX_TABLE_69,
+       CF_AUX_TABLE_70,
+       CF_AUX_TABLE_71,
+       CF_AUX_TABLE_72,
+       CF_AUX_TABLE_73
+};
+
+/* Parallel table to the above, giving the number of elements in each table
+ * pointed to */
+static const U8 CF_AUX_TABLE_lengths[] = {
+       0,      /* Placeholder */
+       2       /* CF_AUX_TABLE_1 */,
+       2       /* CF_AUX_TABLE_2 */,
+       2       /* CF_AUX_TABLE_3 */,
+       2       /* CF_AUX_TABLE_4 */,
+       3       /* CF_AUX_TABLE_5 */,
+       3       /* CF_AUX_TABLE_6 */,
+       2       /* CF_AUX_TABLE_7 */,
+       2       /* CF_AUX_TABLE_8 */,
+       2       /* CF_AUX_TABLE_9 */,
+       2       /* CF_AUX_TABLE_10 */,
+       2       /* CF_AUX_TABLE_11 */,
+       2       /* CF_AUX_TABLE_12 */,
+       2       /* CF_AUX_TABLE_13 */,
+       3       /* CF_AUX_TABLE_14 */,
+       3       /* CF_AUX_TABLE_15 */,
+       3       /* CF_AUX_TABLE_16 */,
+       2       /* CF_AUX_TABLE_17 */,
+       2       /* CF_AUX_TABLE_18 */,
+       2       /* CF_AUX_TABLE_19 */,
+       2       /* CF_AUX_TABLE_20 */,
+       2       /* CF_AUX_TABLE_21 */,
+       2       /* CF_AUX_TABLE_22 */,
+       2       /* CF_AUX_TABLE_23 */,
+       2       /* CF_AUX_TABLE_24 */,
+       2       /* CF_AUX_TABLE_25 */,
+       2       /* CF_AUX_TABLE_26 */,
+       2       /* CF_AUX_TABLE_27 */,
+       2       /* CF_AUX_TABLE_28 */,
+       2       /* CF_AUX_TABLE_29 */,
+       2       /* CF_AUX_TABLE_30 */,
+       2       /* CF_AUX_TABLE_31 */,
+       2       /* CF_AUX_TABLE_32 */,
+       2       /* CF_AUX_TABLE_33 */,
+       2       /* CF_AUX_TABLE_34 */,
+       2       /* CF_AUX_TABLE_35 */,
+       2       /* CF_AUX_TABLE_36 */,
+       2       /* CF_AUX_TABLE_37 */,
+       2       /* CF_AUX_TABLE_38 */,
+       2       /* CF_AUX_TABLE_39 */,
+       2       /* CF_AUX_TABLE_40 */,
+       2       /* CF_AUX_TABLE_41 */,
+       2       /* CF_AUX_TABLE_42 */,
+       2       /* CF_AUX_TABLE_43 */,
+       2       /* CF_AUX_TABLE_44 */,
+       3       /* CF_AUX_TABLE_45 */,
+       2       /* CF_AUX_TABLE_46 */,
+       2       /* CF_AUX_TABLE_47 */,
+       2       /* CF_AUX_TABLE_48 */,
+       2       /* CF_AUX_TABLE_49 */,
+       3       /* CF_AUX_TABLE_50 */,
+       3       /* CF_AUX_TABLE_51 */,
+       2       /* CF_AUX_TABLE_52 */,
+       3       /* CF_AUX_TABLE_53 */,
+       3       /* CF_AUX_TABLE_54 */,
+       2       /* CF_AUX_TABLE_55 */,
+       2       /* CF_AUX_TABLE_56 */,
+       3       /* CF_AUX_TABLE_57 */,
+       2       /* CF_AUX_TABLE_58 */,
+       2       /* CF_AUX_TABLE_59 */,
+       2       /* CF_AUX_TABLE_60 */,
+       2       /* CF_AUX_TABLE_61 */,
+       3       /* CF_AUX_TABLE_62 */,
+       2       /* CF_AUX_TABLE_63 */,
+       2       /* CF_AUX_TABLE_64 */,
+       2       /* CF_AUX_TABLE_65 */,
+       3       /* CF_AUX_TABLE_66 */,
+       3       /* CF_AUX_TABLE_67 */,
+       2       /* CF_AUX_TABLE_68 */,
+       2       /* CF_AUX_TABLE_69 */,
+       2       /* CF_AUX_TABLE_70 */,
+       2       /* CF_AUX_TABLE_71 */,
+       2       /* CF_AUX_TABLE_72 */,
+       2       /* CF_AUX_TABLE_73 */
+};
+
+static const int Case_Folding_invmap[] = { /* for EBCDIC 1047 */
+       0,
+       CF_use_AUX_TABLE_1,
+       0,
+       0x42,
+       0,
+       0x51,
+       0,
+       0x70,
+       0,
+       0x9C,
+       0,
+       0x3BC,
+       0,
+       0x8C,
+       0,
+       0x8E,
+       0,
+       0x8D,
+       0,
+       0x81,
+       0,
+       0x91,
+       0,
+       0xA2,
+       0,
+       0xCB,
+       0,
+       0xDB,
+       0,
        0x101,
-       0x102,
+       0,
        0x103,
-       0x104,
+       0,
        0x105,
-       0x106,
+       0,
        0x107,
-       0x108,
+       0,
        0x109,
-       0x10A,
+       0,
        0x10B,
-       0x10C,
+       0,
        0x10D,
-       0x10E,
+       0,
        0x10F,
-       0x110,
+       0,
        0x111,
-       0x112,
+       0,
        0x113,
-       0x114,
+       0,
        0x115,
-       0x116,
+       0,
        0x117,
-       0x118,
+       0,
        0x119,
-       0x11A,
+       0,
        0x11B,
-       0x11C,
+       0,
        0x11D,
-       0x11E,
+       0,
        0x11F,
-       0x120,
+       0,
        0x121,
-       0x122,
+       0,
        0x123,
-       0x124,
+       0,
        0x125,
-       0x126,
+       0,
        0x127,
-       0x128,
+       0,
        0x129,
-       0x12A,
+       0,
        0x12B,
-       0x12C,
+       0,
        0x12D,
-       0x12E,
+       0,
        0x12F,
-       0x130,
-       0x131,
-       0x132,
+       0,
+       CF_use_AUX_TABLE_2,
+       0,
        0x133,
-       0x134,
+       0,
        0x135,
-       0x136,
+       0,
        0x137,
-       0x139,
+       0,
        0x13A,
-       0x13B,
+       0,
        0x13C,
-       0x13D,
+       0,
        0x13E,
-       0x13F,
+       0,
        0x140,
-       0x141,
+       0,
        0x142,
-       0x143,
+       0,
        0x144,
-       0x145,
+       0,
        0x146,
-       0x147,
+       0,
        0x148,
-       0x149,
-       0x14A,
+       0,
+       CF_use_AUX_TABLE_3,
        0x14B,
-       0x14C,
+       0,
        0x14D,
-       0x14E,
+       0,
        0x14F,
-       0x150,
+       0,
        0x151,
-       0x152,
+       0,
        0x153,
-       0x154,
+       0,
        0x155,
-       0x156,
+       0,
        0x157,
-       0x158,
+       0,
        0x159,
-       0x15A,
+       0,
        0x15B,
-       0x15C,
+       0,
        0x15D,
-       0x15E,
+       0,
        0x15F,
-       0x160,
+       0,
        0x161,
-       0x162,
+       0,
        0x163,
-       0x164,
+       0,
        0x165,
-       0x166,
+       0,
        0x167,
-       0x168,
+       0,
        0x169,
-       0x16A,
+       0,
        0x16B,
-       0x16C,
+       0,
        0x16D,
-       0x16E,
+       0,
        0x16F,
-       0x170,
+       0,
        0x171,
-       0x172,
+       0,
        0x173,
-       0x174,
+       0,
        0x175,
-       0x176,
+       0,
        0x177,
-       0x178,
-       0x179,
+       0,
+       0xDF,
        0x17A,
-       0x17B,
+       0,
        0x17C,
-       0x17D,
+       0,
        0x17E,
-       0x17F,
-       0x180,
-       0x181,
-       0x182,
-       0x183,
-       0x184,
+       0,
+       0xA2,
+       0,
+       0x253,
+       0x183,
+       0,
        0x185,
-       0x186,
-       0x187,
+       0,
+       0x254,
        0x188,
-       0x189,
-       0x18B,
+       0,
+       0x256,
        0x18C,
-       0x18E,
-       0x18F,
-       0x190,
-       0x191,
+       0,
+       0x1DD,
+       0x259,
+       0x25B,
        0x192,
-       0x193,
-       0x194,
-       0x195,
-       0x196,
-       0x197,
-       0x198,
+       0,
+       0x260,
+       0x263,
+       0,
+       0x269,
+       0x268,
        0x199,
-       0x19C,
-       0x19D,
-       0x19E,
-       0x19F,
-       0x1A0,
+       0,
+       0x26F,
+       0x272,
+       0,
+       0x275,
        0x1A1,
-       0x1A2,
+       0,
        0x1A3,
-       0x1A4,
+       0,
        0x1A5,
-       0x1A6,
-       0x1A7,
+       0,
+       0x280,
        0x1A8,
-       0x1A9,
-       0x1AA,
-       0x1AC,
+       0,
+       0x283,
+       0,
        0x1AD,
-       0x1AE,
-       0x1AF,
+       0,
+       0x288,
        0x1B0,
-       0x1B1,
-       0x1B3,
+       0,
+       0x28A,
        0x1B4,
-       0x1B5,
+       0,
        0x1B6,
-       0x1B7,
-       0x1B8,
+       0,
+       0x292,
        0x1B9,
-       0x1BC,
+       0,
        0x1BD,
-       0x1C4,
-       0x1C5,
+       0,
        0x1C6,
-       0x1C7,
-       0x1C8,
+       0x1C6,
+       0,
        0x1C9,
-       0x1CA,
-       0x1CB,
+       0x1C9,
+       0,
        0x1CC,
-       0x1CD,
+       0x1CC,
+       0,
        0x1CE,
-       0x1CF,
+       0,
        0x1D0,
-       0x1D1,
+       0,
        0x1D2,
-       0x1D3,
+       0,
        0x1D4,
-       0x1D5,
+       0,
        0x1D6,
-       0x1D7,
+       0,
        0x1D8,
-       0x1D9,
+       0,
        0x1DA,
-       0x1DB,
+       0,
        0x1DC,
-       0x1DE,
+       0,
        0x1DF,
-       0x1E0,
+       0,
        0x1E1,
-       0x1E2,
+       0,
        0x1E3,
-       0x1E4,
+       0,
        0x1E5,
-       0x1E6,
+       0,
        0x1E7,
-       0x1E8,
+       0,
        0x1E9,
-       0x1EA,
+       0,
        0x1EB,
-       0x1EC,
+       0,
        0x1ED,
-       0x1EE,
+       0,
        0x1EF,
-       0x1F0,
-       0x1F1,
-       0x1F2,
+       0,
+       CF_use_AUX_TABLE_4,
        0x1F3,
-       0x1F4,
+       0x1F3,
+       0,
        0x1F5,
-       0x1F6,
-       0x1F7,
-       0x1F8,
+       0,
+       0x195,
+       0x1BF,
        0x1F9,
-       0x1FA,
+       0,
        0x1FB,
-       0x1FC,
+       0,
        0x1FD,
-       0x1FE,
+       0,
        0x1FF,
-       0x200,
+       0,
        0x201,
-       0x202,
+       0,
        0x203,
-       0x204,
+       0,
        0x205,
-       0x206,
+       0,
        0x207,
-       0x208,
+       0,
        0x209,
-       0x20A,
+       0,
        0x20B,
-       0x20C,
+       0,
        0x20D,
-       0x20E,
+       0,
        0x20F,
-       0x210,
+       0,
        0x211,
-       0x212,
+       0,
        0x213,
-       0x214,
+       0,
        0x215,
-       0x216,
+       0,
        0x217,
-       0x218,
+       0,
        0x219,
-       0x21A,
+       0,
        0x21B,
-       0x21C,
+       0,
        0x21D,
-       0x21E,
+       0,
        0x21F,
-       0x220,
-       0x221,
-       0x222,
+       0,
+       0x19E,
+       0,
        0x223,
-       0x224,
+       0,
        0x225,
-       0x226,
+       0,
        0x227,
-       0x228,
+       0,
        0x229,
-       0x22A,
+       0,
        0x22B,
-       0x22C,
+       0,
        0x22D,
-       0x22E,
+       0,
        0x22F,
-       0x230,
+       0,
        0x231,
-       0x232,
+       0,
        0x233,
-       0x23A,
-       0x23B,
+       0,
+       0x2C65,
        0x23C,
-       0x23D,
-       0x23E,
-       0x23F,
-       0x241,
+       0,
+       0x19A,
+       0x2C66,
+       0,
        0x242,
-       0x243,
-       0x244,
-       0x245,
-       0x246,
+       0,
+       0x180,
+       0x289,
+       0x28C,
        0x247,
-       0x248,
+       0,
        0x249,
-       0x24A,
+       0,
        0x24B,
-       0x24C,
+       0,
        0x24D,
-       0x24E,
+       0,
        0x24F,
-       0x345,
-       0x346,
-       0x370,
+       0,
+       0x3B9,
+       0,
        0x371,
-       0x372,
+       0,
        0x373,
-       0x376,
+       0,
        0x377,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x390,
-       0x391,
-       0x3A2,
-       0x3A3,
+       0,
+       0x3F3,
+       0,
        0x3AC,
-       0x3B0,
+       0,
+       0x3AD,
+       0,
+       0x3CC,
+       0,
+       0x3CD,
+       CF_use_AUX_TABLE_5,
        0x3B1,
-       0x3C2,
+       0,
        0x3C3,
-       0x3CF,
-       0x3D0,
-       0x3D1,
-       0x3D2,
-       0x3D5,
-       0x3D6,
+       0,
+       CF_use_AUX_TABLE_6,
+       0,
+       0x3C3,
+       0,
        0x3D7,
-       0x3D8,
+       0x3B2,
+       0x3B8,
+       0,
+       0x3C6,
+       0x3C0,
+       0,
        0x3D9,
-       0x3DA,
+       0,
        0x3DB,
-       0x3DC,
+       0,
        0x3DD,
-       0x3DE,
+       0,
        0x3DF,
-       0x3E0,
+       0,
        0x3E1,
-       0x3E2,
+       0,
        0x3E3,
-       0x3E4,
+       0,
        0x3E5,
-       0x3E6,
+       0,
        0x3E7,
-       0x3E8,
+       0,
        0x3E9,
-       0x3EA,
+       0,
        0x3EB,
-       0x3EC,
+       0,
        0x3ED,
-       0x3EE,
+       0,
        0x3EF,
-       0x3F0,
-       0x3F1,
-       0x3F2,
-       0x3F4,
-       0x3F5,
-       0x3F6,
-       0x3F7,
+       0,
+       0x3BA,
+       0x3C1,
+       0,
+       0x3B8,
+       0x3B5,
+       0,
        0x3F8,
-       0x3F9,
-       0x3FA,
+       0,
+       0x3F2,
        0x3FB,
-       0x3FD,
-       0x400,
-       0x410,
+       0,
+       0x37B,
+       0x450,
        0x430,
-       0x460,
+       0,
        0x461,
-       0x462,
+       0,
        0x463,
-       0x464,
+       0,
        0x465,
-       0x466,
+       0,
        0x467,
-       0x468,
+       0,
        0x469,
-       0x46A,
+       0,
        0x46B,
-       0x46C,
+       0,
        0x46D,
-       0x46E,
+       0,
        0x46F,
-       0x470,
+       0,
        0x471,
-       0x472,
+       0,
        0x473,
-       0x474,
+       0,
        0x475,
-       0x476,
+       0,
        0x477,
-       0x478,
+       0,
        0x479,
-       0x47A,
+       0,
        0x47B,
-       0x47C,
+       0,
        0x47D,
-       0x47E,
+       0,
        0x47F,
-       0x480,
+       0,
        0x481,
-       0x48A,
+       0,
        0x48B,
-       0x48C,
+       0,
        0x48D,
-       0x48E,
+       0,
        0x48F,
-       0x490,
+       0,
        0x491,
-       0x492,
+       0,
        0x493,
-       0x494,
+       0,
        0x495,
-       0x496,
+       0,
        0x497,
-       0x498,
+       0,
        0x499,
-       0x49A,
+       0,
        0x49B,
-       0x49C,
+       0,
        0x49D,
-       0x49E,
+       0,
        0x49F,
-       0x4A0,
+       0,
        0x4A1,
-       0x4A2,
+       0,
        0x4A3,
-       0x4A4,
+       0,
        0x4A5,
-       0x4A6,
+       0,
        0x4A7,
-       0x4A8,
+       0,
        0x4A9,
-       0x4AA,
+       0,
        0x4AB,
-       0x4AC,
+       0,
        0x4AD,
-       0x4AE,
+       0,
        0x4AF,
-       0x4B0,
+       0,
        0x4B1,
-       0x4B2,
+       0,
        0x4B3,
-       0x4B4,
+       0,
        0x4B5,
-       0x4B6,
+       0,
        0x4B7,
-       0x4B8,
+       0,
        0x4B9,
-       0x4BA,
+       0,
        0x4BB,
-       0x4BC,
+       0,
        0x4BD,
-       0x4BE,
+       0,
        0x4BF,
-       0x4C0,
-       0x4C1,
+       0,
+       0x4CF,
        0x4C2,
-       0x4C3,
+       0,
        0x4C4,
-       0x4C5,
+       0,
        0x4C6,
-       0x4C7,
+       0,
        0x4C8,
-       0x4C9,
+       0,
        0x4CA,
-       0x4CB,
+       0,
        0x4CC,
-       0x4CD,
+       0,
        0x4CE,
-       0x4D0,
+       0,
        0x4D1,
-       0x4D2,
+       0,
        0x4D3,
-       0x4D4,
+       0,
        0x4D5,
-       0x4D6,
+       0,
        0x4D7,
-       0x4D8,
+       0,
        0x4D9,
-       0x4DA,
+       0,
        0x4DB,
-       0x4DC,
+       0,
        0x4DD,
-       0x4DE,
+       0,
        0x4DF,
-       0x4E0,
+       0,
        0x4E1,
-       0x4E2,
+       0,
        0x4E3,
-       0x4E4,
+       0,
        0x4E5,
-       0x4E6,
+       0,
        0x4E7,
-       0x4E8,
+       0,
        0x4E9,
-       0x4EA,
+       0,
        0x4EB,
-       0x4EC,
+       0,
        0x4ED,
-       0x4EE,
+       0,
        0x4EF,
-       0x4F0,
+       0,
        0x4F1,
-       0x4F2,
+       0,
        0x4F3,
-       0x4F4,
+       0,
        0x4F5,
-       0x4F6,
+       0,
        0x4F7,
-       0x4F8,
+       0,
        0x4F9,
-       0x4FA,
+       0,
        0x4FB,
-       0x4FC,
+       0,
        0x4FD,
-       0x4FE,
+       0,
        0x4FF,
-       0x500,
+       0,
        0x501,
-       0x502,
+       0,
        0x503,
-       0x504,
+       0,
        0x505,
-       0x506,
+       0,
        0x507,
-       0x508,
+       0,
        0x509,
-       0x50A,
+       0,
        0x50B,
-       0x50C,
+       0,
        0x50D,
-       0x50E,
+       0,
        0x50F,
-       0x510,
+       0,
        0x511,
-       0x512,
+       0,
        0x513,
-       0x514,
+       0,
        0x515,
-       0x516,
+       0,
        0x517,
-       0x518,
+       0,
        0x519,
-       0x51A,
+       0,
        0x51B,
-       0x51C,
+       0,
        0x51D,
-       0x51E,
+       0,
        0x51F,
-       0x520,
+       0,
        0x521,
-       0x522,
+       0,
        0x523,
-       0x524,
+       0,
        0x525,
-       0x526,
+       0,
        0x527,
-       0x528,
+       0,
        0x529,
-       0x52A,
+       0,
        0x52B,
-       0x52C,
+       0,
        0x52D,
-       0x52E,
+       0,
        0x52F,
-       0x531,
-       0x557,
-       0x587,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13F8,
-       0x13FE,
-       0x1C80,
-       0x1C81,
-       0x1C82,
-       0x1C83,
-       0x1C85,
-       0x1C86,
-       0x1C87,
-       0x1C88,
-       0x1C89,
-       0x1E00,
+       0,
+       0x561,
+       0,
+       CF_use_AUX_TABLE_7,
+       0,
+       0x2D00,
+       0,
+       0x2D27,
+       0,
+       0x2D2D,
+       0,
+       0x13F0,
+       0,
+       0x432,
+       0x434,
+       0x43E,
+       0x441,
+       0x442,
+       0x44A,
+       0x463,
+       0xA64B,
+       0,
        0x1E01,
-       0x1E02,
+       0,
        0x1E03,
-       0x1E04,
+       0,
        0x1E05,
-       0x1E06,
+       0,
        0x1E07,
-       0x1E08,
+       0,
        0x1E09,
-       0x1E0A,
+       0,
        0x1E0B,
-       0x1E0C,
+       0,
        0x1E0D,
-       0x1E0E,
+       0,
        0x1E0F,
-       0x1E10,
+       0,
        0x1E11,
-       0x1E12,
+       0,
        0x1E13,
-       0x1E14,
+       0,
        0x1E15,
-       0x1E16,
+       0,
        0x1E17,
-       0x1E18,
+       0,
        0x1E19,
-       0x1E1A,
+       0,
        0x1E1B,
-       0x1E1C,
+       0,
        0x1E1D,
-       0x1E1E,
+       0,
        0x1E1F,
-       0x1E20,
+       0,
        0x1E21,
-       0x1E22,
+       0,
        0x1E23,
-       0x1E24,
+       0,
        0x1E25,
-       0x1E26,
+       0,
        0x1E27,
-       0x1E28,
+       0,
        0x1E29,
-       0x1E2A,
+       0,
        0x1E2B,
-       0x1E2C,
+       0,
        0x1E2D,
-       0x1E2E,
+       0,
        0x1E2F,
-       0x1E30,
+       0,
        0x1E31,
-       0x1E32,
+       0,
        0x1E33,
-       0x1E34,
+       0,
        0x1E35,
-       0x1E36,
+       0,
        0x1E37,
-       0x1E38,
+       0,
        0x1E39,
-       0x1E3A,
+       0,
        0x1E3B,
-       0x1E3C,
+       0,
        0x1E3D,
-       0x1E3E,
+       0,
        0x1E3F,
-       0x1E40,
+       0,
        0x1E41,
-       0x1E42,
+       0,
        0x1E43,
-       0x1E44,
+       0,
        0x1E45,
-       0x1E46,
+       0,
        0x1E47,
-       0x1E48,
+       0,
        0x1E49,
-       0x1E4A,
+       0,
        0x1E4B,
-       0x1E4C,
+       0,
        0x1E4D,
-       0x1E4E,
+       0,
        0x1E4F,
-       0x1E50,
+       0,
        0x1E51,
-       0x1E52,
+       0,
        0x1E53,
-       0x1E54,
+       0,
        0x1E55,
-       0x1E56,
+       0,
        0x1E57,
-       0x1E58,
+       0,
        0x1E59,
-       0x1E5A,
+       0,
        0x1E5B,
-       0x1E5C,
+       0,
        0x1E5D,
-       0x1E5E,
+       0,
        0x1E5F,
-       0x1E60,
+       0,
        0x1E61,
-       0x1E62,
+       0,
        0x1E63,
-       0x1E64,
+       0,
        0x1E65,
-       0x1E66,
+       0,
        0x1E67,
-       0x1E68,
+       0,
        0x1E69,
-       0x1E6A,
+       0,
        0x1E6B,
-       0x1E6C,
+       0,
        0x1E6D,
-       0x1E6E,
+       0,
        0x1E6F,
-       0x1E70,
+       0,
        0x1E71,
-       0x1E72,
+       0,
        0x1E73,
-       0x1E74,
+       0,
        0x1E75,
-       0x1E76,
+       0,
        0x1E77,
-       0x1E78,
+       0,
        0x1E79,
-       0x1E7A,
+       0,
        0x1E7B,
-       0x1E7C,
+       0,
        0x1E7D,
-       0x1E7E,
+       0,
        0x1E7F,
-       0x1E80,
+       0,
        0x1E81,
-       0x1E82,
+       0,
        0x1E83,
-       0x1E84,
+       0,
        0x1E85,
-       0x1E86,
+       0,
        0x1E87,
-       0x1E88,
+       0,
        0x1E89,
-       0x1E8A,
+       0,
        0x1E8B,
-       0x1E8C,
+       0,
        0x1E8D,
-       0x1E8E,
+       0,
        0x1E8F,
-       0x1E90,
+       0,
        0x1E91,
-       0x1E92,
+       0,
        0x1E93,
-       0x1E94,
+       0,
        0x1E95,
-       0x1E96,
-       0x1E97,
-       0x1E98,
-       0x1E99,
-       0x1E9A,
-       0x1E9B,
-       0x1E9C,
-       0x1E9E,
-       0x1E9F,
-       0x1EA0,
+       0,
+       CF_use_AUX_TABLE_8,
+       CF_use_AUX_TABLE_9,
+       CF_use_AUX_TABLE_10,
+       CF_use_AUX_TABLE_11,
+       CF_use_AUX_TABLE_12,
+       0x1E61,
+       0,
+       CF_use_AUX_TABLE_1,
+       0,
        0x1EA1,
-       0x1EA2,
+       0,
        0x1EA3,
-       0x1EA4,
+       0,
        0x1EA5,
-       0x1EA6,
+       0,
        0x1EA7,
-       0x1EA8,
+       0,
        0x1EA9,
-       0x1EAA,
+       0,
        0x1EAB,
-       0x1EAC,
+       0,
        0x1EAD,
-       0x1EAE,
+       0,
        0x1EAF,
-       0x1EB0,
+       0,
        0x1EB1,
-       0x1EB2,
+       0,
        0x1EB3,
-       0x1EB4,
+       0,
        0x1EB5,
-       0x1EB6,
+       0,
        0x1EB7,
-       0x1EB8,
+       0,
        0x1EB9,
-       0x1EBA,
+       0,
        0x1EBB,
-       0x1EBC,
+       0,
        0x1EBD,
-       0x1EBE,
+       0,
        0x1EBF,
-       0x1EC0,
+       0,
        0x1EC1,
-       0x1EC2,
+       0,
        0x1EC3,
-       0x1EC4,
+       0,
        0x1EC5,
-       0x1EC6,
+       0,
        0x1EC7,
-       0x1EC8,
+       0,
        0x1EC9,
-       0x1ECA,
+       0,
        0x1ECB,
-       0x1ECC,
+       0,
        0x1ECD,
-       0x1ECE,
+       0,
        0x1ECF,
-       0x1ED0,
+       0,
        0x1ED1,
-       0x1ED2,
+       0,
        0x1ED3,
-       0x1ED4,
+       0,
        0x1ED5,
-       0x1ED6,
+       0,
        0x1ED7,
-       0x1ED8,
+       0,
        0x1ED9,
-       0x1EDA,
+       0,
        0x1EDB,
-       0x1EDC,
+       0,
        0x1EDD,
-       0x1EDE,
+       0,
        0x1EDF,
-       0x1EE0,
+       0,
        0x1EE1,
-       0x1EE2,
+       0,
        0x1EE3,
-       0x1EE4,
+       0,
        0x1EE5,
-       0x1EE6,
+       0,
        0x1EE7,
-       0x1EE8,
+       0,
        0x1EE9,
-       0x1EEA,
+       0,
        0x1EEB,
-       0x1EEC,
+       0,
        0x1EED,
-       0x1EEE,
+       0,
        0x1EEF,
-       0x1EF0,
+       0,
        0x1EF1,
-       0x1EF2,
+       0,
        0x1EF3,
-       0x1EF4,
+       0,
        0x1EF5,
-       0x1EF6,
+       0,
        0x1EF7,
-       0x1EF8,
+       0,
        0x1EF9,
-       0x1EFA,
+       0,
        0x1EFB,
-       0x1EFC,
+       0,
        0x1EFD,
-       0x1EFE,
+       0,
        0x1EFF,
-       0x1F08,
+       0,
+       0x1F00,
+       0,
        0x1F10,
-       0x1F18,
-       0x1F1E,
-       0x1F28,
+       0,
+       0x1F20,
+       0,
        0x1F30,
-       0x1F38,
+       0,
        0x1F40,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
+       0,
+       CF_use_AUX_TABLE_13,
+       0,
+       CF_use_AUX_TABLE_14,
+       0,
+       CF_use_AUX_TABLE_15,
+       0,
+       CF_use_AUX_TABLE_16,
+       0,
        0x1F51,
-       0x1F52,
+       0,
        0x1F53,
-       0x1F54,
+       0,
        0x1F55,
-       0x1F56,
+       0,
        0x1F57,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
+       0,
        0x1F60,
-       0x1F68,
-       0x1F70,
-       0x1F80,
-       0x1F81,
-       0x1F82,
-       0x1F83,
-       0x1F84,
-       0x1F85,
-       0x1F86,
-       0x1F87,
-       0x1F88,
-       0x1F89,
-       0x1F8A,
-       0x1F8B,
-       0x1F8C,
-       0x1F8D,
-       0x1F8E,
-       0x1F8F,
-       0x1F90,
-       0x1F91,
-       0x1F92,
-       0x1F93,
-       0x1F94,
-       0x1F95,
-       0x1F96,
-       0x1F97,
-       0x1F98,
-       0x1F99,
-       0x1F9A,
-       0x1F9B,
-       0x1F9C,
-       0x1F9D,
-       0x1F9E,
-       0x1F9F,
-       0x1FA0,
-       0x1FA1,
-       0x1FA2,
-       0x1FA3,
-       0x1FA4,
-       0x1FA5,
-       0x1FA6,
-       0x1FA7,
-       0x1FA8,
-       0x1FA9,
-       0x1FAA,
-       0x1FAB,
-       0x1FAC,
-       0x1FAD,
-       0x1FAE,
-       0x1FAF,
+       0,
+       CF_use_AUX_TABLE_17,
+       CF_use_AUX_TABLE_18,
+       CF_use_AUX_TABLE_19,
+       CF_use_AUX_TABLE_20,
+       CF_use_AUX_TABLE_21,
+       CF_use_AUX_TABLE_22,
+       CF_use_AUX_TABLE_23,
+       CF_use_AUX_TABLE_24,
+       CF_use_AUX_TABLE_17,
+       CF_use_AUX_TABLE_18,
+       CF_use_AUX_TABLE_19,
+       CF_use_AUX_TABLE_20,
+       CF_use_AUX_TABLE_21,
+       CF_use_AUX_TABLE_22,
+       CF_use_AUX_TABLE_23,
+       CF_use_AUX_TABLE_24,
+       CF_use_AUX_TABLE_25,
+       CF_use_AUX_TABLE_26,
+       CF_use_AUX_TABLE_27,
+       CF_use_AUX_TABLE_28,
+       CF_use_AUX_TABLE_29,
+       CF_use_AUX_TABLE_30,
+       CF_use_AUX_TABLE_31,
+       CF_use_AUX_TABLE_32,
+       CF_use_AUX_TABLE_25,
+       CF_use_AUX_TABLE_26,
+       CF_use_AUX_TABLE_27,
+       CF_use_AUX_TABLE_28,
+       CF_use_AUX_TABLE_29,
+       CF_use_AUX_TABLE_30,
+       CF_use_AUX_TABLE_31,
+       CF_use_AUX_TABLE_32,
+       CF_use_AUX_TABLE_33,
+       CF_use_AUX_TABLE_34,
+       CF_use_AUX_TABLE_35,
+       CF_use_AUX_TABLE_36,
+       CF_use_AUX_TABLE_37,
+       CF_use_AUX_TABLE_38,
+       CF_use_AUX_TABLE_39,
+       CF_use_AUX_TABLE_40,
+       CF_use_AUX_TABLE_33,
+       CF_use_AUX_TABLE_34,
+       CF_use_AUX_TABLE_35,
+       CF_use_AUX_TABLE_36,
+       CF_use_AUX_TABLE_37,
+       CF_use_AUX_TABLE_38,
+       CF_use_AUX_TABLE_39,
+       CF_use_AUX_TABLE_40,
+       0,
+       CF_use_AUX_TABLE_41,
+       CF_use_AUX_TABLE_42,
+       CF_use_AUX_TABLE_43,
+       0,
+       CF_use_AUX_TABLE_44,
+       CF_use_AUX_TABLE_45,
        0x1FB0,
-       0x1FB2,
-       0x1FB3,
-       0x1FB4,
-       0x1FB5,
-       0x1FB6,
-       0x1FB7,
-       0x1FB8,
-       0x1FBA,
-       0x1FBC,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC3,
-       0x1FC4,
-       0x1FC5,
-       0x1FC6,
-       0x1FC7,
-       0x1FC8,
-       0x1FCC,
-       0x1FCD,
-       0x1FD2,
-       0x1FD3,
-       0x1FD4,
-       0x1FD6,
-       0x1FD7,
-       0x1FD8,
-       0x1FDA,
-       0x1FDC,
-       0x1FE2,
-       0x1FE3,
-       0x1FE4,
-       0x1FE5,
-       0x1FE6,
-       0x1FE7,
-       0x1FE8,
-       0x1FEA,
-       0x1FEC,
-       0x1FED,
-       0x1FF2,
-       0x1FF3,
-       0x1FF4,
-       0x1FF5,
-       0x1FF6,
-       0x1FF7,
-       0x1FF8,
-       0x1FFA,
-       0x1FFC,
-       0x1FFD,
-       0x2126,
-       0x2127,
-       0x212A,
-       0x212B,
-       0x212C,
-       0x2132,
-       0x2133,
-       0x2160,
+       0x1F70,
+       CF_use_AUX_TABLE_42,
+       0,
+       0x3B9,
+       0,
+       CF_use_AUX_TABLE_46,
+       CF_use_AUX_TABLE_47,
+       CF_use_AUX_TABLE_48,
+       0,
+       CF_use_AUX_TABLE_49,
+       CF_use_AUX_TABLE_50,
+       0x1F72,
+       CF_use_AUX_TABLE_47,
+       0,
+       CF_use_AUX_TABLE_51,
+       CF_use_AUX_TABLE_5,
+       0,
+       CF_use_AUX_TABLE_52,
+       CF_use_AUX_TABLE_53,
+       0x1FD0,
+       0x1F76,
+       0,
+       CF_use_AUX_TABLE_54,
+       CF_use_AUX_TABLE_6,
+       CF_use_AUX_TABLE_55,
+       0,
+       CF_use_AUX_TABLE_56,
+       CF_use_AUX_TABLE_57,
+       0x1FE0,
+       0x1F7A,
+       0x1FE5,
+       0,
+       CF_use_AUX_TABLE_58,
+       CF_use_AUX_TABLE_59,
+       CF_use_AUX_TABLE_60,
+       0,
+       CF_use_AUX_TABLE_61,
+       CF_use_AUX_TABLE_62,
+       0x1F78,
+       0x1F7C,
+       CF_use_AUX_TABLE_59,
+       0,
+       0x3C9,
+       0,
+       0x92,
+       0x47,
+       0,
+       0x214E,
+       0,
        0x2170,
-       0x2183,
+       0,
        0x2184,
-       0x24B6,
+       0,
        0x24D0,
-       0x2C00,
-       0x2C2F,
-       0x2C60,
+       0,
+       0x2C30,
+       0,
        0x2C61,
-       0x2C62,
-       0x2C63,
-       0x2C64,
-       0x2C65,
-       0x2C67,
+       0,
+       0x26B,
+       0x1D7D,
+       0x27D,
+       0,
        0x2C68,
-       0x2C69,
+       0,
        0x2C6A,
-       0x2C6B,
+       0,
        0x2C6C,
-       0x2C6D,
-       0x2C6E,
-       0x2C6F,
-       0x2C70,
-       0x2C71,
-       0x2C72,
+       0,
+       0x251,
+       0x271,
+       0x250,
+       0x252,
+       0,
        0x2C73,
-       0x2C75,
+       0,
        0x2C76,
-       0x2C7E,
-       0x2C80,
+       0,
+       0x23F,
        0x2C81,
-       0x2C82,
+       0,
        0x2C83,
-       0x2C84,
+       0,
        0x2C85,
-       0x2C86,
+       0,
        0x2C87,
-       0x2C88,
+       0,
        0x2C89,
-       0x2C8A,
+       0,
        0x2C8B,
-       0x2C8C,
+       0,
        0x2C8D,
-       0x2C8E,
+       0,
        0x2C8F,
-       0x2C90,
+       0,
        0x2C91,
-       0x2C92,
+       0,
        0x2C93,
-       0x2C94,
+       0,
        0x2C95,
-       0x2C96,
+       0,
        0x2C97,
-       0x2C98,
+       0,
        0x2C99,
-       0x2C9A,
+       0,
        0x2C9B,
-       0x2C9C,
+       0,
        0x2C9D,
-       0x2C9E,
+       0,
        0x2C9F,
-       0x2CA0,
+       0,
        0x2CA1,
-       0x2CA2,
+       0,
        0x2CA3,
-       0x2CA4,
+       0,
        0x2CA5,
-       0x2CA6,
+       0,
        0x2CA7,
-       0x2CA8,
+       0,
        0x2CA9,
-       0x2CAA,
+       0,
        0x2CAB,
-       0x2CAC,
+       0,
        0x2CAD,
-       0x2CAE,
+       0,
        0x2CAF,
-       0x2CB0,
+       0,
        0x2CB1,
-       0x2CB2,
+       0,
        0x2CB3,
-       0x2CB4,
+       0,
        0x2CB5,
-       0x2CB6,
+       0,
        0x2CB7,
-       0x2CB8,
+       0,
        0x2CB9,
-       0x2CBA,
+       0,
        0x2CBB,
-       0x2CBC,
+       0,
        0x2CBD,
-       0x2CBE,
+       0,
        0x2CBF,
-       0x2CC0,
+       0,
        0x2CC1,
-       0x2CC2,
+       0,
        0x2CC3,
-       0x2CC4,
+       0,
        0x2CC5,
-       0x2CC6,
+       0,
        0x2CC7,
-       0x2CC8,
+       0,
        0x2CC9,
-       0x2CCA,
+       0,
        0x2CCB,
-       0x2CCC,
+       0,
        0x2CCD,
-       0x2CCE,
+       0,
        0x2CCF,
-       0x2CD0,
+       0,
        0x2CD1,
-       0x2CD2,
+       0,
        0x2CD3,
-       0x2CD4,
+       0,
        0x2CD5,
-       0x2CD6,
+       0,
        0x2CD7,
-       0x2CD8,
+       0,
        0x2CD9,
-       0x2CDA,
+       0,
        0x2CDB,
-       0x2CDC,
+       0,
        0x2CDD,
-       0x2CDE,
+       0,
        0x2CDF,
-       0x2CE0,
+       0,
        0x2CE1,
-       0x2CE2,
+       0,
        0x2CE3,
-       0x2CEB,
+       0,
        0x2CEC,
-       0x2CED,
+       0,
        0x2CEE,
-       0x2CF2,
+       0,
        0x2CF3,
-       0xA640,
+       0,
        0xA641,
-       0xA642,
+       0,
        0xA643,
-       0xA644,
+       0,
        0xA645,
-       0xA646,
+       0,
        0xA647,
-       0xA648,
+       0,
        0xA649,
-       0xA64A,
+       0,
        0xA64B,
-       0xA64C,
+       0,
        0xA64D,
-       0xA64E,
+       0,
        0xA64F,
-       0xA650,
+       0,
        0xA651,
-       0xA652,
+       0,
        0xA653,
-       0xA654,
+       0,
        0xA655,
-       0xA656,
+       0,
        0xA657,
-       0xA658,
+       0,
        0xA659,
-       0xA65A,
+       0,
        0xA65B,
-       0xA65C,
+       0,
        0xA65D,
-       0xA65E,
+       0,
        0xA65F,
-       0xA660,
+       0,
        0xA661,
-       0xA662,
+       0,
        0xA663,
-       0xA664,
+       0,
        0xA665,
-       0xA666,
+       0,
        0xA667,
-       0xA668,
+       0,
        0xA669,
-       0xA66A,
+       0,
        0xA66B,
-       0xA66C,
+       0,
        0xA66D,
-       0xA680,
+       0,
        0xA681,
-       0xA682,
+       0,
        0xA683,
-       0xA684,
+       0,
        0xA685,
-       0xA686,
+       0,
        0xA687,
-       0xA688,
+       0,
        0xA689,
-       0xA68A,
+       0,
        0xA68B,
-       0xA68C,
+       0,
        0xA68D,
-       0xA68E,
+       0,
        0xA68F,
-       0xA690,
+       0,
        0xA691,
-       0xA692,
+       0,
        0xA693,
-       0xA694,
+       0,
        0xA695,
-       0xA696,
+       0,
        0xA697,
-       0xA698,
+       0,
        0xA699,
-       0xA69A,
+       0,
        0xA69B,
-       0xA722,
+       0,
        0xA723,
-       0xA724,
+       0,
        0xA725,
-       0xA726,
+       0,
        0xA727,
-       0xA728,
+       0,
        0xA729,
-       0xA72A,
+       0,
        0xA72B,
-       0xA72C,
+       0,
        0xA72D,
-       0xA72E,
+       0,
        0xA72F,
-       0xA732,
+       0,
        0xA733,
-       0xA734,
+       0,
        0xA735,
-       0xA736,
+       0,
        0xA737,
-       0xA738,
+       0,
        0xA739,
-       0xA73A,
+       0,
        0xA73B,
-       0xA73C,
+       0,
        0xA73D,
-       0xA73E,
+       0,
        0xA73F,
-       0xA740,
+       0,
        0xA741,
-       0xA742,
+       0,
        0xA743,
-       0xA744,
+       0,
        0xA745,
-       0xA746,
+       0,
        0xA747,
-       0xA748,
+       0,
        0xA749,
-       0xA74A,
+       0,
        0xA74B,
-       0xA74C,
+       0,
        0xA74D,
-       0xA74E,
+       0,
        0xA74F,
-       0xA750,
+       0,
        0xA751,
-       0xA752,
+       0,
        0xA753,
-       0xA754,
+       0,
        0xA755,
-       0xA756,
+       0,
        0xA757,
-       0xA758,
+       0,
        0xA759,
-       0xA75A,
+       0,
        0xA75B,
-       0xA75C,
+       0,
        0xA75D,
-       0xA75E,
+       0,
        0xA75F,
-       0xA760,
+       0,
        0xA761,
-       0xA762,
+       0,
        0xA763,
-       0xA764,
+       0,
        0xA765,
-       0xA766,
+       0,
        0xA767,
-       0xA768,
+       0,
        0xA769,
-       0xA76A,
+       0,
        0xA76B,
-       0xA76C,
+       0,
        0xA76D,
-       0xA76E,
+       0,
        0xA76F,
-       0xA779,
+       0,
        0xA77A,
-       0xA77B,
+       0,
        0xA77C,
-       0xA77D,
-       0xA77E,
+       0,
+       0x1D79,
        0xA77F,
-       0xA780,
+       0,
        0xA781,
-       0xA782,
+       0,
        0xA783,
-       0xA784,
+       0,
        0xA785,
-       0xA786,
+       0,
        0xA787,
-       0xA78B,
+       0,
        0xA78C,
-       0xA78D,
-       0xA78E,
-       0xA790,
+       0,
+       0x265,
+       0,
        0xA791,
-       0xA792,
+       0,
        0xA793,
-       0xA796,
+       0,
        0xA797,
-       0xA798,
+       0,
        0xA799,
-       0xA79A,
+       0,
        0xA79B,
-