// Generated by tools/data-generator/generate.py. DO NOT EDIT.
// Derived from Unicode data, Copyright © 2024 Unicode, Inc.
// SPDX-License-Identifier: Unicode-3.0
// See licenses/UNICODE-3.0.txt and THIRD_PARTY_NOTICES.md.
// Unicode 16.0.0: canonical decomposition, combining classes, full case folding, default ignorables.

///|
let decomposition_keys : FixedArray[Int32] = [
  0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE,
  0xCF, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xE0, 0xE1,
  0xE2, 0xE3, 0xE4, 0xE5, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF1,
  0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFF, 0x100, 0x101,
  0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0x109, 0x10A, 0x10B, 0x10C, 0x10D,
  0x10E, 0x10F, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0x118, 0x119, 0x11A, 0x11B,
  0x11C, 0x11D, 0x11E, 0x11F, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x128, 0x129,
  0x12A, 0x12B, 0x12C, 0x12D, 0x12E, 0x12F, 0x130, 0x134, 0x135, 0x136, 0x137, 0x139,
  0x13A, 0x13B, 0x13C, 0x13D, 0x13E, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, 0x14C,
  0x14D, 0x14E, 0x14F, 0x150, 0x151, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159, 0x15A,
  0x15B, 0x15C, 0x15D, 0x15E, 0x15F, 0x160, 0x161, 0x162, 0x163, 0x164, 0x165, 0x168,
  0x169, 0x16A, 0x16B, 0x16C, 0x16D, 0x16E, 0x16F, 0x170, 0x171, 0x172, 0x173, 0x174,
  0x175, 0x176, 0x177, 0x178, 0x179, 0x17A, 0x17B, 0x17C, 0x17D, 0x17E, 0x1A0, 0x1A1,
  0x1AF, 0x1B0, 0x1CD, 0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3, 0x1D4, 0x1D5, 0x1D6,
  0x1D7, 0x1D8, 0x1D9, 0x1DA, 0x1DB, 0x1DC, 0x1DE, 0x1DF, 0x1E0, 0x1E1, 0x1E2, 0x1E3,
  0x1E6, 0x1E7, 0x1E8, 0x1E9, 0x1EA, 0x1EB, 0x1EC, 0x1ED, 0x1EE, 0x1EF, 0x1F0, 0x1F4,
  0x1F5, 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, 0x21E, 0x21F, 0x226, 0x227, 0x228, 0x229, 0x22A, 0x22B, 0x22C, 0x22D, 0x22E,
  0x22F, 0x230, 0x231, 0x232, 0x233, 0x340, 0x341, 0x343, 0x344, 0x374, 0x37E, 0x385,
  0x386, 0x387, 0x388, 0x389, 0x38A, 0x38C, 0x38E, 0x38F, 0x390, 0x3AA, 0x3AB, 0x3AC,
  0x3AD, 0x3AE, 0x3AF, 0x3B0, 0x3CA, 0x3CB, 0x3CC, 0x3CD, 0x3CE, 0x3D3, 0x3D4, 0x400,
  0x401, 0x403, 0x407, 0x40C, 0x40D, 0x40E, 0x419, 0x439, 0x450, 0x451, 0x453, 0x457,
  0x45C, 0x45D, 0x45E, 0x476, 0x477, 0x4C1, 0x4C2, 0x4D0, 0x4D1, 0x4D2, 0x4D3, 0x4D6,
  0x4D7, 0x4DA, 0x4DB, 0x4DC, 0x4DD, 0x4DE, 0x4DF, 0x4E2, 0x4E3, 0x4E4, 0x4E5, 0x4E6,
  0x4E7, 0x4EA, 0x4EB, 0x4EC, 0x4ED, 0x4EE, 0x4EF, 0x4F0, 0x4F1, 0x4F2, 0x4F3, 0x4F4,
  0x4F5, 0x4F8, 0x4F9, 0x622, 0x623, 0x624, 0x625, 0x626, 0x6C0, 0x6C2, 0x6D3, 0x929,
  0x931, 0x934, 0x958, 0x959, 0x95A, 0x95B, 0x95C, 0x95D, 0x95E, 0x95F, 0x9CB, 0x9CC,
  0x9DC, 0x9DD, 0x9DF, 0xA33, 0xA36, 0xA59, 0xA5A, 0xA5B, 0xA5E, 0xB48, 0xB4B, 0xB4C,
  0xB5C, 0xB5D, 0xB94, 0xBCA, 0xBCB, 0xBCC, 0xC48, 0xCC0, 0xCC7, 0xCC8, 0xCCA, 0xCCB,
  0xD4A, 0xD4B, 0xD4C, 0xDDA, 0xDDC, 0xDDD, 0xDDE, 0xF43, 0xF4D, 0xF52, 0xF57, 0xF5C,
  0xF69, 0xF73, 0xF75, 0xF76, 0xF78, 0xF81, 0xF93, 0xF9D, 0xFA2, 0xFA7, 0xFAC, 0xFB9,
  0x1026, 0x1B06, 0x1B08, 0x1B0A, 0x1B0C, 0x1B0E, 0x1B12, 0x1B3B, 0x1B3D, 0x1B40,
  0x1B41, 0x1B43, 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, 0x1E9B, 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, 0x1F00, 0x1F01, 0x1F02,
  0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07, 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C,
  0x1F0D, 0x1F0E, 0x1F0F, 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x1F18,
  0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24,
  0x1F25, 0x1F26, 0x1F27, 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E,
  0x1F2F, 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37, 0x1F38,
  0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F, 0x1F40, 0x1F41, 0x1F42,
  0x1F43, 0x1F44, 0x1F45, 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F50,
  0x1F51, 0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57, 0x1F59, 0x1F5B, 0x1F5D,
  0x1F5F, 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67, 0x1F68,
  0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F, 0x1F70, 0x1F71, 0x1F72,
  0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77, 0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C,
  0x1F7D, 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,
  0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x1FB6, 0x1FB7, 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB,
  0x1FBC, 0x1FBE, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x1FC6, 0x1FC7, 0x1FC8, 0x1FC9,
  0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF, 0x1FD0, 0x1FD1, 0x1FD2, 0x1FD3,
  0x1FD6, 0x1FD7, 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x1FDD, 0x1FDE, 0x1FDF, 0x1FE0,
  0x1FE1, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7, 0x1FE8, 0x1FE9, 0x1FEA,
  0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF, 0x1FF2, 0x1FF3, 0x1FF4, 0x1FF6, 0x1FF7,
  0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x1FFD, 0x2000, 0x2001, 0x2126, 0x212A,
  0x212B, 0x219A, 0x219B, 0x21AE, 0x21CD, 0x21CE, 0x21CF, 0x2204, 0x2209, 0x220C,
  0x2224, 0x2226, 0x2241, 0x2244, 0x2247, 0x2249, 0x2260, 0x2262, 0x226D, 0x226E,
  0x226F, 0x2270, 0x2271, 0x2274, 0x2275, 0x2278, 0x2279, 0x2280, 0x2281, 0x2284,
  0x2285, 0x2288, 0x2289, 0x22AC, 0x22AD, 0x22AE, 0x22AF, 0x22E0, 0x22E1, 0x22E2,
  0x22E3, 0x22EA, 0x22EB, 0x22EC, 0x22ED, 0x2329, 0x232A, 0x2ADC, 0x304C, 0x304E,
  0x3050, 0x3052, 0x3054, 0x3056, 0x3058, 0x305A, 0x305C, 0x305E, 0x3060, 0x3062,
  0x3065, 0x3067, 0x3069, 0x3070, 0x3071, 0x3073, 0x3074, 0x3076, 0x3077, 0x3079,
  0x307A, 0x307C, 0x307D, 0x3094, 0x309E, 0x30AC, 0x30AE, 0x30B0, 0x30B2, 0x30B4,
  0x30B6, 0x30B8, 0x30BA, 0x30BC, 0x30BE, 0x30C0, 0x30C2, 0x30C5, 0x30C7, 0x30C9,
  0x30D0, 0x30D1, 0x30D3, 0x30D4, 0x30D6, 0x30D7, 0x30D9, 0x30DA, 0x30DC, 0x30DD,
  0x30F4, 0x30F7, 0x30F8, 0x30F9, 0x30FA, 0x30FE, 0xF900, 0xF901, 0xF902, 0xF903,
  0xF904, 0xF905, 0xF906, 0xF907, 0xF908, 0xF909, 0xF90A, 0xF90B, 0xF90C, 0xF90D,
  0xF90E, 0xF90F, 0xF910, 0xF911, 0xF912, 0xF913, 0xF914, 0xF915, 0xF916, 0xF917,
  0xF918, 0xF919, 0xF91A, 0xF91B, 0xF91C, 0xF91D, 0xF91E, 0xF91F, 0xF920, 0xF921,
  0xF922, 0xF923, 0xF924, 0xF925, 0xF926, 0xF927, 0xF928, 0xF929, 0xF92A, 0xF92B,
  0xF92C, 0xF92D, 0xF92E, 0xF92F, 0xF930, 0xF931, 0xF932, 0xF933, 0xF934, 0xF935,
  0xF936, 0xF937, 0xF938, 0xF939, 0xF93A, 0xF93B, 0xF93C, 0xF93D, 0xF93E, 0xF93F,
  0xF940, 0xF941, 0xF942, 0xF943, 0xF944, 0xF945, 0xF946, 0xF947, 0xF948, 0xF949,
  0xF94A, 0xF94B, 0xF94C, 0xF94D, 0xF94E, 0xF94F, 0xF950, 0xF951, 0xF952, 0xF953,
  0xF954, 0xF955, 0xF956, 0xF957, 0xF958, 0xF959, 0xF95A, 0xF95B, 0xF95C, 0xF95D,
  0xF95E, 0xF95F, 0xF960, 0xF961, 0xF962, 0xF963, 0xF964, 0xF965, 0xF966, 0xF967,
  0xF968, 0xF969, 0xF96A, 0xF96B, 0xF96C, 0xF96D, 0xF96E, 0xF96F, 0xF970, 0xF971,
  0xF972, 0xF973, 0xF974, 0xF975, 0xF976, 0xF977, 0xF978, 0xF979, 0xF97A, 0xF97B,
  0xF97C, 0xF97D, 0xF97E, 0xF97F, 0xF980, 0xF981, 0xF982, 0xF983, 0xF984, 0xF985,
  0xF986, 0xF987, 0xF988, 0xF989, 0xF98A, 0xF98B, 0xF98C, 0xF98D, 0xF98E, 0xF98F,
  0xF990, 0xF991, 0xF992, 0xF993, 0xF994, 0xF995, 0xF996, 0xF997, 0xF998, 0xF999,
  0xF99A, 0xF99B, 0xF99C, 0xF99D, 0xF99E, 0xF99F, 0xF9A0, 0xF9A1, 0xF9A2, 0xF9A3,
  0xF9A4, 0xF9A5, 0xF9A6, 0xF9A7, 0xF9A8, 0xF9A9, 0xF9AA, 0xF9AB, 0xF9AC, 0xF9AD,
  0xF9AE, 0xF9AF, 0xF9B0, 0xF9B1, 0xF9B2, 0xF9B3, 0xF9B4, 0xF9B5, 0xF9B6, 0xF9B7,
  0xF9B8, 0xF9B9, 0xF9BA, 0xF9BB, 0xF9BC, 0xF9BD, 0xF9BE, 0xF9BF, 0xF9C0, 0xF9C1,
  0xF9C2, 0xF9C3, 0xF9C4, 0xF9C5, 0xF9C6, 0xF9C7, 0xF9C8, 0xF9C9, 0xF9CA, 0xF9CB,
  0xF9CC, 0xF9CD, 0xF9CE, 0xF9CF, 0xF9D0, 0xF9D1, 0xF9D2, 0xF9D3, 0xF9D4, 0xF9D5,
  0xF9D6, 0xF9D7, 0xF9D8, 0xF9D9, 0xF9DA, 0xF9DB, 0xF9DC, 0xF9DD, 0xF9DE, 0xF9DF,
  0xF9E0, 0xF9E1, 0xF9E2, 0xF9E3, 0xF9E4, 0xF9E5, 0xF9E6, 0xF9E7, 0xF9E8, 0xF9E9,
  0xF9EA, 0xF9EB, 0xF9EC, 0xF9ED, 0xF9EE, 0xF9EF, 0xF9F0, 0xF9F1, 0xF9F2, 0xF9F3,
  0xF9F4, 0xF9F5, 0xF9F6, 0xF9F7, 0xF9F8, 0xF9F9, 0xF9FA, 0xF9FB, 0xF9FC, 0xF9FD,
  0xF9FE, 0xF9FF, 0xFA00, 0xFA01, 0xFA02, 0xFA03, 0xFA04, 0xFA05, 0xFA06, 0xFA07,
  0xFA08, 0xFA09, 0xFA0A, 0xFA0B, 0xFA0C, 0xFA0D, 0xFA10, 0xFA12, 0xFA15, 0xFA16,
  0xFA17, 0xFA18, 0xFA19, 0xFA1A, 0xFA1B, 0xFA1C, 0xFA1D, 0xFA1E, 0xFA20, 0xFA22,
  0xFA25, 0xFA26, 0xFA2A, 0xFA2B, 0xFA2C, 0xFA2D, 0xFA2E, 0xFA2F, 0xFA30, 0xFA31,
  0xFA32, 0xFA33, 0xFA34, 0xFA35, 0xFA36, 0xFA37, 0xFA38, 0xFA39, 0xFA3A, 0xFA3B,
  0xFA3C, 0xFA3D, 0xFA3E, 0xFA3F, 0xFA40, 0xFA41, 0xFA42, 0xFA43, 0xFA44, 0xFA45,
  0xFA46, 0xFA47, 0xFA48, 0xFA49, 0xFA4A, 0xFA4B, 0xFA4C, 0xFA4D, 0xFA4E, 0xFA4F,
  0xFA50, 0xFA51, 0xFA52, 0xFA53, 0xFA54, 0xFA55, 0xFA56, 0xFA57, 0xFA58, 0xFA59,
  0xFA5A, 0xFA5B, 0xFA5C, 0xFA5D, 0xFA5E, 0xFA5F, 0xFA60, 0xFA61, 0xFA62, 0xFA63,
  0xFA64, 0xFA65, 0xFA66, 0xFA67, 0xFA68, 0xFA69, 0xFA6A, 0xFA6B, 0xFA6C, 0xFA6D,
  0xFA70, 0xFA71, 0xFA72, 0xFA73, 0xFA74, 0xFA75, 0xFA76, 0xFA77, 0xFA78, 0xFA79,
  0xFA7A, 0xFA7B, 0xFA7C, 0xFA7D, 0xFA7E, 0xFA7F, 0xFA80, 0xFA81, 0xFA82, 0xFA83,
  0xFA84, 0xFA85, 0xFA86, 0xFA87, 0xFA88, 0xFA89, 0xFA8A, 0xFA8B, 0xFA8C, 0xFA8D,
  0xFA8E, 0xFA8F, 0xFA90, 0xFA91, 0xFA92, 0xFA93, 0xFA94, 0xFA95, 0xFA96, 0xFA97,
  0xFA98, 0xFA99, 0xFA9A, 0xFA9B, 0xFA9C, 0xFA9D, 0xFA9E, 0xFA9F, 0xFAA0, 0xFAA1,
  0xFAA2, 0xFAA3, 0xFAA4, 0xFAA5, 0xFAA6, 0xFAA7, 0xFAA8, 0xFAA9, 0xFAAA, 0xFAAB,
  0xFAAC, 0xFAAD, 0xFAAE, 0xFAAF, 0xFAB0, 0xFAB1, 0xFAB2, 0xFAB3, 0xFAB4, 0xFAB5,
  0xFAB6, 0xFAB7, 0xFAB8, 0xFAB9, 0xFABA, 0xFABB, 0xFABC, 0xFABD, 0xFABE, 0xFABF,
  0xFAC0, 0xFAC1, 0xFAC2, 0xFAC3, 0xFAC4, 0xFAC5, 0xFAC6, 0xFAC7, 0xFAC8, 0xFAC9,
  0xFACA, 0xFACB, 0xFACC, 0xFACD, 0xFACE, 0xFACF, 0xFAD0, 0xFAD1, 0xFAD2, 0xFAD3,
  0xFAD4, 0xFAD5, 0xFAD6, 0xFAD7, 0xFAD8, 0xFAD9, 0xFB1D, 0xFB1F, 0xFB2A, 0xFB2B,
  0xFB2C, 0xFB2D, 0xFB2E, 0xFB2F, 0xFB30, 0xFB31, 0xFB32, 0xFB33, 0xFB34, 0xFB35,
  0xFB36, 0xFB38, 0xFB39, 0xFB3A, 0xFB3B, 0xFB3C, 0xFB3E, 0xFB40, 0xFB41, 0xFB43,
  0xFB44, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C, 0xFB4D, 0xFB4E,
  0x105C9, 0x105E4, 0x1109A, 0x1109C, 0x110AB, 0x1112E, 0x1112F, 0x1134B, 0x1134C,
  0x11383, 0x11385, 0x1138E, 0x11391, 0x113C5, 0x113C7, 0x113C8, 0x114BB, 0x114BC,
  0x114BE, 0x115BA, 0x115BB, 0x11938, 0x16121, 0x16122, 0x16123, 0x16124, 0x16125,
  0x16126, 0x16127, 0x16128, 0x16D68, 0x16D69, 0x16D6A, 0x1D15E, 0x1D15F, 0x1D160,
  0x1D161, 0x1D162, 0x1D163, 0x1D164, 0x1D1BB, 0x1D1BC, 0x1D1BD, 0x1D1BE, 0x1D1BF,
  0x1D1C0, 0x2F800, 0x2F801, 0x2F802, 0x2F803, 0x2F804, 0x2F805, 0x2F806, 0x2F807,
  0x2F808, 0x2F809, 0x2F80A, 0x2F80B, 0x2F80C, 0x2F80D, 0x2F80E, 0x2F80F, 0x2F810,
  0x2F811, 0x2F812, 0x2F813, 0x2F814, 0x2F815, 0x2F816, 0x2F817, 0x2F818, 0x2F819,
  0x2F81A, 0x2F81B, 0x2F81C, 0x2F81D, 0x2F81E, 0x2F81F, 0x2F820, 0x2F821, 0x2F822,
  0x2F823, 0x2F824, 0x2F825, 0x2F826, 0x2F827, 0x2F828, 0x2F829, 0x2F82A, 0x2F82B,
  0x2F82C, 0x2F82D, 0x2F82E, 0x2F82F, 0x2F830, 0x2F831, 0x2F832, 0x2F833, 0x2F834,
  0x2F835, 0x2F836, 0x2F837, 0x2F838, 0x2F839, 0x2F83A, 0x2F83B, 0x2F83C, 0x2F83D,
  0x2F83E, 0x2F83F, 0x2F840, 0x2F841, 0x2F842, 0x2F843, 0x2F844, 0x2F845, 0x2F846,
  0x2F847, 0x2F848, 0x2F849, 0x2F84A, 0x2F84B, 0x2F84C, 0x2F84D, 0x2F84E, 0x2F84F,
  0x2F850, 0x2F851, 0x2F852, 0x2F853, 0x2F854, 0x2F855, 0x2F856, 0x2F857, 0x2F858,
  0x2F859, 0x2F85A, 0x2F85B, 0x2F85C, 0x2F85D, 0x2F85E, 0x2F85F, 0x2F860, 0x2F861,
  0x2F862, 0x2F863, 0x2F864, 0x2F865, 0x2F866, 0x2F867, 0x2F868, 0x2F869, 0x2F86A,
  0x2F86B, 0x2F86C, 0x2F86D, 0x2F86E, 0x2F86F, 0x2F870, 0x2F871, 0x2F872, 0x2F873,
  0x2F874, 0x2F875, 0x2F876, 0x2F877, 0x2F878, 0x2F879, 0x2F87A, 0x2F87B, 0x2F87C,
  0x2F87D, 0x2F87E, 0x2F87F, 0x2F880, 0x2F881, 0x2F882, 0x2F883, 0x2F884, 0x2F885,
  0x2F886, 0x2F887, 0x2F888, 0x2F889, 0x2F88A, 0x2F88B, 0x2F88C, 0x2F88D, 0x2F88E,
  0x2F88F, 0x2F890, 0x2F891, 0x2F892, 0x2F893, 0x2F894, 0x2F895, 0x2F896, 0x2F897,
  0x2F898, 0x2F899, 0x2F89A, 0x2F89B, 0x2F89C, 0x2F89D, 0x2F89E, 0x2F89F, 0x2F8A0,
  0x2F8A1, 0x2F8A2, 0x2F8A3, 0x2F8A4, 0x2F8A5, 0x2F8A6, 0x2F8A7, 0x2F8A8, 0x2F8A9,
  0x2F8AA, 0x2F8AB, 0x2F8AC, 0x2F8AD, 0x2F8AE, 0x2F8AF, 0x2F8B0, 0x2F8B1, 0x2F8B2,
  0x2F8B3, 0x2F8B4, 0x2F8B5, 0x2F8B6, 0x2F8B7, 0x2F8B8, 0x2F8B9, 0x2F8BA, 0x2F8BB,
  0x2F8BC, 0x2F8BD, 0x2F8BE, 0x2F8BF, 0x2F8C0, 0x2F8C1, 0x2F8C2, 0x2F8C3, 0x2F8C4,
  0x2F8C5, 0x2F8C6, 0x2F8C7, 0x2F8C8, 0x2F8C9, 0x2F8CA, 0x2F8CB, 0x2F8CC, 0x2F8CD,
  0x2F8CE, 0x2F8CF, 0x2F8D0, 0x2F8D1, 0x2F8D2, 0x2F8D3, 0x2F8D4, 0x2F8D5, 0x2F8D6,
  0x2F8D7, 0x2F8D8, 0x2F8D9, 0x2F8DA, 0x2F8DB, 0x2F8DC, 0x2F8DD, 0x2F8DE, 0x2F8DF,
  0x2F8E0, 0x2F8E1, 0x2F8E2, 0x2F8E3, 0x2F8E4, 0x2F8E5, 0x2F8E6, 0x2F8E7, 0x2F8E8,
  0x2F8E9, 0x2F8EA, 0x2F8EB, 0x2F8EC, 0x2F8ED, 0x2F8EE, 0x2F8EF, 0x2F8F0, 0x2F8F1,
  0x2F8F2, 0x2F8F3, 0x2F8F4, 0x2F8F5, 0x2F8F6, 0x2F8F7, 0x2F8F8, 0x2F8F9, 0x2F8FA,
  0x2F8FB, 0x2F8FC, 0x2F8FD, 0x2F8FE, 0x2F8FF, 0x2F900, 0x2F901, 0x2F902, 0x2F903,
  0x2F904, 0x2F905, 0x2F906, 0x2F907, 0x2F908, 0x2F909, 0x2F90A, 0x2F90B, 0x2F90C,
  0x2F90D, 0x2F90E, 0x2F90F, 0x2F910, 0x2F911, 0x2F912, 0x2F913, 0x2F914, 0x2F915,
  0x2F916, 0x2F917, 0x2F918, 0x2F919, 0x2F91A, 0x2F91B, 0x2F91C, 0x2F91D, 0x2F91E,
  0x2F91F, 0x2F920, 0x2F921, 0x2F922, 0x2F923, 0x2F924, 0x2F925, 0x2F926, 0x2F927,
  0x2F928, 0x2F929, 0x2F92A, 0x2F92B, 0x2F92C, 0x2F92D, 0x2F92E, 0x2F92F, 0x2F930,
  0x2F931, 0x2F932, 0x2F933, 0x2F934, 0x2F935, 0x2F936, 0x2F937, 0x2F938, 0x2F939,
  0x2F93A, 0x2F93B, 0x2F93C, 0x2F93D, 0x2F93E, 0x2F93F, 0x2F940, 0x2F941, 0x2F942,
  0x2F943, 0x2F944, 0x2F945, 0x2F946, 0x2F947, 0x2F948, 0x2F949, 0x2F94A, 0x2F94B,
  0x2F94C, 0x2F94D, 0x2F94E, 0x2F94F, 0x2F950, 0x2F951, 0x2F952, 0x2F953, 0x2F954,
  0x2F955, 0x2F956, 0x2F957, 0x2F958, 0x2F959, 0x2F95A, 0x2F95B, 0x2F95C, 0x2F95D,
  0x2F95E, 0x2F95F, 0x2F960, 0x2F961, 0x2F962, 0x2F963, 0x2F964, 0x2F965, 0x2F966,
  0x2F967, 0x2F968, 0x2F969, 0x2F96A, 0x2F96B, 0x2F96C, 0x2F96D, 0x2F96E, 0x2F96F,
  0x2F970, 0x2F971, 0x2F972, 0x2F973, 0x2F974, 0x2F975, 0x2F976, 0x2F977, 0x2F978,
  0x2F979, 0x2F97A, 0x2F97B, 0x2F97C, 0x2F97D, 0x2F97E, 0x2F97F, 0x2F980, 0x2F981,
  0x2F982, 0x2F983, 0x2F984, 0x2F985, 0x2F986, 0x2F987, 0x2F988, 0x2F989, 0x2F98A,
  0x2F98B, 0x2F98C, 0x2F98D, 0x2F98E, 0x2F98F, 0x2F990, 0x2F991, 0x2F992, 0x2F993,
  0x2F994, 0x2F995, 0x2F996, 0x2F997, 0x2F998, 0x2F999, 0x2F99A, 0x2F99B, 0x2F99C,
  0x2F99D, 0x2F99E, 0x2F99F, 0x2F9A0, 0x2F9A1, 0x2F9A2, 0x2F9A3, 0x2F9A4, 0x2F9A5,
  0x2F9A6, 0x2F9A7, 0x2F9A8, 0x2F9A9, 0x2F9AA, 0x2F9AB, 0x2F9AC, 0x2F9AD, 0x2F9AE,
  0x2F9AF, 0x2F9B0, 0x2F9B1, 0x2F9B2, 0x2F9B3, 0x2F9B4, 0x2F9B5, 0x2F9B6, 0x2F9B7,
  0x2F9B8, 0x2F9B9, 0x2F9BA, 0x2F9BB, 0x2F9BC, 0x2F9BD, 0x2F9BE, 0x2F9BF, 0x2F9C0,
  0x2F9C1, 0x2F9C2, 0x2F9C3, 0x2F9C4, 0x2F9C5, 0x2F9C6, 0x2F9C7, 0x2F9C8, 0x2F9C9,
  0x2F9CA, 0x2F9CB, 0x2F9CC, 0x2F9CD, 0x2F9CE, 0x2F9CF, 0x2F9D0, 0x2F9D1, 0x2F9D2,
  0x2F9D3, 0x2F9D4, 0x2F9D5, 0x2F9D6, 0x2F9D7, 0x2F9D8, 0x2F9D9, 0x2F9DA, 0x2F9DB,
  0x2F9DC, 0x2F9DD, 0x2F9DE, 0x2F9DF, 0x2F9E0, 0x2F9E1, 0x2F9E2, 0x2F9E3, 0x2F9E4,
  0x2F9E5, 0x2F9E6, 0x2F9E7, 0x2F9E8, 0x2F9E9, 0x2F9EA, 0x2F9EB, 0x2F9EC, 0x2F9ED,
  0x2F9EE, 0x2F9EF, 0x2F9F0, 0x2F9F1, 0x2F9F2, 0x2F9F3, 0x2F9F4, 0x2F9F5, 0x2F9F6,
  0x2F9F7, 0x2F9F8, 0x2F9F9, 0x2F9FA, 0x2F9FB, 0x2F9FC, 0x2F9FD, 0x2F9FE, 0x2F9FF,
  0x2FA00, 0x2FA01, 0x2FA02, 0x2FA03, 0x2FA04, 0x2FA05, 0x2FA06, 0x2FA07, 0x2FA08,
  0x2FA09, 0x2FA0A, 0x2FA0B, 0x2FA0C, 0x2FA0D, 0x2FA0E, 0x2FA0F, 0x2FA10, 0x2FA11,
  0x2FA12, 0x2FA13, 0x2FA14, 0x2FA15, 0x2FA16, 0x2FA17, 0x2FA18, 0x2FA19, 0x2FA1A,
  0x2FA1B, 0x2FA1C, 0x2FA1D,
]

///|
let decomposition_values : FixedArray[String] = [
  "A\u0300", "A\u0301", "A\u0302", "A\u0303", "A\u0308", "A\u030a", "C\u0327", "E\u0300",
  "E\u0301", "E\u0302", "E\u0308", "I\u0300", "I\u0301", "I\u0302", "I\u0308", "N\u0303",
  "O\u0300", "O\u0301", "O\u0302", "O\u0303", "O\u0308", "U\u0300", "U\u0301", "U\u0302",
  "U\u0308", "Y\u0301", "a\u0300", "a\u0301", "a\u0302", "a\u0303", "a\u0308", "a\u030a",
  "c\u0327", "e\u0300", "e\u0301", "e\u0302", "e\u0308", "i\u0300", "i\u0301", "i\u0302",
  "i\u0308", "n\u0303", "o\u0300", "o\u0301", "o\u0302", "o\u0303", "o\u0308", "u\u0300",
  "u\u0301", "u\u0302", "u\u0308", "y\u0301", "y\u0308", "A\u0304", "a\u0304", "A\u0306",
  "a\u0306", "A\u0328", "a\u0328", "C\u0301", "c\u0301", "C\u0302", "c\u0302", "C\u0307",
  "c\u0307", "C\u030c", "c\u030c", "D\u030c", "d\u030c", "E\u0304", "e\u0304", "E\u0306",
  "e\u0306", "E\u0307", "e\u0307", "E\u0328", "e\u0328", "E\u030c", "e\u030c", "G\u0302",
  "g\u0302", "G\u0306", "g\u0306", "G\u0307", "g\u0307", "G\u0327", "g\u0327", "H\u0302",
  "h\u0302", "I\u0303", "i\u0303", "I\u0304", "i\u0304", "I\u0306", "i\u0306", "I\u0328",
  "i\u0328", "I\u0307", "J\u0302", "j\u0302", "K\u0327", "k\u0327", "L\u0301", "l\u0301",
  "L\u0327", "l\u0327", "L\u030c", "l\u030c", "N\u0301", "n\u0301", "N\u0327", "n\u0327",
  "N\u030c", "n\u030c", "O\u0304", "o\u0304", "O\u0306", "o\u0306", "O\u030b", "o\u030b",
  "R\u0301", "r\u0301", "R\u0327", "r\u0327", "R\u030c", "r\u030c", "S\u0301", "s\u0301",
  "S\u0302", "s\u0302", "S\u0327", "s\u0327", "S\u030c", "s\u030c", "T\u0327", "t\u0327",
  "T\u030c", "t\u030c", "U\u0303", "u\u0303", "U\u0304", "u\u0304", "U\u0306", "u\u0306",
  "U\u030a", "u\u030a", "U\u030b", "u\u030b", "U\u0328", "u\u0328", "W\u0302", "w\u0302",
  "Y\u0302", "y\u0302", "Y\u0308", "Z\u0301", "z\u0301", "Z\u0307", "z\u0307", "Z\u030c",
  "z\u030c", "O\u031b", "o\u031b", "U\u031b", "u\u031b", "A\u030c", "a\u030c", "I\u030c",
  "i\u030c", "O\u030c", "o\u030c", "U\u030c", "u\u030c", "U\u0308\u0304", "u\u0308\u0304",
  "U\u0308\u0301", "u\u0308\u0301", "U\u0308\u030c", "u\u0308\u030c", "U\u0308\u0300",
  "u\u0308\u0300", "A\u0308\u0304", "a\u0308\u0304", "A\u0307\u0304", "a\u0307\u0304",
  "\u00c6\u0304", "\u00e6\u0304", "G\u030c", "g\u030c", "K\u030c", "k\u030c", "O\u0328",
  "o\u0328", "O\u0328\u0304", "o\u0328\u0304", "\u01b7\u030c", "\u0292\u030c", "j\u030c",
  "G\u0301", "g\u0301", "N\u0300", "n\u0300", "A\u030a\u0301", "a\u030a\u0301", "\u00c6\u0301",
  "\u00e6\u0301", "\u00d8\u0301", "\u00f8\u0301", "A\u030f", "a\u030f", "A\u0311",
  "a\u0311", "E\u030f", "e\u030f", "E\u0311", "e\u0311", "I\u030f", "i\u030f", "I\u0311",
  "i\u0311", "O\u030f", "o\u030f", "O\u0311", "o\u0311", "R\u030f", "r\u030f", "R\u0311",
  "r\u0311", "U\u030f", "u\u030f", "U\u0311", "u\u0311", "S\u0326", "s\u0326", "T\u0326",
  "t\u0326", "H\u030c", "h\u030c", "A\u0307", "a\u0307", "E\u0327", "e\u0327", "O\u0308\u0304",
  "o\u0308\u0304", "O\u0303\u0304", "o\u0303\u0304", "O\u0307", "o\u0307", "O\u0307\u0304",
  "o\u0307\u0304", "Y\u0304", "y\u0304", "\u0300", "\u0301", "\u0313", "\u0308\u0301",
  "\u02b9", ";", "\u00a8\u0301", "\u0391\u0301", "\u00b7", "\u0395\u0301", "\u0397\u0301",
  "\u0399\u0301", "\u039f\u0301", "\u03a5\u0301", "\u03a9\u0301", "\u03b9\u0308\u0301",
  "\u0399\u0308", "\u03a5\u0308", "\u03b1\u0301", "\u03b5\u0301", "\u03b7\u0301",
  "\u03b9\u0301", "\u03c5\u0308\u0301", "\u03b9\u0308", "\u03c5\u0308", "\u03bf\u0301",
  "\u03c5\u0301", "\u03c9\u0301", "\u03d2\u0301", "\u03d2\u0308", "\u0415\u0300",
  "\u0415\u0308", "\u0413\u0301", "\u0406\u0308", "\u041a\u0301", "\u0418\u0300",
  "\u0423\u0306", "\u0418\u0306", "\u0438\u0306", "\u0435\u0300", "\u0435\u0308",
  "\u0433\u0301", "\u0456\u0308", "\u043a\u0301", "\u0438\u0300", "\u0443\u0306",
  "\u0474\u030f", "\u0475\u030f", "\u0416\u0306", "\u0436\u0306", "\u0410\u0306",
  "\u0430\u0306", "\u0410\u0308", "\u0430\u0308", "\u0415\u0306", "\u0435\u0306",
  "\u04d8\u0308", "\u04d9\u0308", "\u0416\u0308", "\u0436\u0308", "\u0417\u0308",
  "\u0437\u0308", "\u0418\u0304", "\u0438\u0304", "\u0418\u0308", "\u0438\u0308",
  "\u041e\u0308", "\u043e\u0308", "\u04e8\u0308", "\u04e9\u0308", "\u042d\u0308",
  "\u044d\u0308", "\u0423\u0304", "\u0443\u0304", "\u0423\u0308", "\u0443\u0308",
  "\u0423\u030b", "\u0443\u030b", "\u0427\u0308", "\u0447\u0308", "\u042b\u0308",
  "\u044b\u0308", "\u0627\u0653", "\u0627\u0654", "\u0648\u0654", "\u0627\u0655",
  "\u064a\u0654", "\u06d5\u0654", "\u06c1\u0654", "\u06d2\u0654", "\u0928\u093c",
  "\u0930\u093c", "\u0933\u093c", "\u0915\u093c", "\u0916\u093c", "\u0917\u093c",
  "\u091c\u093c", "\u0921\u093c", "\u0922\u093c", "\u092b\u093c", "\u092f\u093c",
  "\u09c7\u09be", "\u09c7\u09d7", "\u09a1\u09bc", "\u09a2\u09bc", "\u09af\u09bc",
  "\u0a32\u0a3c", "\u0a38\u0a3c", "\u0a16\u0a3c", "\u0a17\u0a3c", "\u0a1c\u0a3c",
  "\u0a2b\u0a3c", "\u0b47\u0b56", "\u0b47\u0b3e", "\u0b47\u0b57", "\u0b21\u0b3c",
  "\u0b22\u0b3c", "\u0b92\u0bd7", "\u0bc6\u0bbe", "\u0bc7\u0bbe", "\u0bc6\u0bd7",
  "\u0c46\u0c56", "\u0cbf\u0cd5", "\u0cc6\u0cd5", "\u0cc6\u0cd6", "\u0cc6\u0cc2",
  "\u0cc6\u0cc2\u0cd5", "\u0d46\u0d3e", "\u0d47\u0d3e", "\u0d46\u0d57", "\u0dd9\u0dca",
  "\u0dd9\u0dcf", "\u0dd9\u0dcf\u0dca", "\u0dd9\u0ddf", "\u0f42\u0fb7", "\u0f4c\u0fb7",
  "\u0f51\u0fb7", "\u0f56\u0fb7", "\u0f5b\u0fb7", "\u0f40\u0fb5", "\u0f71\u0f72",
  "\u0f71\u0f74", "\u0fb2\u0f80", "\u0fb3\u0f80", "\u0f71\u0f80", "\u0f92\u0fb7",
  "\u0f9c\u0fb7", "\u0fa1\u0fb7", "\u0fa6\u0fb7", "\u0fab\u0fb7", "\u0f90\u0fb5",
  "\u1025\u102e", "\u1b05\u1b35", "\u1b07\u1b35", "\u1b09\u1b35", "\u1b0b\u1b35",
  "\u1b0d\u1b35", "\u1b11\u1b35", "\u1b3a\u1b35", "\u1b3c\u1b35", "\u1b3e\u1b35",
  "\u1b3f\u1b35", "\u1b42\u1b35", "A\u0325", "a\u0325", "B\u0307", "b\u0307", "B\u0323",
  "b\u0323", "B\u0331", "b\u0331", "C\u0327\u0301", "c\u0327\u0301", "D\u0307", "d\u0307",
  "D\u0323", "d\u0323", "D\u0331", "d\u0331", "D\u0327", "d\u0327", "D\u032d", "d\u032d",
  "E\u0304\u0300", "e\u0304\u0300", "E\u0304\u0301", "e\u0304\u0301", "E\u032d",
  "e\u032d", "E\u0330", "e\u0330", "E\u0327\u0306", "e\u0327\u0306", "F\u0307", "f\u0307",
  "G\u0304", "g\u0304", "H\u0307", "h\u0307", "H\u0323", "h\u0323", "H\u0308", "h\u0308",
  "H\u0327", "h\u0327", "H\u032e", "h\u032e", "I\u0330", "i\u0330", "I\u0308\u0301",
  "i\u0308\u0301", "K\u0301", "k\u0301", "K\u0323", "k\u0323", "K\u0331", "k\u0331",
  "L\u0323", "l\u0323", "L\u0323\u0304", "l\u0323\u0304", "L\u0331", "l\u0331", "L\u032d",
  "l\u032d", "M\u0301", "m\u0301", "M\u0307", "m\u0307", "M\u0323", "m\u0323", "N\u0307",
  "n\u0307", "N\u0323", "n\u0323", "N\u0331", "n\u0331", "N\u032d", "n\u032d", "O\u0303\u0301",
  "o\u0303\u0301", "O\u0303\u0308", "o\u0303\u0308", "O\u0304\u0300", "o\u0304\u0300",
  "O\u0304\u0301", "o\u0304\u0301", "P\u0301", "p\u0301", "P\u0307", "p\u0307", "R\u0307",
  "r\u0307", "R\u0323", "r\u0323", "R\u0323\u0304", "r\u0323\u0304", "R\u0331", "r\u0331",
  "S\u0307", "s\u0307", "S\u0323", "s\u0323", "S\u0301\u0307", "s\u0301\u0307", "S\u030c\u0307",
  "s\u030c\u0307", "S\u0323\u0307", "s\u0323\u0307", "T\u0307", "t\u0307", "T\u0323",
  "t\u0323", "T\u0331", "t\u0331", "T\u032d", "t\u032d", "U\u0324", "u\u0324", "U\u0330",
  "u\u0330", "U\u032d", "u\u032d", "U\u0303\u0301", "u\u0303\u0301", "U\u0304\u0308",
  "u\u0304\u0308", "V\u0303", "v\u0303", "V\u0323", "v\u0323", "W\u0300", "w\u0300",
  "W\u0301", "w\u0301", "W\u0308", "w\u0308", "W\u0307", "w\u0307", "W\u0323", "w\u0323",
  "X\u0307", "x\u0307", "X\u0308", "x\u0308", "Y\u0307", "y\u0307", "Z\u0302", "z\u0302",
  "Z\u0323", "z\u0323", "Z\u0331", "z\u0331", "h\u0331", "t\u0308", "w\u030a", "y\u030a",
  "\u017f\u0307", "A\u0323", "a\u0323", "A\u0309", "a\u0309", "A\u0302\u0301", "a\u0302\u0301",
  "A\u0302\u0300", "a\u0302\u0300", "A\u0302\u0309", "a\u0302\u0309", "A\u0302\u0303",
  "a\u0302\u0303", "A\u0323\u0302", "a\u0323\u0302", "A\u0306\u0301", "a\u0306\u0301",
  "A\u0306\u0300", "a\u0306\u0300", "A\u0306\u0309", "a\u0306\u0309", "A\u0306\u0303",
  "a\u0306\u0303", "A\u0323\u0306", "a\u0323\u0306", "E\u0323", "e\u0323", "E\u0309",
  "e\u0309", "E\u0303", "e\u0303", "E\u0302\u0301", "e\u0302\u0301", "E\u0302\u0300",
  "e\u0302\u0300", "E\u0302\u0309", "e\u0302\u0309", "E\u0302\u0303", "e\u0302\u0303",
  "E\u0323\u0302", "e\u0323\u0302", "I\u0309", "i\u0309", "I\u0323", "i\u0323", "O\u0323",
  "o\u0323", "O\u0309", "o\u0309", "O\u0302\u0301", "o\u0302\u0301", "O\u0302\u0300",
  "o\u0302\u0300", "O\u0302\u0309", "o\u0302\u0309", "O\u0302\u0303", "o\u0302\u0303",
  "O\u0323\u0302", "o\u0323\u0302", "O\u031b\u0301", "o\u031b\u0301", "O\u031b\u0300",
  "o\u031b\u0300", "O\u031b\u0309", "o\u031b\u0309", "O\u031b\u0303", "o\u031b\u0303",
  "O\u031b\u0323", "o\u031b\u0323", "U\u0323", "u\u0323", "U\u0309", "u\u0309", "U\u031b\u0301",
  "u\u031b\u0301", "U\u031b\u0300", "u\u031b\u0300", "U\u031b\u0309", "u\u031b\u0309",
  "U\u031b\u0303", "u\u031b\u0303", "U\u031b\u0323", "u\u031b\u0323", "Y\u0300",
  "y\u0300", "Y\u0323", "y\u0323", "Y\u0309", "y\u0309", "Y\u0303", "y\u0303", "\u03b1\u0313",
  "\u03b1\u0314", "\u03b1\u0313\u0300", "\u03b1\u0314\u0300", "\u03b1\u0313\u0301",
  "\u03b1\u0314\u0301", "\u03b1\u0313\u0342", "\u03b1\u0314\u0342", "\u0391\u0313",
  "\u0391\u0314", "\u0391\u0313\u0300", "\u0391\u0314\u0300", "\u0391\u0313\u0301",
  "\u0391\u0314\u0301", "\u0391\u0313\u0342", "\u0391\u0314\u0342", "\u03b5\u0313",
  "\u03b5\u0314", "\u03b5\u0313\u0300", "\u03b5\u0314\u0300", "\u03b5\u0313\u0301",
  "\u03b5\u0314\u0301", "\u0395\u0313", "\u0395\u0314", "\u0395\u0313\u0300", "\u0395\u0314\u0300",
  "\u0395\u0313\u0301", "\u0395\u0314\u0301", "\u03b7\u0313", "\u03b7\u0314", "\u03b7\u0313\u0300",
  "\u03b7\u0314\u0300", "\u03b7\u0313\u0301", "\u03b7\u0314\u0301", "\u03b7\u0313\u0342",
  "\u03b7\u0314\u0342", "\u0397\u0313", "\u0397\u0314", "\u0397\u0313\u0300", "\u0397\u0314\u0300",
  "\u0397\u0313\u0301", "\u0397\u0314\u0301", "\u0397\u0313\u0342", "\u0397\u0314\u0342",
  "\u03b9\u0313", "\u03b9\u0314", "\u03b9\u0313\u0300", "\u03b9\u0314\u0300", "\u03b9\u0313\u0301",
  "\u03b9\u0314\u0301", "\u03b9\u0313\u0342", "\u03b9\u0314\u0342", "\u0399\u0313",
  "\u0399\u0314", "\u0399\u0313\u0300", "\u0399\u0314\u0300", "\u0399\u0313\u0301",
  "\u0399\u0314\u0301", "\u0399\u0313\u0342", "\u0399\u0314\u0342", "\u03bf\u0313",
  "\u03bf\u0314", "\u03bf\u0313\u0300", "\u03bf\u0314\u0300", "\u03bf\u0313\u0301",
  "\u03bf\u0314\u0301", "\u039f\u0313", "\u039f\u0314", "\u039f\u0313\u0300", "\u039f\u0314\u0300",
  "\u039f\u0313\u0301", "\u039f\u0314\u0301", "\u03c5\u0313", "\u03c5\u0314", "\u03c5\u0313\u0300",
  "\u03c5\u0314\u0300", "\u03c5\u0313\u0301", "\u03c5\u0314\u0301", "\u03c5\u0313\u0342",
  "\u03c5\u0314\u0342", "\u03a5\u0314", "\u03a5\u0314\u0300", "\u03a5\u0314\u0301",
  "\u03a5\u0314\u0342", "\u03c9\u0313", "\u03c9\u0314", "\u03c9\u0313\u0300", "\u03c9\u0314\u0300",
  "\u03c9\u0313\u0301", "\u03c9\u0314\u0301", "\u03c9\u0313\u0342", "\u03c9\u0314\u0342",
  "\u03a9\u0313", "\u03a9\u0314", "\u03a9\u0313\u0300", "\u03a9\u0314\u0300", "\u03a9\u0313\u0301",
  "\u03a9\u0314\u0301", "\u03a9\u0313\u0342", "\u03a9\u0314\u0342", "\u03b1\u0300",
  "\u03b1\u0301", "\u03b5\u0300", "\u03b5\u0301", "\u03b7\u0300", "\u03b7\u0301",
  "\u03b9\u0300", "\u03b9\u0301", "\u03bf\u0300", "\u03bf\u0301", "\u03c5\u0300",
  "\u03c5\u0301", "\u03c9\u0300", "\u03c9\u0301", "\u03b1\u0313\u0345", "\u03b1\u0314\u0345",
  "\u03b1\u0313\u0300\u0345", "\u03b1\u0314\u0300\u0345", "\u03b1\u0313\u0301\u0345",
  "\u03b1\u0314\u0301\u0345", "\u03b1\u0313\u0342\u0345", "\u03b1\u0314\u0342\u0345",
  "\u0391\u0313\u0345", "\u0391\u0314\u0345", "\u0391\u0313\u0300\u0345", "\u0391\u0314\u0300\u0345",
  "\u0391\u0313\u0301\u0345", "\u0391\u0314\u0301\u0345", "\u0391\u0313\u0342\u0345",
  "\u0391\u0314\u0342\u0345", "\u03b7\u0313\u0345", "\u03b7\u0314\u0345", "\u03b7\u0313\u0300\u0345",
  "\u03b7\u0314\u0300\u0345", "\u03b7\u0313\u0301\u0345", "\u03b7\u0314\u0301\u0345",
  "\u03b7\u0313\u0342\u0345", "\u03b7\u0314\u0342\u0345", "\u0397\u0313\u0345", "\u0397\u0314\u0345",
  "\u0397\u0313\u0300\u0345", "\u0397\u0314\u0300\u0345", "\u0397\u0313\u0301\u0345",
  "\u0397\u0314\u0301\u0345", "\u0397\u0313\u0342\u0345", "\u0397\u0314\u0342\u0345",
  "\u03c9\u0313\u0345", "\u03c9\u0314\u0345", "\u03c9\u0313\u0300\u0345", "\u03c9\u0314\u0300\u0345",
  "\u03c9\u0313\u0301\u0345", "\u03c9\u0314\u0301\u0345", "\u03c9\u0313\u0342\u0345",
  "\u03c9\u0314\u0342\u0345", "\u03a9\u0313\u0345", "\u03a9\u0314\u0345", "\u03a9\u0313\u0300\u0345",
  "\u03a9\u0314\u0300\u0345", "\u03a9\u0313\u0301\u0345", "\u03a9\u0314\u0301\u0345",
  "\u03a9\u0313\u0342\u0345", "\u03a9\u0314\u0342\u0345", "\u03b1\u0306", "\u03b1\u0304",
  "\u03b1\u0300\u0345", "\u03b1\u0345", "\u03b1\u0301\u0345", "\u03b1\u0342", "\u03b1\u0342\u0345",
  "\u0391\u0306", "\u0391\u0304", "\u0391\u0300", "\u0391\u0301", "\u0391\u0345",
  "\u03b9", "\u00a8\u0342", "\u03b7\u0300\u0345", "\u03b7\u0345", "\u03b7\u0301\u0345",
  "\u03b7\u0342", "\u03b7\u0342\u0345", "\u0395\u0300", "\u0395\u0301", "\u0397\u0300",
  "\u0397\u0301", "\u0397\u0345", "\u1fbf\u0300", "\u1fbf\u0301", "\u1fbf\u0342",
  "\u03b9\u0306", "\u03b9\u0304", "\u03b9\u0308\u0300", "\u03b9\u0308\u0301", "\u03b9\u0342",
  "\u03b9\u0308\u0342", "\u0399\u0306", "\u0399\u0304", "\u0399\u0300", "\u0399\u0301",
  "\u1ffe\u0300", "\u1ffe\u0301", "\u1ffe\u0342", "\u03c5\u0306", "\u03c5\u0304",
  "\u03c5\u0308\u0300", "\u03c5\u0308\u0301", "\u03c1\u0313", "\u03c1\u0314", "\u03c5\u0342",
  "\u03c5\u0308\u0342", "\u03a5\u0306", "\u03a5\u0304", "\u03a5\u0300", "\u03a5\u0301",
  "\u03a1\u0314", "\u00a8\u0300", "\u00a8\u0301", "`", "\u03c9\u0300\u0345", "\u03c9\u0345",
  "\u03c9\u0301\u0345", "\u03c9\u0342", "\u03c9\u0342\u0345", "\u039f\u0300", "\u039f\u0301",
  "\u03a9\u0300", "\u03a9\u0301", "\u03a9\u0345", "\u00b4", "\u2002", "\u2003", "\u03a9",
  "K", "A\u030a", "\u2190\u0338", "\u2192\u0338", "\u2194\u0338", "\u21d0\u0338",
  "\u21d4\u0338", "\u21d2\u0338", "\u2203\u0338", "\u2208\u0338", "\u220b\u0338",
  "\u2223\u0338", "\u2225\u0338", "\u223c\u0338", "\u2243\u0338", "\u2245\u0338",
  "\u2248\u0338", "=\u0338", "\u2261\u0338", "\u224d\u0338", "<\u0338", ">\u0338",
  "\u2264\u0338", "\u2265\u0338", "\u2272\u0338", "\u2273\u0338", "\u2276\u0338",
  "\u2277\u0338", "\u227a\u0338", "\u227b\u0338", "\u2282\u0338", "\u2283\u0338",
  "\u2286\u0338", "\u2287\u0338", "\u22a2\u0338", "\u22a8\u0338", "\u22a9\u0338",
  "\u22ab\u0338", "\u227c\u0338", "\u227d\u0338", "\u2291\u0338", "\u2292\u0338",
  "\u22b2\u0338", "\u22b3\u0338", "\u22b4\u0338", "\u22b5\u0338", "\u3008", "\u3009",
  "\u2add\u0338", "\u304b\u3099", "\u304d\u3099", "\u304f\u3099", "\u3051\u3099",
  "\u3053\u3099", "\u3055\u3099", "\u3057\u3099", "\u3059\u3099", "\u305b\u3099",
  "\u305d\u3099", "\u305f\u3099", "\u3061\u3099", "\u3064\u3099", "\u3066\u3099",
  "\u3068\u3099", "\u306f\u3099", "\u306f\u309a", "\u3072\u3099", "\u3072\u309a",
  "\u3075\u3099", "\u3075\u309a", "\u3078\u3099", "\u3078\u309a", "\u307b\u3099",
  "\u307b\u309a", "\u3046\u3099", "\u309d\u3099", "\u30ab\u3099", "\u30ad\u3099",
  "\u30af\u3099", "\u30b1\u3099", "\u30b3\u3099", "\u30b5\u3099", "\u30b7\u3099",
  "\u30b9\u3099", "\u30bb\u3099", "\u30bd\u3099", "\u30bf\u3099", "\u30c1\u3099",
  "\u30c4\u3099", "\u30c6\u3099", "\u30c8\u3099", "\u30cf\u3099", "\u30cf\u309a",
  "\u30d2\u3099", "\u30d2\u309a", "\u30d5\u3099", "\u30d5\u309a", "\u30d8\u3099",
  "\u30d8\u309a", "\u30db\u3099", "\u30db\u309a", "\u30a6\u3099", "\u30ef\u3099",
  "\u30f0\u3099", "\u30f1\u3099", "\u30f2\u3099", "\u30fd\u3099", "\u8c48", "\u66f4",
  "\u8eca", "\u8cc8", "\u6ed1", "\u4e32", "\u53e5", "\u9f9c", "\u9f9c", "\u5951",
  "\u91d1", "\u5587", "\u5948", "\u61f6", "\u7669", "\u7f85", "\u863f", "\u87ba",
  "\u88f8", "\u908f", "\u6a02", "\u6d1b", "\u70d9", "\u73de", "\u843d", "\u916a",
  "\u99f1", "\u4e82", "\u5375", "\u6b04", "\u721b", "\u862d", "\u9e1e", "\u5d50",
  "\u6feb", "\u85cd", "\u8964", "\u62c9", "\u81d8", "\u881f", "\u5eca", "\u6717",
  "\u6d6a", "\u72fc", "\u90ce", "\u4f86", "\u51b7", "\u52de", "\u64c4", "\u6ad3",
  "\u7210", "\u76e7", "\u8001", "\u8606", "\u865c", "\u8def", "\u9732", "\u9b6f",
  "\u9dfa", "\u788c", "\u797f", "\u7da0", "\u83c9", "\u9304", "\u9e7f", "\u8ad6",
  "\u58df", "\u5f04", "\u7c60", "\u807e", "\u7262", "\u78ca", "\u8cc2", "\u96f7",
  "\u58d8", "\u5c62", "\u6a13", "\u6dda", "\u6f0f", "\u7d2f", "\u7e37", "\u964b",
  "\u52d2", "\u808b", "\u51dc", "\u51cc", "\u7a1c", "\u7dbe", "\u83f1", "\u9675",
  "\u8b80", "\u62cf", "\u6a02", "\u8afe", "\u4e39", "\u5be7", "\u6012", "\u7387",
  "\u7570", "\u5317", "\u78fb", "\u4fbf", "\u5fa9", "\u4e0d", "\u6ccc", "\u6578",
  "\u7d22", "\u53c3", "\u585e", "\u7701", "\u8449", "\u8aaa", "\u6bba", "\u8fb0",
  "\u6c88", "\u62fe", "\u82e5", "\u63a0", "\u7565", "\u4eae", "\u5169", "\u51c9",
  "\u6881", "\u7ce7", "\u826f", "\u8ad2", "\u91cf", "\u52f5", "\u5442", "\u5973",
  "\u5eec", "\u65c5", "\u6ffe", "\u792a", "\u95ad", "\u9a6a", "\u9e97", "\u9ece",
  "\u529b", "\u66c6", "\u6b77", "\u8f62", "\u5e74", "\u6190", "\u6200", "\u649a",
  "\u6f23", "\u7149", "\u7489", "\u79ca", "\u7df4", "\u806f", "\u8f26", "\u84ee",
  "\u9023", "\u934a", "\u5217", "\u52a3", "\u54bd", "\u70c8", "\u88c2", "\u8aaa",
  "\u5ec9", "\u5ff5", "\u637b", "\u6bae", "\u7c3e", "\u7375", "\u4ee4", "\u56f9",
  "\u5be7", "\u5dba", "\u601c", "\u73b2", "\u7469", "\u7f9a", "\u8046", "\u9234",
  "\u96f6", "\u9748", "\u9818", "\u4f8b", "\u79ae", "\u91b4", "\u96b8", "\u60e1",
  "\u4e86", "\u50da", "\u5bee", "\u5c3f", "\u6599", "\u6a02", "\u71ce", "\u7642",
  "\u84fc", "\u907c", "\u9f8d", "\u6688", "\u962e", "\u5289", "\u677b", "\u67f3",
  "\u6d41", "\u6e9c", "\u7409", "\u7559", "\u786b", "\u7d10", "\u985e", "\u516d",
  "\u622e", "\u9678", "\u502b", "\u5d19", "\u6dea", "\u8f2a", "\u5f8b", "\u6144",
  "\u6817", "\u7387", "\u9686", "\u5229", "\u540f", "\u5c65", "\u6613", "\u674e",
  "\u68a8", "\u6ce5", "\u7406", "\u75e2", "\u7f79", "\u88cf", "\u88e1", "\u91cc",
  "\u96e2", "\u533f", "\u6eba", "\u541d", "\u71d0", "\u7498", "\u85fa", "\u96a3",
  "\u9c57", "\u9e9f", "\u6797", "\u6dcb", "\u81e8", "\u7acb", "\u7b20", "\u7c92",
  "\u72c0", "\u7099", "\u8b58", "\u4ec0", "\u8336", "\u523a", "\u5207", "\u5ea6",
  "\u62d3", "\u7cd6", "\u5b85", "\u6d1e", "\u66b4", "\u8f3b", "\u884c", "\u964d",
  "\u898b", "\u5ed3", "\u5140", "\u55c0", "\u585a", "\u6674", "\u51de", "\u732a",
  "\u76ca", "\u793c", "\u795e", "\u7965", "\u798f", "\u9756", "\u7cbe", "\u7fbd",
  "\u8612", "\u8af8", "\u9038", "\u90fd", "\u98ef", "\u98fc", "\u9928", "\u9db4",
  "\u90de", "\u96b7", "\u4fae", "\u50e7", "\u514d", "\u52c9", "\u52e4", "\u5351",
  "\u559d", "\u5606", "\u5668", "\u5840", "\u58a8", "\u5c64", "\u5c6e", "\u6094",
  "\u6168", "\u618e", "\u61f2", "\u654f", "\u65e2", "\u6691", "\u6885", "\u6d77",
  "\u6e1a", "\u6f22", "\u716e", "\u722b", "\u7422", "\u7891", "\u793e", "\u7949",
  "\u7948", "\u7950", "\u7956", "\u795d", "\u798d", "\u798e", "\u7a40", "\u7a81",
  "\u7bc0", "\u7df4", "\u7e09", "\u7e41", "\u7f72", "\u8005", "\u81ed", "\u8279",
  "\u8279", "\u8457", "\u8910", "\u8996", "\u8b01", "\u8b39", "\u8cd3", "\u8d08",
  "\u8fb6", "\u9038", "\u96e3", "\u97ff", "\u983b", "\u6075", "\u{242EE}", "\u8218",
  "\u4e26", "\u51b5", "\u5168", "\u4f80", "\u5145", "\u5180", "\u52c7", "\u52fa",
  "\u559d", "\u5555", "\u5599", "\u55e2", "\u585a", "\u58b3", "\u5944", "\u5954",
  "\u5a62", "\u5b28", "\u5ed2", "\u5ed9", "\u5f69", "\u5fad", "\u60d8", "\u614e",
  "\u6108", "\u618e", "\u6160", "\u61f2", "\u6234", "\u63c4", "\u641c", "\u6452",
  "\u6556", "\u6674", "\u6717", "\u671b", "\u6756", "\u6b79", "\u6bba", "\u6d41",
  "\u6edb", "\u6ecb", "\u6f22", "\u701e", "\u716e", "\u77a7", "\u7235", "\u72af",
  "\u732a", "\u7471", "\u7506", "\u753b", "\u761d", "\u761f", "\u76ca", "\u76db",
  "\u76f4", "\u774a", "\u7740", "\u78cc", "\u7ab1", "\u7bc0", "\u7c7b", "\u7d5b",
  "\u7df4", "\u7f3e", "\u8005", "\u8352", "\u83ef", "\u8779", "\u8941", "\u8986",
  "\u8996", "\u8abf", "\u8af8", "\u8acb", "\u8b01", "\u8afe", "\u8aed", "\u8b39",
  "\u8b8a", "\u8d08", "\u8f38", "\u9072", "\u9199", "\u9276", "\u967c", "\u96e3",
  "\u9756", "\u97db", "\u97ff", "\u980b", "\u983b", "\u9b12", "\u9f9c", "\u{2284A}",
  "\u{22844}", "\u{233D5}", "\u3b9d", "\u4018", "\u4039", "\u{25249}", "\u{25CD0}",
  "\u{27ED3}", "\u9f43", "\u9f8e", "\u05d9\u05b4", "\u05f2\u05b7", "\u05e9\u05c1",
  "\u05e9\u05c2", "\u05e9\u05bc\u05c1", "\u05e9\u05bc\u05c2", "\u05d0\u05b7", "\u05d0\u05b8",
  "\u05d0\u05bc", "\u05d1\u05bc", "\u05d2\u05bc", "\u05d3\u05bc", "\u05d4\u05bc",
  "\u05d5\u05bc", "\u05d6\u05bc", "\u05d8\u05bc", "\u05d9\u05bc", "\u05da\u05bc",
  "\u05db\u05bc", "\u05dc\u05bc", "\u05de\u05bc", "\u05e0\u05bc", "\u05e1\u05bc",
  "\u05e3\u05bc", "\u05e4\u05bc", "\u05e6\u05bc", "\u05e7\u05bc", "\u05e8\u05bc",
  "\u05e9\u05bc", "\u05ea\u05bc", "\u05d5\u05b9", "\u05d1\u05bf", "\u05db\u05bf",
  "\u05e4\u05bf", "\u{105D2}\u0307", "\u{105DA}\u0307", "\u{11099}\u{110BA}", "\u{1109B}\u{110BA}",
  "\u{110A5}\u{110BA}", "\u{11131}\u{11127}", "\u{11132}\u{11127}", "\u{11347}\u{1133E}",
  "\u{11347}\u{11357}", "\u{11382}\u{113C9}", "\u{11384}\u{113BB}", "\u{1138B}\u{113C2}",
  "\u{11390}\u{113C9}", "\u{113C2}\u{113C2}", "\u{113C2}\u{113B8}", "\u{113C2}\u{113C9}",
  "\u{114B9}\u{114BA}", "\u{114B9}\u{114B0}", "\u{114B9}\u{114BD}", "\u{115B8}\u{115AF}",
  "\u{115B9}\u{115AF}", "\u{11935}\u{11930}", "\u{1611E}\u{1611E}", "\u{1611E}\u{16129}",
  "\u{1611E}\u{1611F}", "\u{16129}\u{1611F}", "\u{1611E}\u{16120}", "\u{1611E}\u{1611E}\u{1611F}",
  "\u{1611E}\u{16129}\u{1611F}", "\u{1611E}\u{1611E}\u{16120}", "\u{16D67}\u{16D67}",
  "\u{16D63}\u{16D67}", "\u{16D63}\u{16D67}\u{16D67}", "\u{1D157}\u{1D165}", "\u{1D158}\u{1D165}",
  "\u{1D158}\u{1D165}\u{1D16E}", "\u{1D158}\u{1D165}\u{1D16F}", "\u{1D158}\u{1D165}\u{1D170}",
  "\u{1D158}\u{1D165}\u{1D171}", "\u{1D158}\u{1D165}\u{1D172}", "\u{1D1B9}\u{1D165}",
  "\u{1D1BA}\u{1D165}", "\u{1D1B9}\u{1D165}\u{1D16E}", "\u{1D1BA}\u{1D165}\u{1D16E}",
  "\u{1D1B9}\u{1D165}\u{1D16F}", "\u{1D1BA}\u{1D165}\u{1D16F}", "\u4e3d", "\u4e38",
  "\u4e41", "\u{20122}", "\u4f60", "\u4fae", "\u4fbb", "\u5002", "\u507a", "\u5099",
  "\u50e7", "\u50cf", "\u349e", "\u{2063A}", "\u514d", "\u5154", "\u5164", "\u5177",
  "\u{2051C}", "\u34b9", "\u5167", "\u518d", "\u{2054B}", "\u5197", "\u51a4", "\u4ecc",
  "\u51ac", "\u51b5", "\u{291DF}", "\u51f5", "\u5203", "\u34df", "\u523b", "\u5246",
  "\u5272", "\u5277", "\u3515", "\u52c7", "\u52c9", "\u52e4", "\u52fa", "\u5305",
  "\u5306", "\u5317", "\u5349", "\u5351", "\u535a", "\u5373", "\u537d", "\u537f",
  "\u537f", "\u537f", "\u{20A2C}", "\u7070", "\u53ca", "\u53df", "\u{20B63}", "\u53eb",
  "\u53f1", "\u5406", "\u549e", "\u5438", "\u5448", "\u5468", "\u54a2", "\u54f6",
  "\u5510", "\u5553", "\u5563", "\u5584", "\u5584", "\u5599", "\u55ab", "\u55b3",
  "\u55c2", "\u5716", "\u5606", "\u5717", "\u5651", "\u5674", "\u5207", "\u58ee",
  "\u57ce", "\u57f4", "\u580d", "\u578b", "\u5832", "\u5831", "\u58ac", "\u{214E4}",
  "\u58f2", "\u58f7", "\u5906", "\u591a", "\u5922", "\u5962", "\u{216A8}", "\u{216EA}",
  "\u59ec", "\u5a1b", "\u5a27", "\u59d8", "\u5a66", "\u36ee", "\u36fc", "\u5b08",
  "\u5b3e", "\u5b3e", "\u{219C8}", "\u5bc3", "\u5bd8", "\u5be7", "\u5bf3", "\u{21B18}",
  "\u5bff", "\u5c06", "\u5f53", "\u5c22", "\u3781", "\u5c60", "\u5c6e", "\u5cc0",
  "\u5c8d", "\u{21DE4}", "\u5d43", "\u{21DE6}", "\u5d6e", "\u5d6b", "\u5d7c", "\u5de1",
  "\u5de2", "\u382f", "\u5dfd", "\u5e28", "\u5e3d", "\u5e69", "\u3862", "\u{22183}",
  "\u387c", "\u5eb0", "\u5eb3", "\u5eb6", "\u5eca", "\u{2A392}", "\u5efe", "\u{22331}",
  "\u{22331}", "\u8201", "\u5f22", "\u5f22", "\u38c7", "\u{232B8}", "\u{261DA}",
  "\u5f62", "\u5f6b", "\u38e3", "\u5f9a", "\u5fcd", "\u5fd7", "\u5ff9", "\u6081",
  "\u393a", "\u391c", "\u6094", "\u{226D4}", "\u60c7", "\u6148", "\u614c", "\u614e",
  "\u614c", "\u617a", "\u618e", "\u61b2", "\u61a4", "\u61af", "\u61de", "\u61f2",
  "\u61f6", "\u6210", "\u621b", "\u625d", "\u62b1", "\u62d4", "\u6350", "\u{22B0C}",
  "\u633d", "\u62fc", "\u6368", "\u6383", "\u63e4", "\u{22BF1}", "\u6422", "\u63c5",
  "\u63a9", "\u3a2e", "\u6469", "\u647e", "\u649d", "\u6477", "\u3a6c", "\u654f",
  "\u656c", "\u{2300A}", "\u65e3", "\u66f8", "\u6649", "\u3b19", "\u6691", "\u3b08",
  "\u3ae4", "\u5192", "\u5195", "\u6700", "\u669c", "\u80ad", "\u43d9", "\u6717",
  "\u671b", "\u6721", "\u675e", "\u6753", "\u{233C3}", "\u3b49", "\u67fa", "\u6785",
  "\u6852", "\u6885", "\u{2346D}", "\u688e", "\u681f", "\u6914", "\u3b9d", "\u6942",
  "\u69a3", "\u69ea", "\u6aa8", "\u{236A3}", "\u6adb", "\u3c18", "\u6b21", "\u{238A7}",
  "\u6b54", "\u3c4e", "\u6b72", "\u6b9f", "\u6bba", "\u6bbb", "\u{23A8D}", "\u{21D0B}",
  "\u{23AFA}", "\u6c4e", "\u{23CBC}", "\u6cbf", "\u6ccd", "\u6c67", "\u6d16", "\u6d3e",
  "\u6d77", "\u6d41", "\u6d69", "\u6d78", "\u6d85", "\u{23D1E}", "\u6d34", "\u6e2f",
  "\u6e6e", "\u3d33", "\u6ecb", "\u6ec7", "\u{23ED1}", "\u6df9", "\u6f6e", "\u{23F5E}",
  "\u{23F8E}", "\u6fc6", "\u7039", "\u701e", "\u701b", "\u3d96", "\u704a", "\u707d",
  "\u7077", "\u70ad", "\u{20525}", "\u7145", "\u{24263}", "\u719c", "\u{243AB}",
  "\u7228", "\u7235", "\u7250", "\u{24608}", "\u7280", "\u7295", "\u{24735}", "\u{24814}",
  "\u737a", "\u738b", "\u3eac", "\u73a5", "\u3eb8", "\u3eb8", "\u7447", "\u745c",
  "\u7471", "\u7485", "\u74ca", "\u3f1b", "\u7524", "\u{24C36}", "\u753e", "\u{24C92}",
  "\u7570", "\u{2219F}", "\u7610", "\u{24FA1}", "\u{24FB8}", "\u{25044}", "\u3ffc",
  "\u4008", "\u76f4", "\u{250F3}", "\u{250F2}", "\u{25119}", "\u{25133}", "\u771e",
  "\u771f", "\u771f", "\u774a", "\u4039", "\u778b", "\u4046", "\u4096", "\u{2541D}",
  "\u784e", "\u788c", "\u78cc", "\u40e3", "\u{25626}", "\u7956", "\u{2569A}", "\u{256C5}",
  "\u798f", "\u79eb", "\u412f", "\u7a40", "\u7a4a", "\u7a4f", "\u{2597C}", "\u{25AA7}",
  "\u{25AA7}", "\u7aee", "\u4202", "\u{25BAB}", "\u7bc6", "\u7bc9", "\u4227", "\u{25C80}",
  "\u7cd2", "\u42a0", "\u7ce8", "\u7ce3", "\u7d00", "\u{25F86}", "\u7d63", "\u4301",
  "\u7dc7", "\u7e02", "\u7e45", "\u4334", "\u{26228}", "\u{26247}", "\u4359", "\u{262D9}",
  "\u7f7a", "\u{2633E}", "\u7f95", "\u7ffa", "\u8005", "\u{264DA}", "\u{26523}",
  "\u8060", "\u{265A8}", "\u8070", "\u{2335F}", "\u43d5", "\u80b2", "\u8103", "\u440b",
  "\u813e", "\u5ab5", "\u{267A7}", "\u{267B5}", "\u{23393}", "\u{2339C}", "\u8201",
  "\u8204", "\u8f9e", "\u446b", "\u8291", "\u828b", "\u829d", "\u52b3", "\u82b1",
  "\u82b3", "\u82bd", "\u82e6", "\u{26B3C}", "\u82e5", "\u831d", "\u8363", "\u83ad",
  "\u8323", "\u83bd", "\u83e7", "\u8457", "\u8353", "\u83ca", "\u83cc", "\u83dc",
  "\u{26C36}", "\u{26D6B}", "\u{26CD5}", "\u452b", "\u84f1", "\u84f3", "\u8516",
  "\u{273CA}", "\u8564", "\u{26F2C}", "\u455d", "\u4561", "\u{26FB1}", "\u{270D2}",
  "\u456b", "\u8650", "\u865c", "\u8667", "\u8669", "\u86a9", "\u8688", "\u870e",
  "\u86e2", "\u8779", "\u8728", "\u876b", "\u8786", "\u45d7", "\u87e1", "\u8801",
  "\u45f9", "\u8860", "\u8863", "\u{27667}", "\u88d7", "\u88de", "\u4635", "\u88fa",
  "\u34bb", "\u{278AE}", "\u{27966}", "\u46be", "\u46c7", "\u8aa0", "\u8aed", "\u8b8a",
  "\u8c55", "\u{27CA8}", "\u8cab", "\u8cc1", "\u8d1b", "\u8d77", "\u{27F2F}", "\u{20804}",
  "\u8dcb", "\u8dbc", "\u8df0", "\u{208DE}", "\u8ed4", "\u8f38", "\u{285D2}", "\u{285ED}",
  "\u9094", "\u90f1", "\u9111", "\u{2872E}", "\u911b", "\u9238", "\u92d7", "\u92d8",
  "\u927c", "\u93f9", "\u9415", "\u{28BFA}", "\u958b", "\u4995", "\u95b7", "\u{28D77}",
  "\u49e6", "\u96c3", "\u5db2", "\u9723", "\u{29145}", "\u{2921A}", "\u4a6e", "\u4a76",
  "\u97e0", "\u{2940A}", "\u4ab2", "\u{29496}", "\u980b", "\u980b", "\u9829", "\u{295B6}",
  "\u98e2", "\u4b33", "\u9929", "\u99a7", "\u99c2", "\u99fe", "\u4bce", "\u{29B30}",
  "\u9b12", "\u9c40", "\u9cfd", "\u4cce", "\u4ced", "\u9d67", "\u{2A0CE}", "\u4cf8",
  "\u{2A105}", "\u{2A20E}", "\u{2A291}", "\u9ebb", "\u4d56", "\u9ef9", "\u9efe",
  "\u9f05", "\u9f0f", "\u9f16", "\u9f3b", "\u{2A600}",
]

///|
let casefold_keys : FixedArray[Int32] = [
  0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
  0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0xB5, 0xC0,
  0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE,
  0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD,
  0xDE, 0xDF, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112,
  0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A,
  0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143,
  0x145, 0x147, 0x149, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A,
  0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172,
  0x174, 0x176, 0x178, 0x179, 0x17B, 0x17D, 0x17F, 0x181, 0x182, 0x184, 0x186, 0x187,
  0x189, 0x18A, 0x18B, 0x18E, 0x18F, 0x190, 0x191, 0x193, 0x194, 0x196, 0x197, 0x198,
  0x19C, 0x19D, 0x19F, 0x1A0, 0x1A2, 0x1A4, 0x1A6, 0x1A7, 0x1A9, 0x1AC, 0x1AE, 0x1AF,
  0x1B1, 0x1B2, 0x1B3, 0x1B5, 0x1B7, 0x1B8, 0x1BC, 0x1C4, 0x1C5, 0x1C7, 0x1C8, 0x1CA,
  0x1CB, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2,
  0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F0, 0x1F1, 0x1F2, 0x1F4, 0x1F6, 0x1F7,
  0x1F8, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E,
  0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226,
  0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x23A, 0x23B, 0x23D, 0x23E, 0x241, 0x243,
  0x244, 0x245, 0x246, 0x248, 0x24A, 0x24C, 0x24E, 0x345, 0x370, 0x372, 0x376, 0x37F,
  0x386, 0x388, 0x389, 0x38A, 0x38C, 0x38E, 0x38F, 0x390, 0x391, 0x392, 0x393, 0x394,
  0x395, 0x396, 0x397, 0x398, 0x399, 0x39A, 0x39B, 0x39C, 0x39D, 0x39E, 0x39F, 0x3A0,
  0x3A1, 0x3A3, 0x3A4, 0x3A5, 0x3A6, 0x3A7, 0x3A8, 0x3A9, 0x3AA, 0x3AB, 0x3B0, 0x3C2,
  0x3CF, 0x3D0, 0x3D1, 0x3D5, 0x3D6, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4,
  0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F0, 0x3F1, 0x3F4, 0x3F5, 0x3F7, 0x3F9, 0x3FA,
  0x3FD, 0x3FE, 0x3FF, 0x400, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407, 0x408,
  0x409, 0x40A, 0x40B, 0x40C, 0x40D, 0x40E, 0x40F, 0x410, 0x411, 0x412, 0x413, 0x414,
  0x415, 0x416, 0x417, 0x418, 0x419, 0x41A, 0x41B, 0x41C, 0x41D, 0x41E, 0x41F, 0x420,
  0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427, 0x428, 0x429, 0x42A, 0x42B, 0x42C,
  0x42D, 0x42E, 0x42F, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470,
  0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490,
  0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8,
  0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C0,
  0x4C1, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8,
  0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0,
  0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508,
  0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520,
  0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x531, 0x532, 0x533, 0x534, 0x535,
  0x536, 0x537, 0x538, 0x539, 0x53A, 0x53B, 0x53C, 0x53D, 0x53E, 0x53F, 0x540, 0x541,
  0x542, 0x543, 0x544, 0x545, 0x546, 0x547, 0x548, 0x549, 0x54A, 0x54B, 0x54C, 0x54D,
  0x54E, 0x54F, 0x550, 0x551, 0x552, 0x553, 0x554, 0x555, 0x556, 0x587, 0x10A0, 0x10A1,
  0x10A2, 0x10A3, 0x10A4, 0x10A5, 0x10A6, 0x10A7, 0x10A8, 0x10A9, 0x10AA, 0x10AB,
  0x10AC, 0x10AD, 0x10AE, 0x10AF, 0x10B0, 0x10B1, 0x10B2, 0x10B3, 0x10B4, 0x10B5,
  0x10B6, 0x10B7, 0x10B8, 0x10B9, 0x10BA, 0x10BB, 0x10BC, 0x10BD, 0x10BE, 0x10BF,
  0x10C0, 0x10C1, 0x10C2, 0x10C3, 0x10C4, 0x10C5, 0x10C7, 0x10CD, 0x13F8, 0x13F9,
  0x13FA, 0x13FB, 0x13FC, 0x13FD, 0x1C80, 0x1C81, 0x1C82, 0x1C83, 0x1C84, 0x1C85,
  0x1C86, 0x1C87, 0x1C88, 0x1C89, 0x1C90, 0x1C91, 0x1C92, 0x1C93, 0x1C94, 0x1C95,
  0x1C96, 0x1C97, 0x1C98, 0x1C99, 0x1C9A, 0x1C9B, 0x1C9C, 0x1C9D, 0x1C9E, 0x1C9F,
  0x1CA0, 0x1CA1, 0x1CA2, 0x1CA3, 0x1CA4, 0x1CA5, 0x1CA6, 0x1CA7, 0x1CA8, 0x1CA9,
  0x1CAA, 0x1CAB, 0x1CAC, 0x1CAD, 0x1CAE, 0x1CAF, 0x1CB0, 0x1CB1, 0x1CB2, 0x1CB3,
  0x1CB4, 0x1CB5, 0x1CB6, 0x1CB7, 0x1CB8, 0x1CB9, 0x1CBA, 0x1CBD, 0x1CBE, 0x1CBF,
  0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12,
  0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26,
  0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A,
  0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E,
  0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62,
  0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76,
  0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A,
  0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E96, 0x1E97, 0x1E98, 0x1E99, 0x1E9A,
  0x1E9B, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE,
  0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2,
  0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6,
  0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA,
  0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE,
  0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F, 0x1F18, 0x1F19,
  0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D,
  0x1F2E, 0x1F2F, 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
  0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x1F50, 0x1F52, 0x1F54, 0x1F56,
  0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D,
  0x1F6E, 0x1F6F, 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,
  0x1FB2, 0x1FB3, 0x1FB4, 0x1FB6, 0x1FB7, 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC,
  0x1FBE, 0x1FC2, 0x1FC3, 0x1FC4, 0x1FC6, 0x1FC7, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB,
  0x1FCC, 0x1FD2, 0x1FD3, 0x1FD6, 0x1FD7, 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x1FE2,
  0x1FE3, 0x1FE4, 0x1FE6, 0x1FE7, 0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FF2,
  0x1FF3, 0x1FF4, 0x1FF6, 0x1FF7, 0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x2126,
  0x212A, 0x212B, 0x2132, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166,
  0x2167, 0x2168, 0x2169, 0x216A, 0x216B, 0x216C, 0x216D, 0x216E, 0x216F, 0x2183,
  0x24B6, 0x24B7, 0x24B8, 0x24B9, 0x24BA, 0x24BB, 0x24BC, 0x24BD, 0x24BE, 0x24BF,
  0x24C0, 0x24C1, 0x24C2, 0x24C3, 0x24C4, 0x24C5, 0x24C6, 0x24C7, 0x24C8, 0x24C9,
  0x24CA, 0x24CB, 0x24CC, 0x24CD, 0x24CE, 0x24CF, 0x2C00, 0x2C01, 0x2C02, 0x2C03,
  0x2C04, 0x2C05, 0x2C06, 0x2C07, 0x2C08, 0x2C09, 0x2C0A, 0x2C0B, 0x2C0C, 0x2C0D,
  0x2C0E, 0x2C0F, 0x2C10, 0x2C11, 0x2C12, 0x2C13, 0x2C14, 0x2C15, 0x2C16, 0x2C17,
  0x2C18, 0x2C19, 0x2C1A, 0x2C1B, 0x2C1C, 0x2C1D, 0x2C1E, 0x2C1F, 0x2C20, 0x2C21,
  0x2C22, 0x2C23, 0x2C24, 0x2C25, 0x2C26, 0x2C27, 0x2C28, 0x2C29, 0x2C2A, 0x2C2B,
  0x2C2C, 0x2C2D, 0x2C2E, 0x2C2F, 0x2C60, 0x2C62, 0x2C63, 0x2C64, 0x2C67, 0x2C69,
  0x2C6B, 0x2C6D, 0x2C6E, 0x2C6F, 0x2C70, 0x2C72, 0x2C75, 0x2C7E, 0x2C7F, 0x2C80,
  0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94,
  0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8,
  0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC,
  0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0,
  0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB,
  0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E,
  0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662,
  0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688,
  0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722,
  0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738,
  0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C,
  0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760,
  0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA77D,
  0xA77E, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796,
  0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7AA,
  0xA7AB, 0xA7AC, 0xA7AD, 0xA7AE, 0xA7B0, 0xA7B1, 0xA7B2, 0xA7B3, 0xA7B4, 0xA7B6,
  0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C4, 0xA7C5, 0xA7C6, 0xA7C7,
  0xA7C9, 0xA7CB, 0xA7CC, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7DA, 0xA7DC, 0xA7F5, 0xAB70,
  0xAB71, 0xAB72, 0xAB73, 0xAB74, 0xAB75, 0xAB76, 0xAB77, 0xAB78, 0xAB79, 0xAB7A,
  0xAB7B, 0xAB7C, 0xAB7D, 0xAB7E, 0xAB7F, 0xAB80, 0xAB81, 0xAB82, 0xAB83, 0xAB84,
  0xAB85, 0xAB86, 0xAB87, 0xAB88, 0xAB89, 0xAB8A, 0xAB8B, 0xAB8C, 0xAB8D, 0xAB8E,
  0xAB8F, 0xAB90, 0xAB91, 0xAB92, 0xAB93, 0xAB94, 0xAB95, 0xAB96, 0xAB97, 0xAB98,
  0xAB99, 0xAB9A, 0xAB9B, 0xAB9C, 0xAB9D, 0xAB9E, 0xAB9F, 0xABA0, 0xABA1, 0xABA2,
  0xABA3, 0xABA4, 0xABA5, 0xABA6, 0xABA7, 0xABA8, 0xABA9, 0xABAA, 0xABAB, 0xABAC,
  0xABAD, 0xABAE, 0xABAF, 0xABB0, 0xABB1, 0xABB2, 0xABB3, 0xABB4, 0xABB5, 0xABB6,
  0xABB7, 0xABB8, 0xABB9, 0xABBA, 0xABBB, 0xABBC, 0xABBD, 0xABBE, 0xABBF, 0xFB00,
  0xFB01, 0xFB02, 0xFB03, 0xFB04, 0xFB05, 0xFB06, 0xFB13, 0xFB14, 0xFB15, 0xFB16,
  0xFB17, 0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27, 0xFF28, 0xFF29,
  0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30, 0xFF31, 0xFF32, 0xFF33,
  0xFF34, 0xFF35, 0xFF36, 0xFF37, 0xFF38, 0xFF39, 0xFF3A, 0x10400, 0x10401, 0x10402,
  0x10403, 0x10404, 0x10405, 0x10406, 0x10407, 0x10408, 0x10409, 0x1040A, 0x1040B,
  0x1040C, 0x1040D, 0x1040E, 0x1040F, 0x10410, 0x10411, 0x10412, 0x10413, 0x10414,
  0x10415, 0x10416, 0x10417, 0x10418, 0x10419, 0x1041A, 0x1041B, 0x1041C, 0x1041D,
  0x1041E, 0x1041F, 0x10420, 0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426,
  0x10427, 0x104B0, 0x104B1, 0x104B2, 0x104B3, 0x104B4, 0x104B5, 0x104B6, 0x104B7,
  0x104B8, 0x104B9, 0x104BA, 0x104BB, 0x104BC, 0x104BD, 0x104BE, 0x104BF, 0x104C0,
  0x104C1, 0x104C2, 0x104C3, 0x104C4, 0x104C5, 0x104C6, 0x104C7, 0x104C8, 0x104C9,
  0x104CA, 0x104CB, 0x104CC, 0x104CD, 0x104CE, 0x104CF, 0x104D0, 0x104D1, 0x104D2,
  0x104D3, 0x10570, 0x10571, 0x10572, 0x10573, 0x10574, 0x10575, 0x10576, 0x10577,
  0x10578, 0x10579, 0x1057A, 0x1057C, 0x1057D, 0x1057E, 0x1057F, 0x10580, 0x10581,
  0x10582, 0x10583, 0x10584, 0x10585, 0x10586, 0x10587, 0x10588, 0x10589, 0x1058A,
  0x1058C, 0x1058D, 0x1058E, 0x1058F, 0x10590, 0x10591, 0x10592, 0x10594, 0x10595,
  0x10C80, 0x10C81, 0x10C82, 0x10C83, 0x10C84, 0x10C85, 0x10C86, 0x10C87, 0x10C88,
  0x10C89, 0x10C8A, 0x10C8B, 0x10C8C, 0x10C8D, 0x10C8E, 0x10C8F, 0x10C90, 0x10C91,
  0x10C92, 0x10C93, 0x10C94, 0x10C95, 0x10C96, 0x10C97, 0x10C98, 0x10C99, 0x10C9A,
  0x10C9B, 0x10C9C, 0x10C9D, 0x10C9E, 0x10C9F, 0x10CA0, 0x10CA1, 0x10CA2, 0x10CA3,
  0x10CA4, 0x10CA5, 0x10CA6, 0x10CA7, 0x10CA8, 0x10CA9, 0x10CAA, 0x10CAB, 0x10CAC,
  0x10CAD, 0x10CAE, 0x10CAF, 0x10CB0, 0x10CB1, 0x10CB2, 0x10D50, 0x10D51, 0x10D52,
  0x10D53, 0x10D54, 0x10D55, 0x10D56, 0x10D57, 0x10D58, 0x10D59, 0x10D5A, 0x10D5B,
  0x10D5C, 0x10D5D, 0x10D5E, 0x10D5F, 0x10D60, 0x10D61, 0x10D62, 0x10D63, 0x10D64,
  0x10D65, 0x118A0, 0x118A1, 0x118A2, 0x118A3, 0x118A4, 0x118A5, 0x118A6, 0x118A7,
  0x118A8, 0x118A9, 0x118AA, 0x118AB, 0x118AC, 0x118AD, 0x118AE, 0x118AF, 0x118B0,
  0x118B1, 0x118B2, 0x118B3, 0x118B4, 0x118B5, 0x118B6, 0x118B7, 0x118B8, 0x118B9,
  0x118BA, 0x118BB, 0x118BC, 0x118BD, 0x118BE, 0x118BF, 0x16E40, 0x16E41, 0x16E42,
  0x16E43, 0x16E44, 0x16E45, 0x16E46, 0x16E47, 0x16E48, 0x16E49, 0x16E4A, 0x16E4B,
  0x16E4C, 0x16E4D, 0x16E4E, 0x16E4F, 0x16E50, 0x16E51, 0x16E52, 0x16E53, 0x16E54,
  0x16E55, 0x16E56, 0x16E57, 0x16E58, 0x16E59, 0x16E5A, 0x16E5B, 0x16E5C, 0x16E5D,
  0x16E5E, 0x16E5F, 0x1E900, 0x1E901, 0x1E902, 0x1E903, 0x1E904, 0x1E905, 0x1E906,
  0x1E907, 0x1E908, 0x1E909, 0x1E90A, 0x1E90B, 0x1E90C, 0x1E90D, 0x1E90E, 0x1E90F,
  0x1E910, 0x1E911, 0x1E912, 0x1E913, 0x1E914, 0x1E915, 0x1E916, 0x1E917, 0x1E918,
  0x1E919, 0x1E91A, 0x1E91B, 0x1E91C, 0x1E91D, 0x1E91E, 0x1E91F, 0x1E920, 0x1E921,
]

///|
let casefold_values : FixedArray[String] = [
  "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p",
  "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "\u03bc", "\u00e0", "\u00e1",
  "\u00e2", "\u00e3", "\u00e4", "\u00e5", "\u00e6", "\u00e7", "\u00e8", "\u00e9",
  "\u00ea", "\u00eb", "\u00ec", "\u00ed", "\u00ee", "\u00ef", "\u00f0", "\u00f1",
  "\u00f2", "\u00f3", "\u00f4", "\u00f5", "\u00f6", "\u00f8", "\u00f9", "\u00fa",
  "\u00fb", "\u00fc", "\u00fd", "\u00fe", "ss", "\u0101", "\u0103", "\u0105", "\u0107",
  "\u0109", "\u010b", "\u010d", "\u010f", "\u0111", "\u0113", "\u0115", "\u0117",
  "\u0119", "\u011b", "\u011d", "\u011f", "\u0121", "\u0123", "\u0125", "\u0127",
  "\u0129", "\u012b", "\u012d", "\u012f", "i\u0307", "\u0133", "\u0135", "\u0137",
  "\u013a", "\u013c", "\u013e", "\u0140", "\u0142", "\u0144", "\u0146", "\u0148",
  "\u02bcn", "\u014b", "\u014d", "\u014f", "\u0151", "\u0153", "\u0155", "\u0157",
  "\u0159", "\u015b", "\u015d", "\u015f", "\u0161", "\u0163", "\u0165", "\u0167",
  "\u0169", "\u016b", "\u016d", "\u016f", "\u0171", "\u0173", "\u0175", "\u0177",
  "\u00ff", "\u017a", "\u017c", "\u017e", "s", "\u0253", "\u0183", "\u0185", "\u0254",
  "\u0188", "\u0256", "\u0257", "\u018c", "\u01dd", "\u0259", "\u025b", "\u0192",
  "\u0260", "\u0263", "\u0269", "\u0268", "\u0199", "\u026f", "\u0272", "\u0275",
  "\u01a1", "\u01a3", "\u01a5", "\u0280", "\u01a8", "\u0283", "\u01ad", "\u0288",
  "\u01b0", "\u028a", "\u028b", "\u01b4", "\u01b6", "\u0292", "\u01b9", "\u01bd",
  "\u01c6", "\u01c6", "\u01c9", "\u01c9", "\u01cc", "\u01cc", "\u01ce", "\u01d0",
  "\u01d2", "\u01d4", "\u01d6", "\u01d8", "\u01da", "\u01dc", "\u01df", "\u01e1",
  "\u01e3", "\u01e5", "\u01e7", "\u01e9", "\u01eb", "\u01ed", "\u01ef", "j\u030c",
  "\u01f3", "\u01f3", "\u01f5", "\u0195", "\u01bf", "\u01f9", "\u01fb", "\u01fd",
  "\u01ff", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020b", "\u020d",
  "\u020f", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021b", "\u021d",
  "\u021f", "\u019e", "\u0223", "\u0225", "\u0227", "\u0229", "\u022b", "\u022d",
  "\u022f", "\u0231", "\u0233", "\u2c65", "\u023c", "\u019a", "\u2c66", "\u0242",
  "\u0180", "\u0289", "\u028c", "\u0247", "\u0249", "\u024b", "\u024d", "\u024f",
  "\u03b9", "\u0371", "\u0373", "\u0377", "\u03f3", "\u03ac", "\u03ad", "\u03ae",
  "\u03af", "\u03cc", "\u03cd", "\u03ce", "\u03b9\u0308\u0301", "\u03b1", "\u03b2",
  "\u03b3", "\u03b4", "\u03b5", "\u03b6", "\u03b7", "\u03b8", "\u03b9", "\u03ba",
  "\u03bb", "\u03bc", "\u03bd", "\u03be", "\u03bf", "\u03c0", "\u03c1", "\u03c3",
  "\u03c4", "\u03c5", "\u03c6", "\u03c7", "\u03c8", "\u03c9", "\u03ca", "\u03cb",
  "\u03c5\u0308\u0301", "\u03c3", "\u03d7", "\u03b2", "\u03b8", "\u03c6", "\u03c0",
  "\u03d9", "\u03db", "\u03dd", "\u03df", "\u03e1", "\u03e3", "\u03e5", "\u03e7",
  "\u03e9", "\u03eb", "\u03ed", "\u03ef", "\u03ba", "\u03c1", "\u03b8", "\u03b5",
  "\u03f8", "\u03f2", "\u03fb", "\u037b", "\u037c", "\u037d", "\u0450", "\u0451",
  "\u0452", "\u0453", "\u0454", "\u0455", "\u0456", "\u0457", "\u0458", "\u0459",
  "\u045a", "\u045b", "\u045c", "\u045d", "\u045e", "\u045f", "\u0430", "\u0431",
  "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439",
  "\u043a", "\u043b", "\u043c", "\u043d", "\u043e", "\u043f", "\u0440", "\u0441",
  "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449",
  "\u044a", "\u044b", "\u044c", "\u044d", "\u044e", "\u044f", "\u0461", "\u0463",
  "\u0465", "\u0467", "\u0469", "\u046b", "\u046d", "\u046f", "\u0471", "\u0473",
  "\u0475", "\u0477", "\u0479", "\u047b", "\u047d", "\u047f", "\u0481", "\u048b",
  "\u048d", "\u048f", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049b",
  "\u049d", "\u049f", "\u04a1", "\u04a3", "\u04a5", "\u04a7", "\u04a9", "\u04ab",
  "\u04ad", "\u04af", "\u04b1", "\u04b3", "\u04b5", "\u04b7", "\u04b9", "\u04bb",
  "\u04bd", "\u04bf", "\u04cf", "\u04c2", "\u04c4", "\u04c6", "\u04c8", "\u04ca",
  "\u04cc", "\u04ce", "\u04d1", "\u04d3", "\u04d5", "\u04d7", "\u04d9", "\u04db",
  "\u04dd", "\u04df", "\u04e1", "\u04e3", "\u04e5", "\u04e7", "\u04e9", "\u04eb",
  "\u04ed", "\u04ef", "\u04f1", "\u04f3", "\u04f5", "\u04f7", "\u04f9", "\u04fb",
  "\u04fd", "\u04ff", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050b",
  "\u050d", "\u050f", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051b",
  "\u051d", "\u051f", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052b",
  "\u052d", "\u052f", "\u0561", "\u0562", "\u0563", "\u0564", "\u0565", "\u0566",
  "\u0567", "\u0568", "\u0569", "\u056a", "\u056b", "\u056c", "\u056d", "\u056e",
  "\u056f", "\u0570", "\u0571", "\u0572", "\u0573", "\u0574", "\u0575", "\u0576",
  "\u0577", "\u0578", "\u0579", "\u057a", "\u057b", "\u057c", "\u057d", "\u057e",
  "\u057f", "\u0580", "\u0581", "\u0582", "\u0583", "\u0584", "\u0585", "\u0586",
  "\u0565\u0582", "\u2d00", "\u2d01", "\u2d02", "\u2d03", "\u2d04", "\u2d05", "\u2d06",
  "\u2d07", "\u2d08", "\u2d09", "\u2d0a", "\u2d0b", "\u2d0c", "\u2d0d", "\u2d0e",
  "\u2d0f", "\u2d10", "\u2d11", "\u2d12", "\u2d13", "\u2d14", "\u2d15", "\u2d16",
  "\u2d17", "\u2d18", "\u2d19", "\u2d1a", "\u2d1b", "\u2d1c", "\u2d1d", "\u2d1e",
  "\u2d1f", "\u2d20", "\u2d21", "\u2d22", "\u2d23", "\u2d24", "\u2d25", "\u2d27",
  "\u2d2d", "\u13f0", "\u13f1", "\u13f2", "\u13f3", "\u13f4", "\u13f5", "\u0432",
  "\u0434", "\u043e", "\u0441", "\u0442", "\u0442", "\u044a", "\u0463", "\ua64b",
  "\u1c8a", "\u10d0", "\u10d1", "\u10d2", "\u10d3", "\u10d4", "\u10d5", "\u10d6",
  "\u10d7", "\u10d8", "\u10d9", "\u10da", "\u10db", "\u10dc", "\u10dd", "\u10de",
  "\u10df", "\u10e0", "\u10e1", "\u10e2", "\u10e3", "\u10e4", "\u10e5", "\u10e6",
  "\u10e7", "\u10e8", "\u10e9", "\u10ea", "\u10eb", "\u10ec", "\u10ed", "\u10ee",
  "\u10ef", "\u10f0", "\u10f1", "\u10f2", "\u10f3", "\u10f4", "\u10f5", "\u10f6",
  "\u10f7", "\u10f8", "\u10f9", "\u10fa", "\u10fd", "\u10fe", "\u10ff", "\u1e01",
  "\u1e03", "\u1e05", "\u1e07", "\u1e09", "\u1e0b", "\u1e0d", "\u1e0f", "\u1e11",
  "\u1e13", "\u1e15", "\u1e17", "\u1e19", "\u1e1b", "\u1e1d", "\u1e1f", "\u1e21",
  "\u1e23", "\u1e25", "\u1e27", "\u1e29", "\u1e2b", "\u1e2d", "\u1e2f", "\u1e31",
  "\u1e33", "\u1e35", "\u1e37", "\u1e39", "\u1e3b", "\u1e3d", "\u1e3f", "\u1e41",
  "\u1e43", "\u1e45", "\u1e47", "\u1e49", "\u1e4b", "\u1e4d", "\u1e4f", "\u1e51",
  "\u1e53", "\u1e55", "\u1e57", "\u1e59", "\u1e5b", "\u1e5d", "\u1e5f", "\u1e61",
  "\u1e63", "\u1e65", "\u1e67", "\u1e69", "\u1e6b", "\u1e6d", "\u1e6f", "\u1e71",
  "\u1e73", "\u1e75", "\u1e77", "\u1e79", "\u1e7b", "\u1e7d", "\u1e7f", "\u1e81",
  "\u1e83", "\u1e85", "\u1e87", "\u1e89", "\u1e8b", "\u1e8d", "\u1e8f", "\u1e91",
  "\u1e93", "\u1e95", "h\u0331", "t\u0308", "w\u030a", "y\u030a", "a\u02be", "\u1e61",
  "ss", "\u1ea1", "\u1ea3", "\u1ea5", "\u1ea7", "\u1ea9", "\u1eab", "\u1ead", "\u1eaf",
  "\u1eb1", "\u1eb3", "\u1eb5", "\u1eb7", "\u1eb9", "\u1ebb", "\u1ebd", "\u1ebf",
  "\u1ec1", "\u1ec3", "\u1ec5", "\u1ec7", "\u1ec9", "\u1ecb", "\u1ecd", "\u1ecf",
  "\u1ed1", "\u1ed3", "\u1ed5", "\u1ed7", "\u1ed9", "\u1edb", "\u1edd", "\u1edf",
  "\u1ee1", "\u1ee3", "\u1ee5", "\u1ee7", "\u1ee9", "\u1eeb", "\u1eed", "\u1eef",
  "\u1ef1", "\u1ef3", "\u1ef5", "\u1ef7", "\u1ef9", "\u1efb", "\u1efd", "\u1eff",
  "\u1f00", "\u1f01", "\u1f02", "\u1f03", "\u1f04", "\u1f05", "\u1f06", "\u1f07",
  "\u1f10", "\u1f11", "\u1f12", "\u1f13", "\u1f14", "\u1f15", "\u1f20", "\u1f21",
  "\u1f22", "\u1f23", "\u1f24", "\u1f25", "\u1f26", "\u1f27", "\u1f30", "\u1f31",
  "\u1f32", "\u1f33", "\u1f34", "\u1f35", "\u1f36", "\u1f37", "\u1f40", "\u1f41",
  "\u1f42", "\u1f43", "\u1f44", "\u1f45", "\u03c5\u0313", "\u03c5\u0313\u0300", "\u03c5\u0313\u0301",
  "\u03c5\u0313\u0342", "\u1f51", "\u1f53", "\u1f55", "\u1f57", "\u1f60", "\u1f61",
  "\u1f62", "\u1f63", "\u1f64", "\u1f65", "\u1f66", "\u1f67", "\u1f00\u03b9", "\u1f01\u03b9",
  "\u1f02\u03b9", "\u1f03\u03b9", "\u1f04\u03b9", "\u1f05\u03b9", "\u1f06\u03b9",
  "\u1f07\u03b9", "\u1f00\u03b9", "\u1f01\u03b9", "\u1f02\u03b9", "\u1f03\u03b9",
  "\u1f04\u03b9", "\u1f05\u03b9", "\u1f06\u03b9", "\u1f07\u03b9", "\u1f20\u03b9",
  "\u1f21\u03b9", "\u1f22\u03b9", "\u1f23\u03b9", "\u1f24\u03b9", "\u1f25\u03b9",
  "\u1f26\u03b9", "\u1f27\u03b9", "\u1f20\u03b9", "\u1f21\u03b9", "\u1f22\u03b9",
  "\u1f23\u03b9", "\u1f24\u03b9", "\u1f25\u03b9", "\u1f26\u03b9", "\u1f27\u03b9",
  "\u1f60\u03b9", "\u1f61\u03b9", "\u1f62\u03b9", "\u1f63\u03b9", "\u1f64\u03b9",
  "\u1f65\u03b9", "\u1f66\u03b9", "\u1f67\u03b9", "\u1f60\u03b9", "\u1f61\u03b9",
  "\u1f62\u03b9", "\u1f63\u03b9", "\u1f64\u03b9", "\u1f65\u03b9", "\u1f66\u03b9",
  "\u1f67\u03b9", "\u1f70\u03b9", "\u03b1\u03b9", "\u03ac\u03b9", "\u03b1\u0342",
  "\u03b1\u0342\u03b9", "\u1fb0", "\u1fb1", "\u1f70", "\u1f71", "\u03b1\u03b9", "\u03b9",
  "\u1f74\u03b9", "\u03b7\u03b9", "\u03ae\u03b9", "\u03b7\u0342", "\u03b7\u0342\u03b9",
  "\u1f72", "\u1f73", "\u1f74", "\u1f75", "\u03b7\u03b9", "\u03b9\u0308\u0300", "\u03b9\u0308\u0301",
  "\u03b9\u0342", "\u03b9\u0308\u0342", "\u1fd0", "\u1fd1", "\u1f76", "\u1f77", "\u03c5\u0308\u0300",
  "\u03c5\u0308\u0301", "\u03c1\u0313", "\u03c5\u0342", "\u03c5\u0308\u0342", "\u1fe0",
  "\u1fe1", "\u1f7a", "\u1f7b", "\u1fe5", "\u1f7c\u03b9", "\u03c9\u03b9", "\u03ce\u03b9",
  "\u03c9\u0342", "\u03c9\u0342\u03b9", "\u1f78", "\u1f79", "\u1f7c", "\u1f7d", "\u03c9\u03b9",
  "\u03c9", "k", "\u00e5", "\u214e", "\u2170", "\u2171", "\u2172", "\u2173", "\u2174",
  "\u2175", "\u2176", "\u2177", "\u2178", "\u2179", "\u217a", "\u217b", "\u217c",
  "\u217d", "\u217e", "\u217f", "\u2184", "\u24d0", "\u24d1", "\u24d2", "\u24d3",
  "\u24d4", "\u24d5", "\u24d6", "\u24d7", "\u24d8", "\u24d9", "\u24da", "\u24db",
  "\u24dc", "\u24dd", "\u24de", "\u24df", "\u24e0", "\u24e1", "\u24e2", "\u24e3",
  "\u24e4", "\u24e5", "\u24e6", "\u24e7", "\u24e8", "\u24e9", "\u2c30", "\u2c31",
  "\u2c32", "\u2c33", "\u2c34", "\u2c35", "\u2c36", "\u2c37", "\u2c38", "\u2c39",
  "\u2c3a", "\u2c3b", "\u2c3c", "\u2c3d", "\u2c3e", "\u2c3f", "\u2c40", "\u2c41",
  "\u2c42", "\u2c43", "\u2c44", "\u2c45", "\u2c46", "\u2c47", "\u2c48", "\u2c49",
  "\u2c4a", "\u2c4b", "\u2c4c", "\u2c4d", "\u2c4e", "\u2c4f", "\u2c50", "\u2c51",
  "\u2c52", "\u2c53", "\u2c54", "\u2c55", "\u2c56", "\u2c57", "\u2c58", "\u2c59",
  "\u2c5a", "\u2c5b", "\u2c5c", "\u2c5d", "\u2c5e", "\u2c5f", "\u2c61", "\u026b",
  "\u1d7d", "\u027d", "\u2c68", "\u2c6a", "\u2c6c", "\u0251", "\u0271", "\u0250",
  "\u0252", "\u2c73", "\u2c76", "\u023f", "\u0240", "\u2c81", "\u2c83", "\u2c85",
  "\u2c87", "\u2c89", "\u2c8b", "\u2c8d", "\u2c8f", "\u2c91", "\u2c93", "\u2c95",
  "\u2c97", "\u2c99", "\u2c9b", "\u2c9d", "\u2c9f", "\u2ca1", "\u2ca3", "\u2ca5",
  "\u2ca7", "\u2ca9", "\u2cab", "\u2cad", "\u2caf", "\u2cb1", "\u2cb3", "\u2cb5",
  "\u2cb7", "\u2cb9", "\u2cbb", "\u2cbd", "\u2cbf", "\u2cc1", "\u2cc3", "\u2cc5",
  "\u2cc7", "\u2cc9", "\u2ccb", "\u2ccd", "\u2ccf", "\u2cd1", "\u2cd3", "\u2cd5",
  "\u2cd7", "\u2cd9", "\u2cdb", "\u2cdd", "\u2cdf", "\u2ce1", "\u2ce3", "\u2cec",
  "\u2cee", "\u2cf3", "\ua641", "\ua643", "\ua645", "\ua647", "\ua649", "\ua64b",
  "\ua64d", "\ua64f", "\ua651", "\ua653", "\ua655", "\ua657", "\ua659", "\ua65b",
  "\ua65d", "\ua65f", "\ua661", "\ua663", "\ua665", "\ua667", "\ua669", "\ua66b",
  "\ua66d", "\ua681", "\ua683", "\ua685", "\ua687", "\ua689", "\ua68b", "\ua68d",
  "\ua68f", "\ua691", "\ua693", "\ua695", "\ua697", "\ua699", "\ua69b", "\ua723",
  "\ua725", "\ua727", "\ua729", "\ua72b", "\ua72d", "\ua72f", "\ua733", "\ua735",
  "\ua737", "\ua739", "\ua73b", "\ua73d", "\ua73f", "\ua741", "\ua743", "\ua745",
  "\ua747", "\ua749", "\ua74b", "\ua74d", "\ua74f", "\ua751", "\ua753", "\ua755",
  "\ua757", "\ua759", "\ua75b", "\ua75d", "\ua75f", "\ua761", "\ua763", "\ua765",
  "\ua767", "\ua769", "\ua76b", "\ua76d", "\ua76f", "\ua77a", "\ua77c", "\u1d79",
  "\ua77f", "\ua781", "\ua783", "\ua785", "\ua787", "\ua78c", "\u0265", "\ua791",
  "\ua793", "\ua797", "\ua799", "\ua79b", "\ua79d", "\ua79f", "\ua7a1", "\ua7a3",
  "\ua7a5", "\ua7a7", "\ua7a9", "\u0266", "\u025c", "\u0261", "\u026c", "\u026a",
  "\u029e", "\u0287", "\u029d", "\uab53", "\ua7b5", "\ua7b7", "\ua7b9", "\ua7bb",
  "\ua7bd", "\ua7bf", "\ua7c1", "\ua7c3", "\ua794", "\u0282", "\u1d8e", "\ua7c8",
  "\ua7ca", "\u0264", "\ua7cd", "\ua7d1", "\ua7d7", "\ua7d9", "\ua7db", "\u019b",
  "\ua7f6", "\u13a0", "\u13a1", "\u13a2", "\u13a3", "\u13a4", "\u13a5", "\u13a6",
  "\u13a7", "\u13a8", "\u13a9", "\u13aa", "\u13ab", "\u13ac", "\u13ad", "\u13ae",
  "\u13af", "\u13b0", "\u13b1", "\u13b2", "\u13b3", "\u13b4", "\u13b5", "\u13b6",
  "\u13b7", "\u13b8", "\u13b9", "\u13ba", "\u13bb", "\u13bc", "\u13bd", "\u13be",
  "\u13bf", "\u13c0", "\u13c1", "\u13c2", "\u13c3", "\u13c4", "\u13c5", "\u13c6",
  "\u13c7", "\u13c8", "\u13c9", "\u13ca", "\u13cb", "\u13cc", "\u13cd", "\u13ce",
  "\u13cf", "\u13d0", "\u13d1", "\u13d2", "\u13d3", "\u13d4", "\u13d5", "\u13d6",
  "\u13d7", "\u13d8", "\u13d9", "\u13da", "\u13db", "\u13dc", "\u13dd", "\u13de",
  "\u13df", "\u13e0", "\u13e1", "\u13e2", "\u13e3", "\u13e4", "\u13e5", "\u13e6",
  "\u13e7", "\u13e8", "\u13e9", "\u13ea", "\u13eb", "\u13ec", "\u13ed", "\u13ee",
  "\u13ef", "ff", "fi", "fl", "ffi", "ffl", "st", "st", "\u0574\u0576", "\u0574\u0565",
  "\u0574\u056b", "\u057e\u0576", "\u0574\u056d", "\uff41", "\uff42", "\uff43", "\uff44",
  "\uff45", "\uff46", "\uff47", "\uff48", "\uff49", "\uff4a", "\uff4b", "\uff4c",
  "\uff4d", "\uff4e", "\uff4f", "\uff50", "\uff51", "\uff52", "\uff53", "\uff54",
  "\uff55", "\uff56", "\uff57", "\uff58", "\uff59", "\uff5a", "\u{10428}", "\u{10429}",
  "\u{1042A}", "\u{1042B}", "\u{1042C}", "\u{1042D}", "\u{1042E}", "\u{1042F}", "\u{10430}",
  "\u{10431}", "\u{10432}", "\u{10433}", "\u{10434}", "\u{10435}", "\u{10436}", "\u{10437}",
  "\u{10438}", "\u{10439}", "\u{1043A}", "\u{1043B}", "\u{1043C}", "\u{1043D}", "\u{1043E}",
  "\u{1043F}", "\u{10440}", "\u{10441}", "\u{10442}", "\u{10443}", "\u{10444}", "\u{10445}",
  "\u{10446}", "\u{10447}", "\u{10448}", "\u{10449}", "\u{1044A}", "\u{1044B}", "\u{1044C}",
  "\u{1044D}", "\u{1044E}", "\u{1044F}", "\u{104D8}", "\u{104D9}", "\u{104DA}", "\u{104DB}",
  "\u{104DC}", "\u{104DD}", "\u{104DE}", "\u{104DF}", "\u{104E0}", "\u{104E1}", "\u{104E2}",
  "\u{104E3}", "\u{104E4}", "\u{104E5}", "\u{104E6}", "\u{104E7}", "\u{104E8}", "\u{104E9}",
  "\u{104EA}", "\u{104EB}", "\u{104EC}", "\u{104ED}", "\u{104EE}", "\u{104EF}", "\u{104F0}",
  "\u{104F1}", "\u{104F2}", "\u{104F3}", "\u{104F4}", "\u{104F5}", "\u{104F6}", "\u{104F7}",
  "\u{104F8}", "\u{104F9}", "\u{104FA}", "\u{104FB}", "\u{10597}", "\u{10598}", "\u{10599}",
  "\u{1059A}", "\u{1059B}", "\u{1059C}", "\u{1059D}", "\u{1059E}", "\u{1059F}", "\u{105A0}",
  "\u{105A1}", "\u{105A3}", "\u{105A4}", "\u{105A5}", "\u{105A6}", "\u{105A7}", "\u{105A8}",
  "\u{105A9}", "\u{105AA}", "\u{105AB}", "\u{105AC}", "\u{105AD}", "\u{105AE}", "\u{105AF}",
  "\u{105B0}", "\u{105B1}", "\u{105B3}", "\u{105B4}", "\u{105B5}", "\u{105B6}", "\u{105B7}",
  "\u{105B8}", "\u{105B9}", "\u{105BB}", "\u{105BC}", "\u{10CC0}", "\u{10CC1}", "\u{10CC2}",
  "\u{10CC3}", "\u{10CC4}", "\u{10CC5}", "\u{10CC6}", "\u{10CC7}", "\u{10CC8}", "\u{10CC9}",
  "\u{10CCA}", "\u{10CCB}", "\u{10CCC}", "\u{10CCD}", "\u{10CCE}", "\u{10CCF}", "\u{10CD0}",
  "\u{10CD1}", "\u{10CD2}", "\u{10CD3}", "\u{10CD4}", "\u{10CD5}", "\u{10CD6}", "\u{10CD7}",
  "\u{10CD8}", "\u{10CD9}", "\u{10CDA}", "\u{10CDB}", "\u{10CDC}", "\u{10CDD}", "\u{10CDE}",
  "\u{10CDF}", "\u{10CE0}", "\u{10CE1}", "\u{10CE2}", "\u{10CE3}", "\u{10CE4}", "\u{10CE5}",
  "\u{10CE6}", "\u{10CE7}", "\u{10CE8}", "\u{10CE9}", "\u{10CEA}", "\u{10CEB}", "\u{10CEC}",
  "\u{10CED}", "\u{10CEE}", "\u{10CEF}", "\u{10CF0}", "\u{10CF1}", "\u{10CF2}", "\u{10D70}",
  "\u{10D71}", "\u{10D72}", "\u{10D73}", "\u{10D74}", "\u{10D75}", "\u{10D76}", "\u{10D77}",
  "\u{10D78}", "\u{10D79}", "\u{10D7A}", "\u{10D7B}", "\u{10D7C}", "\u{10D7D}", "\u{10D7E}",
  "\u{10D7F}", "\u{10D80}", "\u{10D81}", "\u{10D82}", "\u{10D83}", "\u{10D84}", "\u{10D85}",
  "\u{118C0}", "\u{118C1}", "\u{118C2}", "\u{118C3}", "\u{118C4}", "\u{118C5}", "\u{118C6}",
  "\u{118C7}", "\u{118C8}", "\u{118C9}", "\u{118CA}", "\u{118CB}", "\u{118CC}", "\u{118CD}",
  "\u{118CE}", "\u{118CF}", "\u{118D0}", "\u{118D1}", "\u{118D2}", "\u{118D3}", "\u{118D4}",
  "\u{118D5}", "\u{118D6}", "\u{118D7}", "\u{118D8}", "\u{118D9}", "\u{118DA}", "\u{118DB}",
  "\u{118DC}", "\u{118DD}", "\u{118DE}", "\u{118DF}", "\u{16E60}", "\u{16E61}", "\u{16E62}",
  "\u{16E63}", "\u{16E64}", "\u{16E65}", "\u{16E66}", "\u{16E67}", "\u{16E68}", "\u{16E69}",
  "\u{16E6A}", "\u{16E6B}", "\u{16E6C}", "\u{16E6D}", "\u{16E6E}", "\u{16E6F}", "\u{16E70}",
  "\u{16E71}", "\u{16E72}", "\u{16E73}", "\u{16E74}", "\u{16E75}", "\u{16E76}", "\u{16E77}",
  "\u{16E78}", "\u{16E79}", "\u{16E7A}", "\u{16E7B}", "\u{16E7C}", "\u{16E7D}", "\u{16E7E}",
  "\u{16E7F}", "\u{1E922}", "\u{1E923}", "\u{1E924}", "\u{1E925}", "\u{1E926}", "\u{1E927}",
  "\u{1E928}", "\u{1E929}", "\u{1E92A}", "\u{1E92B}", "\u{1E92C}", "\u{1E92D}", "\u{1E92E}",
  "\u{1E92F}", "\u{1E930}", "\u{1E931}", "\u{1E932}", "\u{1E933}", "\u{1E934}", "\u{1E935}",
  "\u{1E936}", "\u{1E937}", "\u{1E938}", "\u{1E939}", "\u{1E93A}", "\u{1E93B}", "\u{1E93C}",
  "\u{1E93D}", "\u{1E93E}", "\u{1E93F}", "\u{1E940}", "\u{1E941}", "\u{1E942}", "\u{1E943}",
]

///|
let combining_keys : FixedArray[Int32] = [
  0x300, 0x301, 0x302, 0x303, 0x304, 0x305, 0x306, 0x307, 0x308, 0x309, 0x30A, 0x30B,
  0x30C, 0x30D, 0x30E, 0x30F, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x316, 0x317,
  0x318, 0x319, 0x31A, 0x31B, 0x31C, 0x31D, 0x31E, 0x31F, 0x320, 0x321, 0x322, 0x323,
  0x324, 0x325, 0x326, 0x327, 0x328, 0x329, 0x32A, 0x32B, 0x32C, 0x32D, 0x32E, 0x32F,
  0x330, 0x331, 0x332, 0x333, 0x334, 0x335, 0x336, 0x337, 0x338, 0x339, 0x33A, 0x33B,
  0x33C, 0x33D, 0x33E, 0x33F, 0x340, 0x341, 0x342, 0x343, 0x344, 0x345, 0x346, 0x347,
  0x348, 0x349, 0x34A, 0x34B, 0x34C, 0x34D, 0x34E, 0x350, 0x351, 0x352, 0x353, 0x354,
  0x355, 0x356, 0x357, 0x358, 0x359, 0x35A, 0x35B, 0x35C, 0x35D, 0x35E, 0x35F, 0x360,
  0x361, 0x362, 0x363, 0x364, 0x365, 0x366, 0x367, 0x368, 0x369, 0x36A, 0x36B, 0x36C,
  0x36D, 0x36E, 0x36F, 0x483, 0x484, 0x485, 0x486, 0x487, 0x591, 0x592, 0x593, 0x594,
  0x595, 0x596, 0x597, 0x598, 0x599, 0x59A, 0x59B, 0x59C, 0x59D, 0x59E, 0x59F, 0x5A0,
  0x5A1, 0x5A2, 0x5A3, 0x5A4, 0x5A5, 0x5A6, 0x5A7, 0x5A8, 0x5A9, 0x5AA, 0x5AB, 0x5AC,
  0x5AD, 0x5AE, 0x5AF, 0x5B0, 0x5B1, 0x5B2, 0x5B3, 0x5B4, 0x5B5, 0x5B6, 0x5B7, 0x5B8,
  0x5B9, 0x5BA, 0x5BB, 0x5BC, 0x5BD, 0x5BF, 0x5C1, 0x5C2, 0x5C4, 0x5C5, 0x5C7, 0x610,
  0x611, 0x612, 0x613, 0x614, 0x615, 0x616, 0x617, 0x618, 0x619, 0x61A, 0x64B, 0x64C,
  0x64D, 0x64E, 0x64F, 0x650, 0x651, 0x652, 0x653, 0x654, 0x655, 0x656, 0x657, 0x658,
  0x659, 0x65A, 0x65B, 0x65C, 0x65D, 0x65E, 0x65F, 0x670, 0x6D6, 0x6D7, 0x6D8, 0x6D9,
  0x6DA, 0x6DB, 0x6DC, 0x6DF, 0x6E0, 0x6E1, 0x6E2, 0x6E3, 0x6E4, 0x6E7, 0x6E8, 0x6EA,
  0x6EB, 0x6EC, 0x6ED, 0x711, 0x730, 0x731, 0x732, 0x733, 0x734, 0x735, 0x736, 0x737,
  0x738, 0x739, 0x73A, 0x73B, 0x73C, 0x73D, 0x73E, 0x73F, 0x740, 0x741, 0x742, 0x743,
  0x744, 0x745, 0x746, 0x747, 0x748, 0x749, 0x74A, 0x7EB, 0x7EC, 0x7ED, 0x7EE, 0x7EF,
  0x7F0, 0x7F1, 0x7F2, 0x7F3, 0x7FD, 0x816, 0x817, 0x818, 0x819, 0x81B, 0x81C, 0x81D,
  0x81E, 0x81F, 0x820, 0x821, 0x822, 0x823, 0x825, 0x826, 0x827, 0x829, 0x82A, 0x82B,
  0x82C, 0x82D, 0x859, 0x85A, 0x85B, 0x897, 0x898, 0x899, 0x89A, 0x89B, 0x89C, 0x89D,
  0x89E, 0x89F, 0x8CA, 0x8CB, 0x8CC, 0x8CD, 0x8CE, 0x8CF, 0x8D0, 0x8D1, 0x8D2, 0x8D3,
  0x8D4, 0x8D5, 0x8D6, 0x8D7, 0x8D8, 0x8D9, 0x8DA, 0x8DB, 0x8DC, 0x8DD, 0x8DE, 0x8DF,
  0x8E0, 0x8E1, 0x8E3, 0x8E4, 0x8E5, 0x8E6, 0x8E7, 0x8E8, 0x8E9, 0x8EA, 0x8EB, 0x8EC,
  0x8ED, 0x8EE, 0x8EF, 0x8F0, 0x8F1, 0x8F2, 0x8F3, 0x8F4, 0x8F5, 0x8F6, 0x8F7, 0x8F8,
  0x8F9, 0x8FA, 0x8FB, 0x8FC, 0x8FD, 0x8FE, 0x8FF, 0x93C, 0x94D, 0x951, 0x952, 0x953,
  0x954, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA4D, 0xABC, 0xACD, 0xB3C, 0xB4D, 0xBCD, 0xC3C,
  0xC4D, 0xC55, 0xC56, 0xCBC, 0xCCD, 0xD3B, 0xD3C, 0xD4D, 0xDCA, 0xE38, 0xE39, 0xE3A,
  0xE48, 0xE49, 0xE4A, 0xE4B, 0xEB8, 0xEB9, 0xEBA, 0xEC8, 0xEC9, 0xECA, 0xECB, 0xF18,
  0xF19, 0xF35, 0xF37, 0xF39, 0xF71, 0xF72, 0xF74, 0xF7A, 0xF7B, 0xF7C, 0xF7D, 0xF80,
  0xF82, 0xF83, 0xF84, 0xF86, 0xF87, 0xFC6, 0x1037, 0x1039, 0x103A, 0x108D, 0x135D,
  0x135E, 0x135F, 0x1714, 0x1715, 0x1734, 0x17D2, 0x17DD, 0x18A9, 0x1939, 0x193A,
  0x193B, 0x1A17, 0x1A18, 0x1A60, 0x1A75, 0x1A76, 0x1A77, 0x1A78, 0x1A79, 0x1A7A,
  0x1A7B, 0x1A7C, 0x1A7F, 0x1AB0, 0x1AB1, 0x1AB2, 0x1AB3, 0x1AB4, 0x1AB5, 0x1AB6,
  0x1AB7, 0x1AB8, 0x1AB9, 0x1ABA, 0x1ABB, 0x1ABC, 0x1ABD, 0x1ABF, 0x1AC0, 0x1AC1,
  0x1AC2, 0x1AC3, 0x1AC4, 0x1AC5, 0x1AC6, 0x1AC7, 0x1AC8, 0x1AC9, 0x1ACA, 0x1ACB,
  0x1ACC, 0x1ACD, 0x1ACE, 0x1B34, 0x1B44, 0x1B6B, 0x1B6C, 0x1B6D, 0x1B6E, 0x1B6F,
  0x1B70, 0x1B71, 0x1B72, 0x1B73, 0x1BAA, 0x1BAB, 0x1BE6, 0x1BF2, 0x1BF3, 0x1C37,
  0x1CD0, 0x1CD1, 0x1CD2, 0x1CD4, 0x1CD5, 0x1CD6, 0x1CD7, 0x1CD8, 0x1CD9, 0x1CDA,
  0x1CDB, 0x1CDC, 0x1CDD, 0x1CDE, 0x1CDF, 0x1CE0, 0x1CE2, 0x1CE3, 0x1CE4, 0x1CE5,
  0x1CE6, 0x1CE7, 0x1CE8, 0x1CED, 0x1CF4, 0x1CF8, 0x1CF9, 0x1DC0, 0x1DC1, 0x1DC2,
  0x1DC3, 0x1DC4, 0x1DC5, 0x1DC6, 0x1DC7, 0x1DC8, 0x1DC9, 0x1DCA, 0x1DCB, 0x1DCC,
  0x1DCD, 0x1DCE, 0x1DCF, 0x1DD0, 0x1DD1, 0x1DD2, 0x1DD3, 0x1DD4, 0x1DD5, 0x1DD6,
  0x1DD7, 0x1DD8, 0x1DD9, 0x1DDA, 0x1DDB, 0x1DDC, 0x1DDD, 0x1DDE, 0x1DDF, 0x1DE0,
  0x1DE1, 0x1DE2, 0x1DE3, 0x1DE4, 0x1DE5, 0x1DE6, 0x1DE7, 0x1DE8, 0x1DE9, 0x1DEA,
  0x1DEB, 0x1DEC, 0x1DED, 0x1DEE, 0x1DEF, 0x1DF0, 0x1DF1, 0x1DF2, 0x1DF3, 0x1DF4,
  0x1DF5, 0x1DF6, 0x1DF7, 0x1DF8, 0x1DF9, 0x1DFA, 0x1DFB, 0x1DFC, 0x1DFD, 0x1DFE,
  0x1DFF, 0x20D0, 0x20D1, 0x20D2, 0x20D3, 0x20D4, 0x20D5, 0x20D6, 0x20D7, 0x20D8,
  0x20D9, 0x20DA, 0x20DB, 0x20DC, 0x20E1, 0x20E5, 0x20E6, 0x20E7, 0x20E8, 0x20E9,
  0x20EA, 0x20EB, 0x20EC, 0x20ED, 0x20EE, 0x20EF, 0x20F0, 0x2CEF, 0x2CF0, 0x2CF1,
  0x2D7F, 0x2DE0, 0x2DE1, 0x2DE2, 0x2DE3, 0x2DE4, 0x2DE5, 0x2DE6, 0x2DE7, 0x2DE8,
  0x2DE9, 0x2DEA, 0x2DEB, 0x2DEC, 0x2DED, 0x2DEE, 0x2DEF, 0x2DF0, 0x2DF1, 0x2DF2,
  0x2DF3, 0x2DF4, 0x2DF5, 0x2DF6, 0x2DF7, 0x2DF8, 0x2DF9, 0x2DFA, 0x2DFB, 0x2DFC,
  0x2DFD, 0x2DFE, 0x2DFF, 0x302A, 0x302B, 0x302C, 0x302D, 0x302E, 0x302F, 0x3099,
  0x309A, 0xA66F, 0xA674, 0xA675, 0xA676, 0xA677, 0xA678, 0xA679, 0xA67A, 0xA67B,
  0xA67C, 0xA67D, 0xA69E, 0xA69F, 0xA6F0, 0xA6F1, 0xA806, 0xA82C, 0xA8C4, 0xA8E0,
  0xA8E1, 0xA8E2, 0xA8E3, 0xA8E4, 0xA8E5, 0xA8E6, 0xA8E7, 0xA8E8, 0xA8E9, 0xA8EA,
  0xA8EB, 0xA8EC, 0xA8ED, 0xA8EE, 0xA8EF, 0xA8F0, 0xA8F1, 0xA92B, 0xA92C, 0xA92D,
  0xA953, 0xA9B3, 0xA9C0, 0xAAB0, 0xAAB2, 0xAAB3, 0xAAB4, 0xAAB7, 0xAAB8, 0xAABE,
  0xAABF, 0xAAC1, 0xAAF6, 0xABED, 0xFB1E, 0xFE20, 0xFE21, 0xFE22, 0xFE23, 0xFE24,
  0xFE25, 0xFE26, 0xFE27, 0xFE28, 0xFE29, 0xFE2A, 0xFE2B, 0xFE2C, 0xFE2D, 0xFE2E,
  0xFE2F, 0x101FD, 0x102E0, 0x10376, 0x10377, 0x10378, 0x10379, 0x1037A, 0x10A0D,
  0x10A0F, 0x10A38, 0x10A39, 0x10A3A, 0x10A3F, 0x10AE5, 0x10AE6, 0x10D24, 0x10D25,
  0x10D26, 0x10D27, 0x10D69, 0x10D6A, 0x10D6B, 0x10D6C, 0x10D6D, 0x10EAB, 0x10EAC,
  0x10EFD, 0x10EFE, 0x10EFF, 0x10F46, 0x10F47, 0x10F48, 0x10F49, 0x10F4A, 0x10F4B,
  0x10F4C, 0x10F4D, 0x10F4E, 0x10F4F, 0x10F50, 0x10F82, 0x10F83, 0x10F84, 0x10F85,
  0x11046, 0x11070, 0x1107F, 0x110B9, 0x110BA, 0x11100, 0x11101, 0x11102, 0x11133,
  0x11134, 0x11173, 0x111C0, 0x111CA, 0x11235, 0x11236, 0x112E9, 0x112EA, 0x1133B,
  0x1133C, 0x1134D, 0x11366, 0x11367, 0x11368, 0x11369, 0x1136A, 0x1136B, 0x1136C,
  0x11370, 0x11371, 0x11372, 0x11373, 0x11374, 0x113CE, 0x113CF, 0x113D0, 0x11442,
  0x11446, 0x1145E, 0x114C2, 0x114C3, 0x115BF, 0x115C0, 0x1163F, 0x116B6, 0x116B7,
  0x1172B, 0x11839, 0x1183A, 0x1193D, 0x1193E, 0x11943, 0x119E0, 0x11A34, 0x11A47,
  0x11A99, 0x11C3F, 0x11D42, 0x11D44, 0x11D45, 0x11D97, 0x11F41, 0x11F42, 0x1612F,
  0x16AF0, 0x16AF1, 0x16AF2, 0x16AF3, 0x16AF4, 0x16B30, 0x16B31, 0x16B32, 0x16B33,
  0x16B34, 0x16B35, 0x16B36, 0x16FF0, 0x16FF1, 0x1BC9E, 0x1D165, 0x1D166, 0x1D167,
  0x1D168, 0x1D169, 0x1D16D, 0x1D16E, 0x1D16F, 0x1D170, 0x1D171, 0x1D172, 0x1D17B,
  0x1D17C, 0x1D17D, 0x1D17E, 0x1D17F, 0x1D180, 0x1D181, 0x1D182, 0x1D185, 0x1D186,
  0x1D187, 0x1D188, 0x1D189, 0x1D18A, 0x1D18B, 0x1D1AA, 0x1D1AB, 0x1D1AC, 0x1D1AD,
  0x1D242, 0x1D243, 0x1D244, 0x1E000, 0x1E001, 0x1E002, 0x1E003, 0x1E004, 0x1E005,
  0x1E006, 0x1E008, 0x1E009, 0x1E00A, 0x1E00B, 0x1E00C, 0x1E00D, 0x1E00E, 0x1E00F,
  0x1E010, 0x1E011, 0x1E012, 0x1E013, 0x1E014, 0x1E015, 0x1E016, 0x1E017, 0x1E018,
  0x1E01B, 0x1E01C, 0x1E01D, 0x1E01E, 0x1E01F, 0x1E020, 0x1E021, 0x1E023, 0x1E024,
  0x1E026, 0x1E027, 0x1E028, 0x1E029, 0x1E02A, 0x1E08F, 0x1E130, 0x1E131, 0x1E132,
  0x1E133, 0x1E134, 0x1E135, 0x1E136, 0x1E2AE, 0x1E2EC, 0x1E2ED, 0x1E2EE, 0x1E2EF,
  0x1E4EC, 0x1E4ED, 0x1E4EE, 0x1E4EF, 0x1E5EE, 0x1E5EF, 0x1E8D0, 0x1E8D1, 0x1E8D2,
  0x1E8D3, 0x1E8D4, 0x1E8D5, 0x1E8D6, 0x1E944, 0x1E945, 0x1E946, 0x1E947, 0x1E948,
  0x1E949, 0x1E94A,
]

///|
let combining_values : FixedArray[Int32] = [
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220,
  220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220,
  220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230,
  230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 230, 230, 230,
  220, 220, 220, 220, 230, 232, 220, 220, 230, 233, 234, 234, 233, 234, 234, 233,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230,
  230, 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228,
  230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 23, 24, 25, 230, 220,
  18, 230, 230, 230, 230, 230, 230, 230, 230, 30, 31, 32, 27, 28, 29, 30, 31, 32,
  33, 34, 230, 230, 220, 220, 230, 230, 230, 230, 230, 220, 230, 230, 220, 35, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 220, 230, 230, 230, 220, 230,
  230, 220, 36, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220,
  230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 220, 230, 220, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 220, 220, 220,
  230, 230, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 230, 220, 220,
  220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 220, 230, 230, 220, 230, 230, 220, 230, 230, 230, 220, 220, 220, 27, 28, 29,
  230, 230, 230, 220, 230, 230, 220, 220, 230, 230, 230, 230, 230, 7, 9, 230, 220,
  230, 230, 7, 9, 230, 7, 9, 7, 9, 7, 9, 9, 7, 9, 84, 91, 7, 9, 9, 9, 9, 9, 103,
  103, 9, 107, 107, 107, 107, 118, 118, 9, 122, 122, 122, 122, 220, 220, 220, 220,
  216, 129, 130, 132, 130, 130, 130, 130, 130, 230, 230, 9, 230, 230, 220, 7, 9,
  9, 220, 230, 230, 230, 9, 9, 9, 9, 230, 228, 222, 230, 220, 230, 220, 9, 230, 230,
  230, 230, 230, 230, 230, 230, 220, 230, 230, 230, 230, 230, 220, 220, 220, 220,
  220, 220, 230, 230, 220, 220, 220, 230, 230, 220, 220, 230, 230, 230, 230, 230,
  220, 230, 230, 230, 230, 7, 9, 230, 220, 230, 230, 230, 230, 230, 230, 230, 9,
  9, 7, 9, 9, 7, 230, 230, 230, 1, 220, 220, 220, 220, 220, 230, 230, 220, 220, 220,
  220, 230, 1, 1, 1, 1, 1, 1, 1, 220, 230, 230, 230, 230, 230, 220, 230, 230, 230,
  230, 230, 230, 230, 220, 230, 230, 234, 214, 220, 202, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  232, 228, 228, 220, 218, 230, 233, 220, 230, 220, 230, 230, 1, 1, 230, 230, 230,
  230, 1, 1, 1, 230, 230, 230, 1, 1, 230, 220, 230, 1, 1, 220, 220, 220, 220, 230,
  230, 230, 230, 9, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 218, 228, 232, 222, 224, 224, 8, 8, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 9, 9, 9, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 220, 220, 220,
  9, 7, 9, 230, 230, 230, 220, 230, 230, 230, 230, 230, 9, 9, 26, 230, 230, 230,
  230, 230, 230, 230, 220, 220, 220, 220, 220, 220, 220, 230, 230, 220, 220, 230,
  230, 230, 230, 230, 220, 230, 230, 1, 220, 9, 230, 220, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 220, 220, 220, 220, 220, 230, 230, 230, 220, 230,
  220, 220, 220, 220, 230, 220, 230, 220, 9, 9, 9, 9, 7, 230, 230, 230, 9, 9, 7,
  9, 7, 9, 7, 7, 9, 7, 7, 9, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 9, 9, 9, 9, 7, 230, 9, 7, 9, 7, 9, 9, 7, 9, 9, 7, 9, 9, 7, 9, 9, 9, 9, 9,
  7, 9, 9, 9, 9, 9, 9, 1, 1, 1, 1, 1, 230, 230, 230, 230, 230, 230, 230, 6, 6, 1,
  216, 216, 1, 1, 1, 226, 216, 216, 216, 216, 216, 220, 220, 220, 220, 220, 220,
  220, 220, 230, 230, 230, 230, 230, 220, 220, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
  230, 230, 230, 232, 232, 220, 230, 230, 220, 220, 220, 220, 220, 220, 220, 220,
  230, 230, 230, 230, 230, 230, 7,
]

///|
let ignorable_starts : FixedArray[Int32] = [
  0xAD, 0x34F, 0x61C, 0x115F, 0x17B4, 0x180B, 0x180E, 0x180F, 0x200B, 0x202A, 0x2060,
  0x2065, 0x2066, 0x3164, 0xFE00, 0xFEFF, 0xFFA0, 0xFFF0, 0x1BCA0, 0x1D173, 0xE0000,
  0xE0001, 0xE0002, 0xE0020, 0xE0080, 0xE0100, 0xE01F0,
]

///|
let ignorable_ends : FixedArray[Int32] = [
  0xAD, 0x34F, 0x61C, 0x1160, 0x17B5, 0x180D, 0x180E, 0x180F, 0x200F, 0x202E, 0x2064,
  0x2065, 0x206F, 0x3164, 0xFE0F, 0xFEFF, 0xFFA0, 0xFFF8, 0x1BCA3, 0x1D17A, 0xE0000,
  0xE0001, 0xE001F, 0xE007F, 0xE00FF, 0xE01EF, 0xE0FFF,
]