From 11eb4258cbf91c27c1e67de28f825f9a62690691 Mon Sep 17 00:00:00 2001 From: Fabio Massaioli Date: Tue, 30 May 2017 12:18:19 +0200 Subject: [PATCH] Unicode support: generate smaller character class data --- include/unicode_data.hpp | 747 ++++++++++++++------------------------- scripts/unicode.py | 19 +- 2 files changed, 274 insertions(+), 492 deletions(-) diff --git a/include/unicode_data.hpp b/include/unicode_data.hpp index eec49d4..a746a6b 100644 --- a/include/unicode_data.hpp +++ b/include/unicode_data.hpp @@ -61,646 +61,417 @@ namespace detail template const unicode_interval_tree_t unicode_tables::zero_width[] = { - { 0x1be8, { 0x1be8, 0x1be9 }, &unicode_tables::zero_width[1], &unicode_tables::zero_width[256] }, - { 0xccc, { 0xccc, 0xccd }, &unicode_tables::zero_width[2], &unicode_tables::zero_width[129] }, - { 0x9bc, { 0x9bc, 0x9bc }, &unicode_tables::zero_width[3], &unicode_tables::zero_width[66] }, - { 0x6eb, { 0x6ea, 0x6ed }, &unicode_tables::zero_width[4], &unicode_tables::zero_width[35] }, - { 0x5c6, { 1, 0 }, &unicode_tables::zero_width[5], &unicode_tables::zero_width[20] }, - { 0x486, { 0x483, 0x489 }, &unicode_tables::zero_width[6], &unicode_tables::zero_width[13] }, - { 0xa6, { 1, 0 }, &unicode_tables::zero_width[7], &unicode_tables::zero_width[10] }, - { 0x4f, { 1, 0 }, &unicode_tables::zero_width[8], &unicode_tables::zero_width[9] }, + { 0x1be8, { 0x1be8, 0x1be9 }, &unicode_tables::zero_width[1], &unicode_tables::zero_width[152] }, + { 0xccc, { 0xccc, 0xccd }, &unicode_tables::zero_width[2], &unicode_tables::zero_width[77] }, + { 0x9bc, { 0x9bc, 0x9bc }, &unicode_tables::zero_width[3], &unicode_tables::zero_width[40] }, + { 0x6eb, { 0x6ea, 0x6ed }, &unicode_tables::zero_width[4], &unicode_tables::zero_width[22] }, + { 0x5c7, { 0x5c7, 0x5c7 }, &unicode_tables::zero_width[5], &unicode_tables::zero_width[14] }, + { 0x486, { 0x483, 0x489 }, &unicode_tables::zero_width[6], &unicode_tables::zero_width[10] }, + { 0x8f, { 0x7f, 0x9f }, &unicode_tables::zero_width[7], &unicode_tables::zero_width[8] }, { 0xf, { 0x0, 0x1f }, nullptr, nullptr }, - { 0x8f, { 0x7f, 0x9f }, nullptr, nullptr }, - { 0x1d6, { 1, 0 }, &unicode_tables::zero_width[11], &unicode_tables::zero_width[12] }, - { 0xad, { 0xad, 0xad }, nullptr, nullptr }, + { 0xad, { 0xad, 0xad }, nullptr, &unicode_tables::zero_width[9] }, { 0x337, { 0x300, 0x36f }, nullptr, nullptr }, - { 0x5c0, { 1, 0 }, &unicode_tables::zero_width[14], &unicode_tables::zero_width[17] }, - { 0x5be, { 1, 0 }, &unicode_tables::zero_width[15], &unicode_tables::zero_width[16] }, + { 0x5c1, { 0x5c1, 0x5c2 }, &unicode_tables::zero_width[11], &unicode_tables::zero_width[13] }, + { 0x5bf, { 0x5bf, 0x5bf }, &unicode_tables::zero_width[12], nullptr }, { 0x5a7, { 0x591, 0x5bd }, nullptr, nullptr }, - { 0x5bf, { 0x5bf, 0x5bf }, nullptr, nullptr }, - { 0x5c3, { 1, 0 }, &unicode_tables::zero_width[18], &unicode_tables::zero_width[19] }, - { 0x5c1, { 0x5c1, 0x5c2 }, nullptr, nullptr }, { 0x5c4, { 0x5c4, 0x5c5 }, nullptr, nullptr }, - { 0x655, { 0x64b, 0x65f }, &unicode_tables::zero_width[21], &unicode_tables::zero_width[28] }, - { 0x60a, { 1, 0 }, &unicode_tables::zero_width[22], &unicode_tables::zero_width[25] }, - { 0x5e3, { 1, 0 }, &unicode_tables::zero_width[23], &unicode_tables::zero_width[24] }, - { 0x5c7, { 0x5c7, 0x5c7 }, nullptr, nullptr }, + { 0x655, { 0x64b, 0x65f }, &unicode_tables::zero_width[15], &unicode_tables::zero_width[18] }, + { 0x615, { 0x610, 0x61a }, &unicode_tables::zero_width[16], &unicode_tables::zero_width[17] }, { 0x602, { 0x600, 0x605 }, nullptr, nullptr }, - { 0x61b, { 1, 0 }, &unicode_tables::zero_width[26], &unicode_tables::zero_width[27] }, - { 0x615, { 0x610, 0x61a }, nullptr, nullptr }, { 0x61c, { 0x61c, 0x61c }, nullptr, nullptr }, - { 0x6de, { 1, 0 }, &unicode_tables::zero_width[29], &unicode_tables::zero_width[32] }, - { 0x6a3, { 1, 0 }, &unicode_tables::zero_width[30], &unicode_tables::zero_width[31] }, + { 0x6e1, { 0x6df, 0x6e4 }, &unicode_tables::zero_width[19], &unicode_tables::zero_width[21] }, + { 0x6d9, { 0x6d6, 0x6dd }, &unicode_tables::zero_width[20], nullptr }, { 0x670, { 0x670, 0x670 }, nullptr, nullptr }, - { 0x6d9, { 0x6d6, 0x6dd }, nullptr, nullptr }, - { 0x6e5, { 1, 0 }, &unicode_tables::zero_width[33], &unicode_tables::zero_width[34] }, - { 0x6e1, { 0x6df, 0x6e4 }, nullptr, nullptr }, { 0x6e7, { 0x6e7, 0x6e8 }, nullptr, nullptr }, - { 0x843, { 1, 0 }, &unicode_tables::zero_width[36], &unicode_tables::zero_width[51] }, - { 0x7ef, { 0x7eb, 0x7f3 }, &unicode_tables::zero_width[37], &unicode_tables::zero_width[44] }, - { 0x720, { 1, 0 }, &unicode_tables::zero_width[38], &unicode_tables::zero_width[41] }, - { 0x710, { 1, 0 }, &unicode_tables::zero_width[39], &unicode_tables::zero_width[40] }, + { 0x85a, { 0x859, 0x85b }, &unicode_tables::zero_width[23], &unicode_tables::zero_width[32] }, + { 0x7ef, { 0x7eb, 0x7f3 }, &unicode_tables::zero_width[24], &unicode_tables::zero_width[28] }, + { 0x73d, { 0x730, 0x74a }, &unicode_tables::zero_width[25], &unicode_tables::zero_width[27] }, + { 0x711, { 0x711, 0x711 }, &unicode_tables::zero_width[26], nullptr }, { 0x70f, { 0x70f, 0x70f }, nullptr, nullptr }, - { 0x711, { 0x711, 0x711 }, nullptr, nullptr }, - { 0x778, { 1, 0 }, &unicode_tables::zero_width[42], &unicode_tables::zero_width[43] }, - { 0x73d, { 0x730, 0x74a }, nullptr, nullptr }, { 0x7ab, { 0x7a6, 0x7b0 }, nullptr, nullptr }, - { 0x824, { 1, 0 }, &unicode_tables::zero_width[45], &unicode_tables::zero_width[48] }, - { 0x81a, { 1, 0 }, &unicode_tables::zero_width[46], &unicode_tables::zero_width[47] }, + { 0x826, { 0x825, 0x827 }, &unicode_tables::zero_width[29], &unicode_tables::zero_width[31] }, + { 0x81f, { 0x81b, 0x823 }, &unicode_tables::zero_width[30], nullptr }, { 0x817, { 0x816, 0x819 }, nullptr, nullptr }, - { 0x81f, { 0x81b, 0x823 }, nullptr, nullptr }, - { 0x828, { 1, 0 }, &unicode_tables::zero_width[49], &unicode_tables::zero_width[50] }, - { 0x826, { 0x825, 0x827 }, nullptr, nullptr }, { 0x82b, { 0x829, 0x82d }, nullptr, nullptr }, - { 0x944, { 0x941, 0x948 }, &unicode_tables::zero_width[52], &unicode_tables::zero_width[59] }, - { 0x91e, { 1, 0 }, &unicode_tables::zero_width[53], &unicode_tables::zero_width[56] }, - { 0x897, { 1, 0 }, &unicode_tables::zero_width[54], &unicode_tables::zero_width[55] }, - { 0x85a, { 0x859, 0x85b }, nullptr, nullptr }, + { 0x94d, { 0x94d, 0x94d }, &unicode_tables::zero_width[33], &unicode_tables::zero_width[37] }, + { 0x93a, { 0x93a, 0x93a }, &unicode_tables::zero_width[34], &unicode_tables::zero_width[35] }, { 0x8eb, { 0x8d4, 0x902 }, nullptr, nullptr }, - { 0x93b, { 1, 0 }, &unicode_tables::zero_width[57], &unicode_tables::zero_width[58] }, - { 0x93a, { 0x93a, 0x93a }, nullptr, nullptr }, + { 0x944, { 0x941, 0x948 }, &unicode_tables::zero_width[36], nullptr }, { 0x93c, { 0x93c, 0x93c }, nullptr, nullptr }, - { 0x95c, { 1, 0 }, &unicode_tables::zero_width[60], &unicode_tables::zero_width[63] }, - { 0x94f, { 1, 0 }, &unicode_tables::zero_width[61], &unicode_tables::zero_width[62] }, - { 0x94d, { 0x94d, 0x94d }, nullptr, nullptr }, + { 0x962, { 0x962, 0x963 }, &unicode_tables::zero_width[38], &unicode_tables::zero_width[39] }, { 0x954, { 0x951, 0x957 }, nullptr, nullptr }, - { 0x972, { 1, 0 }, &unicode_tables::zero_width[64], &unicode_tables::zero_width[65] }, - { 0x962, { 0x962, 0x963 }, nullptr, nullptr }, { 0x981, { 0x981, 0x981 }, nullptr, nullptr }, - { 0xb3c, { 0xb3c, 0xb3c }, &unicode_tables::zero_width[67], &unicode_tables::zero_width[98] }, - { 0xa60, { 1, 0 }, &unicode_tables::zero_width[68], &unicode_tables::zero_width[83] }, - { 0xa3c, { 0xa3c, 0xa3c }, &unicode_tables::zero_width[69], &unicode_tables::zero_width[76] }, - { 0x9d7, { 1, 0 }, &unicode_tables::zero_width[70], &unicode_tables::zero_width[73] }, - { 0x9c8, { 1, 0 }, &unicode_tables::zero_width[71], &unicode_tables::zero_width[72] }, + { 0xb3c, { 0xb3c, 0xb3c }, &unicode_tables::zero_width[41], &unicode_tables::zero_width[59] }, + { 0xa51, { 0xa51, 0xa51 }, &unicode_tables::zero_width[42], &unicode_tables::zero_width[50] }, + { 0xa3c, { 0xa3c, 0xa3c }, &unicode_tables::zero_width[43], &unicode_tables::zero_width[47] }, + { 0x9cd, { 0x9cd, 0x9cd }, &unicode_tables::zero_width[44], &unicode_tables::zero_width[45] }, { 0x9c2, { 0x9c1, 0x9c4 }, nullptr, nullptr }, - { 0x9cd, { 0x9cd, 0x9cd }, nullptr, nullptr }, - { 0x9f2, { 1, 0 }, &unicode_tables::zero_width[74], &unicode_tables::zero_width[75] }, + { 0xa01, { 0xa01, 0xa02 }, &unicode_tables::zero_width[46], nullptr }, { 0x9e2, { 0x9e2, 0x9e3 }, nullptr, nullptr }, - { 0xa01, { 0xa01, 0xa02 }, nullptr, nullptr }, - { 0xa49, { 1, 0 }, &unicode_tables::zero_width[77], &unicode_tables::zero_width[80] }, - { 0xa44, { 1, 0 }, &unicode_tables::zero_width[78], &unicode_tables::zero_width[79] }, + { 0xa47, { 0xa47, 0xa48 }, &unicode_tables::zero_width[48], &unicode_tables::zero_width[49] }, { 0xa41, { 0xa41, 0xa42 }, nullptr, nullptr }, - { 0xa47, { 0xa47, 0xa48 }, nullptr, nullptr }, - { 0xa4f, { 1, 0 }, &unicode_tables::zero_width[81], &unicode_tables::zero_width[82] }, { 0xa4c, { 0xa4b, 0xa4d }, nullptr, nullptr }, - { 0xa51, { 0xa51, 0xa51 }, nullptr, nullptr }, - { 0xac3, { 0xac1, 0xac5 }, &unicode_tables::zero_width[84], &unicode_tables::zero_width[91] }, - { 0xa7b, { 1, 0 }, &unicode_tables::zero_width[85], &unicode_tables::zero_width[88] }, - { 0xa73, { 1, 0 }, &unicode_tables::zero_width[86], &unicode_tables::zero_width[87] }, - { 0xa70, { 0xa70, 0xa71 }, nullptr, nullptr }, + { 0xac3, { 0xac1, 0xac5 }, &unicode_tables::zero_width[51], &unicode_tables::zero_width[55] }, + { 0xa81, { 0xa81, 0xa82 }, &unicode_tables::zero_width[52], &unicode_tables::zero_width[54] }, + { 0xa70, { 0xa70, 0xa71 }, nullptr, &unicode_tables::zero_width[53] }, { 0xa75, { 0xa75, 0xa75 }, nullptr, nullptr }, - { 0xa9f, { 1, 0 }, &unicode_tables::zero_width[89], &unicode_tables::zero_width[90] }, - { 0xa81, { 0xa81, 0xa82 }, nullptr, nullptr }, { 0xabc, { 0xabc, 0xabc }, nullptr, nullptr }, - { 0xad7, { 1, 0 }, &unicode_tables::zero_width[92], &unicode_tables::zero_width[95] }, - { 0xaca, { 1, 0 }, &unicode_tables::zero_width[93], &unicode_tables::zero_width[94] }, - { 0xac7, { 0xac7, 0xac8 }, nullptr, nullptr }, + { 0xae2, { 0xae2, 0xae3 }, &unicode_tables::zero_width[56], &unicode_tables::zero_width[58] }, + { 0xac7, { 0xac7, 0xac8 }, nullptr, &unicode_tables::zero_width[57] }, { 0xacd, { 0xacd, 0xacd }, nullptr, nullptr }, - { 0xaf2, { 1, 0 }, &unicode_tables::zero_width[96], &unicode_tables::zero_width[97] }, - { 0xae2, { 0xae2, 0xae3 }, nullptr, nullptr }, { 0xb01, { 0xb01, 0xb01 }, nullptr, nullptr }, - { 0xc1f, { 1, 0 }, &unicode_tables::zero_width[99], &unicode_tables::zero_width[114] }, - { 0xb62, { 0xb62, 0xb63 }, &unicode_tables::zero_width[100], &unicode_tables::zero_width[107] }, - { 0xb48, { 1, 0 }, &unicode_tables::zero_width[101], &unicode_tables::zero_width[104] }, - { 0xb40, { 1, 0 }, &unicode_tables::zero_width[102], &unicode_tables::zero_width[103] }, + { 0xc3f, { 0xc3e, 0xc40 }, &unicode_tables::zero_width[60], &unicode_tables::zero_width[69] }, + { 0xb62, { 0xb62, 0xb63 }, &unicode_tables::zero_width[61], &unicode_tables::zero_width[65] }, + { 0xb42, { 0xb41, 0xb44 }, &unicode_tables::zero_width[62], &unicode_tables::zero_width[63] }, { 0xb3f, { 0xb3f, 0xb3f }, nullptr, nullptr }, - { 0xb42, { 0xb41, 0xb44 }, nullptr, nullptr }, - { 0xb51, { 1, 0 }, &unicode_tables::zero_width[105], &unicode_tables::zero_width[106] }, - { 0xb4d, { 0xb4d, 0xb4d }, nullptr, nullptr }, + { 0xb4d, { 0xb4d, 0xb4d }, nullptr, &unicode_tables::zero_width[64] }, { 0xb56, { 0xb56, 0xb56 }, nullptr, nullptr }, - { 0xbc6, { 1, 0 }, &unicode_tables::zero_width[108], &unicode_tables::zero_width[111] }, - { 0xba1, { 1, 0 }, &unicode_tables::zero_width[109], &unicode_tables::zero_width[110] }, + { 0xbc0, { 0xbc0, 0xbc0 }, &unicode_tables::zero_width[66], &unicode_tables::zero_width[67] }, { 0xb82, { 0xb82, 0xb82 }, nullptr, nullptr }, - { 0xbc0, { 0xbc0, 0xbc0 }, nullptr, nullptr }, - { 0xbe6, { 1, 0 }, &unicode_tables::zero_width[112], &unicode_tables::zero_width[113] }, + { 0xc00, { 0xc00, 0xc00 }, &unicode_tables::zero_width[68], nullptr }, { 0xbcd, { 0xbcd, 0xbcd }, nullptr, nullptr }, - { 0xc00, { 0xc00, 0xc00 }, nullptr, nullptr }, - { 0xc62, { 0xc62, 0xc63 }, &unicode_tables::zero_width[115], &unicode_tables::zero_width[122] }, - { 0xc49, { 1, 0 }, &unicode_tables::zero_width[116], &unicode_tables::zero_width[119] }, - { 0xc43, { 1, 0 }, &unicode_tables::zero_width[117], &unicode_tables::zero_width[118] }, - { 0xc3f, { 0xc3e, 0xc40 }, nullptr, nullptr }, + { 0xc62, { 0xc62, 0xc63 }, &unicode_tables::zero_width[70], &unicode_tables::zero_width[73] }, + { 0xc4b, { 0xc4a, 0xc4d }, &unicode_tables::zero_width[71], &unicode_tables::zero_width[72] }, { 0xc47, { 0xc46, 0xc48 }, nullptr, nullptr }, - { 0xc51, { 1, 0 }, &unicode_tables::zero_width[120], &unicode_tables::zero_width[121] }, - { 0xc4b, { 0xc4a, 0xc4d }, nullptr, nullptr }, { 0xc55, { 0xc55, 0xc56 }, nullptr, nullptr }, - { 0xcbd, { 1, 0 }, &unicode_tables::zero_width[123], &unicode_tables::zero_width[126] }, - { 0xc9e, { 1, 0 }, &unicode_tables::zero_width[124], &unicode_tables::zero_width[125] }, + { 0xcbc, { 0xcbc, 0xcbc }, &unicode_tables::zero_width[74], &unicode_tables::zero_width[75] }, { 0xc81, { 0xc81, 0xc81 }, nullptr, nullptr }, - { 0xcbc, { 0xcbc, 0xcbc }, nullptr, nullptr }, - { 0xcc2, { 1, 0 }, &unicode_tables::zero_width[127], &unicode_tables::zero_width[128] }, + { 0xcc6, { 0xcc6, 0xcc6 }, &unicode_tables::zero_width[76], nullptr }, { 0xcbf, { 0xcbf, 0xcbf }, nullptr, nullptr }, - { 0xcc6, { 0xcc6, 0xcc6 }, nullptr, nullptr }, - { 0x135e, { 0x135d, 0x135f }, &unicode_tables::zero_width[130], &unicode_tables::zero_width[193] }, - { 0xf39, { 0xf39, 0xf39 }, &unicode_tables::zero_width[131], &unicode_tables::zero_width[162] }, - { 0xe32, { 1, 0 }, &unicode_tables::zero_width[132], &unicode_tables::zero_width[147] }, - { 0xd62, { 0xd62, 0xd63 }, &unicode_tables::zero_width[133], &unicode_tables::zero_width[140] }, - { 0xd21, { 1, 0 }, &unicode_tables::zero_width[134], &unicode_tables::zero_width[137] }, - { 0xcf2, { 1, 0 }, &unicode_tables::zero_width[135], &unicode_tables::zero_width[136] }, + { 0x135e, { 0x135d, 0x135f }, &unicode_tables::zero_width[78], &unicode_tables::zero_width[115] }, + { 0xf39, { 0xf39, 0xf39 }, &unicode_tables::zero_width[79], &unicode_tables::zero_width[97] }, + { 0xe31, { 0xe31, 0xe31 }, &unicode_tables::zero_width[80], &unicode_tables::zero_width[88] }, + { 0xd4d, { 0xd4d, 0xd4d }, &unicode_tables::zero_width[81], &unicode_tables::zero_width[84] }, + { 0xd01, { 0xd01, 0xd01 }, &unicode_tables::zero_width[82], &unicode_tables::zero_width[83] }, { 0xce2, { 0xce2, 0xce3 }, nullptr, nullptr }, - { 0xd01, { 0xd01, 0xd01 }, nullptr, nullptr }, - { 0xd48, { 1, 0 }, &unicode_tables::zero_width[138], &unicode_tables::zero_width[139] }, { 0xd42, { 0xd41, 0xd44 }, nullptr, nullptr }, - { 0xd4d, { 0xd4d, 0xd4d }, nullptr, nullptr }, - { 0xdd5, { 1, 0 }, &unicode_tables::zero_width[141], &unicode_tables::zero_width[144] }, - { 0xdce, { 1, 0 }, &unicode_tables::zero_width[142], &unicode_tables::zero_width[143] }, + { 0xdd3, { 0xdd2, 0xdd4 }, &unicode_tables::zero_width[85], &unicode_tables::zero_width[87] }, + { 0xd62, { 0xd62, 0xd63 }, nullptr, &unicode_tables::zero_width[86] }, { 0xdca, { 0xdca, 0xdca }, nullptr, nullptr }, - { 0xdd3, { 0xdd2, 0xdd4 }, nullptr, nullptr }, - { 0xe03, { 1, 0 }, &unicode_tables::zero_width[145], &unicode_tables::zero_width[146] }, { 0xdd6, { 0xdd6, 0xdd6 }, nullptr, nullptr }, - { 0xe31, { 0xe31, 0xe31 }, nullptr, nullptr }, - { 0xebb, { 0xebb, 0xebc }, &unicode_tables::zero_width[148], &unicode_tables::zero_width[155] }, - { 0xe7f, { 1, 0 }, &unicode_tables::zero_width[149], &unicode_tables::zero_width[152] }, - { 0xe40, { 1, 0 }, &unicode_tables::zero_width[150], &unicode_tables::zero_width[151] }, + { 0xebb, { 0xebb, 0xebc }, &unicode_tables::zero_width[89], &unicode_tables::zero_width[93] }, + { 0xe4a, { 0xe47, 0xe4e }, &unicode_tables::zero_width[90], &unicode_tables::zero_width[91] }, { 0xe37, { 0xe34, 0xe3a }, nullptr, nullptr }, - { 0xe4a, { 0xe47, 0xe4e }, nullptr, nullptr }, - { 0xeb2, { 1, 0 }, &unicode_tables::zero_width[153], &unicode_tables::zero_width[154] }, - { 0xeb1, { 0xeb1, 0xeb1 }, nullptr, nullptr }, + { 0xeb1, { 0xeb1, 0xeb1 }, nullptr, &unicode_tables::zero_width[92] }, { 0xeb6, { 0xeb4, 0xeb9 }, nullptr, nullptr }, - { 0xf27, { 1, 0 }, &unicode_tables::zero_width[156], &unicode_tables::zero_width[159] }, - { 0xef2, { 1, 0 }, &unicode_tables::zero_width[157], &unicode_tables::zero_width[158] }, + { 0xf35, { 0xf35, 0xf35 }, &unicode_tables::zero_width[94], &unicode_tables::zero_width[96] }, + { 0xf18, { 0xf18, 0xf19 }, &unicode_tables::zero_width[95], nullptr }, { 0xeca, { 0xec8, 0xecd }, nullptr, nullptr }, - { 0xf18, { 0xf18, 0xf19 }, nullptr, nullptr }, - { 0xf36, { 1, 0 }, &unicode_tables::zero_width[160], &unicode_tables::zero_width[161] }, - { 0xf35, { 0xf35, 0xf35 }, nullptr, nullptr }, { 0xf37, { 0xf37, 0xf37 }, nullptr, nullptr }, - { 0x103b, { 1, 0 }, &unicode_tables::zero_width[163], &unicode_tables::zero_width[178] }, - { 0xfaa, { 0xf99, 0xfbc }, &unicode_tables::zero_width[164], &unicode_tables::zero_width[171] }, - { 0xf85, { 1, 0 }, &unicode_tables::zero_width[165], &unicode_tables::zero_width[168] }, - { 0xf7f, { 1, 0 }, &unicode_tables::zero_width[166], &unicode_tables::zero_width[167] }, + { 0x1039, { 0x1039, 0x103a }, &unicode_tables::zero_width[98], &unicode_tables::zero_width[106] }, + { 0xf92, { 0xf8d, 0xf97 }, &unicode_tables::zero_width[99], &unicode_tables::zero_width[102] }, + { 0xf82, { 0xf80, 0xf84 }, &unicode_tables::zero_width[100], &unicode_tables::zero_width[101] }, { 0xf77, { 0xf71, 0xf7e }, nullptr, nullptr }, - { 0xf82, { 0xf80, 0xf84 }, nullptr, nullptr }, - { 0xf8a, { 1, 0 }, &unicode_tables::zero_width[169], &unicode_tables::zero_width[170] }, { 0xf86, { 0xf86, 0xf87 }, nullptr, nullptr }, - { 0xf92, { 0xf8d, 0xf97 }, nullptr, nullptr }, - { 0x1031, { 1, 0 }, &unicode_tables::zero_width[172], &unicode_tables::zero_width[175] }, - { 0xff9, { 1, 0 }, &unicode_tables::zero_width[173], &unicode_tables::zero_width[174] }, - { 0xfc6, { 0xfc6, 0xfc6 }, nullptr, nullptr }, + { 0xfc6, { 0xfc6, 0xfc6 }, &unicode_tables::zero_width[103], &unicode_tables::zero_width[104] }, + { 0xfaa, { 0xf99, 0xfbc }, nullptr, nullptr }, + { 0x1034, { 0x1032, 0x1037 }, &unicode_tables::zero_width[105], nullptr }, { 0x102e, { 0x102d, 0x1030 }, nullptr, nullptr }, - { 0x1038, { 1, 0 }, &unicode_tables::zero_width[176], &unicode_tables::zero_width[177] }, - { 0x1034, { 0x1032, 0x1037 }, nullptr, nullptr }, - { 0x1039, { 0x1039, 0x103a }, nullptr, nullptr }, - { 0x1082, { 0x1082, 0x1082 }, &unicode_tables::zero_width[179], &unicode_tables::zero_width[186] }, - { 0x105b, { 1, 0 }, &unicode_tables::zero_width[180], &unicode_tables::zero_width[183] }, - { 0x104b, { 1, 0 }, &unicode_tables::zero_width[181], &unicode_tables::zero_width[182] }, + { 0x1082, { 0x1082, 0x1082 }, &unicode_tables::zero_width[107], &unicode_tables::zero_width[111] }, + { 0x105f, { 0x105e, 0x1060 }, &unicode_tables::zero_width[108], &unicode_tables::zero_width[110] }, + { 0x1058, { 0x1058, 0x1059 }, &unicode_tables::zero_width[109], nullptr }, { 0x103d, { 0x103d, 0x103e }, nullptr, nullptr }, - { 0x1058, { 0x1058, 0x1059 }, nullptr, nullptr }, - { 0x1068, { 1, 0 }, &unicode_tables::zero_width[184], &unicode_tables::zero_width[185] }, - { 0x105f, { 0x105e, 0x1060 }, nullptr, nullptr }, { 0x1072, { 0x1071, 0x1074 }, nullptr, nullptr }, - { 0x1095, { 1, 0 }, &unicode_tables::zero_width[187], &unicode_tables::zero_width[190] }, - { 0x1089, { 1, 0 }, &unicode_tables::zero_width[188], &unicode_tables::zero_width[189] }, + { 0x108d, { 0x108d, 0x108d }, &unicode_tables::zero_width[112], &unicode_tables::zero_width[113] }, { 0x1085, { 0x1085, 0x1086 }, nullptr, nullptr }, - { 0x108d, { 0x108d, 0x108d }, nullptr, nullptr }, - { 0x10fe, { 1, 0 }, &unicode_tables::zero_width[191], &unicode_tables::zero_width[192] }, - { 0x109d, { 0x109d, 0x109d }, nullptr, nullptr }, + { 0x109d, { 0x109d, 0x109d }, nullptr, &unicode_tables::zero_width[114] }, { 0x11af, { 0x1160, 0x11ff }, nullptr, nullptr }, - { 0x1a56, { 0x1a56, 0x1a56 }, &unicode_tables::zero_width[194], &unicode_tables::zero_width[225] }, - { 0x17f4, { 1, 0 }, &unicode_tables::zero_width[195], &unicode_tables::zero_width[210] }, - { 0x17b4, { 0x17b4, 0x17b5 }, &unicode_tables::zero_width[196], &unicode_tables::zero_width[203] }, - { 0x1743, { 1, 0 }, &unicode_tables::zero_width[197], &unicode_tables::zero_width[200] }, - { 0x1723, { 1, 0 }, &unicode_tables::zero_width[198], &unicode_tables::zero_width[199] }, + { 0x1a56, { 0x1a56, 0x1a56 }, &unicode_tables::zero_width[116], &unicode_tables::zero_width[134] }, + { 0x180c, { 0x180b, 0x180e }, &unicode_tables::zero_width[117], &unicode_tables::zero_width[126] }, + { 0x17b4, { 0x17b4, 0x17b5 }, &unicode_tables::zero_width[118], &unicode_tables::zero_width[122] }, + { 0x1752, { 0x1752, 0x1753 }, &unicode_tables::zero_width[119], &unicode_tables::zero_width[121] }, + { 0x1733, { 0x1732, 0x1734 }, &unicode_tables::zero_width[120], nullptr }, { 0x1713, { 0x1712, 0x1714 }, nullptr, nullptr }, - { 0x1733, { 0x1732, 0x1734 }, nullptr, nullptr }, - { 0x1762, { 1, 0 }, &unicode_tables::zero_width[201], &unicode_tables::zero_width[202] }, - { 0x1752, { 0x1752, 0x1753 }, nullptr, nullptr }, { 0x1772, { 0x1772, 0x1773 }, nullptr, nullptr }, - { 0x17c7, { 1, 0 }, &unicode_tables::zero_width[204], &unicode_tables::zero_width[207] }, - { 0x17c1, { 1, 0 }, &unicode_tables::zero_width[205], &unicode_tables::zero_width[206] }, + { 0x17ce, { 0x17c9, 0x17d3 }, &unicode_tables::zero_width[123], &unicode_tables::zero_width[125] }, + { 0x17c6, { 0x17c6, 0x17c6 }, &unicode_tables::zero_width[124], nullptr }, { 0x17ba, { 0x17b7, 0x17bd }, nullptr, nullptr }, - { 0x17c6, { 0x17c6, 0x17c6 }, nullptr, nullptr }, - { 0x17d8, { 1, 0 }, &unicode_tables::zero_width[208], &unicode_tables::zero_width[209] }, - { 0x17ce, { 0x17c9, 0x17d3 }, nullptr, nullptr }, { 0x17dd, { 0x17dd, 0x17dd }, nullptr, nullptr }, - { 0x1927, { 0x1927, 0x1928 }, &unicode_tables::zero_width[211], &unicode_tables::zero_width[218] }, - { 0x1897, { 1, 0 }, &unicode_tables::zero_width[212], &unicode_tables::zero_width[215] }, - { 0x1849, { 1, 0 }, &unicode_tables::zero_width[213], &unicode_tables::zero_width[214] }, - { 0x180c, { 0x180b, 0x180e }, nullptr, nullptr }, - { 0x1885, { 0x1885, 0x1886 }, nullptr, nullptr }, - { 0x18e4, { 1, 0 }, &unicode_tables::zero_width[216], &unicode_tables::zero_width[217] }, + { 0x1932, { 0x1932, 0x1932 }, &unicode_tables::zero_width[127], &unicode_tables::zero_width[131] }, + { 0x1921, { 0x1920, 0x1922 }, &unicode_tables::zero_width[128], &unicode_tables::zero_width[130] }, + { 0x1885, { 0x1885, 0x1886 }, nullptr, &unicode_tables::zero_width[129] }, { 0x18a9, { 0x18a9, 0x18a9 }, nullptr, nullptr }, - { 0x1921, { 0x1920, 0x1922 }, nullptr, nullptr }, - { 0x19a9, { 1, 0 }, &unicode_tables::zero_width[219], &unicode_tables::zero_width[222] }, - { 0x1935, { 1, 0 }, &unicode_tables::zero_width[220], &unicode_tables::zero_width[221] }, - { 0x1932, { 0x1932, 0x1932 }, nullptr, nullptr }, + { 0x1927, { 0x1927, 0x1928 }, nullptr, nullptr }, + { 0x1a17, { 0x1a17, 0x1a18 }, &unicode_tables::zero_width[132], &unicode_tables::zero_width[133] }, { 0x193a, { 0x1939, 0x193b }, nullptr, nullptr }, - { 0x1a19, { 1, 0 }, &unicode_tables::zero_width[223], &unicode_tables::zero_width[224] }, - { 0x1a17, { 0x1a17, 0x1a18 }, nullptr, nullptr }, { 0x1a1b, { 0x1a1b, 0x1a1b }, nullptr, nullptr }, - { 0x1b35, { 1, 0 }, &unicode_tables::zero_width[226], &unicode_tables::zero_width[241] }, - { 0x1a77, { 0x1a73, 0x1a7c }, &unicode_tables::zero_width[227], &unicode_tables::zero_width[234] }, - { 0x1a61, { 1, 0 }, &unicode_tables::zero_width[228], &unicode_tables::zero_width[231] }, - { 0x1a5f, { 1, 0 }, &unicode_tables::zero_width[229], &unicode_tables::zero_width[230] }, + { 0x1b38, { 0x1b36, 0x1b3a }, &unicode_tables::zero_width[135], &unicode_tables::zero_width[144] }, + { 0x1a77, { 0x1a73, 0x1a7c }, &unicode_tables::zero_width[136], &unicode_tables::zero_width[140] }, + { 0x1a60, { 0x1a60, 0x1a60 }, &unicode_tables::zero_width[137], &unicode_tables::zero_width[138] }, { 0x1a5b, { 0x1a58, 0x1a5e }, nullptr, nullptr }, - { 0x1a60, { 0x1a60, 0x1a60 }, nullptr, nullptr }, - { 0x1a63, { 1, 0 }, &unicode_tables::zero_width[232], &unicode_tables::zero_width[233] }, + { 0x1a68, { 0x1a65, 0x1a6c }, &unicode_tables::zero_width[139], nullptr }, { 0x1a62, { 0x1a62, 0x1a62 }, nullptr, nullptr }, - { 0x1a68, { 0x1a65, 0x1a6c }, nullptr, nullptr }, - { 0x1adf, { 1, 0 }, &unicode_tables::zero_width[235], &unicode_tables::zero_width[238] }, - { 0x1a97, { 1, 0 }, &unicode_tables::zero_width[236], &unicode_tables::zero_width[237] }, - { 0x1a7f, { 0x1a7f, 0x1a7f }, nullptr, nullptr }, + { 0x1b01, { 0x1b00, 0x1b03 }, &unicode_tables::zero_width[141], &unicode_tables::zero_width[143] }, + { 0x1a7f, { 0x1a7f, 0x1a7f }, nullptr, &unicode_tables::zero_width[142] }, { 0x1ab7, { 0x1ab0, 0x1abe }, nullptr, nullptr }, - { 0x1b1b, { 1, 0 }, &unicode_tables::zero_width[239], &unicode_tables::zero_width[240] }, - { 0x1b01, { 0x1b00, 0x1b03 }, nullptr, nullptr }, { 0x1b34, { 0x1b34, 0x1b34 }, nullptr, nullptr }, - { 0x1b80, { 0x1b80, 0x1b81 }, &unicode_tables::zero_width[242], &unicode_tables::zero_width[249] }, - { 0x1b3f, { 1, 0 }, &unicode_tables::zero_width[243], &unicode_tables::zero_width[246] }, - { 0x1b3b, { 1, 0 }, &unicode_tables::zero_width[244], &unicode_tables::zero_width[245] }, - { 0x1b38, { 0x1b36, 0x1b3a }, nullptr, nullptr }, + { 0x1ba3, { 0x1ba2, 0x1ba5 }, &unicode_tables::zero_width[145], &unicode_tables::zero_width[149] }, + { 0x1b42, { 0x1b42, 0x1b42 }, &unicode_tables::zero_width[146], &unicode_tables::zero_width[147] }, { 0x1b3c, { 0x1b3c, 0x1b3c }, nullptr, nullptr }, - { 0x1b56, { 1, 0 }, &unicode_tables::zero_width[247], &unicode_tables::zero_width[248] }, - { 0x1b42, { 0x1b42, 0x1b42 }, nullptr, nullptr }, - { 0x1b6f, { 0x1b6b, 0x1b73 }, nullptr, nullptr }, - { 0x1baa, { 1, 0 }, &unicode_tables::zero_width[250], &unicode_tables::zero_width[253] }, - { 0x1ba6, { 1, 0 }, &unicode_tables::zero_width[251], &unicode_tables::zero_width[252] }, - { 0x1ba3, { 0x1ba2, 0x1ba5 }, nullptr, nullptr }, + { 0x1b6f, { 0x1b6b, 0x1b73 }, nullptr, &unicode_tables::zero_width[148] }, + { 0x1b80, { 0x1b80, 0x1b81 }, nullptr, nullptr }, + { 0x1bac, { 0x1bab, 0x1bad }, &unicode_tables::zero_width[150], &unicode_tables::zero_width[151] }, { 0x1ba8, { 0x1ba8, 0x1ba9 }, nullptr, nullptr }, - { 0x1bc9, { 1, 0 }, &unicode_tables::zero_width[254], &unicode_tables::zero_width[255] }, - { 0x1bac, { 0x1bab, 0x1bad }, nullptr, nullptr }, { 0x1be6, { 0x1be6, 0x1be6 }, nullptr, nullptr }, - { 0x11080, { 0x1107f, 0x11081 }, &unicode_tables::zero_width[257], &unicode_tables::zero_width[384] }, - { 0xa9bc, { 0xa9bc, 0xa9bc }, &unicode_tables::zero_width[258], &unicode_tables::zero_width[321] }, - { 0x2d7f, { 0x2d7f, 0x2d7f }, &unicode_tables::zero_width[259], &unicode_tables::zero_width[290] }, - { 0x1cf6, { 1, 0 }, &unicode_tables::zero_width[260], &unicode_tables::zero_width[275] }, - { 0x1cd1, { 0x1cd0, 0x1cd2 }, &unicode_tables::zero_width[261], &unicode_tables::zero_width[268] }, - { 0x1c0e, { 1, 0 }, &unicode_tables::zero_width[262], &unicode_tables::zero_width[265] }, - { 0x1bee, { 1, 0 }, &unicode_tables::zero_width[263], &unicode_tables::zero_width[264] }, + { 0x11080, { 0x1107f, 0x11081 }, &unicode_tables::zero_width[153], &unicode_tables::zero_width[228] }, + { 0xa9bc, { 0xa9bc, 0xa9bc }, &unicode_tables::zero_width[154], &unicode_tables::zero_width[191] }, + { 0x2d7f, { 0x2d7f, 0x2d7f }, &unicode_tables::zero_width[155], &unicode_tables::zero_width[173] }, + { 0x1cf4, { 0x1cf4, 0x1cf4 }, &unicode_tables::zero_width[156], &unicode_tables::zero_width[164] }, + { 0x1c36, { 0x1c36, 0x1c37 }, &unicode_tables::zero_width[157], &unicode_tables::zero_width[160] }, + { 0x1bf0, { 0x1bef, 0x1bf1 }, &unicode_tables::zero_width[158], &unicode_tables::zero_width[159] }, { 0x1bed, { 0x1bed, 0x1bed }, nullptr, nullptr }, - { 0x1bf0, { 0x1bef, 0x1bf1 }, nullptr, nullptr }, - { 0x1c34, { 1, 0 }, &unicode_tables::zero_width[266], &unicode_tables::zero_width[267] }, { 0x1c2f, { 0x1c2c, 0x1c33 }, nullptr, nullptr }, - { 0x1c36, { 0x1c36, 0x1c37 }, nullptr, nullptr }, - { 0x1cea, { 1, 0 }, &unicode_tables::zero_width[269], &unicode_tables::zero_width[272] }, - { 0x1ce1, { 1, 0 }, &unicode_tables::zero_width[270], &unicode_tables::zero_width[271] }, - { 0x1cda, { 0x1cd4, 0x1ce0 }, nullptr, nullptr }, + { 0x1cda, { 0x1cd4, 0x1ce0 }, &unicode_tables::zero_width[161], &unicode_tables::zero_width[162] }, + { 0x1cd1, { 0x1cd0, 0x1cd2 }, nullptr, nullptr }, + { 0x1ced, { 0x1ced, 0x1ced }, &unicode_tables::zero_width[163], nullptr }, { 0x1ce5, { 0x1ce2, 0x1ce8 }, nullptr, nullptr }, - { 0x1cf0, { 1, 0 }, &unicode_tables::zero_width[273], &unicode_tables::zero_width[274] }, - { 0x1ced, { 0x1ced, 0x1ced }, nullptr, nullptr }, - { 0x1cf4, { 0x1cf4, 0x1cf4 }, nullptr, nullptr }, - { 0x202b, { 0x2028, 0x202e }, &unicode_tables::zero_width[276], &unicode_tables::zero_width[283] }, - { 0x1df8, { 1, 0 }, &unicode_tables::zero_width[277], &unicode_tables::zero_width[280] }, - { 0x1d5c, { 1, 0 }, &unicode_tables::zero_width[278], &unicode_tables::zero_width[279] }, + { 0x202b, { 0x2028, 0x202e }, &unicode_tables::zero_width[165], &unicode_tables::zero_width[169] }, + { 0x1dfd, { 0x1dfb, 0x1dff }, &unicode_tables::zero_width[166], &unicode_tables::zero_width[168] }, + { 0x1dda, { 0x1dc0, 0x1df5 }, &unicode_tables::zero_width[167], nullptr }, { 0x1cf8, { 0x1cf8, 0x1cf9 }, nullptr, nullptr }, - { 0x1dda, { 0x1dc0, 0x1df5 }, nullptr, nullptr }, - { 0x1f05, { 1, 0 }, &unicode_tables::zero_width[281], &unicode_tables::zero_width[282] }, - { 0x1dfd, { 0x1dfb, 0x1dff }, nullptr, nullptr }, { 0x200d, { 0x200b, 0x200f }, nullptr, nullptr }, - { 0x209f, { 1, 0 }, &unicode_tables::zero_width[284], &unicode_tables::zero_width[287] }, - { 0x2065, { 1, 0 }, &unicode_tables::zero_width[285], &unicode_tables::zero_width[286] }, + { 0x206a, { 0x2066, 0x206f }, &unicode_tables::zero_width[170], &unicode_tables::zero_width[171] }, { 0x2062, { 0x2060, 0x2064 }, nullptr, nullptr }, - { 0x206a, { 0x2066, 0x206f }, nullptr, nullptr }, - { 0x26ef, { 1, 0 }, &unicode_tables::zero_width[288], &unicode_tables::zero_width[289] }, + { 0x2cf0, { 0x2cef, 0x2cf1 }, &unicode_tables::zero_width[172], nullptr }, { 0x20e0, { 0x20d0, 0x20f0 }, nullptr, nullptr }, - { 0x2cf0, { 0x2cef, 0x2cf1 }, nullptr, nullptr }, - { 0xa808, { 1, 0 }, &unicode_tables::zero_width[291], &unicode_tables::zero_width[306] }, - { 0xa678, { 0xa674, 0xa67d }, &unicode_tables::zero_width[292], &unicode_tables::zero_width[299] }, - { 0x3063, { 1, 0 }, &unicode_tables::zero_width[293], &unicode_tables::zero_width[296] }, - { 0x2f14, { 1, 0 }, &unicode_tables::zero_width[294], &unicode_tables::zero_width[295] }, + { 0xa806, { 0xa806, 0xa806 }, &unicode_tables::zero_width[174], &unicode_tables::zero_width[182] }, + { 0xa670, { 0xa66f, 0xa672 }, &unicode_tables::zero_width[175], &unicode_tables::zero_width[178] }, + { 0x302b, { 0x302a, 0x302d }, &unicode_tables::zero_width[176], &unicode_tables::zero_width[177] }, { 0x2def, { 0x2de0, 0x2dff }, nullptr, nullptr }, - { 0x302b, { 0x302a, 0x302d }, nullptr, nullptr }, - { 0x6b84, { 1, 0 }, &unicode_tables::zero_width[297], &unicode_tables::zero_width[298] }, { 0x3099, { 0x3099, 0x309a }, nullptr, nullptr }, - { 0xa670, { 0xa66f, 0xa672 }, nullptr, nullptr }, - { 0xa779, { 1, 0 }, &unicode_tables::zero_width[300], &unicode_tables::zero_width[303] }, - { 0xa6c7, { 1, 0 }, &unicode_tables::zero_width[301], &unicode_tables::zero_width[302] }, - { 0xa69e, { 0xa69e, 0xa69f }, nullptr, nullptr }, - { 0xa6f0, { 0xa6f0, 0xa6f1 }, nullptr, nullptr }, - { 0xa804, { 1, 0 }, &unicode_tables::zero_width[304], &unicode_tables::zero_width[305] }, + { 0xa6f0, { 0xa6f0, 0xa6f1 }, &unicode_tables::zero_width[179], &unicode_tables::zero_width[181] }, + { 0xa69e, { 0xa69e, 0xa69f }, &unicode_tables::zero_width[180], nullptr }, + { 0xa678, { 0xa674, 0xa67d }, nullptr, nullptr }, { 0xa802, { 0xa802, 0xa802 }, nullptr, nullptr }, - { 0xa806, { 0xa806, 0xa806 }, nullptr, nullptr }, - { 0xa929, { 0xa926, 0xa92d }, &unicode_tables::zero_width[307], &unicode_tables::zero_width[314] }, - { 0xa875, { 1, 0 }, &unicode_tables::zero_width[308], &unicode_tables::zero_width[311] }, - { 0xa818, { 1, 0 }, &unicode_tables::zero_width[309], &unicode_tables::zero_width[310] }, - { 0xa80b, { 0xa80b, 0xa80b }, nullptr, nullptr }, + { 0xa929, { 0xa926, 0xa92d }, &unicode_tables::zero_width[183], &unicode_tables::zero_width[187] }, + { 0xa8c4, { 0xa8c4, 0xa8c5 }, &unicode_tables::zero_width[184], &unicode_tables::zero_width[186] }, + { 0xa80b, { 0xa80b, 0xa80b }, nullptr, &unicode_tables::zero_width[185] }, { 0xa825, { 0xa825, 0xa826 }, nullptr, nullptr }, - { 0xa8d2, { 1, 0 }, &unicode_tables::zero_width[312], &unicode_tables::zero_width[313] }, - { 0xa8c4, { 0xa8c4, 0xa8c5 }, nullptr, nullptr }, { 0xa8e8, { 0xa8e0, 0xa8f1 }, nullptr, nullptr }, - { 0xa99a, { 1, 0 }, &unicode_tables::zero_width[315], &unicode_tables::zero_width[318] }, - { 0xa968, { 1, 0 }, &unicode_tables::zero_width[316], &unicode_tables::zero_width[317] }, + { 0xa981, { 0xa980, 0xa982 }, &unicode_tables::zero_width[188], &unicode_tables::zero_width[189] }, { 0xa94c, { 0xa947, 0xa951 }, nullptr, nullptr }, - { 0xa981, { 0xa980, 0xa982 }, nullptr, nullptr }, - { 0xa9b4, { 1, 0 }, &unicode_tables::zero_width[319], &unicode_tables::zero_width[320] }, - { 0xa9b3, { 0xa9b3, 0xa9b3 }, nullptr, nullptr }, + { 0xa9b3, { 0xa9b3, 0xa9b3 }, nullptr, &unicode_tables::zero_width[190] }, { 0xa9b7, { 0xa9b6, 0xa9b9 }, nullptr, nullptr }, - { 0xdb7f, { 0xdb7f, 0xdb80 }, &unicode_tables::zero_width[322], &unicode_tables::zero_width[353] }, - { 0xaab5, { 1, 0 }, &unicode_tables::zero_width[323], &unicode_tables::zero_width[338] }, - { 0xaa43, { 0xaa43, 0xaa43 }, &unicode_tables::zero_width[324], &unicode_tables::zero_width[331] }, - { 0xaa2f, { 1, 0 }, &unicode_tables::zero_width[325], &unicode_tables::zero_width[328] }, - { 0xaa07, { 1, 0 }, &unicode_tables::zero_width[326], &unicode_tables::zero_width[327] }, + { 0xdb7f, { 0xdb7f, 0xdb80 }, &unicode_tables::zero_width[192], &unicode_tables::zero_width[210] }, + { 0xaab3, { 0xaab2, 0xaab4 }, &unicode_tables::zero_width[193], &unicode_tables::zero_width[201] }, + { 0xaa35, { 0xaa35, 0xaa36 }, &unicode_tables::zero_width[194], &unicode_tables::zero_width[197] }, + { 0xaa2b, { 0xaa29, 0xaa2e }, &unicode_tables::zero_width[195], &unicode_tables::zero_width[196] }, { 0xa9e5, { 0xa9e5, 0xa9e5 }, nullptr, nullptr }, - { 0xaa2b, { 0xaa29, 0xaa2e }, nullptr, nullptr }, - { 0xaa33, { 1, 0 }, &unicode_tables::zero_width[329], &unicode_tables::zero_width[330] }, { 0xaa31, { 0xaa31, 0xaa32 }, nullptr, nullptr }, - { 0xaa35, { 0xaa35, 0xaa36 }, nullptr, nullptr }, - { 0xaa96, { 1, 0 }, &unicode_tables::zero_width[332], &unicode_tables::zero_width[335] }, - { 0xaa64, { 1, 0 }, &unicode_tables::zero_width[333], &unicode_tables::zero_width[334] }, - { 0xaa4c, { 0xaa4c, 0xaa4c }, nullptr, nullptr }, - { 0xaa7c, { 0xaa7c, 0xaa7c }, nullptr, nullptr }, - { 0xaab1, { 1, 0 }, &unicode_tables::zero_width[336], &unicode_tables::zero_width[337] }, + { 0xaa7c, { 0xaa7c, 0xaa7c }, &unicode_tables::zero_width[198], &unicode_tables::zero_width[200] }, + { 0xaa4c, { 0xaa4c, 0xaa4c }, &unicode_tables::zero_width[199], nullptr }, + { 0xaa43, { 0xaa43, 0xaa43 }, nullptr, nullptr }, { 0xaab0, { 0xaab0, 0xaab0 }, nullptr, nullptr }, - { 0xaab3, { 0xaab2, 0xaab4 }, nullptr, nullptr }, - { 0xaaf6, { 0xaaf6, 0xaaf6 }, &unicode_tables::zero_width[339], &unicode_tables::zero_width[346] }, - { 0xaac0, { 1, 0 }, &unicode_tables::zero_width[340], &unicode_tables::zero_width[343] }, - { 0xaabb, { 1, 0 }, &unicode_tables::zero_width[341], &unicode_tables::zero_width[342] }, + { 0xaaf6, { 0xaaf6, 0xaaf6 }, &unicode_tables::zero_width[202], &unicode_tables::zero_width[206] }, + { 0xaabe, { 0xaabe, 0xaabf }, &unicode_tables::zero_width[203], &unicode_tables::zero_width[204] }, { 0xaab7, { 0xaab7, 0xaab8 }, nullptr, nullptr }, - { 0xaabe, { 0xaabe, 0xaabf }, nullptr, nullptr }, - { 0xaad6, { 1, 0 }, &unicode_tables::zero_width[344], &unicode_tables::zero_width[345] }, - { 0xaac1, { 0xaac1, 0xaac1 }, nullptr, nullptr }, + { 0xaac1, { 0xaac1, 0xaac1 }, nullptr, &unicode_tables::zero_width[205] }, { 0xaaec, { 0xaaec, 0xaaed }, nullptr, nullptr }, - { 0xabea, { 1, 0 }, &unicode_tables::zero_width[347], &unicode_tables::zero_width[350] }, - { 0xabe6, { 1, 0 }, &unicode_tables::zero_width[348], &unicode_tables::zero_width[349] }, + { 0xabe8, { 0xabe8, 0xabe8 }, &unicode_tables::zero_width[207], &unicode_tables::zero_width[208] }, { 0xabe5, { 0xabe5, 0xabe5 }, nullptr, nullptr }, - { 0xabe8, { 0xabe8, 0xabe8 }, nullptr, nullptr }, - { 0xc1f6, { 1, 0 }, &unicode_tables::zero_width[351], &unicode_tables::zero_width[352] }, - { 0xabed, { 0xabed, 0xabed }, nullptr, nullptr }, + { 0xabed, { 0xabed, 0xabed }, nullptr, &unicode_tables::zero_width[209] }, { 0xd800, { 0xd800, 0xd800 }, nullptr, nullptr }, - { 0x1032b, { 1, 0 }, &unicode_tables::zero_width[354], &unicode_tables::zero_width[369] }, - { 0xfe27, { 0xfe20, 0xfe2f }, &unicode_tables::zero_width[355], &unicode_tables::zero_width[362] }, - { 0xed8e, { 1, 0 }, &unicode_tables::zero_width[356], &unicode_tables::zero_width[359] }, - { 0xddff, { 1, 0 }, &unicode_tables::zero_width[357], &unicode_tables::zero_width[358] }, + { 0x102e0, { 0x102e0, 0x102e0 }, &unicode_tables::zero_width[211], &unicode_tables::zero_width[219] }, + { 0xfe27, { 0xfe20, 0xfe2f }, &unicode_tables::zero_width[212], &unicode_tables::zero_width[216] }, + { 0xdfff, { 0xdfff, 0xdfff }, &unicode_tables::zero_width[213], &unicode_tables::zero_width[214] }, { 0xdbff, { 0xdbff, 0xdc00 }, nullptr, nullptr }, - { 0xdfff, { 0xdfff, 0xdfff }, nullptr, nullptr }, - { 0xfc8f, { 1, 0 }, &unicode_tables::zero_width[360], &unicode_tables::zero_width[361] }, - { 0xfb1e, { 0xfb1e, 0xfb1e }, nullptr, nullptr }, + { 0xfb1e, { 0xfb1e, 0xfb1e }, nullptr, &unicode_tables::zero_width[215] }, { 0xfe07, { 0xfe00, 0xfe0f }, nullptr, nullptr }, - { 0x100fc, { 1, 0 }, &unicode_tables::zero_width[363], &unicode_tables::zero_width[366] }, - { 0xff7c, { 1, 0 }, &unicode_tables::zero_width[364], &unicode_tables::zero_width[365] }, + { 0xfffa, { 0xfff9, 0xfffb }, &unicode_tables::zero_width[217], &unicode_tables::zero_width[218] }, { 0xfeff, { 0xfeff, 0xfeff }, nullptr, nullptr }, - { 0xfffa, { 0xfff9, 0xfffb }, nullptr, nullptr }, - { 0x1026e, { 1, 0 }, &unicode_tables::zero_width[367], &unicode_tables::zero_width[368] }, { 0x101fd, { 0x101fd, 0x101fd }, nullptr, nullptr }, - { 0x102e0, { 0x102e0, 0x102e0 }, nullptr, nullptr }, - { 0x10a39, { 0x10a38, 0x10a3a }, &unicode_tables::zero_width[370], &unicode_tables::zero_width[377] }, - { 0x10a04, { 1, 0 }, &unicode_tables::zero_width[371], &unicode_tables::zero_width[374] }, - { 0x106bd, { 1, 0 }, &unicode_tables::zero_width[372], &unicode_tables::zero_width[373] }, + { 0x10a39, { 0x10a38, 0x10a3a }, &unicode_tables::zero_width[220], &unicode_tables::zero_width[224] }, + { 0x10a02, { 0x10a01, 0x10a03 }, &unicode_tables::zero_width[221], &unicode_tables::zero_width[222] }, { 0x10378, { 0x10376, 0x1037a }, nullptr, nullptr }, - { 0x10a02, { 0x10a01, 0x10a03 }, nullptr, nullptr }, - { 0x10a09, { 1, 0 }, &unicode_tables::zero_width[375], &unicode_tables::zero_width[376] }, + { 0x10a0d, { 0x10a0c, 0x10a0f }, &unicode_tables::zero_width[223], nullptr }, { 0x10a05, { 0x10a05, 0x10a06 }, nullptr, nullptr }, - { 0x10a0d, { 0x10a0c, 0x10a0f }, nullptr, nullptr }, - { 0x10d73, { 1, 0 }, &unicode_tables::zero_width[378], &unicode_tables::zero_width[381] }, - { 0x10a92, { 1, 0 }, &unicode_tables::zero_width[379], &unicode_tables::zero_width[380] }, - { 0x10a3f, { 0x10a3f, 0x10a3f }, nullptr, nullptr }, + { 0x11001, { 0x11001, 0x11001 }, &unicode_tables::zero_width[225], &unicode_tables::zero_width[227] }, + { 0x10a3f, { 0x10a3f, 0x10a3f }, nullptr, &unicode_tables::zero_width[226] }, { 0x10ae5, { 0x10ae5, 0x10ae6 }, nullptr, nullptr }, - { 0x1101c, { 1, 0 }, &unicode_tables::zero_width[382], &unicode_tables::zero_width[383] }, - { 0x11001, { 0x11001, 0x11001 }, nullptr, nullptr }, { 0x1103f, { 0x11038, 0x11046 }, nullptr, nullptr }, - { 0x116b2, { 0x116b0, 0x116b5 }, &unicode_tables::zero_width[385], &unicode_tables::zero_width[448] }, - { 0x11340, { 0x11340, 0x11340 }, &unicode_tables::zero_width[386], &unicode_tables::zero_width[417] }, - { 0x111c4, { 1, 0 }, &unicode_tables::zero_width[387], &unicode_tables::zero_width[402] }, - { 0x11129, { 0x11127, 0x1112b }, &unicode_tables::zero_width[388], &unicode_tables::zero_width[395] }, - { 0x110bb, { 1, 0 }, &unicode_tables::zero_width[389], &unicode_tables::zero_width[392] }, - { 0x110b7, { 1, 0 }, &unicode_tables::zero_width[390], &unicode_tables::zero_width[391] }, + { 0x116b2, { 0x116b0, 0x116b5 }, &unicode_tables::zero_width[229], &unicode_tables::zero_width[266] }, + { 0x11340, { 0x11340, 0x11340 }, &unicode_tables::zero_width[230], &unicode_tables::zero_width[248] }, + { 0x111cb, { 0x111ca, 0x111cc }, &unicode_tables::zero_width[231], &unicode_tables::zero_width[240] }, + { 0x11129, { 0x11127, 0x1112b }, &unicode_tables::zero_width[232], &unicode_tables::zero_width[236] }, + { 0x110b9, { 0x110b9, 0x110ba }, &unicode_tables::zero_width[233], &unicode_tables::zero_width[234] }, { 0x110b4, { 0x110b3, 0x110b6 }, nullptr, nullptr }, - { 0x110b9, { 0x110b9, 0x110ba }, nullptr, nullptr }, - { 0x110de, { 1, 0 }, &unicode_tables::zero_width[393], &unicode_tables::zero_width[394] }, + { 0x11101, { 0x11100, 0x11102 }, &unicode_tables::zero_width[235], nullptr }, { 0x110bd, { 0x110bd, 0x110bd }, nullptr, nullptr }, - { 0x11101, { 0x11100, 0x11102 }, nullptr, nullptr }, - { 0x11179, { 1, 0 }, &unicode_tables::zero_width[396], &unicode_tables::zero_width[399] }, - { 0x11153, { 1, 0 }, &unicode_tables::zero_width[397], &unicode_tables::zero_width[398] }, - { 0x11130, { 0x1112d, 0x11134 }, nullptr, nullptr }, + { 0x11180, { 0x11180, 0x11181 }, &unicode_tables::zero_width[237], &unicode_tables::zero_width[239] }, + { 0x11130, { 0x1112d, 0x11134 }, nullptr, &unicode_tables::zero_width[238] }, { 0x11173, { 0x11173, 0x11173 }, nullptr, nullptr }, - { 0x1119b, { 1, 0 }, &unicode_tables::zero_width[400], &unicode_tables::zero_width[401] }, - { 0x11180, { 0x11180, 0x11181 }, nullptr, nullptr }, { 0x111ba, { 0x111b6, 0x111be }, nullptr, nullptr }, - { 0x1123e, { 0x1123e, 0x1123e }, &unicode_tables::zero_width[403], &unicode_tables::zero_width[410] }, - { 0x11232, { 1, 0 }, &unicode_tables::zero_width[404], &unicode_tables::zero_width[407] }, - { 0x111fd, { 1, 0 }, &unicode_tables::zero_width[405], &unicode_tables::zero_width[406] }, - { 0x111cb, { 0x111ca, 0x111cc }, nullptr, nullptr }, + { 0x1123e, { 0x1123e, 0x1123e }, &unicode_tables::zero_width[241], &unicode_tables::zero_width[244] }, + { 0x11234, { 0x11234, 0x11234 }, &unicode_tables::zero_width[242], &unicode_tables::zero_width[243] }, { 0x11230, { 0x1122f, 0x11231 }, nullptr, nullptr }, - { 0x11235, { 1, 0 }, &unicode_tables::zero_width[408], &unicode_tables::zero_width[409] }, - { 0x11234, { 0x11234, 0x11234 }, nullptr, nullptr }, { 0x11236, { 0x11236, 0x11237 }, nullptr, nullptr }, - { 0x112f5, { 1, 0 }, &unicode_tables::zero_width[411], &unicode_tables::zero_width[414] }, - { 0x112e1, { 1, 0 }, &unicode_tables::zero_width[412], &unicode_tables::zero_width[413] }, + { 0x112e6, { 0x112e3, 0x112ea }, &unicode_tables::zero_width[245], &unicode_tables::zero_width[246] }, { 0x112df, { 0x112df, 0x112df }, nullptr, nullptr }, - { 0x112e6, { 0x112e3, 0x112ea }, nullptr, nullptr }, - { 0x1131e, { 1, 0 }, &unicode_tables::zero_width[415], &unicode_tables::zero_width[416] }, - { 0x11300, { 0x11300, 0x11301 }, nullptr, nullptr }, + { 0x11300, { 0x11300, 0x11301 }, nullptr, &unicode_tables::zero_width[247] }, { 0x1133c, { 0x1133c, 0x1133c }, nullptr, nullptr }, - { 0x1153a, { 1, 0 }, &unicode_tables::zero_width[418], &unicode_tables::zero_width[433] }, - { 0x11446, { 0x11446, 0x11446 }, &unicode_tables::zero_width[419], &unicode_tables::zero_width[426] }, - { 0x113d6, { 1, 0 }, &unicode_tables::zero_width[420], &unicode_tables::zero_width[423] }, - { 0x1136e, { 1, 0 }, &unicode_tables::zero_width[421], &unicode_tables::zero_width[422] }, - { 0x11369, { 0x11366, 0x1136c }, nullptr, nullptr }, + { 0x115b3, { 0x115b2, 0x115b5 }, &unicode_tables::zero_width[249], &unicode_tables::zero_width[258] }, + { 0x11446, { 0x11446, 0x11446 }, &unicode_tables::zero_width[250], &unicode_tables::zero_width[254] }, + { 0x1143b, { 0x11438, 0x1143f }, &unicode_tables::zero_width[251], &unicode_tables::zero_width[253] }, + { 0x11369, { 0x11366, 0x1136c }, nullptr, &unicode_tables::zero_width[252] }, { 0x11372, { 0x11370, 0x11374 }, nullptr, nullptr }, - { 0x11440, { 1, 0 }, &unicode_tables::zero_width[424], &unicode_tables::zero_width[425] }, - { 0x1143b, { 0x11438, 0x1143f }, nullptr, nullptr }, { 0x11443, { 0x11442, 0x11444 }, nullptr, nullptr }, - { 0x114bc, { 1, 0 }, &unicode_tables::zero_width[427], &unicode_tables::zero_width[430] }, - { 0x114b9, { 1, 0 }, &unicode_tables::zero_width[428], &unicode_tables::zero_width[429] }, + { 0x114ba, { 0x114ba, 0x114ba }, &unicode_tables::zero_width[255], &unicode_tables::zero_width[256] }, { 0x114b5, { 0x114b3, 0x114b8 }, nullptr, nullptr }, - { 0x114ba, { 0x114ba, 0x114ba }, nullptr, nullptr }, - { 0x114c1, { 1, 0 }, &unicode_tables::zero_width[431], &unicode_tables::zero_width[432] }, + { 0x114c2, { 0x114c2, 0x114c3 }, &unicode_tables::zero_width[257], nullptr }, { 0x114bf, { 0x114bf, 0x114c0 }, nullptr, nullptr }, - { 0x114c2, { 0x114c2, 0x114c3 }, nullptr, nullptr }, - { 0x11636, { 0x11633, 0x1163a }, &unicode_tables::zero_width[434], &unicode_tables::zero_width[441] }, - { 0x115be, { 1, 0 }, &unicode_tables::zero_width[435], &unicode_tables::zero_width[438] }, - { 0x115b8, { 1, 0 }, &unicode_tables::zero_width[436], &unicode_tables::zero_width[437] }, - { 0x115b3, { 0x115b2, 0x115b5 }, nullptr, nullptr }, - { 0x115bc, { 0x115bc, 0x115bd }, nullptr, nullptr }, - { 0x115ce, { 1, 0 }, &unicode_tables::zero_width[439], &unicode_tables::zero_width[440] }, + { 0x1163d, { 0x1163d, 0x1163d }, &unicode_tables::zero_width[259], &unicode_tables::zero_width[263] }, + { 0x115dc, { 0x115dc, 0x115dd }, &unicode_tables::zero_width[260], &unicode_tables::zero_width[262] }, + { 0x115bc, { 0x115bc, 0x115bd }, nullptr, &unicode_tables::zero_width[261] }, { 0x115bf, { 0x115bf, 0x115c0 }, nullptr, nullptr }, - { 0x115dc, { 0x115dc, 0x115dd }, nullptr, nullptr }, - { 0x11675, { 1, 0 }, &unicode_tables::zero_width[442], &unicode_tables::zero_width[445] }, - { 0x1163e, { 1, 0 }, &unicode_tables::zero_width[443], &unicode_tables::zero_width[444] }, - { 0x1163d, { 0x1163d, 0x1163d }, nullptr, nullptr }, + { 0x11636, { 0x11633, 0x1163a }, nullptr, nullptr }, + { 0x116ab, { 0x116ab, 0x116ab }, &unicode_tables::zero_width[264], &unicode_tables::zero_width[265] }, { 0x1163f, { 0x1163f, 0x11640 }, nullptr, nullptr }, - { 0x116ac, { 1, 0 }, &unicode_tables::zero_width[446], &unicode_tables::zero_width[447] }, - { 0x116ab, { 0x116ab, 0x116ab }, nullptr, nullptr }, { 0x116ad, { 0x116ad, 0x116ad }, nullptr, nullptr }, - { 0x1d188, { 0x1d185, 0x1d18b }, &unicode_tables::zero_width[449], &unicode_tables::zero_width[480] }, - { 0x11cb1, { 1, 0 }, &unicode_tables::zero_width[450], &unicode_tables::zero_width[465] }, - { 0x11c33, { 0x11c30, 0x11c36 }, &unicode_tables::zero_width[451], &unicode_tables::zero_width[458] }, - { 0x11720, { 1, 0 }, &unicode_tables::zero_width[452], &unicode_tables::zero_width[455] }, - { 0x116ea, { 1, 0 }, &unicode_tables::zero_width[453], &unicode_tables::zero_width[454] }, + { 0x1d188, { 0x1d185, 0x1d18b }, &unicode_tables::zero_width[267], &unicode_tables::zero_width[285] }, + { 0x11cb2, { 0x11cb2, 0x11cb3 }, &unicode_tables::zero_width[268], &unicode_tables::zero_width[277] }, + { 0x11c33, { 0x11c30, 0x11c36 }, &unicode_tables::zero_width[269], &unicode_tables::zero_width[273] }, + { 0x11723, { 0x11722, 0x11725 }, &unicode_tables::zero_width[270], &unicode_tables::zero_width[272] }, + { 0x1171e, { 0x1171d, 0x1171f }, &unicode_tables::zero_width[271], nullptr }, { 0x116b7, { 0x116b7, 0x116b7 }, nullptr, nullptr }, - { 0x1171e, { 0x1171d, 0x1171f }, nullptr, nullptr }, - { 0x11726, { 1, 0 }, &unicode_tables::zero_width[456], &unicode_tables::zero_width[457] }, - { 0x11723, { 0x11722, 0x11725 }, nullptr, nullptr }, { 0x11729, { 0x11727, 0x1172b }, nullptr, nullptr }, - { 0x11c68, { 1, 0 }, &unicode_tables::zero_width[459], &unicode_tables::zero_width[462] }, - { 0x11c3e, { 1, 0 }, &unicode_tables::zero_width[460], &unicode_tables::zero_width[461] }, - { 0x11c3a, { 0x11c38, 0x11c3d }, nullptr, nullptr }, + { 0x11c9c, { 0x11c92, 0x11ca7 }, &unicode_tables::zero_width[274], &unicode_tables::zero_width[276] }, + { 0x11c3a, { 0x11c38, 0x11c3d }, nullptr, &unicode_tables::zero_width[275] }, { 0x11c3f, { 0x11c3f, 0x11c3f }, nullptr, nullptr }, - { 0x11ca8, { 1, 0 }, &unicode_tables::zero_width[463], &unicode_tables::zero_width[464] }, - { 0x11c9c, { 0x11c92, 0x11ca7 }, nullptr, nullptr }, { 0x11cad, { 0x11caa, 0x11cb0 }, nullptr, nullptr }, - { 0x16f90, { 0x16f8f, 0x16f92 }, &unicode_tables::zero_width[466], &unicode_tables::zero_width[473] }, - { 0x143d3, { 1, 0 }, &unicode_tables::zero_width[467], &unicode_tables::zero_width[470] }, - { 0x11cb4, { 1, 0 }, &unicode_tables::zero_width[468], &unicode_tables::zero_width[469] }, - { 0x11cb2, { 0x11cb2, 0x11cb3 }, nullptr, nullptr }, + { 0x1bc9d, { 0x1bc9d, 0x1bc9e }, &unicode_tables::zero_width[278], &unicode_tables::zero_width[282] }, + { 0x16af2, { 0x16af0, 0x16af4 }, &unicode_tables::zero_width[279], &unicode_tables::zero_width[280] }, { 0x11cb5, { 0x11cb5, 0x11cb6 }, nullptr, nullptr }, - { 0x16b12, { 1, 0 }, &unicode_tables::zero_width[471], &unicode_tables::zero_width[472] }, - { 0x16af2, { 0x16af0, 0x16af4 }, nullptr, nullptr }, + { 0x16f90, { 0x16f8f, 0x16f92 }, &unicode_tables::zero_width[281], nullptr }, { 0x16b33, { 0x16b30, 0x16b36 }, nullptr, nullptr }, - { 0x1c705, { 1, 0 }, &unicode_tables::zero_width[474], &unicode_tables::zero_width[477] }, - { 0x1bc9f, { 1, 0 }, &unicode_tables::zero_width[475], &unicode_tables::zero_width[476] }, - { 0x1bc9d, { 0x1bc9d, 0x1bc9e }, nullptr, nullptr }, + { 0x1d168, { 0x1d167, 0x1d169 }, &unicode_tables::zero_width[283], &unicode_tables::zero_width[284] }, { 0x1bca1, { 0x1bca0, 0x1bca3 }, nullptr, nullptr }, - { 0x1d16e, { 1, 0 }, &unicode_tables::zero_width[478], &unicode_tables::zero_width[479] }, - { 0x1d168, { 0x1d167, 0x1d169 }, nullptr, nullptr }, { 0x1d17a, { 0x1d173, 0x1d182 }, nullptr, nullptr }, - { 0x1e007, { 1, 0 }, &unicode_tables::zero_width[481], &unicode_tables::zero_width[496] }, - { 0x1da75, { 0x1da75, 0x1da75 }, &unicode_tables::zero_width[482], &unicode_tables::zero_width[489] }, - { 0x1d622, { 1, 0 }, &unicode_tables::zero_width[483], &unicode_tables::zero_width[486] }, - { 0x1d1f7, { 1, 0 }, &unicode_tables::zero_width[484], &unicode_tables::zero_width[485] }, + { 0x1e003, { 0x1e000, 0x1e006 }, &unicode_tables::zero_width[286], &unicode_tables::zero_width[294] }, + { 0x1da75, { 0x1da75, 0x1da75 }, &unicode_tables::zero_width[287], &unicode_tables::zero_width[291] }, + { 0x1d243, { 0x1d242, 0x1d244 }, &unicode_tables::zero_width[288], &unicode_tables::zero_width[289] }, { 0x1d1ab, { 0x1d1aa, 0x1d1ad }, nullptr, nullptr }, - { 0x1d243, { 0x1d242, 0x1d244 }, nullptr, nullptr }, - { 0x1da38, { 1, 0 }, &unicode_tables::zero_width[487], &unicode_tables::zero_width[488] }, + { 0x1da53, { 0x1da3b, 0x1da6c }, &unicode_tables::zero_width[290], nullptr }, { 0x1da1b, { 0x1da00, 0x1da36 }, nullptr, nullptr }, - { 0x1da53, { 0x1da3b, 0x1da6c }, nullptr, nullptr }, - { 0x1daa0, { 1, 0 }, &unicode_tables::zero_width[490], &unicode_tables::zero_width[493] }, - { 0x1da8f, { 1, 0 }, &unicode_tables::zero_width[491], &unicode_tables::zero_width[492] }, + { 0x1da9d, { 0x1da9b, 0x1da9f }, &unicode_tables::zero_width[292], &unicode_tables::zero_width[293] }, { 0x1da84, { 0x1da84, 0x1da84 }, nullptr, nullptr }, - { 0x1da9d, { 0x1da9b, 0x1da9f }, nullptr, nullptr }, - { 0x1dd57, { 1, 0 }, &unicode_tables::zero_width[494], &unicode_tables::zero_width[495] }, { 0x1daa8, { 0x1daa1, 0x1daaf }, nullptr, nullptr }, - { 0x1e003, { 0x1e000, 0x1e006 }, nullptr, nullptr }, - { 0x1e8d3, { 0x1e8d0, 0x1e8d6 }, &unicode_tables::zero_width[497], &unicode_tables::zero_width[504] }, - { 0x1e022, { 1, 0 }, &unicode_tables::zero_width[498], &unicode_tables::zero_width[501] }, - { 0x1e019, { 1, 0 }, &unicode_tables::zero_width[499], &unicode_tables::zero_width[500] }, + { 0x1e8d3, { 0x1e8d0, 0x1e8d6 }, &unicode_tables::zero_width[295], &unicode_tables::zero_width[299] }, + { 0x1e01e, { 0x1e01b, 0x1e021 }, &unicode_tables::zero_width[296], &unicode_tables::zero_width[297] }, { 0x1e010, { 0x1e008, 0x1e018 }, nullptr, nullptr }, - { 0x1e01e, { 0x1e01b, 0x1e021 }, nullptr, nullptr }, - { 0x1e025, { 1, 0 }, &unicode_tables::zero_width[502], &unicode_tables::zero_width[503] }, + { 0x1e028, { 0x1e026, 0x1e02a }, &unicode_tables::zero_width[298], nullptr }, { 0x1e023, { 0x1e023, 0x1e024 }, nullptr, nullptr }, - { 0x1e028, { 0x1e026, 0x1e02a }, nullptr, nullptr }, - { 0xe0010, { 1, 0 }, &unicode_tables::zero_width[505], &unicode_tables::zero_width[508] }, - { 0x7f4a5, { 1, 0 }, &unicode_tables::zero_width[506], &unicode_tables::zero_width[507] }, + { 0xe0001, { 0xe0001, 0xe0001 }, &unicode_tables::zero_width[300], &unicode_tables::zero_width[301] }, { 0x1e947, { 0x1e944, 0x1e94a }, nullptr, nullptr }, - { 0xe0001, { 0xe0001, 0xe0001 }, nullptr, nullptr }, - { 0xe00bf, { 1, 0 }, &unicode_tables::zero_width[509], &unicode_tables::zero_width[510] }, - { 0xe004f, { 0xe0020, 0xe007f }, nullptr, nullptr }, + { 0xe004f, { 0xe0020, 0xe007f }, nullptr, &unicode_tables::zero_width[302] }, { 0xe0177, { 0xe0100, 0xe01ef }, nullptr, nullptr }, }; template const unicode_interval_tree_t unicode_tables::double_width[] = { - { 0xaabe, { 1, 0 }, &unicode_tables::double_width[1], &unicode_tables::double_width[64] }, - { 0x274e, { 0x274e, 0x274e }, &unicode_tables::double_width[2], &unicode_tables::double_width[33] }, - { 0x26b4, { 1, 0 }, &unicode_tables::double_width[3], &unicode_tables::double_width[18] }, - { 0x25fd, { 0x25fd, 0x25fe }, &unicode_tables::double_width[4], &unicode_tables::double_width[11] }, - { 0x2389, { 1, 0 }, &unicode_tables::double_width[5], &unicode_tables::double_width[8] }, + { 0xa96e, { 0xa960, 0xa97c }, &unicode_tables::double_width[1], &unicode_tables::double_width[53] }, + { 0x274e, { 0x274e, 0x274e }, &unicode_tables::double_width[2], &unicode_tables::double_width[28] }, + { 0x26bd, { 0x26bd, 0x26be }, &unicode_tables::double_width[3], &unicode_tables::double_width[16] }, + { 0x25fd, { 0x25fd, 0x25fe }, &unicode_tables::double_width[4], &unicode_tables::double_width[10] }, + { 0x23ea, { 0x23e9, 0x23ec }, &unicode_tables::double_width[5], &unicode_tables::double_width[8] }, { 0x231a, { 0x231a, 0x231b }, &unicode_tables::double_width[6], &unicode_tables::double_width[7] }, { 0x112f, { 0x1100, 0x115f }, nullptr, nullptr }, { 0x2329, { 0x2329, 0x232a }, nullptr, nullptr }, - { 0x23f0, { 0x23f0, 0x23f0 }, &unicode_tables::double_width[9], &unicode_tables::double_width[10] }, - { 0x23ea, { 0x23e9, 0x23ec }, nullptr, nullptr }, + { 0x23f0, { 0x23f0, 0x23f0 }, nullptr, &unicode_tables::double_width[9] }, { 0x23f3, { 0x23f3, 0x23f3 }, nullptr, nullptr }, - { 0x2689, { 1, 0 }, &unicode_tables::double_width[12], &unicode_tables::double_width[15] }, - { 0x264d, { 0x2648, 0x2653 }, &unicode_tables::double_width[13], &unicode_tables::double_width[14] }, + { 0x2693, { 0x2693, 0x2693 }, &unicode_tables::double_width[11], &unicode_tables::double_width[14] }, + { 0x264d, { 0x2648, 0x2653 }, &unicode_tables::double_width[12], &unicode_tables::double_width[13] }, { 0x2614, { 0x2614, 0x2615 }, nullptr, nullptr }, { 0x267f, { 0x267f, 0x267f }, nullptr, nullptr }, - { 0x26a1, { 0x26a1, 0x26a1 }, &unicode_tables::double_width[16], &unicode_tables::double_width[17] }, - { 0x2693, { 0x2693, 0x2693 }, nullptr, nullptr }, + { 0x26a1, { 0x26a1, 0x26a1 }, nullptr, &unicode_tables::double_width[15] }, { 0x26aa, { 0x26aa, 0x26ab }, nullptr, nullptr }, - { 0x26f5, { 0x26f5, 0x26f5 }, &unicode_tables::double_width[19], &unicode_tables::double_width[26] }, - { 0x26d1, { 1, 0 }, &unicode_tables::double_width[20], &unicode_tables::double_width[23] }, - { 0x26c4, { 0x26c4, 0x26c5 }, &unicode_tables::double_width[21], &unicode_tables::double_width[22] }, - { 0x26bd, { 0x26bd, 0x26be }, nullptr, nullptr }, + { 0x26fa, { 0x26fa, 0x26fa }, &unicode_tables::double_width[17], &unicode_tables::double_width[23] }, + { 0x26d4, { 0x26d4, 0x26d4 }, &unicode_tables::double_width[18], &unicode_tables::double_width[20] }, + { 0x26c4, { 0x26c4, 0x26c5 }, nullptr, &unicode_tables::double_width[19] }, { 0x26ce, { 0x26ce, 0x26ce }, nullptr, nullptr }, - { 0x26ea, { 0x26ea, 0x26ea }, &unicode_tables::double_width[24], &unicode_tables::double_width[25] }, - { 0x26d4, { 0x26d4, 0x26d4 }, nullptr, nullptr }, - { 0x26f2, { 0x26f2, 0x26f3 }, nullptr, nullptr }, - { 0x2707, { 1, 0 }, &unicode_tables::double_width[27], &unicode_tables::double_width[30] }, - { 0x26fd, { 0x26fd, 0x26fd }, &unicode_tables::double_width[28], &unicode_tables::double_width[29] }, - { 0x26fa, { 0x26fa, 0x26fa }, nullptr, nullptr }, - { 0x2705, { 0x2705, 0x2705 }, nullptr, nullptr }, - { 0x2728, { 0x2728, 0x2728 }, &unicode_tables::double_width[31], &unicode_tables::double_width[32] }, - { 0x270a, { 0x270a, 0x270b }, nullptr, nullptr }, + { 0x26f2, { 0x26f2, 0x26f3 }, &unicode_tables::double_width[21], &unicode_tables::double_width[22] }, + { 0x26ea, { 0x26ea, 0x26ea }, nullptr, nullptr }, + { 0x26f5, { 0x26f5, 0x26f5 }, nullptr, nullptr }, + { 0x270a, { 0x270a, 0x270b }, &unicode_tables::double_width[24], &unicode_tables::double_width[26] }, + { 0x2705, { 0x2705, 0x2705 }, &unicode_tables::double_width[25], nullptr }, + { 0x26fd, { 0x26fd, 0x26fd }, nullptr, nullptr }, + { 0x2728, { 0x2728, 0x2728 }, nullptr, &unicode_tables::double_width[27] }, { 0x274c, { 0x274c, 0x274c }, nullptr, nullptr }, - { 0x303f, { 1, 0 }, &unicode_tables::double_width[34], &unicode_tables::double_width[49] }, - { 0x2b50, { 0x2b50, 0x2b50 }, &unicode_tables::double_width[35], &unicode_tables::double_width[42] }, - { 0x27a3, { 1, 0 }, &unicode_tables::double_width[36], &unicode_tables::double_width[39] }, - { 0x2757, { 0x2757, 0x2757 }, &unicode_tables::double_width[37], &unicode_tables::double_width[38] }, - { 0x2754, { 0x2753, 0x2755 }, nullptr, nullptr }, - { 0x2796, { 0x2795, 0x2797 }, nullptr, nullptr }, - { 0x27bf, { 0x27bf, 0x27bf }, &unicode_tables::double_width[40], &unicode_tables::double_width[41] }, + { 0x301f, { 0x3000, 0x303e }, &unicode_tables::double_width[29], &unicode_tables::double_width[41] }, + { 0x2b1b, { 0x2b1b, 0x2b1c }, &unicode_tables::double_width[30], &unicode_tables::double_width[35] }, + { 0x2796, { 0x2795, 0x2797 }, &unicode_tables::double_width[31], &unicode_tables::double_width[33] }, + { 0x2754, { 0x2753, 0x2755 }, nullptr, &unicode_tables::double_width[32] }, + { 0x2757, { 0x2757, 0x2757 }, nullptr, nullptr }, + { 0x27bf, { 0x27bf, 0x27bf }, &unicode_tables::double_width[34], nullptr }, { 0x27b0, { 0x27b0, 0x27b0 }, nullptr, nullptr }, - { 0x2b1b, { 0x2b1b, 0x2b1c }, nullptr, nullptr }, - { 0x2ef9, { 1, 0 }, &unicode_tables::double_width[43], &unicode_tables::double_width[46] }, - { 0x2e8c, { 0x2e80, 0x2e99 }, &unicode_tables::double_width[44], &unicode_tables::double_width[45] }, - { 0x2b55, { 0x2b55, 0x2b55 }, nullptr, nullptr }, + { 0x2e8c, { 0x2e80, 0x2e99 }, &unicode_tables::double_width[36], &unicode_tables::double_width[38] }, + { 0x2b55, { 0x2b55, 0x2b55 }, &unicode_tables::double_width[37], nullptr }, + { 0x2b50, { 0x2b50, 0x2b50 }, nullptr, nullptr }, + { 0x2f6a, { 0x2f00, 0x2fd5 }, &unicode_tables::double_width[39], &unicode_tables::double_width[40] }, { 0x2ec7, { 0x2e9b, 0x2ef3 }, nullptr, nullptr }, - { 0x2ff5, { 0x2ff0, 0x2ffb }, &unicode_tables::double_width[47], &unicode_tables::double_width[48] }, - { 0x2f6a, { 0x2f00, 0x2fd5 }, nullptr, nullptr }, - { 0x301f, { 0x3000, 0x303e }, nullptr, nullptr }, - { 0x3207, { 0x31f0, 0x321e }, &unicode_tables::double_width[50], &unicode_tables::double_width[57] }, - { 0x312f, { 1, 0 }, &unicode_tables::double_width[51], &unicode_tables::double_width[54] }, - { 0x30cc, { 0x3099, 0x30ff }, &unicode_tables::double_width[52], &unicode_tables::double_width[53] }, - { 0x306b, { 0x3041, 0x3096 }, nullptr, nullptr }, - { 0x3119, { 0x3105, 0x312d }, nullptr, nullptr }, - { 0x31a5, { 0x3190, 0x31ba }, &unicode_tables::double_width[55], &unicode_tables::double_width[56] }, + { 0x2ff5, { 0x2ff0, 0x2ffb }, nullptr, nullptr }, + { 0x31d1, { 0x31c0, 0x31e3 }, &unicode_tables::double_width[42], &unicode_tables::double_width[47] }, + { 0x3119, { 0x3105, 0x312d }, &unicode_tables::double_width[43], &unicode_tables::double_width[45] }, + { 0x306b, { 0x3041, 0x3096 }, nullptr, &unicode_tables::double_width[44] }, + { 0x30cc, { 0x3099, 0x30ff }, nullptr, nullptr }, + { 0x31a5, { 0x3190, 0x31ba }, &unicode_tables::double_width[46], nullptr }, { 0x315f, { 0x3131, 0x318e }, nullptr, nullptr }, - { 0x31d1, { 0x31c0, 0x31e3 }, nullptr, nullptr }, - { 0x4ddf, { 1, 0 }, &unicode_tables::double_width[58], &unicode_tables::double_width[61] }, - { 0x32a7, { 0x3250, 0x32fe }, &unicode_tables::double_width[59], &unicode_tables::double_width[60] }, - { 0x3233, { 0x3220, 0x3247 }, nullptr, nullptr }, - { 0x405f, { 0x3300, 0x4dbf }, nullptr, nullptr }, - { 0xa4ab, { 0xa490, 0xa4c6 }, &unicode_tables::double_width[62], &unicode_tables::double_width[63] }, + { 0x405f, { 0x3300, 0x4dbf }, &unicode_tables::double_width[48], &unicode_tables::double_width[51] }, + { 0x3233, { 0x3220, 0x3247 }, &unicode_tables::double_width[49], &unicode_tables::double_width[50] }, + { 0x3207, { 0x31f0, 0x321e }, nullptr, nullptr }, + { 0x32a7, { 0x3250, 0x32fe }, nullptr, nullptr }, + { 0xa4ab, { 0xa490, 0xa4c6 }, &unicode_tables::double_width[52], nullptr }, { 0x7946, { 0x4e00, 0xa48c }, nullptr, nullptr }, - { 0xa96e, { 0xa960, 0xa97c }, nullptr, nullptr }, - { 0x1f3e8, { 0x1f3e0, 0x1f3f0 }, &unicode_tables::double_width[65], &unicode_tables::double_width[96] }, - { 0x1f069, { 1, 0 }, &unicode_tables::double_width[66], &unicode_tables::double_width[81] }, - { 0xff30, { 0xff01, 0xff60 }, &unicode_tables::double_width[67], &unicode_tables::double_width[74] }, - { 0xfe24, { 1, 0 }, &unicode_tables::double_width[68], &unicode_tables::double_width[71] }, - { 0xf9ff, { 0xf900, 0xfaff }, &unicode_tables::double_width[69], &unicode_tables::double_width[70] }, - { 0xc1d1, { 0xac00, 0xd7a3 }, nullptr, nullptr }, - { 0xfe14, { 0xfe10, 0xfe19 }, nullptr, nullptr }, - { 0xfe5d, { 0xfe54, 0xfe66 }, &unicode_tables::double_width[72], &unicode_tables::double_width[73] }, + { 0x1f3e8, { 0x1f3e0, 0x1f3f0 }, &unicode_tables::double_width[54], &unicode_tables::double_width[80] }, + { 0x1f004, { 0x1f004, 0x1f004 }, &unicode_tables::double_width[55], &unicode_tables::double_width[67] }, + { 0xfe69, { 0xfe68, 0xfe6b }, &unicode_tables::double_width[56], &unicode_tables::double_width[61] }, + { 0xfe14, { 0xfe10, 0xfe19 }, &unicode_tables::double_width[57], &unicode_tables::double_width[59] }, + { 0xc1d1, { 0xac00, 0xd7a3 }, nullptr, &unicode_tables::double_width[58] }, + { 0xf9ff, { 0xf900, 0xfaff }, nullptr, nullptr }, + { 0xfe5d, { 0xfe54, 0xfe66 }, &unicode_tables::double_width[60], nullptr }, { 0xfe41, { 0xfe30, 0xfe52 }, nullptr, nullptr }, - { 0xfe69, { 0xfe68, 0xfe6b }, nullptr, nullptr }, - { 0x187f6, { 1, 0 }, &unicode_tables::double_width[75], &unicode_tables::double_width[78] }, - { 0x16fe0, { 0x16fe0, 0x16fe0 }, &unicode_tables::double_width[76], &unicode_tables::double_width[77] }, + { 0x16fe0, { 0x16fe0, 0x16fe0 }, &unicode_tables::double_width[62], &unicode_tables::double_width[64] }, + { 0xff30, { 0xff01, 0xff60 }, nullptr, &unicode_tables::double_width[63] }, { 0xffe3, { 0xffe0, 0xffe6 }, nullptr, nullptr }, + { 0x18979, { 0x18800, 0x18af2 }, &unicode_tables::double_width[65], &unicode_tables::double_width[66] }, { 0x17bf6, { 0x17000, 0x187ec }, nullptr, nullptr }, - { 0x1b000, { 0x1b000, 0x1b001 }, &unicode_tables::double_width[79], &unicode_tables::double_width[80] }, - { 0x18979, { 0x18800, 0x18af2 }, nullptr, nullptr }, - { 0x1f004, { 0x1f004, 0x1f004 }, nullptr, nullptr }, - { 0x1f250, { 0x1f250, 0x1f251 }, &unicode_tables::double_width[82], &unicode_tables::double_width[89] }, - { 0x1f1cd, { 1, 0 }, &unicode_tables::double_width[83], &unicode_tables::double_width[86] }, - { 0x1f18e, { 0x1f18e, 0x1f18e }, &unicode_tables::double_width[84], &unicode_tables::double_width[85] }, + { 0x1b000, { 0x1b000, 0x1b001 }, nullptr, nullptr }, + { 0x1f250, { 0x1f250, 0x1f251 }, &unicode_tables::double_width[68], &unicode_tables::double_width[74] }, + { 0x1f201, { 0x1f200, 0x1f202 }, &unicode_tables::double_width[69], &unicode_tables::double_width[72] }, + { 0x1f18e, { 0x1f18e, 0x1f18e }, &unicode_tables::double_width[70], &unicode_tables::double_width[71] }, { 0x1f0cf, { 0x1f0cf, 0x1f0cf }, nullptr, nullptr }, { 0x1f195, { 0x1f191, 0x1f19a }, nullptr, nullptr }, - { 0x1f225, { 0x1f210, 0x1f23b }, &unicode_tables::double_width[87], &unicode_tables::double_width[88] }, - { 0x1f201, { 0x1f200, 0x1f202 }, nullptr, nullptr }, - { 0x1f244, { 0x1f240, 0x1f248 }, nullptr, nullptr }, - { 0x1f37d, { 1, 0 }, &unicode_tables::double_width[90], &unicode_tables::double_width[93] }, - { 0x1f331, { 0x1f32d, 0x1f335 }, &unicode_tables::double_width[91], &unicode_tables::double_width[92] }, + { 0x1f244, { 0x1f240, 0x1f248 }, &unicode_tables::double_width[73], nullptr }, + { 0x1f225, { 0x1f210, 0x1f23b }, nullptr, nullptr }, + { 0x1f388, { 0x1f37e, 0x1f393 }, &unicode_tables::double_width[75], &unicode_tables::double_width[78] }, + { 0x1f331, { 0x1f32d, 0x1f335 }, &unicode_tables::double_width[76], &unicode_tables::double_width[77] }, { 0x1f310, { 0x1f300, 0x1f320 }, nullptr, nullptr }, { 0x1f359, { 0x1f337, 0x1f37c }, nullptr, nullptr }, - { 0x1f3b5, { 0x1f3a0, 0x1f3ca }, &unicode_tables::double_width[94], &unicode_tables::double_width[95] }, - { 0x1f388, { 0x1f37e, 0x1f393 }, nullptr, nullptr }, - { 0x1f3d1, { 0x1f3cf, 0x1f3d3 }, nullptr, nullptr }, - { 0x1f6ce, { 1, 0 }, &unicode_tables::double_width[97], &unicode_tables::double_width[112] }, - { 0x1f55b, { 0x1f550, 0x1f567 }, &unicode_tables::double_width[98], &unicode_tables::double_width[105] }, - { 0x1f441, { 1, 0 }, &unicode_tables::double_width[99], &unicode_tables::double_width[102] }, - { 0x1f41b, { 0x1f3f8, 0x1f43e }, &unicode_tables::double_width[100], &unicode_tables::double_width[101] }, + { 0x1f3d1, { 0x1f3cf, 0x1f3d3 }, &unicode_tables::double_width[79], nullptr }, + { 0x1f3b5, { 0x1f3a0, 0x1f3ca }, nullptr, nullptr }, + { 0x1f6cc, { 0x1f6cc, 0x1f6cc }, &unicode_tables::double_width[81], &unicode_tables::double_width[93] }, + { 0x1f55b, { 0x1f550, 0x1f567 }, &unicode_tables::double_width[82], &unicode_tables::double_width[88] }, + { 0x1f49f, { 0x1f442, 0x1f4fc }, &unicode_tables::double_width[83], &unicode_tables::double_width[86] }, + { 0x1f41b, { 0x1f3f8, 0x1f43e }, &unicode_tables::double_width[84], &unicode_tables::double_width[85] }, { 0x1f3f4, { 0x1f3f4, 0x1f3f4 }, nullptr, nullptr }, { 0x1f440, { 0x1f440, 0x1f440 }, nullptr, nullptr }, - { 0x1f51e, { 0x1f4ff, 0x1f53d }, &unicode_tables::double_width[103], &unicode_tables::double_width[104] }, - { 0x1f49f, { 0x1f442, 0x1f4fc }, nullptr, nullptr }, + { 0x1f51e, { 0x1f4ff, 0x1f53d }, nullptr, &unicode_tables::double_width[87] }, { 0x1f54c, { 0x1f54b, 0x1f54e }, nullptr, nullptr }, - { 0x1f5cf, { 1, 0 }, &unicode_tables::double_width[106], &unicode_tables::double_width[109] }, - { 0x1f595, { 0x1f595, 0x1f596 }, &unicode_tables::double_width[107], &unicode_tables::double_width[108] }, + { 0x1f5a4, { 0x1f5a4, 0x1f5a4 }, &unicode_tables::double_width[89], &unicode_tables::double_width[91] }, + { 0x1f595, { 0x1f595, 0x1f596 }, &unicode_tables::double_width[90], nullptr }, { 0x1f57a, { 0x1f57a, 0x1f57a }, nullptr, nullptr }, - { 0x1f5a4, { 0x1f5a4, 0x1f5a4 }, nullptr, nullptr }, - { 0x1f6a2, { 0x1f680, 0x1f6c5 }, &unicode_tables::double_width[110], &unicode_tables::double_width[111] }, - { 0x1f625, { 0x1f5fb, 0x1f64f }, nullptr, nullptr }, - { 0x1f6cc, { 0x1f6cc, 0x1f6cc }, nullptr, nullptr }, - { 0x1f938, { 0x1f933, 0x1f93e }, &unicode_tables::double_width[113], &unicode_tables::double_width[120] }, - { 0x1f803, { 1, 0 }, &unicode_tables::double_width[114], &unicode_tables::double_width[117] }, - { 0x1f6eb, { 0x1f6eb, 0x1f6ec }, &unicode_tables::double_width[115], &unicode_tables::double_width[116] }, + { 0x1f625, { 0x1f5fb, 0x1f64f }, nullptr, &unicode_tables::double_width[92] }, + { 0x1f6a2, { 0x1f680, 0x1f6c5 }, nullptr, nullptr }, + { 0x1f938, { 0x1f933, 0x1f93e }, &unicode_tables::double_width[94], &unicode_tables::double_width[100] }, + { 0x1f6f5, { 0x1f6f4, 0x1f6f6 }, &unicode_tables::double_width[95], &unicode_tables::double_width[97] }, + { 0x1f6eb, { 0x1f6eb, 0x1f6ec }, &unicode_tables::double_width[96], nullptr }, { 0x1f6d1, { 0x1f6d0, 0x1f6d2 }, nullptr, nullptr }, - { 0x1f6f5, { 0x1f6f4, 0x1f6f6 }, nullptr, nullptr }, - { 0x1f923, { 0x1f920, 0x1f927 }, &unicode_tables::double_width[118], &unicode_tables::double_width[119] }, + { 0x1f923, { 0x1f920, 0x1f927 }, &unicode_tables::double_width[98], &unicode_tables::double_width[99] }, { 0x1f917, { 0x1f910, 0x1f91e }, nullptr, nullptr }, { 0x1f930, { 0x1f930, 0x1f930 }, nullptr, nullptr }, - { 0x1f9a8, { 1, 0 }, &unicode_tables::double_width[121], &unicode_tables::double_width[124] }, - { 0x1f957, { 0x1f950, 0x1f95e }, &unicode_tables::double_width[122], &unicode_tables::double_width[123] }, - { 0x1f945, { 0x1f940, 0x1f94b }, nullptr, nullptr }, - { 0x1f988, { 0x1f980, 0x1f991 }, nullptr, nullptr }, - { 0x27ffe, { 0x20000, 0x2fffd }, &unicode_tables::double_width[125], &unicode_tables::double_width[126] }, + { 0x1f988, { 0x1f980, 0x1f991 }, &unicode_tables::double_width[101], &unicode_tables::double_width[103] }, + { 0x1f945, { 0x1f940, 0x1f94b }, nullptr, &unicode_tables::double_width[102] }, + { 0x1f957, { 0x1f950, 0x1f95e }, nullptr, nullptr }, + { 0x27ffe, { 0x20000, 0x2fffd }, &unicode_tables::double_width[104], &unicode_tables::double_width[105] }, { 0x1f9c0, { 0x1f9c0, 0x1f9c0 }, nullptr, nullptr }, { 0x37ffe, { 0x30000, 0x3fffd }, nullptr, nullptr }, }; diff --git a/scripts/unicode.py b/scripts/unicode.py index 28d3f20..6bead28 100755 --- a/scripts/unicode.py +++ b/scripts/unicode.py @@ -2,6 +2,7 @@ from collections import deque import sys +import random import urllib.request @@ -102,10 +103,18 @@ def build_tree(intervals, start=0, end=None, base=0): intv = intervals[middle] center = intv.center else: - left_half = (start, middle) - right_half = (middle, end) - intv = None - center = (intervals[middle - 1].end + intervals[middle].start) // 2 + lr = random.choice((True, False)) + + if lr: + left_half = (start, middle - 1) + right_half = (middle, end) + intv = intervals[middle - 1] + else: + left_half = (start, middle) + right_half = (middle + 1, end) + intv = intervals[middle] + + center = intv.center left_subtree_base = base + 1 left_subtree = build_tree( @@ -244,6 +253,8 @@ def parse_eaw_entry(entry): if __name__ == '__main__': + random.seed("cafnwab4gjc0runfyansmfn890mcta48wra4wcaw4yo98ujaucpaècaàp4c") + zero_width = [Interval(UC_START, UC_END)] double_width = [Interval(UC_START, UC_END)]