source: icGREP/icgrep-devel/icgrep/UCD/DerivedGeneralCategory.h

Last change on this file was 6192, checked in by cameron, 8 months ago

Updates for Unicode 11.0 plus Emoji properties

File size: 190.8 KB
Line 
1#ifndef DERIVEDGENERALCATEGORY_H
2#define DERIVEDGENERALCATEGORY_H
3/*
4 *  Copyright (c) 2018 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 UCD_properties.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
16namespace UCD {
17  namespace GC_ns {
18    const unsigned independent_prop_values = 30;
19    /** Code Point Ranges for Cn
20    [0378, 0379], [0380, 0383], [038b, 038b], [038d, 038d], [03a2, 03a2],
21    [0530, 0530], [0557, 0558], [058b, 058c], [0590, 0590], [05c8, 05cf],
22    [05eb, 05ee], [05f5, 05ff], [061d, 061d], [070e, 070e], [074b, 074c],
23    [07b2, 07bf], [07fb, 07fc], [082e, 082f], [083f, 083f], [085c, 085d],
24    [085f, 085f], [086b, 089f], [08b5, 08b5], [08be, 08d2], [0984, 0984],
25    [098d, 098e], [0991, 0992], [09a9, 09a9], [09b1, 09b1], [09b3, 09b5],
26    [09ba, 09bb], [09c5, 09c6], [09c9, 09ca], [09cf, 09d6], [09d8, 09db],
27    [09de, 09de], [09e4, 09e5], [09ff, 0a00], [0a04, 0a04], [0a0b, 0a0e],
28    [0a11, 0a12], [0a29, 0a29], [0a31, 0a31], [0a34, 0a34], [0a37, 0a37],
29    [0a3a, 0a3b], [0a3d, 0a3d], [0a43, 0a46], [0a49, 0a4a], [0a4e, 0a50],
30    [0a52, 0a58], [0a5d, 0a5d], [0a5f, 0a65], [0a77, 0a80], [0a84, 0a84],
31    [0a8e, 0a8e], [0a92, 0a92], [0aa9, 0aa9], [0ab1, 0ab1], [0ab4, 0ab4],
32    [0aba, 0abb], [0ac6, 0ac6], [0aca, 0aca], [0ace, 0acf], [0ad1, 0adf],
33    [0ae4, 0ae5], [0af2, 0af8], [0b00, 0b00], [0b04, 0b04], [0b0d, 0b0e],
34    [0b11, 0b12], [0b29, 0b29], [0b31, 0b31], [0b34, 0b34], [0b3a, 0b3b],
35    [0b45, 0b46], [0b49, 0b4a], [0b4e, 0b55], [0b58, 0b5b], [0b5e, 0b5e],
36    [0b64, 0b65], [0b78, 0b81], [0b84, 0b84], [0b8b, 0b8d], [0b91, 0b91],
37    [0b96, 0b98], [0b9b, 0b9b], [0b9d, 0b9d], [0ba0, 0ba2], [0ba5, 0ba7],
38    [0bab, 0bad], [0bba, 0bbd], [0bc3, 0bc5], [0bc9, 0bc9], [0bce, 0bcf],
39    [0bd1, 0bd6], [0bd8, 0be5], [0bfb, 0bff], [0c0d, 0c0d], [0c11, 0c11],
40    [0c29, 0c29], [0c3a, 0c3c], [0c45, 0c45], [0c49, 0c49], [0c4e, 0c54],
41    [0c57, 0c57], [0c5b, 0c5f], [0c64, 0c65], [0c70, 0c77], [0c8d, 0c8d],
42    [0c91, 0c91], [0ca9, 0ca9], [0cb4, 0cb4], [0cba, 0cbb], [0cc5, 0cc5],
43    [0cc9, 0cc9], [0cce, 0cd4], [0cd7, 0cdd], [0cdf, 0cdf], [0ce4, 0ce5],
44    [0cf0, 0cf0], [0cf3, 0cff], [0d04, 0d04], [0d0d, 0d0d], [0d11, 0d11],
45    [0d45, 0d45], [0d49, 0d49], [0d50, 0d53], [0d64, 0d65], [0d80, 0d81],
46    [0d84, 0d84], [0d97, 0d99], [0db2, 0db2], [0dbc, 0dbc], [0dbe, 0dbf],
47    [0dc7, 0dc9], [0dcb, 0dce], [0dd5, 0dd5], [0dd7, 0dd7], [0de0, 0de5],
48    [0df0, 0df1], [0df5, 0e00], [0e3b, 0e3e], [0e5c, 0e80], [0e83, 0e83],
49    [0e85, 0e86], [0e89, 0e89], [0e8b, 0e8c], [0e8e, 0e93], [0e98, 0e98],
50    [0ea0, 0ea0], [0ea4, 0ea4], [0ea6, 0ea6], [0ea8, 0ea9], [0eac, 0eac],
51    [0eba, 0eba], [0ebe, 0ebf], [0ec5, 0ec5], [0ec7, 0ec7], [0ece, 0ecf],
52    [0eda, 0edb], [0ee0, 0eff], [0f48, 0f48], [0f6d, 0f70], [0f98, 0f98],
53    [0fbd, 0fbd], [0fcd, 0fcd], [0fdb, 0fff], [10c6, 10c6], [10c8, 10cc],
54    [10ce, 10cf], [1249, 1249], [124e, 124f], [1257, 1257], [1259, 1259],
55    [125e, 125f], [1289, 1289], [128e, 128f], [12b1, 12b1], [12b6, 12b7],
56    [12bf, 12bf], [12c1, 12c1], [12c6, 12c7], [12d7, 12d7], [1311, 1311],
57    [1316, 1317], [135b, 135c], [137d, 137f], [139a, 139f], [13f6, 13f7],
58    [13fe, 13ff], [169d, 169f], [16f9, 16ff], [170d, 170d], [1715, 171f],
59    [1737, 173f], [1754, 175f], [176d, 176d], [1771, 1771], [1774, 177f],
60    [17de, 17df], [17ea, 17ef], [17fa, 17ff], [180f, 180f], [181a, 181f],
61    [1879, 187f], [18ab, 18af], [18f6, 18ff], [191f, 191f], [192c, 192f],
62    [193c, 193f], [1941, 1943], [196e, 196f], [1975, 197f], [19ac, 19af],
63    [19ca, 19cf], [19db, 19dd], [1a1c, 1a1d], [1a5f, 1a5f], [1a7d, 1a7e],
64    [1a8a, 1a8f], [1a9a, 1a9f], [1aae, 1aaf], [1abf, 1aff], [1b4c, 1b4f],
65    [1b7d, 1b7f], [1bf4, 1bfb], [1c38, 1c3a], [1c4a, 1c4c], [1c89, 1c8f],
66    [1cbb, 1cbc], [1cc8, 1ccf], [1cfa, 1cff], [1dfa, 1dfa], [1f16, 1f17],
67    [1f1e, 1f1f], [1f46, 1f47], [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a],
68    [1f5c, 1f5c], [1f5e, 1f5e], [1f7e, 1f7f], [1fb5, 1fb5], [1fc5, 1fc5],
69    [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1], [1ff5, 1ff5], [1fff, 1fff],
70    [2065, 2065], [2072, 2073], [208f, 208f], [209d, 209f], [20c0, 20cf],
71    [20f1, 20ff], [218c, 218f], [2427, 243f], [244b, 245f], [2b74, 2b75],
72    [2b96, 2b97], [2bc9, 2bc9], [2bff, 2bff], [2c2f, 2c2f], [2c5f, 2c5f],
73    [2cf4, 2cf8], [2d26, 2d26], [2d28, 2d2c], [2d2e, 2d2f], [2d68, 2d6e],
74    [2d71, 2d7e], [2d97, 2d9f], [2da7, 2da7], [2daf, 2daf], [2db7, 2db7],
75    [2dbf, 2dbf], [2dc7, 2dc7], [2dcf, 2dcf], [2dd7, 2dd7], [2ddf, 2ddf],
76    [2e4f, 2e7f], [2e9a, 2e9a], [2ef4, 2eff], [2fd6, 2fef], [2ffc, 2fff],
77    [3040, 3040], [3097, 3098], [3100, 3104], [3130, 3130], [318f, 318f],
78    [31bb, 31bf], [31e4, 31ef], [321f, 321f], [32ff, 32ff], [4db6, 4dbf],
79    [9ff0, 9fff], [a48d, a48f], [a4c7, a4cf], [a62c, a63f], [a6f8, a6ff],
80    [a7ba, a7f6], [a82c, a82f], [a83a, a83f], [a878, a87f], [a8c6, a8cd],
81    [a8da, a8df], [a954, a95e], [a97d, a97f], [a9ce, a9ce], [a9da, a9dd],
82    [a9ff, a9ff], [aa37, aa3f], [aa4e, aa4f], [aa5a, aa5b], [aac3, aada],
83    [aaf7, ab00], [ab07, ab08], [ab0f, ab10], [ab17, ab1f], [ab27, ab27],
84    [ab2f, ab2f], [ab66, ab6f], [abee, abef], [abfa, abff], [d7a4, d7af],
85    [d7c7, d7ca], [d7fc, d7ff], [fa6e, fa6f], [fada, faff], [fb07, fb12],
86    [fb18, fb1c], [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f], [fb42, fb42],
87    [fb45, fb45], [fbc2, fbd2], [fd40, fd4f], [fd90, fd91], [fdc8, fdef],
88    [fdfe, fdff], [fe1a, fe1f], [fe53, fe53], [fe67, fe67], [fe6c, fe6f],
89    [fe75, fe75], [fefd, fefe], [ff00, ff00], [ffbf, ffc1], [ffc8, ffc9],
90    [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf], [ffe7, ffe7], [ffef, fff8],
91    [fffe, ffff], [1000c, 1000c], [10027, 10027], [1003b, 1003b],
92    [1003e, 1003e], [1004e, 1004f], [1005e, 1007f], [100fb, 100ff],
93    [10103, 10106], [10134, 10136], [1018f, 1018f], [1019c, 1019f],
94    [101a1, 101cf], [101fe, 1027f], [1029d, 1029f], [102d1, 102df],
95    [102fc, 102ff], [10324, 1032c], [1034b, 1034f], [1037b, 1037f],
96    [1039e, 1039e], [103c4, 103c7], [103d6, 103ff], [1049e, 1049f],
97    [104aa, 104af], [104d4, 104d7], [104fc, 104ff], [10528, 1052f],
98    [10564, 1056e], [10570, 105ff], [10737, 1073f], [10756, 1075f],
99    [10768, 107ff], [10806, 10807], [10809, 10809], [10836, 10836],
100    [10839, 1083b], [1083d, 1083e], [10856, 10856], [1089f, 108a6],
101    [108b0, 108df], [108f3, 108f3], [108f6, 108fa], [1091c, 1091e],
102    [1093a, 1093e], [10940, 1097f], [109b8, 109bb], [109d0, 109d1],
103    [10a04, 10a04], [10a07, 10a0b], [10a14, 10a14], [10a18, 10a18],
104    [10a36, 10a37], [10a3b, 10a3e], [10a49, 10a4f], [10a59, 10a5f],
105    [10aa0, 10abf], [10ae7, 10aea], [10af7, 10aff], [10b36, 10b38],
106    [10b56, 10b57], [10b73, 10b77], [10b92, 10b98], [10b9d, 10ba8],
107    [10bb0, 10bff], [10c49, 10c7f], [10cb3, 10cbf], [10cf3, 10cf9],
108    [10d28, 10d2f], [10d3a, 10e5f], [10e7f, 10eff], [10f28, 10f2f],
109    [10f5a, 10fff], [1104e, 11051], [11070, 1107e], [110c2, 110cc],
110    [110ce, 110cf], [110e9, 110ef], [110fa, 110ff], [11135, 11135],
111    [11147, 1114f], [11177, 1117f], [111ce, 111cf], [111e0, 111e0],
112    [111f5, 111ff], [11212, 11212], [1123f, 1127f], [11287, 11287],
113    [11289, 11289], [1128e, 1128e], [1129e, 1129e], [112aa, 112af],
114    [112eb, 112ef], [112fa, 112ff], [11304, 11304], [1130d, 1130e],
115    [11311, 11312], [11329, 11329], [11331, 11331], [11334, 11334],
116    [1133a, 1133a], [11345, 11346], [11349, 1134a], [1134e, 1134f],
117    [11351, 11356], [11358, 1135c], [11364, 11365], [1136d, 1136f],
118    [11375, 113ff], [1145a, 1145a], [1145c, 1145c], [1145f, 1147f],
119    [114c8, 114cf], [114da, 1157f], [115b6, 115b7], [115de, 115ff],
120    [11645, 1164f], [1165a, 1165f], [1166d, 1167f], [116b8, 116bf],
121    [116ca, 116ff], [1171b, 1171c], [1172c, 1172f], [11740, 117ff],
122    [1183c, 1189f], [118f3, 118fe], [11900, 119ff], [11a48, 11a4f],
123    [11a84, 11a85], [11aa3, 11abf], [11af9, 11bff], [11c09, 11c09],
124    [11c37, 11c37], [11c46, 11c4f], [11c6d, 11c6f], [11c90, 11c91],
125    [11ca8, 11ca8], [11cb7, 11cff], [11d07, 11d07], [11d0a, 11d0a],
126    [11d37, 11d39], [11d3b, 11d3b], [11d3e, 11d3e], [11d48, 11d4f],
127    [11d5a, 11d5f], [11d66, 11d66], [11d69, 11d69], [11d8f, 11d8f],
128    [11d92, 11d92], [11d99, 11d9f], [11daa, 11edf], [11ef9, 11fff],
129    [1239a, 123ff], [1246f, 1246f], [12475, 1247f], [12544, 12fff],
130    [1342f, 143ff], [14647, 167ff], [16a39, 16a3f], [16a5f, 16a5f],
131    [16a6a, 16a6d], [16a70, 16acf], [16aee, 16aef], [16af6, 16aff],
132    [16b46, 16b4f], [16b5a, 16b5a], [16b62, 16b62], [16b78, 16b7c],
133    [16b90, 16e3f], [16e9b, 16eff], [16f45, 16f4f], [16f7f, 16f8e],
134    [16fa0, 16fdf], [16fe2, 16fff], [187f2, 187ff], [18af3, 1afff],
135    [1b11f, 1b16f], [1b2fc, 1bbff], [1bc6b, 1bc6f], [1bc7d, 1bc7f],
136    [1bc89, 1bc8f], [1bc9a, 1bc9b], [1bca4, 1cfff], [1d0f6, 1d0ff],
137    [1d127, 1d128], [1d1e9, 1d1ff], [1d246, 1d2df], [1d2f4, 1d2ff],
138    [1d357, 1d35f], [1d379, 1d3ff], [1d455, 1d455], [1d49d, 1d49d],
139    [1d4a0, 1d4a1], [1d4a3, 1d4a4], [1d4a7, 1d4a8], [1d4ad, 1d4ad],
140    [1d4ba, 1d4ba], [1d4bc, 1d4bc], [1d4c4, 1d4c4], [1d506, 1d506],
141    [1d50b, 1d50c], [1d515, 1d515], [1d51d, 1d51d], [1d53a, 1d53a],
142    [1d53f, 1d53f], [1d545, 1d545], [1d547, 1d549], [1d551, 1d551],
143    [1d6a6, 1d6a7], [1d7cc, 1d7cd], [1da8c, 1da9a], [1daa0, 1daa0],
144    [1dab0, 1dfff], [1e007, 1e007], [1e019, 1e01a], [1e022, 1e022],
145    [1e025, 1e025], [1e02b, 1e7ff], [1e8c5, 1e8c6], [1e8d7, 1e8ff],
146    [1e94b, 1e94f], [1e95a, 1e95d], [1e960, 1ec70], [1ecb5, 1edff],
147    [1ee04, 1ee04], [1ee20, 1ee20], [1ee23, 1ee23], [1ee25, 1ee26],
148    [1ee28, 1ee28], [1ee33, 1ee33], [1ee38, 1ee38], [1ee3a, 1ee3a],
149    [1ee3c, 1ee41], [1ee43, 1ee46], [1ee48, 1ee48], [1ee4a, 1ee4a],
150    [1ee4c, 1ee4c], [1ee50, 1ee50], [1ee53, 1ee53], [1ee55, 1ee56],
151    [1ee58, 1ee58], [1ee5a, 1ee5a], [1ee5c, 1ee5c], [1ee5e, 1ee5e],
152    [1ee60, 1ee60], [1ee63, 1ee63], [1ee65, 1ee66], [1ee6b, 1ee6b],
153    [1ee73, 1ee73], [1ee78, 1ee78], [1ee7d, 1ee7d], [1ee7f, 1ee7f],
154    [1ee8a, 1ee8a], [1ee9c, 1eea0], [1eea4, 1eea4], [1eeaa, 1eeaa],
155    [1eebc, 1eeef], [1eef2, 1efff], [1f02c, 1f02f], [1f094, 1f09f],
156    [1f0af, 1f0b0], [1f0c0, 1f0c0], [1f0d0, 1f0d0], [1f0f6, 1f0ff],
157    [1f10d, 1f10f], [1f16c, 1f16f], [1f1ad, 1f1e5], [1f203, 1f20f],
158    [1f23c, 1f23f], [1f249, 1f24f], [1f252, 1f25f], [1f266, 1f2ff],
159    [1f6d5, 1f6df], [1f6ed, 1f6ef], [1f6fa, 1f6ff], [1f774, 1f77f],
160    [1f7d9, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f], [1f85a, 1f85f],
161    [1f888, 1f88f], [1f8ae, 1f8ff], [1f90c, 1f90f], [1f93f, 1f93f],
162    [1f971, 1f972], [1f977, 1f979], [1f97b, 1f97b], [1f9a3, 1f9af],
163    [1f9ba, 1f9bf], [1f9c3, 1f9cf], [1fa00, 1fa5f], [1fa6e, 1ffff],
164    [2a6d7, 2a6ff], [2b735, 2b73f], [2b81e, 2b81f], [2cea2, 2ceaf],
165    [2ebe1, 2f7ff], [2fa1e, e0000], [e0002, e001f], [e0080, e00ff],
166    [e01f0, effff], [ffffe, fffff], [10fffe, 10ffff]**/
167
168
169    namespace {
170    const static UnicodeSet::run_t __cn_Set_runs[] = {
171    {Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 2}, {Empty, 1},
172    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1},
173    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
174    {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Mixed, 29}, {Empty, 1},
175    {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 5},
176    {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1},
177    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
178    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
179    {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
180    {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
181    {Mixed, 4}, {Full, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
182    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 7}, {Mixed, 1},
183    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
184    {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
185    {Empty, 20}, {Mixed, 2}, {Empty, 56}, {Mixed, 2}, {Empty, 1},
186    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
187    {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
188    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
189    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
190    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
191    {Empty, 213}, {Mixed, 1}, {Empty, 657}, {Mixed, 1}, {Empty, 36},
192    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 5},
193    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
194    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
195    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3},
196    {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
197    {Empty, 349}, {Mixed, 3}, {Empty, 275}, {Mixed, 1}, {Empty, 2},
198    {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
199    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
200    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 6}, {Full, 1},
201    {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 4}, {Mixed, 1},
202    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
203    {Full, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
204    {Mixed, 1}, {Full, 4}, {Empty, 9}, {Mixed, 3}, {Full, 4}, {Mixed, 3},
205    {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Empty, 1},
206    {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Empty, 1},
207    {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Full, 2}, {Empty, 2}, {Mixed, 1},
208    {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
209    {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 4}, {Empty, 1}, {Mixed, 2},
210    {Full, 5}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
211    {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Empty, 1},
212    {Mixed, 5}, {Full, 4}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 2},
213    {Mixed, 1}, {Full, 5}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2},
214    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 6},
215    {Empty, 1}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 1}, {Full, 8},
216    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
217    {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 6}, {Full, 9}, {Mixed, 1},
218    {Full, 8}, {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1},
219    {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1},
220    {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17},
221    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 21},
222    {Empty, 2}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 3}, {Full, 2},
223    {Mixed, 1}, {Empty, 191}, {Mixed, 1}, {Empty, 23}, {Mixed, 1},
224    {Full, 296}, {Empty, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 11},
225    {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 3}, {Full, 154}, {Empty, 7},
226    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 2},
227    {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Full, 4},
228    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
229    {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 21},
230    {Mixed, 2}, {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6}, {Mixed, 1},
231    {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 24}, {Mixed, 1}, {Empty, 1},
232    {Mixed, 1}, {Full, 10}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 8},
233    {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
234    {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 4}, {Empty, 30},
235    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1},
236    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 2},
237    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
238    {Full, 3}, {Mixed, 1}, {Full, 44}, {Empty, 1334}, {Mixed, 1}, {Full, 1},
239    {Empty, 129}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 180},
240    {Mixed, 1}, {Empty, 233}, {Mixed, 1}, {Full, 96}, {Empty, 16},
241    {Mixed, 1}, {Full, 22575}, {Mixed, 1}, {Empty, 3}, {Full, 4},
242    {Empty, 7}, {Mixed, 1}, {Full, 2032}, {Empty, 2047}, {Mixed, 1},
243    {Empty, 2047}, {Mixed, 1}};
244    const static UnicodeSet::bitquad_t  __cn_Set_quads[] = {
245    0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000, 0x00011800,
246    0x0000ff00, 0xffe07800, 0x20000000, 0x00004000, 0x00001800, 0xfffc0000,
247    0x18000000, 0x8000c000, 0xb0000000, 0xfffff800, 0xc0200000, 0x0007ffff,
248    0x00066010, 0x0c3a0200, 0x4f7f8660, 0x80000030, 0x00067811, 0x2c920200,
249    0xa1fdc678, 0xff80003f, 0x00044011, 0x0c120200, 0xfffec440, 0x01fc0030,
250    0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030, 0x29c23813, 0x3c0038e7,
251    0xff7ec238, 0xf800003f, 0x00022000, 0x1c000200, 0xf89fc220, 0x00ff0030,
252    0x00022000, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010, 0x000f0220,
253    0x00000030, 0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f, 0x00000001,
254    0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0, 0x00000100,
255    0x0001e000, 0x01000000, 0x20000000, 0xf8002000, 0x0000df40, 0xc280c200,
256    0x0000c200, 0x80c20000, 0x008000c2, 0x00c20000, 0x18000000, 0xe0000000,
257    0xfc000000, 0xc0c00000, 0xe0000000, 0xfe000000, 0xffe02000, 0xff800000,
258    0xfff00000, 0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000, 0xfe000000,
259    0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e, 0xffe0c000,
260    0x0000f000, 0x3800fc00, 0x30000000, 0x80000000, 0x60000000, 0xfc00fc00,
261    0x8000c000, 0x0000f000, 0xe0000000, 0x0ff00000, 0x07000000, 0x00001c00,
262    0x0000fe00, 0x18000000, 0x0000ff00, 0xfc000000, 0x04000000, 0xc0c00000,
263    0x5500c0c0, 0xc0000000, 0x00200000, 0x10300020, 0x80230000, 0x000c0020,
264    0xe0008000, 0x0000ffff, 0xfffe0000, 0x0000f000, 0xffffff80, 0xfffff800,
265    0x00300000, 0x00c00000, 0x00000200, 0x80000000, 0x00008000, 0x80000000,
266    0x01f00000, 0x0000df40, 0x7ffe7f00, 0xff800000, 0x80808080, 0x80808080,
267    0xffff8000, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff, 0x00000001,
268    0x01800000, 0x0000001f, 0x00010000, 0x00008000, 0xf8000000, 0x0000fff0,
269    0x80000000, 0x80000000, 0xffc00000, 0xffff0000, 0x0000e000, 0x0000ff80,
270    0xfffff000, 0xff000000, 0xfc000000, 0x007fffff, 0xfc00f000, 0xff000000,
271    0xfc003fc0, 0x7ff00000, 0xe0000000, 0x3c004000, 0x80000000, 0xff800000,
272    0x0c00c000, 0x07fffff8, 0xff800000, 0xff818181, 0x00008080, 0x0000ffc0,
273    0xfc00c000, 0x0000fff0, 0x00000780, 0xf0000000, 0x0000c000, 0xfc000000,
274    0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc, 0x0000ffff, 0x00030000,
275    0xffffff00, 0xc000ffff, 0xfc000000, 0x00080000, 0x0020f080, 0x60000000,
276    0x00000001, 0x80000000, 0xe3030303, 0xc1ff8080, 0x00001000, 0x48000080,
277    0xc000c000, 0xf8000000, 0x00000078, 0x00700000, 0xf0008000, 0xfffffffe,
278    0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000, 0xf0000000, 0x00001ff0,
279    0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0, 0xc0000000, 0x0000fc00,
280    0x00f00000, 0xf0000000, 0x0000ff00, 0xffff7ff0, 0xff800000, 0xffc00000,
281    0xffffff00, 0x000002c0, 0x6e400000, 0x00400000, 0x80000000, 0xffff007f,
282    0x07c80000, 0x70000000, 0x7c000000, 0x0f000000, 0x00030000, 0x01100f90,
283    0x78c00000, 0xfe00fe00, 0xff800780, 0x01c00000, 0x00c00000, 0x00f80000,
284    0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000, 0x03f80000, 0xfc00ff00,
285    0x80000000, 0x0000ff00, 0xfc000000, 0x0003c000, 0x7fff0000, 0x0000dffc,
286    0xfc00fe00, 0x00200000, 0x0000ff80, 0xff800000, 0x0000c000, 0xffe00001,
287    0x00040000, 0x80000000, 0x40004280, 0x0000fc00, 0xfc00f800, 0x00066010,
288    0x04120200, 0x1f7ec660, 0xffe0e030, 0x94000000, 0xfc00ff00, 0x00c00000,
289    0xc0000000, 0xfc00ffe0, 0xffffe000, 0xff000000, 0xfffffc00, 0x18000000,
290    0x0000f000, 0xf0000000, 0x7ff80000, 0x0000ff00, 0x00000030, 0xfffffff8,
291    0xfe000000, 0x00000200, 0x00800000, 0x0000ffc0, 0x0000e000, 0x00030000,
292    0xff800100, 0x00000480, 0x4b800000, 0xfc00ff00, 0x00000240, 0xfe048000,
293    0xfffffc00, 0xfe000000, 0xfc000000, 0xffe08000, 0xfffffff0, 0xffff8000,
294    0xffffff80, 0xfe000000, 0x80000000, 0xffff3c00, 0x0000ffff, 0xffc0c000,
295    0x0400ffc0, 0x1f000004, 0xffff0000, 0xf8000000, 0x0000ffe0, 0x80000000,
296    0x00007fff, 0xfffffffc, 0xfffc0000, 0xfff80000, 0x80000000, 0x0000ffff,
297    0xf0000000, 0xe000f800, 0x0c00fe00, 0xfffffff0, 0xffc00000, 0x00000180,
298    0xfffffe00, 0xffffffc0, 0xfff00000, 0xff800000, 0xfe000000, 0x00200000,
299    0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000, 0x000203a0,
300    0x000000c0, 0x00003000, 0x07fff000, 0xffff0001, 0x06000080, 0xfffff824,
301    0xff800060, 0x3c00f800, 0x0001ffff, 0xffe00000, 0x00000010, 0xf5080169,
302    0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0xfffcffff, 0x0000f000,
303    0xfff00000, 0x00018000, 0x00010001, 0xffc00000, 0x0000e000, 0x0000f000,
304    0xffffe000, 0x0000003f, 0x0000fff8, 0xf0000000, 0xfffcfe00, 0xffffffc0,
305    0xffe00000, 0xfc00e000, 0xfff00000, 0xfe000000, 0x0000f000, 0xfc00ff00,
306    0x0000ff00, 0xffffc000, 0x0000f000, 0x80000000, 0x0b860000, 0xfc00fff8,
307    0x0000fff8, 0xffffc000, 0xff800000, 0xffe00000, 0xc0000000, 0x0000fffc,
308    0xfffffffe, 0xc0000000, 0xfffffffd, 0xffff0000, 0xc0000000, 0xc0000000};
309    }
310
311    const static UnicodeSet cn_Set{const_cast<UnicodeSet::run_t *>(__cn_Set_runs), 420, 0, const_cast<UnicodeSet::bitquad_t *>(__cn_Set_quads), 384, 0};
312
313    /** Code Point Ranges for Lu
314    [0041, 005a], [00c0, 00d6], [00d8, 00de], [0100, 0100], [0102, 0102],
315    [0104, 0104], [0106, 0106], [0108, 0108], [010a, 010a], [010c, 010c],
316    [010e, 010e], [0110, 0110], [0112, 0112], [0114, 0114], [0116, 0116],
317    [0118, 0118], [011a, 011a], [011c, 011c], [011e, 011e], [0120, 0120],
318    [0122, 0122], [0124, 0124], [0126, 0126], [0128, 0128], [012a, 012a],
319    [012c, 012c], [012e, 012e], [0130, 0130], [0132, 0132], [0134, 0134],
320    [0136, 0136], [0139, 0139], [013b, 013b], [013d, 013d], [013f, 013f],
321    [0141, 0141], [0143, 0143], [0145, 0145], [0147, 0147], [014a, 014a],
322    [014c, 014c], [014e, 014e], [0150, 0150], [0152, 0152], [0154, 0154],
323    [0156, 0156], [0158, 0158], [015a, 015a], [015c, 015c], [015e, 015e],
324    [0160, 0160], [0162, 0162], [0164, 0164], [0166, 0166], [0168, 0168],
325    [016a, 016a], [016c, 016c], [016e, 016e], [0170, 0170], [0172, 0172],
326    [0174, 0174], [0176, 0176], [0178, 0179], [017b, 017b], [017d, 017d],
327    [0181, 0182], [0184, 0184], [0186, 0187], [0189, 018b], [018e, 0191],
328    [0193, 0194], [0196, 0198], [019c, 019d], [019f, 01a0], [01a2, 01a2],
329    [01a4, 01a4], [01a6, 01a7], [01a9, 01a9], [01ac, 01ac], [01ae, 01af],
330    [01b1, 01b3], [01b5, 01b5], [01b7, 01b8], [01bc, 01bc], [01c4, 01c4],
331    [01c7, 01c7], [01ca, 01ca], [01cd, 01cd], [01cf, 01cf], [01d1, 01d1],
332    [01d3, 01d3], [01d5, 01d5], [01d7, 01d7], [01d9, 01d9], [01db, 01db],
333    [01de, 01de], [01e0, 01e0], [01e2, 01e2], [01e4, 01e4], [01e6, 01e6],
334    [01e8, 01e8], [01ea, 01ea], [01ec, 01ec], [01ee, 01ee], [01f1, 01f1],
335    [01f4, 01f4], [01f6, 01f8], [01fa, 01fa], [01fc, 01fc], [01fe, 01fe],
336    [0200, 0200], [0202, 0202], [0204, 0204], [0206, 0206], [0208, 0208],
337    [020a, 020a], [020c, 020c], [020e, 020e], [0210, 0210], [0212, 0212],
338    [0214, 0214], [0216, 0216], [0218, 0218], [021a, 021a], [021c, 021c],
339    [021e, 021e], [0220, 0220], [0222, 0222], [0224, 0224], [0226, 0226],
340    [0228, 0228], [022a, 022a], [022c, 022c], [022e, 022e], [0230, 0230],
341    [0232, 0232], [023a, 023b], [023d, 023e], [0241, 0241], [0243, 0246],
342    [0248, 0248], [024a, 024a], [024c, 024c], [024e, 024e], [0370, 0370],
343    [0372, 0372], [0376, 0376], [037f, 037f], [0386, 0386], [0388, 038a],
344    [038c, 038c], [038e, 038f], [0391, 03a1], [03a3, 03ab], [03cf, 03cf],
345    [03d2, 03d4], [03d8, 03d8], [03da, 03da], [03dc, 03dc], [03de, 03de],
346    [03e0, 03e0], [03e2, 03e2], [03e4, 03e4], [03e6, 03e6], [03e8, 03e8],
347    [03ea, 03ea], [03ec, 03ec], [03ee, 03ee], [03f4, 03f4], [03f7, 03f7],
348    [03f9, 03fa], [03fd, 042f], [0460, 0460], [0462, 0462], [0464, 0464],
349    [0466, 0466], [0468, 0468], [046a, 046a], [046c, 046c], [046e, 046e],
350    [0470, 0470], [0472, 0472], [0474, 0474], [0476, 0476], [0478, 0478],
351    [047a, 047a], [047c, 047c], [047e, 047e], [0480, 0480], [048a, 048a],
352    [048c, 048c], [048e, 048e], [0490, 0490], [0492, 0492], [0494, 0494],
353    [0496, 0496], [0498, 0498], [049a, 049a], [049c, 049c], [049e, 049e],
354    [04a0, 04a0], [04a2, 04a2], [04a4, 04a4], [04a6, 04a6], [04a8, 04a8],
355    [04aa, 04aa], [04ac, 04ac], [04ae, 04ae], [04b0, 04b0], [04b2, 04b2],
356    [04b4, 04b4], [04b6, 04b6], [04b8, 04b8], [04ba, 04ba], [04bc, 04bc],
357    [04be, 04be], [04c0, 04c1], [04c3, 04c3], [04c5, 04c5], [04c7, 04c7],
358    [04c9, 04c9], [04cb, 04cb], [04cd, 04cd], [04d0, 04d0], [04d2, 04d2],
359    [04d4, 04d4], [04d6, 04d6], [04d8, 04d8], [04da, 04da], [04dc, 04dc],
360    [04de, 04de], [04e0, 04e0], [04e2, 04e2], [04e4, 04e4], [04e6, 04e6],
361    [04e8, 04e8], [04ea, 04ea], [04ec, 04ec], [04ee, 04ee], [04f0, 04f0],
362    [04f2, 04f2], [04f4, 04f4], [04f6, 04f6], [04f8, 04f8], [04fa, 04fa],
363    [04fc, 04fc], [04fe, 04fe], [0500, 0500], [0502, 0502], [0504, 0504],
364    [0506, 0506], [0508, 0508], [050a, 050a], [050c, 050c], [050e, 050e],
365    [0510, 0510], [0512, 0512], [0514, 0514], [0516, 0516], [0518, 0518],
366    [051a, 051a], [051c, 051c], [051e, 051e], [0520, 0520], [0522, 0522],
367    [0524, 0524], [0526, 0526], [0528, 0528], [052a, 052a], [052c, 052c],
368    [052e, 052e], [0531, 0556], [10a0, 10c5], [10c7, 10c7], [10cd, 10cd],
369    [13a0, 13f5], [1c90, 1cba], [1cbd, 1cbf], [1e00, 1e00], [1e02, 1e02],
370    [1e04, 1e04], [1e06, 1e06], [1e08, 1e08], [1e0a, 1e0a], [1e0c, 1e0c],
371    [1e0e, 1e0e], [1e10, 1e10], [1e12, 1e12], [1e14, 1e14], [1e16, 1e16],
372    [1e18, 1e18], [1e1a, 1e1a], [1e1c, 1e1c], [1e1e, 1e1e], [1e20, 1e20],
373    [1e22, 1e22], [1e24, 1e24], [1e26, 1e26], [1e28, 1e28], [1e2a, 1e2a],
374    [1e2c, 1e2c], [1e2e, 1e2e], [1e30, 1e30], [1e32, 1e32], [1e34, 1e34],
375    [1e36, 1e36], [1e38, 1e38], [1e3a, 1e3a], [1e3c, 1e3c], [1e3e, 1e3e],
376    [1e40, 1e40], [1e42, 1e42], [1e44, 1e44], [1e46, 1e46], [1e48, 1e48],
377    [1e4a, 1e4a], [1e4c, 1e4c], [1e4e, 1e4e], [1e50, 1e50], [1e52, 1e52],
378    [1e54, 1e54], [1e56, 1e56], [1e58, 1e58], [1e5a, 1e5a], [1e5c, 1e5c],
379    [1e5e, 1e5e], [1e60, 1e60], [1e62, 1e62], [1e64, 1e64], [1e66, 1e66],
380    [1e68, 1e68], [1e6a, 1e6a], [1e6c, 1e6c], [1e6e, 1e6e], [1e70, 1e70],
381    [1e72, 1e72], [1e74, 1e74], [1e76, 1e76], [1e78, 1e78], [1e7a, 1e7a],
382    [1e7c, 1e7c], [1e7e, 1e7e], [1e80, 1e80], [1e82, 1e82], [1e84, 1e84],
383    [1e86, 1e86], [1e88, 1e88], [1e8a, 1e8a], [1e8c, 1e8c], [1e8e, 1e8e],
384    [1e90, 1e90], [1e92, 1e92], [1e94, 1e94], [1e9e, 1e9e], [1ea0, 1ea0],
385    [1ea2, 1ea2], [1ea4, 1ea4], [1ea6, 1ea6], [1ea8, 1ea8], [1eaa, 1eaa],
386    [1eac, 1eac], [1eae, 1eae], [1eb0, 1eb0], [1eb2, 1eb2], [1eb4, 1eb4],
387    [1eb6, 1eb6], [1eb8, 1eb8], [1eba, 1eba], [1ebc, 1ebc], [1ebe, 1ebe],
388    [1ec0, 1ec0], [1ec2, 1ec2], [1ec4, 1ec4], [1ec6, 1ec6], [1ec8, 1ec8],
389    [1eca, 1eca], [1ecc, 1ecc], [1ece, 1ece], [1ed0, 1ed0], [1ed2, 1ed2],
390    [1ed4, 1ed4], [1ed6, 1ed6], [1ed8, 1ed8], [1eda, 1eda], [1edc, 1edc],
391    [1ede, 1ede], [1ee0, 1ee0], [1ee2, 1ee2], [1ee4, 1ee4], [1ee6, 1ee6],
392    [1ee8, 1ee8], [1eea, 1eea], [1eec, 1eec], [1eee, 1eee], [1ef0, 1ef0],
393    [1ef2, 1ef2], [1ef4, 1ef4], [1ef6, 1ef6], [1ef8, 1ef8], [1efa, 1efa],
394    [1efc, 1efc], [1efe, 1efe], [1f08, 1f0f], [1f18, 1f1d], [1f28, 1f2f],
395    [1f38, 1f3f], [1f48, 1f4d], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
396    [1f5f, 1f5f], [1f68, 1f6f], [1fb8, 1fbb], [1fc8, 1fcb], [1fd8, 1fdb],
397    [1fe8, 1fec], [1ff8, 1ffb], [2102, 2102], [2107, 2107], [210b, 210d],
398    [2110, 2112], [2115, 2115], [2119, 211d], [2124, 2124], [2126, 2126],
399    [2128, 2128], [212a, 212d], [2130, 2133], [213e, 213f], [2145, 2145],
400    [2183, 2183], [2c00, 2c2e], [2c60, 2c60], [2c62, 2c64], [2c67, 2c67],
401    [2c69, 2c69], [2c6b, 2c6b], [2c6d, 2c70], [2c72, 2c72], [2c75, 2c75],
402    [2c7e, 2c80], [2c82, 2c82], [2c84, 2c84], [2c86, 2c86], [2c88, 2c88],
403    [2c8a, 2c8a], [2c8c, 2c8c], [2c8e, 2c8e], [2c90, 2c90], [2c92, 2c92],
404    [2c94, 2c94], [2c96, 2c96], [2c98, 2c98], [2c9a, 2c9a], [2c9c, 2c9c],
405    [2c9e, 2c9e], [2ca0, 2ca0], [2ca2, 2ca2], [2ca4, 2ca4], [2ca6, 2ca6],
406    [2ca8, 2ca8], [2caa, 2caa], [2cac, 2cac], [2cae, 2cae], [2cb0, 2cb0],
407    [2cb2, 2cb2], [2cb4, 2cb4], [2cb6, 2cb6], [2cb8, 2cb8], [2cba, 2cba],
408    [2cbc, 2cbc], [2cbe, 2cbe], [2cc0, 2cc0], [2cc2, 2cc2], [2cc4, 2cc4],
409    [2cc6, 2cc6], [2cc8, 2cc8], [2cca, 2cca], [2ccc, 2ccc], [2cce, 2cce],
410    [2cd0, 2cd0], [2cd2, 2cd2], [2cd4, 2cd4], [2cd6, 2cd6], [2cd8, 2cd8],
411    [2cda, 2cda], [2cdc, 2cdc], [2cde, 2cde], [2ce0, 2ce0], [2ce2, 2ce2],
412    [2ceb, 2ceb], [2ced, 2ced], [2cf2, 2cf2], [a640, a640], [a642, a642],
413    [a644, a644], [a646, a646], [a648, a648], [a64a, a64a], [a64c, a64c],
414    [a64e, a64e], [a650, a650], [a652, a652], [a654, a654], [a656, a656],
415    [a658, a658], [a65a, a65a], [a65c, a65c], [a65e, a65e], [a660, a660],
416    [a662, a662], [a664, a664], [a666, a666], [a668, a668], [a66a, a66a],
417    [a66c, a66c], [a680, a680], [a682, a682], [a684, a684], [a686, a686],
418    [a688, a688], [a68a, a68a], [a68c, a68c], [a68e, a68e], [a690, a690],
419    [a692, a692], [a694, a694], [a696, a696], [a698, a698], [a69a, a69a],
420    [a722, a722], [a724, a724], [a726, a726], [a728, a728], [a72a, a72a],
421    [a72c, a72c], [a72e, a72e], [a732, a732], [a734, a734], [a736, a736],
422    [a738, a738], [a73a, a73a], [a73c, a73c], [a73e, a73e], [a740, a740],
423    [a742, a742], [a744, a744], [a746, a746], [a748, a748], [a74a, a74a],
424    [a74c, a74c], [a74e, a74e], [a750, a750], [a752, a752], [a754, a754],
425    [a756, a756], [a758, a758], [a75a, a75a], [a75c, a75c], [a75e, a75e],
426    [a760, a760], [a762, a762], [a764, a764], [a766, a766], [a768, a768],
427    [a76a, a76a], [a76c, a76c], [a76e, a76e], [a779, a779], [a77b, a77b],
428    [a77d, a77e], [a780, a780], [a782, a782], [a784, a784], [a786, a786],
429    [a78b, a78b], [a78d, a78d], [a790, a790], [a792, a792], [a796, a796],
430    [a798, a798], [a79a, a79a], [a79c, a79c], [a79e, a79e], [a7a0, a7a0],
431    [a7a2, a7a2], [a7a4, a7a4], [a7a6, a7a6], [a7a8, a7a8], [a7aa, a7ae],
432    [a7b0, a7b4], [a7b6, a7b6], [a7b8, a7b8], [ff21, ff3a], [10400, 10427],
433    [104b0, 104d3], [10c80, 10cb2], [118a0, 118bf], [16e40, 16e5f],
434    [1d400, 1d419], [1d434, 1d44d], [1d468, 1d481], [1d49c, 1d49c],
435    [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac],
436    [1d4ae, 1d4b5], [1d4d0, 1d4e9], [1d504, 1d505], [1d507, 1d50a],
437    [1d50d, 1d514], [1d516, 1d51c], [1d538, 1d539], [1d53b, 1d53e],
438    [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d56c, 1d585],
439    [1d5a0, 1d5b9], [1d5d4, 1d5ed], [1d608, 1d621], [1d63c, 1d655],
440    [1d670, 1d689], [1d6a8, 1d6c0], [1d6e2, 1d6fa], [1d71c, 1d734],
441    [1d756, 1d76e], [1d790, 1d7a8], [1d7ca, 1d7ca], [1e900, 1e921]**/
442
443
444    namespace {
445    const static UnicodeSet::run_t __lu_Set_runs[] = {
446    {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 11},
447    {Empty, 8}, {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 8},
448    {Empty, 90}, {Full, 1}, {Mixed, 1}, {Empty, 22}, {Full, 2}, {Mixed, 1},
449    {Empty, 68}, {Mixed, 2}, {Empty, 10}, {Mixed, 12}, {Empty, 1},
450    {Mixed, 3}, {Empty, 8}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 83},
451    {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 970}, {Mixed, 3},
452    {Empty, 4}, {Mixed, 5}, {Empty, 699}, {Mixed, 1}, {Empty, 38},
453    {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 61}, {Full, 1},
454    {Mixed, 1}, {Empty, 95}, {Full, 1}, {Empty, 684}, {Full, 1},
455    {Empty, 813}, {Mixed, 31}, {Empty, 137}, {Full, 1}, {Mixed, 1},
456    {Empty, 30902}};
457    const static UnicodeSet::bitquad_t  __lu_Set_quads[] = {
458    0x07fffffe, 0x7f7fffff, 0x55555555, 0xaa555555, 0x555554aa, 0x2b555555,
459    0xb1dbced6, 0x11aed2d5, 0x4aaaa490, 0x55d25555, 0x55555555, 0x6c055555,
460    0x0000557a, 0x80450000, 0xfffed740, 0x00000ffb, 0x551c8000, 0xe6905555,
461    0x0000ffff, 0x55555555, 0x55555401, 0x55555555, 0x55552aab, 0x55555555,
462    0x55555555, 0xfffe5555, 0x007fffff, 0x000020bf, 0x003fffff, 0xffff0000,
463    0xe7ffffff, 0x55555555, 0x55555555, 0x55555555, 0x55555555, 0x40155555,
464    0x55555555, 0x55555555, 0x55555555, 0x3f00ff00, 0xff00ff00, 0xaa003f00,
465    0x0000ff00, 0x0f000000, 0x0f000f00, 0x0f001f00, 0x3e273884, 0xc00f3d50,
466    0x00000020, 0x00000008, 0x00007fff, 0xc025ea9d, 0x55555555, 0x55555555,
467    0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555, 0x55545554,
468    0x55555555, 0x6a005555, 0x55452855, 0x015f7d55, 0x07fffffe, 0x000000ff,
469    0xffff0000, 0x000fffff, 0x0007ffff, 0x03ffffff, 0xfff00000, 0x00003fff,
470    0xffffff00, 0xd0000003, 0x003fde64, 0xffff0000, 0x000003ff, 0x1fdfe7b0,
471    0x7b000000, 0x0001fc5f, 0xfffff000, 0x0000003f, 0x03ffffff, 0xfff00000,
472    0x00003fff, 0xffffff00, 0xf0000003, 0x003fffff, 0xffff0000, 0x000003ff,
473    0xffffff00, 0x00000001, 0x07fffffc, 0xf0000000, 0x001fffff, 0xffc00000,
474    0x00007fff, 0xffff0000, 0x000001ff, 0x00000400, 0x00000003};
475    }
476
477    const static UnicodeSet lu_Set{const_cast<UnicodeSet::run_t *>(__lu_Set_runs), 57, 0, const_cast<UnicodeSet::bitquad_t *>(__lu_Set_quads), 101, 0};
478
479    /** Code Point Ranges for Ll
480    [0061, 007a], [00b5, 00b5], [00df, 00f6], [00f8, 00ff], [0101, 0101],
481    [0103, 0103], [0105, 0105], [0107, 0107], [0109, 0109], [010b, 010b],
482    [010d, 010d], [010f, 010f], [0111, 0111], [0113, 0113], [0115, 0115],
483    [0117, 0117], [0119, 0119], [011b, 011b], [011d, 011d], [011f, 011f],
484    [0121, 0121], [0123, 0123], [0125, 0125], [0127, 0127], [0129, 0129],
485    [012b, 012b], [012d, 012d], [012f, 012f], [0131, 0131], [0133, 0133],
486    [0135, 0135], [0137, 0138], [013a, 013a], [013c, 013c], [013e, 013e],
487    [0140, 0140], [0142, 0142], [0144, 0144], [0146, 0146], [0148, 0149],
488    [014b, 014b], [014d, 014d], [014f, 014f], [0151, 0151], [0153, 0153],
489    [0155, 0155], [0157, 0157], [0159, 0159], [015b, 015b], [015d, 015d],
490    [015f, 015f], [0161, 0161], [0163, 0163], [0165, 0165], [0167, 0167],
491    [0169, 0169], [016b, 016b], [016d, 016d], [016f, 016f], [0171, 0171],
492    [0173, 0173], [0175, 0175], [0177, 0177], [017a, 017a], [017c, 017c],
493    [017e, 0180], [0183, 0183], [0185, 0185], [0188, 0188], [018c, 018d],
494    [0192, 0192], [0195, 0195], [0199, 019b], [019e, 019e], [01a1, 01a1],
495    [01a3, 01a3], [01a5, 01a5], [01a8, 01a8], [01aa, 01ab], [01ad, 01ad],
496    [01b0, 01b0], [01b4, 01b4], [01b6, 01b6], [01b9, 01ba], [01bd, 01bf],
497    [01c6, 01c6], [01c9, 01c9], [01cc, 01cc], [01ce, 01ce], [01d0, 01d0],
498    [01d2, 01d2], [01d4, 01d4], [01d6, 01d6], [01d8, 01d8], [01da, 01da],
499    [01dc, 01dd], [01df, 01df], [01e1, 01e1], [01e3, 01e3], [01e5, 01e5],
500    [01e7, 01e7], [01e9, 01e9], [01eb, 01eb], [01ed, 01ed], [01ef, 01f0],
501    [01f3, 01f3], [01f5, 01f5], [01f9, 01f9], [01fb, 01fb], [01fd, 01fd],
502    [01ff, 01ff], [0201, 0201], [0203, 0203], [0205, 0205], [0207, 0207],
503    [0209, 0209], [020b, 020b], [020d, 020d], [020f, 020f], [0211, 0211],
504    [0213, 0213], [0215, 0215], [0217, 0217], [0219, 0219], [021b, 021b],
505    [021d, 021d], [021f, 021f], [0221, 0221], [0223, 0223], [0225, 0225],
506    [0227, 0227], [0229, 0229], [022b, 022b], [022d, 022d], [022f, 022f],
507    [0231, 0231], [0233, 0239], [023c, 023c], [023f, 0240], [0242, 0242],
508    [0247, 0247], [0249, 0249], [024b, 024b], [024d, 024d], [024f, 0293],
509    [0295, 02af], [0371, 0371], [0373, 0373], [0377, 0377], [037b, 037d],
510    [0390, 0390], [03ac, 03ce], [03d0, 03d1], [03d5, 03d7], [03d9, 03d9],
511    [03db, 03db], [03dd, 03dd], [03df, 03df], [03e1, 03e1], [03e3, 03e3],
512    [03e5, 03e5], [03e7, 03e7], [03e9, 03e9], [03eb, 03eb], [03ed, 03ed],
513    [03ef, 03f3], [03f5, 03f5], [03f8, 03f8], [03fb, 03fc], [0430, 045f],
514    [0461, 0461], [0463, 0463], [0465, 0465], [0467, 0467], [0469, 0469],
515    [046b, 046b], [046d, 046d], [046f, 046f], [0471, 0471], [0473, 0473],
516    [0475, 0475], [0477, 0477], [0479, 0479], [047b, 047b], [047d, 047d],
517    [047f, 047f], [0481, 0481], [048b, 048b], [048d, 048d], [048f, 048f],
518    [0491, 0491], [0493, 0493], [0495, 0495], [0497, 0497], [0499, 0499],
519    [049b, 049b], [049d, 049d], [049f, 049f], [04a1, 04a1], [04a3, 04a3],
520    [04a5, 04a5], [04a7, 04a7], [04a9, 04a9], [04ab, 04ab], [04ad, 04ad],
521    [04af, 04af], [04b1, 04b1], [04b3, 04b3], [04b5, 04b5], [04b7, 04b7],
522    [04b9, 04b9], [04bb, 04bb], [04bd, 04bd], [04bf, 04bf], [04c2, 04c2],
523    [04c4, 04c4], [04c6, 04c6], [04c8, 04c8], [04ca, 04ca], [04cc, 04cc],
524    [04ce, 04cf], [04d1, 04d1], [04d3, 04d3], [04d5, 04d5], [04d7, 04d7],
525    [04d9, 04d9], [04db, 04db], [04dd, 04dd], [04df, 04df], [04e1, 04e1],
526    [04e3, 04e3], [04e5, 04e5], [04e7, 04e7], [04e9, 04e9], [04eb, 04eb],
527    [04ed, 04ed], [04ef, 04ef], [04f1, 04f1], [04f3, 04f3], [04f5, 04f5],
528    [04f7, 04f7], [04f9, 04f9], [04fb, 04fb], [04fd, 04fd], [04ff, 04ff],
529    [0501, 0501], [0503, 0503], [0505, 0505], [0507, 0507], [0509, 0509],
530    [050b, 050b], [050d, 050d], [050f, 050f], [0511, 0511], [0513, 0513],
531    [0515, 0515], [0517, 0517], [0519, 0519], [051b, 051b], [051d, 051d],
532    [051f, 051f], [0521, 0521], [0523, 0523], [0525, 0525], [0527, 0527],
533    [0529, 0529], [052b, 052b], [052d, 052d], [052f, 052f], [0560, 0588],
534    [10d0, 10fa], [10fd, 10ff], [13f8, 13fd], [1c80, 1c88], [1d00, 1d2b],
535    [1d6b, 1d77], [1d79, 1d9a], [1e01, 1e01], [1e03, 1e03], [1e05, 1e05],
536    [1e07, 1e07], [1e09, 1e09], [1e0b, 1e0b], [1e0d, 1e0d], [1e0f, 1e0f],
537    [1e11, 1e11], [1e13, 1e13], [1e15, 1e15], [1e17, 1e17], [1e19, 1e19],
538    [1e1b, 1e1b], [1e1d, 1e1d], [1e1f, 1e1f], [1e21, 1e21], [1e23, 1e23],
539    [1e25, 1e25], [1e27, 1e27], [1e29, 1e29], [1e2b, 1e2b], [1e2d, 1e2d],
540    [1e2f, 1e2f], [1e31, 1e31], [1e33, 1e33], [1e35, 1e35], [1e37, 1e37],
541    [1e39, 1e39], [1e3b, 1e3b], [1e3d, 1e3d], [1e3f, 1e3f], [1e41, 1e41],
542    [1e43, 1e43], [1e45, 1e45], [1e47, 1e47], [1e49, 1e49], [1e4b, 1e4b],
543    [1e4d, 1e4d], [1e4f, 1e4f], [1e51, 1e51], [1e53, 1e53], [1e55, 1e55],
544    [1e57, 1e57], [1e59, 1e59], [1e5b, 1e5b], [1e5d, 1e5d], [1e5f, 1e5f],
545    [1e61, 1e61], [1e63, 1e63], [1e65, 1e65], [1e67, 1e67], [1e69, 1e69],
546    [1e6b, 1e6b], [1e6d, 1e6d], [1e6f, 1e6f], [1e71, 1e71], [1e73, 1e73],
547    [1e75, 1e75], [1e77, 1e77], [1e79, 1e79], [1e7b, 1e7b], [1e7d, 1e7d],
548    [1e7f, 1e7f], [1e81, 1e81], [1e83, 1e83], [1e85, 1e85], [1e87, 1e87],
549    [1e89, 1e89], [1e8b, 1e8b], [1e8d, 1e8d], [1e8f, 1e8f], [1e91, 1e91],
550    [1e93, 1e93], [1e95, 1e9d], [1e9f, 1e9f], [1ea1, 1ea1], [1ea3, 1ea3],
551    [1ea5, 1ea5], [1ea7, 1ea7], [1ea9, 1ea9], [1eab, 1eab], [1ead, 1ead],
552    [1eaf, 1eaf], [1eb1, 1eb1], [1eb3, 1eb3], [1eb5, 1eb5], [1eb7, 1eb7],
553    [1eb9, 1eb9], [1ebb, 1ebb], [1ebd, 1ebd], [1ebf, 1ebf], [1ec1, 1ec1],
554    [1ec3, 1ec3], [1ec5, 1ec5], [1ec7, 1ec7], [1ec9, 1ec9], [1ecb, 1ecb],
555    [1ecd, 1ecd], [1ecf, 1ecf], [1ed1, 1ed1], [1ed3, 1ed3], [1ed5, 1ed5],
556    [1ed7, 1ed7], [1ed9, 1ed9], [1edb, 1edb], [1edd, 1edd], [1edf, 1edf],
557    [1ee1, 1ee1], [1ee3, 1ee3], [1ee5, 1ee5], [1ee7, 1ee7], [1ee9, 1ee9],
558    [1eeb, 1eeb], [1eed, 1eed], [1eef, 1eef], [1ef1, 1ef1], [1ef3, 1ef3],
559    [1ef5, 1ef5], [1ef7, 1ef7], [1ef9, 1ef9], [1efb, 1efb], [1efd, 1efd],
560    [1eff, 1f07], [1f10, 1f15], [1f20, 1f27], [1f30, 1f37], [1f40, 1f45],
561    [1f50, 1f57], [1f60, 1f67], [1f70, 1f7d], [1f80, 1f87], [1f90, 1f97],
562    [1fa0, 1fa7], [1fb0, 1fb4], [1fb6, 1fb7], [1fbe, 1fbe], [1fc2, 1fc4],
563    [1fc6, 1fc7], [1fd0, 1fd3], [1fd6, 1fd7], [1fe0, 1fe7], [1ff2, 1ff4],
564    [1ff6, 1ff7], [210a, 210a], [210e, 210f], [2113, 2113], [212f, 212f],
565    [2134, 2134], [2139, 2139], [213c, 213d], [2146, 2149], [214e, 214e],
566    [2184, 2184], [2c30, 2c5e], [2c61, 2c61], [2c65, 2c66], [2c68, 2c68],
567    [2c6a, 2c6a], [2c6c, 2c6c], [2c71, 2c71], [2c73, 2c74], [2c76, 2c7b],
568    [2c81, 2c81], [2c83, 2c83], [2c85, 2c85], [2c87, 2c87], [2c89, 2c89],
569    [2c8b, 2c8b], [2c8d, 2c8d], [2c8f, 2c8f], [2c91, 2c91], [2c93, 2c93],
570    [2c95, 2c95], [2c97, 2c97], [2c99, 2c99], [2c9b, 2c9b], [2c9d, 2c9d],
571    [2c9f, 2c9f], [2ca1, 2ca1], [2ca3, 2ca3], [2ca5, 2ca5], [2ca7, 2ca7],
572    [2ca9, 2ca9], [2cab, 2cab], [2cad, 2cad], [2caf, 2caf], [2cb1, 2cb1],
573    [2cb3, 2cb3], [2cb5, 2cb5], [2cb7, 2cb7], [2cb9, 2cb9], [2cbb, 2cbb],
574    [2cbd, 2cbd], [2cbf, 2cbf], [2cc1, 2cc1], [2cc3, 2cc3], [2cc5, 2cc5],
575    [2cc7, 2cc7], [2cc9, 2cc9], [2ccb, 2ccb], [2ccd, 2ccd], [2ccf, 2ccf],
576    [2cd1, 2cd1], [2cd3, 2cd3], [2cd5, 2cd5], [2cd7, 2cd7], [2cd9, 2cd9],
577    [2cdb, 2cdb], [2cdd, 2cdd], [2cdf, 2cdf], [2ce1, 2ce1], [2ce3, 2ce4],
578    [2cec, 2cec], [2cee, 2cee], [2cf3, 2cf3], [2d00, 2d25], [2d27, 2d27],
579    [2d2d, 2d2d], [a641, a641], [a643, a643], [a645, a645], [a647, a647],
580    [a649, a649], [a64b, a64b], [a64d, a64d], [a64f, a64f], [a651, a651],
581    [a653, a653], [a655, a655], [a657, a657], [a659, a659], [a65b, a65b],
582    [a65d, a65d], [a65f, a65f], [a661, a661], [a663, a663], [a665, a665],
583    [a667, a667], [a669, a669], [a66b, a66b], [a66d, a66d], [a681, a681],
584    [a683, a683], [a685, a685], [a687, a687], [a689, a689], [a68b, a68b],
585    [a68d, a68d], [a68f, a68f], [a691, a691], [a693, a693], [a695, a695],
586    [a697, a697], [a699, a699], [a69b, a69b], [a723, a723], [a725, a725],
587    [a727, a727], [a729, a729], [a72b, a72b], [a72d, a72d], [a72f, a731],
588    [a733, a733], [a735, a735], [a737, a737], [a739, a739], [a73b, a73b],
589    [a73d, a73d], [a73f, a73f], [a741, a741], [a743, a743], [a745, a745],
590    [a747, a747], [a749, a749], [a74b, a74b], [a74d, a74d], [a74f, a74f],
591    [a751, a751], [a753, a753], [a755, a755], [a757, a757], [a759, a759],
592    [a75b, a75b], [a75d, a75d], [a75f, a75f], [a761, a761], [a763, a763],
593    [a765, a765], [a767, a767], [a769, a769], [a76b, a76b], [a76d, a76d],
594    [a76f, a76f], [a771, a778], [a77a, a77a], [a77c, a77c], [a77f, a77f],
595    [a781, a781], [a783, a783], [a785, a785], [a787, a787], [a78c, a78c],
596    [a78e, a78e], [a791, a791], [a793, a795], [a797, a797], [a799, a799],
597    [a79b, a79b], [a79d, a79d], [a79f, a79f], [a7a1, a7a1], [a7a3, a7a3],
598    [a7a5, a7a5], [a7a7, a7a7], [a7a9, a7a9], [a7af, a7af], [a7b5, a7b5],
599    [a7b7, a7b7], [a7b9, a7b9], [a7fa, a7fa], [ab30, ab5a], [ab60, ab65],
600    [ab70, abbf], [fb00, fb06], [fb13, fb17], [ff41, ff5a], [10428, 1044f],
601    [104d8, 104fb], [10cc0, 10cf2], [118c0, 118df], [16e60, 16e7f],
602    [1d41a, 1d433], [1d44e, 1d454], [1d456, 1d467], [1d482, 1d49b],
603    [1d4b6, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d4cf],
604    [1d4ea, 1d503], [1d51e, 1d537], [1d552, 1d56b], [1d586, 1d59f],
605    [1d5ba, 1d5d3], [1d5ee, 1d607], [1d622, 1d63b], [1d656, 1d66f],
606    [1d68a, 1d6a5], [1d6c2, 1d6da], [1d6dc, 1d6e1], [1d6fc, 1d714],
607    [1d716, 1d71b], [1d736, 1d74e], [1d750, 1d755], [1d770, 1d788],
608    [1d78a, 1d78f], [1d7aa, 1d7c2], [1d7c4, 1d7c9], [1d7cb, 1d7cb],
609    [1e922, 1e943]**/
610
611
612    namespace {
613    const static UnicodeSet::run_t __ll_Set_runs[] = {
614    {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1}, {Mixed, 2},
615    {Empty, 5}, {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
616    {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 89}, {Mixed, 2}, {Empty, 23},
617    {Mixed, 1}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Mixed, 1},
618    {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 16}, {Empty, 8}, {Mixed, 3},
619    {Empty, 1}, {Mixed, 1}, {Empty, 84}, {Mixed, 7}, {Full, 1}, {Mixed, 1},
620    {Empty, 968}, {Mixed, 3}, {Empty, 4}, {Mixed, 5}, {Empty, 1},
621    {Mixed, 1}, {Empty, 25}, {Mixed, 3}, {Full, 2}, {Empty, 634},
622    {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 38}, {Mixed, 2},
623    {Empty, 3}, {Mixed, 2}, {Empty, 62}, {Full, 1}, {Mixed, 1}, {Empty, 94},
624    {Full, 1}, {Empty, 684}, {Full, 1}, {Empty, 812}, {Mixed, 31},
625    {Empty, 138}, {Mixed, 2}, {Empty, 30901}};
626    const static UnicodeSet::bitquad_t  __ll_Set_quads[] = {
627    0x07fffffe, 0x00200000, 0x80000000, 0xff7fffff, 0xaaaaaaaa, 0x55aaaaaa,
628    0xaaaaab55, 0xd4aaaaaa, 0x4e243129, 0xe6512d2a, 0xb5555240, 0xaa29aaaa,
629    0xaaaaaaaa, 0x93faaaaa, 0xffffaa85, 0xffefffff, 0x0000ffff, 0x388a0000,
630    0x00010000, 0xfffff000, 0xaae37fff, 0x192faaaa, 0xffff0000, 0xaaaaaaaa,
631    0xaaaaa802, 0xaaaaaaaa, 0xaaaad554, 0xaaaaaaaa, 0xaaaaaaaa, 0x0000aaaa,
632    0x000001ff, 0xffff0000, 0xe7ffffff, 0x3f000000, 0x000001ff, 0x00000fff,
633    0xfefff800, 0x07ffffff, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa,
634    0xbfeaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x003f00ff, 0x00ff00ff,
635    0x00ff003f, 0x3fff00ff, 0x00ff00ff, 0x40df00ff, 0x00cf00dc, 0x00dc00ff,
636    0x0008c400, 0x32108000, 0x000043c0, 0x00000010, 0xffff0000, 0x7fffffff,
637    0x0fda1562, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x0008501a, 0x000020bf,
638    0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa, 0xaaabaaa8, 0xaaaaaaaa, 0x95feaaaa,
639    0xaaba50aa, 0x02a082aa, 0x04000000, 0xffff0000, 0x07ffffff, 0xffff003f,
640    0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff, 0xff000000, 0x0fffffff,
641    0x0007ffff, 0xfc000000, 0x000fffff, 0xffdfc000, 0x000000ff, 0x0ffffffc,
642    0xebc00000, 0x0000ffef, 0xfffffc00, 0xc000000f, 0x00ffffff, 0xfffc0000,
643    0x00000fff, 0xffffffc0, 0xfc000000, 0x000fffff, 0xffffc000, 0x000000ff,
644    0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00, 0x0000003f, 0xf7fffffc,
645    0xf0000003, 0x0fdfffff, 0xffc00000, 0x003f7fff, 0xffff0000, 0x0000fdff,
646    0xfffffc00, 0x00000bf7, 0xfffffffc, 0x0000000f};
647    }
648
649    const static UnicodeSet ll_Set{const_cast<UnicodeSet::run_t *>(__ll_Set_runs), 65, 0, const_cast<UnicodeSet::bitquad_t *>(__ll_Set_quads), 118, 0};
650
651    /** Code Point Ranges for Lt
652    [01c5, 01c5], [01c8, 01c8], [01cb, 01cb], [01f2, 01f2], [1f88, 1f8f],
653    [1f98, 1f9f], [1fa8, 1faf], [1fbc, 1fbc], [1fcc, 1fcc], [1ffc, 1ffc]**/
654
655
656    namespace {
657    const static UnicodeSet::run_t __lt_Set_runs[] = {
658    {Empty, 14}, {Mixed, 2}, {Empty, 236}, {Mixed, 4}, {Empty, 34560}};
659    const static UnicodeSet::bitquad_t  __lt_Set_quads[] = {
660    0x00000920, 0x00040000, 0xff00ff00, 0x1000ff00, 0x00001000, 0x10000000};
661    }
662
663    const static UnicodeSet lt_Set{const_cast<UnicodeSet::run_t *>(__lt_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__lt_Set_quads), 6, 0};
664
665    /** Code Point Ranges for Lm
666    [02b0, 02c1], [02c6, 02d1], [02e0, 02e4], [02ec, 02ec], [02ee, 02ee],
667    [0374, 0374], [037a, 037a], [0559, 0559], [0640, 0640], [06e5, 06e6],
668    [07f4, 07f5], [07fa, 07fa], [081a, 081a], [0824, 0824], [0828, 0828],
669    [0971, 0971], [0e46, 0e46], [0ec6, 0ec6], [10fc, 10fc], [17d7, 17d7],
670    [1843, 1843], [1aa7, 1aa7], [1c78, 1c7d], [1d2c, 1d6a], [1d78, 1d78],
671    [1d9b, 1dbf], [2071, 2071], [207f, 207f], [2090, 209c], [2c7c, 2c7d],
672    [2d6f, 2d6f], [2e2f, 2e2f], [3005, 3005], [3031, 3035], [303b, 303b],
673    [309d, 309e], [30fc, 30fe], [a015, a015], [a4f8, a4fd], [a60c, a60c],
674    [a67f, a67f], [a69c, a69d], [a717, a71f], [a770, a770], [a788, a788],
675    [a7f8, a7f9], [a9cf, a9cf], [a9e6, a9e6], [aa70, aa70], [aadd, aadd],
676    [aaf3, aaf4], [ab5c, ab5f], [ff70, ff70], [ff9e, ff9f], [16b40, 16b43],
677    [16f93, 16f9f], [16fe0, 16fe1]**/
678
679
680    namespace {
681    const static UnicodeSet::run_t __lm_Set_runs[] = {
682    {Empty, 21}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 14},
683    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 7},
684    {Mixed, 3}, {Empty, 9}, {Mixed, 1}, {Empty, 38}, {Mixed, 1}, {Empty, 3},
685    {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 54}, {Mixed, 1},
686    {Empty, 3}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 13},
687    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
688    {Empty, 21}, {Mixed, 2}, {Empty, 94}, {Mixed, 1}, {Empty, 7},
689    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 14}, {Mixed, 2}, {Empty, 2},
690    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 888}, {Mixed, 1},
691    {Empty, 38}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
692    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
693    {Empty, 14}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
694    {Empty, 2}, {Mixed, 1}, {Empty, 672}, {Mixed, 2}, {Empty, 861},
695    {Mixed, 1}, {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
696    {Empty, 31872}};
697    const static UnicodeSet::bitquad_t  __lm_Set_quads[] = {
698    0xffff0000, 0x0003ffc3, 0x0000501f, 0x04100000, 0x02000000, 0x00000001,
699    0x00000060, 0x04300000, 0x04000000, 0x00000110, 0x00020000, 0x00000040,
700    0x00000040, 0x10000000, 0x00800000, 0x00000008, 0x00000080, 0x3f000000,
701    0xfffff000, 0x010007ff, 0xf8000000, 0x80020000, 0x1fff0000, 0x30000000,
702    0x00008000, 0x00008000, 0x00000020, 0x083e0000, 0x60000000, 0x70000000,
703    0x00200000, 0x3f000000, 0x00001000, 0x80000000, 0x30000000, 0xff800000,
704    0x00010000, 0x00000100, 0x03000000, 0x00008000, 0x00000040, 0x00010000,
705    0x20000000, 0x00180000, 0xf0000000, 0x00010000, 0xc0000000, 0x0000000f,
706    0xfff80000, 0x00000003};
707    }
708
709    const static UnicodeSet lm_Set{const_cast<UnicodeSet::run_t *>(__lm_Set_runs), 78, 0, const_cast<UnicodeSet::bitquad_t *>(__lm_Set_quads), 50, 0};
710
711    /** Code Point Ranges for Lo
712    [00aa, 00aa], [00ba, 00ba], [01bb, 01bb], [01c0, 01c3], [0294, 0294],
713    [05d0, 05ea], [05ef, 05f2], [0620, 063f], [0641, 064a], [066e, 066f],
714    [0671, 06d3], [06d5, 06d5], [06ee, 06ef], [06fa, 06fc], [06ff, 06ff],
715    [0710, 0710], [0712, 072f], [074d, 07a5], [07b1, 07b1], [07ca, 07ea],
716    [0800, 0815], [0840, 0858], [0860, 086a], [08a0, 08b4], [08b6, 08bd],
717    [0904, 0939], [093d, 093d], [0950, 0950], [0958, 0961], [0972, 0980],
718    [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0], [09b2, 09b2],
719    [09b6, 09b9], [09bd, 09bd], [09ce, 09ce], [09dc, 09dd], [09df, 09e1],
720    [09f0, 09f1], [09fc, 09fc], [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28],
721    [0a2a, 0a30], [0a32, 0a33], [0a35, 0a36], [0a38, 0a39], [0a59, 0a5c],
722    [0a5e, 0a5e], [0a72, 0a74], [0a85, 0a8d], [0a8f, 0a91], [0a93, 0aa8],
723    [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9], [0abd, 0abd], [0ad0, 0ad0],
724    [0ae0, 0ae1], [0af9, 0af9], [0b05, 0b0c], [0b0f, 0b10], [0b13, 0b28],
725    [0b2a, 0b30], [0b32, 0b33], [0b35, 0b39], [0b3d, 0b3d], [0b5c, 0b5d],
726    [0b5f, 0b61], [0b71, 0b71], [0b83, 0b83], [0b85, 0b8a], [0b8e, 0b90],
727    [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f], [0ba3, 0ba4],
728    [0ba8, 0baa], [0bae, 0bb9], [0bd0, 0bd0], [0c05, 0c0c], [0c0e, 0c10],
729    [0c12, 0c28], [0c2a, 0c39], [0c3d, 0c3d], [0c58, 0c5a], [0c60, 0c61],
730    [0c80, 0c80], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8], [0caa, 0cb3],
731    [0cb5, 0cb9], [0cbd, 0cbd], [0cde, 0cde], [0ce0, 0ce1], [0cf1, 0cf2],
732    [0d05, 0d0c], [0d0e, 0d10], [0d12, 0d3a], [0d3d, 0d3d], [0d4e, 0d4e],
733    [0d54, 0d56], [0d5f, 0d61], [0d7a, 0d7f], [0d85, 0d96], [0d9a, 0db1],
734    [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6], [0e01, 0e30], [0e32, 0e33],
735    [0e40, 0e45], [0e81, 0e82], [0e84, 0e84], [0e87, 0e88], [0e8a, 0e8a],
736    [0e8d, 0e8d], [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3], [0ea5, 0ea5],
737    [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb0], [0eb2, 0eb3], [0ebd, 0ebd],
738    [0ec0, 0ec4], [0edc, 0edf], [0f00, 0f00], [0f40, 0f47], [0f49, 0f6c],
739    [0f88, 0f8c], [1000, 102a], [103f, 103f], [1050, 1055], [105a, 105d],
740    [1061, 1061], [1065, 1066], [106e, 1070], [1075, 1081], [108e, 108e],
741    [1100, 1248], [124a, 124d], [1250, 1256], [1258, 1258], [125a, 125d],
742    [1260, 1288], [128a, 128d], [1290, 12b0], [12b2, 12b5], [12b8, 12be],
743    [12c0, 12c0], [12c2, 12c5], [12c8, 12d6], [12d8, 1310], [1312, 1315],
744    [1318, 135a], [1380, 138f], [1401, 166c], [166f, 167f], [1681, 169a],
745    [16a0, 16ea], [16f1, 16f8], [1700, 170c], [170e, 1711], [1720, 1731],
746    [1740, 1751], [1760, 176c], [176e, 1770], [1780, 17b3], [17dc, 17dc],
747    [1820, 1842], [1844, 1878], [1880, 1884], [1887, 18a8], [18aa, 18aa],
748    [18b0, 18f5], [1900, 191e], [1950, 196d], [1970, 1974], [1980, 19ab],
749    [19b0, 19c9], [1a00, 1a16], [1a20, 1a54], [1b05, 1b33], [1b45, 1b4b],
750    [1b83, 1ba0], [1bae, 1baf], [1bba, 1be5], [1c00, 1c23], [1c4d, 1c4f],
751    [1c5a, 1c77], [1ce9, 1cec], [1cee, 1cf1], [1cf5, 1cf6], [2135, 2138],
752    [2d30, 2d67], [2d80, 2d96], [2da0, 2da6], [2da8, 2dae], [2db0, 2db6],
753    [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde],
754    [3006, 3006], [303c, 303c], [3041, 3096], [309f, 309f], [30a1, 30fa],
755    [30ff, 30ff], [3105, 312f], [3131, 318e], [31a0, 31ba], [31f0, 31ff],
756    [3400, 4db5], [4e00, 9fef], [a000, a014], [a016, a48c], [a4d0, a4f7],
757    [a500, a60b], [a610, a61f], [a62a, a62b], [a66e, a66e], [a6a0, a6e5],
758    [a78f, a78f], [a7f7, a7f7], [a7fb, a801], [a803, a805], [a807, a80a],
759    [a80c, a822], [a840, a873], [a882, a8b3], [a8f2, a8f7], [a8fb, a8fb],
760    [a8fd, a8fe], [a90a, a925], [a930, a946], [a960, a97c], [a984, a9b2],
761    [a9e0, a9e4], [a9e7, a9ef], [a9fa, a9fe], [aa00, aa28], [aa40, aa42],
762    [aa44, aa4b], [aa60, aa6f], [aa71, aa76], [aa7a, aa7a], [aa7e, aaaf],
763    [aab1, aab1], [aab5, aab6], [aab9, aabd], [aac0, aac0], [aac2, aac2],
764    [aadb, aadc], [aae0, aaea], [aaf2, aaf2], [ab01, ab06], [ab09, ab0e],
765    [ab11, ab16], [ab20, ab26], [ab28, ab2e], [abc0, abe2], [ac00, d7a3],
766    [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d], [fa70, fad9], [fb1d, fb1d],
767    [fb1f, fb28], [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
768    [fb43, fb44], [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7],
769    [fdf0, fdfb], [fe70, fe74], [fe76, fefc], [ff66, ff6f], [ff71, ff9d],
770    [ffa0, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc],
771    [10000, 1000b], [1000d, 10026], [10028, 1003a], [1003c, 1003d],
772    [1003f, 1004d], [10050, 1005d], [10080, 100fa], [10280, 1029c],
773    [102a0, 102d0], [10300, 1031f], [1032d, 10340], [10342, 10349],
774    [10350, 10375], [10380, 1039d], [103a0, 103c3], [103c8, 103cf],
775    [10450, 1049d], [10500, 10527], [10530, 10563], [10600, 10736],
776    [10740, 10755], [10760, 10767], [10800, 10805], [10808, 10808],
777    [1080a, 10835], [10837, 10838], [1083c, 1083c], [1083f, 10855],
778    [10860, 10876], [10880, 1089e], [108e0, 108f2], [108f4, 108f5],
779    [10900, 10915], [10920, 10939], [10980, 109b7], [109be, 109bf],
780    [10a00, 10a00], [10a10, 10a13], [10a15, 10a17], [10a19, 10a35],
781    [10a60, 10a7c], [10a80, 10a9c], [10ac0, 10ac7], [10ac9, 10ae4],
782    [10b00, 10b35], [10b40, 10b55], [10b60, 10b72], [10b80, 10b91],
783    [10c00, 10c48], [10d00, 10d23], [10f00, 10f1c], [10f27, 10f27],
784    [10f30, 10f45], [11003, 11037], [11083, 110af], [110d0, 110e8],
785    [11103, 11126], [11144, 11144], [11150, 11172], [11176, 11176],
786    [11183, 111b2], [111c1, 111c4], [111da, 111da], [111dc, 111dc],
787    [11200, 11211], [11213, 1122b], [11280, 11286], [11288, 11288],
788    [1128a, 1128d], [1128f, 1129d], [1129f, 112a8], [112b0, 112de],
789    [11305, 1130c], [1130f, 11310], [11313, 11328], [1132a, 11330],
790    [11332, 11333], [11335, 11339], [1133d, 1133d], [11350, 11350],
791    [1135d, 11361], [11400, 11434], [11447, 1144a], [11480, 114af],
792    [114c4, 114c5], [114c7, 114c7], [11580, 115ae], [115d8, 115db],
793    [11600, 1162f], [11644, 11644], [11680, 116aa], [11700, 1171a],
794    [11800, 1182b], [118ff, 118ff], [11a00, 11a00], [11a0b, 11a32],
795    [11a3a, 11a3a], [11a50, 11a50], [11a5c, 11a83], [11a86, 11a89],
796    [11a9d, 11a9d], [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c2e],
797    [11c40, 11c40], [11c72, 11c8f], [11d00, 11d06], [11d08, 11d09],
798    [11d0b, 11d30], [11d46, 11d46], [11d60, 11d65], [11d67, 11d68],
799    [11d6a, 11d89], [11d98, 11d98], [11ee0, 11ef2], [12000, 12399],
800    [12480, 12543], [13000, 1342e], [14400, 14646], [16800, 16a38],
801    [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b2f], [16b63, 16b77],
802    [16b7d, 16b8f], [16f00, 16f44], [16f50, 16f50], [17000, 187f1],
803    [18800, 18af2], [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a],
804    [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99], [1e800, 1e8c4],
805    [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24],
806    [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39],
807    [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49],
808    [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54],
809    [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d],
810    [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a],
811    [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e],
812    [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9],
813    [1eeab, 1eebb], [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d],
814    [2b820, 2cea1], [2ceb0, 2ebe0], [2f800, 2fa1d]**/
815
816
817    namespace {
818    const static UnicodeSet::run_t __lo_Set_runs[] = {
819    {Empty, 5}, {Mixed, 1}, {Empty, 7}, {Mixed, 2}, {Empty, 5}, {Mixed, 1},
820    {Empty, 25}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
821    {Mixed, 5}, {Full, 2}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
822    {Mixed, 1}, {Empty, 2}, {Mixed, 23}, {Empty, 1}, {Mixed, 15},
823    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
824    {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4}, {Empty, 3},
825    {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
826    {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
827    {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
828    {Empty, 2}, {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1},
829    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 1},
830    {Mixed, 1}, {Empty, 5}, {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1},
831    {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 33},
832    {Mixed, 1}, {Empty, 95}, {Mixed, 1}, {Full, 1}, {Mixed, 4}, {Empty, 17},
833    {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
834    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205},
835    {Mixed, 1}, {Empty, 2}, {Full, 655}, {Mixed, 2}, {Full, 35}, {Mixed, 1},
836    {Empty, 1}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
837    {Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 2},
838    {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 7}, {Empty, 1},
839    {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 5}, {Empty, 4},
840    {Full, 1}, {Mixed, 1}, {Full, 349}, {Mixed, 3}, {Empty, 264},
841    {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
842    {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
843    {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1},
844    {Empty, 3}, {Mixed, 4}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Full, 3},
845    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
846    {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
847    {Full, 1}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Mixed, 1}, {Full, 1},
848    {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4}, {Mixed, 5},
849    {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 2},
850    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1},
851    {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 1},
852    {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
853    {Mixed, 11}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
854    {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
855    {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
856    {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
857    {Empty, 7}, {Full, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 8},
858    {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
859    {Empty, 8}, {Mixed, 5}, {Empty, 3}, {Mixed, 5}, {Empty, 10}, {Mixed, 1},
860    {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 7}, {Full, 6}, {Mixed, 1},
861    {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126}, {Full, 18},
862    {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2}, {Empty, 3},
863    {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 27},
864    {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 191}, {Mixed, 1}, {Full, 23},
865    {Mixed, 1}, {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
866    {Full, 11}, {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2},
867    {Empty, 347}, {Full, 6}, {Mixed, 1}, {Empty, 41}, {Mixed, 6},
868    {Empty, 138}, {Full, 1334}, {Mixed, 1}, {Empty, 1}, {Full, 129},
869    {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 180}, {Mixed, 1}, {Full, 233},
870    {Mixed, 1}, {Empty, 96}, {Full, 16}, {Mixed, 1}, {Empty, 28719}};
871    const static UnicodeSet::bitquad_t  __lo_Set_quads[] = {
872    0x04000400, 0x08000000, 0x0000000f, 0x00100000, 0xffff0000, 0x000787ff,
873    0x000007fe, 0xfffec000, 0x002fffff, 0x9c00c000, 0xfffd0000, 0x0000ffff,
874    0xffffe000, 0x0002003f, 0xfffffc00, 0x000007ff, 0x003fffff, 0x01ffffff,
875    0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000, 0xfffc0003,
876    0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x10030003, 0xfff987e0, 0x036dfdff,
877    0x5e000000, 0x001c0000, 0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003,
878    0xfff99fe0, 0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
879    0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
880    0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff, 0x80704000,
881    0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f, 0xfffffffe, 0x000dffff,
882    0x0000003f, 0xfef02596, 0x200decae, 0xf000001f, 0x00000001, 0xfffffeff,
883    0x00001fff, 0x00001f00, 0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003,
884    0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff, 0x07ffffff,
885    0x0000ffff, 0xfffffffe, 0xffff9fff, 0x07fffffe, 0x01fe07ff, 0x0003dfff,
886    0x0003ffff, 0x0003ffff, 0x0001dfff, 0x000fffff, 0x10000000, 0xfffffff7,
887    0x01ffffff, 0xffffff9f, 0xffff05ff, 0x003fffff, 0x7fffffff, 0xffff0000,
888    0x001f3fff, 0xffff0fff, 0x000003ff, 0x007fffff, 0x001fffff, 0xffffffe0,
889    0x000fffff, 0x00000fe0, 0xfffffff8, 0xfc00c001, 0x0000003f, 0x0000000f,
890    0xfc00e000, 0x00ffffff, 0x0063de00, 0x01e00000, 0xffff0000, 0x000000ff,
891    0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x00000040, 0x10000000, 0xfffffffe,
892    0x807fffff, 0xfffffffe, 0x87ffffff, 0xffffffe0, 0xfffeffff, 0x00007fff,
893    0x07ffffff, 0xffff0000, 0x003fffff, 0x0000ffff, 0xffdfffff, 0x00001fff,
894    0xffff0000, 0x00ffffff, 0xffff0fff, 0x00000c00, 0x00004000, 0x0000003f,
895    0x00008000, 0xf8800000, 0xfffff7bb, 0x00000007, 0x000fffff, 0xfffffffc,
896    0x000fffff, 0x68fc0000, 0xfffffc00, 0xffff003f, 0x0000007f, 0x1fffffff,
897    0xfffffff0, 0x0007ffff, 0x7c00ff9f, 0x000001ff, 0x00000ff7, 0xc47effff,
898    0x3e62ffff, 0x18000005, 0x000407ff, 0x007e7e7e, 0x00007f7f, 0x00000007,
899    0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff, 0x03ffffff, 0xa0000000,
900    0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000, 0x3fffffff, 0xffff0000,
901    0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000, 0x1fffffff, 0xfffeffc0,
902    0x3fffffff, 0x7fffffff, 0x1cfcfcfc, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
903    0x07ffffff, 0x1fffffff, 0x0001ffff, 0xffffe000, 0xffff03fd, 0x003fffff,
904    0x3fffffff, 0x0000ff0f, 0xffff0000, 0x3fffffff, 0xffff00ff, 0x0000000f,
905    0x007fffff, 0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff,
906    0x007fffff, 0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff,
907    0xfeef0001, 0x003fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000001f,
908    0x003fffff, 0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff, 0x0000000f,
909    0x1fffffff, 0xffff0080, 0x0000003f, 0xfffffff8, 0x00ffffff, 0xfffffff8,
910    0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f, 0xffff0010,
911    0x0047ffff, 0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff, 0x00000fff,
912    0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0, 0x23edfdff, 0xe0010000,
913    0x00000003, 0x001fffff, 0x00000780, 0x0000ffff, 0x000000b0, 0x00007fff,
914    0x0f000000, 0x0000ffff, 0x00000010, 0x000007ff, 0x07ffffff, 0x00000fff,
915    0x80000000, 0xfffff801, 0x0407ffff, 0xf0010000, 0x200003cf, 0x01ffffff,
916    0xfffffdff, 0x00007fff, 0x00000001, 0xfffc0000, 0x0000ffff, 0xfffffb7f,
917    0x0001ffff, 0x00000040, 0xfffffdbf, 0x010003ff, 0x0007ffff, 0x03ffffff,
918    0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0xffff0000,
919    0x00003fff, 0x0000ffff, 0xe0fffff8, 0x0000ffff, 0x0001001f, 0x0003ffff,
920    0x0007ffff, 0x7fffffff, 0xffff0000, 0x0fffffff, 0x1fff07ff, 0x03ff01ff,
921    0x0000001f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
922    0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001,
923    0x3fffffff};
924    }
925
926    const static UnicodeSet lo_Set{const_cast<UnicodeSet::run_t *>(__lo_Set_runs), 303, 0, const_cast<UnicodeSet::bitquad_t *>(__lo_Set_quads), 307, 0};
927
928    /** Code Point Ranges for Mn
929    [0300, 036f], [0483, 0487], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
930    [05c4, 05c5], [05c7, 05c7], [0610, 061a], [064b, 065f], [0670, 0670],
931    [06d6, 06dc], [06df, 06e4], [06e7, 06e8], [06ea, 06ed], [0711, 0711],
932    [0730, 074a], [07a6, 07b0], [07eb, 07f3], [07fd, 07fd], [0816, 0819],
933    [081b, 0823], [0825, 0827], [0829, 082d], [0859, 085b], [08d3, 08e1],
934    [08e3, 0902], [093a, 093a], [093c, 093c], [0941, 0948], [094d, 094d],
935    [0951, 0957], [0962, 0963], [0981, 0981], [09bc, 09bc], [09c1, 09c4],
936    [09cd, 09cd], [09e2, 09e3], [09fe, 09fe], [0a01, 0a02], [0a3c, 0a3c],
937    [0a41, 0a42], [0a47, 0a48], [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71],
938    [0a75, 0a75], [0a81, 0a82], [0abc, 0abc], [0ac1, 0ac5], [0ac7, 0ac8],
939    [0acd, 0acd], [0ae2, 0ae3], [0afa, 0aff], [0b01, 0b01], [0b3c, 0b3c],
940    [0b3f, 0b3f], [0b41, 0b44], [0b4d, 0b4d], [0b56, 0b56], [0b62, 0b63],
941    [0b82, 0b82], [0bc0, 0bc0], [0bcd, 0bcd], [0c00, 0c00], [0c04, 0c04],
942    [0c3e, 0c40], [0c46, 0c48], [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63],
943    [0c81, 0c81], [0cbc, 0cbc], [0cbf, 0cbf], [0cc6, 0cc6], [0ccc, 0ccd],
944    [0ce2, 0ce3], [0d00, 0d01], [0d3b, 0d3c], [0d41, 0d44], [0d4d, 0d4d],
945    [0d62, 0d63], [0dca, 0dca], [0dd2, 0dd4], [0dd6, 0dd6], [0e31, 0e31],
946    [0e34, 0e3a], [0e47, 0e4e], [0eb1, 0eb1], [0eb4, 0eb9], [0ebb, 0ebc],
947    [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35], [0f37, 0f37], [0f39, 0f39],
948    [0f71, 0f7e], [0f80, 0f84], [0f86, 0f87], [0f8d, 0f97], [0f99, 0fbc],
949    [0fc6, 0fc6], [102d, 1030], [1032, 1037], [1039, 103a], [103d, 103e],
950    [1058, 1059], [105e, 1060], [1071, 1074], [1082, 1082], [1085, 1086],
951    [108d, 108d], [109d, 109d], [135d, 135f], [1712, 1714], [1732, 1734],
952    [1752, 1753], [1772, 1773], [17b4, 17b5], [17b7, 17bd], [17c6, 17c6],
953    [17c9, 17d3], [17dd, 17dd], [180b, 180d], [1885, 1886], [18a9, 18a9],
954    [1920, 1922], [1927, 1928], [1932, 1932], [1939, 193b], [1a17, 1a18],
955    [1a1b, 1a1b], [1a56, 1a56], [1a58, 1a5e], [1a60, 1a60], [1a62, 1a62],
956    [1a65, 1a6c], [1a73, 1a7c], [1a7f, 1a7f], [1ab0, 1abd], [1b00, 1b03],
957    [1b34, 1b34], [1b36, 1b3a], [1b3c, 1b3c], [1b42, 1b42], [1b6b, 1b73],
958    [1b80, 1b81], [1ba2, 1ba5], [1ba8, 1ba9], [1bab, 1bad], [1be6, 1be6],
959    [1be8, 1be9], [1bed, 1bed], [1bef, 1bf1], [1c2c, 1c33], [1c36, 1c37],
960    [1cd0, 1cd2], [1cd4, 1ce0], [1ce2, 1ce8], [1ced, 1ced], [1cf4, 1cf4],
961    [1cf8, 1cf9], [1dc0, 1df9], [1dfb, 1dff], [20d0, 20dc], [20e1, 20e1],
962    [20e5, 20f0], [2cef, 2cf1], [2d7f, 2d7f], [2de0, 2dff], [302a, 302d],
963    [3099, 309a], [a66f, a66f], [a674, a67d], [a69e, a69f], [a6f0, a6f1],
964    [a802, a802], [a806, a806], [a80b, a80b], [a825, a826], [a8c4, a8c5],
965    [a8e0, a8f1], [a8ff, a8ff], [a926, a92d], [a947, a951], [a980, a982],
966    [a9b3, a9b3], [a9b6, a9b9], [a9bc, a9bc], [a9e5, a9e5], [aa29, aa2e],
967    [aa31, aa32], [aa35, aa36], [aa43, aa43], [aa4c, aa4c], [aa7c, aa7c],
968    [aab0, aab0], [aab2, aab4], [aab7, aab8], [aabe, aabf], [aac1, aac1],
969    [aaec, aaed], [aaf6, aaf6], [abe5, abe5], [abe8, abe8], [abed, abed],
970    [fb1e, fb1e], [fe00, fe0f], [fe20, fe2f], [101fd, 101fd],
971    [102e0, 102e0], [10376, 1037a], [10a01, 10a03], [10a05, 10a06],
972    [10a0c, 10a0f], [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6],
973    [10d24, 10d27], [10f46, 10f50], [11001, 11001], [11038, 11046],
974    [1107f, 11081], [110b3, 110b6], [110b9, 110ba], [11100, 11102],
975    [11127, 1112b], [1112d, 11134], [11173, 11173], [11180, 11181],
976    [111b6, 111be], [111c9, 111cc], [1122f, 11231], [11234, 11234],
977    [11236, 11237], [1123e, 1123e], [112df, 112df], [112e3, 112ea],
978    [11300, 11301], [1133b, 1133c], [11340, 11340], [11366, 1136c],
979    [11370, 11374], [11438, 1143f], [11442, 11444], [11446, 11446],
980    [1145e, 1145e], [114b3, 114b8], [114ba, 114ba], [114bf, 114c0],
981    [114c2, 114c3], [115b2, 115b5], [115bc, 115bd], [115bf, 115c0],
982    [115dc, 115dd], [11633, 1163a], [1163d, 1163d], [1163f, 11640],
983    [116ab, 116ab], [116ad, 116ad], [116b0, 116b5], [116b7, 116b7],
984    [1171d, 1171f], [11722, 11725], [11727, 1172b], [1182f, 11837],
985    [11839, 1183a], [11a01, 11a0a], [11a33, 11a38], [11a3b, 11a3e],
986    [11a47, 11a47], [11a51, 11a56], [11a59, 11a5b], [11a8a, 11a96],
987    [11a98, 11a99], [11c30, 11c36], [11c38, 11c3d], [11c3f, 11c3f],
988    [11c92, 11ca7], [11caa, 11cb0], [11cb2, 11cb3], [11cb5, 11cb6],
989    [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
990    [11d47, 11d47], [11d90, 11d91], [11d95, 11d95], [11d97, 11d97],
991    [11ef3, 11ef4], [16af0, 16af4], [16b30, 16b36], [16f8f, 16f92],
992    [1bc9d, 1bc9e], [1d167, 1d169], [1d17b, 1d182], [1d185, 1d18b],
993    [1d1aa, 1d1ad], [1d242, 1d244], [1da00, 1da36], [1da3b, 1da6c],
994    [1da75, 1da75], [1da84, 1da84], [1da9b, 1da9f], [1daa1, 1daaf],
995    [1e000, 1e006], [1e008, 1e018], [1e01b, 1e021], [1e023, 1e024],
996    [1e026, 1e02a], [1e8d0, 1e8d6], [1e944, 1e94a], [e0100, e01ef]**/
997
998
999    namespace {
1000    const static UnicodeSet::run_t __mn_Set_runs[] = {
1001    {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 7},
1002    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2},
1003    {Mixed, 5}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3},
1004    {Mixed, 23}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 12},
1005    {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
1006    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
1007    {Empty, 21}, {Mixed, 1}, {Empty, 29}, {Mixed, 4}, {Empty, 1},
1008    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
1009    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
1010    {Mixed, 1}, {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1011    {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 6}, {Full, 1}, {Mixed, 1},
1012    {Empty, 22}, {Mixed, 2}, {Empty, 95}, {Mixed, 1}, {Empty, 3},
1013    {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 2},
1014    {Mixed, 1}, {Empty, 942}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
1015    {Empty, 8}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
1016    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1017    {Empty, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 632},
1018    {Mixed, 1}, {Empty, 23}, {Mixed, 2}, {Empty, 29}, {Mixed, 1},
1019    {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
1020    {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
1021    {Mixed, 1}, {Empty, 5}, {Mixed, 6}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
1022    {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6}, {Empty, 5},
1023    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
1024    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7},
1025    {Mixed, 1}, {Empty, 14}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
1026    {Empty, 12}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2},
1027    {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 607},
1028    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34}, {Mixed, 1},
1029    {Empty, 615}, {Mixed, 1}, {Empty, 166}, {Mixed, 3}, {Empty, 4},
1030    {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
1031    {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3},
1032    {Mixed, 1}, {Empty, 24765}, {Full, 7}, {Mixed, 1}, {Empty, 6128}};
1033    const static UnicodeSet::bitquad_t  __mn_Set_quads[] = {
1034    0x0000ffff, 0x000000f8, 0xfffe0000, 0xbfffffff, 0x000000b6, 0x07ff0000,
1035    0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f, 0x00020000, 0xffff0000,
1036    0x000007ff, 0x0001ffc0, 0x200ff800, 0xfbc00000, 0x00003eef, 0x0e000000,
1037    0xfff80000, 0xfffffffb, 0x00000007, 0x14000000, 0x00fe21fe, 0x0000000c,
1038    0x00000002, 0x10000000, 0x0000201e, 0x4000000c, 0x00000006, 0x10000000,
1039    0x00023986, 0x00230000, 0x00000006, 0x10000000, 0x000021be, 0xfc00000c,
1040    0x00000002, 0x90000000, 0x0040201e, 0x0000000c, 0x00000004, 0x00002001,
1041    0x00000011, 0xc0000000, 0x00603dc1, 0x0000000c, 0x00000002, 0x90000000,
1042    0x00003040, 0x0000000c, 0x00000003, 0x18000000, 0x0000201e, 0x0000000c,
1043    0x005c0400, 0x07f20000, 0x00007f80, 0x1bf20000, 0x00003f00, 0x03000000,
1044    0x02a00000, 0x7ffe0000, 0xfeffe0df, 0x1fffffff, 0x00000040, 0x66fde000,
1045    0xc3000000, 0x001e0001, 0x20002064, 0xe0000000, 0x001c0000, 0x001c0000,
1046    0x000c0000, 0x000c0000, 0x3fb00000, 0x200ffe40, 0x00003800, 0x00000060,
1047    0x00000200, 0x0e040187, 0x09800000, 0x7f400000, 0x9ff81fe5, 0x3fff0000,
1048    0x0000000f, 0x17d00000, 0x00000004, 0x000ff800, 0x00000003, 0x00003b3c,
1049    0x0003a340, 0x00cff000, 0xfff70000, 0x031021fd, 0xfbffffff, 0x1fff0000,
1050    0x0001ffe2, 0x00038000, 0x80000000, 0x00003c00, 0x06000000, 0x3ff08000,
1051    0xc0000000, 0x00030000, 0x00000844, 0x00000060, 0x00000030, 0x8003ffff,
1052    0x00003fc0, 0x0003ff80, 0x00000007, 0x13c80000, 0x00000020, 0x00667e00,
1053    0x00001008, 0x10000000, 0xc19d0000, 0x00000002, 0x00403000, 0x00002120,
1054    0x40000000, 0x0000ffff, 0x0000ffff, 0x20000000, 0x00000001, 0x07c00000,
1055    0x0000f06e, 0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000002,
1056    0xff000000, 0x0000007f, 0x80000000, 0x00000003, 0x06780000, 0x00000007,
1057    0x001fef80, 0x00080000, 0x00000003, 0x7fc00000, 0x00001e00, 0x40d38000,
1058    0x80000000, 0x000007f8, 0x00000003, 0x18000000, 0x00000001, 0x001f1fc0,
1059    0xff000000, 0x4000005c, 0x85f80000, 0x0000000d, 0xb03c0000, 0x30000001,
1060    0xa7f80000, 0x00000001, 0x00bf2800, 0xe0000000, 0x00000fbc, 0x06ff8000,
1061    0x000007fe, 0x79f80000, 0x0e7e0080, 0x037ffc00, 0xbf7f0000, 0xfffc0000,
1062    0x006dfcff, 0xb47e0000, 0x000000bf, 0x00a30000, 0x00180000, 0x001f0000,
1063    0x007f0000, 0x00078000, 0x60000000, 0xf8000380, 0x00000fe7, 0x00003c00,
1064    0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe, 0xf9ffff7f,
1065    0x000007db, 0x007f0000, 0x000007f0, 0x0000ffff};
1066    }
1067
1068    const static UnicodeSet mn_Set{const_cast<UnicodeSet::run_t *>(__mn_Set_runs), 179, 0, const_cast<UnicodeSet::bitquad_t *>(__mn_Set_quads), 190, 0};
1069
1070    /** Code Point Ranges for Me
1071    [0488, 0489], [1abe, 1abe], [20dd, 20e0], [20e2, 20e4], [a670, a672]**/
1072
1073
1074    namespace {
1075    const static UnicodeSet::run_t __me_Set_runs[] = {
1076    {Empty, 36}, {Mixed, 1}, {Empty, 176}, {Mixed, 1}, {Empty, 48},
1077    {Mixed, 2}, {Empty, 1067}, {Mixed, 1}, {Empty, 33484}};
1078    const static UnicodeSet::bitquad_t  __me_Set_quads[] = {
1079    0x00000300, 0x40000000, 0xe0000000, 0x0000001d, 0x00070000};
1080    }
1081
1082    const static UnicodeSet me_Set{const_cast<UnicodeSet::run_t *>(__me_Set_runs), 9, 0, const_cast<UnicodeSet::bitquad_t *>(__me_Set_quads), 5, 0};
1083
1084    /** Code Point Ranges for Mc
1085    [0903, 0903], [093b, 093b], [093e, 0940], [0949, 094c], [094e, 094f],
1086    [0982, 0983], [09be, 09c0], [09c7, 09c8], [09cb, 09cc], [09d7, 09d7],
1087    [0a03, 0a03], [0a3e, 0a40], [0a83, 0a83], [0abe, 0ac0], [0ac9, 0ac9],
1088    [0acb, 0acc], [0b02, 0b03], [0b3e, 0b3e], [0b40, 0b40], [0b47, 0b48],
1089    [0b4b, 0b4c], [0b57, 0b57], [0bbe, 0bbf], [0bc1, 0bc2], [0bc6, 0bc8],
1090    [0bca, 0bcc], [0bd7, 0bd7], [0c01, 0c03], [0c41, 0c44], [0c82, 0c83],
1091    [0cbe, 0cbe], [0cc0, 0cc4], [0cc7, 0cc8], [0cca, 0ccb], [0cd5, 0cd6],
1092    [0d02, 0d03], [0d3e, 0d40], [0d46, 0d48], [0d4a, 0d4c], [0d57, 0d57],
1093    [0d82, 0d83], [0dcf, 0dd1], [0dd8, 0ddf], [0df2, 0df3], [0f3e, 0f3f],
1094    [0f7f, 0f7f], [102b, 102c], [1031, 1031], [1038, 1038], [103b, 103c],
1095    [1056, 1057], [1062, 1064], [1067, 106d], [1083, 1084], [1087, 108c],
1096    [108f, 108f], [109a, 109c], [17b6, 17b6], [17be, 17c5], [17c7, 17c8],
1097    [1923, 1926], [1929, 192b], [1930, 1931], [1933, 1938], [1a19, 1a1a],
1098    [1a55, 1a55], [1a57, 1a57], [1a61, 1a61], [1a63, 1a64], [1a6d, 1a72],
1099    [1b04, 1b04], [1b35, 1b35], [1b3b, 1b3b], [1b3d, 1b41], [1b43, 1b44],
1100    [1b82, 1b82], [1ba1, 1ba1], [1ba6, 1ba7], [1baa, 1baa], [1be7, 1be7],
1101    [1bea, 1bec], [1bee, 1bee], [1bf2, 1bf3], [1c24, 1c2b], [1c34, 1c35],
1102    [1ce1, 1ce1], [1cf2, 1cf3], [1cf7, 1cf7], [302e, 302f], [a823, a824],
1103    [a827, a827], [a880, a881], [a8b4, a8c3], [a952, a953], [a983, a983],
1104    [a9b4, a9b5], [a9ba, a9bb], [a9bd, a9c0], [aa2f, aa30], [aa33, aa34],
1105    [aa4d, aa4d], [aa7b, aa7b], [aa7d, aa7d], [aaeb, aaeb], [aaee, aaef],
1106    [aaf5, aaf5], [abe3, abe4], [abe6, abe7], [abe9, abea], [abec, abec],
1107    [11000, 11000], [11002, 11002], [11082, 11082], [110b0, 110b2],
1108    [110b7, 110b8], [1112c, 1112c], [11145, 11146], [11182, 11182],
1109    [111b3, 111b5], [111bf, 111c0], [1122c, 1122e], [11232, 11233],
1110    [11235, 11235], [112e0, 112e2], [11302, 11303], [1133e, 1133f],
1111    [11341, 11344], [11347, 11348], [1134b, 1134d], [11357, 11357],
1112    [11362, 11363], [11435, 11437], [11440, 11441], [11445, 11445],
1113    [114b0, 114b2], [114b9, 114b9], [114bb, 114be], [114c1, 114c1],
1114    [115af, 115b1], [115b8, 115bb], [115be, 115be], [11630, 11632],
1115    [1163b, 1163c], [1163e, 1163e], [116ac, 116ac], [116ae, 116af],
1116    [116b6, 116b6], [11720, 11721], [11726, 11726], [1182c, 1182e],
1117    [11838, 11838], [11a39, 11a39], [11a57, 11a58], [11a97, 11a97],
1118    [11c2f, 11c2f], [11c3e, 11c3e], [11ca9, 11ca9], [11cb1, 11cb1],
1119    [11cb4, 11cb4], [11d8a, 11d8e], [11d93, 11d94], [11d96, 11d96],
1120    [11ef5, 11ef6], [16f51, 16f7e], [1d165, 1d166], [1d16d, 1d172]**/
1121
1122
1123    namespace {
1124    const static UnicodeSet::run_t __mc_Set_runs[] = {
1125    {Empty, 72}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
1126    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
1127    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1128    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
1129    {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 4},
1130    {Empty, 56}, {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 6},
1131    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Empty, 1},
1132    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
1133    {Mixed, 1}, {Empty, 153}, {Mixed, 1}, {Empty, 959}, {Mixed, 1},
1134    {Empty, 2}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1135    {Empty, 2}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
1136    {Empty, 800}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
1137    {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
1138    {Mixed, 5}, {Empty, 5}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6},
1139    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
1140    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 1},
1141    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6},
1142    {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 642}, {Mixed, 2},
1143    {Empty, 783}, {Mixed, 1}, {Empty, 31092}};
1144    const static UnicodeSet::bitquad_t  __mc_Set_quads[] = {
1145    0x00000008, 0xc8000000, 0x0000de01, 0x0000000c, 0xc0000000, 0x00801981,
1146    0x00000008, 0xc0000000, 0x00000001, 0x00000008, 0xc0000000, 0x00001a01,
1147    0x0000000c, 0x40000000, 0x00801981, 0xc0000000, 0x00801dc6, 0x0000000e,
1148    0x0000001e, 0x0000000c, 0x40000000, 0x00600d9f, 0x0000000c, 0xc0000000,
1149    0x00801dc1, 0x0000000c, 0xff038000, 0x000c0000, 0xc0000000, 0x80000000,
1150    0x19021800, 0x00c00000, 0x00003f9c, 0x1c009f98, 0xc0400000, 0x000001bf,
1151    0x01fb0e78, 0x06000000, 0x00a00000, 0x0007e01a, 0x00000010, 0xe8200000,
1152    0x0000001b, 0x00000004, 0x000004c2, 0x000c5c80, 0x00300ff0, 0x008c0002,
1153    0x0000c000, 0x00000098, 0x00000003, 0xfff00000, 0x0000000f, 0x000c0000,
1154    0x00000008, 0xec300000, 0x00000001, 0x00198000, 0x00002000, 0x28000000,
1155    0x0020c800, 0x000016d8, 0x00000005, 0x00000004, 0x01870000, 0x00001000,
1156    0x00000060, 0x00000004, 0x80380000, 0x00000001, 0x002c7000, 0x00000007,
1157    0x0000000c, 0xc0000000, 0x0080399e, 0x0000000c, 0x00e00000, 0x00000023,
1158    0x7a070000, 0x00000002, 0x4f038000, 0x58070000, 0x0040d000, 0x00000043,
1159    0x01007000, 0x02000000, 0x01800000, 0x00800000, 0x40008000, 0x00120200,
1160    0x00587c00, 0x00600000, 0xfffe0000, 0x7fffffff, 0x0007e060};
1161    }
1162
1163    const static UnicodeSet mc_Set{const_cast<UnicodeSet::run_t *>(__mc_Set_runs), 107, 0, const_cast<UnicodeSet::bitquad_t *>(__mc_Set_quads), 95, 0};
1164
1165    /** Code Point Ranges for Nd
1166    [0030, 0039], [0660, 0669], [06f0, 06f9], [07c0, 07c9], [0966, 096f],
1167    [09e6, 09ef], [0a66, 0a6f], [0ae6, 0aef], [0b66, 0b6f], [0be6, 0bef],
1168    [0c66, 0c6f], [0ce6, 0cef], [0d66, 0d6f], [0de6, 0def], [0e50, 0e59],
1169    [0ed0, 0ed9], [0f20, 0f29], [1040, 1049], [1090, 1099], [17e0, 17e9],
1170    [1810, 1819], [1946, 194f], [19d0, 19d9], [1a80, 1a89], [1a90, 1a99],
1171    [1b50, 1b59], [1bb0, 1bb9], [1c40, 1c49], [1c50, 1c59], [a620, a629],
1172    [a8d0, a8d9], [a900, a909], [a9d0, a9d9], [a9f0, a9f9], [aa50, aa59],
1173    [abf0, abf9], [ff10, ff19], [104a0, 104a9], [10d30, 10d39],
1174    [11066, 1106f], [110f0, 110f9], [11136, 1113f], [111d0, 111d9],
1175    [112f0, 112f9], [11450, 11459], [114d0, 114d9], [11650, 11659],
1176    [116c0, 116c9], [11730, 11739], [118e0, 118e9], [11c50, 11c59],
1177    [11d50, 11d59], [11da0, 11da9], [16a60, 16a69], [16b50, 16b59],
1178    [1d7ce, 1d7ff], [1e950, 1e959]**/
1179
1180
1181    namespace {
1182    const static UnicodeSet::run_t __nd_Set_runs[] = {
1183    {Empty, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1184    {Empty, 6}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1185    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1186    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1187    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
1188    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
1189    {Empty, 1}, {Mixed, 1}, {Empty, 58}, {Mixed, 2}, {Empty, 9}, {Mixed, 1},
1190    {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
1191    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1102},
1192    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
1193    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
1194    {Empty, 664}, {Mixed, 1}, {Empty, 44}, {Mixed, 1}, {Empty, 67},
1195    {Mixed, 1}, {Empty, 25}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
1196    {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 10},
1197    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 3},
1198    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 13}, {Mixed, 1},
1199    {Empty, 26}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
1200    {Empty, 613}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 867},
1201    {Mixed, 1}, {Full, 1}, {Empty, 138}, {Mixed, 1}, {Empty, 30901}};
1202    const static UnicodeSet::bitquad_t  __nd_Set_quads[] = {
1203    0x03ff0000, 0x000003ff, 0x03ff0000, 0x000003ff, 0x0000ffc0, 0x0000ffc0,
1204    0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0,
1205    0x0000ffc0, 0x0000ffc0, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x000003ff,
1206    0x03ff0000, 0x000003ff, 0x03ff0000, 0x0000ffc0, 0x03ff0000, 0x03ff03ff,
1207    0x03ff0000, 0x03ff0000, 0x03ff03ff, 0x000003ff, 0x03ff0000, 0x000003ff,
1208    0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff,
1209    0x03ff0000, 0x0000ffc0, 0x03ff0000, 0xffc00000, 0x03ff0000, 0x03ff0000,
1210    0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x03ff0000, 0x000003ff,
1211    0x03ff0000, 0x03ff0000, 0x000003ff, 0x000003ff, 0x03ff0000, 0xffffc000,
1212    0x03ff0000};
1213    }
1214
1215    const static UnicodeSet nd_Set{const_cast<UnicodeSet::run_t *>(__nd_Set_runs), 108, 0, const_cast<UnicodeSet::bitquad_t *>(__nd_Set_quads), 55, 0};
1216
1217    /** Code Point Ranges for Nl
1218    [16ee, 16f0], [2160, 2182], [2185, 2188], [3007, 3007], [3021, 3029],
1219    [3038, 303a], [a6e6, a6ef], [10140, 10174], [10341, 10341],
1220    [1034a, 1034a], [103d1, 103d5], [12400, 1246e]**/
1221
1222
1223    namespace {
1224    const static UnicodeSet::run_t __nl_Set_runs[] = {
1225    {Empty, 183}, {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 1},
1226    {Empty, 115}, {Mixed, 2}, {Empty, 949}, {Mixed, 1}, {Empty, 722},
1227    {Full, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1228    {Empty, 257}, {Full, 3}, {Mixed, 1}, {Empty, 32476}};
1229    const static UnicodeSet::bitquad_t  __nl_Set_quads[] = {
1230    0x0001c000, 0x000001e7, 0x00000080, 0x070003fe, 0x0000ffc0, 0x001fffff,
1231    0x00000402, 0x003e0000, 0x00007fff};
1232    }
1233
1234    const static UnicodeSet nl_Set{const_cast<UnicodeSet::run_t *>(__nl_Set_runs), 20, 0, const_cast<UnicodeSet::bitquad_t *>(__nl_Set_quads), 9, 0};
1235
1236    /** Code Point Ranges for No
1237    [00b2, 00b3], [00b9, 00b9], [00bc, 00be], [09f4, 09f9], [0b72, 0b77],
1238    [0bf0, 0bf2], [0c78, 0c7e], [0d58, 0d5e], [0d70, 0d78], [0f2a, 0f33],
1239    [1369, 137c], [17f0, 17f9], [19da, 19da], [2070, 2070], [2074, 2079],
1240    [2080, 2089], [2150, 215f], [2189, 2189], [2460, 249b], [24ea, 24ff],
1241    [2776, 2793], [2cfd, 2cfd], [3192, 3195], [3220, 3229], [3248, 324f],
1242    [3251, 325f], [3280, 3289], [32b1, 32bf], [a830, a835], [10107, 10133],
1243    [10175, 10178], [1018a, 1018b], [102e1, 102fb], [10320, 10323],
1244    [10858, 1085f], [10879, 1087f], [108a7, 108af], [108fb, 108ff],
1245    [10916, 1091b], [109bc, 109bd], [109c0, 109cf], [109d2, 109ff],
1246    [10a40, 10a48], [10a7d, 10a7e], [10a9d, 10a9f], [10aeb, 10aef],
1247    [10b58, 10b5f], [10b78, 10b7f], [10ba9, 10baf], [10cfa, 10cff],
1248    [10e60, 10e7e], [10f1d, 10f26], [10f51, 10f54], [11052, 11065],
1249    [111e1, 111f4], [1173a, 1173b], [118ea, 118f2], [11c5a, 11c6c],
1250    [16b5b, 16b61], [16e80, 16e96], [1d2e0, 1d2f3], [1d360, 1d378],
1251    [1e8c7, 1e8cf], [1ec71, 1ecab], [1ecad, 1ecaf], [1ecb1, 1ecb4],
1252    [1f100, 1f10c]**/
1253
1254
1255    namespace {
1256    const static UnicodeSet::run_t __no_Set_runs[] = {
1257    {Empty, 5}, {Mixed, 1}, {Empty, 73}, {Mixed, 1}, {Empty, 11},
1258    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6},
1259    {Mixed, 2}, {Empty, 13}, {Mixed, 1}, {Empty, 33}, {Mixed, 1},
1260    {Empty, 35}, {Mixed, 1}, {Empty, 14}, {Mixed, 1}, {Empty, 52},
1261    {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 22},
1262    {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 19}, {Mixed, 2},
1263    {Empty, 42}, {Mixed, 1}, {Empty, 36}, {Mixed, 1}, {Empty, 4},
1264    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 939}, {Mixed, 1},
1265    {Empty, 710}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 10},
1266    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 40}, {Mixed, 2}, {Empty, 1},
1267    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Full, 1},
1268    {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
1269    {Empty, 1}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
1270    {Empty, 4}, {Mixed, 3}, {Empty, 7}, {Mixed, 2}, {Empty, 11}, {Mixed, 1},
1271    {Empty, 41}, {Mixed, 1}, {Empty, 13}, {Mixed, 1}, {Empty, 26},
1272    {Mixed, 2}, {Empty, 630}, {Mixed, 2}, {Empty, 24}, {Mixed, 1},
1273    {Empty, 802}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 170},
1274    {Mixed, 1}, {Empty, 28}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34},
1275    {Mixed, 1}, {Empty, 30839}};
1276    const static UnicodeSet::bitquad_t  __no_Set_quads[] = {
1277    0x720c0000, 0x03f00000, 0x00fc0000, 0x00070000, 0x7f000000, 0x7f000000,
1278    0x01ff0000, 0x000ffc00, 0x1ffffe00, 0x03ff0000, 0x04000000, 0x03f10000,
1279    0x000003ff, 0xffff0000, 0x00000200, 0x0fffffff, 0xfffffc00, 0xffc00000,
1280    0x000fffff, 0x20000000, 0x003c0000, 0x000003ff, 0xfffeff00, 0x000003ff,
1281    0xfffe0000, 0x003f0000, 0xffffff80, 0x000fffff, 0x01e00000, 0x00000c00,
1282    0x0ffffffe, 0x0000000f, 0xff000000, 0xfe000000, 0x0000ff80, 0xf8000000,
1283    0x0fc00000, 0x30000000, 0xfffcffff, 0x000001ff, 0x60000000, 0xe0000000,
1284    0x0000f800, 0xff000000, 0xff000000, 0x0000fe00, 0xfc000000, 0x7fffffff,
1285    0xe0000000, 0x0000007f, 0x001e0000, 0xfffc0000, 0x0000003f, 0x001ffffe,
1286    0x0c000000, 0x0007fc00, 0xfc000000, 0x00001fff, 0xf8000000, 0x00000003,
1287    0x007fffff, 0x000fffff, 0x01ffffff, 0x0000ff80, 0xfffe0000, 0x001eefff,
1288    0x00001fff};
1289    }
1290
1291    const static UnicodeSet no_Set{const_cast<UnicodeSet::run_t *>(__no_Set_runs), 101, 0, const_cast<UnicodeSet::bitquad_t *>(__no_Set_quads), 67, 0};
1292
1293    /** Code Point Ranges for Zs
1294    [0020, 0020], [00a0, 00a0], [1680, 1680], [2000, 200a], [202f, 202f],
1295    [205f, 205f], [3000, 3000]**/
1296
1297
1298    namespace {
1299    const static UnicodeSet::run_t __zs_Set_runs[] = {
1300    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 174},
1301    {Mixed, 1}, {Empty, 75}, {Mixed, 3}, {Empty, 125}, {Mixed, 1},
1302    {Empty, 34431}};
1303    const static UnicodeSet::bitquad_t  __zs_Set_quads[] = {
1304    0x00000001, 0x00000001, 0x00000001, 0x000007ff, 0x00008000, 0x80000000,
1305    0x00000001};
1306    }
1307
1308    const static UnicodeSet zs_Set{const_cast<UnicodeSet::run_t *>(__zs_Set_runs), 11, 0, const_cast<UnicodeSet::bitquad_t *>(__zs_Set_quads), 7, 0};
1309
1310    /** Code Point Ranges for Zl
1311    [2028, 2028]**/
1312
1313
1314    namespace {
1315    const static UnicodeSet::run_t __zl_Set_runs[] = {
1316    {Empty, 257}, {Mixed, 1}, {Empty, 34558}};
1317    const static UnicodeSet::bitquad_t  __zl_Set_quads[] = {
1318    0x00000100};
1319    }
1320
1321    const static UnicodeSet zl_Set{const_cast<UnicodeSet::run_t *>(__zl_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__zl_Set_quads), 1, 0};
1322
1323    /** Code Point Ranges for Zp
1324    [2029, 2029]**/
1325
1326
1327    namespace {
1328    const static UnicodeSet::run_t __zp_Set_runs[] = {
1329    {Empty, 257}, {Mixed, 1}, {Empty, 34558}};
1330    const static UnicodeSet::bitquad_t  __zp_Set_quads[] = {
1331    0x00000200};
1332    }
1333
1334    const static UnicodeSet zp_Set{const_cast<UnicodeSet::run_t *>(__zp_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__zp_Set_quads), 1, 0};
1335
1336    /** Code Point Ranges for Cc
1337    [0000, 001f], [007f, 009f]**/
1338
1339
1340    namespace {
1341    const static UnicodeSet::run_t __cc_Set_runs[] = {
1342    {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 34811}};
1343    const static UnicodeSet::bitquad_t  __cc_Set_quads[] = {
1344    0x80000000};
1345    }
1346
1347    const static UnicodeSet cc_Set{const_cast<UnicodeSet::run_t *>(__cc_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__cc_Set_quads), 1, 0};
1348
1349    /** Code Point Ranges for Cf
1350    [00ad, 00ad], [0600, 0605], [061c, 061c], [06dd, 06dd], [070f, 070f],
1351    [08e2, 08e2], [180e, 180e], [200b, 200f], [202a, 202e], [2060, 2064],
1352    [2066, 206f], [feff, feff], [fff9, fffb], [110bd, 110bd],
1353    [110cd, 110cd], [1bca0, 1bca3], [1d173, 1d17a], [e0001, e0001],
1354    [e0020, e007f]**/
1355
1356
1357    namespace {
1358    const static UnicodeSet::run_t __cf_Set_runs[] = {
1359    {Empty, 5}, {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
1360    {Empty, 1}, {Mixed, 1}, {Empty, 14}, {Mixed, 1}, {Empty, 120},
1361    {Mixed, 1}, {Empty, 63}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
1362    {Empty, 1779}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 133},
1363    {Mixed, 2}, {Empty, 1374}, {Mixed, 1}, {Empty, 165}, {Mixed, 1},
1364    {Empty, 24948}, {Mixed, 1}, {Full, 3}, {Empty, 6140}};
1365    const static UnicodeSet::bitquad_t  __cf_Set_quads[] = {
1366    0x00002000, 0x1000003f, 0x20000000, 0x00008000, 0x00000004, 0x00004000,
1367    0x0000f800, 0x00007c00, 0x0000ffdf, 0x80000000, 0x0e000000, 0x20000000,
1368    0x00002000, 0x0000000f, 0x07f80000, 0x00000002};
1369    }
1370
1371    const static UnicodeSet cf_Set{const_cast<UnicodeSet::run_t *>(__cf_Set_runs), 30, 0, const_cast<UnicodeSet::bitquad_t *>(__cf_Set_quads), 16, 0};
1372
1373    /** Code Point Ranges for Co
1374    [e000, f8ff], [f0000, ffffd], [100000, 10fffd]**/
1375
1376
1377    namespace {
1378    const static UnicodeSet::run_t __co_Set_runs[] = {
1379    {Empty, 1792}, {Full, 200}, {Empty, 28728}, {Full, 2047}, {Mixed, 1},
1380    {Full, 2047}, {Mixed, 1}};
1381    const static UnicodeSet::bitquad_t  __co_Set_quads[] = {
1382    0x3fffffff, 0x3fffffff};
1383    }
1384
1385    const static UnicodeSet co_Set{const_cast<UnicodeSet::run_t *>(__co_Set_runs), 7, 0, const_cast<UnicodeSet::bitquad_t *>(__co_Set_quads), 2, 0};
1386
1387    /** Code Point Ranges for Cs
1388    [d800, dfff]**/
1389
1390
1391    namespace {
1392    const static UnicodeSet::run_t __cs_Set_runs[] = {
1393    {Empty, 1728}, {Full, 64}, {Empty, 33024}};
1394    const static UnicodeSet::bitquad_t * const __cs_Set_quads = nullptr;
1395    }
1396
1397    const static UnicodeSet cs_Set{const_cast<UnicodeSet::run_t *>(__cs_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cs_Set_quads), 0, 0};
1398
1399    /** Code Point Ranges for Pd
1400    [002d, 002d], [058a, 058a], [05be, 05be], [1400, 1400], [1806, 1806],
1401    [2010, 2015], [2e17, 2e17], [2e1a, 2e1a], [2e3a, 2e3b], [2e40, 2e40],
1402    [301c, 301c], [3030, 3030], [30a0, 30a0], [fe31, fe32], [fe58, fe58],
1403    [fe63, fe63], [ff0d, ff0d]**/
1404
1405
1406    namespace {
1407    const static UnicodeSet::run_t __pd_Set_runs[] = {
1408    {Empty, 1}, {Mixed, 1}, {Empty, 42}, {Mixed, 2}, {Empty, 114},
1409    {Mixed, 1}, {Empty, 31}, {Mixed, 1}, {Empty, 63}, {Mixed, 1},
1410    {Empty, 111}, {Mixed, 3}, {Empty, 13}, {Mixed, 2}, {Empty, 3},
1411    {Mixed, 1}, {Empty, 1643}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
1412    {Empty, 32775}};
1413    const static UnicodeSet::bitquad_t  __pd_Set_quads[] = {
1414    0x00002000, 0x00000400, 0x40000000, 0x00000001, 0x00000040, 0x003f0000,
1415    0x04800000, 0x0c000000, 0x00000001, 0x10000000, 0x00010000, 0x00000001,
1416    0x00060000, 0x01000000, 0x00000008, 0x00002000};
1417    }
1418
1419    const static UnicodeSet pd_Set{const_cast<UnicodeSet::run_t *>(__pd_Set_runs), 21, 0, const_cast<UnicodeSet::bitquad_t *>(__pd_Set_quads), 16, 0};
1420
1421    /** Code Point Ranges for Ps
1422    [0028, 0028], [005b, 005b], [007b, 007b], [0f3a, 0f3a], [0f3c, 0f3c],
1423    [169b, 169b], [201a, 201a], [201e, 201e], [2045, 2045], [207d, 207d],
1424    [208d, 208d], [2308, 2308], [230a, 230a], [2329, 2329], [2768, 2768],
1425    [276a, 276a], [276c, 276c], [276e, 276e], [2770, 2770], [2772, 2772],
1426    [2774, 2774], [27c5, 27c5], [27e6, 27e6], [27e8, 27e8], [27ea, 27ea],
1427    [27ec, 27ec], [27ee, 27ee], [2983, 2983], [2985, 2985], [2987, 2987],
1428    [2989, 2989], [298b, 298b], [298d, 298d], [298f, 298f], [2991, 2991],
1429    [2993, 2993], [2995, 2995], [2997, 2997], [29d8, 29d8], [29da, 29da],
1430    [29fc, 29fc], [2e22, 2e22], [2e24, 2e24], [2e26, 2e26], [2e28, 2e28],
1431    [2e42, 2e42], [3008, 3008], [300a, 300a], [300c, 300c], [300e, 300e],
1432    [3010, 3010], [3014, 3014], [3016, 3016], [3018, 3018], [301a, 301a],
1433    [301d, 301d], [fd3f, fd3f], [fe17, fe17], [fe35, fe35], [fe37, fe37],
1434    [fe39, fe39], [fe3b, fe3b], [fe3d, fe3d], [fe3f, fe3f], [fe41, fe41],
1435    [fe43, fe43], [fe47, fe47], [fe59, fe59], [fe5b, fe5b], [fe5d, fe5d],
1436    [ff08, ff08], [ff3b, ff3b], [ff5b, ff5b], [ff5f, ff5f], [ff62, ff62]**/
1437
1438
1439    namespace {
1440    const static UnicodeSet::run_t __ps_Set_runs[] = {
1441    {Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
1442    {Mixed, 1}, {Empty, 75}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1443    {Empty, 19}, {Mixed, 2}, {Empty, 33}, {Mixed, 1}, {Empty, 2},
1444    {Mixed, 2}, {Empty, 12}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
1445    {Empty, 33}, {Mixed, 2}, {Empty, 13}, {Mixed, 1}, {Empty, 1640},
1446    {Mixed, 1}, {Empty, 6}, {Mixed, 3}, {Empty, 5}, {Mixed, 4},
1447    {Empty, 32772}};
1448    const static UnicodeSet::bitquad_t  __ps_Set_quads[] = {
1449    0x00000100, 0x08000000, 0x08000000, 0x14000000, 0x08000000, 0x44000000,
1450    0x00000020, 0x20000000, 0x00002000, 0x00000500, 0x00000200, 0x00155500,
1451    0x00000020, 0x00005540, 0x00aaaaa8, 0x05000000, 0x10000000, 0x00000154,
1452    0x00000004, 0x25515500, 0x80000000, 0x00800000, 0xaaa00000, 0x2a00008a,
1453    0x00000100, 0x08000000, 0x88000000, 0x00000004};
1454    }
1455
1456    const static UnicodeSet ps_Set{const_cast<UnicodeSet::run_t *>(__ps_Set_runs), 31, 0, const_cast<UnicodeSet::bitquad_t *>(__ps_Set_quads), 28, 0};
1457
1458    /** Code Point Ranges for Pe
1459    [0029, 0029], [005d, 005d], [007d, 007d], [0f3b, 0f3b], [0f3d, 0f3d],
1460    [169c, 169c], [2046, 2046], [207e, 207e], [208e, 208e], [2309, 2309],
1461    [230b, 230b], [232a, 232a], [2769, 2769], [276b, 276b], [276d, 276d],
1462    [276f, 276f], [2771, 2771], [2773, 2773], [2775, 2775], [27c6, 27c6],
1463    [27e7, 27e7], [27e9, 27e9], [27eb, 27eb], [27ed, 27ed], [27ef, 27ef],
1464    [2984, 2984], [2986, 2986], [2988, 2988], [298a, 298a], [298c, 298c],
1465    [298e, 298e], [2990, 2990], [2992, 2992], [2994, 2994], [2996, 2996],
1466    [2998, 2998], [29d9, 29d9], [29db, 29db], [29fd, 29fd], [2e23, 2e23],
1467    [2e25, 2e25], [2e27, 2e27], [2e29, 2e29], [3009, 3009], [300b, 300b],
1468    [300d, 300d], [300f, 300f], [3011, 3011], [3015, 3015], [3017, 3017],
1469    [3019, 3019], [301b, 301b], [301e, 301f], [fd3e, fd3e], [fe18, fe18],
1470    [fe36, fe36], [fe38, fe38], [fe3a, fe3a], [fe3c, fe3c], [fe3e, fe3e],
1471    [fe40, fe40], [fe42, fe42], [fe44, fe44], [fe48, fe48], [fe5a, fe5a],
1472    [fe5c, fe5c], [fe5e, fe5e], [ff09, ff09], [ff3d, ff3d], [ff5d, ff5d],
1473    [ff60, ff60], [ff63, ff63]**/
1474
1475
1476    namespace {
1477    const static UnicodeSet::run_t __pe_Set_runs[] = {
1478    {Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
1479    {Mixed, 1}, {Empty, 77}, {Mixed, 3}, {Empty, 19}, {Mixed, 2},
1480    {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12},
1481    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
1482    {Empty, 14}, {Mixed, 1}, {Empty, 1640}, {Mixed, 1}, {Empty, 6},
1483    {Mixed, 3}, {Empty, 5}, {Mixed, 4}, {Empty, 32772}};
1484    const static UnicodeSet::bitquad_t  __pe_Set_quads[] = {
1485    0x00000200, 0x20000000, 0x20000000, 0x28000000, 0x10000000, 0x00000040,
1486    0x40000000, 0x00004000, 0x00000a00, 0x00000400, 0x002aaa00, 0x00000040,
1487    0x0000aa80, 0x01555550, 0x0a000000, 0x20000000, 0x000002a8, 0xcaa2aa00,
1488    0x40000000, 0x01000000, 0x55400000, 0x54000115, 0x00000200, 0x20000000,
1489    0x20000000, 0x00000009};
1490    }
1491
1492    const static UnicodeSet pe_Set{const_cast<UnicodeSet::run_t *>(__pe_Set_runs), 29, 0, const_cast<UnicodeSet::bitquad_t *>(__pe_Set_quads), 26, 0};
1493
1494    /** Code Point Ranges for Pc
1495    [005f, 005f], [203f, 2040], [2054, 2054], [fe33, fe34], [fe4d, fe4f],
1496    [ff3f, ff3f]**/
1497
1498
1499    namespace {
1500    const static UnicodeSet::run_t __pc_Set_runs[] = {
1501    {Empty, 2}, {Mixed, 1}, {Empty, 254}, {Mixed, 2}, {Empty, 1774},
1502    {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 32774}};
1503    const static UnicodeSet::bitquad_t  __pc_Set_quads[] = {
1504    0x80000000, 0x80000000, 0x00100001, 0x00180000, 0x0000e000, 0x80000000};
1505    }
1506
1507    const static UnicodeSet pc_Set{const_cast<UnicodeSet::run_t *>(__pc_Set_runs), 9, 0, const_cast<UnicodeSet::bitquad_t *>(__pc_Set_quads), 6, 0};
1508
1509    /** Code Point Ranges for Po
1510    [0021, 0023], [0025, 0027], [002a, 002a], [002c, 002c], [002e, 002f],
1511    [003a, 003b], [003f, 0040], [005c, 005c], [00a1, 00a1], [00a7, 00a7],
1512    [00b6, 00b7], [00bf, 00bf], [037e, 037e], [0387, 0387], [055a, 055f],
1513    [0589, 0589], [05c0, 05c0], [05c3, 05c3], [05c6, 05c6], [05f3, 05f4],
1514    [0609, 060a], [060c, 060d], [061b, 061b], [061e, 061f], [066a, 066d],
1515    [06d4, 06d4], [0700, 070d], [07f7, 07f9], [0830, 083e], [085e, 085e],
1516    [0964, 0965], [0970, 0970], [09fd, 09fd], [0a76, 0a76], [0af0, 0af0],
1517    [0c84, 0c84], [0df4, 0df4], [0e4f, 0e4f], [0e5a, 0e5b], [0f04, 0f12],
1518    [0f14, 0f14], [0f85, 0f85], [0fd0, 0fd4], [0fd9, 0fda], [104a, 104f],
1519    [10fb, 10fb], [1360, 1368], [166d, 166e], [16eb, 16ed], [1735, 1736],
1520    [17d4, 17d6], [17d8, 17da], [1800, 1805], [1807, 180a], [1944, 1945],
1521    [1a1e, 1a1f], [1aa0, 1aa6], [1aa8, 1aad], [1b5a, 1b60], [1bfc, 1bff],
1522    [1c3b, 1c3f], [1c7e, 1c7f], [1cc0, 1cc7], [1cd3, 1cd3], [2016, 2017],
1523    [2020, 2027], [2030, 2038], [203b, 203e], [2041, 2043], [2047, 2051],
1524    [2053, 2053], [2055, 205e], [2cf9, 2cfc], [2cfe, 2cff], [2d70, 2d70],
1525    [2e00, 2e01], [2e06, 2e08], [2e0b, 2e0b], [2e0e, 2e16], [2e18, 2e19],
1526    [2e1b, 2e1b], [2e1e, 2e1f], [2e2a, 2e2e], [2e30, 2e39], [2e3c, 2e3f],
1527    [2e41, 2e41], [2e43, 2e4e], [3001, 3003], [303d, 303d], [30fb, 30fb],
1528    [a4fe, a4ff], [a60d, a60f], [a673, a673], [a67e, a67e], [a6f2, a6f7],
1529    [a874, a877], [a8ce, a8cf], [a8f8, a8fa], [a8fc, a8fc], [a92e, a92f],
1530    [a95f, a95f], [a9c1, a9cd], [a9de, a9df], [aa5c, aa5f], [aade, aadf],
1531    [aaf0, aaf1], [abeb, abeb], [fe10, fe16], [fe19, fe19], [fe30, fe30],
1532    [fe45, fe46], [fe49, fe4c], [fe50, fe52], [fe54, fe57], [fe5f, fe61],
1533    [fe68, fe68], [fe6a, fe6b], [ff01, ff03], [ff05, ff07], [ff0a, ff0a],
1534    [ff0c, ff0c], [ff0e, ff0f], [ff1a, ff1b], [ff1f, ff20], [ff3c, ff3c],
1535    [ff61, ff61], [ff64, ff65], [10100, 10102], [1039f, 1039f],
1536    [103d0, 103d0], [1056f, 1056f], [10857, 10857], [1091f, 1091f],
1537    [1093f, 1093f], [10a50, 10a58], [10a7f, 10a7f], [10af0, 10af6],
1538    [10b39, 10b3f], [10b99, 10b9c], [10f55, 10f59], [11047, 1104d],
1539    [110bb, 110bc], [110be, 110c1], [11140, 11143], [11174, 11175],
1540    [111c5, 111c8], [111cd, 111cd], [111db, 111db], [111dd, 111df],
1541    [11238, 1123d], [112a9, 112a9], [1144b, 1144f], [1145b, 1145b],
1542    [1145d, 1145d], [114c6, 114c6], [115c1, 115d7], [11641, 11643],
1543    [11660, 1166c], [1173c, 1173e], [1183b, 1183b], [11a3f, 11a46],
1544    [11a9a, 11a9c], [11a9e, 11aa2], [11c41, 11c45], [11c70, 11c71],
1545    [11ef7, 11ef8], [12470, 12474], [16a6e, 16a6f], [16af5, 16af5],
1546    [16b37, 16b3b], [16b44, 16b44], [16e97, 16e9a], [1bc9f, 1bc9f],
1547    [1da87, 1da8b], [1e95e, 1e95f]**/
1548
1549
1550    namespace {
1551    const static UnicodeSet::run_t __po_Set_runs[] = {
1552    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 21}, {Mixed, 2},
1553    {Empty, 13}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1554    {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1555    {Empty, 6}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 8}, {Mixed, 1},
1556    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1557    {Empty, 12}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 2},
1558    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
1559    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 19},
1560    {Mixed, 1}, {Empty, 23}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
1561    {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9},
1562    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 4},
1563    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1564    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 25}, {Mixed, 3},
1565    {Empty, 100}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4},
1566    {Mixed, 3}, {Empty, 13}, {Mixed, 2}, {Empty, 5}, {Mixed, 1},
1567    {Empty, 927}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
1568    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 2},
1569    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
1570    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
1571    {Empty, 656}, {Mixed, 4}, {Empty, 4}, {Mixed, 2}, {Empty, 1},
1572    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 19}, {Mixed, 1},
1573    {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 22},
1574    {Mixed, 1}, {Empty, 5}, {Mixed, 2}, {Empty, 8}, {Mixed, 2}, {Empty, 3},
1575    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 29},
1576    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3},
1577    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
1578    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 7},
1579    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 7},
1580    {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
1581    {Empty, 12}, {Mixed, 2}, {Empty, 19}, {Mixed, 1}, {Empty, 43},
1582    {Mixed, 1}, {Empty, 559}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1583    {Empty, 1}, {Mixed, 2}, {Empty, 25}, {Mixed, 1}, {Empty, 623},
1584    {Mixed, 1}, {Empty, 239}, {Mixed, 1}, {Empty, 117}, {Mixed, 1},
1585    {Empty, 30901}};
1586    const static UnicodeSet::bitquad_t  __po_Set_quads[] = {
1587    0x8c00d4ee, 0x10000001, 0x80c00082, 0x40000000, 0x00000080, 0xfc000000,
1588    0x00000200, 0x00000049, 0x00180000, 0xc8003600, 0x00003c00, 0x00100000,
1589    0x00003fff, 0x03800000, 0x7fff0000, 0x40000000, 0x00010030, 0x20000000,
1590    0x00400000, 0x00010000, 0x00000010, 0x00100000, 0x0c008000, 0x0017fff0,
1591    0x00000020, 0x061f0000, 0x0000fc00, 0x08000000, 0x000001ff, 0x00006000,
1592    0x00003800, 0x00600000, 0x07700000, 0x000007bf, 0x00000030, 0xc0000000,
1593    0x00003f7f, 0xfc000000, 0x00000001, 0xf0000000, 0xf8000000, 0xc0000000,
1594    0x000800ff, 0x00c00000, 0x79ff00ff, 0x7febff8e, 0xde000000, 0x00010000,
1595    0xcb7fc9c3, 0xf3ff7c00, 0x00007ffa, 0x0000000e, 0x20000000, 0x08000000,
1596    0xc0000000, 0x0000e000, 0x40080000, 0x00fc0000, 0x00f00000, 0x0000c000,
1597    0x17000000, 0x0000c000, 0x80000000, 0xc0003ffe, 0xf0000000, 0xc0000000,
1598    0x00030000, 0x00000800, 0x027f0000, 0x00010000, 0x80f71e60, 0x00000d03,
1599    0x8c00d4ee, 0x10000001, 0x00000032, 0x00000007, 0x80000000, 0x00010000,
1600    0x00008000, 0x00800000, 0x80000000, 0x80000000, 0x01ff0000, 0x80000000,
1601    0x007f0000, 0xfe000000, 0x1e000000, 0x03e00000, 0x00003f80, 0xd8000000,
1602    0x00000003, 0x0000000f, 0x00300000, 0xe80021e0, 0x3f000000, 0x00000200,
1603    0x2800f800, 0x00000040, 0x00fffffe, 0x0000000e, 0x00001fff, 0x70000000,
1604    0x08000000, 0x80000000, 0x0000007f, 0xdc000000, 0x00000007, 0x0000003e,
1605    0x00030000, 0x01800000, 0x001f0000, 0x0000c000, 0x00200000, 0x0f800000,
1606    0x00000010, 0x07800000, 0x80000000, 0x00000f80, 0xc0000000};
1607    }
1608
1609    const static UnicodeSet po_Set{const_cast<UnicodeSet::run_t *>(__po_Set_runs), 185, 0, const_cast<UnicodeSet::bitquad_t *>(__po_Set_quads), 119, 0};
1610
1611    /** Code Point Ranges for Sm
1612    [002b, 002b], [003c, 003e], [007c, 007c], [007e, 007e], [00ac, 00ac],
1613    [00b1, 00b1], [00d7, 00d7], [00f7, 00f7], [03f6, 03f6], [0606, 0608],
1614    [2044, 2044], [2052, 2052], [207a, 207c], [208a, 208c], [2118, 2118],
1615    [2140, 2144], [214b, 214b], [2190, 2194], [219a, 219b], [21a0, 21a0],
1616    [21a3, 21a3], [21a6, 21a6], [21ae, 21ae], [21ce, 21cf], [21d2, 21d2],
1617    [21d4, 21d4], [21f4, 22ff], [2320, 2321], [237c, 237c], [239b, 23b3],
1618    [23dc, 23e1], [25b7, 25b7], [25c1, 25c1], [25f8, 25ff], [266f, 266f],
1619    [27c0, 27c4], [27c7, 27e5], [27f0, 27ff], [2900, 2982], [2999, 29d7],
1620    [29dc, 29fb], [29fe, 2aff], [2b30, 2b44], [2b47, 2b4c], [fb29, fb29],
1621    [fe62, fe62], [fe64, fe66], [ff0b, ff0b], [ff1c, ff1e], [ff5c, ff5c],
1622    [ff5e, ff5e], [ffe2, ffe2], [ffe9, ffec], [1d6c1, 1d6c1],
1623    [1d6db, 1d6db], [1d6fb, 1d6fb], [1d715, 1d715], [1d735, 1d735],
1624    [1d74f, 1d74f], [1d76f, 1d76f], [1d789, 1d789], [1d7a9, 1d7a9],
1625    [1d7c3, 1d7c3], [1eef0, 1eef1]**/
1626
1627
1628    namespace {
1629    const static UnicodeSet::run_t __sm_Set_runs[] = {
1630    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
1631    {Empty, 23}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 209},
1632    {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1633    {Mixed, 4}, {Full, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5},
1634    {Empty, 13}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 10},
1635    {Mixed, 2}, {Empty, 8}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
1636    {Full, 8}, {Empty, 1}, {Mixed, 2}, {Empty, 1662}, {Mixed, 1},
1637    {Empty, 25}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1638    {Empty, 4}, {Mixed, 1}, {Empty, 1718}, {Mixed, 9}, {Empty, 184},
1639    {Mixed, 1}, {Empty, 30856}};
1640    const static UnicodeSet::bitquad_t  __sm_Set_quads[] = {
1641    0x70000800, 0x50000000, 0x00021000, 0x00800000, 0x00800000, 0x00400000,
1642    0x000001c0, 0x00040010, 0x1c000000, 0x00001c00, 0x01000000, 0x0000081f,
1643    0x0c1f0000, 0x00004049, 0x0014c000, 0xfff00000, 0x00000003, 0x10000000,
1644    0xf8000000, 0x000fffff, 0xf0000000, 0x00000003, 0x00800000, 0x00000002,
1645    0xff000000, 0x00008000, 0xffffff9f, 0xffff003f, 0xfe000007, 0xf0ffffff,
1646    0xcfffffff, 0xffff0000, 0x00001f9f, 0x00000200, 0x00000074, 0x70000800,
1647    0x50000000, 0x00001e04, 0x08000002, 0x08000000, 0x00200000, 0x00200000,
1648    0x00008000, 0x00008000, 0x00000200, 0x00000200, 0x00000008, 0x00030000};
1649    }
1650
1651    const static UnicodeSet sm_Set{const_cast<UnicodeSet::run_t *>(__sm_Set_runs), 52, 0, const_cast<UnicodeSet::bitquad_t *>(__sm_Set_quads), 48, 0};
1652
1653    /** Code Point Ranges for Sc
1654    [0024, 0024], [00a2, 00a5], [058f, 058f], [060b, 060b], [07fe, 07ff],
1655    [09f2, 09f3], [09fb, 09fb], [0af1, 0af1], [0bf9, 0bf9], [0e3f, 0e3f],
1656    [17db, 17db], [20a0, 20bf], [a838, a838], [fdfc, fdfc], [fe69, fe69],
1657    [ff04, ff04], [ffe0, ffe1], [ffe5, ffe6], [1ecb0, 1ecb0]**/
1658
1659
1660    namespace {
1661    const static UnicodeSet::run_t __sc_Set_runs[] = {
1662    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 38}, {Mixed, 1},
1663    {Empty, 3}, {Mixed, 1}, {Empty, 14}, {Mixed, 1}, {Empty, 15},
1664    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 17},
1665    {Mixed, 1}, {Empty, 76}, {Mixed, 1}, {Empty, 70}, {Full, 1},
1666    {Empty, 1083}, {Mixed, 1}, {Empty, 685}, {Mixed, 1}, {Empty, 3},
1667    {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
1668    {Empty, 1893}, {Mixed, 1}, {Empty, 30874}};
1669    const static UnicodeSet::bitquad_t  __sc_Set_quads[] = {
1670    0x00000010, 0x0000003c, 0x00008000, 0x00000800, 0xc0000000, 0x080c0000,
1671    0x00020000, 0x02000000, 0x80000000, 0x08000000, 0x01000000, 0x10000000,
1672    0x00000200, 0x00000010, 0x00000063, 0x00010000};
1673    }
1674
1675    const static UnicodeSet sc_Set{const_cast<UnicodeSet::run_t *>(__sc_Set_runs), 35, 0, const_cast<UnicodeSet::bitquad_t *>(__sc_Set_quads), 16, 0};
1676
1677    /** Code Point Ranges for Sk
1678    [005e, 005e], [0060, 0060], [00a8, 00a8], [00af, 00af], [00b4, 00b4],
1679    [00b8, 00b8], [02c2, 02c5], [02d2, 02df], [02e5, 02eb], [02ed, 02ed],
1680    [02ef, 02ff], [0375, 0375], [0384, 0385], [1fbd, 1fbd], [1fbf, 1fc1],
1681    [1fcd, 1fcf], [1fdd, 1fdf], [1fed, 1fef], [1ffd, 1ffe], [309b, 309c],
1682    [a700, a716], [a720, a721], [a789, a78a], [ab5b, ab5b], [fbb2, fbc1],
1683    [ff3e, ff3e], [ff40, ff40], [ffe3, ffe3], [1f3fb, 1f3ff]**/
1684
1685
1686    namespace {
1687    const static UnicodeSet::run_t __sk_Set_runs[] = {
1688    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Mixed, 2},
1689    {Empty, 3}, {Mixed, 2}, {Empty, 224}, {Mixed, 3}, {Empty, 132},
1690    {Mixed, 1}, {Empty, 947}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
1691    {Empty, 29}, {Mixed, 1}, {Empty, 642}, {Mixed, 2}, {Empty, 26},
1692    {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1951}, {Mixed, 1},
1693    {Empty, 30816}};
1694    const static UnicodeSet::bitquad_t  __sk_Set_quads[] = {
1695    0x40000000, 0x00000001, 0x01108100, 0xfffc003c, 0xffffafe0, 0x00200000,
1696    0x00000030, 0xa0000000, 0xe000e003, 0x6000e000, 0x18000000, 0x007fffff,
1697    0x00000003, 0x00000600, 0x08000000, 0xfffc0000, 0x00000003, 0x40000000,
1698    0x00000001, 0x00000008, 0xf8000000};
1699    }
1700
1701    const static UnicodeSet sk_Set{const_cast<UnicodeSet::run_t *>(__sk_Set_runs), 27, 0, const_cast<UnicodeSet::bitquad_t *>(__sk_Set_quads), 21, 0};
1702
1703    /** Code Point Ranges for So
1704    [00a6, 00a6], [00a9, 00a9], [00ae, 00ae], [00b0, 00b0], [0482, 0482],
1705    [058d, 058e], [060e, 060f], [06de, 06de], [06e9, 06e9], [06fd, 06fe],
1706    [07f6, 07f6], [09fa, 09fa], [0b70, 0b70], [0bf3, 0bf8], [0bfa, 0bfa],
1707    [0c7f, 0c7f], [0d4f, 0d4f], [0d79, 0d79], [0f01, 0f03], [0f13, 0f13],
1708    [0f15, 0f17], [0f1a, 0f1f], [0f34, 0f34], [0f36, 0f36], [0f38, 0f38],
1709    [0fbe, 0fc5], [0fc7, 0fcc], [0fce, 0fcf], [0fd5, 0fd8], [109e, 109f],
1710    [1390, 1399], [1940, 1940], [19de, 19ff], [1b61, 1b6a], [1b74, 1b7c],
1711    [2100, 2101], [2103, 2106], [2108, 2109], [2114, 2114], [2116, 2117],
1712    [211e, 2123], [2125, 2125], [2127, 2127], [2129, 2129], [212e, 212e],
1713    [213a, 213b], [214a, 214a], [214c, 214d], [214f, 214f], [218a, 218b],
1714    [2195, 2199], [219c, 219f], [21a1, 21a2], [21a4, 21a5], [21a7, 21ad],
1715    [21af, 21cd], [21d0, 21d1], [21d3, 21d3], [21d5, 21f3], [2300, 2307],
1716    [230c, 231f], [2322, 2328], [232b, 237b], [237d, 239a], [23b4, 23db],
1717    [23e2, 2426], [2440, 244a], [249c, 24e9], [2500, 25b6], [25b8, 25c0],
1718    [25c2, 25f7], [2600, 266e], [2670, 2767], [2794, 27bf], [2800, 28ff],
1719    [2b00, 2b2f], [2b45, 2b46], [2b4d, 2b73], [2b76, 2b95], [2b98, 2bc8],
1720    [2bca, 2bfe], [2ce5, 2cea], [2e80, 2e99], [2e9b, 2ef3], [2f00, 2fd5],
1721    [2ff0, 2ffb], [3004, 3004], [3012, 3013], [3020, 3020], [3036, 3037],
1722    [303e, 303f], [3190, 3191], [3196, 319f], [31c0, 31e3], [3200, 321e],
1723    [322a, 3247], [3250, 3250], [3260, 327f], [328a, 32b0], [32c0, 32fe],
1724    [3300, 33ff], [4dc0, 4dff], [a490, a4c6], [a828, a82b], [a836, a837],
1725    [a839, a839], [aa77, aa79], [fdfd, fdfd], [ffe4, ffe4], [ffe8, ffe8],
1726    [ffed, ffee], [fffc, fffd], [10137, 1013f], [10179, 10189],
1727    [1018c, 1018e], [10190, 1019b], [101a0, 101a0], [101d0, 101fc],
1728    [10877, 10878], [10ac8, 10ac8], [1173f, 1173f], [16b3c, 16b3f],
1729    [16b45, 16b45], [1bc9c, 1bc9c], [1d000, 1d0f5], [1d100, 1d126],
1730    [1d129, 1d164], [1d16a, 1d16c], [1d183, 1d184], [1d18c, 1d1a9],
1731    [1d1ae, 1d1e8], [1d200, 1d241], [1d245, 1d245], [1d300, 1d356],
1732    [1d800, 1d9ff], [1da37, 1da3a], [1da6d, 1da74], [1da76, 1da83],
1733    [1da85, 1da86], [1ecac, 1ecac], [1f000, 1f02b], [1f030, 1f093],
1734    [1f0a0, 1f0ae], [1f0b1, 1f0bf], [1f0c1, 1f0cf], [1f0d1, 1f0f5],
1735    [1f110, 1f16b], [1f170, 1f1ac], [1f1e6, 1f202], [1f210, 1f23b],
1736    [1f240, 1f248], [1f250, 1f251], [1f260, 1f265], [1f300, 1f3fa],
1737    [1f400, 1f6d4], [1f6e0, 1f6ec], [1f6f0, 1f6f9], [1f700, 1f773],
1738    [1f780, 1f7d8], [1f800, 1f80b], [1f810, 1f847], [1f850, 1f859],
1739    [1f860, 1f887], [1f890, 1f8ad], [1f900, 1f90b], [1f910, 1f93e],
1740    [1f940, 1f970], [1f973, 1f976], [1f97a, 1f97a], [1f97c, 1f9a2],
1741    [1f9b0, 1f9b9], [1f9c0, 1f9c2], [1f9d0, 1f9ff], [1fa60, 1fa6d]**/
1742
1743
1744    namespace {
1745    const static UnicodeSet::run_t __so_Set_runs[] = {
1746    {Empty, 5}, {Mixed, 1}, {Empty, 30}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
1747    {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
1748    {Empty, 15}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 3},
1749    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 12},
1750    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 23},
1751    {Mixed, 1}, {Empty, 45}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Full, 1},
1752    {Empty, 11}, {Mixed, 1}, {Empty, 44}, {Mixed, 3}, {Empty, 1},
1753    {Mixed, 4}, {Empty, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Full, 1},
1754    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 5},
1755    {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 7}, {Mixed, 2}, {Full, 1},
1756    {Empty, 2}, {Full, 8}, {Empty, 16}, {Full, 1}, {Mixed, 4}, {Full, 1},
1757    {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Full, 2},
1758    {Mixed, 1}, {Full, 6}, {Mixed, 4}, {Empty, 10}, {Mixed, 1}, {Empty, 1},
1759    {Full, 1}, {Mixed, 4}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
1760    {Full, 8}, {Empty, 206}, {Full, 2}, {Empty, 692}, {Mixed, 1}, {Full, 1},
1761    {Mixed, 1}, {Empty, 26}, {Mixed, 1}, {Empty, 17}, {Mixed, 1},
1762    {Empty, 667}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 9},
1763    {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 51}, {Mixed, 1},
1764    {Empty, 18}, {Mixed, 1}, {Empty, 98}, {Mixed, 1}, {Empty, 671},
1765    {Mixed, 2}, {Empty, 649}, {Mixed, 1}, {Empty, 155}, {Full, 7},
1766    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1},
1767    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 2}, {Mixed, 1},
1768    {Empty, 37}, {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
1769    {Empty, 144}, {Mixed, 1}, {Empty, 26}, {Full, 1}, {Mixed, 1}, {Full, 2},
1770    {Mixed, 5}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
1771    {Mixed, 5}, {Empty, 4}, {Full, 7}, {Mixed, 1}, {Full, 22}, {Mixed, 2},
1772    {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
1773    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
1774    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Empty, 3},
1775    {Mixed, 1}, {Empty, 30764}};
1776    const static UnicodeSet::bitquad_t  __so_Set_quads[] = {
1777    0x00014240, 0x00000004, 0x00006000, 0x0000c000, 0x40000000, 0x60000200,
1778    0x00400000, 0x04000000, 0x00010000, 0x05f80000, 0x80000000, 0x00008000,
1779    0x02000000, 0xfce8000e, 0x01500000, 0xc0000000, 0x01e0dfbf, 0xc0000000,
1780    0x03ff0000, 0x00000001, 0xc0000000, 0x1ff007fe, 0xc0d0037b, 0x0c0042af,
1781    0x0000b400, 0xf3e00c00, 0xffffbfb6, 0xffeb3fff, 0x000fffff, 0xfffff0ff,
1782    0xfffff9fc, 0xefffffff, 0x07ffffff, 0xfff00000, 0x0fffffff, 0xfffffffc,
1783    0x0000007f, 0x000007ff, 0xf0000000, 0x000003ff, 0xff7fffff, 0xfffffffd,
1784    0x00ffffff, 0xffff7fff, 0x000000ff, 0xfff00000, 0x0000ffff, 0xffffe060,
1785    0xffcfffff, 0xff3fffff, 0xfffffdff, 0x7fffffff, 0x000007e0, 0xfbffffff,
1786    0x000fffff, 0x003fffff, 0x0fff0000, 0x000c0010, 0xc0c00001, 0xffc30000,
1787    0x0000000f, 0x7fffffff, 0xfffffc00, 0x000100ff, 0xfffffc00, 0x0001ffff,
1788    0x7fffffff, 0xffff0000, 0x0000007f, 0x02c00f00, 0x03800000, 0x20000000,
1789    0x30006110, 0xff800000, 0xfe000000, 0x0fff73ff, 0x00000001, 0xffff0000,
1790    0x1fffffff, 0x01800000, 0x00000100, 0x80000000, 0xf0000000, 0x00000020,
1791    0x10000000, 0x003fffff, 0xfffffe7f, 0x00001c1f, 0xfffff018, 0xffffc3ff,
1792    0x000001ff, 0x00000023, 0x007fffff, 0x07800000, 0xffdfe000, 0x0000006f,
1793    0x00001000, 0xffff0fff, 0x000fffff, 0xfffe7fff, 0xfffefffe, 0x003fffff,
1794    0xffff0000, 0xffff0fff, 0x00001fff, 0xffffffc0, 0xffff0007, 0x0fffffff,
1795    0x000301ff, 0x0000003f, 0x07ffffff, 0x001fffff, 0x03ff1fff, 0x000fffff,
1796    0x01ffffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff, 0xffff0fff,
1797    0x7fffffff, 0xf479ffff, 0x03ff0007, 0xffff0007, 0x00003fff};
1798    }
1799
1800    const static UnicodeSet so_Set{const_cast<UnicodeSet::run_t *>(__so_Set_runs), 169, 0, const_cast<UnicodeSet::bitquad_t *>(__so_Set_quads), 125, 0};
1801
1802    /** Code Point Ranges for Pi
1803    [00ab, 00ab], [2018, 2018], [201b, 201c], [201f, 201f], [2039, 2039],
1804    [2e02, 2e02], [2e04, 2e04], [2e09, 2e09], [2e0c, 2e0c], [2e1c, 2e1c],
1805    [2e20, 2e20]**/
1806
1807
1808    namespace {
1809    const static UnicodeSet::run_t __pi_Set_runs[] = {
1810    {Empty, 5}, {Mixed, 1}, {Empty, 250}, {Mixed, 2}, {Empty, 110},
1811    {Mixed, 2}, {Empty, 34446}};
1812    const static UnicodeSet::bitquad_t  __pi_Set_quads[] = {
1813    0x00000800, 0x99000000, 0x02000000, 0x10001214, 0x00000001};
1814    }
1815
1816    const static UnicodeSet pi_Set{const_cast<UnicodeSet::run_t *>(__pi_Set_runs), 7, 0, const_cast<UnicodeSet::bitquad_t *>(__pi_Set_quads), 5, 0};
1817
1818    /** Code Point Ranges for Pf
1819    [00bb, 00bb], [2019, 2019], [201d, 201d], [203a, 203a], [2e03, 2e03],
1820    [2e05, 2e05], [2e0a, 2e0a], [2e0d, 2e0d], [2e1d, 2e1d], [2e21, 2e21]**/
1821
1822
1823    namespace {
1824    const static UnicodeSet::run_t __pf_Set_runs[] = {
1825    {Empty, 5}, {Mixed, 1}, {Empty, 250}, {Mixed, 2}, {Empty, 110},
1826    {Mixed, 2}, {Empty, 34446}};
1827    const static UnicodeSet::bitquad_t  __pf_Set_quads[] = {
1828    0x08000000, 0x22000000, 0x04000000, 0x20002428, 0x00000002};
1829    }
1830
1831    const static UnicodeSet pf_Set{const_cast<UnicodeSet::run_t *>(__pf_Set_runs), 7, 0, const_cast<UnicodeSet::bitquad_t *>(__pf_Set_quads), 5, 0};
1832
1833    /** Code Point Ranges for C
1834    [0000, 001f], [007f, 009f], [00ad, 00ad], [0378, 0379], [0380, 0383],
1835    [038b, 038b], [038d, 038d], [03a2, 03a2], [0530, 0530], [0557, 0558],
1836    [058b, 058c], [0590, 0590], [05c8, 05cf], [05eb, 05ee], [05f5, 0605],
1837    [061c, 061d], [06dd, 06dd], [070e, 070f], [074b, 074c], [07b2, 07bf],
1838    [07fb, 07fc], [082e, 082f], [083f, 083f], [085c, 085d], [085f, 085f],
1839    [086b, 089f], [08b5, 08b5], [08be, 08d2], [08e2, 08e2], [0984, 0984],
1840    [098d, 098e], [0991, 0992], [09a9, 09a9], [09b1, 09b1], [09b3, 09b5],
1841    [09ba, 09bb], [09c5, 09c6], [09c9, 09ca], [09cf, 09d6], [09d8, 09db],
1842    [09de, 09de], [09e4, 09e5], [09ff, 0a00], [0a04, 0a04], [0a0b, 0a0e],
1843    [0a11, 0a12], [0a29, 0a29], [0a31, 0a31], [0a34, 0a34], [0a37, 0a37],
1844    [0a3a, 0a3b], [0a3d, 0a3d], [0a43, 0a46], [0a49, 0a4a], [0a4e, 0a50],
1845    [0a52, 0a58], [0a5d, 0a5d], [0a5f, 0a65], [0a77, 0a80], [0a84, 0a84],
1846    [0a8e, 0a8e], [0a92, 0a92], [0aa9, 0aa9], [0ab1, 0ab1], [0ab4, 0ab4],
1847    [0aba, 0abb], [0ac6, 0ac6], [0aca, 0aca], [0ace, 0acf], [0ad1, 0adf],
1848    [0ae4, 0ae5], [0af2, 0af8], [0b00, 0b00], [0b04, 0b04], [0b0d, 0b0e],
1849    [0b11, 0b12], [0b29, 0b29], [0b31, 0b31], [0b34, 0b34], [0b3a, 0b3b],
1850    [0b45, 0b46], [0b49, 0b4a], [0b4e, 0b55], [0b58, 0b5b], [0b5e, 0b5e],
1851    [0b64, 0b65], [0b78, 0b81], [0b84, 0b84], [0b8b, 0b8d], [0b91, 0b91],
1852    [0b96, 0b98], [0b9b, 0b9b], [0b9d, 0b9d], [0ba0, 0ba2], [0ba5, 0ba7],
1853    [0bab, 0bad], [0bba, 0bbd], [0bc3, 0bc5], [0bc9, 0bc9], [0bce, 0bcf],
1854    [0bd1, 0bd6], [0bd8, 0be5], [0bfb, 0bff], [0c0d, 0c0d], [0c11, 0c11],
1855    [0c29, 0c29], [0c3a, 0c3c], [0c45, 0c45], [0c49, 0c49], [0c4e, 0c54],
1856    [0c57, 0c57], [0c5b, 0c5f], [0c64, 0c65], [0c70, 0c77], [0c8d, 0c8d],
1857    [0c91, 0c91], [0ca9, 0ca9], [0cb4, 0cb4], [0cba, 0cbb], [0cc5, 0cc5],
1858    [0cc9, 0cc9], [0cce, 0cd4], [0cd7, 0cdd], [0cdf, 0cdf], [0ce4, 0ce5],
1859    [0cf0, 0cf0], [0cf3, 0cff], [0d04, 0d04], [0d0d, 0d0d], [0d11, 0d11],
1860    [0d45, 0d45], [0d49, 0d49], [0d50, 0d53], [0d64, 0d65], [0d80, 0d81],
1861    [0d84, 0d84], [0d97, 0d99], [0db2, 0db2], [0dbc, 0dbc], [0dbe, 0dbf],
1862    [0dc7, 0dc9], [0dcb, 0dce], [0dd5, 0dd5], [0dd7, 0dd7], [0de0, 0de5],
1863    [0df0, 0df1], [0df5, 0e00], [0e3b, 0e3e], [0e5c, 0e80], [0e83, 0e83],
1864    [0e85, 0e86], [0e89, 0e89], [0e8b, 0e8c], [0e8e, 0e93], [0e98, 0e98],
1865    [0ea0, 0ea0], [0ea4, 0ea4], [0ea6, 0ea6], [0ea8, 0ea9], [0eac, 0eac],
1866    [0eba, 0eba], [0ebe, 0ebf], [0ec5, 0ec5], [0ec7, 0ec7], [0ece, 0ecf],
1867    [0eda, 0edb], [0ee0, 0eff], [0f48, 0f48], [0f6d, 0f70], [0f98, 0f98],
1868    [0fbd, 0fbd], [0fcd, 0fcd], [0fdb, 0fff], [10c6, 10c6], [10c8, 10cc],
1869    [10ce, 10cf], [1249, 1249], [124e, 124f], [1257, 1257], [1259, 1259],
1870    [125e, 125f], [1289, 1289], [128e, 128f], [12b1, 12b1], [12b6, 12b7],
1871    [12bf, 12bf], [12c1, 12c1], [12c6, 12c7], [12d7, 12d7], [1311, 1311],
1872    [1316, 1317], [135b, 135c], [137d, 137f], [139a, 139f], [13f6, 13f7],
1873    [13fe, 13ff], [169d, 169f], [16f9, 16ff], [170d, 170d], [1715, 171f],
1874    [1737, 173f], [1754, 175f], [176d, 176d], [1771, 1771], [1774, 177f],
1875    [17de, 17df], [17ea, 17ef], [17fa, 17ff], [180e, 180f], [181a, 181f],
1876    [1879, 187f], [18ab, 18af], [18f6, 18ff], [191f, 191f], [192c, 192f],
1877    [193c, 193f], [1941, 1943], [196e, 196f], [1975, 197f], [19ac, 19af],
1878    [19ca, 19cf], [19db, 19dd], [1a1c, 1a1d], [1a5f, 1a5f], [1a7d, 1a7e],
1879    [1a8a, 1a8f], [1a9a, 1a9f], [1aae, 1aaf], [1abf, 1aff], [1b4c, 1b4f],
1880    [1b7d, 1b7f], [1bf4, 1bfb], [1c38, 1c3a], [1c4a, 1c4c], [1c89, 1c8f],
1881    [1cbb, 1cbc], [1cc8, 1ccf], [1cfa, 1cff], [1dfa, 1dfa], [1f16, 1f17],
1882    [1f1e, 1f1f], [1f46, 1f47], [1f4e, 1f4f], [1f58, 1f58], [1f5a, 1f5a],
1883    [1f5c, 1f5c], [1f5e, 1f5e], [1f7e, 1f7f], [1fb5, 1fb5], [1fc5, 1fc5],
1884    [1fd4, 1fd5], [1fdc, 1fdc], [1ff0, 1ff1], [1ff5, 1ff5], [1fff, 1fff],
1885    [200b, 200f], [202a, 202e], [2060, 206f], [2072, 2073], [208f, 208f],
1886    [209d, 209f], [20c0, 20cf], [20f1, 20ff], [218c, 218f], [2427, 243f],
1887    [244b, 245f], [2b74, 2b75], [2b96, 2b97], [2bc9, 2bc9], [2bff, 2bff],
1888    [2c2f, 2c2f], [2c5f, 2c5f], [2cf4, 2cf8], [2d26, 2d26], [2d28, 2d2c],
1889    [2d2e, 2d2f], [2d68, 2d6e], [2d71, 2d7e], [2d97, 2d9f], [2da7, 2da7],
1890    [2daf, 2daf], [2db7, 2db7], [2dbf, 2dbf], [2dc7, 2dc7], [2dcf, 2dcf],
1891    [2dd7, 2dd7], [2ddf, 2ddf], [2e4f, 2e7f], [2e9a, 2e9a], [2ef4, 2eff],
1892    [2fd6, 2fef], [2ffc, 2fff], [3040, 3040], [3097, 3098], [3100, 3104],
1893    [3130, 3130], [318f, 318f], [31bb, 31bf], [31e4, 31ef], [321f, 321f],
1894    [32ff, 32ff], [4db6, 4dbf], [9ff0, 9fff], [a48d, a48f], [a4c7, a4cf],
1895    [a62c, a63f], [a6f8, a6ff], [a7ba, a7f6], [a82c, a82f], [a83a, a83f],
1896    [a878, a87f], [a8c6, a8cd], [a8da, a8df], [a954, a95e], [a97d, a97f],
1897    [a9ce, a9ce], [a9da, a9dd], [a9ff, a9ff], [aa37, aa3f], [aa4e, aa4f],
1898    [aa5a, aa5b], [aac3, aada], [aaf7, ab00], [ab07, ab08], [ab0f, ab10],
1899    [ab17, ab1f], [ab27, ab27], [ab2f, ab2f], [ab66, ab6f], [abee, abef],
1900    [abfa, abff], [d7a4, d7af], [d7c7, d7ca], [d7fc, f8ff], [fa6e, fa6f],
1901    [fada, faff], [fb07, fb12], [fb18, fb1c], [fb37, fb37], [fb3d, fb3d],
1902    [fb3f, fb3f], [fb42, fb42], [fb45, fb45], [fbc2, fbd2], [fd40, fd4f],
1903    [fd90, fd91], [fdc8, fdef], [fdfe, fdff], [fe1a, fe1f], [fe53, fe53],
1904    [fe67, fe67], [fe6c, fe6f], [fe75, fe75], [fefd, ff00], [ffbf, ffc1],
1905    [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf], [ffe7, ffe7],
1906    [ffef, fffb], [fffe, ffff], [1000c, 1000c], [10027, 10027],
1907    [1003b, 1003b], [1003e, 1003e], [1004e, 1004f], [1005e, 1007f],
1908    [100fb, 100ff], [10103, 10106], [10134, 10136], [1018f, 1018f],
1909    [1019c, 1019f], [101a1, 101cf], [101fe, 1027f], [1029d, 1029f],
1910    [102d1, 102df], [102fc, 102ff], [10324, 1032c], [1034b, 1034f],
1911    [1037b, 1037f], [1039e, 1039e], [103c4, 103c7], [103d6, 103ff],
1912    [1049e, 1049f], [104aa, 104af], [104d4, 104d7], [104fc, 104ff],
1913    [10528, 1052f], [10564, 1056e], [10570, 105ff], [10737, 1073f],
1914    [10756, 1075f], [10768, 107ff], [10806, 10807], [10809, 10809],
1915    [10836, 10836], [10839, 1083b], [1083d, 1083e], [10856, 10856],
1916    [1089f, 108a6], [108b0, 108df], [108f3, 108f3], [108f6, 108fa],
1917    [1091c, 1091e], [1093a, 1093e], [10940, 1097f], [109b8, 109bb],
1918    [109d0, 109d1], [10a04, 10a04], [10a07, 10a0b], [10a14, 10a14],
1919    [10a18, 10a18], [10a36, 10a37], [10a3b, 10a3e], [10a49, 10a4f],
1920    [10a59, 10a5f], [10aa0, 10abf], [10ae7, 10aea], [10af7, 10aff],
1921    [10b36, 10b38], [10b56, 10b57], [10b73, 10b77], [10b92, 10b98],
1922    [10b9d, 10ba8], [10bb0, 10bff], [10c49, 10c7f], [10cb3, 10cbf],
1923    [10cf3, 10cf9], [10d28, 10d2f], [10d3a, 10e5f], [10e7f, 10eff],
1924    [10f28, 10f2f], [10f5a, 10fff], [1104e, 11051], [11070, 1107e],
1925    [110bd, 110bd], [110c2, 110cf], [110e9, 110ef], [110fa, 110ff],
1926    [11135, 11135], [11147, 1114f], [11177, 1117f], [111ce, 111cf],
1927    [111e0, 111e0], [111f5, 111ff], [11212, 11212], [1123f, 1127f],
1928    [11287, 11287], [11289, 11289], [1128e, 1128e], [1129e, 1129e],
1929    [112aa, 112af], [112eb, 112ef], [112fa, 112ff], [11304, 11304],
1930    [1130d, 1130e], [11311, 11312], [11329, 11329], [11331, 11331],
1931    [11334, 11334], [1133a, 1133a], [11345, 11346], [11349, 1134a],
1932    [1134e, 1134f], [11351, 11356], [11358, 1135c], [11364, 11365],
1933    [1136d, 1136f], [11375, 113ff], [1145a, 1145a], [1145c, 1145c],
1934    [1145f, 1147f], [114c8, 114cf], [114da, 1157f], [115b6, 115b7],
1935    [115de, 115ff], [11645, 1164f], [1165a, 1165f], [1166d, 1167f],
1936    [116b8, 116bf], [116ca, 116ff], [1171b, 1171c], [1172c, 1172f],
1937    [11740, 117ff], [1183c, 1189f], [118f3, 118fe], [11900, 119ff],
1938    [11a48, 11a4f], [11a84, 11a85], [11aa3, 11abf], [11af9, 11bff],
1939    [11c09, 11c09], [11c37, 11c37], [11c46, 11c4f], [11c6d, 11c6f],
1940    [11c90, 11c91], [11ca8, 11ca8], [11cb7, 11cff], [11d07, 11d07],
1941    [11d0a, 11d0a], [11d37, 11d39], [11d3b, 11d3b], [11d3e, 11d3e],
1942    [11d48, 11d4f], [11d5a, 11d5f], [11d66, 11d66], [11d69, 11d69],
1943    [11d8f, 11d8f], [11d92, 11d92], [11d99, 11d9f], [11daa, 11edf],
1944    [11ef9, 11fff], [1239a, 123ff], [1246f, 1246f], [12475, 1247f],
1945    [12544, 12fff], [1342f, 143ff], [14647, 167ff], [16a39, 16a3f],
1946    [16a5f, 16a5f], [16a6a, 16a6d], [16a70, 16acf], [16aee, 16aef],
1947    [16af6, 16aff], [16b46, 16b4f], [16b5a, 16b5a], [16b62, 16b62],
1948    [16b78, 16b7c], [16b90, 16e3f], [16e9b, 16eff], [16f45, 16f4f],
1949    [16f7f, 16f8e], [16fa0, 16fdf], [16fe2, 16fff], [187f2, 187ff],
1950    [18af3, 1afff], [1b11f, 1b16f], [1b2fc, 1bbff], [1bc6b, 1bc6f],
1951    [1bc7d, 1bc7f], [1bc89, 1bc8f], [1bc9a, 1bc9b], [1bca0, 1cfff],
1952    [1d0f6, 1d0ff], [1d127, 1d128], [1d173, 1d17a], [1d1e9, 1d1ff],
1953    [1d246, 1d2df], [1d2f4, 1d2ff], [1d357, 1d35f], [1d379, 1d3ff],
1954    [1d455, 1d455], [1d49d, 1d49d], [1d4a0, 1d4a1], [1d4a3, 1d4a4],
1955    [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4ba, 1d4ba], [1d4bc, 1d4bc],
1956    [1d4c4, 1d4c4], [1d506, 1d506], [1d50b, 1d50c], [1d515, 1d515],
1957    [1d51d, 1d51d], [1d53a, 1d53a], [1d53f, 1d53f], [1d545, 1d545],
1958    [1d547, 1d549], [1d551, 1d551], [1d6a6, 1d6a7], [1d7cc, 1d7cd],
1959    [1da8c, 1da9a], [1daa0, 1daa0], [1dab0, 1dfff], [1e007, 1e007],
1960    [1e019, 1e01a], [1e022, 1e022], [1e025, 1e025], [1e02b, 1e7ff],
1961    [1e8c5, 1e8c6], [1e8d7, 1e8ff], [1e94b, 1e94f], [1e95a, 1e95d],
1962    [1e960, 1ec70], [1ecb5, 1edff], [1ee04, 1ee04], [1ee20, 1ee20],
1963    [1ee23, 1ee23], [1ee25, 1ee26], [1ee28, 1ee28], [1ee33, 1ee33],
1964    [1ee38, 1ee38], [1ee3a, 1ee3a], [1ee3c, 1ee41], [1ee43, 1ee46],
1965    [1ee48, 1ee48], [1ee4a, 1ee4a], [1ee4c, 1ee4c], [1ee50, 1ee50],
1966    [1ee53, 1ee53], [1ee55, 1ee56], [1ee58, 1ee58], [1ee5a, 1ee5a],
1967    [1ee5c, 1ee5c], [1ee5e, 1ee5e], [1ee60, 1ee60], [1ee63, 1ee63],
1968    [1ee65, 1ee66], [1ee6b, 1ee6b], [1ee73, 1ee73], [1ee78, 1ee78],
1969    [1ee7d, 1ee7d], [1ee7f, 1ee7f], [1ee8a, 1ee8a], [1ee9c, 1eea0],
1970    [1eea4, 1eea4], [1eeaa, 1eeaa], [1eebc, 1eeef], [1eef2, 1efff],
1971    [1f02c, 1f02f], [1f094, 1f09f], [1f0af, 1f0b0], [1f0c0, 1f0c0],
1972    [1f0d0, 1f0d0], [1f0f6, 1f0ff], [1f10d, 1f10f], [1f16c, 1f16f],
1973    [1f1ad, 1f1e5], [1f203, 1f20f], [1f23c, 1f23f], [1f249, 1f24f],
1974    [1f252, 1f25f], [1f266, 1f2ff], [1f6d5, 1f6df], [1f6ed, 1f6ef],
1975    [1f6fa, 1f6ff], [1f774, 1f77f], [1f7d9, 1f7ff], [1f80c, 1f80f],
1976    [1f848, 1f84f], [1f85a, 1f85f], [1f888, 1f88f], [1f8ae, 1f8ff],
1977    [1f90c, 1f90f], [1f93f, 1f93f], [1f971, 1f972], [1f977, 1f979],
1978    [1f97b, 1f97b], [1f9a3, 1f9af], [1f9ba, 1f9bf], [1f9c3, 1f9cf],
1979    [1fa00, 1fa5f], [1fa6e, 1ffff], [2a6d7, 2a6ff], [2b735, 2b73f],
1980    [2b81e, 2b81f], [2cea2, 2ceaf], [2ebe1, 2f7ff], [2fa1e, e00ff],
1981    [e01f0, 10ffff]**/
1982
1983
1984    namespace {
1985    const static UnicodeSet::run_t __c_Set_runs[] = {
1986    {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 21},
1987    {Mixed, 3}, {Empty, 11}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1988    {Mixed, 3}, {Empty, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1989    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1990    {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Empty, 4}, {Mixed, 29}, {Empty, 1},
1991    {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 5},
1992    {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1},
1993    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
1994    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
1995    {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1996    {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
1997    {Mixed, 4}, {Full, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
1998    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 7}, {Mixed, 1},
1999    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 5},
2000    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
2001    {Empty, 20}, {Mixed, 2}, {Empty, 56}, {Mixed, 2}, {Empty, 1},
2002    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
2003    {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
2004    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
2005    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
2006    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
2007    {Empty, 213}, {Mixed, 1}, {Empty, 657}, {Mixed, 1}, {Empty, 36},
2008    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 5},
2009    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
2010    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
2011    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3},
2012    {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2013    {Empty, 349}, {Mixed, 3}, {Full, 264}, {Empty, 11}, {Mixed, 1},
2014    {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1},
2015    {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
2016    {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 6},
2017    {Full, 1}, {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 4},
2018    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1},
2019    {Mixed, 1}, {Full, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
2020    {Empty, 1}, {Mixed, 1}, {Full, 4}, {Empty, 9}, {Mixed, 3}, {Full, 4},
2021    {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
2022    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Full, 1},
2023    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Full, 2}, {Empty, 2},
2024    {Mixed, 1}, {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2025    {Empty, 1}, {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 4}, {Empty, 1},
2026    {Mixed, 2}, {Full, 5}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
2027    {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 2}, {Mixed, 2},
2028    {Empty, 1}, {Mixed, 5}, {Full, 4}, {Empty, 2}, {Mixed, 1}, {Full, 1},
2029    {Empty, 2}, {Mixed, 1}, {Full, 5}, {Empty, 1}, {Mixed, 2}, {Full, 1},
2030    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
2031    {Full, 6}, {Empty, 1}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 1},
2032    {Full, 8}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
2033    {Mixed, 1}, {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 6}, {Full, 9},
2034    {Mixed, 1}, {Full, 8}, {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3},
2035    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1},
2036    {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17},
2037    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 21},
2038    {Empty, 2}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 3}, {Full, 2},
2039    {Mixed, 1}, {Empty, 191}, {Mixed, 1}, {Empty, 23}, {Mixed, 1},
2040    {Full, 296}, {Empty, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 11},
2041    {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 2}, {Full, 155}, {Empty, 7},
2042    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3},
2043    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 2},
2044    {Mixed, 2}, {Full, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
2045    {Empty, 1}, {Mixed, 3}, {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
2046    {Empty, 21}, {Mixed, 2}, {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6},
2047    {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 24}, {Mixed, 1},
2048    {Empty, 1}, {Mixed, 1}, {Full, 10}, {Mixed, 6}, {Full, 1}, {Mixed, 1},
2049    {Full, 8}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
2050    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Full, 4},
2051    {Empty, 30}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
2052    {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
2053    {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
2054    {Empty, 1}, {Full, 3}, {Mixed, 1}, {Full, 44}, {Empty, 1334},
2055    {Mixed, 1}, {Full, 1}, {Empty, 129}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
2056    {Empty, 180}, {Mixed, 1}, {Empty, 233}, {Mixed, 1}, {Full, 96},
2057    {Empty, 16}, {Mixed, 1}, {Full, 22583}, {Empty, 7}, {Mixed, 1},
2058    {Full, 6128}};
2059    const static UnicodeSet::bitquad_t  __c_Set_quads[] = {
2060    0x80000000, 0x00002000, 0x03000000, 0x0000280f, 0x00000004, 0x00010000,
2061    0x01800000, 0x00011800, 0x0000ff00, 0xffe07800, 0x3000003f, 0x20000000,
2062    0x0000c000, 0x00001800, 0xfffc0000, 0x18000000, 0x8000c000, 0xb0000000,
2063    0xfffff800, 0xc0200000, 0x0007ffff, 0x00000004, 0x00066010, 0x0c3a0200,
2064    0x4f7f8660, 0x80000030, 0x00067811, 0x2c920200, 0xa1fdc678, 0xff80003f,
2065    0x00044011, 0x0c120200, 0xfffec440, 0x01fc0030, 0x00066011, 0x0c120200,
2066    0x4f3fc660, 0xff000030, 0x29c23813, 0x3c0038e7, 0xff7ec238, 0xf800003f,
2067    0x00022000, 0x1c000200, 0xf89fc220, 0x00ff0030, 0x00022000, 0x0c100200,
2068    0xbf9fc220, 0xfff90030, 0x00022010, 0x000f0220, 0x00000030, 0x03800013,
2069    0xd0040000, 0x00a07b80, 0xffe3003f, 0x00000001, 0x78000000, 0xf0000000,
2070    0x010fda69, 0xc4001351, 0x0c00c0a0, 0x00000100, 0x0001e000, 0x01000000,
2071    0x20000000, 0xf8002000, 0x0000df40, 0xc280c200, 0x0000c200, 0x80c20000,
2072    0x008000c2, 0x00c20000, 0x18000000, 0xe0000000, 0xfc000000, 0xc0c00000,
2073    0xe0000000, 0xfe000000, 0xffe02000, 0xff800000, 0xfff00000, 0xfff22000,
2074    0xc0000000, 0xfc00fc00, 0xfc00c000, 0xfe000000, 0x0000f800, 0xffc00000,
2075    0x80000000, 0xf000f000, 0x0000000e, 0xffe0c000, 0x0000f000, 0x3800fc00,
2076    0x30000000, 0x80000000, 0x60000000, 0xfc00fc00, 0x8000c000, 0x0000f000,
2077    0xe0000000, 0x0ff00000, 0x07000000, 0x00001c00, 0x0000fe00, 0x18000000,
2078    0x0000ff00, 0xfc000000, 0x04000000, 0xc0c00000, 0x5500c0c0, 0xc0000000,
2079    0x00200000, 0x10300020, 0x80230000, 0x0000f800, 0x00007c00, 0x000cffff,
2080    0xe0008000, 0x0000ffff, 0xfffe0000, 0x0000f000, 0xffffff80, 0xfffff800,
2081    0x00300000, 0x00c00000, 0x00000200, 0x80000000, 0x00008000, 0x80000000,
2082    0x01f00000, 0x0000df40, 0x7ffe7f00, 0xff800000, 0x80808080, 0x80808080,
2083    0xffff8000, 0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff, 0x00000001,
2084    0x01800000, 0x0000001f, 0x00010000, 0x00008000, 0xf8000000, 0x0000fff0,
2085    0x80000000, 0x80000000, 0xffc00000, 0xffff0000, 0x0000e000, 0x0000ff80,
2086    0xfffff000, 0xff000000, 0xfc000000, 0x007fffff, 0xfc00f000, 0xff000000,
2087    0xfc003fc0, 0x7ff00000, 0xe0000000, 0x3c004000, 0x80000000, 0xff800000,
2088    0x0c00c000, 0x07fffff8, 0xff800000, 0xff818181, 0x00008080, 0x0000ffc0,
2089    0xfc00c000, 0x0000fff0, 0x00000780, 0xf0000000, 0x0000c000, 0xfc000000,
2090    0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc, 0x0000ffff, 0x00030000,
2091    0xffffff00, 0xc000ffff, 0xfc000000, 0x00080000, 0x0020f080, 0xe0000000,
2092    0x00000001, 0x80000000, 0xe3030303, 0xcfff8080, 0x00001000, 0x48000080,
2093    0xc000c000, 0xf8000000, 0x00000078, 0x00700000, 0xf0008000, 0xfffffffe,
2094    0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000, 0xf0000000, 0x00001ff0,
2095    0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0, 0xc0000000, 0x0000fc00,
2096    0x00f00000, 0xf0000000, 0x0000ff00, 0xffff7ff0, 0xff800000, 0xffc00000,
2097    0xffffff00, 0x000002c0, 0x6e400000, 0x00400000, 0x80000000, 0xffff007f,
2098    0x07c80000, 0x70000000, 0x7c000000, 0x0f000000, 0x00030000, 0x01100f90,
2099    0x78c00000, 0xfe00fe00, 0xff800780, 0x01c00000, 0x00c00000, 0x00f80000,
2100    0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000, 0x03f80000, 0xfc00ff00,
2101    0x80000000, 0x0000ff00, 0xfc000000, 0x0003c000, 0x7fff0000, 0x20000000,
2102    0x0000fffc, 0xfc00fe00, 0x00200000, 0x0000ff80, 0xff800000, 0x0000c000,
2103    0xffe00001, 0x00040000, 0x80000000, 0x40004280, 0x0000fc00, 0xfc00f800,
2104    0x00066010, 0x04120200, 0x1f7ec660, 0xffe0e030, 0x94000000, 0xfc00ff00,
2105    0x00c00000, 0xc0000000, 0xfc00ffe0, 0xffffe000, 0xff000000, 0xfffffc00,
2106    0x18000000, 0x0000f000, 0xf0000000, 0x7ff80000, 0x0000ff00, 0x00000030,
2107    0xfffffff8, 0xfe000000, 0x00000200, 0x00800000, 0x0000ffc0, 0x0000e000,
2108    0x00030000, 0xff800100, 0x00000480, 0x4b800000, 0xfc00ff00, 0x00000240,
2109    0xfe048000, 0xfffffc00, 0xfe000000, 0xfc000000, 0xffe08000, 0xfffffff0,
2110    0xffff8000, 0xffffff80, 0xfe000000, 0x80000000, 0xffff3c00, 0x0000ffff,
2111    0xffc0c000, 0x0400ffc0, 0x1f000004, 0xffff0000, 0xf8000000, 0x0000ffe0,
2112    0x80000000, 0x00007fff, 0xfffffffc, 0xfffc0000, 0xfff80000, 0x80000000,
2113    0x0000ffff, 0xf0000000, 0xe000f800, 0x0c00fe00, 0xffc00000, 0x00000180,
2114    0x07f80000, 0xfffffe00, 0xffffffc0, 0xfff00000, 0xff800000, 0xfe000000,
2115    0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
2116    0x000203a0, 0x000000c0, 0x00003000, 0x07fff000, 0xffff0001, 0x06000080,
2117    0xfffff824, 0xff800060, 0x3c00f800, 0x0001ffff, 0xffe00000, 0x00000010,
2118    0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0xfffcffff,
2119    0x0000f000, 0xfff00000, 0x00018000, 0x00010001, 0xffc00000, 0x0000e000,
2120    0x0000f000, 0xffffe000, 0x0000003f, 0x0000fff8, 0xf0000000, 0xfffcfe00,
2121    0xffffffc0, 0xffe00000, 0xfc00e000, 0xfff00000, 0xfe000000, 0x0000f000,
2122    0xfc00ff00, 0x0000ff00, 0xffffc000, 0x0000f000, 0x80000000, 0x0b860000,
2123    0xfc00fff8, 0x0000fff8, 0xffffc000, 0xff800000, 0xffe00000, 0xc0000000,
2124    0x0000fffc, 0xfffffffe, 0xc0000000, 0xffff0000};
2125    }
2126
2127    const static UnicodeSet c_Set{const_cast<UnicodeSet::run_t *>(__c_Set_runs), 423, 0, const_cast<UnicodeSet::bitquad_t *>(__c_Set_quads), 388, 0};
2128
2129    /** Code Point Ranges for L
2130    [0041, 005a], [0061, 007a], [00aa, 00aa], [00b5, 00b5], [00ba, 00ba],
2131    [00c0, 00d6], [00d8, 00f6], [00f8, 02c1], [02c6, 02d1], [02e0, 02e4],
2132    [02ec, 02ec], [02ee, 02ee], [0370, 0374], [0376, 0377], [037a, 037d],
2133    [037f, 037f], [0386, 0386], [0388, 038a], [038c, 038c], [038e, 03a1],
2134    [03a3, 03f5], [03f7, 0481], [048a, 052f], [0531, 0556], [0559, 0559],
2135    [0560, 0588], [05d0, 05ea], [05ef, 05f2], [0620, 064a], [066e, 066f],
2136    [0671, 06d3], [06d5, 06d5], [06e5, 06e6], [06ee, 06ef], [06fa, 06fc],
2137    [06ff, 06ff], [0710, 0710], [0712, 072f], [074d, 07a5], [07b1, 07b1],
2138    [07ca, 07ea], [07f4, 07f5], [07fa, 07fa], [0800, 0815], [081a, 081a],
2139    [0824, 0824], [0828, 0828], [0840, 0858], [0860, 086a], [08a0, 08b4],
2140    [08b6, 08bd], [0904, 0939], [093d, 093d], [0950, 0950], [0958, 0961],
2141    [0971, 0980], [0985, 098c], [098f, 0990], [0993, 09a8], [09aa, 09b0],
2142    [09b2, 09b2], [09b6, 09b9], [09bd, 09bd], [09ce, 09ce], [09dc, 09dd],
2143    [09df, 09e1], [09f0, 09f1], [09fc, 09fc], [0a05, 0a0a], [0a0f, 0a10],
2144    [0a13, 0a28], [0a2a, 0a30], [0a32, 0a33], [0a35, 0a36], [0a38, 0a39],
2145    [0a59, 0a5c], [0a5e, 0a5e], [0a72, 0a74], [0a85, 0a8d], [0a8f, 0a91],
2146    [0a93, 0aa8], [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9], [0abd, 0abd],
2147    [0ad0, 0ad0], [0ae0, 0ae1], [0af9, 0af9], [0b05, 0b0c], [0b0f, 0b10],
2148    [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33], [0b35, 0b39], [0b3d, 0b3d],
2149    [0b5c, 0b5d], [0b5f, 0b61], [0b71, 0b71], [0b83, 0b83], [0b85, 0b8a],
2150    [0b8e, 0b90], [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c], [0b9e, 0b9f],
2151    [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9], [0bd0, 0bd0], [0c05, 0c0c],
2152    [0c0e, 0c10], [0c12, 0c28], [0c2a, 0c39], [0c3d, 0c3d], [0c58, 0c5a],
2153    [0c60, 0c61], [0c80, 0c80], [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8],
2154    [0caa, 0cb3], [0cb5, 0cb9], [0cbd, 0cbd], [0cde, 0cde], [0ce0, 0ce1],
2155    [0cf1, 0cf2], [0d05, 0d0c], [0d0e, 0d10], [0d12, 0d3a], [0d3d, 0d3d],
2156    [0d4e, 0d4e], [0d54, 0d56], [0d5f, 0d61], [0d7a, 0d7f], [0d85, 0d96],
2157    [0d9a, 0db1], [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6], [0e01, 0e30],
2158    [0e32, 0e33], [0e40, 0e46], [0e81, 0e82], [0e84, 0e84], [0e87, 0e88],
2159    [0e8a, 0e8a], [0e8d, 0e8d], [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3],
2160    [0ea5, 0ea5], [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb0], [0eb2, 0eb3],
2161    [0ebd, 0ebd], [0ec0, 0ec4], [0ec6, 0ec6], [0edc, 0edf], [0f00, 0f00],
2162    [0f40, 0f47], [0f49, 0f6c], [0f88, 0f8c], [1000, 102a], [103f, 103f],
2163    [1050, 1055], [105a, 105d], [1061, 1061], [1065, 1066], [106e, 1070],
2164    [1075, 1081], [108e, 108e], [10a0, 10c5], [10c7, 10c7], [10cd, 10cd],
2165    [10d0, 10fa], [10fc, 1248], [124a, 124d], [1250, 1256], [1258, 1258],
2166    [125a, 125d], [1260, 1288], [128a, 128d], [1290, 12b0], [12b2, 12b5],
2167    [12b8, 12be], [12c0, 12c0], [12c2, 12c5], [12c8, 12d6], [12d8, 1310],
2168    [1312, 1315], [1318, 135a], [1380, 138f], [13a0, 13f5], [13f8, 13fd],
2169    [1401, 166c], [166f, 167f], [1681, 169a], [16a0, 16ea], [16f1, 16f8],
2170    [1700, 170c], [170e, 1711], [1720, 1731], [1740, 1751], [1760, 176c],
2171    [176e, 1770], [1780, 17b3], [17d7, 17d7], [17dc, 17dc], [1820, 1878],
2172    [1880, 1884], [1887, 18a8], [18aa, 18aa], [18b0, 18f5], [1900, 191e],
2173    [1950, 196d], [1970, 1974], [1980, 19ab], [19b0, 19c9], [1a00, 1a16],
2174    [1a20, 1a54], [1aa7, 1aa7], [1b05, 1b33], [1b45, 1b4b], [1b83, 1ba0],
2175    [1bae, 1baf], [1bba, 1be5], [1c00, 1c23], [1c4d, 1c4f], [1c5a, 1c7d],
2176    [1c80, 1c88], [1c90, 1cba], [1cbd, 1cbf], [1ce9, 1cec], [1cee, 1cf1],
2177    [1cf5, 1cf6], [1d00, 1dbf], [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45],
2178    [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d],
2179    [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc], [1fbe, 1fbe], [1fc2, 1fc4],
2180    [1fc6, 1fcc], [1fd0, 1fd3], [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4],
2181    [1ff6, 1ffc], [2071, 2071], [207f, 207f], [2090, 209c], [2102, 2102],
2182    [2107, 2107], [210a, 2113], [2115, 2115], [2119, 211d], [2124, 2124],
2183    [2126, 2126], [2128, 2128], [212a, 212d], [212f, 2139], [213c, 213f],
2184    [2145, 2149], [214e, 214e], [2183, 2184], [2c00, 2c2e], [2c30, 2c5e],
2185    [2c60, 2ce4], [2ceb, 2cee], [2cf2, 2cf3], [2d00, 2d25], [2d27, 2d27],
2186    [2d2d, 2d2d], [2d30, 2d67], [2d6f, 2d6f], [2d80, 2d96], [2da0, 2da6],
2187    [2da8, 2dae], [2db0, 2db6], [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce],
2188    [2dd0, 2dd6], [2dd8, 2dde], [2e2f, 2e2f], [3005, 3006], [3031, 3035],
2189    [303b, 303c], [3041, 3096], [309d, 309f], [30a1, 30fa], [30fc, 30ff],
2190    [3105, 312f], [3131, 318e], [31a0, 31ba], [31f0, 31ff], [3400, 4db5],
2191    [4e00, 9fef], [a000, a48c], [a4d0, a4fd], [a500, a60c], [a610, a61f],
2192    [a62a, a62b], [a640, a66e], [a67f, a69d], [a6a0, a6e5], [a717, a71f],
2193    [a722, a788], [a78b, a7b9], [a7f7, a801], [a803, a805], [a807, a80a],
2194    [a80c, a822], [a840, a873], [a882, a8b3], [a8f2, a8f7], [a8fb, a8fb],
2195    [a8fd, a8fe], [a90a, a925], [a930, a946], [a960, a97c], [a984, a9b2],
2196    [a9cf, a9cf], [a9e0, a9e4], [a9e6, a9ef], [a9fa, a9fe], [aa00, aa28],
2197    [aa40, aa42], [aa44, aa4b], [aa60, aa76], [aa7a, aa7a], [aa7e, aaaf],
2198    [aab1, aab1], [aab5, aab6], [aab9, aabd], [aac0, aac0], [aac2, aac2],
2199    [aadb, aadd], [aae0, aaea], [aaf2, aaf4], [ab01, ab06], [ab09, ab0e],
2200    [ab11, ab16], [ab20, ab26], [ab28, ab2e], [ab30, ab5a], [ab5c, ab65],
2201    [ab70, abe2], [ac00, d7a3], [d7b0, d7c6], [d7cb, d7fb], [f900, fa6d],
2202    [fa70, fad9], [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb28],
2203    [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
2204    [fb46, fbb1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfb],
2205    [fe70, fe74], [fe76, fefc], [ff21, ff3a], [ff41, ff5a], [ff66, ffbe],
2206    [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7], [ffda, ffdc], [10000, 1000b],
2207    [1000d, 10026], [10028, 1003a], [1003c, 1003d], [1003f, 1004d],
2208    [10050, 1005d], [10080, 100fa], [10280, 1029c], [102a0, 102d0],
2209    [10300, 1031f], [1032d, 10340], [10342, 10349], [10350, 10375],
2210    [10380, 1039d], [103a0, 103c3], [103c8, 103cf], [10400, 1049d],
2211    [104b0, 104d3], [104d8, 104fb], [10500, 10527], [10530, 10563],
2212    [10600, 10736], [10740, 10755], [10760, 10767], [10800, 10805],
2213    [10808, 10808], [1080a, 10835], [10837, 10838], [1083c, 1083c],
2214    [1083f, 10855], [10860, 10876], [10880, 1089e], [108e0, 108f2],
2215    [108f4, 108f5], [10900, 10915], [10920, 10939], [10980, 109b7],
2216    [109be, 109bf], [10a00, 10a00], [10a10, 10a13], [10a15, 10a17],
2217    [10a19, 10a35], [10a60, 10a7c], [10a80, 10a9c], [10ac0, 10ac7],
2218    [10ac9, 10ae4], [10b00, 10b35], [10b40, 10b55], [10b60, 10b72],
2219    [10b80, 10b91], [10c00, 10c48], [10c80, 10cb2], [10cc0, 10cf2],
2220    [10d00, 10d23], [10f00, 10f1c], [10f27, 10f27], [10f30, 10f45],
2221    [11003, 11037], [11083, 110af], [110d0, 110e8], [11103, 11126],
2222    [11144, 11144], [11150, 11172], [11176, 11176], [11183, 111b2],
2223    [111c1, 111c4], [111da, 111da], [111dc, 111dc], [11200, 11211],
2224    [11213, 1122b], [11280, 11286], [11288, 11288], [1128a, 1128d],
2225    [1128f, 1129d], [1129f, 112a8], [112b0, 112de], [11305, 1130c],
2226    [1130f, 11310], [11313, 11328], [1132a, 11330], [11332, 11333],
2227    [11335, 11339], [1133d, 1133d], [11350, 11350], [1135d, 11361],
2228    [11400, 11434], [11447, 1144a], [11480, 114af], [114c4, 114c5],
2229    [114c7, 114c7], [11580, 115ae], [115d8, 115db], [11600, 1162f],
2230    [11644, 11644], [11680, 116aa], [11700, 1171a], [11800, 1182b],
2231    [118a0, 118df], [118ff, 118ff], [11a00, 11a00], [11a0b, 11a32],
2232    [11a3a, 11a3a], [11a50, 11a50], [11a5c, 11a83], [11a86, 11a89],
2233    [11a9d, 11a9d], [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c2e],
2234    [11c40, 11c40], [11c72, 11c8f], [11d00, 11d06], [11d08, 11d09],
2235    [11d0b, 11d30], [11d46, 11d46], [11d60, 11d65], [11d67, 11d68],
2236    [11d6a, 11d89], [11d98, 11d98], [11ee0, 11ef2], [12000, 12399],
2237    [12480, 12543], [13000, 1342e], [14400, 14646], [16800, 16a38],
2238    [16a40, 16a5e], [16ad0, 16aed], [16b00, 16b2f], [16b40, 16b43],
2239    [16b63, 16b77], [16b7d, 16b8f], [16e40, 16e7f], [16f00, 16f44],
2240    [16f50, 16f50], [16f93, 16f9f], [16fe0, 16fe1], [17000, 187f1],
2241    [18800, 18af2], [1b000, 1b11e], [1b170, 1b2fb], [1bc00, 1bc6a],
2242    [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99], [1d400, 1d454],
2243    [1d456, 1d49c], [1d49e, 1d49f], [1d4a2, 1d4a2], [1d4a5, 1d4a6],
2244    [1d4a9, 1d4ac], [1d4ae, 1d4b9], [1d4bb, 1d4bb], [1d4bd, 1d4c3],
2245    [1d4c5, 1d505], [1d507, 1d50a], [1d50d, 1d514], [1d516, 1d51c],
2246    [1d51e, 1d539], [1d53b, 1d53e], [1d540, 1d544], [1d546, 1d546],
2247    [1d54a, 1d550], [1d552, 1d6a5], [1d6a8, 1d6c0], [1d6c2, 1d6da],
2248    [1d6dc, 1d6fa], [1d6fc, 1d714], [1d716, 1d734], [1d736, 1d74e],
2249    [1d750, 1d76e], [1d770, 1d788], [1d78a, 1d7a8], [1d7aa, 1d7c2],
2250    [1d7c4, 1d7cb], [1e800, 1e8c4], [1e900, 1e943], [1ee00, 1ee03],
2251    [1ee05, 1ee1f], [1ee21, 1ee22], [1ee24, 1ee24], [1ee27, 1ee27],
2252    [1ee29, 1ee32], [1ee34, 1ee37], [1ee39, 1ee39], [1ee3b, 1ee3b],
2253    [1ee42, 1ee42], [1ee47, 1ee47], [1ee49, 1ee49], [1ee4b, 1ee4b],
2254    [1ee4d, 1ee4f], [1ee51, 1ee52], [1ee54, 1ee54], [1ee57, 1ee57],
2255    [1ee59, 1ee59], [1ee5b, 1ee5b], [1ee5d, 1ee5d], [1ee5f, 1ee5f],
2256    [1ee61, 1ee62], [1ee64, 1ee64], [1ee67, 1ee6a], [1ee6c, 1ee72],
2257    [1ee74, 1ee77], [1ee79, 1ee7c], [1ee7e, 1ee7e], [1ee80, 1ee89],
2258    [1ee8b, 1ee9b], [1eea1, 1eea3], [1eea5, 1eea9], [1eeab, 1eebb],
2259    [20000, 2a6d6], [2a700, 2b734], [2b740, 2b81d], [2b820, 2cea1],
2260    [2ceb0, 2ebe0], [2f800, 2fa1d]**/
2261
2262
2263    namespace {
2264    const static UnicodeSet::run_t __l_Set_runs[] = {
2265    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14}, {Mixed, 2},
2266    {Empty, 3}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1},
2267    {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
2268    {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2},
2269    {Mixed, 7}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 23}, {Empty, 1},
2270    {Mixed, 15}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
2271    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 3}, {Full, 1}, {Mixed, 4},
2272    {Full, 1}, {Mixed, 2}, {Full, 10}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
2273    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2274    {Full, 2}, {Mixed, 2}, {Full, 18}, {Mixed, 2}, {Full, 2}, {Mixed, 5},
2275    {Full, 1}, {Mixed, 2}, {Empty, 2}, {Full, 2}, {Mixed, 3}, {Full, 1},
2276    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 1},
2277    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
2278    {Mixed, 3}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
2279    {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Full, 6}, {Empty, 2}, {Full, 8},
2280    {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 3},
2281    {Mixed, 2}, {Empty, 3}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 83},
2282    {Full, 1}, {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2283    {Full, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 1}, {Empty, 14}, {Mixed, 3},
2284    {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
2285    {Empty, 1}, {Mixed, 1}, {Empty, 16}, {Full, 205}, {Mixed, 1},
2286    {Empty, 2}, {Full, 655}, {Mixed, 1}, {Full, 36}, {Mixed, 1}, {Empty, 1},
2287    {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 2},
2288    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
2289    {Mixed, 3}, {Empty, 1}, {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1},
2290    {Mixed, 7}, {Full, 3}, {Mixed, 1}, {Full, 349}, {Mixed, 3},
2291    {Empty, 264}, {Full, 11}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1},
2292    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Full, 10}, {Mixed, 2}, {Full, 1},
2293    {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3},
2294    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1},
2295    {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
2296    {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4}, {Full, 1},
2297    {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1}, {Mixed, 1},
2298    {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3}, {Empty, 4},
2299    {Mixed, 5}, {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Mixed, 1},
2300    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
2301    {Full, 1}, {Mixed, 4}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
2302    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2303    {Empty, 14}, {Mixed, 3}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
2304    {Mixed, 11}, {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
2305    {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
2306    {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1},
2307    {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
2308    {Empty, 7}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1},
2309    {Empty, 8}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1},
2310    {Mixed, 1}, {Empty, 8}, {Mixed, 5}, {Empty, 3}, {Mixed, 5}, {Empty, 10},
2311    {Mixed, 1}, {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 7}, {Full, 6},
2312    {Mixed, 1}, {Empty, 85}, {Full, 33}, {Mixed, 1}, {Empty, 126},
2313    {Full, 18}, {Mixed, 1}, {Empty, 269}, {Full, 17}, {Mixed, 2},
2314    {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 21}, {Full, 2},
2315    {Empty, 4}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
2316    {Mixed, 1}, {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1},
2317    {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11},
2318    {Mixed, 1}, {Empty, 72}, {Full, 3}, {Mixed, 2}, {Empty, 187}, {Full, 2},
2319    {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10},
2320    {Mixed, 10}, {Empty, 129}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2},
2321    {Mixed, 1}, {Empty, 37}, {Mixed, 6}, {Empty, 138}, {Full, 1334},
2322    {Mixed, 1}, {Empty, 1}, {Full, 129}, {Mixed, 1}, {Full, 6}, {Mixed, 1},
2323    {Full, 180}, {Mixed, 1}, {Full, 233}, {Mixed, 1}, {Empty, 96},
2324    {Full, 16}, {Mixed, 1}, {Empty, 28719}};
2325    const static UnicodeSet::bitquad_t  __l_Set_quads[] = {
2326    0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff, 0x0003ffc3,
2327    0x0000501f, 0xbcdf0000, 0xffffd740, 0xfffffffb, 0xffbfffff, 0xfffffc03,
2328    0xfffeffff, 0x027fffff, 0x000001ff, 0xffff0000, 0x000787ff, 0x000007ff,
2329    0xfffec000, 0x002fffff, 0x9c00c060, 0xfffd0000, 0x0000ffff, 0xffffe000,
2330    0x0002003f, 0xfffffc00, 0x043007ff, 0x043fffff, 0x00000110, 0x01ffffff,
2331    0x000007ff, 0x3fdfffff, 0xfffffff0, 0x23ffffff, 0xff010000, 0xfffe0003,
2332    0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x10030003, 0xfff987e0, 0x036dfdff,
2333    0x5e000000, 0x001c0000, 0xfffbbfe0, 0x23edfdff, 0x00010000, 0x02000003,
2334    0xfff99fe0, 0x23edfdff, 0xb0000000, 0x00020003, 0xd63dc7e8, 0x03ffc718,
2335    0x00010000, 0xfffddfe0, 0x23fffdff, 0x07000000, 0x00000003, 0xfffddfe1,
2336    0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0, 0x27ffffff, 0x80704000,
2337    0xfc000003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f, 0xfffffffe, 0x000dffff,
2338    0x0000007f, 0xfef02596, 0x200decae, 0xf000005f, 0x00000001, 0xfffffeff,
2339    0x00001fff, 0x00001f00, 0x800007ff, 0x3c3f0000, 0xffe1c062, 0x00004003,
2340    0xffff20bf, 0xf7ffffff, 0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d,
2341    0xff3dffff, 0x07ffffff, 0x0000ffff, 0x3f3fffff, 0xfffffffe, 0xffff9fff,
2342    0x07fffffe, 0x01fe07ff, 0x0003dfff, 0x0003ffff, 0x0003ffff, 0x0001dfff,
2343    0x000fffff, 0x10800000, 0x01ffffff, 0xffffff9f, 0xffff05ff, 0x003fffff,
2344    0x7fffffff, 0xffff0000, 0x001f3fff, 0xffff0fff, 0x000003ff, 0x007fffff,
2345    0x001fffff, 0x00000080, 0xffffffe0, 0x000fffff, 0x00000fe0, 0xfffffff8,
2346    0xfc00c001, 0x0000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0xffff01ff,
2347    0xe7ffffff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff,
2348    0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000, 0x3e2ffc84, 0xf3ffbd50,
2349    0x000043e0, 0x00000018, 0xffff7fff, 0x7fffffff, 0x000c781f, 0xffff20bf,
2350    0x000080ff, 0x007fffff, 0x7f7f7f7f, 0x7f7f7f7f, 0x00008000, 0x00000060,
2351    0x183e0000, 0xfffffffe, 0xe07fffff, 0xfffffffe, 0xf7ffffff, 0xffffffe0,
2352    0xfffeffff, 0x00007fff, 0x07ffffff, 0xffff0000, 0x003fffff, 0x0000ffff,
2353    0x00001fff, 0xffff0000, 0x3fffffff, 0xffff1fff, 0x00000c00, 0x80007fff,
2354    0x3fffffff, 0x0000003f, 0xff800000, 0xfffffffc, 0xfffff9ff, 0x03ffffff,
2355    0xff800000, 0xfffff7bb, 0x00000007, 0x000fffff, 0xfffffffc, 0x000fffff,
2356    0x68fc0000, 0xfffffc00, 0xffff003f, 0x0000007f, 0x1fffffff, 0xfffffff0,
2357    0x0007ffff, 0x00008000, 0x7c00ffdf, 0x000001ff, 0x00000ff7, 0xc47fffff,
2358    0x3e62ffff, 0x38000005, 0x001c07ff, 0x007e7e7e, 0xffff7f7f, 0xf7ffffff,
2359    0xffff003f, 0x00000007, 0xffff000f, 0xfffff87f, 0x0fffffff, 0xffff3fff,
2360    0x03ffffff, 0xa0f8007f, 0x5f7ffdff, 0xffffffdb, 0x0003ffff, 0xfff80000,
2361    0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x0fff0000, 0xffdf0000,
2362    0x1fffffff, 0x07fffffe, 0x07fffffe, 0xffffffc0, 0x7fffffff, 0x1cfcfcfc,
2363    0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0x1fffffff, 0x0001ffff,
2364    0xffffe000, 0xffff03fd, 0x003fffff, 0x3fffffff, 0x0000ff0f, 0x3fffffff,
2365    0xffff0000, 0xff0fffff, 0x0fffffff, 0xffff00ff, 0x0000000f, 0x007fffff,
2366    0x003fffff, 0x000000ff, 0xfffffd3f, 0x91bfffff, 0x003fffff, 0x007fffff,
2367    0x7fffffff, 0x0037ffff, 0x003fffff, 0x03ffffff, 0xc0ffffff, 0xfeef0001,
2368    0x003fffff, 0x1fffffff, 0x1fffffff, 0xfffffeff, 0x0000001f, 0x003fffff,
2369    0x003fffff, 0x0007ffff, 0x0003ffff, 0x000001ff, 0x0007ffff, 0x0007ffff,
2370    0x0000000f, 0x1fffffff, 0xffff0080, 0x0000003f, 0xfffffff8, 0x00ffffff,
2371    0xfffffff8, 0x0000ffff, 0xffff0000, 0x000001ff, 0xfffffff8, 0x0000007f,
2372    0xffff0010, 0x0047ffff, 0xfffffff8, 0x0007ffff, 0x1400001e, 0xfffbffff,
2373    0x00000fff, 0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0, 0x23edfdff,
2374    0xe0010000, 0x00000003, 0x001fffff, 0x00000780, 0x0000ffff, 0x000000b0,
2375    0x00007fff, 0x0f000000, 0x0000ffff, 0x00000010, 0x000007ff, 0x07ffffff,
2376    0x00000fff, 0x80000000, 0xfffff801, 0x0407ffff, 0xf0010000, 0x200003cf,
2377    0x01ffffff, 0xfffffdff, 0x00007fff, 0x00000001, 0xfffc0000, 0x0000ffff,
2378    0xfffffb7f, 0x0001ffff, 0x00000040, 0xfffffdbf, 0x010003ff, 0x0007ffff,
2379    0x03ffffff, 0x0000000f, 0x00007fff, 0x0000007f, 0x01ffffff, 0x7fffffff,
2380    0xffff0000, 0x00003fff, 0x0000ffff, 0x0000000f, 0xe0fffff8, 0x0000ffff,
2381    0x0001001f, 0xfff80000, 0x00000003, 0x0003ffff, 0x0007ffff, 0x7fffffff,
2382    0xffff0000, 0x0fffffff, 0x1fff07ff, 0x03ff01ff, 0xffdfffff, 0xdfffffff,
2383    0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f,
2384    0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff,
2385    0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000001f, 0x0000000f, 0xffffffef,
2386    0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff,
2387    0x001fffff, 0x3fffffff, 0xffff0003, 0x00000001, 0x3fffffff};
2388    }
2389
2390    const static UnicodeSet l_Set{const_cast<UnicodeSet::run_t *>(__l_Set_runs), 349, 0, const_cast<UnicodeSet::bitquad_t *>(__l_Set_quads), 371, 0};
2391
2392    /** Code Point Ranges for LC
2393    [0041, 005a], [0061, 007a], [00b5, 00b5], [00c0, 00d6], [00d8, 00f6],
2394    [00f8, 01ba], [01bc, 01bf], [01c4, 0293], [0295, 02af], [0370, 0373],
2395    [0376, 0377], [037b, 037d], [037f, 037f], [0386, 0386], [0388, 038a],
2396    [038c, 038c], [038e, 03a1], [03a3, 03f5], [03f7, 0481], [048a, 052f],
2397    [0531, 0556], [0560, 0588], [10a0, 10c5], [10c7, 10c7], [10cd, 10cd],
2398    [10d0, 10fa], [10fd, 10ff], [13a0, 13f5], [13f8, 13fd], [1c80, 1c88],
2399    [1c90, 1cba], [1cbd, 1cbf], [1d00, 1d2b], [1d6b, 1d77], [1d79, 1d9a],
2400    [1e00, 1f15], [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57],
2401    [1f59, 1f59], [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
2402    [1fb6, 1fbc], [1fbe, 1fbe], [1fc2, 1fc4], [1fc6, 1fcc], [1fd0, 1fd3],
2403    [1fd6, 1fdb], [1fe0, 1fec], [1ff2, 1ff4], [1ff6, 1ffc], [2102, 2102],
2404    [2107, 2107], [210a, 2113], [2115, 2115], [2119, 211d], [2124, 2124],
2405    [2126, 2126], [2128, 2128], [212a, 212d], [212f, 2134], [2139, 2139],
2406    [213c, 213f], [2145, 2149], [214e, 214e], [2183, 2184], [2c00, 2c2e],
2407    [2c30, 2c5e], [2c60, 2c7b], [2c7e, 2ce4], [2ceb, 2cee], [2cf2, 2cf3],
2408    [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d], [a640, a66d], [a680, a69b],
2409    [a722, a76f], [a771, a787], [a78b, a78e], [a790, a7b9], [a7fa, a7fa],
2410    [ab30, ab5a], [ab60, ab65], [ab70, abbf], [fb00, fb06], [fb13, fb17],
2411    [ff21, ff3a], [ff41, ff5a], [10400, 1044f], [104b0, 104d3],
2412    [104d8, 104fb], [10c80, 10cb2], [10cc0, 10cf2], [118a0, 118df],
2413    [16e40, 16e7f], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
2414    [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
2415    [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
2416    [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
2417    [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
2418    [1d6a8, 1d6c0], [1d6c2, 1d6da], [1d6dc, 1d6fa], [1d6fc, 1d714],
2419    [1d716, 1d734], [1d736, 1d74e], [1d750, 1d76e], [1d770, 1d788],
2420    [1d78a, 1d7a8], [1d7aa, 1d7c2], [1d7c4, 1d7cb], [1e900, 1e943]**/
2421
2422
2423    namespace {
2424    const static UnicodeSet::run_t __lc_Set_runs[] = {
2425    {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5}, {Mixed, 2},
2426    {Full, 5}, {Mixed, 2}, {Empty, 5}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
2427    {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 1},
2428    {Empty, 88}, {Full, 1}, {Mixed, 2}, {Empty, 21}, {Full, 2}, {Mixed, 1},
2429    {Empty, 68}, {Mixed, 2}, {Empty, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1},
2430    {Mixed, 2}, {Empty, 3}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
2431    {Full, 1}, {Mixed, 3}, {Empty, 8}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
2432    {Empty, 83}, {Full, 1}, {Mixed, 3}, {Full, 3}, {Mixed, 1}, {Full, 1},
2433    {Mixed, 1}, {Empty, 968}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
2434    {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3},
2435    {Full, 2}, {Empty, 634}, {Mixed, 1}, {Empty, 32}, {Mixed, 2},
2436    {Empty, 37}, {Full, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 60},
2437    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 93}, {Full, 2},
2438    {Empty, 683}, {Full, 2}, {Empty, 812}, {Full, 2}, {Mixed, 1}, {Full, 1},
2439    {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 10},
2440    {Empty, 137}, {Full, 2}, {Mixed, 1}, {Empty, 30901}};
2441    const static UnicodeSet::bitquad_t  __lc_Set_quads[] = {
2442    0x07fffffe, 0x07fffffe, 0x00200000, 0xff7fffff, 0xff7fffff, 0xf7ffffff,
2443    0xfffffff0, 0xffefffff, 0x0000ffff, 0xb8cf0000, 0xffffd740, 0xfffffffb,
2444    0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0x000001ff, 0xffff20bf,
2445    0xe7ffffff, 0x3f3fffff, 0xffff01ff, 0xe7ffffff, 0x00000fff, 0xfefff800,
2446    0x07ffffff, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x5fdfffff, 0x0fcf1fdc,
2447    0x1fdc1fff, 0x3e2ffc84, 0xf21fbd50, 0x000043e0, 0x00000018, 0xffff7fff,
2448    0x7fffffff, 0xcfffffff, 0x000c781f, 0x000020bf, 0x00003fff, 0x0fffffff,
2449    0xfffffffc, 0xfffeffff, 0xffff78ff, 0x03ffffff, 0x04000000, 0xffff0000,
2450    0x07ffffff, 0xffff003f, 0x00f8007f, 0x07fffffe, 0x07fffffe, 0x0000ffff,
2451    0xffff0000, 0xff0fffff, 0x0fffffff, 0x0007ffff, 0x0007ffff, 0xffdfffff,
2452    0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
2453    0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff,
2454    0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7, 0x0000000f};
2455    }
2456
2457    const static UnicodeSet lc_Set{const_cast<UnicodeSet::run_t *>(__lc_Set_runs), 92, 0, const_cast<UnicodeSet::bitquad_t *>(__lc_Set_quads), 77, 0};
2458
2459    /** Code Point Ranges for M
2460    [0300, 036f], [0483, 0489], [0591, 05bd], [05bf, 05bf], [05c1, 05c2],
2461    [05c4, 05c5], [05c7, 05c7], [0610, 061a], [064b, 065f], [0670, 0670],
2462    [06d6, 06dc], [06df, 06e4], [06e7, 06e8], [06ea, 06ed], [0711, 0711],
2463    [0730, 074a], [07a6, 07b0], [07eb, 07f3], [07fd, 07fd], [0816, 0819],
2464    [081b, 0823], [0825, 0827], [0829, 082d], [0859, 085b], [08d3, 08e1],
2465    [08e3, 0903], [093a, 093c], [093e, 094f], [0951, 0957], [0962, 0963],
2466    [0981, 0983], [09bc, 09bc], [09be, 09c4], [09c7, 09c8], [09cb, 09cd],
2467    [09d7, 09d7], [09e2, 09e3], [09fe, 09fe], [0a01, 0a03], [0a3c, 0a3c],
2468    [0a3e, 0a42], [0a47, 0a48], [0a4b, 0a4d], [0a51, 0a51], [0a70, 0a71],
2469    [0a75, 0a75], [0a81, 0a83], [0abc, 0abc], [0abe, 0ac5], [0ac7, 0ac9],
2470    [0acb, 0acd], [0ae2, 0ae3], [0afa, 0aff], [0b01, 0b03], [0b3c, 0b3c],
2471    [0b3e, 0b44], [0b47, 0b48], [0b4b, 0b4d], [0b56, 0b57], [0b62, 0b63],
2472    [0b82, 0b82], [0bbe, 0bc2], [0bc6, 0bc8], [0bca, 0bcd], [0bd7, 0bd7],
2473    [0c00, 0c04], [0c3e, 0c44], [0c46, 0c48], [0c4a, 0c4d], [0c55, 0c56],
2474    [0c62, 0c63], [0c81, 0c83], [0cbc, 0cbc], [0cbe, 0cc4], [0cc6, 0cc8],
2475    [0cca, 0ccd], [0cd5, 0cd6], [0ce2, 0ce3], [0d00, 0d03], [0d3b, 0d3c],
2476    [0d3e, 0d44], [0d46, 0d48], [0d4a, 0d4d], [0d57, 0d57], [0d62, 0d63],
2477    [0d82, 0d83], [0dca, 0dca], [0dcf, 0dd4], [0dd6, 0dd6], [0dd8, 0ddf],
2478    [0df2, 0df3], [0e31, 0e31], [0e34, 0e3a], [0e47, 0e4e], [0eb1, 0eb1],
2479    [0eb4, 0eb9], [0ebb, 0ebc], [0ec8, 0ecd], [0f18, 0f19], [0f35, 0f35],
2480    [0f37, 0f37], [0f39, 0f39], [0f3e, 0f3f], [0f71, 0f84], [0f86, 0f87],
2481    [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [102b, 103e], [1056, 1059],
2482    [105e, 1060], [1062, 1064], [1067, 106d], [1071, 1074], [1082, 108d],
2483    [108f, 108f], [109a, 109d], [135d, 135f], [1712, 1714], [1732, 1734],
2484    [1752, 1753], [1772, 1773], [17b4, 17d3], [17dd, 17dd], [180b, 180d],
2485    [1885, 1886], [18a9, 18a9], [1920, 192b], [1930, 193b], [1a17, 1a1b],
2486    [1a55, 1a5e], [1a60, 1a7c], [1a7f, 1a7f], [1ab0, 1abe], [1b00, 1b04],
2487    [1b34, 1b44], [1b6b, 1b73], [1b80, 1b82], [1ba1, 1bad], [1be6, 1bf3],
2488    [1c24, 1c37], [1cd0, 1cd2], [1cd4, 1ce8], [1ced, 1ced], [1cf2, 1cf4],
2489    [1cf7, 1cf9], [1dc0, 1df9], [1dfb, 1dff], [20d0, 20f0], [2cef, 2cf1],
2490    [2d7f, 2d7f], [2de0, 2dff], [302a, 302f], [3099, 309a], [a66f, a672],
2491    [a674, a67d], [a69e, a69f], [a6f0, a6f1], [a802, a802], [a806, a806],
2492    [a80b, a80b], [a823, a827], [a880, a881], [a8b4, a8c5], [a8e0, a8f1],
2493    [a8ff, a8ff], [a926, a92d], [a947, a953], [a980, a983], [a9b3, a9c0],
2494    [a9e5, a9e5], [aa29, aa36], [aa43, aa43], [aa4c, aa4d], [aa7b, aa7d],
2495    [aab0, aab0], [aab2, aab4], [aab7, aab8], [aabe, aabf], [aac1, aac1],
2496    [aaeb, aaef], [aaf5, aaf6], [abe3, abea], [abec, abed], [fb1e, fb1e],
2497    [fe00, fe0f], [fe20, fe2f], [101fd, 101fd], [102e0, 102e0],
2498    [10376, 1037a], [10a01, 10a03], [10a05, 10a06], [10a0c, 10a0f],
2499    [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6], [10d24, 10d27],
2500    [10f46, 10f50], [11000, 11002], [11038, 11046], [1107f, 11082],
2501    [110b0, 110ba], [11100, 11102], [11127, 11134], [11145, 11146],
2502    [11173, 11173], [11180, 11182], [111b3, 111c0], [111c9, 111cc],
2503    [1122c, 11237], [1123e, 1123e], [112df, 112ea], [11300, 11303],
2504    [1133b, 1133c], [1133e, 11344], [11347, 11348], [1134b, 1134d],
2505    [11357, 11357], [11362, 11363], [11366, 1136c], [11370, 11374],
2506    [11435, 11446], [1145e, 1145e], [114b0, 114c3], [115af, 115b5],
2507    [115b8, 115c0], [115dc, 115dd], [11630, 11640], [116ab, 116b7],
2508    [1171d, 1172b], [1182c, 1183a], [11a01, 11a0a], [11a33, 11a39],
2509    [11a3b, 11a3e], [11a47, 11a47], [11a51, 11a5b], [11a8a, 11a99],
2510    [11c2f, 11c36], [11c38, 11c3f], [11c92, 11ca7], [11ca9, 11cb6],
2511    [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
2512    [11d47, 11d47], [11d8a, 11d8e], [11d90, 11d91], [11d93, 11d97],
2513    [11ef3, 11ef6], [16af0, 16af4], [16b30, 16b36], [16f51, 16f7e],
2514    [16f8f, 16f92], [1bc9d, 1bc9e], [1d165, 1d169], [1d16d, 1d172],
2515    [1d17b, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244],
2516    [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84],
2517    [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018],
2518    [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6],
2519    [1e944, 1e94a], [e0100, e01ef]**/
2520
2521
2522    namespace {
2523    const static UnicodeSet::run_t __m_Set_runs[] = {
2524    {Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 7},
2525    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 2},
2526    {Mixed, 5}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3},
2527    {Mixed, 25}, {Empty, 1}, {Mixed, 13}, {Empty, 1}, {Mixed, 2},
2528    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
2529    {Empty, 1}, {Mixed, 4}, {Empty, 2}, {Mixed, 4}, {Empty, 21}, {Mixed, 1},
2530    {Empty, 29}, {Mixed, 4}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
2531    {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
2532    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 6},
2533    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2},
2534    {Empty, 6}, {Full, 1}, {Mixed, 1}, {Empty, 22}, {Mixed, 2}, {Empty, 95},
2535    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 17},
2536    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 942}, {Mixed, 2},
2537    {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 2}, {Empty, 2}, {Mixed, 4},
2538    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 3},
2539    {Empty, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 632},
2540    {Mixed, 1}, {Empty, 23}, {Mixed, 2}, {Empty, 29}, {Mixed, 1},
2541    {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 52}, {Mixed, 2},
2542    {Empty, 5}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 16},
2543    {Mixed, 1}, {Empty, 5}, {Mixed, 6}, {Empty, 2}, {Mixed, 7}, {Empty, 2},
2544    {Mixed, 1}, {Empty, 4}, {Mixed, 6}, {Empty, 5}, {Mixed, 2}, {Empty, 2},
2545    {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 2},
2546    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 14},
2547    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 2},
2548    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 10},
2549    {Mixed, 1}, {Empty, 607}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2550    {Empty, 32}, {Mixed, 3}, {Empty, 615}, {Mixed, 1}, {Empty, 166},
2551    {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 61}, {Full, 1}, {Mixed, 1},
2552    {Full, 1}, {Mixed, 3}, {Empty, 42}, {Mixed, 2}, {Empty, 68}, {Mixed, 1},
2553    {Empty, 3}, {Mixed, 1}, {Empty, 24765}, {Full, 7}, {Mixed, 1},
2554    {Empty, 6128}};
2555    const static UnicodeSet::bitquad_t  __m_Set_quads[] = {
2556    0x0000ffff, 0x000003f8, 0xfffe0000, 0xbfffffff, 0x000000b6, 0x07ff0000,
2557    0xfffff800, 0x00010000, 0x9fc00000, 0x00003d9f, 0x00020000, 0xffff0000,
2558    0x000007ff, 0x0001ffc0, 0x200ff800, 0xfbc00000, 0x00003eef, 0x0e000000,
2559    0xfff80000, 0xfffffffb, 0x0000000f, 0xdc000000, 0x00feffff, 0x0000000c,
2560    0x0000000e, 0xd0000000, 0x0080399f, 0x4000000c, 0x0000000e, 0xd0000000,
2561    0x00023987, 0x00230000, 0x0000000e, 0xd0000000, 0x00003bbf, 0xfc00000c,
2562    0x0000000e, 0xd0000000, 0x00c0399f, 0x0000000c, 0x00000004, 0xc0000000,
2563    0x00803dc7, 0x0000001f, 0xc0000000, 0x00603ddf, 0x0000000c, 0x0000000e,
2564    0xd0000000, 0x00603ddf, 0x0000000c, 0x0000000f, 0xd8000000, 0x00803ddf,
2565    0x0000000c, 0x0000000c, 0xff5f8400, 0x000c0000, 0x07f20000, 0x00007f80,
2566    0x1bf20000, 0x00003f00, 0x03000000, 0xc2a00000, 0xfffe0000, 0xfeffe0df,
2567    0x1fffffff, 0x00000040, 0x7ffff800, 0xc3c00000, 0x001e3f9d, 0x3c00bffc,
2568    0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000, 0x000c0000, 0xfff00000,
2569    0x200fffff, 0x00003800, 0x00000060, 0x00000200, 0x0fff0fff, 0x0f800000,
2570    0x7fe00000, 0x9fffffff, 0x7fff0000, 0x0000001f, 0xfff00000, 0x0000001f,
2571    0x000ff800, 0x00000007, 0x00003ffe, 0x000fffc0, 0x00fffff0, 0xfff70000,
2572    0x039c21ff, 0xfbffffff, 0xffff0000, 0x0001ffff, 0x00038000, 0x80000000,
2573    0x0000fc00, 0x06000000, 0x3ff78000, 0xc0000000, 0x00030000, 0x00000844,
2574    0x000000f8, 0x00000003, 0xfff00000, 0x0000003f, 0x8003ffff, 0x00003fc0,
2575    0x000fff80, 0x0000000f, 0xfff80000, 0x00000001, 0x00000020, 0x007ffe00,
2576    0x00003008, 0x38000000, 0xc19d0000, 0x00000002, 0x0060f800, 0x000037f8,
2577    0x40000000, 0x0000ffff, 0x0000ffff, 0x20000000, 0x00000001, 0x07c00000,
2578    0x0000f06e, 0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000007,
2579    0xff000000, 0x0000007f, 0x80000000, 0x00000007, 0x07ff0000, 0x00000007,
2580    0x001fff80, 0x00000060, 0x00080000, 0x00000007, 0xfff80000, 0x00001e01,
2581    0x40fff000, 0x80000000, 0x000007ff, 0x0000000f, 0xd8000000, 0x0080399f,
2582    0x001f1fcc, 0xffe00000, 0x4000007f, 0xffff0000, 0x0000000f, 0xff3f8000,
2583    0x30000001, 0xffff0000, 0x00000001, 0x00fff800, 0xe0000000, 0x00000fff,
2584    0x07fff000, 0x000007fe, 0x7bf80000, 0x0ffe0080, 0x03fffc00, 0xff7f8000,
2585    0xfffc0000, 0x007ffeff, 0xb47e0000, 0x000000bf, 0x00fb7c00, 0x00780000,
2586    0x001f0000, 0x007f0000, 0xfffe0000, 0x7fffffff, 0x00078000, 0x60000000,
2587    0xf807e3e0, 0x00000fe7, 0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff,
2588    0xf8000010, 0x0000fffe, 0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0,
2589    0x0000ffff};
2590    }
2591
2592    const static UnicodeSet m_Set{const_cast<UnicodeSet::run_t *>(__m_Set_runs), 173, 0, const_cast<UnicodeSet::bitquad_t *>(__m_Set_quads), 199, 0};
2593
2594    /** Code Point Ranges for N
2595    [0030, 0039], [00b2, 00b3], [00b9, 00b9], [00bc, 00be], [0660, 0669],
2596    [06f0, 06f9], [07c0, 07c9], [0966, 096f], [09e6, 09ef], [09f4, 09f9],
2597    [0a66, 0a6f], [0ae6, 0aef], [0b66, 0b6f], [0b72, 0b77], [0be6, 0bf2],
2598    [0c66, 0c6f], [0c78, 0c7e], [0ce6, 0cef], [0d58, 0d5e], [0d66, 0d78],
2599    [0de6, 0def], [0e50, 0e59], [0ed0, 0ed9], [0f20, 0f33], [1040, 1049],
2600    [1090, 1099], [1369, 137c], [16ee, 16f0], [17e0, 17e9], [17f0, 17f9],
2601    [1810, 1819], [1946, 194f], [19d0, 19da], [1a80, 1a89], [1a90, 1a99],
2602    [1b50, 1b59], [1bb0, 1bb9], [1c40, 1c49], [1c50, 1c59], [2070, 2070],
2603    [2074, 2079], [2080, 2089], [2150, 2182], [2185, 2189], [2460, 249b],
2604    [24ea, 24ff], [2776, 2793], [2cfd, 2cfd], [3007, 3007], [3021, 3029],
2605    [3038, 303a], [3192, 3195], [3220, 3229], [3248, 324f], [3251, 325f],
2606    [3280, 3289], [32b1, 32bf], [a620, a629], [a6e6, a6ef], [a830, a835],
2607    [a8d0, a8d9], [a900, a909], [a9d0, a9d9], [a9f0, a9f9], [aa50, aa59],
2608    [abf0, abf9], [ff10, ff19], [10107, 10133], [10140, 10178],
2609    [1018a, 1018b], [102e1, 102fb], [10320, 10323], [10341, 10341],
2610    [1034a, 1034a], [103d1, 103d5], [104a0, 104a9], [10858, 1085f],
2611    [10879, 1087f], [108a7, 108af], [108fb, 108ff], [10916, 1091b],
2612    [109bc, 109bd], [109c0, 109cf], [109d2, 109ff], [10a40, 10a48],
2613    [10a7d, 10a7e], [10a9d, 10a9f], [10aeb, 10aef], [10b58, 10b5f],
2614    [10b78, 10b7f], [10ba9, 10baf], [10cfa, 10cff], [10d30, 10d39],
2615    [10e60, 10e7e], [10f1d, 10f26], [10f51, 10f54], [11052, 1106f],
2616    [110f0, 110f9], [11136, 1113f], [111d0, 111d9], [111e1, 111f4],
2617    [112f0, 112f9], [11450, 11459], [114d0, 114d9], [11650, 11659],
2618    [116c0, 116c9], [11730, 1173b], [118e0, 118f2], [11c50, 11c6c],
2619    [11d50, 11d59], [11da0, 11da9], [12400, 1246e], [16a60, 16a69],
2620    [16b50, 16b59], [16b5b, 16b61], [16e80, 16e96], [1d2e0, 1d2f3],
2621    [1d360, 1d378], [1d7ce, 1d7ff], [1e8c7, 1e8cf], [1e950, 1e959],
2622    [1ec71, 1ecab], [1ecad, 1ecaf], [1ecb1, 1ecb4], [1f100, 1f10c]**/
2623
2624
2625    namespace {
2626    const static UnicodeSet::run_t __n_Set_runs[] = {
2627    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 45}, {Mixed, 1},
2628    {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
2629    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2630    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2631    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
2632    {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
2633    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
2634    {Empty, 27}, {Mixed, 1}, {Empty, 7}, {Mixed, 2}, {Empty, 9}, {Mixed, 1},
2635    {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
2636    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 32}, {Mixed, 2},
2637    {Empty, 5}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 22}, {Full, 1},
2638    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 19}, {Mixed, 2},
2639    {Empty, 42}, {Mixed, 1}, {Empty, 24}, {Mixed, 2}, {Empty, 10},
2640    {Mixed, 1}, {Empty, 4}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
2641    {Empty, 923}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 9},
2642    {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
2643    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
2644    {Empty, 664}, {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Full, 1},
2645    {Mixed, 2}, {Empty, 10}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 3},
2646    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 28}, {Mixed, 2}, {Empty, 1},
2647    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 2}, {Full, 1},
2648    {Empty, 2}, {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
2649    {Empty, 1}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2650    {Empty, 9}, {Mixed, 1}, {Empty, 4}, {Mixed, 3}, {Empty, 7}, {Mixed, 2},
2651    {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Mixed, 2},
2652    {Empty, 7}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2653    {Empty, 11}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
2654    {Empty, 13}, {Mixed, 1}, {Empty, 26}, {Mixed, 2}, {Empty, 6},
2655    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 50}, {Full, 3}, {Mixed, 1},
2656    {Empty, 559}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 24},
2657    {Mixed, 1}, {Empty, 802}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2658    {Empty, 34}, {Mixed, 1}, {Full, 1}, {Empty, 134}, {Mixed, 1},
2659    {Empty, 3}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
2660    {Empty, 34}, {Mixed, 1}, {Empty, 30839}};
2661    const static UnicodeSet::bitquad_t  __n_Set_quads[] = {
2662    0x03ff0000, 0x720c0000, 0x000003ff, 0x03ff0000, 0x000003ff, 0x0000ffc0,
2663    0x03f0ffc0, 0x0000ffc0, 0x0000ffc0, 0x00fcffc0, 0x0007ffc0, 0x7f00ffc0,
2664    0x0000ffc0, 0x7f000000, 0x01ffffc0, 0x0000ffc0, 0x03ff0000, 0x03ff0000,
2665    0x000fffff, 0x000003ff, 0x03ff0000, 0x1ffffe00, 0x0001c000, 0x03ff03ff,
2666    0x03ff0000, 0x0000ffc0, 0x07ff0000, 0x03ff03ff, 0x03ff0000, 0x03ff0000,
2667    0x03ff03ff, 0x03f10000, 0x000003ff, 0xffff0000, 0x000003e7, 0x0fffffff,
2668    0xfffffc00, 0xffc00000, 0x000fffff, 0x20000000, 0x00000080, 0x070003fe,
2669    0x003c0000, 0x000003ff, 0xfffeff00, 0x000003ff, 0xfffe0000, 0x000003ff,
2670    0x0000ffc0, 0x003f0000, 0x03ff0000, 0x000003ff, 0x03ff0000, 0x03ff0000,
2671    0x03ff0000, 0x03ff0000, 0x03ff0000, 0xffffff80, 0x000fffff, 0x01ffffff,
2672    0x00000c00, 0x0ffffffe, 0x0000000f, 0x00000402, 0x003e0000, 0x000003ff,
2673    0xff000000, 0xfe000000, 0x0000ff80, 0xf8000000, 0x0fc00000, 0x30000000,
2674    0xfffcffff, 0x000001ff, 0x60000000, 0xe0000000, 0x0000f800, 0xff000000,
2675    0xff000000, 0x0000fe00, 0xfc000000, 0x03ff0000, 0x7fffffff, 0xe0000000,
2676    0x0000007f, 0x001e0000, 0xfffc0000, 0x0000ffff, 0x03ff0000, 0xffc00000,
2677    0x03ff0000, 0x001ffffe, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000,
2678    0x000003ff, 0x0fff0000, 0x0007ffff, 0xffff0000, 0x00001fff, 0x03ff0000,
2679    0x000003ff, 0x00007fff, 0x000003ff, 0xfbff0000, 0x00000003, 0x007fffff,
2680    0x000fffff, 0x01ffffff, 0xffffc000, 0x0000ff80, 0x03ff0000, 0xfffe0000,
2681    0x001eefff, 0x00001fff};
2682    }
2683
2684    const static UnicodeSet n_Set{const_cast<UnicodeSet::run_t *>(__n_Set_runs), 191, 0, const_cast<UnicodeSet::bitquad_t *>(__n_Set_quads), 116, 0};
2685
2686    /** Code Point Ranges for P
2687    [0021, 0023], [0025, 002a], [002c, 002f], [003a, 003b], [003f, 0040],
2688    [005b, 005d], [005f, 005f], [007b, 007b], [007d, 007d], [00a1, 00a1],
2689    [00a7, 00a7], [00ab, 00ab], [00b6, 00b7], [00bb, 00bb], [00bf, 00bf],
2690    [037e, 037e], [0387, 0387], [055a, 055f], [0589, 058a], [05be, 05be],
2691    [05c0, 05c0], [05c3, 05c3], [05c6, 05c6], [05f3, 05f4], [0609, 060a],
2692    [060c, 060d], [061b, 061b], [061e, 061f], [066a, 066d], [06d4, 06d4],
2693    [0700, 070d], [07f7, 07f9], [0830, 083e], [085e, 085e], [0964, 0965],
2694    [0970, 0970], [09fd, 09fd], [0a76, 0a76], [0af0, 0af0], [0c84, 0c84],
2695    [0df4, 0df4], [0e4f, 0e4f], [0e5a, 0e5b], [0f04, 0f12], [0f14, 0f14],
2696    [0f3a, 0f3d], [0f85, 0f85], [0fd0, 0fd4], [0fd9, 0fda], [104a, 104f],
2697    [10fb, 10fb], [1360, 1368], [1400, 1400], [166d, 166e], [169b, 169c],
2698    [16eb, 16ed], [1735, 1736], [17d4, 17d6], [17d8, 17da], [1800, 180a],
2699    [1944, 1945], [1a1e, 1a1f], [1aa0, 1aa6], [1aa8, 1aad], [1b5a, 1b60],
2700    [1bfc, 1bff], [1c3b, 1c3f], [1c7e, 1c7f], [1cc0, 1cc7], [1cd3, 1cd3],
2701    [2010, 2027], [2030, 2043], [2045, 2051], [2053, 205e], [207d, 207e],
2702    [208d, 208e], [2308, 230b], [2329, 232a], [2768, 2775], [27c5, 27c6],
2703    [27e6, 27ef], [2983, 2998], [29d8, 29db], [29fc, 29fd], [2cf9, 2cfc],
2704    [2cfe, 2cff], [2d70, 2d70], [2e00, 2e2e], [2e30, 2e4e], [3001, 3003],
2705    [3008, 3011], [3014, 301f], [3030, 3030], [303d, 303d], [30a0, 30a0],
2706    [30fb, 30fb], [a4fe, a4ff], [a60d, a60f], [a673, a673], [a67e, a67e],
2707    [a6f2, a6f7], [a874, a877], [a8ce, a8cf], [a8f8, a8fa], [a8fc, a8fc],
2708    [a92e, a92f], [a95f, a95f], [a9c1, a9cd], [a9de, a9df], [aa5c, aa5f],
2709    [aade, aadf], [aaf0, aaf1], [abeb, abeb], [fd3e, fd3f], [fe10, fe19],
2710    [fe30, fe52], [fe54, fe61], [fe63, fe63], [fe68, fe68], [fe6a, fe6b],
2711    [ff01, ff03], [ff05, ff0a], [ff0c, ff0f], [ff1a, ff1b], [ff1f, ff20],
2712    [ff3b, ff3d], [ff3f, ff3f], [ff5b, ff5b], [ff5d, ff5d], [ff5f, ff65],
2713    [10100, 10102], [1039f, 1039f], [103d0, 103d0], [1056f, 1056f],
2714    [10857, 10857], [1091f, 1091f], [1093f, 1093f], [10a50, 10a58],
2715    [10a7f, 10a7f], [10af0, 10af6], [10b39, 10b3f], [10b99, 10b9c],
2716    [10f55, 10f59], [11047, 1104d], [110bb, 110bc], [110be, 110c1],
2717    [11140, 11143], [11174, 11175], [111c5, 111c8], [111cd, 111cd],
2718    [111db, 111db], [111dd, 111df], [11238, 1123d], [112a9, 112a9],
2719    [1144b, 1144f], [1145b, 1145b], [1145d, 1145d], [114c6, 114c6],
2720    [115c1, 115d7], [11641, 11643], [11660, 1166c], [1173c, 1173e],
2721    [1183b, 1183b], [11a3f, 11a46], [11a9a, 11a9c], [11a9e, 11aa2],
2722    [11c41, 11c45], [11c70, 11c71], [11ef7, 11ef8], [12470, 12474],
2723    [16a6e, 16a6f], [16af5, 16af5], [16b37, 16b3b], [16b44, 16b44],
2724    [16e97, 16e9a], [1bc9f, 1bc9f], [1da87, 1da8b], [1e95e, 1e95f]**/
2725
2726
2727    namespace {
2728    const static UnicodeSet::run_t __p_Set_runs[] = {
2729    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 21}, {Mixed, 2},
2730    {Empty, 13}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
2731    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
2732    {Empty, 1}, {Mixed, 2}, {Empty, 8}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2733    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
2734    {Empty, 10}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5}, {Mixed, 2},
2735    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2736    {Empty, 4}, {Mixed, 1}, {Empty, 19}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
2737    {Empty, 18}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2738    {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 9}, {Mixed, 1},
2739    {Empty, 5}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 4}, {Mixed, 2},
2740    {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2741    {Empty, 2}, {Mixed, 1}, {Empty, 25}, {Mixed, 5}, {Empty, 19},
2742    {Mixed, 2}, {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
2743    {Empty, 12}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 23},
2744    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Full, 1}, {Mixed, 2},
2745    {Empty, 13}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
2746    {Empty, 927}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 2},
2747    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 2},
2748    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
2749    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
2750    {Empty, 649}, {Mixed, 1}, {Empty, 6}, {Mixed, 4}, {Empty, 4},
2751    {Mixed, 4}, {Empty, 12}, {Mixed, 1}, {Empty, 19}, {Mixed, 1},
2752    {Empty, 1}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 22},
2753    {Mixed, 1}, {Empty, 5}, {Mixed, 2}, {Empty, 8}, {Mixed, 2}, {Empty, 3},
2754    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 29},
2755    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3},
2756    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
2757    {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 7},
2758    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 7},
2759    {Mixed, 1}, {Empty, 15}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
2760    {Empty, 12}, {Mixed, 2}, {Empty, 19}, {Mixed, 1}, {Empty, 43},
2761    {Mixed, 1}, {Empty, 559}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2762    {Empty, 1}, {Mixed, 2}, {Empty, 25}, {Mixed, 1}, {Empty, 623},
2763    {Mixed, 1}, {Empty, 239}, {Mixed, 1}, {Empty, 117}, {Mixed, 1},
2764    {Empty, 30901}};
2765    const static UnicodeSet::bitquad_t  __p_Set_quads[] = {
2766    0x8c00f7ee, 0xb8000001, 0x28000000, 0x88c00882, 0x40000000, 0x00000080,
2767    0xfc000000, 0x00000600, 0x40000000, 0x00000049, 0x00180000, 0xc8003600,
2768    0x00003c00, 0x00100000, 0x00003fff, 0x03800000, 0x7fff0000, 0x40000000,
2769    0x00010030, 0x20000000, 0x00400000, 0x00010000, 0x00000010, 0x00100000,
2770    0x0c008000, 0x0017fff0, 0x3c000000, 0x00000020, 0x061f0000, 0x0000fc00,
2771    0x08000000, 0x000001ff, 0x00000001, 0x00006000, 0x18000000, 0x00003800,
2772    0x00600000, 0x07700000, 0x000007ff, 0x00000030, 0xc0000000, 0x00003f7f,
2773    0xfc000000, 0x00000001, 0xf0000000, 0xf8000000, 0xc0000000, 0x000800ff,
2774    0xffff0000, 0xffff00ff, 0x7ffbffef, 0x60000000, 0x00006000, 0x00000f00,
2775    0x00000600, 0x003fff00, 0x00000060, 0x0000ffc0, 0x01fffff8, 0x0f000000,
2776    0x30000000, 0xde000000, 0x00010000, 0xffff7fff, 0x00007fff, 0xfff3ff0e,
2777    0x20010000, 0x00000001, 0x08000000, 0xc0000000, 0x0000e000, 0x40080000,
2778    0x00fc0000, 0x00f00000, 0x0000c000, 0x17000000, 0x0000c000, 0x80000000,
2779    0xc0003ffe, 0xf0000000, 0xc0000000, 0x00030000, 0x00000800, 0xc0000000,
2780    0x03ff0000, 0xffff0000, 0xfff7ffff, 0x00000d0b, 0x8c00f7ee, 0xb8000001,
2781    0xa8000000, 0x0000003f, 0x00000007, 0x80000000, 0x00010000, 0x00008000,
2782    0x00800000, 0x80000000, 0x80000000, 0x01ff0000, 0x80000000, 0x007f0000,
2783    0xfe000000, 0x1e000000, 0x03e00000, 0x00003f80, 0xd8000000, 0x00000003,
2784    0x0000000f, 0x00300000, 0xe80021e0, 0x3f000000, 0x00000200, 0x2800f800,
2785    0x00000040, 0x00fffffe, 0x0000000e, 0x00001fff, 0x70000000, 0x08000000,
2786    0x80000000, 0x0000007f, 0xdc000000, 0x00000007, 0x0000003e, 0x00030000,
2787    0x01800000, 0x001f0000, 0x0000c000, 0x00200000, 0x0f800000, 0x00000010,
2788    0x07800000, 0x80000000, 0x00000f80, 0xc0000000};
2789    }
2790
2791    const static UnicodeSet p_Set{const_cast<UnicodeSet::run_t *>(__p_Set_runs), 198, 0, const_cast<UnicodeSet::bitquad_t *>(__p_Set_quads), 136, 0};
2792
2793    /** Code Point Ranges for S
2794    [0024, 0024], [002b, 002b], [003c, 003e], [005e, 005e], [0060, 0060],
2795    [007c, 007c], [007e, 007e], [00a2, 00a6], [00a8, 00a9], [00ac, 00ac],
2796    [00ae, 00b1], [00b4, 00b4], [00b8, 00b8], [00d7, 00d7], [00f7, 00f7],
2797    [02c2, 02c5], [02d2, 02df], [02e5, 02eb], [02ed, 02ed], [02ef, 02ff],
2798    [0375, 0375], [0384, 0385], [03f6, 03f6], [0482, 0482], [058d, 058f],
2799    [0606, 0608], [060b, 060b], [060e, 060f], [06de, 06de], [06e9, 06e9],
2800    [06fd, 06fe], [07f6, 07f6], [07fe, 07ff], [09f2, 09f3], [09fa, 09fb],
2801    [0af1, 0af1], [0b70, 0b70], [0bf3, 0bfa], [0c7f, 0c7f], [0d4f, 0d4f],
2802    [0d79, 0d79], [0e3f, 0e3f], [0f01, 0f03], [0f13, 0f13], [0f15, 0f17],
2803    [0f1a, 0f1f], [0f34, 0f34], [0f36, 0f36], [0f38, 0f38], [0fbe, 0fc5],
2804    [0fc7, 0fcc], [0fce, 0fcf], [0fd5, 0fd8], [109e, 109f], [1390, 1399],
2805    [17db, 17db], [1940, 1940], [19de, 19ff], [1b61, 1b6a], [1b74, 1b7c],
2806    [1fbd, 1fbd], [1fbf, 1fc1], [1fcd, 1fcf], [1fdd, 1fdf], [1fed, 1fef],
2807    [1ffd, 1ffe], [2044, 2044], [2052, 2052], [207a, 207c], [208a, 208c],
2808    [20a0, 20bf], [2100, 2101], [2103, 2106], [2108, 2109], [2114, 2114],
2809    [2116, 2118], [211e, 2123], [2125, 2125], [2127, 2127], [2129, 2129],
2810    [212e, 212e], [213a, 213b], [2140, 2144], [214a, 214d], [214f, 214f],
2811    [218a, 218b], [2190, 2307], [230c, 2328], [232b, 2426], [2440, 244a],
2812    [249c, 24e9], [2500, 2767], [2794, 27c4], [27c7, 27e5], [27f0, 2982],
2813    [2999, 29d7], [29dc, 29fb], [29fe, 2b73], [2b76, 2b95], [2b98, 2bc8],
2814    [2bca, 2bfe], [2ce5, 2cea], [2e80, 2e99], [2e9b, 2ef3], [2f00, 2fd5],
2815    [2ff0, 2ffb], [3004, 3004], [3012, 3013], [3020, 3020], [3036, 3037],
2816    [303e, 303f], [309b, 309c], [3190, 3191], [3196, 319f], [31c0, 31e3],
2817    [3200, 321e], [322a, 3247], [3250, 3250], [3260, 327f], [328a, 32b0],
2818    [32c0, 32fe], [3300, 33ff], [4dc0, 4dff], [a490, a4c6], [a700, a716],
2819    [a720, a721], [a789, a78a], [a828, a82b], [a836, a839], [aa77, aa79],
2820    [ab5b, ab5b], [fb29, fb29], [fbb2, fbc1], [fdfc, fdfd], [fe62, fe62],
2821    [fe64, fe66], [fe69, fe69], [ff04, ff04], [ff0b, ff0b], [ff1c, ff1e],
2822    [ff3e, ff3e], [ff40, ff40], [ff5c, ff5c], [ff5e, ff5e], [ffe0, ffe6],
2823    [ffe8, ffee], [fffc, fffd], [10137, 1013f], [10179, 10189],
2824    [1018c, 1018e], [10190, 1019b], [101a0, 101a0], [101d0, 101fc],
2825    [10877, 10878], [10ac8, 10ac8], [1173f, 1173f], [16b3c, 16b3f],
2826    [16b45, 16b45], [1bc9c, 1bc9c], [1d000, 1d0f5], [1d100, 1d126],
2827    [1d129, 1d164], [1d16a, 1d16c], [1d183, 1d184], [1d18c, 1d1a9],
2828    [1d1ae, 1d1e8], [1d200, 1d241], [1d245, 1d245], [1d300, 1d356],
2829    [1d6c1, 1d6c1], [1d6db, 1d6db], [1d6fb, 1d6fb], [1d715, 1d715],
2830    [1d735, 1d735], [1d74f, 1d74f], [1d76f, 1d76f], [1d789, 1d789],
2831    [1d7a9, 1d7a9], [1d7c3, 1d7c3], [1d800, 1d9ff], [1da37, 1da3a],
2832    [1da6d, 1da74], [1da76, 1da83], [1da85, 1da86], [1ecac, 1ecac],
2833    [1ecb0, 1ecb0], [1eef0, 1eef1], [1f000, 1f02b], [1f030, 1f093],
2834    [1f0a0, 1f0ae], [1f0b1, 1f0bf], [1f0c1, 1f0cf], [1f0d1, 1f0f5],
2835    [1f110, 1f16b], [1f170, 1f1ac], [1f1e6, 1f202], [1f210, 1f23b],
2836    [1f240, 1f248], [1f250, 1f251], [1f260, 1f265], [1f300, 1f6d4],
2837    [1f6e0, 1f6ec], [1f6f0, 1f6f9], [1f700, 1f773], [1f780, 1f7d8],
2838    [1f800, 1f80b], [1f810, 1f847], [1f850, 1f859], [1f860, 1f887],
2839    [1f890, 1f8ad], [1f900, 1f90b], [1f910, 1f93e], [1f940, 1f970],
2840    [1f973, 1f976], [1f97a, 1f97a], [1f97c, 1f9a2], [1f9b0, 1f9b9],
2841    [1f9c0, 1f9c2], [1f9d0, 1f9ff], [1fa60, 1fa6d]**/
2842
2843
2844    namespace {
2845    const static UnicodeSet::run_t __s_Set_runs[] = {
2846    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 14}, {Mixed, 2},
2847    {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
2848    {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 2},
2849    {Empty, 7}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
2850    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2851    {Empty, 6}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 6}, {Mixed, 2},
2852    {Empty, 3}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 23}, {Mixed, 1},
2853    {Empty, 33}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 3},
2854    {Mixed, 1}, {Full, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 33}, {Mixed, 3},
2855    {Empty, 2}, {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 3}, {Empty, 1},
2856    {Mixed, 1}, {Full, 11}, {Mixed, 2}, {Full, 7}, {Mixed, 2}, {Empty, 1},
2857    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 19}, {Mixed, 2}, {Full, 1},
2858    {Mixed, 2}, {Full, 12}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 11},
2859    {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 12},
2860    {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6}, {Mixed, 4}, {Empty, 2},
2861    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 4},
2862    {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 8}, {Empty, 206},
2863    {Full, 2}, {Empty, 692}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 17},
2864    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 17},
2865    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 638}, {Mixed, 1},
2866    {Empty, 3}, {Mixed, 2}, {Empty, 16}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
2867    {Empty, 4}, {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 9}, {Mixed, 1},
2868    {Empty, 1}, {Mixed, 5}, {Empty, 51}, {Mixed, 1}, {Empty, 18},
2869    {Mixed, 1}, {Empty, 98}, {Mixed, 1}, {Empty, 671}, {Mixed, 2},
2870    {Empty, 649}, {Mixed, 1}, {Empty, 155}, {Full, 7}, {Mixed, 1},
2871    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1},
2872    {Full, 2}, {Mixed, 1}, {Empty, 5}, {Full, 2}, {Mixed, 1}, {Empty, 27},
2873    {Mixed, 9}, {Empty, 1}, {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
2874    {Mixed, 2}, {Empty, 144}, {Mixed, 1}, {Empty, 17}, {Mixed, 1},
2875    {Empty, 8}, {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 5}, {Full, 2},
2876    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Empty, 4},
2877    {Full, 30}, {Mixed, 2}, {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1},
2878    {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
2879    {Empty, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2},
2880    {Full, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 30764}};
2881    const static UnicodeSet::bitquad_t  __s_Set_quads[] = {
2882    0x70000810, 0x40000000, 0x50000001, 0x0113d37c, 0x00800000, 0x00800000,
2883    0xfffc003c, 0xffffafe0, 0x00200000, 0x00000030, 0x00400000, 0x00000004,
2884    0x0000e000, 0x0000c9c0, 0x40000000, 0x60000200, 0xc0400000, 0x0c0c0000,
2885    0x00020000, 0x00010000, 0x07f80000, 0x80000000, 0x00008000, 0x02000000,
2886    0x80000000, 0xfce8000e, 0x01500000, 0xc0000000, 0x01e0dfbf, 0xc0000000,
2887    0x03ff0000, 0x08000000, 0x00000001, 0xc0000000, 0x1ff007fe, 0xa0000000,
2888    0xe000e003, 0x6000e000, 0x00040010, 0x1c000000, 0x00001c00, 0xc1d0037b,
2889    0x0c0042af, 0x0000bc1f, 0xffff0c00, 0xfffff0ff, 0xfffff9ff, 0x0000007f,
2890    0x000007ff, 0xf0000000, 0x000003ff, 0x000000ff, 0xfff00000, 0xffffff9f,
2891    0xffff003f, 0xfe000007, 0xf0ffffff, 0xcfffffff, 0xffcfffff, 0xff3fffff,
2892    0xfffffdff, 0x7fffffff, 0x000007e0, 0xfbffffff, 0x000fffff, 0x003fffff,
2893    0x0fff0000, 0x000c0010, 0xc0c00001, 0x18000000, 0xffc30000, 0x0000000f,
2894    0x7fffffff, 0xfffffc00, 0x000100ff, 0xfffffc00, 0x0001ffff, 0x7fffffff,
2895    0xffff0000, 0x0000007f, 0x007fffff, 0x00000003, 0x00000600, 0x03c00f00,
2896    0x03800000, 0x08000000, 0x00000200, 0xfffc0000, 0x00000003, 0x30000000,
2897    0x00000274, 0x70000810, 0x40000000, 0x50000001, 0x30007f7f, 0xff800000,
2898    0xfe000000, 0x0fff73ff, 0x00000001, 0xffff0000, 0x1fffffff, 0x01800000,
2899    0x00000100, 0x80000000, 0xf0000000, 0x00000020, 0x10000000, 0x003fffff,
2900    0xfffffe7f, 0x00001c1f, 0xfffff018, 0xffffc3ff, 0x000001ff, 0x00000023,
2901    0x007fffff, 0x08000002, 0x08000000, 0x00200000, 0x00200000, 0x00008000,
2902    0x00008000, 0x00000200, 0x00000200, 0x00000008, 0x07800000, 0xffdfe000,
2903    0x0000006f, 0x00011000, 0x00030000, 0xffff0fff, 0x000fffff, 0xfffe7fff,
2904    0xfffefffe, 0x003fffff, 0xffff0000, 0xffff0fff, 0x00001fff, 0xffffffc0,
2905    0xffff0007, 0x0fffffff, 0x000301ff, 0x0000003f, 0x001fffff, 0x03ff1fff,
2906    0x000fffff, 0x01ffffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
2907    0xffff0fff, 0x7fffffff, 0xf479ffff, 0x03ff0007, 0xffff0007, 0x00003fff};
2908    }
2909
2910    const static UnicodeSet s_Set{const_cast<UnicodeSet::run_t *>(__s_Set_runs), 202, 0, const_cast<UnicodeSet::bitquad_t *>(__s_Set_quads), 156, 0};
2911
2912    /** Code Point Ranges for Z
2913    [0020, 0020], [00a0, 00a0], [1680, 1680], [2000, 200a], [2028, 2029],
2914    [202f, 202f], [205f, 205f], [3000, 3000]**/
2915
2916
2917    namespace {
2918    const static UnicodeSet::run_t __z_Set_runs[] = {
2919    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 174},
2920    {Mixed, 1}, {Empty, 75}, {Mixed, 3}, {Empty, 125}, {Mixed, 1},
2921    {Empty, 34431}};
2922    const static UnicodeSet::bitquad_t  __z_Set_quads[] = {
2923    0x00000001, 0x00000001, 0x00000001, 0x000007ff, 0x00008300, 0x80000000,
2924    0x00000001};
2925    }
2926
2927    const static UnicodeSet z_Set{const_cast<UnicodeSet::run_t *>(__z_Set_runs), 11, 0, const_cast<UnicodeSet::bitquad_t *>(__z_Set_quads), 7, 0};
2928
2929    static EnumeratedPropertyObject property_object
2930        {gc,
2931        GC_ns::independent_prop_values,
2932        std::move(GC_ns::enum_names),
2933        std::move(GC_ns::value_names),
2934        std::move(GC_ns::aliases_only_map),{
2935        &cn_Set, &lu_Set, &ll_Set, &lt_Set, &lm_Set, &lo_Set, &mn_Set,
2936        &me_Set, &mc_Set, &nd_Set, &nl_Set, &no_Set, &zs_Set, &zl_Set,
2937        &zp_Set, &cc_Set, &cf_Set, &co_Set, &cs_Set, &pd_Set, &ps_Set,
2938        &pe_Set, &pc_Set, &po_Set, &sm_Set, &sc_Set, &sk_Set, &so_Set,
2939        &pi_Set, &pf_Set, &c_Set, &l_Set, &lc_Set, &m_Set, &n_Set, &p_Set,
2940        &s_Set, &z_Set
2941        }};
2942    }
2943}
2944
2945#endif
Note: See TracBrowser for help on using the repository browser.