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

Last change on this file since 5755 was 5751, checked in by cameron, 21 months ago

LLVM_ALIGNAS placement, eliminate std::move of temp objects to allow copy elision

File size: 42.2 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
23void caseInsensitiveInsertRange(UCD::UnicodeSet * const cc, const UCD::codepoint_t lo, const UCD::codepoint_t hi);
24
25inline void caseInsensitiveInsert(UCD::UnicodeSet * const cc, const UCD::codepoint_t cp) {
26    caseInsensitiveInsertRange(cc, cp, cp); 
27}
28
29const int foldTableSize = 246;
30
31const FoldEntry foldTable[foldTableSize] = {
32  {0x0, 0, {}},
33  {0x41, 32, {{0x4b, 0x212a}, {0x53, 0x17f}}},
34  {0x5b, 0, {}},
35  {0x61, -32, {{0x6b, 0x212a}, {0x73, 0x17f}}},
36  {0x7b, 0, {{0xb5, 0x3bc}, {0xb5, 0x39c}}},
37  {0xc0, 32, {{0xc5, 0x212b}}},
38  {0xd7, 0, {}},
39  {0xd8, 32, {}},
40  {0xdf, 0, {{0xdf, 0x1e9e}}},
41  {0xe0, -32, {{0xe5, 0x212b}}},
42  {0xf7, 0, {}},
43  {0xf8, -32, {}},
44  {0xff, 0, {{0xff, 0x178}}},
45  {0x100, 1, {}},
46  {0x130, 0, {}},
47  {0x132, 1, {}},
48  {0x138, 0, {}},
49  {0x139, 1, {}},
50  {0x149, 0, {}},
51  {0x14a, 1, {}},
52  {0x178, 0, {{0x178, 0xff}}},
53  {0x179, 1, {}},
54  {0x17f, 0, {{0x17f, 0x73}, {0x17f, 0x53}, {0x180, 0x243}, {0x181, 0x253}}},
55  {0x182, 1, {}},
56  {0x186, 0, {{0x186, 0x254}}},
57  {0x187, 1, {}},
58  {0x189, 205, {}},
59  {0x18b, 1, {}},
60  {0x18d, 0, {{0x18e, 0x1dd}, {0x18f, 0x259}, {0x190, 0x25b}}},
61  {0x191, 1, {}},
62  {0x193, 0, {{0x193, 0x260}, {0x194, 0x263}, {0x195, 0x1f6}, {0x196, 0x269},
63    {0x197, 0x268}}},
64  {0x198, 1, {}},
65  {0x19a, 0, {{0x19a, 0x23d}, {0x19c, 0x26f}, {0x19d, 0x272}, {0x19e, 0x220},
66    {0x19f, 0x275}}},
67  {0x1a0, 1, {}},
68  {0x1a6, 0, {{0x1a6, 0x280}}},
69  {0x1a7, 1, {}},
70  {0x1a9, 0, {{0x1a9, 0x283}}},
71  {0x1ac, 1, {}},
72  {0x1ae, 0, {{0x1ae, 0x288}}},
73  {0x1af, 1, {}},
74  {0x1b1, 217, {}},
75  {0x1b3, 1, {}},
76  {0x1b7, 0, {{0x1b7, 0x292}}},
77  {0x1b8, 1, {}},
78  {0x1ba, 0, {}},
79  {0x1bc, 1, {}},
80  {0x1be, 0, {{0x1bf, 0x1f7}}},
81  {0x1c4, 1, {{0x1c4, 0x1c6}}},
82  {0x1c6, 0, {}},
83  {0x1c5, 1, {{0x1c6, 0x1c4}, {0x1c7, 0x1c9}}},
84  {0x1c9, 0, {}},
85  {0x1c8, 1, {{0x1c9, 0x1c7}, {0x1ca, 0x1cc}}},
86  {0x1cc, 0, {}},
87  {0x1cb, 1, {{0x1cc, 0x1ca}}},
88  {0x1dd, 0, {{0x1dd, 0x18e}}},
89  {0x1de, 1, {}},
90  {0x1f0, 0, {}},
91  {0x1f1, 1, {{0x1f1, 0x1f3}}},
92  {0x1f3, 0, {}},
93  {0x1f2, 1, {{0x1f3, 0x1f1}}},
94  {0x1f6, 0, {{0x1f6, 0x195}, {0x1f7, 0x1bf}}},
95  {0x1f8, 1, {}},
96  {0x220, 0, {{0x220, 0x19e}}},
97  {0x222, 1, {}},
98  {0x234, 0, {{0x23a, 0x2c65}}},
99  {0x23b, 1, {}},
100  {0x23d, 0, {{0x23d, 0x19a}, {0x23e, 0x2c66}}},
101  {0x23f, 10815, {}},
102  {0x241, 1, {}},
103  {0x243, 0, {{0x243, 0x180}, {0x244, 0x289}, {0x245, 0x28c}}},
104  {0x246, 1, {}},
105  {0x250, 0, {{0x250, 0x2c6f}, {0x251, 0x2c6d}, {0x252, 0x2c70}, {0x253, 0x181},
106    {0x254, 0x186}}},
107  {0x256, -205, {}},
108  {0x258, 0, {{0x259, 0x18f}, {0x25b, 0x190}, {0x25c, 0xa7ab}, {0x260, 0x193},
109    {0x261, 0xa7ac}, {0x263, 0x194}, {0x265, 0xa78d}, {0x266, 0xa7aa},
110    {0x268, 0x197}, {0x269, 0x196}, {0x26a, 0xa7ae}, {0x26b, 0x2c62},
111    {0x26c, 0xa7ad}, {0x26f, 0x19c}, {0x271, 0x2c6e}, {0x272, 0x19d},
112    {0x275, 0x19f}, {0x27d, 0x2c64}, {0x280, 0x1a6}, {0x283, 0x1a9},
113    {0x287, 0xa7b1}, {0x288, 0x1ae}, {0x289, 0x244}}},
114  {0x28a, -217, {}},
115  {0x28c, 0, {{0x28c, 0x245}, {0x292, 0x1b7}, {0x29d, 0xa7b2}, {0x29e, 0xa7b0},
116    {0x345, 0x3b9}, {0x345, 0x399}, {0x345, 0x1fbe}}},
117  {0x370, 1, {}},
118  {0x374, 0, {}},
119  {0x376, 1, {}},
120  {0x378, 0, {}},
121  {0x37b, 130, {}},
122  {0x37e, 0, {{0x37f, 0x3f3}, {0x386, 0x3ac}}},
123  {0x388, 37, {}},
124  {0x38b, 0, {{0x38c, 0x3cc}}},
125  {0x38e, 63, {}},
126  {0x390, 0, {}},
127  {0x391, 32, {{0x392, 0x3d0}, {0x395, 0x3f5}, {0x398, 0x3d1}, {0x398, 0x3f4},
128    {0x399, 0x345}, {0x399, 0x1fbe}, {0x39a, 0x3f0}, {0x39c, 0xb5},
129    {0x3a0, 0x3d6}, {0x3a1, 0x3f1}}},
130  {0x3a2, 0, {}},
131  {0x3a3, 32, {{0x3a3, 0x3c2}, {0x3a6, 0x3d5}, {0x3a9, 0x2126}}},
132  {0x3ac, 0, {{0x3ac, 0x386}}},
133  {0x3ad, -37, {}},
134  {0x3b0, 0, {}},
135  {0x3b1, -32, {{0x3b2, 0x3d0}, {0x3b5, 0x3f5}, {0x3b8, 0x3d1}, {0x3b8, 0x3f4},
136    {0x3b9, 0x345}, {0x3b9, 0x1fbe}, {0x3ba, 0x3f0}, {0x3bc, 0xb5},
137    {0x3c0, 0x3d6}, {0x3c1, 0x3f1}}},
138  {0x3c2, 1, {{0x3c2, 0x3a3}}},
139  {0x3c4, 0, {}},
140  {0x3c3, -32, {{0x3c6, 0x3d5}, {0x3c9, 0x2126}}},
141  {0x3cc, 0, {{0x3cc, 0x38c}}},
142  {0x3cd, -63, {}},
143  {0x3cf, 0, {{0x3cf, 0x3d7}, {0x3d0, 0x3b2}, {0x3d0, 0x392}, {0x3d1, 0x3b8},
144    {0x3d1, 0x398}, {0x3d1, 0x3f4}, {0x3d5, 0x3c6}, {0x3d5, 0x3a6},
145    {0x3d6, 0x3c0}, {0x3d6, 0x3a0}, {0x3d7, 0x3cf}}},
146  {0x3d8, 1, {}},
147  {0x3f0, 0, {{0x3f0, 0x3ba}, {0x3f0, 0x39a}, {0x3f1, 0x3c1}, {0x3f1, 0x3a1},
148    {0x3f2, 0x3f9}, {0x3f3, 0x37f}, {0x3f4, 0x3b8}, {0x3f4, 0x398},
149    {0x3f4, 0x3d1}, {0x3f5, 0x3b5}, {0x3f5, 0x395}}},
150  {0x3f7, 1, {}},
151  {0x3f9, 0, {{0x3f9, 0x3f2}}},
152  {0x3fa, 1, {}},
153  {0x3fc, 0, {}},
154  {0x3fd, -130, {}},
155  {0x400, 80, {}},
156  {0x410, 0, {{0x412, 0x1c80}, {0x414, 0x1c81}, {0x41e, 0x1c82}}},
157  {0x421, 6242, {{0x422, 0x1c85}}},
158  {0x423, 0, {{0x42a, 0x1c86}, {0x432, 0x1c80}, {0x434, 0x1c81}, {0x43e, 0x1c82}}},
159  {0x441, 6210, {{0x442, 0x1c85}}},
160  {0x443, 0, {}},
161  {0x410, 32, {{0x412, 0x1c80}, {0x414, 0x1c81}, {0x41e, 0x1c82}, {0x422, 0x1c85},
162    {0x42a, 0x1c86}, {0x432, 0x1c80}, {0x434, 0x1c81}, {0x43e, 0x1c82},
163    {0x442, 0x1c85}, {0x44a, 0x1c86}}},
164  {0x450, -80, {}},
165  {0x460, 1, {{0x462, 0x1c87}, {0x463, 0x1c87}}},
166  {0x482, 0, {}},
167  {0x48a, 1, {}},
168  {0x4c0, 0, {{0x4c0, 0x4cf}}},
169  {0x4c1, 1, {}},
170  {0x4cf, 0, {{0x4cf, 0x4c0}}},
171  {0x4d0, 1, {}},
172  {0x530, 0, {}},
173  {0x531, 48, {}},
174  {0x557, 0, {}},
175  {0x561, -48, {}},
176  {0x587, 0, {}},
177  {0x10a0, 7264, {}},
178  {0x10c6, 0, {{0x10c7, 0x2d27}, {0x10cd, 0x2d2d}}},
179  {0x13a0, 38864, {}},
180  {0x13f0, 8, {}},
181  {0x13f6, 0, {}},
182  {0x13f8, -8, {}},
183  {0x13fe, 0, {{0x1c80, 0x432}, {0x1c80, 0x412}, {0x1c81, 0x434}, {0x1c81, 0x414},
184    {0x1c82, 0x43e}, {0x1c82, 0x41e}}},
185  {0x1c83, -6210, {}},
186  {0x1c85, 0, {}},
187  {0x1c83, -6242, {}},
188  {0x1c85, 0, {}},
189  {0x1c84, 1, {{0x1c85, 0x442}, {0x1c85, 0x422}}},
190  {0x1c86, 0, {{0x1c86, 0x44a}, {0x1c86, 0x42a}, {0x1c87, 0x463}, {0x1c87, 0x462},
191    {0x1c88, 0xa64b}, {0x1c88, 0xa64a}, {0x1d79, 0xa77d}, {0x1d7d, 0x2c63}}},
192  {0x1e00, 1, {{0x1e60, 0x1e9b}, {0x1e61, 0x1e9b}}},
193  {0x1e96, 0, {{0x1e9b, 0x1e61}, {0x1e9b, 0x1e60}, {0x1e9e, 0xdf}}},
194  {0x1ea0, 1, {}},
195  {0x1f00, 8, {}},
196  {0x1f16, 0, {}},
197  {0x1f18, -8, {}},
198  {0x1f1e, 0, {}},
199  {0x1f20, 8, {}},
200  {0x1f46, 0, {}},
201  {0x1f48, -8, {}},
202  {0x1f4e, 0, {{0x1f51, 0x1f59}, {0x1f53, 0x1f5b}, {0x1f55, 0x1f5d}, {0x1f57, 0x1f5f},
203    {0x1f59, 0x1f51}, {0x1f5b, 0x1f53}, {0x1f5d, 0x1f55}, {0x1f5f, 0x1f57}}},
204  {0x1f60, 8, {}},
205  {0x1f70, 74, {}},
206  {0x1f72, 86, {}},
207  {0x1f76, 100, {}},
208  {0x1f78, 128, {}},
209  {0x1f7a, 112, {}},
210  {0x1f7c, 126, {}},
211  {0x1f7e, 0, {}},
212  {0x1f80, 8, {}},
213  {0x1fb2, 0, {{0x1fb3, 0x1fbc}}},
214  {0x1fb8, -8, {}},
215  {0x1fba, -74, {}},
216  {0x1fbc, 0, {{0x1fbc, 0x1fb3}, {0x1fbe, 0x3b9}, {0x1fbe, 0x345}, {0x1fbe, 0x399},
217    {0x1fc3, 0x1fcc}}},
218  {0x1fc8, -86, {}},
219  {0x1fcc, 0, {{0x1fcc, 0x1fc3}}},
220  {0x1fd0, 8, {}},
221  {0x1fd2, 0, {}},
222  {0x1fd8, -8, {}},
223  {0x1fda, -100, {}},
224  {0x1fdc, 0, {}},
225  {0x1fe0, 8, {}},
226  {0x1fe2, 0, {{0x1fe5, 0x1fec}}},
227  {0x1fe8, -8, {}},
228  {0x1fea, -112, {}},
229  {0x1fec, 0, {{0x1fec, 0x1fe5}, {0x1ff3, 0x1ffc}}},
230  {0x1ff8, -128, {}},
231  {0x1ffa, -126, {}},
232  {0x1ffc, 0, {{0x1ffc, 0x1ff3}, {0x2126, 0x3c9}, {0x2126, 0x3a9}, {0x212a, 0x6b},
233    {0x212a, 0x4b}, {0x212b, 0xe5}, {0x212b, 0xc5}, {0x2132, 0x214e},
234    {0x214e, 0x2132}}},
235  {0x2160, 16, {}},
236  {0x2180, 0, {}},
237  {0x2183, 1, {}},
238  {0x2185, 0, {}},
239  {0x24b6, 26, {}},
240  {0x24ea, 0, {}},
241  {0x2c00, 48, {}},
242  {0x2c2f, 0, {}},
243  {0x2c30, -48, {}},
244  {0x2c5f, 0, {}},
245  {0x2c60, 1, {}},
246  {0x2c62, 0, {{0x2c62, 0x26b}, {0x2c63, 0x1d7d}, {0x2c64, 0x27d}, {0x2c65, 0x23a},
247    {0x2c66, 0x23e}}},
248  {0x2c67, 1, {}},
249  {0x2c6d, 0, {{0x2c6d, 0x251}, {0x2c6e, 0x271}, {0x2c6f, 0x250}, {0x2c70, 0x252}}},
250  {0x2c72, 1, {}},
251  {0x2c74, 0, {}},
252  {0x2c75, 1, {}},
253  {0x2c77, 0, {}},
254  {0x2c7e, -10815, {}},
255  {0x2c80, 1, {}},
256  {0x2ce4, 0, {}},
257  {0x2ceb, 1, {}},
258  {0x2cef, 0, {}},
259  {0x2cf2, 1, {}},
260  {0x2cf4, 0, {}},
261  {0x2d00, -7264, {}},
262  {0x2d26, 0, {{0x2d27, 0x10c7}, {0x2d2d, 0x10cd}}},
263  {0xa640, 1, {{0xa64a, 0x1c88}, {0xa64b, 0x1c88}}},
264  {0xa66e, 0, {}},
265  {0xa680, 1, {}},
266  {0xa69c, 0, {}},
267  {0xa722, 1, {}},
268  {0xa730, 0, {}},
269  {0xa732, 1, {}},
270  {0xa770, 0, {}},
271  {0xa779, 1, {}},
272  {0xa77d, 0, {{0xa77d, 0x1d79}}},
273  {0xa77e, 1, {}},
274  {0xa788, 0, {}},
275  {0xa78b, 1, {}},
276  {0xa78d, 0, {{0xa78d, 0x265}}},
277  {0xa790, 1, {}},
278  {0xa794, 0, {}},
279  {0xa796, 1, {}},
280  {0xa7aa, 0, {{0xa7aa, 0x266}, {0xa7ab, 0x25c}, {0xa7ac, 0x261}, {0xa7ad, 0x26c},
281    {0xa7ae, 0x26a}, {0xa7b0, 0x29e}, {0xa7b1, 0x287}, {0xa7b2, 0x29d},
282    {0xa7b3, 0xab53}}},
283  {0xa7b4, 1, {}},
284  {0xa7b8, 0, {{0xab53, 0xa7b3}}},
285  {0xab70, -38864, {}},
286  {0xabc0, 0, {}},
287  {0xff21, 32, {}},
288  {0xff3b, 0, {}},
289  {0xff41, -32, {}},
290  {0xff5b, 0, {}},
291  {0x10400, 40, {}},
292  {0x10450, 0, {}},
293  {0x104b0, 40, {}},
294  {0x104d4, 0, {}},
295  {0x104d8, -40, {}},
296  {0x104fc, 0, {}},
297  {0x10c80, 64, {}},
298  {0x10cb3, 0, {}},
299  {0x10cc0, -64, {}},
300  {0x10cf3, 0, {}},
301  {0x118a0, 32, {}},
302  {0x118e0, 0, {}},
303  {0x1e900, 34, {}},
304  {0x1e944, 0, {}},
305  {0x110000, 0, {}}};
306namespace UCD {
307    namespace SCF_ns {
308        /** Code Point Ranges for scf mapping to <none>
309        **/
310       
311       
312        namespace {
313        const static UnicodeSet::run_t __null_codepoint_set_runs[] = {
314        {Empty, 34816}};
315        const static UnicodeSet::bitquad_t * const __null_codepoint_set_quads = nullptr;
316        }
317
318        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};
319
320
321
322        /** Code Point Ranges for scf mapping to <codepoint>
323        [0000, 0040], [005b, 00b4], [00b6, 00bf], [00d7, 00d7],
324        [00df, 00ff], [0101, 0101], [0103, 0103], [0105, 0105],
325        [0107, 0107], [0109, 0109], [010b, 010b], [010d, 010d],
326        [010f, 010f], [0111, 0111], [0113, 0113], [0115, 0115],
327        [0117, 0117], [0119, 0119], [011b, 011b], [011d, 011d],
328        [011f, 011f], [0121, 0121], [0123, 0123], [0125, 0125],
329        [0127, 0127], [0129, 0129], [012b, 012b], [012d, 012d],
330        [012f, 0131], [0133, 0133], [0135, 0135], [0137, 0138],
331        [013a, 013a], [013c, 013c], [013e, 013e], [0140, 0140],
332        [0142, 0142], [0144, 0144], [0146, 0146], [0148, 0149],
333        [014b, 014b], [014d, 014d], [014f, 014f], [0151, 0151],
334        [0153, 0153], [0155, 0155], [0157, 0157], [0159, 0159],
335        [015b, 015b], [015d, 015d], [015f, 015f], [0161, 0161],
336        [0163, 0163], [0165, 0165], [0167, 0167], [0169, 0169],
337        [016b, 016b], [016d, 016d], [016f, 016f], [0171, 0171],
338        [0173, 0173], [0175, 0175], [0177, 0177], [017a, 017a],
339        [017c, 017c], [017e, 017e], [0180, 0180], [0183, 0183],
340        [0185, 0185], [0188, 0188], [018c, 018d], [0192, 0192],
341        [0195, 0195], [0199, 019b], [019e, 019e], [01a1, 01a1],
342        [01a3, 01a3], [01a5, 01a5], [01a8, 01a8], [01aa, 01ab],
343        [01ad, 01ad], [01b0, 01b0], [01b4, 01b4], [01b6, 01b6],
344        [01b9, 01bb], [01bd, 01c3], [01c6, 01c6], [01c9, 01c9],
345        [01cc, 01cc], [01ce, 01ce], [01d0, 01d0], [01d2, 01d2],
346        [01d4, 01d4], [01d6, 01d6], [01d8, 01d8], [01da, 01da],
347        [01dc, 01dd], [01df, 01df], [01e1, 01e1], [01e3, 01e3],
348        [01e5, 01e5], [01e7, 01e7], [01e9, 01e9], [01eb, 01eb],
349        [01ed, 01ed], [01ef, 01f0], [01f3, 01f3], [01f5, 01f5],
350        [01f9, 01f9], [01fb, 01fb], [01fd, 01fd], [01ff, 01ff],
351        [0201, 0201], [0203, 0203], [0205, 0205], [0207, 0207],
352        [0209, 0209], [020b, 020b], [020d, 020d], [020f, 020f],
353        [0211, 0211], [0213, 0213], [0215, 0215], [0217, 0217],
354        [0219, 0219], [021b, 021b], [021d, 021d], [021f, 021f],
355        [0221, 0221], [0223, 0223], [0225, 0225], [0227, 0227],
356        [0229, 0229], [022b, 022b], [022d, 022d], [022f, 022f],
357        [0231, 0231], [0233, 0239], [023c, 023c], [023f, 0240],
358        [0242, 0242], [0247, 0247], [0249, 0249], [024b, 024b],
359        [024d, 024d], [024f, 0344], [0346, 036f], [0371, 0371],
360        [0373, 0375], [0377, 037e], [0380, 0385], [0387, 0387],
361        [038b, 038b], [038d, 038d], [0390, 0390], [03a2, 03a2],
362        [03ac, 03c1], [03c3, 03ce], [03d2, 03d4], [03d7, 03d7],
363        [03d9, 03d9], [03db, 03db], [03dd, 03dd], [03df, 03df],
364        [03e1, 03e1], [03e3, 03e3], [03e5, 03e5], [03e7, 03e7],
365        [03e9, 03e9], [03eb, 03eb], [03ed, 03ed], [03ef, 03ef],
366        [03f2, 03f3], [03f6, 03f6], [03f8, 03f8], [03fb, 03fc],
367        [0430, 045f], [0461, 0461], [0463, 0463], [0465, 0465],
368        [0467, 0467], [0469, 0469], [046b, 046b], [046d, 046d],
369        [046f, 046f], [0471, 0471], [0473, 0473], [0475, 0475],
370        [0477, 0477], [0479, 0479], [047b, 047b], [047d, 047d],
371        [047f, 047f], [0481, 0489], [048b, 048b], [048d, 048d],
372        [048f, 048f], [0491, 0491], [0493, 0493], [0495, 0495],
373        [0497, 0497], [0499, 0499], [049b, 049b], [049d, 049d],
374        [049f, 049f], [04a1, 04a1], [04a3, 04a3], [04a5, 04a5],
375        [04a7, 04a7], [04a9, 04a9], [04ab, 04ab], [04ad, 04ad],
376        [04af, 04af], [04b1, 04b1], [04b3, 04b3], [04b5, 04b5],
377        [04b7, 04b7], [04b9, 04b9], [04bb, 04bb], [04bd, 04bd],
378        [04bf, 04bf], [04c2, 04c2], [04c4, 04c4], [04c6, 04c6],
379        [04c8, 04c8], [04ca, 04ca], [04cc, 04cc], [04ce, 04cf],
380        [04d1, 04d1], [04d3, 04d3], [04d5, 04d5], [04d7, 04d7],
381        [04d9, 04d9], [04db, 04db], [04dd, 04dd], [04df, 04df],
382        [04e1, 04e1], [04e3, 04e3], [04e5, 04e5], [04e7, 04e7],
383        [04e9, 04e9], [04eb, 04eb], [04ed, 04ed], [04ef, 04ef],
384        [04f1, 04f1], [04f3, 04f3], [04f5, 04f5], [04f7, 04f7],
385        [04f9, 04f9], [04fb, 04fb], [04fd, 04fd], [04ff, 04ff],
386        [0501, 0501], [0503, 0503], [0505, 0505], [0507, 0507],
387        [0509, 0509], [050b, 050b], [050d, 050d], [050f, 050f],
388        [0511, 0511], [0513, 0513], [0515, 0515], [0517, 0517],
389        [0519, 0519], [051b, 051b], [051d, 051d], [051f, 051f],
390        [0521, 0521], [0523, 0523], [0525, 0525], [0527, 0527],
391        [0529, 0529], [052b, 052b], [052d, 052d], [052f, 0530],
392        [0557, 109f], [10c6, 10c6], [10c8, 10cc], [10ce, 13f7],
393        [13fe, 1c7f], [1c89, 1dff], [1e01, 1e01], [1e03, 1e03],
394        [1e05, 1e05], [1e07, 1e07], [1e09, 1e09], [1e0b, 1e0b],
395        [1e0d, 1e0d], [1e0f, 1e0f], [1e11, 1e11], [1e13, 1e13],
396        [1e15, 1e15], [1e17, 1e17], [1e19, 1e19], [1e1b, 1e1b],
397        [1e1d, 1e1d], [1e1f, 1e1f], [1e21, 1e21], [1e23, 1e23],
398        [1e25, 1e25], [1e27, 1e27], [1e29, 1e29], [1e2b, 1e2b],
399        [1e2d, 1e2d], [1e2f, 1e2f], [1e31, 1e31], [1e33, 1e33],
400        [1e35, 1e35], [1e37, 1e37], [1e39, 1e39], [1e3b, 1e3b],
401        [1e3d, 1e3d], [1e3f, 1e3f], [1e41, 1e41], [1e43, 1e43],
402        [1e45, 1e45], [1e47, 1e47], [1e49, 1e49], [1e4b, 1e4b],
403        [1e4d, 1e4d], [1e4f, 1e4f], [1e51, 1e51], [1e53, 1e53],
404        [1e55, 1e55], [1e57, 1e57], [1e59, 1e59], [1e5b, 1e5b],
405        [1e5d, 1e5d], [1e5f, 1e5f], [1e61, 1e61], [1e63, 1e63],
406        [1e65, 1e65], [1e67, 1e67], [1e69, 1e69], [1e6b, 1e6b],
407        [1e6d, 1e6d], [1e6f, 1e6f], [1e71, 1e71], [1e73, 1e73],
408        [1e75, 1e75], [1e77, 1e77], [1e79, 1e79], [1e7b, 1e7b],
409        [1e7d, 1e7d], [1e7f, 1e7f], [1e81, 1e81], [1e83, 1e83],
410        [1e85, 1e85], [1e87, 1e87], [1e89, 1e89], [1e8b, 1e8b],
411        [1e8d, 1e8d], [1e8f, 1e8f], [1e91, 1e91], [1e93, 1e93],
412        [1e95, 1e9a], [1e9c, 1e9d], [1e9f, 1e9f], [1ea1, 1ea1],
413        [1ea3, 1ea3], [1ea5, 1ea5], [1ea7, 1ea7], [1ea9, 1ea9],
414        [1eab, 1eab], [1ead, 1ead], [1eaf, 1eaf], [1eb1, 1eb1],
415        [1eb3, 1eb3], [1eb5, 1eb5], [1eb7, 1eb7], [1eb9, 1eb9],
416        [1ebb, 1ebb], [1ebd, 1ebd], [1ebf, 1ebf], [1ec1, 1ec1],
417        [1ec3, 1ec3], [1ec5, 1ec5], [1ec7, 1ec7], [1ec9, 1ec9],
418        [1ecb, 1ecb], [1ecd, 1ecd], [1ecf, 1ecf], [1ed1, 1ed1],
419        [1ed3, 1ed3], [1ed5, 1ed5], [1ed7, 1ed7], [1ed9, 1ed9],
420        [1edb, 1edb], [1edd, 1edd], [1edf, 1edf], [1ee1, 1ee1],
421        [1ee3, 1ee3], [1ee5, 1ee5], [1ee7, 1ee7], [1ee9, 1ee9],
422        [1eeb, 1eeb], [1eed, 1eed], [1eef, 1eef], [1ef1, 1ef1],
423        [1ef3, 1ef3], [1ef5, 1ef5], [1ef7, 1ef7], [1ef9, 1ef9],
424        [1efb, 1efb], [1efd, 1efd], [1eff, 1f07], [1f10, 1f17],
425        [1f1e, 1f27], [1f30, 1f37], [1f40, 1f47], [1f4e, 1f58],
426        [1f5a, 1f5a], [1f5c, 1f5c], [1f5e, 1f5e], [1f60, 1f67],
427        [1f70, 1f87], [1f90, 1f97], [1fa0, 1fa7], [1fb0, 1fb7],
428        [1fbd, 1fbd], [1fbf, 1fc7], [1fcd, 1fd7], [1fdc, 1fe7],
429        [1fed, 1ff7], [1ffd, 2125], [2127, 2129], [212c, 2131],
430        [2133, 215f], [2170, 2182], [2184, 24b5], [24d0, 2bff],
431        [2c2f, 2c5f], [2c61, 2c61], [2c65, 2c66], [2c68, 2c68],
432        [2c6a, 2c6a], [2c6c, 2c6c], [2c71, 2c71], [2c73, 2c74],
433        [2c76, 2c7d], [2c81, 2c81], [2c83, 2c83], [2c85, 2c85],
434        [2c87, 2c87], [2c89, 2c89], [2c8b, 2c8b], [2c8d, 2c8d],
435        [2c8f, 2c8f], [2c91, 2c91], [2c93, 2c93], [2c95, 2c95],
436        [2c97, 2c97], [2c99, 2c99], [2c9b, 2c9b], [2c9d, 2c9d],
437        [2c9f, 2c9f], [2ca1, 2ca1], [2ca3, 2ca3], [2ca5, 2ca5],
438        [2ca7, 2ca7], [2ca9, 2ca9], [2cab, 2cab], [2cad, 2cad],
439        [2caf, 2caf], [2cb1, 2cb1], [2cb3, 2cb3], [2cb5, 2cb5],
440        [2cb7, 2cb7], [2cb9, 2cb9], [2cbb, 2cbb], [2cbd, 2cbd],
441        [2cbf, 2cbf], [2cc1, 2cc1], [2cc3, 2cc3], [2cc5, 2cc5],
442        [2cc7, 2cc7], [2cc9, 2cc9], [2ccb, 2ccb], [2ccd, 2ccd],
443        [2ccf, 2ccf], [2cd1, 2cd1], [2cd3, 2cd3], [2cd5, 2cd5],
444        [2cd7, 2cd7], [2cd9, 2cd9], [2cdb, 2cdb], [2cdd, 2cdd],
445        [2cdf, 2cdf], [2ce1, 2ce1], [2ce3, 2cea], [2cec, 2cec],
446        [2cee, 2cf1], [2cf3, a63f], [a641, a641], [a643, a643],
447        [a645, a645], [a647, a647], [a649, a649], [a64b, a64b],
448        [a64d, a64d], [a64f, a64f], [a651, a651], [a653, a653],
449        [a655, a655], [a657, a657], [a659, a659], [a65b, a65b],
450        [a65d, a65d], [a65f, a65f], [a661, a661], [a663, a663],
451        [a665, a665], [a667, a667], [a669, a669], [a66b, a66b],
452        [a66d, a67f], [a681, a681], [a683, a683], [a685, a685],
453        [a687, a687], [a689, a689], [a68b, a68b], [a68d, a68d],
454        [a68f, a68f], [a691, a691], [a693, a693], [a695, a695],
455        [a697, a697], [a699, a699], [a69b, a721], [a723, a723],
456        [a725, a725], [a727, a727], [a729, a729], [a72b, a72b],
457        [a72d, a72d], [a72f, a731], [a733, a733], [a735, a735],
458        [a737, a737], [a739, a739], [a73b, a73b], [a73d, a73d],
459        [a73f, a73f], [a741, a741], [a743, a743], [a745, a745],
460        [a747, a747], [a749, a749], [a74b, a74b], [a74d, a74d],
461        [a74f, a74f], [a751, a751], [a753, a753], [a755, a755],
462        [a757, a757], [a759, a759], [a75b, a75b], [a75d, a75d],
463        [a75f, a75f], [a761, a761], [a763, a763], [a765, a765],
464        [a767, a767], [a769, a769], [a76b, a76b], [a76d, a76d],
465        [a76f, a778], [a77a, a77a], [a77c, a77c], [a77f, a77f],
466        [a781, a781], [a783, a783], [a785, a785], [a787, a78a],
467        [a78c, a78c], [a78e, a78f], [a791, a791], [a793, a795],
468        [a797, a797], [a799, a799], [a79b, a79b], [a79d, a79d],
469        [a79f, a79f], [a7a1, a7a1], [a7a3, a7a3], [a7a5, a7a5],
470        [a7a7, a7a7], [a7a9, a7a9], [a7af, a7af], [a7b5, a7b5],
471        [a7b7, ab6f], [abc0, ff20], [ff3b, 103ff], [10428, 104af],
472        [104d4, 10c7f], [10cb3, 1189f], [118c0, 1e8ff], [1e922, 10ffff]**/
473       
474       
475        namespace {
476        const static UnicodeSet::run_t __reflexive_set_runs[] = {
477        {Full, 2}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 1},
478        {Mixed, 11}, {Full, 7}, {Mixed, 6}, {Empty, 1}, {Mixed, 1},
479        {Full, 1}, {Mixed, 8}, {Full, 90}, {Empty, 1}, {Mixed, 1},
480        {Full, 24}, {Mixed, 1}, {Full, 68}, {Mixed, 1}, {Full, 11},
481        {Mixed, 16}, {Full, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
482        {Full, 24}, {Mixed, 2}, {Full, 57}, {Empty, 1}, {Mixed, 1},
483        {Full, 1}, {Mixed, 5}, {Full, 970}, {Mixed, 3}, {Full, 4},
484        {Mixed, 5}, {Full, 29}, {Mixed, 1}, {Empty, 2}, {Full, 667},
485        {Mixed, 1}, {Full, 38}, {Empty, 1}, {Mixed, 1}, {Full, 3},
486        {Mixed, 2}, {Full, 61}, {Empty, 1}, {Mixed, 1}, {Full, 95},
487        {Empty, 1}, {Full, 1666}, {Empty, 1}, {Mixed, 1}, {Full, 30902}};
488        const static UnicodeSet::bitquad_t  __reflexive_set_quads[] = {
489        0xf8000001, 0xffdfffff, 0x80800000, 0xaaaaaaaa, 0x55abaaaa,
490        0xaaaaab55, 0x54aaaaaa, 0x4e243129, 0xee512d2a, 0xb555524f,
491        0xaa29aaaa, 0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xffffffdf,
492        0x7fbaffff, 0x000128bf, 0xfffff004, 0xaa9c7ffb, 0x194caaaa,
493        0xffff0000, 0xaaaaaaaa, 0xaaaaabfe, 0xaaaaaaaa, 0xaaaad554,
494        0xaaaaaaaa, 0xaaaaaaaa, 0x0001aaaa, 0xff800000, 0xffffdf40,
495        0xc0ffffff, 0xfffffe00, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
496        0xaaaaaaaa, 0xb7eaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
497        0xc0ff00ff, 0x00ff00ff, 0x55ffc0ff, 0xffff00ff, 0x00ff00ff,
498        0xa0ff00ff, 0xf0ffe0ff, 0xe0ffe0ff, 0xfffbf3bf, 0xffff0000,
499        0xfffffff7, 0x003fffff, 0xffff0000, 0xffff8000, 0x3fda1562,
500        0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xfffbd7fa, 0xaaaaaaaa,
501        0xffffeaaa, 0xfaaaaaaa, 0xaaabaaab, 0xaaaaaaaa, 0x95ffaaaa,
502        0xaabad7aa, 0xffa082aa, 0x0000ffff, 0xf8000001, 0xffffff00,
503        0x0000ffff, 0xfff00000, 0xfff80000, 0xfffffffc};
504        }
505
506        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};
507
508
509
510        const unsigned buffer_length = 4958;
511        const static char string_buffer LLVM_ALIGNAS(32) [5120] = u8R"__(a
512b
513c
514d
515e
516f
517g
518h
519i
520j
521k
522l
523m
524n
525o
526p
527q
528r
529s
530t
531u
532v
533w
534x
535y
536z
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Ä©
589Ä«
590Ä­
591į
592ij
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ÿ
627ź
628Ō
629ÅŸ
630s
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ƶ
664ʒ
665ƹ
666Ɯ
667dž
668dž
669lj
670lj
671nj
672nj
673ǎ
674ǐ
675ǒ
676ǔ
677ǖ
678ǘ
679ǚ
680ǜ
681ǟ
682Ç¡
683Ç£
684Ç¥
685ǧ
686Ç©
687Ç«
688Ç­
689ǯ
690dz
691dz
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ᜌ
1265᜜
1266ῳ
1267ω
1268k
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𞥃
1836)__";
1837
1838        const static std::vector<codepoint_t> defined_cps{
1839        0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
1840        0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
1841        0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
1842        0x0059, 0x005a, 0x00b5, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4,
1843        0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc,
1844        0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4,
1845        0x00d5, 0x00d6, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd,
1846        0x00de, 0x0100, 0x0102, 0x0104, 0x0106, 0x0108, 0x010a, 0x010c,
1847        0x010e, 0x0110, 0x0112, 0x0114, 0x0116, 0x0118, 0x011a, 0x011c,
1848        0x011e, 0x0120, 0x0122, 0x0124, 0x0126, 0x0128, 0x012a, 0x012c,
1849        0x012e, 0x0132, 0x0134, 0x0136, 0x0139, 0x013b, 0x013d, 0x013f,
1850        0x0141, 0x0143, 0x0145, 0x0147, 0x014a, 0x014c, 0x014e, 0x0150,
1851        0x0152, 0x0154, 0x0156, 0x0158, 0x015a, 0x015c, 0x015e, 0x0160,
1852        0x0162, 0x0164, 0x0166, 0x0168, 0x016a, 0x016c, 0x016e, 0x0170,
1853        0x0172, 0x0174, 0x0176, 0x0178, 0x0179, 0x017b, 0x017d, 0x017f,
1854        0x0181, 0x0182, 0x0184, 0x0186, 0x0187, 0x0189, 0x018a, 0x018b,
1855        0x018e, 0x018f, 0x0190, 0x0191, 0x0193, 0x0194, 0x0196, 0x0197,
1856        0x0198, 0x019c, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6,
1857        0x01a7, 0x01a9, 0x01ac, 0x01ae, 0x01af, 0x01b1, 0x01b2, 0x01b3,
1858        0x01b5, 0x01b7, 0x01b8, 0x01bc, 0x01c4, 0x01c5, 0x01c7, 0x01c8,
1859        0x01ca, 0x01cb, 0x01cd, 0x01cf, 0x01d1, 0x01d3, 0x01d5, 0x01d7,
1860        0x01d9, 0x01db, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e6, 0x01e8,
1861        0x01ea, 0x01ec, 0x01ee, 0x01f1, 0x01f2, 0x01f4, 0x01f6, 0x01f7,
1862        0x01f8, 0x01fa, 0x01fc, 0x01fe, 0x0200, 0x0202, 0x0204, 0x0206,
1863        0x0208, 0x020a, 0x020c, 0x020e, 0x0210, 0x0212, 0x0214, 0x0216,
1864        0x0218, 0x021a, 0x021c, 0x021e, 0x0220, 0x0222, 0x0224, 0x0226,
1865        0x0228, 0x022a, 0x022c, 0x022e, 0x0230, 0x0232, 0x023a, 0x023b,
1866        0x023d, 0x023e, 0x0241, 0x0243, 0x0244, 0x0245, 0x0246, 0x0248,
1867        0x024a, 0x024c, 0x024e, 0x0345, 0x0370, 0x0372, 0x0376, 0x037f,
1868        0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f, 0x0391,
1869        0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399,
1870        0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1,
1871        0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa,
1872        0x03ab, 0x03c2, 0x03cf, 0x03d0, 0x03d1, 0x03d5, 0x03d6, 0x03d8,
1873        0x03da, 0x03dc, 0x03de, 0x03e0, 0x03e2, 0x03e4, 0x03e6, 0x03e8,
1874        0x03ea, 0x03ec, 0x03ee, 0x03f0, 0x03f1, 0x03f4, 0x03f5, 0x03f7,
1875        0x03f9, 0x03fa, 0x03fd, 0x03fe, 0x03ff, 0x0400, 0x0401, 0x0402,
1876        0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a,
1877        0x040b, 0x040c, 0x040d, 0x040e, 0x040f, 0x0410, 0x0411, 0x0412,
1878        0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a,
1879        0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422,
1880        0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a,
1881        0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0460, 0x0462, 0x0464,
1882        0x0466, 0x0468, 0x046a, 0x046c, 0x046e, 0x0470, 0x0472, 0x0474,
1883        0x0476, 0x0478, 0x047a, 0x047c, 0x047e, 0x0480, 0x048a, 0x048c,
1884        0x048e, 0x0490, 0x0492, 0x0494, 0x0496, 0x0498, 0x049a, 0x049c,
1885        0x049e, 0x04a0, 0x04a2, 0x04a4, 0x04a6, 0x04a8, 0x04aa, 0x04ac,
1886        0x04ae, 0x04b0, 0x04b2, 0x04b4, 0x04b6, 0x04b8, 0x04ba, 0x04bc,
1887        0x04be, 0x04c0, 0x04c1, 0x04c3, 0x04c5, 0x04c7, 0x04c9, 0x04cb,
1888        0x04cd, 0x04d0, 0x04d2, 0x04d4, 0x04d6, 0x04d8, 0x04da, 0x04dc,
1889        0x04de, 0x04e0, 0x04e2, 0x04e4, 0x04e6, 0x04e8, 0x04ea, 0x04ec,
1890        0x04ee, 0x04f0, 0x04f2, 0x04f4, 0x04f6, 0x04f8, 0x04fa, 0x04fc,
1891        0x04fe, 0x0500, 0x0502, 0x0504, 0x0506, 0x0508, 0x050a, 0x050c,
1892        0x050e, 0x0510, 0x0512, 0x0514, 0x0516, 0x0518, 0x051a, 0x051c,
1893        0x051e, 0x0520, 0x0522, 0x0524, 0x0526, 0x0528, 0x052a, 0x052c,
1894        0x052e, 0x0531, 0x0532, 0x0533, 0x0534, 0x0535, 0x0536, 0x0537,
1895        0x0538, 0x0539, 0x053a, 0x053b, 0x053c, 0x053d, 0x053e, 0x053f,
1896        0x0540, 0x0541, 0x0542, 0x0543, 0x0544, 0x0545, 0x0546, 0x0547,
1897        0x0548, 0x0549, 0x054a, 0x054b, 0x054c, 0x054d, 0x054e, 0x054f,
1898        0x0550, 0x0551, 0x0552, 0x0553, 0x0554, 0x0555, 0x0556, 0x10a0,
1899        0x10a1, 0x10a2, 0x10a3, 0x10a4, 0x10a5, 0x10a6, 0x10a7, 0x10a8,
1900        0x10a9, 0x10aa, 0x10ab, 0x10ac, 0x10ad, 0x10ae, 0x10af, 0x10b0,
1901        0x10b1, 0x10b2, 0x10b3, 0x10b4, 0x10b5, 0x10b6, 0x10b7, 0x10b8,
1902        0x10b9, 0x10ba, 0x10bb, 0x10bc, 0x10bd, 0x10be, 0x10bf, 0x10c0,
1903        0x10c1, 0x10c2, 0x10c3, 0x10c4, 0x10c5, 0x10c7, 0x10cd, 0x13f8,
1904        0x13f9, 0x13fa, 0x13fb, 0x13fc, 0x13fd, 0x1c80, 0x1c81, 0x1c82,
1905        0x1c83, 0x1c84, 0x1c85, 0x1c86, 0x1c87, 0x1c88, 0x1e00, 0x1e02,
1906        0x1e04, 0x1e06, 0x1e08, 0x1e0a, 0x1e0c, 0x1e0e, 0x1e10, 0x1e12,
1907        0x1e14, 0x1e16, 0x1e18, 0x1e1a, 0x1e1c, 0x1e1e, 0x1e20, 0x1e22,
1908        0x1e24, 0x1e26, 0x1e28, 0x1e2a, 0x1e2c, 0x1e2e, 0x1e30, 0x1e32,
1909        0x1e34, 0x1e36, 0x1e38, 0x1e3a, 0x1e3c, 0x1e3e, 0x1e40, 0x1e42,
1910        0x1e44, 0x1e46, 0x1e48, 0x1e4a, 0x1e4c, 0x1e4e, 0x1e50, 0x1e52,
1911        0x1e54, 0x1e56, 0x1e58, 0x1e5a, 0x1e5c, 0x1e5e, 0x1e60, 0x1e62,
1912        0x1e64, 0x1e66, 0x1e68, 0x1e6a, 0x1e6c, 0x1e6e, 0x1e70, 0x1e72,
1913        0x1e74, 0x1e76, 0x1e78, 0x1e7a, 0x1e7c, 0x1e7e, 0x1e80, 0x1e82,
1914        0x1e84, 0x1e86, 0x1e88, 0x1e8a, 0x1e8c, 0x1e8e, 0x1e90, 0x1e92,
1915        0x1e94, 0x1e9b, 0x1e9e, 0x1ea0, 0x1ea2, 0x1ea4, 0x1ea6, 0x1ea8,
1916        0x1eaa, 0x1eac, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6, 0x1eb8,
1917        0x1eba, 0x1ebc, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6, 0x1ec8,
1918        0x1eca, 0x1ecc, 0x1ece, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
1919        0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2, 0x1ee4, 0x1ee6, 0x1ee8,
1920        0x1eea, 0x1eec, 0x1eee, 0x1ef0, 0x1ef2, 0x1ef4, 0x1ef6, 0x1ef8,
1921        0x1efa, 0x1efc, 0x1efe, 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c,
1922        0x1f0d, 0x1f0e, 0x1f0f, 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c,
1923        0x1f1d, 0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e,
1924        0x1f2f, 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e,
1925        0x1f3f, 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0x1f59,
1926        0x1f5b, 0x1f5d, 0x1f5f, 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c,
1927        0x1f6d, 0x1f6e, 0x1f6f, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c,
1928        0x1f8d, 0x1f8e, 0x1f8f, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c,
1929        0x1f9d, 0x1f9e, 0x1f9f, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac,
1930        0x1fad, 0x1fae, 0x1faf, 0x1fb8, 0x1fb9, 0x1fba, 0x1fbb, 0x1fbc,
1931        0x1fbe, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fcc, 0x1fd8, 0x1fd9,
1932        0x1fda, 0x1fdb, 0x1fe8, 0x1fe9, 0x1fea, 0x1feb, 0x1fec, 0x1ff8,
1933        0x1ff9, 0x1ffa, 0x1ffb, 0x1ffc, 0x2126, 0x212a, 0x212b, 0x2132,
1934        0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167,
1935        0x2168, 0x2169, 0x216a, 0x216b, 0x216c, 0x216d, 0x216e, 0x216f,
1936        0x2183, 0x24b6, 0x24b7, 0x24b8, 0x24b9, 0x24ba, 0x24bb, 0x24bc,
1937        0x24bd, 0x24be, 0x24bf, 0x24c0, 0x24c1, 0x24c2, 0x24c3, 0x24c4,
1938        0x24c5, 0x24c6, 0x24c7, 0x24c8, 0x24c9, 0x24ca, 0x24cb, 0x24cc,
1939        0x24cd, 0x24ce, 0x24cf, 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04,
1940        0x2c05, 0x2c06, 0x2c07, 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c,
1941        0x2c0d, 0x2c0e, 0x2c0f, 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14,
1942        0x2c15, 0x2c16, 0x2c17, 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c,
1943        0x2c1d, 0x2c1e, 0x2c1f, 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x2c24,
1944        0x2c25, 0x2c26, 0x2c27, 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c,
1945        0x2c2d, 0x2c2e, 0x2c60, 0x2c62, 0x2c63, 0x2c64, 0x2c67, 0x2c69,
1946        0x2c6b, 0x2c6d, 0x2c6e, 0x2c6f, 0x2c70, 0x2c72, 0x2c75, 0x2c7e,
1947        0x2c7f, 0x2c80, 0x2c82, 0x2c84, 0x2c86, 0x2c88, 0x2c8a, 0x2c8c,
1948        0x2c8e, 0x2c90, 0x2c92, 0x2c94, 0x2c96, 0x2c98, 0x2c9a, 0x2c9c,
1949        0x2c9e, 0x2ca0, 0x2ca2, 0x2ca4, 0x2ca6, 0x2ca8, 0x2caa, 0x2cac,
1950        0x2cae, 0x2cb0, 0x2cb2, 0x2cb4, 0x2cb6, 0x2cb8, 0x2cba, 0x2cbc,
1951        0x2cbe, 0x2cc0, 0x2cc2, 0x2cc4, 0x2cc6, 0x2cc8, 0x2cca, 0x2ccc,
1952        0x2cce, 0x2cd0, 0x2cd2, 0x2cd4, 0x2cd6, 0x2cd8, 0x2cda, 0x2cdc,
1953        0x2cde, 0x2ce0, 0x2ce2, 0x2ceb, 0x2ced, 0x2cf2, 0xa640, 0xa642,
1954        0xa644, 0xa646, 0xa648, 0xa64a, 0xa64c, 0xa64e, 0xa650, 0xa652,
1955        0xa654, 0xa656, 0xa658, 0xa65a, 0xa65c, 0xa65e, 0xa660, 0xa662,
1956        0xa664, 0xa666, 0xa668, 0xa66a, 0xa66c, 0xa680, 0xa682, 0xa684,
1957        0xa686, 0xa688, 0xa68a, 0xa68c, 0xa68e, 0xa690, 0xa692, 0xa694,
1958        0xa696, 0xa698, 0xa69a, 0xa722, 0xa724, 0xa726, 0xa728, 0xa72a,
1959        0xa72c, 0xa72e, 0xa732, 0xa734, 0xa736, 0xa738, 0xa73a, 0xa73c,
1960        0xa73e, 0xa740, 0xa742, 0xa744, 0xa746, 0xa748, 0xa74a, 0xa74c,
1961        0xa74e, 0xa750, 0xa752, 0xa754, 0xa756, 0xa758, 0xa75a, 0xa75c,
1962        0xa75e, 0xa760, 0xa762, 0xa764, 0xa766, 0xa768, 0xa76a, 0xa76c,
1963        0xa76e, 0xa779, 0xa77b, 0xa77d, 0xa77e, 0xa780, 0xa782, 0xa784,
1964        0xa786, 0xa78b, 0xa78d, 0xa790, 0xa792, 0xa796, 0xa798, 0xa79a,
1965        0xa79c, 0xa79e, 0xa7a0, 0xa7a2, 0xa7a4, 0xa7a6, 0xa7a8, 0xa7aa,
1966        0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3,
1967        0xa7b4, 0xa7b6, 0xab70, 0xab71, 0xab72, 0xab73, 0xab74, 0xab75,
1968        0xab76, 0xab77, 0xab78, 0xab79, 0xab7a, 0xab7b, 0xab7c, 0xab7d,
1969        0xab7e, 0xab7f, 0xab80, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85,
1970        0xab86, 0xab87, 0xab88, 0xab89, 0xab8a, 0xab8b, 0xab8c, 0xab8d,
1971        0xab8e, 0xab8f, 0xab90, 0xab91, 0xab92, 0xab93, 0xab94, 0xab95,
1972        0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d,
1973        0xab9e, 0xab9f, 0xaba0, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5,
1974        0xaba6, 0xaba7, 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad,
1975        0xabae, 0xabaf, 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5,
1976        0xabb6, 0xabb7, 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd,
1977        0xabbe, 0xabbf, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26,
1978        0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e,
1979        0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36,
1980        0xff37, 0xff38, 0xff39, 0xff3a, 0x10400, 0x10401, 0x10402, 0x10403,
1981        0x10404, 0x10405, 0x10406, 0x10407, 0x10408, 0x10409, 0x1040a,
1982        0x1040b, 0x1040c, 0x1040d, 0x1040e, 0x1040f, 0x10410, 0x10411,
1983        0x10412, 0x10413, 0x10414, 0x10415, 0x10416, 0x10417, 0x10418,
1984        0x10419, 0x1041a, 0x1041b, 0x1041c, 0x1041d, 0x1041e, 0x1041f,
1985        0x10420, 0x10421, 0x10422, 0x10423, 0x10424, 0x10425, 0x10426,
1986        0x10427, 0x104b0, 0x104b1, 0x104b2, 0x104b3, 0x104b4, 0x104b5,
1987        0x104b6, 0x104b7, 0x104b8, 0x104b9, 0x104ba, 0x104bb, 0x104bc,
1988        0x104bd, 0x104be, 0x104bf, 0x104c0, 0x104c1, 0x104c2, 0x104c3,
1989        0x104c4, 0x104c5, 0x104c6, 0x104c7, 0x104c8, 0x104c9, 0x104ca,
1990        0x104cb, 0x104cc, 0x104cd, 0x104ce, 0x104cf, 0x104d0, 0x104d1,
1991        0x104d2, 0x104d3, 0x10c80, 0x10c81, 0x10c82, 0x10c83, 0x10c84,
1992        0x10c85, 0x10c86, 0x10c87, 0x10c88, 0x10c89, 0x10c8a, 0x10c8b,
1993        0x10c8c, 0x10c8d, 0x10c8e, 0x10c8f, 0x10c90, 0x10c91, 0x10c92,
1994        0x10c93, 0x10c94, 0x10c95, 0x10c96, 0x10c97, 0x10c98, 0x10c99,
1995        0x10c9a, 0x10c9b, 0x10c9c, 0x10c9d, 0x10c9e, 0x10c9f, 0x10ca0,
1996        0x10ca1, 0x10ca2, 0x10ca3, 0x10ca4, 0x10ca5, 0x10ca6, 0x10ca7,
1997        0x10ca8, 0x10ca9, 0x10caa, 0x10cab, 0x10cac, 0x10cad, 0x10cae,
1998        0x10caf, 0x10cb0, 0x10cb1, 0x10cb2, 0x118a0, 0x118a1, 0x118a2,
1999        0x118a3, 0x118a4, 0x118a5, 0x118a6, 0x118a7, 0x118a8, 0x118a9,
2000        0x118aa, 0x118ab, 0x118ac, 0x118ad, 0x118ae, 0x118af, 0x118b0,
2001        0x118b1, 0x118b2, 0x118b3, 0x118b4, 0x118b5, 0x118b6, 0x118b7,
2002        0x118b8, 0x118b9, 0x118ba, 0x118bb, 0x118bc, 0x118bd, 0x118be,
2003        0x118bf, 0x1e900, 0x1e901, 0x1e902, 0x1e903, 0x1e904, 0x1e905,
2004        0x1e906, 0x1e907, 0x1e908, 0x1e909, 0x1e90a, 0x1e90b, 0x1e90c,
2005        0x1e90d, 0x1e90e, 0x1e90f, 0x1e910, 0x1e911, 0x1e912, 0x1e913,
2006        0x1e914, 0x1e915, 0x1e916, 0x1e917, 0x1e918, 0x1e919, 0x1e91a,
2007        0x1e91b, 0x1e91c, 0x1e91d, 0x1e91e, 0x1e91f, 0x1e920, 0x1e921};
2008        static StringPropertyObject property_object(scf, 
2009                                                    std::move(null_codepoint_set), 
2010                                                    std::move(reflexive_set), 
2011                                                    static_cast<const char *>(string_buffer), 
2012                                                    buffer_length, 
2013                                                    std::move(defined_cps));
2014    }
2015    namespace CF_ns {
2016        /** Code Point Ranges for cf (possibly overriding values from SCF)
2017        [00df, 00df], [0130, 0130], [0149, 0149], [01f0, 01f0],
2018        [0390, 0390], [03b0, 03b0], [0587, 0587], [1e96, 1e9a],
2019        [1e9e, 1e9e], [1f50, 1f50], [1f52, 1f52], [1f54, 1f54],
2020        [1f56, 1f56], [1f80, 1faf], [1fb2, 1fb4], [1fb6, 1fb7],
2021        [1fbc, 1fbc], [1fc2, 1fc4], [1fc6, 1fc7], [1fcc, 1fcc],
2022        [1fd2, 1fd3], [1fd6, 1fd7], [1fe2, 1fe4], [1fe6, 1fe7],
2023        [1ff2, 1ff4], [1ff6, 1ff7], [1ffc, 1ffc], [fb00, fb06],
2024        [fb13, fb17]**/
2025
2026       
2027        namespace {
2028        const static UnicodeSet::run_t __explicitly_defined_set_runs[] = {
2029        {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
2030        {Mixed, 1}, {Empty, 12}, {Mixed, 2}, {Empty, 14}, {Mixed, 1},
2031        {Empty, 199}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1},
2032        {Full, 1}, {Mixed, 3}, {Empty, 1752}, {Mixed, 1}, {Empty, 32807}};
2033        const static UnicodeSet::bitquad_t  __explicitly_defined_set_quads[] = {
2034        0x80000000, 0x00010000, 0x00000200, 0x00010000, 0x00010000,
2035        0x00010000, 0x00000080, 0x47c00000, 0x00550000, 0x10dcffff,
2036        0x00cc10dc, 0x10dc00dc, 0x00f8007f};
2037        }
2038
2039        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};
2040
2041
2042
2043        const unsigned buffer_length = 575;
2044        const static char string_buffer LLVM_ALIGNAS(32) [768] = u8R"__(ss
2045i̇
2046ÊŒn
2047ǰ
2048ΐ
2049ΰ
2050եւ
2051ẖ
2052ẗ
2053ẘ
2054ẙ
2055aÊŸ
2056ss
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ώι
2133ῶ
2134ῶι
2135ωι
2136ff
2137fi
2138fl
2139ffi
2140ffl
2141st
2142st
2143ÕŽÕ¶
2144ÕŽÕ¥
2145ÕŽÕ«
2146ÕŸÕ¶
2147ÕŽÕ­
2148)__";
2149
2150        const static std::vector<codepoint_t> defined_cps{
2151        0x00df, 0x0130, 0x0149, 0x01f0, 0x0390, 0x03b0, 0x0587, 0x1e96,
2152        0x1e97, 0x1e98, 0x1e99, 0x1e9a, 0x1e9e, 0x1f50, 0x1f52, 0x1f54,
2153        0x1f56, 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86,
2154        0x1f87, 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e,
2155        0x1f8f, 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96,
2156        0x1f97, 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e,
2157        0x1f9f, 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6,
2158        0x1fa7, 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae,
2159        0x1faf, 0x1fb2, 0x1fb3, 0x1fb4, 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc2,
2160        0x1fc3, 0x1fc4, 0x1fc6, 0x1fc7, 0x1fcc, 0x1fd2, 0x1fd3, 0x1fd6,
2161        0x1fd7, 0x1fe2, 0x1fe3, 0x1fe4, 0x1fe6, 0x1fe7, 0x1ff2, 0x1ff3,
2162        0x1ff4, 0x1ff6, 0x1ff7, 0x1ffc, 0xfb00, 0xfb01, 0xfb02, 0xfb03,
2163        0xfb04, 0xfb05, 0xfb06, 0xfb13, 0xfb14, 0xfb15, 0xfb16, 0xfb17};
2164        static StringOverridePropertyObject property_object(cf, 
2165                                                    SCF_ns::property_object, 
2166                                                    std::move(explicitly_defined_set), 
2167                                                    static_cast<const char *>(string_buffer), 
2168                                                    buffer_length, 
2169                                                    std::move(defined_cps));
2170    }
2171}
2172
2173#endif
Note: See TracBrowser for help on using the repository browser.