source: icGREP/icgrep-devel/icgrep/UCD/CaseFolding.h @ 5787

Last change on this file since 5787 was 5782, checked in by nmedfort, 19 months ago

Initial check-in of LookAhead? support; modified LineBreakKernel? to compute CR+LF using LookAhead?(1) + misc. fixes.

File size: 42.0 KB
Line 
1#ifndef CASEFOLDING_H
2#define CASEFOLDING_H
3/*
4 *  Copyright (c) 2017 International Characters, Inc.
5 *  This software is licensed to the public under the Open Software License 3.0.
6 *  icgrep is a trademark of International Characters, Inc.
7 *
8 *  This file is generated by casefold.py - manual edits may be lost.
9 */
10
11#include "PropertyAliases.h"
12#include "PropertyObjects.h"
13#include "PropertyValueAliases.h"
14#include "unicode_set.h"
15#include <vector>
16
17struct FoldEntry {
18    const UCD::codepoint_t range_lo;
19    const int fold_offset;
20    const std::vector<UCD::interval_t> fold_pairs;
21};
22
23
24UCD::UnicodeSet caseInsensitize(const UCD::UnicodeSet & cc);
25
26const int foldTableSize = 246;
27
28const FoldEntry foldTable[foldTableSize] = {
29  {0x0, 0, {}},
30  {0x41, 32, {{0x4b, 0x212a}, {0x53, 0x17f}}},
31  {0x5b, 0, {}},
32  {0x61, -32, {{0x6b, 0x212a}, {0x73, 0x17f}}},
33  {0x7b, 0, {{0xb5, 0x3bc}, {0xb5, 0x39c}}},
34  {0xc0, 32, {{0xc5, 0x212b}}},
35  {0xd7, 0, {}},
36  {0xd8, 32, {}},
37  {0xdf, 0, {{0xdf, 0x1e9e}}},
38  {0xe0, -32, {{0xe5, 0x212b}}},
39  {0xf7, 0, {}},
40  {0xf8, -32, {}},
41  {0xff, 0, {{0xff, 0x178}}},
42  {0x100, 1, {}},
43  {0x130, 0, {}},
44  {0x132, 1, {}},
45  {0x138, 0, {}},
46  {0x139, 1, {}},
47  {0x149, 0, {}},
48  {0x14a, 1, {}},
49  {0x178, 0, {{0x178, 0xff}}},
50  {0x179, 1, {}},
51  {0x17f, 0, {{0x17f, 0x73}, {0x17f, 0x53}, {0x180, 0x243}, {0x181, 0x253}}},
52  {0x182, 1, {}},
53  {0x186, 0, {{0x186, 0x254}}},
54  {0x187, 1, {}},
55  {0x189, 205, {}},
56  {0x18b, 1, {}},
57  {0x18d, 0, {{0x18e, 0x1dd}, {0x18f, 0x259}, {0x190, 0x25b}}},
58  {0x191, 1, {}},
59  {0x193, 0, {{0x193, 0x260}, {0x194, 0x263}, {0x195, 0x1f6}, {0x196, 0x269},
60    {0x197, 0x268}}},
61  {0x198, 1, {}},
62  {0x19a, 0, {{0x19a, 0x23d}, {0x19c, 0x26f}, {0x19d, 0x272}, {0x19e, 0x220},
63    {0x19f, 0x275}}},
64  {0x1a0, 1, {}},
65  {0x1a6, 0, {{0x1a6, 0x280}}},
66  {0x1a7, 1, {}},
67  {0x1a9, 0, {{0x1a9, 0x283}}},
68  {0x1ac, 1, {}},
69  {0x1ae, 0, {{0x1ae, 0x288}}},
70  {0x1af, 1, {}},
71  {0x1b1, 217, {}},
72  {0x1b3, 1, {}},
73  {0x1b7, 0, {{0x1b7, 0x292}}},
74  {0x1b8, 1, {}},
75  {0x1ba, 0, {}},
76  {0x1bc, 1, {}},
77  {0x1be, 0, {{0x1bf, 0x1f7}}},
78  {0x1c4, 1, {{0x1c4, 0x1c6}}},
79  {0x1c6, 0, {}},
80  {0x1c5, 1, {{0x1c6, 0x1c4}, {0x1c7, 0x1c9}}},
81  {0x1c9, 0, {}},
82  {0x1c8, 1, {{0x1c9, 0x1c7}, {0x1ca, 0x1cc}}},
83  {0x1cc, 0, {}},
84  {0x1cb, 1, {{0x1cc, 0x1ca}}},
85  {0x1dd, 0, {{0x1dd, 0x18e}}},
86  {0x1de, 1, {}},
87  {0x1f0, 0, {}},
88  {0x1f1, 1, {{0x1f1, 0x1f3}}},
89  {0x1f3, 0, {}},
90  {0x1f2, 1, {{0x1f3, 0x1f1}}},
91  {0x1f6, 0, {{0x1f6, 0x195}, {0x1f7, 0x1bf}}},
92  {0x1f8, 1, {}},
93  {0x220, 0, {{0x220, 0x19e}}},
94  {0x222, 1, {}},
95  {0x234, 0, {{0x23a, 0x2c65}}},
96  {0x23b, 1, {}},
97  {0x23d, 0, {{0x23d, 0x19a}, {0x23e, 0x2c66}}},
98  {0x23f, 10815, {}},
99  {0x241, 1, {}},
100  {0x243, 0, {{0x243, 0x180}, {0x244, 0x289}, {0x245, 0x28c}}},
101  {0x246, 1, {}},
102  {0x250, 0, {{0x250, 0x2c6f}, {0x251, 0x2c6d}, {0x252, 0x2c70}, {0x253, 0x181},
103    {0x254, 0x186}}},
104  {0x256, -205, {}},
105  {0x258, 0, {{0x259, 0x18f}, {0x25b, 0x190}, {0x25c, 0xa7ab}, {0x260, 0x193},
106    {0x261, 0xa7ac}, {0x263, 0x194}, {0x265, 0xa78d}, {0x266, 0xa7aa},
107    {0x268, 0x197}, {0x269, 0x196}, {0x26a, 0xa7ae}, {0x26b, 0x2c62},
108    {0x26c, 0xa7ad}, {0x26f, 0x19c}, {0x271, 0x2c6e}, {0x272, 0x19d},
109    {0x275, 0x19f}, {0x27d, 0x2c64}, {0x280, 0x1a6}, {0x283, 0x1a9},
110    {0x287, 0xa7b1}, {0x288, 0x1ae}, {0x289, 0x244}}},
111  {0x28a, -217, {}},
112  {0x28c, 0, {{0x28c, 0x245}, {0x292, 0x1b7}, {0x29d, 0xa7b2}, {0x29e, 0xa7b0},
113    {0x345, 0x3b9}, {0x345, 0x399}, {0x345, 0x1fbe}}},
114  {0x370, 1, {}},
115  {0x374, 0, {}},
116  {0x376, 1, {}},
117  {0x378, 0, {}},
118  {0x37b, 130, {}},
119  {0x37e, 0, {{0x37f, 0x3f3}, {0x386, 0x3ac}}},
120  {0x388, 37, {}},
121  {0x38b, 0, {{0x38c, 0x3cc}}},
122  {0x38e, 63, {}},
123  {0x390, 0, {}},
124  {0x391, 32, {{0x392, 0x3d0}, {0x395, 0x3f5}, {0x398, 0x3d1}, {0x398, 0x3f4},
125    {0x399, 0x345}, {0x399, 0x1fbe}, {0x39a, 0x3f0}, {0x39c, 0xb5},
126    {0x3a0, 0x3d6}, {0x3a1, 0x3f1}}},
127  {0x3a2, 0, {}},
128  {0x3a3, 32, {{0x3a3, 0x3c2}, {0x3a6, 0x3d5}, {0x3a9, 0x2126}}},
129  {0x3ac, 0, {{0x3ac, 0x386}}},
130  {0x3ad, -37, {}},
131  {0x3b0, 0, {}},
132  {0x3b1, -32, {{0x3b2, 0x3d0}, {0x3b5, 0x3f5}, {0x3b8, 0x3d1}, {0x3b8, 0x3f4},
133    {0x3b9, 0x345}, {0x3b9, 0x1fbe}, {0x3ba, 0x3f0}, {0x3bc, 0xb5},
134    {0x3c0, 0x3d6}, {0x3c1, 0x3f1}}},
135  {0x3c2, 1, {{0x3c2, 0x3a3}}},
136  {0x3c4, 0, {}},
137  {0x3c3, -32, {{0x3c6, 0x3d5}, {0x3c9, 0x2126}}},
138  {0x3cc, 0, {{0x3cc, 0x38c}}},
139  {0x3cd, -63, {}},
140  {0x3cf, 0, {{0x3cf, 0x3d7}, {0x3d0, 0x3b2}, {0x3d0, 0x392}, {0x3d1, 0x3b8},
141    {0x3d1, 0x398}, {0x3d1, 0x3f4}, {0x3d5, 0x3c6}, {0x3d5, 0x3a6},
142    {0x3d6, 0x3c0}, {0x3d6, 0x3a0}, {0x3d7, 0x3cf}}},
143  {0x3d8, 1, {}},
144  {0x3f0, 0, {{0x3f0, 0x3ba}, {0x3f0, 0x39a}, {0x3f1, 0x3c1}, {0x3f1, 0x3a1},
145    {0x3f2, 0x3f9}, {0x3f3, 0x37f}, {0x3f4, 0x3b8}, {0x3f4, 0x398},
146    {0x3f4, 0x3d1}, {0x3f5, 0x3b5}, {0x3f5, 0x395}}},
147  {0x3f7, 1, {}},
148  {0x3f9, 0, {{0x3f9, 0x3f2}}},
149  {0x3fa, 1, {}},
150  {0x3fc, 0, {}},
151  {0x3fd, -130, {}},
152  {0x400, 80, {}},
153  {0x410, 0, {{0x412, 0x1c80}, {0x414, 0x1c81}, {0x41e, 0x1c82}}},
154  {0x421, 6242, {{0x422, 0x1c85}}},
155  {0x423, 0, {{0x42a, 0x1c86}, {0x432, 0x1c80}, {0x434, 0x1c81}, {0x43e, 0x1c82}}},
156  {0x441, 6210, {{0x442, 0x1c85}}},
157  {0x443, 0, {}},
158  {0x410, 32, {{0x412, 0x1c80}, {0x414, 0x1c81}, {0x41e, 0x1c82}, {0x422, 0x1c85},
159    {0x42a, 0x1c86}, {0x432, 0x1c80}, {0x434, 0x1c81}, {0x43e, 0x1c82},
160    {0x442, 0x1c85}, {0x44a, 0x1c86}}},
161  {0x450, -80, {}},
162  {0x460, 1, {{0x462, 0x1c87}, {0x463, 0x1c87}}},
163  {0x482, 0, {}},
164  {0x48a, 1, {}},
165  {0x4c0, 0, {{0x4c0, 0x4cf}}},
166  {0x4c1, 1, {}},
167  {0x4cf, 0, {{0x4cf, 0x4c0}}},
168  {0x4d0, 1, {}},
169  {0x530, 0, {}},
170  {0x531, 48, {}},
171  {0x557, 0, {}},
172  {0x561, -48, {}},
173  {0x587, 0, {}},
174  {0x10a0, 7264, {}},
175  {0x10c6, 0, {{0x10c7, 0x2d27}, {0x10cd, 0x2d2d}}},
176  {0x13a0, 38864, {}},
177  {0x13f0, 8, {}},
178  {0x13f6, 0, {}},
179  {0x13f8, -8, {}},
180  {0x13fe, 0, {{0x1c80, 0x432}, {0x1c80, 0x412}, {0x1c81, 0x434}, {0x1c81, 0x414},
181    {0x1c82, 0x43e}, {0x1c82, 0x41e}}},
182  {0x1c83, -6210, {}},
183  {0x1c85, 0, {}},
184  {0x1c83, -6242, {}},
185  {0x1c85, 0, {}},
186  {0x1c84, 1, {{0x1c85, 0x442}, {0x1c85, 0x422}}},
187  {0x1c86, 0, {{0x1c86, 0x44a}, {0x1c86, 0x42a}, {0x1c87, 0x463}, {0x1c87, 0x462},
188    {0x1c88, 0xa64b}, {0x1c88, 0xa64a}, {0x1d79, 0xa77d}, {0x1d7d, 0x2c63}}},
189  {0x1e00, 1, {{0x1e60, 0x1e9b}, {0x1e61, 0x1e9b}}},
190  {0x1e96, 0, {{0x1e9b, 0x1e61}, {0x1e9b, 0x1e60}, {0x1e9e, 0xdf}}},
191  {0x1ea0, 1, {}},
192  {0x1f00, 8, {}},
193  {0x1f16, 0, {}},
194  {0x1f18, -8, {}},
195  {0x1f1e, 0, {}},
196  {0x1f20, 8, {}},
197  {0x1f46, 0, {}},
198  {0x1f48, -8, {}},
199  {0x1f4e, 0, {{0x1f51, 0x1f59}, {0x1f53, 0x1f5b}, {0x1f55, 0x1f5d}, {0x1f57, 0x1f5f},
200    {0x1f59, 0x1f51}, {0x1f5b, 0x1f53}, {0x1f5d, 0x1f55}, {0x1f5f, 0x1f57}}},
201  {0x1f60, 8, {}},
202  {0x1f70, 74, {}},
203  {0x1f72, 86, {}},
204  {0x1f76, 100, {}},
205  {0x1f78, 128, {}},
206  {0x1f7a, 112, {}},
207  {0x1f7c, 126, {}},
208  {0x1f7e, 0, {}},
209  {0x1f80, 8, {}},
210  {0x1fb2, 0, {{0x1fb3, 0x1fbc}}},
211  {0x1fb8, -8, {}},
212  {0x1fba, -74, {}},
213  {0x1fbc, 0, {{0x1fbc, 0x1fb3}, {0x1fbe, 0x3b9}, {0x1fbe, 0x345}, {0x1fbe, 0x399},
214    {0x1fc3, 0x1fcc}}},
215  {0x1fc8, -86, {}},
216  {0x1fcc, 0, {{0x1fcc, 0x1fc3}}},
217  {0x1fd0, 8, {}},
218  {0x1fd2, 0, {}},
219  {0x1fd8, -8, {}},
220  {0x1fda, -100, {}},
221  {0x1fdc, 0, {}},
222  {0x1fe0, 8, {}},
223  {0x1fe2, 0, {{0x1fe5, 0x1fec}}},
224  {0x1fe8, -8, {}},
225  {0x1fea, -112, {}},
226  {0x1fec, 0, {{0x1fec, 0x1fe5}, {0x1ff3, 0x1ffc}}},
227  {0x1ff8, -128, {}},
228  {0x1ffa, -126, {}},
229  {0x1ffc, 0, {{0x1ffc, 0x1ff3}, {0x2126, 0x3c9}, {0x2126, 0x3a9}, {0x212a, 0x6b},
230    {0x212a, 0x4b}, {0x212b, 0xe5}, {0x212b, 0xc5}, {0x2132, 0x214e},
231    {0x214e, 0x2132}}},
232  {0x2160, 16, {}},
233  {0x2180, 0, {}},
234  {0x2183, 1, {}},
235  {0x2185, 0, {}},
236  {0x24b6, 26, {}},
237  {0x24ea, 0, {}},
238  {0x2c00, 48, {}},
239  {0x2c2f, 0, {}},
240  {0x2c30, -48, {}},
241  {0x2c5f, 0, {}},
242  {0x2c60, 1, {}},
243  {0x2c62, 0, {{0x2c62, 0x26b}, {0x2c63, 0x1d7d}, {0x2c64, 0x27d}, {0x2c65, 0x23a},
244    {0x2c66, 0x23e}}},
245  {0x2c67, 1, {}},
246  {0x2c6d, 0, {{0x2c6d, 0x251}, {0x2c6e, 0x271}, {0x2c6f, 0x250}, {0x2c70, 0x252}}},
247  {0x2c72, 1, {}},
248  {0x2c74, 0, {}},
249  {0x2c75, 1, {}},
250  {0x2c77, 0, {}},
251  {0x2c7e, -10815, {}},
252  {0x2c80, 1, {}},
253  {0x2ce4, 0, {}},
254  {0x2ceb, 1, {}},
255  {0x2cef, 0, {}},
256  {0x2cf2, 1, {}},
257  {0x2cf4, 0, {}},
258  {0x2d00, -7264, {}},
259  {0x2d26, 0, {{0x2d27, 0x10c7}, {0x2d2d, 0x10cd}}},
260  {0xa640, 1, {{0xa64a, 0x1c88}, {0xa64b, 0x1c88}}},
261  {0xa66e, 0, {}},
262  {0xa680, 1, {}},
263  {0xa69c, 0, {}},
264  {0xa722, 1, {}},
265  {0xa730, 0, {}},
266  {0xa732, 1, {}},
267  {0xa770, 0, {}},
268  {0xa779, 1, {}},
269  {0xa77d, 0, {{0xa77d, 0x1d79}}},
270  {0xa77e, 1, {}},
271  {0xa788, 0, {}},
272  {0xa78b, 1, {}},
273  {0xa78d, 0, {{0xa78d, 0x265}}},
274  {0xa790, 1, {}},
275  {0xa794, 0, {}},
276  {0xa796, 1, {}},
277  {0xa7aa, 0, {{0xa7aa, 0x266}, {0xa7ab, 0x25c}, {0xa7ac, 0x261}, {0xa7ad, 0x26c},
278    {0xa7ae, 0x26a}, {0xa7b0, 0x29e}, {0xa7b1, 0x287}, {0xa7b2, 0x29d},
279    {0xa7b3, 0xab53}}},
280  {0xa7b4, 1, {}},
281  {0xa7b8, 0, {{0xab53, 0xa7b3}}},
282  {0xab70, -38864, {}},
283  {0xabc0, 0, {}},
284  {0xff21, 32, {}},
285  {0xff3b, 0, {}},
286  {0xff41, -32, {}},
287  {0xff5b, 0, {}},
288  {0x10400, 40, {}},
289  {0x10450, 0, {}},
290  {0x104b0, 40, {}},
291  {0x104d4, 0, {}},
292  {0x104d8, -40, {}},
293  {0x104fc, 0, {}},
294  {0x10c80, 64, {}},
295  {0x10cb3, 0, {}},
296  {0x10cc0, -64, {}},
297  {0x10cf3, 0, {}},
298  {0x118a0, 32, {}},
299  {0x118e0, 0, {}},
300  {0x1e900, 34, {}},
301  {0x1e944, 0, {}},
302  {0x110000, 0, {}}};
303namespace UCD {
304    namespace SCF_ns {
305        /** Code Point Ranges for scf mapping to <none>
306        **/
307       
308       
309        namespace {
310        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
311        {Empty, 34816}};
312        const static UnicodeSet::bitquad_t * const __null_codepoint_set_quads = nullptr;
313        }
314
315        const static UnicodeSet null_codepoint_set{const_cast<UnicodeSet::run_t *>(__null_codepoint_set_runs), 1, 0, const_cast<UnicodeSet::bitquad_t *>(__null_codepoint_set_quads), 0, 0};
316
317
318
319        /** Code Point Ranges for scf mapping to <codepoint>
320        [0000, 0040], [005b, 00b4], [00b6, 00bf], [00d7, 00d7],
321        [00df, 00ff], [0101, 0101], [0103, 0103], [0105, 0105],
322        [0107, 0107], [0109, 0109], [010b, 010b], [010d, 010d],
323        [010f, 010f], [0111, 0111], [0113, 0113], [0115, 0115],
324        [0117, 0117], [0119, 0119], [011b, 011b], [011d, 011d],
325        [011f, 011f], [0121, 0121], [0123, 0123], [0125, 0125],
326        [0127, 0127], [0129, 0129], [012b, 012b], [012d, 012d],
327        [012f, 0131], [0133, 0133], [0135, 0135], [0137, 0138],
328        [013a, 013a], [013c, 013c], [013e, 013e], [0140, 0140],
329        [0142, 0142], [0144, 0144], [0146, 0146], [0148, 0149],
330        [014b, 014b], [014d, 014d], [014f, 014f], [0151, 0151],
331        [0153, 0153], [0155, 0155], [0157, 0157], [0159, 0159],
332        [015b, 015b], [015d, 015d], [015f, 015f], [0161, 0161],
333        [0163, 0163], [0165, 0165], [0167, 0167], [0169, 0169],
334        [016b, 016b], [016d, 016d], [016f, 016f], [0171, 0171],
335        [0173, 0173], [0175, 0175], [0177, 0177], [017a, 017a],
336        [017c, 017c], [017e, 017e], [0180, 0180], [0183, 0183],
337        [0185, 0185], [0188, 0188], [018c, 018d], [0192, 0192],
338        [0195, 0195], [0199, 019b], [019e, 019e], [01a1, 01a1],
339        [01a3, 01a3], [01a5, 01a5], [01a8, 01a8], [01aa, 01ab],
340        [01ad, 01ad], [01b0, 01b0], [01b4, 01b4], [01b6, 01b6],
341        [01b9, 01bb], [01bd, 01c3], [01c6, 01c6], [01c9, 01c9],
342        [01cc, 01cc], [01ce, 01ce], [01d0, 01d0], [01d2, 01d2],
343        [01d4, 01d4], [01d6, 01d6], [01d8, 01d8], [01da, 01da],
344        [01dc, 01dd], [01df, 01df], [01e1, 01e1], [01e3, 01e3],
345        [01e5, 01e5], [01e7, 01e7], [01e9, 01e9], [01eb, 01eb],
346        [01ed, 01ed], [01ef, 01f0], [01f3, 01f3], [01f5, 01f5],
347        [01f9, 01f9], [01fb, 01fb], [01fd, 01fd], [01ff, 01ff],
348        [0201, 0201], [0203, 0203], [0205, 0205], [0207, 0207],
349        [0209, 0209], [020b, 020b], [020d, 020d], [020f, 020f],
350        [0211, 0211], [0213, 0213], [0215, 0215], [0217, 0217],
351        [0219, 0219], [021b, 021b], [021d, 021d], [021f, 021f],
352        [0221, 0221], [0223, 0223], [0225, 0225], [0227, 0227],
353        [0229, 0229], [022b, 022b], [022d, 022d], [022f, 022f],
354        [0231, 0231], [0233, 0239], [023c, 023c], [023f, 0240],
355        [0242, 0242], [0247, 0247], [0249, 0249], [024b, 024b],
356        [024d, 024d], [024f, 0344], [0346, 036f], [0371, 0371],
357        [0373, 0375], [0377, 037e], [0380, 0385], [0387, 0387],
358        [038b, 038b], [038d, 038d], [0390, 0390], [03a2, 03a2],
359        [03ac, 03c1], [03c3, 03ce], [03d2, 03d4], [03d7, 03d7],
360        [03d9, 03d9], [03db, 03db], [03dd, 03dd], [03df, 03df],
361        [03e1, 03e1], [03e3, 03e3], [03e5, 03e5], [03e7, 03e7],
362        [03e9, 03e9], [03eb, 03eb], [03ed, 03ed], [03ef, 03ef],
363        [03f2, 03f3], [03f6, 03f6], [03f8, 03f8], [03fb, 03fc],
364        [0430, 045f], [0461, 0461], [0463, 0463], [0465, 0465],
365        [0467, 0467], [0469, 0469], [046b, 046b], [046d, 046d],
366        [046f, 046f], [0471, 0471], [0473, 0473], [0475, 0475],
367        [0477, 0477], [0479, 0479], [047b, 047b], [047d, 047d],
368        [047f, 047f], [0481, 0489], [048b, 048b], [048d, 048d],
369        [048f, 048f], [0491, 0491], [0493, 0493], [0495, 0495],
370        [0497, 0497], [0499, 0499], [049b, 049b], [049d, 049d],
371        [049f, 049f], [04a1, 04a1], [04a3, 04a3], [04a5, 04a5],
372        [04a7, 04a7], [04a9, 04a9], [04ab, 04ab], [04ad, 04ad],
373        [04af, 04af], [04b1, 04b1], [04b3, 04b3], [04b5, 04b5],
374        [04b7, 04b7], [04b9, 04b9], [04bb, 04bb], [04bd, 04bd],
375        [04bf, 04bf], [04c2, 04c2], [04c4, 04c4], [04c6, 04c6],
376        [04c8, 04c8], [04ca, 04ca], [04cc, 04cc], [04ce, 04cf],
377        [04d1, 04d1], [04d3, 04d3], [04d5, 04d5], [04d7, 04d7],
378        [04d9, 04d9], [04db, 04db], [04dd, 04dd], [04df, 04df],
379        [04e1, 04e1], [04e3, 04e3], [04e5, 04e5], [04e7, 04e7],
380        [04e9, 04e9], [04eb, 04eb], [04ed, 04ed], [04ef, 04ef],
381        [04f1, 04f1], [04f3, 04f3], [04f5, 04f5], [04f7, 04f7],
382        [04f9, 04f9], [04fb, 04fb], [04fd, 04fd], [04ff, 04ff],
383        [0501, 0501], [0503, 0503], [0505, 0505], [0507, 0507],
384        [0509, 0509], [050b, 050b], [050d, 050d], [050f, 050f],
385        [0511, 0511], [0513, 0513], [0515, 0515], [0517, 0517],
386        [0519, 0519], [051b, 051b], [051d, 051d], [051f, 051f],
387        [0521, 0521], [0523, 0523], [0525, 0525], [0527, 0527],
388        [0529, 0529], [052b, 052b], [052d, 052d], [052f, 0530],
389        [0557, 109f], [10c6, 10c6], [10c8, 10cc], [10ce, 13f7],
390        [13fe, 1c7f], [1c89, 1dff], [1e01, 1e01], [1e03, 1e03],
391        [1e05, 1e05], [1e07, 1e07], [1e09, 1e09], [1e0b, 1e0b],
392        [1e0d, 1e0d], [1e0f, 1e0f], [1e11, 1e11], [1e13, 1e13],
393        [1e15, 1e15], [1e17, 1e17], [1e19, 1e19], [1e1b, 1e1b],
394        [1e1d, 1e1d], [1e1f, 1e1f], [1e21, 1e21], [1e23, 1e23],
395        [1e25, 1e25], [1e27, 1e27], [1e29, 1e29], [1e2b, 1e2b],
396        [1e2d, 1e2d], [1e2f, 1e2f], [1e31, 1e31], [1e33, 1e33],
397        [1e35, 1e35], [1e37, 1e37], [1e39, 1e39], [1e3b, 1e3b],
398        [1e3d, 1e3d], [1e3f, 1e3f], [1e41, 1e41], [1e43, 1e43],
399        [1e45, 1e45], [1e47, 1e47], [1e49, 1e49], [1e4b, 1e4b],
400        [1e4d, 1e4d], [1e4f, 1e4f], [1e51, 1e51], [1e53, 1e53],
401        [1e55, 1e55], [1e57, 1e57], [1e59, 1e59], [1e5b, 1e5b],
402        [1e5d, 1e5d], [1e5f, 1e5f], [1e61, 1e61], [1e63, 1e63],
403        [1e65, 1e65], [1e67, 1e67], [1e69, 1e69], [1e6b, 1e6b],
404        [1e6d, 1e6d], [1e6f, 1e6f], [1e71, 1e71], [1e73, 1e73],
405        [1e75, 1e75], [1e77, 1e77], [1e79, 1e79], [1e7b, 1e7b],
406        [1e7d, 1e7d], [1e7f, 1e7f], [1e81, 1e81], [1e83, 1e83],
407        [1e85, 1e85], [1e87, 1e87], [1e89, 1e89], [1e8b, 1e8b],
408        [1e8d, 1e8d], [1e8f, 1e8f], [1e91, 1e91], [1e93, 1e93],
409        [1e95, 1e9a], [1e9c, 1e9d], [1e9f, 1e9f], [1ea1, 1ea1],
410        [1ea3, 1ea3], [1ea5, 1ea5], [1ea7, 1ea7], [1ea9, 1ea9],
411        [1eab, 1eab], [1ead, 1ead], [1eaf, 1eaf], [1eb1, 1eb1],
412        [1eb3, 1eb3], [1eb5, 1eb5], [1eb7, 1eb7], [1eb9, 1eb9],
413        [1ebb, 1ebb], [1ebd, 1ebd], [1ebf, 1ebf], [1ec1, 1ec1],
414        [1ec3, 1ec3], [1ec5, 1ec5], [1ec7, 1ec7], [1ec9, 1ec9],
415        [1ecb, 1ecb], [1ecd, 1ecd], [1ecf, 1ecf], [1ed1, 1ed1],
416        [1ed3, 1ed3], [1ed5, 1ed5], [1ed7, 1ed7], [1ed9, 1ed9],
417        [1edb, 1edb], [1edd, 1edd], [1edf, 1edf], [1ee1, 1ee1],
418        [1ee3, 1ee3], [1ee5, 1ee5], [1ee7, 1ee7], [1ee9, 1ee9],
419        [1eeb, 1eeb], [1eed, 1eed], [1eef, 1eef], [1ef1, 1ef1],
420        [1ef3, 1ef3], [1ef5, 1ef5], [1ef7, 1ef7], [1ef9, 1ef9],
421        [1efb, 1efb], [1efd, 1efd], [1eff, 1f07], [1f10, 1f17],
422        [1f1e, 1f27], [1f30, 1f37], [1f40, 1f47], [1f4e, 1f58],
423        [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e], [1f60, 1f67],
424        [1f70, 1f87], [1f90, 1f97], [1fa0, 1fa7], [1fb0, 1fb7],
425        [1fbd, 1fbd], [1fbf, 1fc7], [1fcd, 1fd7], [1fdc, 1fe7],
426        [1fed, 1ff7], [1ffd, 2125], [2127, 2129], [212c, 2131],
427        [2133, 215f], [2170, 2182], [2184, 24b5], [24d0, 2bff],
428        [2c2f, 2c5f], [2c61, 2c61], [2c65, 2c66], [2c68, 2c68],
429        [2c6a, 2c6a], [2c6c, 2c6c], [2c71, 2c71], [2c73, 2c74],
430        [2c76, 2c7d], [2c81, 2c81], [2c83, 2c83], [2c85, 2c85],
431        [2c87, 2c87], [2c89, 2c89], [2c8b, 2c8b], [2c8d, 2c8d],
432        [2c8f, 2c8f], [2c91, 2c91], [2c93, 2c93], [2c95, 2c95],
433        [2c97, 2c97], [2c99, 2c99], [2c9b, 2c9b], [2c9d, 2c9d],
434        [2c9f, 2c9f], [2ca1, 2ca1], [2ca3, 2ca3], [2ca5, 2ca5],
435        [2ca7, 2ca7], [2ca9, 2ca9], [2cab, 2cab], [2cad, 2cad],
436        [2caf, 2caf], [2cb1, 2cb1], [2cb3, 2cb3], [2cb5, 2cb5],
437        [2cb7, 2cb7], [2cb9, 2cb9], [2cbb, 2cbb], [2cbd, 2cbd],
438        [2cbf, 2cbf], [2cc1, 2cc1], [2cc3, 2cc3], [2cc5, 2cc5],
439        [2cc7, 2cc7], [2cc9, 2cc9], [2ccb, 2ccb], [2ccd, 2ccd],
440        [2ccf, 2ccf], [2cd1, 2cd1], [2cd3, 2cd3], [2cd5, 2cd5],
441        [2cd7, 2cd7], [2cd9, 2cd9], [2cdb, 2cdb], [2cdd, 2cdd],
442        [2cdf, 2cdf], [2ce1, 2ce1], [2ce3, 2cea], [2cec, 2cec],
443        [2cee, 2cf1], [2cf3, a63f], [a641, a641], [a643, a643],
444        [a645, a645], [a647, a647], [a649, a649], [a64b, a64b],
445        [a64d, a64d], [a64f, a64f], [a651, a651], [a653, a653],
446        [a655, a655], [a657, a657], [a659, a659], [a65b, a65b],
447        [a65d, a65d], [a65f, a65f], [a661, a661], [a663, a663],
448        [a665, a665], [a667, a667], [a669, a669], [a66b, a66b],
449        [a66d, a67f], [a681, a681], [a683, a683], [a685, a685],
450        [a687, a687], [a689, a689], [a68b, a68b], [a68d, a68d],
451        [a68f, a68f], [a691, a691], [a693, a693], [a695, a695],
452        [a697, a697], [a699, a699], [a69b, a721], [a723, a723],
453        [a725, a725], [a727, a727], [a729, a729], [a72b, a72b],
454        [a72d, a72d], [a72f, a731], [a733, a733], [a735, a735],
455        [a737, a737], [a739, a739], [a73b, a73b], [a73d, a73d],
456        [a73f, a73f], [a741, a741], [a743, a743], [a745, a745],
457        [a747, a747], [a749, a749], [a74b, a74b], [a74d, a74d],
458        [a74f, a74f], [a751, a751], [a753, a753], [a755, a755],
459        [a757, a757], [a759, a759], [a75b, a75b], [a75d, a75d],
460        [a75f, a75f], [a761, a761], [a763, a763], [a765, a765],
461        [a767, a767], [a769, a769], [a76b, a76b], [a76d, a76d],
462        [a76f, a778], [a77a, a77a], [a77c, a77c], [a77f, a77f],
463        [a781, a781], [a783, a783], [a785, a785], [a787, a78a],
464        [a78c, a78c], [a78e, a78f], [a791, a791], [a793, a795],
465        [a797, a797], [a799, a799], [a79b, a79b], [a79d, a79d],
466        [a79f, a79f], [a7a1, a7a1], [a7a3, a7a3], [a7a5, a7a5],
467        [a7a7, a7a7], [a7a9, a7a9], [a7af, a7af], [a7b5, a7b5],
468        [a7b7, ab6f], [abc0, ff20], [ff3b, 103ff], [10428, 104af],
469        [104d4, 10c7f], [10cb3, 1189f], [118c0, 1e8ff], [1e922, 10ffff]**/
470       
471       
472        namespace {
473        const static UnicodeSet::run_t __reflexive_set_runs[] = {
474        {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
475        {Mixed, 11}, {Full, 7}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
476        {Full, 1}, {Mixed, 8}, {Full, 90}, {Empty, 1}, {Mixed, 1},
477        {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 1}, {Full, 11},
478        {Mixed, 16}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
479        {Full, 24}, {Mixed, 2}, {Full, 57}, {Empty, 1}, {Mixed, 1},
480        {Full, 1}, {Mixed, 5}, {Full, 970}, {Mixed, 3}, {Full, 4},
481        {Mixed, 5}, {Full, 29}, {Mixed, 1}, {Empty, 2}, {Full, 667},
482        {Mixed, 1}, {Full, 38}, {Empty, 1}, {Mixed, 1}, {Full, 3},
483        {Mixed, 2}, {Full, 61}, {Empty, 1}, {Mixed, 1}, {Full, 95},
484        {Empty, 1}, {Full, 1666}, {Empty, 1}, {Mixed, 1}, {Full, 30902}};
485        const static UnicodeSet::bitquad_t  __reflexive_set_quads[] = {
486        0xf8000001, 0xffdfffff, 0x80800000, 0xaaaaaaaa, 0x55abaaaa,
487        0xaaaaab55, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555524f,
488        0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xffffffdf,
489        0x7fbaffff, 0x000128bf, 0xfffff004, 0xaa9c7ffb, 0x194caaaa,
490        0xffff0000, 0xaaaaaaaa, 0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554,
491        0xaaaaaaaa, 0xaaaaaaaa, 0x0001aaaa, 0xff800000, 0xffffdf40,
492        0xc0ffffff, 0xfffffe00, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
493        0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
494        0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff, 0x00ff00ff,
495        0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf, 0xffff0000,
496        0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000, 0x3fda1562,
497        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa, 0xaaaaaaaa,
498        0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa, 0x95ffaaaa,
499        0xaabad7aa, 0xffa082aa, 0x0000ffff, 0xf8000001, 0xffffff00,
500        0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc};
501        }
502
503        const static UnicodeSet reflexive_set{const_cast<UnicodeSet::run_t *>(__reflexive_set_runs), 55, 0, const_cast<UnicodeSet::bitquad_t *>(__reflexive_set_quads), 74, 0};
504
505
506
507        const unsigned buffer_length = 4958;
508        const static char string_buffer LLVM_ALIGNAS(32) [5120] = u8R"__(a
509b
510c
511d
512e
513f
514g
515h
516i
517j
518k
519l
520m
521n
522o
523p
524q
525r
526s
527t
528u
529v
530w
531x
532y
533z
534Ό
535à
536á
537â
538ã
539À
540Ã¥
541Ê
542ç
543Ú
544é
545ê
546ë
547ì
548í
549î
550ï
551ð
552ñ
553ò
554ó
555ÃŽ
556õ
557ö
558Þ
559ù
560ú
561û
562Ì
563Ü
564ß
565ā
566ă
567ą
568ć
569ĉ
570ċ
571č
572ď
573đ
574ē
575ĕ
576ė
577ę
578ě
579ĝ
580ğ
581Ä¡
582Ä£
583Ä¥
584ħ
585Ä©
586Ä«
587Ä­
588į
589ij
590ĵ
591Ä·
592ĺ
593Č
594ÄŸ
595ŀ
596ł
597ń
598ņ
599ň
600ŋ
601ō
602ŏ
603ő
604œ
605ŕ
606ŗ
607ř
608ś
609ŝ
610ş
611Å¡
612Å£
613Å¥
614ŧ
615Å©
616Å«
617Å­
618ů
619ű
620ų
621ŵ
622Å·
623ÿ
624ź
625Ō
626ÅŸ
627s
628ɓ
629ƃ
630ƅ
631ɔ
632ƈ
633ɖ
634ɗ
635ƌ
636ǝ
637ə
638ɛ
639ƒ
640É 
641É£
642É©
643Éš
644ƙ
645ɯ
646ɲ
647ɵ
648Æ¡
649Æ£
650Æ¥
651ʀ
652Æš
653ʃ
654Æ­
655ʈ
656Æ°
657ʊ
658ʋ
659ÆŽ
660ƶ
661ʒ
662ƹ
663Ɯ
664dž
665dž
666lj
667lj
668nj
669nj
670ǎ
671ǐ
672ǒ
673ǔ
674ǖ
675ǘ
676ǚ
677ǜ
678ǟ
679Ç¡
680Ç£
681Ç¥
682ǧ
683Ç©
684Ç«
685Ç­
686ǯ
687dz
688dz
689ǵ
690ƕ
691Æ¿
692ǹ
693Ç»
694ǜ
695Ç¿
696ȁ
697ȃ
698ȅ
699ȇ
700ȉ
701ȋ
702ȍ
703ȏ
704ȑ
705ȓ
706ȕ
707ȗ
708ș
709ț
710ȝ
711ȟ
712ƞ
713È£
714È¥
715ȧ
716È©
717È«
718È­
719ȯ
720ȱ
721ȳ
722â±¥
723Ȍ
724ƚ
725ⱊ
726ɂ
727ƀ
728ʉ
729ʌ
730ɇ
731ɉ
732ɋ
733ɍ
734ɏ
735ι
736ͱ
737ͳ
738Í·
739ϳ
740ά
741έ
742ή
743ί
744ό
745ύ
746ώ
747α
748β
749γ
750ÎŽ
751ε
752ζ
753η
754Ξ
755ι
756κ
757λ
758Ό
759Μ
760Ο
761ο
762π
763ρ
764σ
765τ
766υ
767φ
768χ
769ψ
770ω
771ϊ
772ϋ
773σ
774ϗ
775β
776Ξ
777φ
778π
779ϙ
780ϛ
781ϝ
782ϟ
783Ï¡
784Ï£
785Ï¥
786ϧ
787Ï©
788Ï«
789Ï­
790ϯ
791κ
792ρ
793Ξ
794ε
795Ïž
796ϲ
797Ï»
798Í»
799͌
800͜
801ѐ
802ё
803ђ
804ѓ
805є
806ѕ
807і
808ї
809ј
810љ
811њ
812ћ
813ќ
814ѝ
815ў
816џ
817а
818б
819в
820г
821ÐŽ
822е
823ж
824з
825О
826й
827к
828л
829Ќ
830М
831П
832п
833р
834с
835т
836у
837ф
838х
839ц
840ч
841ш
842щ
843ъ
844ы
845ь
846э
847ю
848я
849Ñ¡
850Ñ£
851Ñ¥
852ѧ
853Ñ©
854Ñ«
855Ñ­
856ѯ
857ѱ
858ѳ
859ѵ
860Ñ·
861ѹ
862Ñ»
863ќ
864Ñ¿
865ҁ
866ҋ
867ҍ
868ҏ
869ґ
870ғ
871ҕ
872җ
873ҙ
874қ
875ҝ
876ҟ
877Ò¡
878Ò£
879Ò¥
880Ò§
881Ò©
882Ò«
883Ò­
884Ò¯
885Ò±
886Ò³
887Òµ
888Ò·
889Ò¹
890Ò»
891Ҝ
892Ò¿
893ӏ
894ӂ
895ӄ
896ӆ
897ӈ
898ӊ
899ӌ
900ӎ
901ӑ
902ӓ
903ӕ
904ӗ
905ә
906ӛ
907ӝ
908ӟ
909Ó¡
910Ó£
911Ó¥
912Ó§
913Ó©
914Ó«
915Ó­
916Ó¯
917Ó±
918Ó³
919Óµ
920Ó·
921Ó¹
922Ó»
923Ӝ
924Ó¿
925ԁ
926ԃ
927ԅ
928ԇ
929ԉ
930ԋ
931ԍ
932ԏ
933ԑ
934ԓ
935ԕ
936ԗ
937ԙ
938ԛ
939ԝ
940ԟ
941Ô¡
942Ô£
943Ô¥
944Ô§
945Ô©
946Ô«
947Ô­
948Ô¯
949Õ¡
950Õ¢
951Õ£
952Õ€
953Õ¥
954ÕŠ
955Õ§
956Õš
957Õ©
958Õª
959Õ«
960Õ¬
961Õ­
962Õ®
963Õ¯
964Õ°
965Õ±
966Õ²
967Õ³
968ÕŽ
969Õµ
970Õ¶
971Õ·
972Õž
973Õ¹
974Õº
975Õ»
976Ռ
977՜
978ÕŸ
979Õ¿
980ր
981ց
982ւ
983փ
984ք
985օ
986ֆ
987⮀
988⎁
989⮂
990⎃
991⮄
992⮅
993⮆
994⮇
995⎈
996⮉
997⮊
998⮋
999⮌
1000⎍
1001⮎
1002⎏
1003⎐
1004⮑
1005⮒
1006⮓
1007⮔
1008⮕
1009⮖
1010⮗
1011⎘
1012⮙
1013⮚
1014⮛
1015⮜
1016⎝
1017⮞
1018⮟
1019⎠
1020⎡
1021⎢
1022⎣
1023⎀
1024⎥
1025⎧
1026⎭
1027Ᏸ
1028Ᏹ
1029Ᏺ
1030Ᏻ
1031Ꮞ
1032Ᏽ
1033в
1034ÐŽ
1035П
1036с
1037т
1038т
1039ъ
1040Ñ£
1041ꙋ
1042ខ
1043ឃ
1044ᾅ
1045ᾇ
1046ᾉ
1047ᾋ
1048ឍ
1049ត
1050ᾑ
1051ᾓ
1052ᾕ
1053ᾗ
1054ᾙ
1055ᾛ
1056ឝ
1057ᾟ
1058áž¡
1059ឣ
1060ឥ
1061ឧ
1062áž©
1063áž«
1064áž­
1065ឯ
1066áž±
1067áž³
1068ážµ
1069áž·
1070áž¹
1071áž»
1072វ
1073áž¿
1074ṁ
1075ṃ
1076ṅ
1077ṇ
1078ṉ
1079ṋ
1080ṍ
1081ṏ
1082ṑ
1083ṓ
1084ṕ
1085ṗ
1086ṙ
1087ṛ
1088ṝ
1089ṟ
1090ṡ
1091á¹£
1092á¹¥
1093ṧ
1094ṩ
1095ṫ
1096á¹­
1097ṯ
1098á¹±
1099á¹³
1100á¹µ
1101á¹·
1102á¹¹
1103á¹»
1104Ṝ
1105ṿ
1106ẁ
1107ẃ
1108ẅ
1109ẇ
1110ẉ
1111ẋ
1112ẍ
1113ẏ
1114ẑ
1115ẓ
1116ẕ
1117ṡ
1118ß
1119ạ
1120ả
1121ấ
1122ầ
1123ẩ
1124ẫ
1125ậ
1126ắ
1127ằ
1128ẳ
1129ẵ
1130ặ
1131ẹ
1132ẻ
1133ẜ
1134ế
1135ề
1136ể
1137ễ
1138ệ
1139ỉ
1140ị
1141ọ
1142ỏ
1143ố
1144ồ
1145ổ
1146ỗ
1147ộ
1148ớ
1149ờ
1150ở
1151ỡ
1152ợ
1153ụ
1154ủ
1155ứ
1156ừ
1157á»­
1158ữ
1159á»±
1160ỳ
1161ỵ
1162á»·
1163ỹ
1164á»»
1165Ờ
1166ỿ
1167ጀ
1168ጁ
1169ጂ
1170ጃ
1171ጄ
1172ጅ
1173ጆ
1174ጇ
1175ጐ
1176጑
1177ጒ
1178ጓ
1179ጔ
1180ጕ
1181ጠ
1182ጡ
1183ጢ
1184ጣ
1185ጀ
1186ጥ
1187ጊ
1188ጧ
1189ጰ
1190ጱ
1191ጲ
1192ጳ
1193ጎ
1194ጵ
1195ጶ
1196ጷ
1197ᜀ
1198ᜁ
1199ᜂ
1200ᜃ
1201ᜄ
1202ᜅ
1203ᜑ
1204ᜓ
1205᜕
1206᜗
1207ᜠ
1208ᜡ
1209ᜢ
1210ᜣ
1211ᜀ
1212ᜥ
1213ᜊ
1214ᜧ
1215ៀ
1216េ
1217ែ
1218ៃ
1219ោ
1220ៅ
1221ំ
1222ះ
1223័
1224៑
1225្
1226៓
1227។
1228៕
1229៖
1230ៗ
1231០
1232១
1233២
1234៣
1235ៀ
1236៥
1237៊
1238៧
1239៰
1240៱
1241ᜰ
1242ᜱ
1243៳
1244ι
1245ᜲ
1246ᜳ
1247ᜎ
1248᜵
1249ῃ
1250ῐ
1251ῑ
1252᜶
1253᜷
1254á¿ 
1255á¿¡
1256᜺
1257᜻
1258á¿¥
1259᜞
1260᜹
1261ᜌ
1262᜜
1263ῳ
1264ω
1265k
1266Ã¥
1267ⅎ
1268ⅰ
1269ⅱ
1270ⅲ
1271ⅳ
1272Ⅾ
1273ⅵ
1274ⅶ
1275ⅷ
1276ⅾ
1277ⅹ
1278ⅺ
1279ⅻ
1280⅌
1281⅜
1282â…Ÿ
1283ⅿ
1284ↄ
1285ⓐ
1286ⓑ
1287ⓒ
1288ⓓ
1289ⓔ
1290ⓕ
1291ⓖ
1292ⓗ
1293ⓘ
1294ⓙ
1295ⓚ
1296ⓛ
1297ⓜ
1298ⓝ
1299ⓞ
1300ⓟ
1301ⓠ
1302ⓡ
1303ⓢ
1304ⓣ
1305â“€
1306ⓥ
1307ⓩ
1308ⓧ
1309⓹
1310ⓩ
1311â°°
1312â°±
1313â°²
1314â°³
1315â°Ž
1316â°µ
1317â°¶
1318â°·
1319â°ž
1320â°¹
1321â°º
1322â°»
1323Ⰼ
1324Ⱌ
1325â°Ÿ
1326â°¿
1327ⱀ
1328ⱁ
1329ⱂ
1330ⱃ
1331ⱄ
1332ⱅ
1333ⱆ
1334ⱇ
1335ⱈ
1336ⱉ
1337ⱊ
1338ⱋ
1339ⱌ
1340ⱍ
1341ⱎ
1342ⱏ
1343ⱐ
1344ⱑ
1345ⱒ
1346ⱓ
1347ⱔ
1348ⱕ
1349ⱖ
1350ⱗ
1351ⱘ
1352ⱙ
1353ⱚ
1354ⱛ
1355ⱜ
1356ⱝ
1357ⱞ
1358ⱡ
1359É«
1360ᵜ
1361ɜ
1362ⱚ
1363ⱪ
1364ⱬ
1365ɑ
1366ɱ
1367ɐ
1368ɒ
1369â±³
1370ⱶ
1371È¿
1372ɀ
1373ⲁ
1374ⲃ
1375ⲅ
1376ⲇ
1377ⲉ
1378ⲋ
1379ⲍ
1380ⲏ
1381ⲑ
1382ⲓ
1383ⲕ
1384ⲗ
1385ⲙ
1386ⲛ
1387ⲝ
1388ⲟ
1389ⲡ
1390â²£
1391â²¥
1392ⲧ
1393ⲩ
1394ⲫ
1395â²­
1396ⲯ
1397â²±
1398â²³
1399â²µ
1400â²·
1401â²¹
1402â²»
1403Ⲝ
1404ⲿ
1405ⳁ
1406ⳃ
1407ⳅ
1408ⳇ
1409ⳉ
1410ⳋ
1411ⳍ
1412ⳏ
1413ⳑ
1414ⳓ
1415ⳕ
1416ⳗ
1417ⳙ
1418ⳛ
1419ⳝ
1420ⳟ
1421ⳡ
1422â³£
1423ⳬ
1424â³®
1425â³³
1426ꙁ
1427ꙃ
1428ꙅ
1429ꙇ
1430ꙉ
1431ꙋ
1432ꙍ
1433ꙏ
1434ꙑ
1435ꙓ
1436ꙕ
1437ꙗ
1438ꙙ
1439ꙛ
1440ꙝ
1441ꙟ
1442ꙡ
1443ꙣ
1444ꙥ
1445ꙧ
1446ꙩ
1447ꙫ
1448ꙭ
1449ꚁ
1450ꚃ
1451ꚅ
1452ꚇ
1453ꚉ
1454ꚋ
1455ꚍ
1456ꚏ
1457ꚑ
1458ꚓ
1459ꚕ
1460ꚗ
1461ꚙ
1462ꚛ
1463ꜣ
1464ꜥ
1465ꜧ
1466ꜩ
1467ꜫ
1468ꜭ
1469ꜯ
1470ꜳ
1471ꜵ
1472ꜷ
1473ꜹ
1474ꜻ
1475ꜜ
1476ꜿ
1477ꝁ
1478ꝃ
1479ꝅ
1480ꝇ
1481ꝉ
1482ꝋ
1483ꝍ
1484ꝏ
1485ꝑ
1486ꝓ
1487ꝕ
1488ꝗ
1489ꝙ
1490ꝛ
1491ꝝ
1492ꝟ
1493ꝡ
1494ꝣ
1495ꝥ
1496ꝧ
1497ꝩ
1498ꝫ
1499ꝭ
1500ꝯ
1501ꝺ
1502Ꝍ
1503áµ¹
1504ꝿ
1505ꞁ
1506ꞃ
1507ꞅ
1508ꞇ
1509ꞌ
1510É¥
1511ꞑ
1512ꞓ
1513ꞗ
1514ꞙ
1515ꞛ
1516ꞝ
1517ꞟ
1518ꞡ
1519ꞣ
1520ꞥ
1521ꞧ
1522ꞩ
1523ÉŠ
1524ɜ
1525É¡
1526ɬ
1527ɪ
1528ʞ
1529ʇ
1530ʝ
1531ꭓ
1532ꞵ
1533ꞷ
1534Ꭰ
1535Ꭱ
1536Ꭲ
1537Ꭳ
1538ᎀ
1539Ꭵ
1540ᎊ
1541Ꭷ
1542᎚
1543Ꭹ
1544Ꭺ
1545Ꭻ
1546Ꭼ
1547Ꭽ
1548Ꭾ
1549Ꭿ
1550Ꮀ
1551Ꮁ
1552Ꮂ
1553Ꮃ
1554Ꭾ
1555Ꮅ
1556Ꮆ
1557Ꮇ
1558Ꮎ
1559Ꮉ
1560Ꮊ
1561Ꮋ
1562ᎌ
1563᎜
1564᎟
1565Ꮏ
1566Ꮐ
1567Ꮑ
1568Ꮒ
1569Ꮓ
1570Ꮔ
1571Ꮕ
1572Ꮖ
1573Ꮗ
1574Ꮘ
1575Ꮙ
1576Ꮚ
1577Ꮛ
1578Ꮜ
1579Ꮝ
1580Ꮞ
1581Ꮟ
1582Ꮠ
1583Ꮡ
1584Ꮢ
1585Ꮣ
1586Ꮤ
1587Ꮥ
1588Ꮦ
1589Ꮧ
1590Ꮨ
1591Ꮩ
1592Ꮪ
1593Ꮫ
1594Ꮬ
1595Ꮭ
1596Ꮮ
1597Ꮯ
1598Ꮰ
1599Ꮱ
1600Ꮲ
1601Ꮳ
1602Ꮐ
1603Ꮵ
1604Ꮚ
1605Ꮷ
1606Ꮪ
1607Ꮹ
1608Ꮺ
1609Ꮻ
1610Ꮼ
1611Ꮽ
1612Ꮾ
1613Ꮿ
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640𐐚
1641𐐩
1642𐐪
1643𐐫
1644𐐬
1645𐐭
1646𐐮
1647𐐯
1648𐐰
1649𐐱
1650𐐲
1651𐐳
1652𐐎
1653𐐵
1654𐐶
1655𐐷
1656𐐞
1657𐐹
1658𐐺
1659𐐻
1660𐐌
1661𐐜
1662𐐟
1663𐐿
1664𐑀
1665𐑁
1666𐑂
1667𐑃
1668𐑄
1669𐑅
1670𐑆
1671𐑇
1672𐑈
1673𐑉
1674𐑊
1675𐑋
1676𐑌
1677𐑍
1678𐑎
1679𐑏
1680𐓘
1681𐓙
1682𐓚
1683𐓛
1684𐓜
1685𐓝
1686𐓞
1687𐓟
1688𐓠
1689𐓡
1690𐓢
1691𐓣
1692𐓀
1693𐓥
1694𐓊
1695𐓧
1696𐓚
1697𐓩
1698𐓪
1699𐓫
1700𐓬
1701𐓭
1702𐓮
1703𐓯
1704𐓰
1705𐓱
1706𐓲
1707𐓳
1708𐓎
1709𐓵
1710𐓶
1711𐓷
1712𐓞
1713𐓹
1714𐓺
1715𐓻
1716𐳀
1717𐳁
1718𐳂
1719𐳃
1720𐳄
1721𐳅
1722𐳆
1723𐳇
1724𐳈
1725𐳉
1726𐳊
1727𐳋
1728𐳌
1729𐳍
1730𐳎
1731𐳏
1732𐳐
1733𐳑
1734𐳒
1735𐳓
1736𐳔
1737𐳕
1738𐳖
1739𐳗
1740𐳘
1741𐳙
1742𐳚
1743𐳛
1744𐳜
1745𐳝
1746𐳞
1747𐳟
1748𐳠
1749𐳡
1750𐳢
1751𐳣
1752𐳀
1753𐳥
1754𐳊
1755𐳧
1756𐳚
1757𐳩
1758𐳪
1759𐳫
1760𐳬
1761𐳭
1762𐳮
1763𐳯
1764𐳰
1765𐳱
1766𐳲
1767𑣀
1768𑣁
1769𑣂
1770𑣃
1771𑣄
1772𑣅
1773𑣆
1774𑣇
1775𑣈
1776𑣉
1777𑣊
1778𑣋
1779𑣌
1780𑣍
1781𑣎
1782𑣏
1783𑣐
1784𑣑
1785𑣒
1786𑣓
1787𑣔
1788𑣕
1789𑣖
1790𑣗
1791𑣘
1792𑣙
1793𑣚
1794𑣛
1795𑣜
1796𑣝
1797𑣞
1798𑣟
1799𞀢
1800𞀣
1801𞀀
1802𞀥
1803𞀊
1804𞀧
1805𞀚
1806𞀩
1807𞀪
1808𞀫
1809𞀬
1810𞀭
1811𞀮
1812𞀯
1813𞀰
1814𞀱
1815𞀲
1816𞀳
1817𞀎
1818𞀵
1819𞀶
1820𞀷
1821𞀞
1822𞀹
1823𞀺
1824𞀻
1825𞀌
1826𞀜
1827𞀟
1828𞀿
1829𞥀
1830𞥁
1831𞥂
1832𞥃
1833)__";
1834
1835        const static std::vector<codepoint_t> defined_cps{
1836        0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
1837        0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
1838        0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
1839        0x0059, 0x005a, 0x00b5, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4,
1840        0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc,
1841        0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4,
1842        0x00d5, 0x00d6, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd,
1843        0x00de, 0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c,
1844        0x010e, 0x0110, 0x0112, 0x0114, 0x0116, 0x0118, 0x011a, 0x011c,
1845        0x011e, 0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x012a, 0x012c,
1846        0x012e, 0x0132, 0x0134, 0x0136, 0x0139, 0x013b, 0x013d, 0x013f,
1847        0x0141, 0x0143, 0x0145, 0x0147, 0x014a, 0x014c, 0x014e, 0x0150,
1848        0x0152, 0x0154, 0x0156, 0x0158, 0x015a, 0x015c, 0x015e, 0x0160,
1849        0x0162, 0x0164, 0x0166, 0x0168, 0x016a, 0x016c, 0x016e, 0x0170,
1850        0x0172, 0x0174, 0x0176, 0x0178, 0x0179, 0x017b, 0x017d, 0x017f,
1851        0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0189, 0x018a, 0x018b,
1852        0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 0x0194, 0x0196, 0x0197,
1853        0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6,
1854        0x01a7, 0x01a9, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b2, 0x01b3,
1855        0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01c4, 0x01c5, 0x01c7, 0x01c8,
1856        0x01ca, 0x01cb, 0x01cd, 0x01cf, 0x01d1, 0x01d3, 0x01d5, 0x01d7,
1857        0x01d9, 0x01db, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e6, 0x01e8,
1858        0x01ea, 0x01ec, 0x01ee, 0x01f1, 0x01f2, 0x01f4, 0x01f6, 0x01f7,
1859        0x01f8, 0x01fa, 0x01fc, 0x01fe, 0x0200, 0x0202, 0x0204, 0x0206,
1860        0x0208, 0x020a, 0x020c, 0x020e, 0x0210, 0x0212, 0x0214, 0x0216,
1861        0x0218, 0x021a, 0x021c, 0x021e, 0x0220, 0x0222, 0x0224, 0x0226,
1862        0x0228, 0x022a, 0x022c, 0x022e, 0x0230, 0x0232, 0x023a, 0x023b,
1863        0x023d, 0x023e, 0x0241, 0x0243, 0x0244, 0x0245, 0x0246, 0x0248,
1864        0x024a, 0x024c, 0x024e, 0x0345, 0x0370, 0x0372, 0x0376, 0x037f,
1865        0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f, 0x0391,
1866        0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399,
1867        0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1,
1868        0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa,
1869        0x03ab, 0x03c2, 0x03cf, 0x03d0, 0x03d1, 0x03d5, 0x03d6, 0x03d8,
1870        0x03da, 0x03dc, 0x03de, 0x03e0, 0x03e2, 0x03e4, 0x03e6, 0x03e8,
1871        0x03ea, 0x03ec, 0x03ee, 0x03f0, 0x03f1, 0x03f4, 0x03f5, 0x03f7,
1872        0x03f9, 0x03fa, 0x03fd, 0x03fe, 0x03ff, 0x0400, 0x0401, 0x0402,
1873        0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a,
1874        0x040b, 0x040c, 0x040d, 0x040e, 0x040f, 0x0410, 0x0411, 0x0412,
1875        0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a,
1876        0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422,
1877        0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
1878        0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0460, 0x0462, 0x0464,
1879        0x0466, 0x0468, 0x046a, 0x046c, 0x046e, 0x0470, 0x0472, 0x0474,
1880        0x0476, 0x0478, 0x047a, 0x047c, 0x047e, 0x0480, 0x048a, 0x048c,
1881        0x048e, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498, 0x049a, 0x049c,
1882        0x049e, 0x04a0, 0x04a2, 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac,
1883        0x04ae, 0x04b0, 0x04b2, 0x04b4, 0x04b6, 0x04b8, 0x04ba, 0x04bc,
1884        0x04be, 0x04c0, 0x04c1, 0x04c3, 0x04c5, 0x04c7, 0x04c9, 0x04cb,
1885        0x04cd, 0x04d0, 0x04d2, 0x04d4, 0x04d6, 0x04d8, 0x04da, 0x04dc,
1886        0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6, 0x04e8, 0x04ea, 0x04ec,
1887        0x04ee, 0x04f0, 0x04f2, 0x04f4, 0x04f6, 0x04f8, 0x04fa, 0x04fc,
1888        0x04fe, 0x0500, 0x0502, 0x0504, 0x0506, 0x0508, 0x050a, 0x050c,
1889        0x050e, 0x0510, 0x0512, 0x0514, 0x0516, 0x0518, 0x051a, 0x051c,
1890        0x051e, 0x0520, 0x0522, 0x0524, 0x0526, 0x0528, 0x052a, 0x052c,
1891        0x052e, 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537,
1892        0x0538, 0x0539, 0x053a, 0x053b, 0x053c, 0x053d, 0x053e, 0x053f,
1893        0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,
1894        0x0548, 0x0549, 0x054a, 0x054b, 0x054c, 0x054d, 0x054e, 0x054f,
1895        0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x10a0,
1896        0x10a1, 0x10a2, 0x10a3, 0x10a4, 0x10a5, 0x10a6, 0x10a7, 0x10a8,
1897        0x10a9, 0x10aa, 0x10ab, 0x10ac, 0x10ad, 0x10ae, 0x10af, 0x10b0,
1898        0x10b1, 0x10b2, 0x10b3, 0x10b4, 0x10b5, 0x10b6, 0x10b7, 0x10b8,
1899        0x10b9, 0x10ba, 0x10bb, 0x10bc, 0x10bd, 0x10be, 0x10bf, 0x10c0,
1900        0x10c1, 0x10c2, 0x10c3, 0x10c4, 0x10c5, 0x10c7, 0x10cd, 0x13f8,
1901        0x13f9, 0x13fa, 0x13fb, 0x13fc, 0x13fd, 0x1c80, 0x1c81, 0x1c82,
1902        0x1c83, 0x1c84, 0x1c85, 0x1c86, 0x1c87, 0x1c88, 0x1e00, 0x1e02,
1903        0x1e04, 0x1e06, 0x1e08, 0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12,
1904        0x1e14, 0x1e16, 0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20, 0x1e22,
1905        0x1e24, 0x1e26, 0x1e28, 0x1e2a, 0x1e2c, 0x1e2e, 0x1e30, 0x1e32,
1906        0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40, 0x1e42,
1907        0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52,
1908        0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62,
1909        0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72,
1910        0x1e74, 0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82,
1911        0x1e84, 0x1e86, 0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92,
1912        0x1e94, 0x1e9b, 0x1e9e, 0x1ea0, 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8,
1913        0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6, 0x1eb8,
1914        0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8,
1915        0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
1916        0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8,
1917        0x1eea, 0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8,
1918        0x1efa, 0x1efc, 0x1efe, 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c,
1919        0x1f0d, 0x1f0e, 0x1f0f, 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c,
1920        0x1f1d, 0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e,
1921        0x1f2f, 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e,
1922        0x1f3f, 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x1f59,
1923        0x1f5b, 0x1f5d, 0x1f5f, 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c,
1924        0x1f6d, 0x1f6e, 0x1f6f, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c,
1925        0x1f8d, 0x1f8e, 0x1f8f, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c,
1926        0x1f9d, 0x1f9e, 0x1f9f, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac,
1927        0x1fad, 0x1fae, 0x1faf, 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc,
1928        0x1fbe, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fcc, 0x1fd8, 0x1fd9,
1929        0x1fda, 0x1fdb, 0x1fe8, 0x1fe9, 0x1fea, 0x1feb, 0x1fec, 0x1ff8,
1930        0x1ff9, 0x1ffa, 0x1ffb, 0x1ffc, 0x2126, 0x212a, 0x212b, 0x2132,
1931        0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
1932        0x2168, 0x2169, 0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f,
1933        0x2183, 0x24b6, 0x24b7, 0x24b8, 0x24b9, 0x24ba, 0x24bb, 0x24bc,
1934        0x24bd, 0x24be, 0x24bf, 0x24c0, 0x24c1, 0x24c2, 0x24c3, 0x24c4,
1935        0x24c5, 0x24c6, 0x24c7, 0x24c8, 0x24c9, 0x24ca, 0x24cb, 0x24cc,
1936        0x24cd, 0x24ce, 0x24cf, 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04,
1937        0x2c05, 0x2c06, 0x2c07, 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c,
1938        0x2c0d, 0x2c0e, 0x2c0f, 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14,
1939        0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c,
1940        0x2c1d, 0x2c1e, 0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x2c24,
1941        0x2c25, 0x2c26, 0x2c27, 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c,
1942        0x2c2d, 0x2c2e, 0x2c60, 0x2c62, 0x2c63, 0x2c64, 0x2c67, 0x2c69,
1943        0x2c6b, 0x2c6d, 0x2c6e, 0x2c6f, 0x2c70, 0x2c72, 0x2c75, 0x2c7e,
1944        0x2c7f, 0x2c80, 0x2c82, 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c,
1945        0x2c8e, 0x2c90, 0x2c92, 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c,
1946        0x2c9e, 0x2ca0, 0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac,
1947        0x2cae, 0x2cb0, 0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc,
1948        0x2cbe, 0x2cc0, 0x2cc2, 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc,
1949        0x2cce, 0x2cd0, 0x2cd2, 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc,
1950        0x2cde, 0x2ce0, 0x2ce2, 0x2ceb, 0x2ced, 0x2cf2, 0xa640, 0xa642,
1951        0xa644, 0xa646, 0xa648, 0xa64a, 0xa64c, 0xa64e, 0xa650, 0xa652,
1952        0xa654, 0xa656, 0xa658, 0xa65a, 0xa65c, 0xa65e, 0xa660, 0xa662,
1953        0xa664, 0xa666, 0xa668, 0xa66a, 0xa66c, 0xa680, 0xa682, 0xa684,
1954        0xa686, 0xa688, 0xa68a, 0xa68c, 0xa68e, 0xa690, 0xa692, 0xa694,
1955        0xa696, 0xa698, 0xa69a, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a,
1956        0xa72c, 0xa72e, 0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c,
1957        0xa73e, 0xa740, 0xa742, 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c,
1958        0xa74e, 0xa750, 0xa752, 0xa754, 0xa756, 0xa758, 0xa75a, 0xa75c,
1959        0xa75e, 0xa760, 0xa762, 0xa764, 0xa766, 0xa768, 0xa76a, 0xa76c,
1960        0xa76e, 0xa779, 0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa782, 0xa784,
1961        0xa786, 0xa78b, 0xa78d, 0xa790, 0xa792, 0xa796, 0xa798, 0xa79a,
1962        0xa79c, 0xa79e, 0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7aa,
1963        0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3,
1964        0xa7b4, 0xa7b6, 0xab70, 0xab71, 0xab72, 0xab73, 0xab74, 0xab75,
1965        0xab76, 0xab77, 0xab78, 0xab79, 0xab7a, 0xab7b, 0xab7c, 0xab7d,
1966        0xab7e, 0xab7f, 0xab80, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85,
1967        0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, 0xab8d,
1968        0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92, 0xab93, 0xab94, 0xab95,
1969        0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d,
1970        0xab9e, 0xab9f, 0xaba0, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5,
1971        0xaba6, 0xaba7, 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad,
1972        0xabae, 0xabaf, 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5,
1973        0xabb6, 0xabb7, 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd,
1974        0xabbe, 0xabbf, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26,
1975        0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e,
1976        0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36,
1977        0xff37, 0xff38, 0xff39, 0xff3a, 0x10400, 0x10401, 0x10402, 0x10403,
1978        0x10404, 0x10405, 0x10406, 0x10407, 0x10408, 0x10409, 0x1040a,
1979        0x1040b, 0x1040c, 0x1040d, 0x1040e, 0x1040f, 0x10410, 0x10411,
1980        0x10412, 0x10413, 0x10414, 0x10415, 0x10416, 0x10417, 0x10418,
1981        0x10419, 0x1041a, 0x1041b, 0x1041c, 0x1041d, 0x1041e, 0x1041f,
1982        0x10420, 0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426,
1983        0x10427, 0x104b0, 0x104b1, 0x104b2, 0x104b3, 0x104b4, 0x104b5,
1984        0x104b6, 0x104b7, 0x104b8, 0x104b9, 0x104ba, 0x104bb, 0x104bc,
1985        0x104bd, 0x104be, 0x104bf, 0x104c0, 0x104c1, 0x104c2, 0x104c3,
1986        0x104c4, 0x104c5, 0x104c6, 0x104c7, 0x104c8, 0x104c9, 0x104ca,
1987        0x104cb, 0x104cc, 0x104cd, 0x104ce, 0x104cf, 0x104d0, 0x104d1,
1988        0x104d2, 0x104d3, 0x10c80, 0x10c81, 0x10c82, 0x10c83, 0x10c84,
1989        0x10c85, 0x10c86, 0x10c87, 0x10c88, 0x10c89, 0x10c8a, 0x10c8b,
1990        0x10c8c, 0x10c8d, 0x10c8e, 0x10c8f, 0x10c90, 0x10c91, 0x10c92,
1991        0x10c93, 0x10c94, 0x10c95, 0x10c96, 0x10c97, 0x10c98, 0x10c99,
1992        0x10c9a, 0x10c9b, 0x10c9c, 0x10c9d, 0x10c9e, 0x10c9f, 0x10ca0,
1993        0x10ca1, 0x10ca2, 0x10ca3, 0x10ca4, 0x10ca5, 0x10ca6, 0x10ca7,
1994        0x10ca8, 0x10ca9, 0x10caa, 0x10cab, 0x10cac, 0x10cad, 0x10cae,
1995        0x10caf, 0x10cb0, 0x10cb1, 0x10cb2, 0x118a0, 0x118a1, 0x118a2,
1996        0x118a3, 0x118a4, 0x118a5, 0x118a6, 0x118a7, 0x118a8, 0x118a9,
1997        0x118aa, 0x118ab, 0x118ac, 0x118ad, 0x118ae, 0x118af, 0x118b0,
1998        0x118b1, 0x118b2, 0x118b3, 0x118b4, 0x118b5, 0x118b6, 0x118b7,
1999        0x118b8, 0x118b9, 0x118ba, 0x118bb, 0x118bc, 0x118bd, 0x118be,
2000        0x118bf, 0x1e900, 0x1e901, 0x1e902, 0x1e903, 0x1e904, 0x1e905,
2001        0x1e906, 0x1e907, 0x1e908, 0x1e909, 0x1e90a, 0x1e90b, 0x1e90c,
2002        0x1e90d, 0x1e90e, 0x1e90f, 0x1e910, 0x1e911, 0x1e912, 0x1e913,
2003        0x1e914, 0x1e915, 0x1e916, 0x1e917, 0x1e918, 0x1e919, 0x1e91a,
2004        0x1e91b, 0x1e91c, 0x1e91d, 0x1e91e, 0x1e91f, 0x1e920, 0x1e921};
2005        static StringPropertyObject property_object(scf, 
2006                                                    std::move(null_codepoint_set), 
2007                                                    std::move(reflexive_set), 
2008                                                    static_cast<const char *>(string_buffer), 
2009                                                    buffer_length, 
2010                                                    std::move(defined_cps));
2011    }
2012    namespace CF_ns {
2013        /** Code Point Ranges for cf (possibly overriding values from SCF)
2014        [00df, 00df], [0130, 0130], [0149, 0149], [01f0, 01f0],
2015        [0390, 0390], [03b0, 03b0], [0587, 0587], [1e96, 1e9a],
2016        [1e9e, 1e9e], [1f50, 1f50], [1f52, 1f52], [1f54, 1f54],
2017        [1f56, 1f56], [1f80, 1faf], [1fb2, 1fb4], [1fb6, 1fb7],
2018        [1fbc, 1fbc], [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc],
2019        [1fd2, 1fd3], [1fd6, 1fd7], [1fe2, 1fe4], [1fe6, 1fe7],
2020        [1ff2, 1ff4], [1ff6, 1ff7], [1ffc, 1ffc], [fb00, fb06],
2021        [fb13, fb17]**/
2022
2023       
2024        namespace {
2025        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
2026        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
2027        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
2028        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
2029        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
2030        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
2031        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
2032        0x00010000, 0x00000080, 0x47c00000, 0x00550000, 0x10dcffff,
2033        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
2034        }
2035
2036        const static UnicodeSet explicitly_defined_set{const_cast<UnicodeSet::run_t *>(__explicitly_defined_set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__explicitly_defined_set_quads), 13, 0};
2037
2038
2039
2040        const unsigned buffer_length = 575;
2041        const static char string_buffer LLVM_ALIGNAS(32) [768] = u8R"__(ss
2042i̇
2043ÊŒn
2044ǰ
2045ΐ
2046ΰ
2047եւ
2048ẖ
2049ẗ
2050ẘ
2051ẙ
2052aÊŸ
2053ss
2054ὐ
2055ὒ
2056ὔ
2057ὖ
2058ጀι
2059ጁι
2060ጂι
2061ጃι
2062ጄι
2063ጅι
2064ጆι
2065ጇι
2066ጀι
2067ጁι
2068ጂι
2069ጃι
2070ጄι
2071ጅι
2072ጆι
2073ጇι
2074ጠι
2075ጡι
2076ጢι
2077ጣι
2078ጀι
2079ጥι
2080ጊι
2081ጧι
2082ጠι
2083ጡι
2084ጢι
2085ጣι
2086ጀι
2087ጥι
2088ጊι
2089ጧι
2090ᜠι
2091ᜡι
2092ᜢι
2093ᜣι
2094ᜀι
2095ᜥι
2096ᜊι
2097ᜧι
2098ᜠι
2099ᜡι
2100ᜢι
2101ᜣι
2102ᜀι
2103ᜥι
2104ᜊι
2105ᜧι
2106ᜰι
2107αι
2108άι
2109ᾶ
2110ᾶι
2111αι
2112ᜎι
2113ηι
2114ήι
2115ῆ
2116ῆι
2117ηι
2118ῒ
2119ΐ
2120ῖ
2121ῗ
2122ῢ
2123ΰ
2124ῤ
2125ῦ
2126ῧ
2127ᜌι
2128ωι
2129ώι
2130ῶ
2131ῶι
2132ωι
2133ff
2134fi
2135fl
2136ffi
2137ffl
2138st
2139st
2140ÕŽÕ¶
2141ÕŽÕ¥
2142ÕŽÕ«
2143ÕŸÕ¶
2144ÕŽÕ­
2145)__";
2146
2147        const static std::vector<codepoint_t> defined_cps{
2148        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
2149        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1e9e, 0x1f50, 0x1f52, 0x1f54,
2150        0x1f56, 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86,
2151        0x1f87, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e,
2152        0x1f8f, 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96,
2153        0x1f97, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e,
2154        0x1f9f, 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6,
2155        0x1fa7, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae,
2156        0x1faf, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc2,
2157        0x1fc3, 0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fd2, 0x1fd3, 0x1fd6,
2158        0x1fd7, 0x1fe2, 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2, 0x1ff3,
2159        0x1ff4, 0x1ff6, 0x1ff7, 0x1ffc, 0xfb00, 0xfb01, 0xfb02, 0xfb03,
2160        0xfb04, 0xfb05, 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17};
2161        static StringOverridePropertyObject property_object(cf, 
2162                                                    SCF_ns::property_object, 
2163                                                    std::move(explicitly_defined_set), 
2164                                                    static_cast<const char *>(string_buffer), 
2165                                                    buffer_length, 
2166                                                    std::move(defined_cps));
2167    }
2168}
2169
2170#endif
Note: See TracBrowser for help on using the repository browser.