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

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

Updates for Unicode 11.0 plus Emoji properties

File size: 112.7 KB
Line 
1#ifndef LINEBREAK_H
2#define LINEBREAK_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 LB_ns {
18    const unsigned independent_prop_values = 43;
19    /** Code Point Ranges for XX
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], [20f1, 20ff],
71    [218c, 218f], [2427, 243f], [244b, 245f], [2b74, 2b75], [2b96, 2b97],
72    [2bc9, 2bc9], [2bff, 2bff], [2c2f, 2c2f], [2c5f, 2c5f], [2cf4, 2cf8],
73    [2d26, 2d26], [2d28, 2d2c], [2d2e, 2d2f], [2d68, 2d6e], [2d71, 2d7e],
74    [2d97, 2d9f], [2da7, 2da7], [2daf, 2daf], [2db7, 2db7], [2dbf, 2dbf],
75    [2dc7, 2dc7], [2dcf, 2dcf], [2dd7, 2dd7], [2ddf, 2ddf], [2e4f, 2e7f],
76    [2e9a, 2e9a], [2ef4, 2eff], [2fd6, 2fef], [2ffc, 2fff], [3040, 3040],
77    [3097, 3098], [3100, 3104], [3130, 3130], [318f, 318f], [31bb, 31bf],
78    [31e4, 31ef], [321f, 321f], [32ff, 32ff], [a48d, a48f], [a4c7, a4cf],
79    [a62c, a63f], [a6f8, a6ff], [a7ba, a7f6], [a82c, a82f], [a83a, a83f],
80    [a878, a87f], [a8c6, a8cd], [a8da, a8df], [a954, a95e], [a97d, a97f],
81    [a9ce, a9ce], [a9da, a9dd], [a9ff, a9ff], [aa37, aa3f], [aa4e, aa4f],
82    [aa5a, aa5b], [aac3, aada], [aaf7, ab00], [ab07, ab08], [ab0f, ab10],
83    [ab17, ab1f], [ab27, ab27], [ab2f, ab2f], [ab66, ab6f], [abee, abef],
84    [abfa, abff], [d7a4, d7af], [d7c7, d7ca], [d7fc, d7ff], [e000, f8ff],
85    [fb07, fb12], [fb18, fb1c], [fb37, fb37], [fb3d, fb3d], [fb3f, fb3f],
86    [fb42, fb42], [fb45, fb45], [fbc2, fbd2], [fd40, fd4f], [fd90, fd91],
87    [fdc8, fdef], [fdfe, fdff], [fe1a, fe1f], [fe53, fe53], [fe67, fe67],
88    [fe6c, fe6f], [fe75, fe75], [fefd, fefe], [ff00, ff00], [ffbf, ffc1],
89    [ffc8, ffc9], [ffd0, ffd1], [ffd8, ffd9], [ffdd, ffdf], [ffe7, ffe7],
90    [ffef, fff8], [fffe, ffff], [1000c, 1000c], [10027, 10027],
91    [1003b, 1003b], [1003e, 1003e], [1004e, 1004f], [1005e, 1007f],
92    [100fb, 100ff], [10103, 10106], [10134, 10136], [1018f, 1018f],
93    [1019c, 1019f], [101a1, 101cf], [101fe, 1027f], [1029d, 1029f],
94    [102d1, 102df], [102fc, 102ff], [10324, 1032c], [1034b, 1034f],
95    [1037b, 1037f], [1039e, 1039e], [103c4, 103c7], [103d6, 103ff],
96    [1049e, 1049f], [104aa, 104af], [104d4, 104d7], [104fc, 104ff],
97    [10528, 1052f], [10564, 1056e], [10570, 105ff], [10737, 1073f],
98    [10756, 1075f], [10768, 107ff], [10806, 10807], [10809, 10809],
99    [10836, 10836], [10839, 1083b], [1083d, 1083e], [10856, 10856],
100    [1089f, 108a6], [108b0, 108df], [108f3, 108f3], [108f6, 108fa],
101    [1091c, 1091e], [1093a, 1093e], [10940, 1097f], [109b8, 109bb],
102    [109d0, 109d1], [10a04, 10a04], [10a07, 10a0b], [10a14, 10a14],
103    [10a18, 10a18], [10a36, 10a37], [10a3b, 10a3e], [10a49, 10a4f],
104    [10a59, 10a5f], [10aa0, 10abf], [10ae7, 10aea], [10af7, 10aff],
105    [10b36, 10b38], [10b56, 10b57], [10b73, 10b77], [10b92, 10b98],
106    [10b9d, 10ba8], [10bb0, 10bff], [10c49, 10c7f], [10cb3, 10cbf],
107    [10cf3, 10cf9], [10d28, 10d2f], [10d3a, 10e5f], [10e7f, 10eff],
108    [10f28, 10f2f], [10f5a, 10fff], [1104e, 11051], [11070, 1107e],
109    [110c2, 110cc], [110ce, 110cf], [110e9, 110ef], [110fa, 110ff],
110    [11135, 11135], [11147, 1114f], [11177, 1117f], [111ce, 111cf],
111    [111e0, 111e0], [111f5, 111ff], [11212, 11212], [1123f, 1127f],
112    [11287, 11287], [11289, 11289], [1128e, 1128e], [1129e, 1129e],
113    [112aa, 112af], [112eb, 112ef], [112fa, 112ff], [11304, 11304],
114    [1130d, 1130e], [11311, 11312], [11329, 11329], [11331, 11331],
115    [11334, 11334], [1133a, 1133a], [11345, 11346], [11349, 1134a],
116    [1134e, 1134f], [11351, 11356], [11358, 1135c], [11364, 11365],
117    [1136d, 1136f], [11375, 113ff], [1145a, 1145a], [1145c, 1145c],
118    [1145f, 1147f], [114c8, 114cf], [114da, 1157f], [115b6, 115b7],
119    [115de, 115ff], [11645, 1164f], [1165a, 1165f], [1166d, 1167f],
120    [116b8, 116bf], [116ca, 116ff], [1171b, 1171c], [1172c, 1172f],
121    [11740, 117ff], [1183c, 1189f], [118f3, 118fe], [11900, 119ff],
122    [11a48, 11a4f], [11a84, 11a85], [11aa3, 11abf], [11af9, 11bff],
123    [11c09, 11c09], [11c37, 11c37], [11c46, 11c4f], [11c6d, 11c6f],
124    [11c90, 11c91], [11ca8, 11ca8], [11cb7, 11cff], [11d07, 11d07],
125    [11d0a, 11d0a], [11d37, 11d39], [11d3b, 11d3b], [11d3e, 11d3e],
126    [11d48, 11d4f], [11d5a, 11d5f], [11d66, 11d66], [11d69, 11d69],
127    [11d8f, 11d8f], [11d92, 11d92], [11d99, 11d9f], [11daa, 11edf],
128    [11ef9, 11fff], [1239a, 123ff], [1246f, 1246f], [12475, 1247f],
129    [12544, 12fff], [1342f, 143ff], [14647, 167ff], [16a39, 16a3f],
130    [16a5f, 16a5f], [16a6a, 16a6d], [16a70, 16acf], [16aee, 16aef],
131    [16af6, 16aff], [16b46, 16b4f], [16b5a, 16b5a], [16b62, 16b62],
132    [16b78, 16b7c], [16b90, 16e3f], [16e9b, 16eff], [16f45, 16f4f],
133    [16f7f, 16f8e], [16fa0, 16fdf], [16fe2, 16fff], [187f2, 187ff],
134    [18af3, 1afff], [1b11f, 1b16f], [1b2fc, 1bbff], [1bc6b, 1bc6f],
135    [1bc7d, 1bc7f], [1bc89, 1bc8f], [1bc9a, 1bc9b], [1bca4, 1cfff],
136    [1d0f6, 1d0ff], [1d127, 1d128], [1d1e9, 1d1ff], [1d246, 1d2df],
137    [1d2f4, 1d2ff], [1d357, 1d35f], [1d379, 1d3ff], [1d455, 1d455],
138    [1d49d, 1d49d], [1d4a0, 1d4a1], [1d4a3, 1d4a4], [1d4a7, 1d4a8],
139    [1d4ad, 1d4ad], [1d4ba, 1d4ba], [1d4bc, 1d4bc], [1d4c4, 1d4c4],
140    [1d506, 1d506], [1d50b, 1d50c], [1d515, 1d515], [1d51d, 1d51d],
141    [1d53a, 1d53a], [1d53f, 1d53f], [1d545, 1d545], [1d547, 1d549],
142    [1d551, 1d551], [1d6a6, 1d6a7], [1d7cc, 1d7cd], [1da8c, 1da9a],
143    [1daa0, 1daa0], [1dab0, 1dfff], [1e007, 1e007], [1e019, 1e01a],
144    [1e022, 1e022], [1e025, 1e025], [1e02b, 1e7ff], [1e8c5, 1e8c6],
145    [1e8d7, 1e8ff], [1e94b, 1e94f], [1e95a, 1e95d], [1e960, 1ec70],
146    [1ecb5, 1edff], [1ee04, 1ee04], [1ee20, 1ee20], [1ee23, 1ee23],
147    [1ee25, 1ee26], [1ee28, 1ee28], [1ee33, 1ee33], [1ee38, 1ee38],
148    [1ee3a, 1ee3a], [1ee3c, 1ee41], [1ee43, 1ee46], [1ee48, 1ee48],
149    [1ee4a, 1ee4a], [1ee4c, 1ee4c], [1ee50, 1ee50], [1ee53, 1ee53],
150    [1ee55, 1ee56], [1ee58, 1ee58], [1ee5a, 1ee5a], [1ee5c, 1ee5c],
151    [1ee5e, 1ee5e], [1ee60, 1ee60], [1ee63, 1ee63], [1ee65, 1ee66],
152    [1ee6b, 1ee6b], [1ee73, 1ee73], [1ee78, 1ee78], [1ee7d, 1ee7d],
153    [1ee7f, 1ee7f], [1ee8a, 1ee8a], [1ee9c, 1eea0], [1eea4, 1eea4],
154    [1eeaa, 1eeaa], [1eebc, 1eeef], [1eef2, 1efff], [1fffe, 1ffff],
155    [2fffe, 2ffff], [3fffe, e0000], [e0002, e001f], [e0080, e00ff],
156    [e01f0, 10ffff]**/
157
158
159    namespace {
160    const static UnicodeSet::run_t __xx_Set_runs[] = {
161    {Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 2}, {Empty, 1},
162    {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1},
163    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
164    {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 5}, {Mixed, 29}, {Empty, 1},
165    {Mixed, 9}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Empty, 2}, {Mixed, 5},
166    {Full, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 1},
167    {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2},
168    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
169    {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
170    {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
171    {Mixed, 4}, {Full, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
172    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 7}, {Mixed, 1},
173    {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
174    {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
175    {Empty, 20}, {Mixed, 2}, {Empty, 56}, {Mixed, 2}, {Empty, 1},
176    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 1},
177    {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Full, 1},
178    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
179    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
180    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
181    {Empty, 908}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 10},
182    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Full, 1},
183    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2},
184    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
185    {Mixed, 2}, {Empty, 3}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 3},
186    {Mixed, 1}, {Empty, 349}, {Mixed, 3}, {Empty, 64}, {Full, 200},
187    {Empty, 16}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
188    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
189    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 6}, {Full, 1},
190    {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 4}, {Mixed, 1},
191    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
192    {Full, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
193    {Mixed, 1}, {Full, 4}, {Empty, 9}, {Mixed, 3}, {Full, 4}, {Mixed, 3},
194    {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2}, {Empty, 1},
195    {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Full, 1}, {Empty, 1},
196    {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Full, 2}, {Empty, 2}, {Mixed, 1},
197    {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
198    {Mixed, 1}, {Full, 9}, {Mixed, 1}, {Full, 4}, {Empty, 1}, {Mixed, 2},
199    {Full, 5}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
200    {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 2}, {Mixed, 2}, {Empty, 1},
201    {Mixed, 5}, {Full, 4}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 2},
202    {Mixed, 1}, {Full, 5}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Empty, 2},
203    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 6},
204    {Empty, 1}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 1}, {Full, 8},
205    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
206    {Full, 8}, {Mixed, 6}, {Full, 2}, {Mixed, 6}, {Full, 9}, {Mixed, 1},
207    {Full, 8}, {Empty, 28}, {Mixed, 1}, {Full, 3}, {Empty, 3}, {Mixed, 1},
208    {Empty, 6}, {Mixed, 1}, {Full, 85}, {Empty, 33}, {Mixed, 1},
209    {Full, 126}, {Empty, 18}, {Mixed, 1}, {Full, 269}, {Empty, 17},
210    {Mixed, 3}, {Full, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Full, 21},
211    {Empty, 2}, {Mixed, 1}, {Full, 3}, {Empty, 2}, {Mixed, 3}, {Full, 2},
212    {Mixed, 1}, {Empty, 191}, {Mixed, 1}, {Empty, 23}, {Mixed, 1},
213    {Full, 296}, {Empty, 8}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 11},
214    {Mixed, 1}, {Full, 72}, {Empty, 3}, {Mixed, 3}, {Full, 154}, {Empty, 7},
215    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 2},
216    {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Full, 4},
217    {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
218    {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 21},
219    {Mixed, 2}, {Full, 42}, {Mixed, 2}, {Full, 62}, {Empty, 6}, {Mixed, 1},
220    {Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 24}, {Mixed, 1}, {Empty, 1},
221    {Mixed, 1}, {Full, 10}, {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 8},
222    {Empty, 127}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047},
223    {Mixed, 1}, {Full, 20480}, {Mixed, 1}, {Empty, 3}, {Full, 4},
224    {Empty, 7}, {Mixed, 1}, {Full, 6128}};
225    const static UnicodeSet::bitquad_t  __xx_Set_quads[] = {
226    0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000, 0x00011800,
227    0x0000ff00, 0xffe07800, 0x20000000, 0x00004000, 0x00001800, 0xfffc0000,
228    0x18000000, 0x8000c000, 0xb0000000, 0xfffff800, 0xc0200000, 0x0007ffff,
229    0x00066010, 0x0c3a0200, 0x4f7f8660, 0x80000030, 0x00067811, 0x2c920200,
230    0xa1fdc678, 0xff80003f, 0x00044011, 0x0c120200, 0xfffec440, 0x01fc0030,
231    0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030, 0x29c23813, 0x3c0038e7,
232    0xff7ec238, 0xf800003f, 0x00022000, 0x1c000200, 0xf89fc220, 0x00ff0030,
233    0x00022000, 0x0c100200, 0xbf9fc220, 0xfff90030, 0x00022010, 0x000f0220,
234    0x00000030, 0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f, 0x00000001,
235    0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0, 0x00000100,
236    0x0001e000, 0x01000000, 0x20000000, 0xf8002000, 0x0000df40, 0xc280c200,
237    0x0000c200, 0x80c20000, 0x008000c2, 0x00c20000, 0x18000000, 0xe0000000,
238    0xfc000000, 0xc0c00000, 0xe0000000, 0xfe000000, 0xffe02000, 0xff800000,
239    0xfff00000, 0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000, 0xfe000000,
240    0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e, 0xffe0c000,
241    0x0000f000, 0x3800fc00, 0x30000000, 0x80000000, 0x60000000, 0xfc00fc00,
242    0x8000c000, 0x0000f000, 0xe0000000, 0x0ff00000, 0x07000000, 0x00001c00,
243    0x0000fe00, 0x18000000, 0x0000ff00, 0xfc000000, 0x04000000, 0xc0c00000,
244    0x5500c0c0, 0xc0000000, 0x00200000, 0x10300020, 0x80230000, 0x000c0020,
245    0xe0008000, 0xfffe0000, 0x0000f000, 0xffffff80, 0xfffff800, 0x00300000,
246    0x00c00000, 0x00000200, 0x80000000, 0x00008000, 0x80000000, 0x01f00000,
247    0x0000df40, 0x7ffe7f00, 0xff800000, 0x80808080, 0x80808080, 0xffff8000,
248    0x04000000, 0xfff00000, 0xffc00000, 0xf000ffff, 0x00000001, 0x01800000,
249    0x0000001f, 0x00010000, 0x00008000, 0xf8000000, 0x0000fff0, 0x80000000,
250    0x80000000, 0x0000e000, 0x0000ff80, 0xfffff000, 0xff000000, 0xfc000000,
251    0x007fffff, 0xfc00f000, 0xff000000, 0xfc003fc0, 0x7ff00000, 0xe0000000,
252    0x3c004000, 0x80000000, 0xff800000, 0x0c00c000, 0x07fffff8, 0xff800000,
253    0xff818181, 0x00008080, 0x0000ffc0, 0xfc00c000, 0x0000fff0, 0x00000780,
254    0xf0000000, 0x1f07ff80, 0xa0800000, 0x00000024, 0x0007fffc, 0x0000ffff,
255    0x00030000, 0xffffff00, 0xc000ffff, 0xfc000000, 0x00080000, 0x0020f080,
256    0x60000000, 0x00000001, 0x80000000, 0xe3030303, 0xc1ff8080, 0x00001000,
257    0x48000080, 0xc000c000, 0xf8000000, 0x00000078, 0x00700000, 0xf0008000,
258    0xfffffffe, 0x0000ffff, 0xc0000000, 0xe0000000, 0xfffe0000, 0xf0000000,
259    0x00001ff0, 0x0000f800, 0xf8000000, 0x40000000, 0xffc000f0, 0xc0000000,
260    0x0000fc00, 0x00f00000, 0xf0000000, 0x0000ff00, 0xffff7ff0, 0xff800000,
261    0xffc00000, 0xffffff00, 0x000002c0, 0x6e400000, 0x00400000, 0x80000000,
262    0xffff007f, 0x07c80000, 0x70000000, 0x7c000000, 0x0f000000, 0x00030000,
263    0x01100f90, 0x78c00000, 0xfe00fe00, 0xff800780, 0x01c00000, 0x00c00000,
264    0x00f80000, 0xe1fc0000, 0xffff01ff, 0xfffffe00, 0xfff80000, 0x03f80000,
265    0xfc00ff00, 0x80000000, 0x0000ff00, 0xfc000000, 0x0003c000, 0x7fff0000,
266    0x0000dffc, 0xfc00fe00, 0x00200000, 0x0000ff80, 0xff800000, 0x0000c000,
267    0xffe00001, 0x00040000, 0x80000000, 0x40004280, 0x0000fc00, 0xfc00f800,
268    0x00066010, 0x04120200, 0x1f7ec660, 0xffe0e030, 0x94000000, 0xfc00ff00,
269    0x00c00000, 0xc0000000, 0xfc00ffe0, 0xffffe000, 0xff000000, 0xfffffc00,
270    0x18000000, 0x0000f000, 0xf0000000, 0x7ff80000, 0x0000ff00, 0x00000030,
271    0xfffffff8, 0xfe000000, 0x00000200, 0x00800000, 0x0000ffc0, 0x0000e000,
272    0x00030000, 0xff800100, 0x00000480, 0x4b800000, 0xfc00ff00, 0x00000240,
273    0xfe048000, 0xfffffc00, 0xfe000000, 0xfc000000, 0xffe08000, 0xfffffff0,
274    0xffff8000, 0xffffff80, 0xfe000000, 0x80000000, 0xffff3c00, 0x0000ffff,
275    0xffc0c000, 0x0400ffc0, 0x1f000004, 0xffff0000, 0xf8000000, 0x0000ffe0,
276    0x80000000, 0x00007fff, 0xfffffffc, 0xfffc0000, 0xfff80000, 0x80000000,
277    0x0000ffff, 0xf0000000, 0xe000f800, 0x0c00fe00, 0xfffffff0, 0xffc00000,
278    0x00000180, 0xfffffe00, 0xffffffc0, 0xfff00000, 0xff800000, 0xfe000000,
279    0x00200000, 0x20000000, 0x1400219b, 0x00000010, 0x20201840, 0x84000000,
280    0x000203a0, 0x000000c0, 0x00003000, 0x07fff000, 0xffff0001, 0x06000080,
281    0xfffff824, 0xff800060, 0x3c00f800, 0x0001ffff, 0xffe00000, 0x00000010,
282    0xf5080169, 0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0xfffcffff,
283    0xc0000000, 0xc0000000, 0xc0000000, 0xfffffffd, 0xffff0000};
284    }
285
286    const static UnicodeSet xx_Set{const_cast<UnicodeSet::run_t *>(__xx_Set_runs), 369, 0, const_cast<UnicodeSet::bitquad_t *>(__xx_Set_quads), 347, 0};
287
288    /** Code Point Ranges for CM
289    [0000, 0008], [000e, 001f], [007f, 0084], [0086, 009f], [0300, 034e],
290    [0350, 035b], [0363, 036f], [0483, 0489], [0591, 05bd], [05bf, 05bf],
291    [05c1, 05c2], [05c4, 05c5], [05c7, 05c7], [0610, 061a], [061c, 061c],
292    [064b, 065f], [0670, 0670], [06d6, 06dc], [06df, 06e4], [06e7, 06e8],
293    [06ea, 06ed], [0711, 0711], [0730, 074a], [07a6, 07b0], [07eb, 07f3],
294    [07fd, 07fd], [0816, 0819], [081b, 0823], [0825, 0827], [0829, 082d],
295    [0859, 085b], [08d3, 08e1], [08e3, 0903], [093a, 093c], [093e, 094f],
296    [0951, 0957], [0962, 0963], [0981, 0983], [09bc, 09bc], [09be, 09c4],
297    [09c7, 09c8], [09cb, 09cd], [09d7, 09d7], [09e2, 09e3], [09fe, 09fe],
298    [0a01, 0a03], [0a3c, 0a3c], [0a3e, 0a42], [0a47, 0a48], [0a4b, 0a4d],
299    [0a51, 0a51], [0a70, 0a71], [0a75, 0a75], [0a81, 0a83], [0abc, 0abc],
300    [0abe, 0ac5], [0ac7, 0ac9], [0acb, 0acd], [0ae2, 0ae3], [0afa, 0aff],
301    [0b01, 0b03], [0b3c, 0b3c], [0b3e, 0b44], [0b47, 0b48], [0b4b, 0b4d],
302    [0b56, 0b57], [0b62, 0b63], [0b82, 0b82], [0bbe, 0bc2], [0bc6, 0bc8],
303    [0bca, 0bcd], [0bd7, 0bd7], [0c00, 0c04], [0c3e, 0c44], [0c46, 0c48],
304    [0c4a, 0c4d], [0c55, 0c56], [0c62, 0c63], [0c81, 0c83], [0cbc, 0cbc],
305    [0cbe, 0cc4], [0cc6, 0cc8], [0cca, 0ccd], [0cd5, 0cd6], [0ce2, 0ce3],
306    [0d00, 0d03], [0d3b, 0d3c], [0d3e, 0d44], [0d46, 0d48], [0d4a, 0d4d],
307    [0d57, 0d57], [0d62, 0d63], [0d82, 0d83], [0dca, 0dca], [0dcf, 0dd4],
308    [0dd6, 0dd6], [0dd8, 0ddf], [0df2, 0df3], [0f18, 0f19], [0f35, 0f35],
309    [0f37, 0f37], [0f39, 0f39], [0f3e, 0f3f], [0f71, 0f7e], [0f80, 0f84],
310    [0f86, 0f87], [0f8d, 0f97], [0f99, 0fbc], [0fc6, 0fc6], [135d, 135f],
311    [1712, 1714], [1732, 1734], [1752, 1753], [1772, 1773], [180b, 180d],
312    [1885, 1886], [18a9, 18a9], [1920, 192b], [1930, 193b], [1a17, 1a1b],
313    [1a7f, 1a7f], [1ab0, 1abe], [1b00, 1b04], [1b34, 1b44], [1b6b, 1b73],
314    [1b80, 1b82], [1ba1, 1bad], [1be6, 1bf3], [1c24, 1c37], [1cd0, 1cd2],
315    [1cd4, 1ce8], [1ced, 1ced], [1cf2, 1cf4], [1cf7, 1cf9], [1dc0, 1df9],
316    [1dfb, 1dff], [200c, 200c], [200e, 200f], [202a, 202e], [2066, 206f],
317    [20d0, 20f0], [2cef, 2cf1], [2d7f, 2d7f], [2de0, 2dff], [302a, 302f],
318    [3035, 3035], [3099, 309a], [a66f, a672], [a674, a67d], [a69e, a69f],
319    [a6f0, a6f1], [a802, a802], [a806, a806], [a80b, a80b], [a823, a827],
320    [a880, a881], [a8b4, a8c5], [a8e0, a8f1], [a8ff, a8ff], [a926, a92d],
321    [a947, a953], [a980, a983], [a9b3, a9c0], [aa29, aa36], [aa43, aa43],
322    [aa4c, aa4d], [aaeb, aaef], [aaf5, aaf6], [abe3, abea], [abec, abed],
323    [fb1e, fb1e], [fe00, fe0f], [fe20, fe2f], [fff9, fffb], [101fd, 101fd],
324    [102e0, 102e0], [10376, 1037a], [10a01, 10a03], [10a05, 10a06],
325    [10a0c, 10a0f], [10a38, 10a3a], [10a3f, 10a3f], [10ae5, 10ae6],
326    [10d24, 10d27], [10f46, 10f50], [11000, 11002], [11038, 11046],
327    [1107f, 11082], [110b0, 110ba], [11100, 11102], [11127, 11134],
328    [11145, 11146], [11173, 11173], [11180, 11182], [111b3, 111c0],
329    [111c9, 111cc], [1122c, 11237], [1123e, 1123e], [112df, 112ea],
330    [11300, 11303], [1133b, 1133c], [1133e, 11344], [11347, 11348],
331    [1134b, 1134d], [11357, 11357], [11362, 11363], [11366, 1136c],
332    [11370, 11374], [11435, 11446], [1145e, 1145e], [114b0, 114c3],
333    [115af, 115b5], [115b8, 115c0], [115dc, 115dd], [11630, 11640],
334    [116ab, 116b7], [1182c, 1183a], [11a01, 11a0a], [11a33, 11a39],
335    [11a3b, 11a3e], [11a47, 11a47], [11a51, 11a5b], [11a8a, 11a99],
336    [11c2f, 11c36], [11c38, 11c3f], [11c92, 11ca7], [11ca9, 11cb6],
337    [11d31, 11d36], [11d3a, 11d3a], [11d3c, 11d3d], [11d3f, 11d45],
338    [11d47, 11d47], [11d8a, 11d8e], [11d90, 11d91], [11d93, 11d97],
339    [11ef3, 11ef6], [16af0, 16af4], [16b30, 16b36], [16f51, 16f7e],
340    [16f8f, 16f92], [1bc9d, 1bc9e], [1bca0, 1bca3], [1d165, 1d169],
341    [1d16d, 1d182], [1d185, 1d18b], [1d1aa, 1d1ad], [1d242, 1d244],
342    [1da00, 1da36], [1da3b, 1da6c], [1da75, 1da75], [1da84, 1da84],
343    [1da9b, 1da9f], [1daa1, 1daaf], [1e000, 1e006], [1e008, 1e018],
344    [1e01b, 1e021], [1e023, 1e024], [1e026, 1e02a], [1e8d0, 1e8d6],
345    [1e944, 1e94a], [e0001, e0001], [e0020, e007f], [e0100, e01ef]**/
346
347
348    namespace {
349    const static UnicodeSet::run_t __cm_Set_runs[] = {
350    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 19}, {Full, 2}, {Mixed, 2},
351    {Empty, 8}, {Mixed, 1}, {Empty, 7}, {Mixed, 3}, {Empty, 1}, {Mixed, 1},
352    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 5}, {Empty, 2}, {Mixed, 1},
353    {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 25}, {Empty, 1},
354    {Mixed, 13}, {Empty, 1}, {Mixed, 2}, {Empty, 8}, {Mixed, 2}, {Empty, 1},
355    {Mixed, 4}, {Empty, 27}, {Mixed, 1}, {Empty, 29}, {Mixed, 4},
356    {Empty, 4}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
357    {Empty, 6}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
358    {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
359    {Empty, 4}, {Mixed, 2}, {Empty, 6}, {Full, 1}, {Mixed, 1}, {Empty, 16},
360    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 95},
361    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 17},
362    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 942}, {Mixed, 2},
363    {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 2}, {Empty, 2}, {Mixed, 4},
364    {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 2},
365    {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 632},
366    {Mixed, 1}, {Empty, 23}, {Mixed, 2}, {Empty, 13}, {Mixed, 1},
367    {Empty, 15}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
368    {Empty, 52}, {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 17},
369    {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 5}, {Mixed, 6}, {Empty, 2},
370    {Mixed, 7}, {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 6}, {Empty, 5},
371    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 2},
372    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 11}, {Mixed, 1},
373    {Empty, 14}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 12},
374    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 1},
375    {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 607}, {Mixed, 1},
376    {Empty, 1}, {Mixed, 1}, {Empty, 32}, {Mixed, 3}, {Empty, 615},
377    {Mixed, 2}, {Empty, 165}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
378    {Empty, 61}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Empty, 42},
379    {Mixed, 2}, {Empty, 68}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
380    {Empty, 24757}, {Mixed, 1}, {Full, 3}, {Empty, 4}, {Full, 7},
381    {Mixed, 1}, {Empty, 6128}};
382    const static UnicodeSet::bitquad_t  __cm_Set_quads[] = {
383    0xffffc1ff, 0x80000000, 0xffffffdf, 0x0fff7fff, 0x0000fff8, 0x000003f8,
384    0xfffe0000, 0xbfffffff, 0x000000b6, 0x17ff0000, 0xfffff800, 0x00010000,
385    0x9fc00000, 0x00003d9f, 0x00020000, 0xffff0000, 0x000007ff, 0x0001ffc0,
386    0x200ff800, 0xfbc00000, 0x00003eef, 0x0e000000, 0xfff80000, 0xfffffffb,
387    0x0000000f, 0xdc000000, 0x00feffff, 0x0000000c, 0x0000000e, 0xd0000000,
388    0x0080399f, 0x4000000c, 0x0000000e, 0xd0000000, 0x00023987, 0x00230000,
389    0x0000000e, 0xd0000000, 0x00003bbf, 0xfc00000c, 0x0000000e, 0xd0000000,
390    0x00c0399f, 0x0000000c, 0x00000004, 0xc0000000, 0x00803dc7, 0x0000001f,
391    0xc0000000, 0x00603ddf, 0x0000000c, 0x0000000e, 0xd0000000, 0x00603ddf,
392    0x0000000c, 0x0000000f, 0xd8000000, 0x00803ddf, 0x0000000c, 0x0000000c,
393    0xff5f8400, 0x000c0000, 0x03000000, 0xc2a00000, 0x7ffe0000, 0xfeffe0df,
394    0x1fffffff, 0x00000040, 0xe0000000, 0x001c0000, 0x001c0000, 0x000c0000,
395    0x000c0000, 0x00003800, 0x00000060, 0x00000200, 0x0fff0fff, 0x0f800000,
396    0x80000000, 0x7fff0000, 0x0000001f, 0xfff00000, 0x0000001f, 0x000ff800,
397    0x00000007, 0x00003ffe, 0x000fffc0, 0x00fffff0, 0xfff70000, 0x039c21ff,
398    0xfbffffff, 0x0000d000, 0x00007c00, 0x0000ffc0, 0xffff0000, 0x0001ffff,
399    0x00038000, 0x80000000, 0x0020fc00, 0x06000000, 0x3ff78000, 0xc0000000,
400    0x00030000, 0x00000844, 0x000000f8, 0x00000003, 0xfff00000, 0x0000003f,
401    0x8003ffff, 0x00003fc0, 0x000fff80, 0x0000000f, 0xfff80000, 0x00000001,
402    0x007ffe00, 0x00003008, 0x0060f800, 0x000037f8, 0x40000000, 0x0000ffff,
403    0x0000ffff, 0x0e000000, 0x20000000, 0x00000001, 0x07c00000, 0x0000f06e,
404    0x87000000, 0x00000060, 0x000000f0, 0x0001ffc0, 0x00000007, 0xff000000,
405    0x0000007f, 0x80000000, 0x00000007, 0x07ff0000, 0x00000007, 0x001fff80,
406    0x00000060, 0x00080000, 0x00000007, 0xfff80000, 0x00001e01, 0x40fff000,
407    0x80000000, 0x000007ff, 0x0000000f, 0xd8000000, 0x0080399f, 0x001f1fcc,
408    0xffe00000, 0x4000007f, 0xffff0000, 0x0000000f, 0xff3f8000, 0x30000001,
409    0xffff0000, 0x00000001, 0x00fff800, 0x07fff000, 0x000007fe, 0x7bf80000,
410    0x0ffe0080, 0x03fffc00, 0xff7f8000, 0xfffc0000, 0x007ffeff, 0xb47e0000,
411    0x000000bf, 0x00fb7c00, 0x00780000, 0x001f0000, 0x007f0000, 0xfffe0000,
412    0x7fffffff, 0x00078000, 0x60000000, 0x0000000f, 0xffffe3e0, 0x00000fe7,
413    0x00003c00, 0x0000001c, 0xf87fffff, 0x00201fff, 0xf8000010, 0x0000fffe,
414    0xf9ffff7f, 0x000007db, 0x007f0000, 0x000007f0, 0x00000002, 0x0000ffff};
415    }
416
417    const static UnicodeSet cm_Set{const_cast<UnicodeSet::run_t *>(__cm_Set_runs), 175, 0, const_cast<UnicodeSet::bitquad_t *>(__cm_Set_quads), 192, 0};
418
419    /** Code Point Ranges for BA
420    [0009, 0009], [007c, 007c], [00ad, 00ad], [058a, 058a], [05be, 05be],
421    [0964, 0965], [0e5a, 0e5b], [0f0b, 0f0b], [0f34, 0f34], [0f7f, 0f7f],
422    [0f85, 0f85], [0fbe, 0fbf], [0fd2, 0fd2], [104a, 104b], [1361, 1361],
423    [1400, 1400], [1680, 1680], [16eb, 16ed], [1735, 1736], [17d4, 17d5],
424    [17d8, 17d8], [17da, 17da], [1804, 1805], [1b5a, 1b5b], [1b5d, 1b60],
425    [1c3b, 1c3f], [1c7e, 1c7f], [2000, 2006], [2008, 200a], [2010, 2010],
426    [2012, 2013], [2027, 2027], [2056, 2056], [2058, 205b], [205d, 205f],
427    [2cfa, 2cfc], [2cff, 2cff], [2d70, 2d70], [2e0e, 2e15], [2e17, 2e17],
428    [2e19, 2e19], [2e2a, 2e2d], [2e30, 2e31], [2e33, 2e34], [2e3c, 2e3e],
429    [2e40, 2e41], [2e43, 2e4a], [2e4c, 2e4c], [2e4e, 2e4e], [3000, 3000],
430    [a4fe, a4ff], [a60d, a60d], [a60f, a60f], [a6f3, a6f7], [a8ce, a8cf],
431    [a92e, a92f], [a9c7, a9c9], [aa5d, aa5f], [aaf0, aaf1], [abeb, abeb],
432    [10100, 10102], [1039f, 1039f], [103d0, 103d0], [10857, 10857],
433    [1091f, 1091f], [10a50, 10a57], [10af0, 10af5], [10b39, 10b3f],
434    [11047, 11048], [110be, 110c1], [11140, 11143], [111c5, 111c6],
435    [111c8, 111c8], [111dd, 111df], [11238, 11239], [1123b, 1123c],
436    [112a9, 112a9], [1144b, 1144e], [1145b, 1145b], [115c2, 115c3],
437    [115c9, 115d7], [11641, 11642], [1173c, 1173e], [11a41, 11a44],
438    [11a9a, 11a9c], [11aa1, 11aa2], [11c41, 11c45], [12470, 12474],
439    [16a6e, 16a6f], [16af5, 16af5], [16b37, 16b39], [16b44, 16b44],
440    [16e97, 16e98], [1bc9f, 1bc9f], [1da87, 1da8a]**/
441
442
443    namespace {
444    const static UnicodeSet::run_t __ba_Set_runs[] = {
445    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 38},
446    {Mixed, 2}, {Empty, 29}, {Mixed, 1}, {Empty, 38}, {Mixed, 1},
447    {Empty, 5}, {Mixed, 2}, {Empty, 1}, {Mixed, 4}, {Empty, 3}, {Mixed, 1},
448    {Empty, 24}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 19},
449    {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4},
450    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 2}, {Empty, 5},
451    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 28}, {Mixed, 3},
452    {Empty, 100}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4},
453    {Mixed, 3}, {Empty, 13}, {Mixed, 1}, {Empty, 934}, {Mixed, 1},
454    {Empty, 8}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 14}, {Mixed, 1},
455    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
456    {Empty, 4}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 680},
457    {Mixed, 1}, {Empty, 19}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
458    {Empty, 35}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 9}, {Mixed, 1},
459    {Empty, 4}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 40}, {Mixed, 1},
460    {Empty, 2}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
461    {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
462    {Empty, 11}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1},
463    {Empty, 24}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 12},
464    {Mixed, 1}, {Empty, 64}, {Mixed, 1}, {Empty, 559}, {Mixed, 1},
465    {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 25}, {Mixed, 1},
466    {Empty, 623}, {Mixed, 1}, {Empty, 239}, {Mixed, 1}, {Empty, 31019}};
467    const static UnicodeSet::bitquad_t  __ba_Set_quads[] = {
468    0x00000200, 0x10000000, 0x00002000, 0x00000400, 0x40000000, 0x00000030,
469    0x0c000000, 0x00000800, 0x00100000, 0x80000000, 0x00000020, 0xc0000000,
470    0x00040000, 0x00000c00, 0x00000002, 0x00000001, 0x00000001, 0x00003800,
471    0x00600000, 0x05300000, 0x00000030, 0xec000000, 0x00000001, 0xf8000000,
472    0xc0000000, 0x000d077f, 0x00000080, 0xef400000, 0x9c000000, 0x00010000,
473    0x02bfc000, 0x701b3c00, 0x000057fb, 0x00000001, 0xc0000000, 0x0000a000,
474    0x00f80000, 0x0000c000, 0x0000c000, 0x00000380, 0xe0000000, 0x00030000,
475    0x00000800, 0x00000007, 0x80000000, 0x00010000, 0x00800000, 0x80000000,
476    0x00ff0000, 0x003f0000, 0xfe000000, 0x00000180, 0xc0000000, 0x00000003,
477    0x0000000f, 0xe0000160, 0x1b000000, 0x00000200, 0x08007800, 0x00fffe0c,
478    0x00000006, 0x70000000, 0x0000001e, 0x1c000000, 0x00000006, 0x0000003e,
479    0x001f0000, 0x0000c000, 0x00200000, 0x03800000, 0x00000010, 0x01800000,
480    0x80000000, 0x00000780};
481    }
482
483    const static UnicodeSet ba_Set{const_cast<UnicodeSet::run_t *>(__ba_Set_runs), 122, 0, const_cast<UnicodeSet::bitquad_t *>(__ba_Set_quads), 74, 0};
484
485    /** Code Point Ranges for LF
486    [000a, 000a]**/
487
488
489    namespace {
490    const static UnicodeSet::run_t __lf_Set_runs[] = {
491    {Mixed, 1}, {Empty, 34815}};
492    const static UnicodeSet::bitquad_t  __lf_Set_quads[] = {
493    0x00000400};
494    }
495
496    const static UnicodeSet lf_Set{const_cast<UnicodeSet::run_t *>(__lf_Set_runs), 2, 0, const_cast<UnicodeSet::bitquad_t *>(__lf_Set_quads), 1, 0};
497
498    /** Code Point Ranges for BK
499    [000b, 000c], [2028, 2029]**/
500
501
502    namespace {
503    const static UnicodeSet::run_t __bk_Set_runs[] = {
504    {Mixed, 1}, {Empty, 256}, {Mixed, 1}, {Empty, 34558}};
505    const static UnicodeSet::bitquad_t  __bk_Set_quads[] = {
506    0x00001800, 0x00000300};
507    }
508
509    const static UnicodeSet bk_Set{const_cast<UnicodeSet::run_t *>(__bk_Set_runs), 4, 0, const_cast<UnicodeSet::bitquad_t *>(__bk_Set_quads), 2, 0};
510
511    /** Code Point Ranges for CR
512    [000d, 000d]**/
513
514
515    namespace {
516    const static UnicodeSet::run_t __cr_Set_runs[] = {
517    {Mixed, 1}, {Empty, 34815}};
518    const static UnicodeSet::bitquad_t  __cr_Set_quads[] = {
519    0x00002000};
520    }
521
522    const static UnicodeSet cr_Set{const_cast<UnicodeSet::run_t *>(__cr_Set_runs), 2, 0, const_cast<UnicodeSet::bitquad_t *>(__cr_Set_quads), 1, 0};
523
524    /** Code Point Ranges for SP
525    [0020, 0020]**/
526
527
528    namespace {
529    const static UnicodeSet::run_t __sp_Set_runs[] = {
530    {Empty, 1}, {Mixed, 1}, {Empty, 34814}};
531    const static UnicodeSet::bitquad_t  __sp_Set_quads[] = {
532    0x00000001};
533    }
534
535    const static UnicodeSet sp_Set{const_cast<UnicodeSet::run_t *>(__sp_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sp_Set_quads), 1, 0};
536
537    /** Code Point Ranges for EX
538    [0021, 0021], [003f, 003f], [05c6, 05c6], [061b, 061b], [061e, 061f],
539    [06d4, 06d4], [07f9, 07f9], [0f0d, 0f11], [0f14, 0f14], [1802, 1803],
540    [1808, 1809], [1944, 1945], [2762, 2763], [2cf9, 2cf9], [2cfe, 2cfe],
541    [2e2e, 2e2e], [a60e, a60e], [a876, a877], [fe15, fe16], [fe56, fe57],
542    [ff01, ff01], [ff1f, ff1f], [115c4, 115c5], [11c71, 11c71]**/
543
544
545    namespace {
546    const static UnicodeSet::run_t __ex_Set_runs[] = {
547    {Empty, 1}, {Mixed, 1}, {Empty, 44}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
548    {Empty, 5}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 56}, {Mixed, 1},
549    {Empty, 71}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 112},
550    {Mixed, 1}, {Empty, 43}, {Mixed, 1}, {Empty, 9}, {Mixed, 1},
551    {Empty, 958}, {Mixed, 1}, {Empty, 18}, {Mixed, 1}, {Empty, 684},
552    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
553    {Empty, 181}, {Mixed, 1}, {Empty, 52}, {Mixed, 1}, {Empty, 32540}};
554    const static UnicodeSet::bitquad_t  __ex_Set_quads[] = {
555    0x80000002, 0x00000040, 0xc8000000, 0x00100000, 0x02000000, 0x0013e000,
556    0x0000030c, 0x00000030, 0x0000000c, 0x42000000, 0x00004000, 0x00004000,
557    0x00c00000, 0x00600000, 0x00c00000, 0x80000002, 0x00000030, 0x00020000};
558    }
559
560    const static UnicodeSet ex_Set{const_cast<UnicodeSet::run_t *>(__ex_Set_runs), 37, 0, const_cast<UnicodeSet::bitquad_t *>(__ex_Set_quads), 18, 0};
561
562    /** Code Point Ranges for QU
563    [0022, 0022], [0027, 0027], [00ab, 00ab], [00bb, 00bb], [2018, 2019],
564    [201b, 201d], [201f, 201f], [2039, 203a], [275b, 2760], [2e00, 2e0d],
565    [2e1c, 2e1d], [2e20, 2e21], [1f676, 1f678]**/
566
567
568    namespace {
569    const static UnicodeSet::run_t __qu_Set_runs[] = {
570    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 250},
571    {Mixed, 2}, {Empty, 56}, {Mixed, 2}, {Empty, 52}, {Mixed, 2},
572    {Empty, 3649}, {Mixed, 1}, {Empty, 30796}};
573    const static UnicodeSet::bitquad_t  __qu_Set_quads[] = {
574    0x00000084, 0x08000800, 0xbb000000, 0x06000000, 0xf8000000, 0x00000001,
575    0x30003fff, 0x00000003, 0x01c00000};
576    }
577
578    const static UnicodeSet qu_Set{const_cast<UnicodeSet::run_t *>(__qu_Set_runs), 13, 0, const_cast<UnicodeSet::bitquad_t *>(__qu_Set_quads), 9, 0};
579
580    /** Code Point Ranges for AL
581    [0023, 0023], [0026, 0026], [002a, 002a], [003c, 003e], [0040, 005a],
582    [005e, 007a], [007e, 007e], [00a6, 00a6], [00a9, 00a9], [00ac, 00ac],
583    [00ae, 00af], [00b5, 00b5], [00c0, 00d6], [00d8, 00f6], [00f8, 02c6],
584    [02ce, 02cf], [02d1, 02d7], [02dc, 02dc], [02de, 02de], [02e0, 02ff],
585    [0370, 0377], [037a, 037d], [037f, 037f], [0384, 038a], [038c, 038c],
586    [038e, 03a1], [03a3, 0482], [048a, 052f], [0531, 0556], [0559, 0588],
587    [058d, 058e], [05c0, 05c0], [05c3, 05c3], [05f3, 05f4], [0600, 0608],
588    [060e, 060f], [0620, 064a], [066d, 066f], [0671, 06d3], [06d5, 06d5],
589    [06dd, 06de], [06e5, 06e6], [06e9, 06e9], [06ee, 06ef], [06fa, 070d],
590    [070f, 0710], [0712, 072f], [074d, 07a5], [07b1, 07b1], [07ca, 07ea],
591    [07f4, 07f7], [07fa, 07fa], [0800, 0815], [081a, 081a], [0824, 0824],
592    [0828, 0828], [0830, 083e], [0840, 0858], [085e, 085e], [0860, 086a],
593    [08a0, 08b4], [08b6, 08bd], [08e2, 08e2], [0904, 0939], [093d, 093d],
594    [0950, 0950], [0958, 0961], [0970, 0980], [0985, 098c], [098f, 0990],
595    [0993, 09a8], [09aa, 09b0], [09b2, 09b2], [09b6, 09b9], [09bd, 09bd],
596    [09ce, 09ce], [09dc, 09dd], [09df, 09e1], [09f0, 09f1], [09f4, 09f8],
597    [09fa, 09fa], [09fc, 09fd], [0a05, 0a0a], [0a0f, 0a10], [0a13, 0a28],
598    [0a2a, 0a30], [0a32, 0a33], [0a35, 0a36], [0a38, 0a39], [0a59, 0a5c],
599    [0a5e, 0a5e], [0a72, 0a74], [0a76, 0a76], [0a85, 0a8d], [0a8f, 0a91],
600    [0a93, 0aa8], [0aaa, 0ab0], [0ab2, 0ab3], [0ab5, 0ab9], [0abd, 0abd],
601    [0ad0, 0ad0], [0ae0, 0ae1], [0af0, 0af0], [0af9, 0af9], [0b05, 0b0c],
602    [0b0f, 0b10], [0b13, 0b28], [0b2a, 0b30], [0b32, 0b33], [0b35, 0b39],
603    [0b3d, 0b3d], [0b5c, 0b5d], [0b5f, 0b61], [0b70, 0b77], [0b83, 0b83],
604    [0b85, 0b8a], [0b8e, 0b90], [0b92, 0b95], [0b99, 0b9a], [0b9c, 0b9c],
605    [0b9e, 0b9f], [0ba3, 0ba4], [0ba8, 0baa], [0bae, 0bb9], [0bd0, 0bd0],
606    [0bf0, 0bf8], [0bfa, 0bfa], [0c05, 0c0c], [0c0e, 0c10], [0c12, 0c28],
607    [0c2a, 0c39], [0c3d, 0c3d], [0c58, 0c5a], [0c60, 0c61], [0c78, 0c80],
608    [0c85, 0c8c], [0c8e, 0c90], [0c92, 0ca8], [0caa, 0cb3], [0cb5, 0cb9],
609    [0cbd, 0cbd], [0cde, 0cde], [0ce0, 0ce1], [0cf1, 0cf2], [0d05, 0d0c],
610    [0d0e, 0d10], [0d12, 0d3a], [0d3d, 0d3d], [0d4e, 0d4f], [0d54, 0d56],
611    [0d58, 0d61], [0d70, 0d78], [0d7a, 0d7f], [0d85, 0d96], [0d9a, 0db1],
612    [0db3, 0dbb], [0dbd, 0dbd], [0dc0, 0dc6], [0df4, 0df4], [0e4f, 0e4f],
613    [0f00, 0f00], [0f05, 0f05], [0f13, 0f13], [0f15, 0f17], [0f1a, 0f1f],
614    [0f2a, 0f33], [0f36, 0f36], [0f38, 0f38], [0f40, 0f47], [0f49, 0f6c],
615    [0f88, 0f8c], [0fc0, 0fc5], [0fc7, 0fcc], [0fce, 0fcf], [0fd4, 0fd8],
616    [104c, 104f], [10a0, 10c5], [10c7, 10c7], [10cd, 10cd], [10d0, 10ff],
617    [1200, 1248], [124a, 124d], [1250, 1256], [1258, 1258], [125a, 125d],
618    [1260, 1288], [128a, 128d], [1290, 12b0], [12b2, 12b5], [12b8, 12be],
619    [12c0, 12c0], [12c2, 12c5], [12c8, 12d6], [12d8, 1310], [1312, 1315],
620    [1318, 135a], [1360, 1360], [1362, 137c], [1380, 1399], [13a0, 13f5],
621    [13f8, 13fd], [1401, 167f], [1681, 169a], [16a0, 16ea], [16ee, 16f8],
622    [1700, 170c], [170e, 1711], [1720, 1731], [1740, 1751], [1760, 176c],
623    [176e, 1770], [17d9, 17d9], [17f0, 17f9], [1800, 1801], [1807, 1807],
624    [180a, 180a], [1820, 1878], [1880, 1884], [1887, 18a8], [18aa, 18aa],
625    [18b0, 18f5], [1900, 191e], [1940, 1940], [19e0, 1a16], [1a1e, 1a1f],
626    [1b05, 1b33], [1b45, 1b4b], [1b5c, 1b5c], [1b61, 1b6a], [1b74, 1b7c],
627    [1b83, 1ba0], [1bae, 1baf], [1bba, 1be5], [1bfc, 1c23], [1c4d, 1c4f],
628    [1c5a, 1c7d], [1c80, 1c88], [1c90, 1cba], [1cbd, 1cc7], [1cd3, 1cd3],
629    [1ce9, 1cec], [1cee, 1cf1], [1cf5, 1cf6], [1d00, 1dbf], [1e00, 1f15],
630    [1f18, 1f1d], [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59],
631    [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fc4],
632    [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fef], [1ff2, 1ff4], [1ff6, 1ffc],
633    [1ffe, 1ffe], [2017, 2017], [2022, 2023], [2038, 2038], [203e, 2043],
634    [204a, 2055], [2057, 2057], [205c, 205c], [2061, 2064], [2070, 2071],
635    [2075, 207c], [2080, 2080], [2085, 208c], [2090, 209c], [2100, 2102],
636    [2104, 2104], [2106, 2108], [210a, 2112], [2114, 2115], [2117, 2120],
637    [2123, 212a], [212c, 2153], [2156, 215a], [215c, 215d], [215f, 215f],
638    [216c, 216f], [217a, 2188], [218a, 218b], [219a, 21d1], [21d3, 21d3],
639    [21d5, 21ff], [2201, 2201], [2204, 2206], [2209, 220a], [220c, 220e],
640    [2210, 2210], [2214, 2214], [2216, 2219], [221b, 221c], [2221, 2222],
641    [2224, 2224], [2226, 2226], [222d, 222d], [222f, 2233], [2238, 223b],
642    [223e, 2247], [2249, 224b], [224d, 2251], [2253, 225f], [2262, 2263],
643    [2268, 2269], [226c, 226d], [2270, 2281], [2284, 2285], [2288, 2294],
644    [2296, 2298], [229a, 22a4], [22a6, 22be], [22c0, 22ee], [22f0, 2307],
645    [230c, 2311], [2313, 2319], [231c, 2328], [232b, 23ef], [23f4, 2426],
646    [2440, 244a], [24ff, 24ff], [254c, 254f], [2575, 257f], [2590, 2591],
647    [2596, 259f], [25a2, 25a2], [25aa, 25b1], [25b4, 25b5], [25b8, 25bb],
648    [25be, 25bf], [25c2, 25c5], [25c9, 25ca], [25cc, 25cd], [25d2, 25e1],
649    [25e6, 25ee], [25f0, 25ff], [2604, 2604], [2607, 2608], [260a, 260d],
650    [2610, 2613], [2619, 2619], [2620, 2638], [263c, 263f], [2641, 2641],
651    [2643, 265f], [2662, 2662], [2666, 2666], [266b, 266b], [266e, 266e],
652    [2670, 267e], [2680, 269d], [26a0, 26bc], [26ce, 26ce], [26e2, 26e2],
653    [26e4, 26e7], [2705, 2707], [270e, 2756], [2758, 275a], [2761, 2761],
654    [2765, 2767], [2794, 27c4], [27c7, 27e5], [27f0, 2982], [2999, 29d7],
655    [29dc, 29fb], [29fe, 2b54], [2b5a, 2b73], [2b76, 2b95], [2b98, 2bc8],
656    [2bca, 2bfe], [2c00, 2c2e], [2c30, 2c5e], [2c60, 2cee], [2cf2, 2cf3],
657    [2cfd, 2cfd], [2d00, 2d25], [2d27, 2d27], [2d2d, 2d2d], [2d30, 2d67],
658    [2d6f, 2d6f], [2d80, 2d96], [2da0, 2da6], [2da8, 2dae], [2db0, 2db6],
659    [2db8, 2dbe], [2dc0, 2dc6], [2dc8, 2dce], [2dd0, 2dd6], [2dd8, 2dde],
660    [2e16, 2e16], [2e1a, 2e1b], [2e1e, 2e1f], [2e2f, 2e2f], [2e32, 2e32],
661    [2e35, 2e39], [2e3f, 2e3f], [2e4b, 2e4b], [2e4d, 2e4d], [4dc0, 4dff],
662    [a4d0, a4fd], [a500, a60c], [a610, a61f], [a62a, a62b], [a640, a66e],
663    [a673, a673], [a67e, a69d], [a6a0, a6ef], [a6f2, a6f2], [a700, a7b9],
664    [a7f7, a801], [a803, a805], [a807, a80a], [a80c, a822], [a828, a82b],
665    [a830, a837], [a839, a839], [a840, a873], [a882, a8b3], [a8f2, a8fb],
666    [a8fd, a8fe], [a90a, a925], [a930, a946], [a95f, a95f], [a984, a9b2],
667    [a9c1, a9c6], [a9ca, a9cd], [a9cf, a9cf], [a9de, a9df], [aa00, aa28],
668    [aa40, aa42], [aa44, aa4b], [aa5c, aa5c], [aae0, aaea], [aaf2, aaf4],
669    [ab01, ab06], [ab09, ab0e], [ab11, ab16], [ab20, ab26], [ab28, ab2e],
670    [ab30, ab65], [ab70, abe2], [fb00, fb06], [fb13, fb17], [fb29, fb29],
671    [fb50, fbc1], [fbd3, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfb],
672    [fdfd, fdfd], [fe70, fe74], [fe76, fefc], [ffe8, ffee], [10000, 1000b],
673    [1000d, 10026], [10028, 1003a], [1003c, 1003d], [1003f, 1004d],
674    [10050, 1005d], [10080, 100fa], [10107, 10133], [10137, 1018e],
675    [10190, 1019b], [101a0, 101a0], [101d0, 101fc], [10280, 1029c],
676    [102a0, 102d0], [102e1, 102fb], [10300, 10323], [1032d, 1034a],
677    [10350, 10375], [10380, 1039d], [103a0, 103c3], [103c8, 103cf],
678    [103d1, 103d5], [10400, 1049d], [104b0, 104d3], [104d8, 104fb],
679    [10500, 10527], [10530, 10563], [1056f, 1056f], [10600, 10736],
680    [10740, 10755], [10760, 10767], [10800, 10805], [10808, 10808],
681    [1080a, 10835], [10837, 10838], [1083c, 1083c], [1083f, 10855],
682    [10858, 1089e], [108a7, 108af], [108e0, 108f2], [108f4, 108f5],
683    [108fb, 1091b], [10920, 10939], [1093f, 1093f], [10980, 109b7],
684    [109bc, 109cf], [109d2, 10a00], [10a10, 10a13], [10a15, 10a17],
685    [10a19, 10a35], [10a40, 10a48], [10a58, 10a58], [10a60, 10a9f],
686    [10ac0, 10ae4], [10aeb, 10aef], [10b00, 10b35], [10b40, 10b55],
687    [10b58, 10b72], [10b78, 10b91], [10b99, 10b9c], [10ba9, 10baf],
688    [10c00, 10c48], [10c80, 10cb2], [10cc0, 10cf2], [10cfa, 10d23],
689    [10e60, 10e7e], [10f00, 10f27], [10f30, 10f45], [10f51, 10f59],
690    [11003, 11037], [11049, 1104d], [11052, 11065], [11083, 110af],
691    [110bb, 110bd], [110cd, 110cd], [110d0, 110e8], [11103, 11126],
692    [11144, 11144], [11150, 11172], [11174, 11174], [11176, 11176],
693    [11183, 111b2], [111c1, 111c4], [111c7, 111c7], [111cd, 111cd],
694    [111da, 111da], [111dc, 111dc], [111e1, 111f4], [11200, 11211],
695    [11213, 1122b], [1123a, 1123a], [1123d, 1123d], [11280, 11286],
696    [11288, 11288], [1128a, 1128d], [1128f, 1129d], [1129f, 112a8],
697    [112b0, 112de], [11305, 1130c], [1130f, 11310], [11313, 11328],
698    [1132a, 11330], [11332, 11333], [11335, 11339], [1133d, 1133d],
699    [11350, 11350], [1135d, 11361], [11400, 11434], [11447, 1144a],
700    [1144f, 1144f], [1145d, 1145d], [11480, 114af], [114c4, 114c7],
701    [11580, 115ae], [115c6, 115c8], [115d8, 115db], [11600, 1162f],
702    [11643, 11644], [11680, 116aa], [11800, 1182b], [1183b, 1183b],
703    [118a0, 118df], [118ea, 118f2], [118ff, 118ff], [11a00, 11a00],
704    [11a0b, 11a32], [11a3a, 11a3a], [11a40, 11a40], [11a46, 11a46],
705    [11a50, 11a50], [11a5c, 11a83], [11a86, 11a89], [11a9d, 11a9d],
706    [11ac0, 11af8], [11c00, 11c08], [11c0a, 11c2e], [11c40, 11c40],
707    [11c5a, 11c6c], [11c72, 11c8f], [11d00, 11d06], [11d08, 11d09],
708    [11d0b, 11d30], [11d46, 11d46], [11d60, 11d65], [11d67, 11d68],
709    [11d6a, 11d89], [11d98, 11d98], [11ee0, 11ef2], [11ef7, 11ef8],
710    [12000, 12399], [12400, 1246e], [12480, 12543], [13000, 13257],
711    [1325e, 13281], [13283, 13285], [1328a, 13378], [1337c, 1342e],
712    [14400, 145cd], [145d0, 14646], [16800, 16a38], [16a40, 16a5e],
713    [16ad0, 16aed], [16b00, 16b2f], [16b3a, 16b43], [16b45, 16b45],
714    [16b5b, 16b61], [16b63, 16b77], [16b7d, 16b8f], [16e40, 16e96],
715    [16e99, 16e9a], [16f00, 16f44], [16f50, 16f50], [16f93, 16f9f],
716    [1bc00, 1bc6a], [1bc70, 1bc7c], [1bc80, 1bc88], [1bc90, 1bc99],
717    [1bc9c, 1bc9c], [1d000, 1d0f5], [1d100, 1d126], [1d129, 1d164],
718    [1d16a, 1d16c], [1d183, 1d184], [1d18c, 1d1a9], [1d1ae, 1d1e8],
719    [1d200, 1d241], [1d245, 1d245], [1d2e0, 1d2f3], [1d300, 1d356],
720    [1d360, 1d378], [1d400, 1d454], [1d456, 1d49c], [1d49e, 1d49f],
721    [1d4a2, 1d4a2], [1d4a5, 1d4a6], [1d4a9, 1d4ac], [1d4ae, 1d4b9],
722    [1d4bb, 1d4bb], [1d4bd, 1d4c3], [1d4c5, 1d505], [1d507, 1d50a],
723    [1d50d, 1d514], [1d516, 1d51c], [1d51e, 1d539], [1d53b, 1d53e],
724    [1d540, 1d544], [1d546, 1d546], [1d54a, 1d550], [1d552, 1d6a5],
725    [1d6a8, 1d7cb], [1d800, 1d9ff], [1da37, 1da3a], [1da6d, 1da74],
726    [1da76, 1da83], [1da85, 1da86], [1da8b, 1da8b], [1e800, 1e8c4],
727    [1e8c7, 1e8cf], [1e900, 1e943], [1ec71, 1ecab], [1ecad, 1ecaf],
728    [1ecb1, 1ecb4], [1ee00, 1ee03], [1ee05, 1ee1f], [1ee21, 1ee22],
729    [1ee24, 1ee24], [1ee27, 1ee27], [1ee29, 1ee32], [1ee34, 1ee37],
730    [1ee39, 1ee39], [1ee3b, 1ee3b], [1ee42, 1ee42], [1ee47, 1ee47],
731    [1ee49, 1ee49], [1ee4b, 1ee4b], [1ee4d, 1ee4f], [1ee51, 1ee52],
732    [1ee54, 1ee54], [1ee57, 1ee57], [1ee59, 1ee59], [1ee5b, 1ee5b],
733    [1ee5d, 1ee5d], [1ee5f, 1ee5f], [1ee61, 1ee62], [1ee64, 1ee64],
734    [1ee67, 1ee6a], [1ee6c, 1ee72], [1ee74, 1ee77], [1ee79, 1ee7c],
735    [1ee7e, 1ee7e], [1ee80, 1ee89], [1ee8b, 1ee9b], [1eea1, 1eea3],
736    [1eea5, 1eea9], [1eeab, 1eebb], [1eef0, 1eef1], [1f12e, 1f12f],
737    [1f16a, 1f16b], [1f39c, 1f39d], [1f3b5, 1f3b6], [1f3bc, 1f3bc],
738    [1f4a0, 1f4a0], [1f4a2, 1f4a2], [1f4a4, 1f4a4], [1f4af, 1f4af],
739    [1f4b1, 1f4b2], [1f500, 1f506], [1f517, 1f524], [1f532, 1f549],
740    [1f5d4, 1f5db], [1f5f4, 1f5f9], [1f650, 1f675], [1f67c, 1f67f],
741    [1f700, 1f773], [1f780, 1f7d4], [1f800, 1f80b], [1f810, 1f847],
742    [1f850, 1f859], [1f860, 1f887], [1f890, 1f8ad], [1f900, 1f90b]**/
743
744
745    namespace {
746    const static UnicodeSet::run_t __al_Set_runs[] = {
747    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14}, {Mixed, 1},
748    {Full, 1}, {Empty, 3}, {Mixed, 3}, {Full, 6}, {Mixed, 1}, {Full, 4},
749    {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Full, 1},
750    {Mixed, 2}, {Full, 2}, {Mixed, 5}, {Full, 2}, {Mixed, 7}, {Empty, 1},
751    {Mixed, 1}, {Empty, 1}, {Mixed, 41}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
752    {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
753    {Full, 1}, {Mixed, 1}, {Full, 1}, {Empty, 8}, {Full, 2}, {Mixed, 1},
754    {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
755    {Full, 2}, {Mixed, 2}, {Full, 19}, {Mixed, 1}, {Full, 2}, {Mixed, 5},
756    {Empty, 2}, {Mixed, 3}, {Full, 2}, {Mixed, 3}, {Full, 1}, {Mixed, 2},
757    {Empty, 1}, {Mixed, 1}, {Empty, 4}, {Full, 1}, {Mixed, 1}, {Empty, 7},
758    {Mixed, 6}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7}, {Full, 6},
759    {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
760    {Mixed, 8}, {Empty, 3}, {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Full, 1},
761    {Mixed, 6}, {Full, 1}, {Mixed, 3}, {Full, 5}, {Mixed, 1}, {Full, 1},
762    {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 15}, {Full, 1},
763    {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 12}, {Mixed, 1}, {Full, 1},
764    {Mixed, 2}, {Full, 10}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Full, 1},
765    {Mixed, 2}, {Full, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
766    {Mixed, 4}, {Empty, 1}, {Mixed, 3}, {Empty, 251}, {Full, 2},
767    {Empty, 694}, {Mixed, 2}, {Full, 8}, {Mixed, 2}, {Full, 1}, {Mixed, 2},
768    {Full, 2}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Empty, 1}, {Mixed, 3},
769    {Full, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4}, {Empty, 1}, {Mixed, 3},
770    {Empty, 1}, {Full, 1}, {Mixed, 2}, {Empty, 4}, {Mixed, 3}, {Full, 1},
771    {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 632}, {Mixed, 3}, {Full, 3},
772    {Mixed, 1}, {Full, 10}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1},
773    {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 7},
774    {Mixed, 4}, {Empty, 1}, {Full, 3}, {Mixed, 3}, {Full, 2}, {Mixed, 4},
775    {Empty, 4}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 4},
776    {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 4}, {Mixed, 4}, {Full, 1},
777    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 4}, {Full, 9}, {Mixed, 3},
778    {Empty, 4}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 3},
779    {Empty, 2}, {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Full, 2},
780    {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 5}, {Empty, 2},
781    {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Full, 1},
782    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 9}, {Mixed, 1}, {Empty, 4},
783    {Full, 1}, {Mixed, 2}, {Empty, 5}, {Mixed, 18}, {Empty, 2}, {Mixed, 3},
784    {Empty, 1}, {Mixed, 4}, {Empty, 4}, {Full, 1}, {Mixed, 2}, {Empty, 1},
785    {Full, 1}, {Mixed, 2}, {Empty, 5}, {Full, 1}, {Mixed, 2}, {Empty, 1},
786    {Full, 1}, {Mixed, 2}, {Empty, 1}, {Full, 1}, {Mixed, 1}, {Empty, 10},
787    {Full, 1}, {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 8},
788    {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 1},
789    {Empty, 8}, {Mixed, 5}, {Empty, 3}, {Mixed, 5}, {Empty, 10}, {Mixed, 1},
790    {Empty, 8}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3}, {Mixed, 1},
791    {Full, 6}, {Mixed, 1}, {Empty, 85}, {Full, 18}, {Mixed, 1}, {Full, 1},
792    {Mixed, 1}, {Full, 6}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Empty, 126},
793    {Full, 14}, {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Empty, 269}, {Full, 17},
794    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Full, 1}, {Mixed, 4}, {Empty, 21},
795    {Full, 2}, {Mixed, 1}, {Empty, 3}, {Full, 2}, {Mixed, 1}, {Empty, 1},
796    {Mixed, 1}, {Empty, 611}, {Full, 3}, {Mixed, 2}, {Empty, 155},
797    {Full, 7}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
798    {Full, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
799    {Full, 2}, {Mixed, 2}, {Empty, 4}, {Full, 2}, {Mixed, 1}, {Full, 1},
800    {Mixed, 3}, {Full, 1}, {Mixed, 3}, {Full, 10}, {Mixed, 1}, {Full, 8},
801    {Mixed, 1}, {Empty, 1}, {Full, 16}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
802    {Mixed, 2}, {Empty, 107}, {Full, 6}, {Mixed, 1}, {Empty, 1}, {Full, 2},
803    {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 10},
804    {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 17}, {Mixed, 1}, {Empty, 1},
805    {Mixed, 1}, {Empty, 16}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 2},
806    {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 4},
807    {Full, 3}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
808    {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
809    {Empty, 30775}};
810    const static UnicodeSet::bitquad_t  __al_Set_quads[] = {
811    0x70000448, 0xc7ffffff, 0x47ffffff, 0x0020d240, 0xff7fffff, 0xff7fffff,
812    0x50fec07f, 0xbcff0000, 0xffffd7f0, 0xfffffffb, 0xfffffc07, 0xfffeffff,
813    0xfe7fffff, 0x000061ff, 0x00000009, 0x00180000, 0x0000c1ff, 0x000007ff,
814    0xfffee000, 0x602fffff, 0xfc00c260, 0xfffdbfff, 0x0000ffff, 0xffffe000,
815    0x0002003f, 0xfffffc00, 0x04f007ff, 0x043fffff, 0x7fff0110, 0x41ffffff,
816    0x000007ff, 0x3fdfffff, 0x00000004, 0xfffffff0, 0x23ffffff, 0xff010000,
817    0xffff0003, 0xfff99fe1, 0x23c5fdff, 0xb0004000, 0x35f30003, 0xfff987e0,
818    0x036dfdff, 0x5e000000, 0x005c0000, 0xfffbbfe0, 0x23edfdff, 0x00010000,
819    0x02010003, 0xfff99fe0, 0x23edfdff, 0xb0000000, 0x00ff0003, 0xd63dc7e8,
820    0x03ffc718, 0x00010000, 0x05ff0000, 0xfffddfe0, 0x23fffdff, 0x07000000,
821    0xff000003, 0xfffddfe1, 0x23effdff, 0x40000000, 0x00060003, 0xfffddfe0,
822    0x27ffffff, 0xff70c000, 0xfdff0003, 0xfc7fffe0, 0x2ffbffff, 0x0000007f,
823    0x00100000, 0x00008000, 0xfce80021, 0x014ffc00, 0xfffffeff, 0x00001fff,
824    0x00001f00, 0x01f0dfbf, 0x0000f000, 0xffff20bf, 0x3d7f3dff, 0xffff3dff,
825    0x7f3dffff, 0xff7fff3d, 0xff3dffff, 0x07ffffff, 0x1ffffffd, 0x03ffffff,
826    0x3f3fffff, 0xfffffffe, 0x07fffffe, 0x01ffc7ff, 0x0003dfff, 0x0003ffff,
827    0x0003ffff, 0x0001dfff, 0x02000000, 0x03ff0000, 0x00000483, 0x01ffffff,
828    0xffffff9f, 0xffff05ff, 0x003fffff, 0x7fffffff, 0x00000001, 0xc07fffff,
829    0xffffffe0, 0x000fffff, 0x10000fe0, 0x1ff007fe, 0xfffffff8, 0xfc00c001,
830    0xf000003f, 0x0000000f, 0xfc00e000, 0x3fffffff, 0xffff01ff, 0xe7ffffff,
831    0x000800ff, 0x0063de00, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0xffdfffff,
832    0xefcfffdf, 0x5fdcffff, 0x00800000, 0xc100000c, 0x10bffc0f, 0x1fe3001e,
833    0x1fff1fe1, 0xffb7fdd7, 0xfffff7f9, 0xb7cfffff, 0xfc00f000, 0xfc000dff,
834    0xffebffff, 0x1bd17672, 0xcf0fa056, 0xfffbeeff, 0xffff330c, 0xfddfff33,
835    0x7fffffdf, 0xffff7fff, 0xf3fbf0ff, 0xfffff9ff, 0xfff0ffff, 0x0000007f,
836    0x000007ff, 0x80000000, 0x0000f000, 0xffe00000, 0xffc30000, 0xcf33fc04,
837    0xfffc363c, 0xffff7fc3, 0x020f3d90, 0xf1ffffff, 0xfffffffa, 0x7fff4844,
838    0x3fffffff, 0x1fffffff, 0x00004000, 0x000000f4, 0xffffc0e0, 0x077fffff,
839    0x000000e2, 0xfff00000, 0xffffff9f, 0xffff003f, 0xfe000007, 0xf0ffffff,
840    0xcfffffff, 0xfc1fffff, 0xffcfffff, 0xff3fffff, 0xfffffdff, 0x7fffffff,
841    0xffff7fff, 0x7fffffff, 0x200c7fff, 0xffff20bf, 0x000080ff, 0x007fffff,
842    0x7f7f7f7f, 0x7f7f7f7f, 0xcc400000, 0x83e48000, 0x00002800, 0xffff0000,
843    0x3fffffff, 0xffff1fff, 0x00000c00, 0xc0087fff, 0x3fffffff, 0x0004ffff,
844    0x03ffffff, 0xff800000, 0xfffff7bb, 0x02ff0f07, 0x000fffff, 0xfffffffc,
845    0x000fffff, 0x6ffc0000, 0xfffffc00, 0xffff003f, 0x8000007f, 0xfffffff0,
846    0x0007ffff, 0xc000bc7e, 0x000001ff, 0x10000ff7, 0x001c07ff, 0x007e7e7e,
847    0xffff7f7f, 0xffff003f, 0x00000007, 0x00f8007f, 0x00000200, 0xffff0000,
848    0xfff80003, 0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x2fff0000,
849    0xffdf0000, 0x1fffffff, 0x00007f00, 0xffffefff, 0xb7ffff7f, 0x3fff3fff,
850    0x07ffffff, 0xffffff80, 0xff8fffff, 0x0fff7fff, 0x00000001, 0xffff0000,
851    0x1fffffff, 0x1fffffff, 0x0001ffff, 0x0ffffffe, 0xffffe00f, 0xffff07ff,
852    0x003fffff, 0x3fffffff, 0x003eff0f, 0x3fffffff, 0xffff0000, 0xff0fffff,
853    0x0fffffff, 0xffff00ff, 0x0000800f, 0x007fffff, 0x003fffff, 0x000000ff,
854    0xfffffd3f, 0x91bfffff, 0xff3fffff, 0x7fffffff, 0x0000ff80, 0xf837ffff,
855    0x0fffffff, 0x83ffffff, 0xf0ffffff, 0xfffcffff, 0xfeef0001, 0x003fffff,
856    0x010001ff, 0x0000f81f, 0x003fffff, 0xff3fffff, 0xff07ffff, 0x1e03ffff,
857    0x0000fe00, 0x000001ff, 0x0007ffff, 0xfc07ffff, 0x0000000f, 0x7fffffff,
858    0xffff00ff, 0x03fe003f, 0xfffffff8, 0x00ffffff, 0xfffc3e00, 0x0000003f,
859    0xfffffff8, 0x3800ffff, 0xffff2000, 0x000001ff, 0xfffffff8, 0x0000007f,
860    0xffff0010, 0x0057ffff, 0xfffffff8, 0x0007ffff, 0x1400209e, 0x001ffffe,
861    0xfffbffff, 0x24000fff, 0xbfffbd7f, 0xffff01ff, 0x7fffffff, 0xfff99fe0,
862    0x23edfdff, 0xe0010000, 0x00000003, 0x001fffff, 0x20008780, 0x0000ffff,
863    0x000000f0, 0x00007fff, 0x0f0001c0, 0x0000ffff, 0x00000018, 0x000007ff,
864    0x08000fff, 0x8007fc00, 0xfffff801, 0x0407ffff, 0xf0010041, 0x200003cf,
865    0x01ffffff, 0xfffffdff, 0x00007fff, 0xfc000001, 0xfffc1fff, 0x0000ffff,
866    0xfffffb7f, 0x0001ffff, 0x00000040, 0xfffffdbf, 0x010003ff, 0x0187ffff,
867    0x03ffffff, 0x00007fff, 0x0000000f, 0xc0ffffff, 0xfffffc3b, 0xf1ffffff,
868    0x00007fff, 0xffff3fff, 0x0000007f, 0x01ffffff, 0x7fffffff, 0xffff0000,
869    0x00003fff, 0xfc00ffff, 0xf800002f, 0xe0fffffb, 0x0000ffff, 0x067fffff,
870    0x0001001f, 0xfff80000, 0x1fff07ff, 0x13ff01ff, 0x003fffff, 0xfffffe7f,
871    0x00001c1f, 0xfffff018, 0xffffc3ff, 0x000001ff, 0x00000023, 0x000fffff,
872    0x007fffff, 0x01ffffff, 0xffdfffff, 0xdfffffff, 0xebffde64, 0xffffffef,
873    0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0x00000fff, 0x07800000,
874    0xffdfe000, 0x0000086f, 0x0000ff9f, 0x0000000f, 0xfffe0000, 0x001eefff,
875    0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
876    0x00030000, 0x0000c000, 0x00000c00, 0x30000000, 0x10600000, 0x00068015,
877    0xff80007f, 0xfffc001f, 0x000003ff, 0x0ff00000, 0x03f00000, 0xffff0000,
878    0xf03fffff, 0x000fffff, 0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff,
879    0x00003fff, 0x00000fff};
880    }
881
882    const static UnicodeSet al_Set{const_cast<UnicodeSet::run_t *>(__al_Set_runs), 371, 0, const_cast<UnicodeSet::bitquad_t *>(__al_Set_quads), 410, 0};
883
884    /** Code Point Ranges for PR
885    [0024, 0024], [002b, 002b], [005c, 005c], [00a3, 00a5], [00b1, 00b1],
886    [058f, 058f], [07fe, 07ff], [09fb, 09fb], [0af1, 0af1], [0bf9, 0bf9],
887    [0e3f, 0e3f], [17db, 17db], [20a0, 20a6], [20a8, 20b5], [20b7, 20ba],
888    [20bc, 20bd], [20bf, 20cf], [2116, 2116], [2212, 2213], [fe69, fe69],
889    [ff04, ff04], [ffe1, ffe1], [ffe5, ffe6]**/
890
891
892    namespace {
893    const static UnicodeSet::run_t __pr_Set_runs[] = {
894    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 38}, {Mixed, 1},
895    {Empty, 18}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 7},
896    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 17}, {Mixed, 1},
897    {Empty, 76}, {Mixed, 1}, {Empty, 70}, {Mixed, 2}, {Empty, 1},
898    {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1762}, {Mixed, 1},
899    {Empty, 4}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 32768}};
900    const static UnicodeSet::bitquad_t  __pr_Set_quads[] = {
901    0x00000810, 0x10000000, 0x00020038, 0x00008000, 0xc0000000, 0x08000000,
902    0x00020000, 0x02000000, 0x80000000, 0x08000000, 0xb7bfff7f, 0x0000ffff,
903    0x00400000, 0x000c0000, 0x00000200, 0x00000010, 0x00000062};
904    }
905
906    const static UnicodeSet pr_Set{const_cast<UnicodeSet::run_t *>(__pr_Set_runs), 31, 0, const_cast<UnicodeSet::bitquad_t *>(__pr_Set_quads), 17, 0};
907
908    /** Code Point Ranges for PO
909    [0025, 0025], [00a2, 00a2], [00b0, 00b0], [0609, 060b], [066a, 066a],
910    [09f2, 09f3], [09f9, 09f9], [0d79, 0d79], [2030, 2037], [20a7, 20a7],
911    [20b6, 20b6], [20bb, 20bb], [20be, 20be], [2103, 2103], [2109, 2109],
912    [a838, a838], [fdfc, fdfc], [fe6a, fe6a], [ff05, ff05], [ffe0, ffe0],
913    [1ecac, 1ecac], [1ecb0, 1ecb0]**/
914
915
916    namespace {
917    const static UnicodeSet::run_t __po_Set_runs[] = {
918    {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 42}, {Mixed, 1},
919    {Empty, 2}, {Mixed, 1}, {Empty, 27}, {Mixed, 1}, {Empty, 27},
920    {Mixed, 1}, {Empty, 149}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
921    {Empty, 2}, {Mixed, 1}, {Empty, 1080}, {Mixed, 1}, {Empty, 685},
922    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 6},
923    {Mixed, 1}, {Empty, 1893}, {Mixed, 1}, {Empty, 30874}};
924    const static UnicodeSet::bitquad_t  __po_Set_quads[] = {
925    0x00000020, 0x00010004, 0x00000e00, 0x00000400, 0x020c0000, 0x02000000,
926    0x00ff0000, 0x48400080, 0x00000208, 0x01000000, 0x10000000, 0x00000400,
927    0x00000020, 0x00000001, 0x00011000};
928    }
929
930    const static UnicodeSet po_Set{const_cast<UnicodeSet::run_t *>(__po_Set_runs), 31, 0, const_cast<UnicodeSet::bitquad_t *>(__po_Set_quads), 15, 0};
931
932    /** Code Point Ranges for OP
933    [0028, 0028], [005b, 005b], [007b, 007b], [00a1, 00a1], [00bf, 00bf],
934    [0f3a, 0f3a], [0f3c, 0f3c], [169b, 169b], [201a, 201a], [201e, 201e],
935    [2045, 2045], [207d, 207d], [208d, 208d], [2308, 2308], [230a, 230a],
936    [2329, 2329], [2768, 2768], [276a, 276a], [276c, 276c], [276e, 276e],
937    [2770, 2770], [2772, 2772], [2774, 2774], [27c5, 27c5], [27e6, 27e6],
938    [27e8, 27e8], [27ea, 27ea], [27ec, 27ec], [27ee, 27ee], [2983, 2983],
939    [2985, 2985], [2987, 2987], [2989, 2989], [298b, 298b], [298d, 298d],
940    [298f, 298f], [2991, 2991], [2993, 2993], [2995, 2995], [2997, 2997],
941    [29d8, 29d8], [29da, 29da], [29fc, 29fc], [2e18, 2e18], [2e22, 2e22],
942    [2e24, 2e24], [2e26, 2e26], [2e28, 2e28], [2e42, 2e42], [3008, 3008],
943    [300a, 300a], [300c, 300c], [300e, 300e], [3010, 3010], [3014, 3014],
944    [3016, 3016], [3018, 3018], [301a, 301a], [301d, 301d], [fd3f, fd3f],
945    [fe17, fe17], [fe35, fe35], [fe37, fe37], [fe39, fe39], [fe3b, fe3b],
946    [fe3d, fe3d], [fe3f, fe3f], [fe41, fe41], [fe43, fe43], [fe47, fe47],
947    [fe59, fe59], [fe5b, fe5b], [fe5d, fe5d], [ff08, ff08], [ff3b, ff3b],
948    [ff5b, ff5b], [ff5f, ff5f], [ff62, ff62], [13258, 1325a],
949    [13286, 13286], [13288, 13288], [13379, 13379], [145ce, 145ce],
950    [1e95e, 1e95f]**/
951
952
953    namespace {
954    const static UnicodeSet::run_t __op_Set_runs[] = {
955    {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 115},
956    {Mixed, 1}, {Empty, 58}, {Mixed, 1}, {Empty, 75}, {Mixed, 1},
957    {Empty, 1}, {Mixed, 3}, {Empty, 19}, {Mixed, 2}, {Empty, 33},
958    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12}, {Mixed, 1}, {Empty, 1},
959    {Mixed, 2}, {Empty, 32}, {Mixed, 3}, {Empty, 13}, {Mixed, 1},
960    {Empty, 1640}, {Mixed, 1}, {Empty, 6}, {Mixed, 3}, {Empty, 5},
961    {Mixed, 4}, {Empty, 406}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
962    {Empty, 6}, {Mixed, 1}, {Empty, 146}, {Mixed, 1}, {Empty, 1307},
963    {Mixed, 1}, {Empty, 30901}};
964    const static UnicodeSet::bitquad_t  __op_Set_quads[] = {
965    0x00000100, 0x08000000, 0x08000000, 0x80000002, 0x14000000, 0x08000000,
966    0x44000000, 0x00000020, 0x20000000, 0x00002000, 0x00000500, 0x00000200,
967    0x00155500, 0x00000020, 0x00005540, 0x00aaaaa8, 0x05000000, 0x10000000,
968    0x01000000, 0x00000154, 0x00000004, 0x25515500, 0x80000000, 0x00800000,
969    0xaaa00000, 0x2a00008a, 0x00000100, 0x08000000, 0x88000000, 0x00000004,
970    0x07000000, 0x00000140, 0x02000000, 0x00004000, 0xc0000000};
971    }
972
973    const static UnicodeSet op_Set{const_cast<UnicodeSet::run_t *>(__op_Set_runs), 43, 0, const_cast<UnicodeSet::bitquad_t *>(__op_Set_quads), 35, 0};
974
975    /** Code Point Ranges for CP
976    [0029, 0029], [005d, 005d]**/
977
978
979    namespace {
980    const static UnicodeSet::run_t __cp_Set_runs[] = {
981    {Empty, 1}, {Mixed, 2}, {Empty, 34813}};
982    const static UnicodeSet::bitquad_t  __cp_Set_quads[] = {
983    0x00000200, 0x20000000};
984    }
985
986    const static UnicodeSet cp_Set{const_cast<UnicodeSet::run_t *>(__cp_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cp_Set_quads), 2, 0};
987
988    /** Code Point Ranges for IS
989    [002c, 002c], [002e, 002e], [003a, 003b], [037e, 037e], [0589, 0589],
990    [060c, 060d], [07f8, 07f8], [2044, 2044], [fe10, fe10], [fe13, fe14]**/
991
992
993    namespace {
994    const static UnicodeSet::run_t __is_Set_runs[] = {
995    {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 1}, {Empty, 16},
996    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 14}, {Mixed, 1},
997    {Empty, 194}, {Mixed, 1}, {Empty, 1773}, {Mixed, 1}, {Empty, 32783}};
998    const static UnicodeSet::bitquad_t  __is_Set_quads[] = {
999    0x0c005000, 0x40000000, 0x00000200, 0x00003000, 0x01000000, 0x00000010,
1000    0x00190000};
1001    }
1002
1003    const static UnicodeSet is_Set{const_cast<UnicodeSet::run_t *>(__is_Set_runs), 15, 0, const_cast<UnicodeSet::bitquad_t *>(__is_Set_quads), 7, 0};
1004
1005    /** Code Point Ranges for HY
1006    [002d, 002d]**/
1007
1008
1009    namespace {
1010    const static UnicodeSet::run_t __hy_Set_runs[] = {
1011    {Empty, 1}, {Mixed, 1}, {Empty, 34814}};
1012    const static UnicodeSet::bitquad_t  __hy_Set_quads[] = {
1013    0x00002000};
1014    }
1015
1016    const static UnicodeSet hy_Set{const_cast<UnicodeSet::run_t *>(__hy_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__hy_Set_quads), 1, 0};
1017
1018    /** Code Point Ranges for SY
1019    [002f, 002f]**/
1020
1021
1022    namespace {
1023    const static UnicodeSet::run_t __sy_Set_runs[] = {
1024    {Empty, 1}, {Mixed, 1}, {Empty, 34814}};
1025    const static UnicodeSet::bitquad_t  __sy_Set_quads[] = {
1026    0x00008000};
1027    }
1028
1029    const static UnicodeSet sy_Set{const_cast<UnicodeSet::run_t *>(__sy_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sy_Set_quads), 1, 0};
1030
1031    /** Code Point Ranges for NU
1032    [0030, 0039], [0660, 0669], [066b, 066c], [06f0, 06f9], [07c0, 07c9],
1033    [0966, 096f], [09e6, 09ef], [0a66, 0a6f], [0ae6, 0aef], [0b66, 0b6f],
1034    [0be6, 0bef], [0c66, 0c6f], [0ce6, 0cef], [0d66, 0d6f], [0de6, 0def],
1035    [0e50, 0e59], [0ed0, 0ed9], [0f20, 0f29], [1040, 1049], [1090, 1099],
1036    [17e0, 17e9], [1810, 1819], [1946, 194f], [19d0, 19d9], [1a80, 1a89],
1037    [1a90, 1a99], [1b50, 1b59], [1bb0, 1bb9], [1c40, 1c49], [1c50, 1c59],
1038    [a620, a629], [a8d0, a8d9], [a900, a909], [a9d0, a9d9], [a9f0, a9f9],
1039    [aa50, aa59], [abf0, abf9], [104a0, 104a9], [10d30, 10d39],
1040    [11066, 1106f], [110f0, 110f9], [11136, 1113f], [111d0, 111d9],
1041    [112f0, 112f9], [11450, 11459], [114d0, 114d9], [11650, 11659],
1042    [116c0, 116c9], [11730, 11739], [118e0, 118e9], [11c50, 11c59],
1043    [11d50, 11d59], [11da0, 11da9], [16a60, 16a69], [16b50, 16b59],
1044    [1d7ce, 1d7ff], [1e950, 1e959]**/
1045
1046
1047    namespace {
1048    const static UnicodeSet::run_t __nu_Set_runs[] = {
1049    {Empty, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1050    {Empty, 6}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1051    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1052    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
1053    {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
1054    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
1055    {Empty, 1}, {Mixed, 1}, {Empty, 58}, {Mixed, 2}, {Empty, 9}, {Mixed, 1},
1056    {Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
1057    {Empty, 2}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 1102},
1058    {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 5},
1059    {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 12}, {Mixed, 1},
1060    {Empty, 709}, {Mixed, 1}, {Empty, 67}, {Mixed, 1}, {Empty, 25},
1061    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 4},
1062    {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 3},
1063    {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
1064    {Mixed, 1}, {Empty, 13}, {Mixed, 1}, {Empty, 26}, {Mixed, 1},
1065    {Empty, 7}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 613},
1066    {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 867}, {Mixed, 1}, {Full, 1},
1067    {Empty, 138}, {Mixed, 1}, {Empty, 30901}};
1068    const static UnicodeSet::bitquad_t  __nu_Set_quads[] = {
1069    0x03ff0000, 0x00001bff, 0x03ff0000, 0x000003ff, 0x0000ffc0, 0x0000ffc0,
1070    0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0, 0x0000ffc0,
1071    0x0000ffc0, 0x0000ffc0, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x000003ff,
1072    0x03ff0000, 0x000003ff, 0x03ff0000, 0x0000ffc0, 0x03ff0000, 0x03ff03ff,
1073    0x03ff0000, 0x03ff0000, 0x03ff03ff, 0x000003ff, 0x03ff0000, 0x000003ff,
1074    0x03ff0000, 0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x03ff0000,
1075    0x0000ffc0, 0x03ff0000, 0xffc00000, 0x03ff0000, 0x03ff0000, 0x03ff0000,
1076    0x03ff0000, 0x03ff0000, 0x000003ff, 0x03ff0000, 0x000003ff, 0x03ff0000,
1077    0x03ff0000, 0x000003ff, 0x000003ff, 0x03ff0000, 0xffffc000, 0x03ff0000};
1078    }
1079
1080    const static UnicodeSet nu_Set{const_cast<UnicodeSet::run_t *>(__nu_Set_runs), 106, 0, const_cast<UnicodeSet::bitquad_t *>(__nu_Set_quads), 54, 0};
1081
1082    /** Code Point Ranges for CL
1083    [007d, 007d], [0f3b, 0f3b], [0f3d, 0f3d], [169c, 169c], [2046, 2046],
1084    [207e, 207e], [208e, 208e], [2309, 2309], [230b, 230b], [232a, 232a],
1085    [2769, 2769], [276b, 276b], [276d, 276d], [276f, 276f], [2771, 2771],
1086    [2773, 2773], [2775, 2775], [27c6, 27c6], [27e7, 27e7], [27e9, 27e9],
1087    [27eb, 27eb], [27ed, 27ed], [27ef, 27ef], [2984, 2984], [2986, 2986],
1088    [2988, 2988], [298a, 298a], [298c, 298c], [298e, 298e], [2990, 2990],
1089    [2992, 2992], [2994, 2994], [2996, 2996], [2998, 2998], [29d9, 29d9],
1090    [29db, 29db], [29fd, 29fd], [2e23, 2e23], [2e25, 2e25], [2e27, 2e27],
1091    [2e29, 2e29], [3001, 3002], [3009, 3009], [300b, 300b], [300d, 300d],
1092    [300f, 300f], [3011, 3011], [3015, 3015], [3017, 3017], [3019, 3019],
1093    [301b, 301b], [301e, 301f], [fd3e, fd3e], [fe11, fe12], [fe18, fe18],
1094    [fe36, fe36], [fe38, fe38], [fe3a, fe3a], [fe3c, fe3c], [fe3e, fe3e],
1095    [fe40, fe40], [fe42, fe42], [fe44, fe44], [fe48, fe48], [fe50, fe50],
1096    [fe52, fe52], [fe5a, fe5a], [fe5c, fe5c], [fe5e, fe5e], [ff09, ff09],
1097    [ff0c, ff0c], [ff0e, ff0e], [ff3d, ff3d], [ff5d, ff5d], [ff60, ff61],
1098    [ff63, ff64], [1325b, 1325d], [13282, 13282], [13287, 13287],
1099    [13289, 13289], [1337a, 1337b], [145cf, 145cf]**/
1100
1101
1102    namespace {
1103    const static UnicodeSet::run_t __cl_Set_runs[] = {
1104    {Empty, 3}, {Mixed, 1}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
1105    {Mixed, 1}, {Empty, 77}, {Mixed, 3}, {Empty, 19}, {Mixed, 2},
1106    {Empty, 33}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 12},
1107    {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 33}, {Mixed, 1},
1108    {Empty, 14}, {Mixed, 1}, {Empty, 1640}, {Mixed, 1}, {Empty, 6},
1109    {Mixed, 3}, {Empty, 5}, {Mixed, 4}, {Empty, 406}, {Mixed, 1},
1110    {Empty, 1}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 146},
1111    {Mixed, 1}, {Empty, 32209}};
1112    const static UnicodeSet::bitquad_t  __cl_Set_quads[] = {
1113    0x20000000, 0x28000000, 0x10000000, 0x00000040, 0x40000000, 0x00004000,
1114    0x00000a00, 0x00000400, 0x002aaa00, 0x00000040, 0x0000aa80, 0x01555550,
1115    0x0a000000, 0x20000000, 0x000002a8, 0xcaa2aa06, 0x40000000, 0x01060000,
1116    0x55400000, 0x54050115, 0x00005200, 0x20000000, 0x20000000, 0x0000001b,
1117    0x38000000, 0x00000284, 0x0c000000, 0x00008000};
1118    }
1119
1120    const static UnicodeSet cl_Set{const_cast<UnicodeSet::run_t *>(__cl_Set_runs), 37, 0, const_cast<UnicodeSet::bitquad_t *>(__cl_Set_quads), 28, 0};
1121
1122    /** Code Point Ranges for NL
1123    [0085, 0085]**/
1124
1125
1126    namespace {
1127    const static UnicodeSet::run_t __nl_Set_runs[] = {
1128    {Empty, 4}, {Mixed, 1}, {Empty, 34811}};
1129    const static UnicodeSet::bitquad_t  __nl_Set_quads[] = {
1130    0x00000020};
1131    }
1132
1133    const static UnicodeSet nl_Set{const_cast<UnicodeSet::run_t *>(__nl_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__nl_Set_quads), 1, 0};
1134
1135    /** Code Point Ranges for GL
1136    [00a0, 00a0], [034f, 034f], [035c, 0362], [0f08, 0f08], [0f0c, 0f0c],
1137    [0f12, 0f12], [0fd9, 0fda], [180e, 180e], [2007, 2007], [2011, 2011],
1138    [202f, 202f]**/
1139
1140
1141    namespace {
1142    const static UnicodeSet::run_t __gl_Set_runs[] = {
1143    {Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 2}, {Empty, 92},
1144    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 65}, {Mixed, 1},
1145    {Empty, 63}, {Mixed, 2}, {Empty, 34558}};
1146    const static UnicodeSet::bitquad_t  __gl_Set_quads[] = {
1147    0x00000001, 0xf0008000, 0x00000007, 0x00041100, 0x06000000, 0x00004000,
1148    0x00020080, 0x00008000};
1149    }
1150
1151    const static UnicodeSet gl_Set{const_cast<UnicodeSet::run_t *>(__gl_Set_runs), 13, 0, const_cast<UnicodeSet::bitquad_t *>(__gl_Set_quads), 8, 0};
1152
1153    /** Code Point Ranges for AI
1154    [00a7, 00a8], [00aa, 00aa], [00b2, 00b3], [00b6, 00ba], [00bc, 00be],
1155    [00d7, 00d7], [00f7, 00f7], [02c7, 02c7], [02c9, 02cb], [02cd, 02cd],
1156    [02d0, 02d0], [02d8, 02db], [02dd, 02dd], [2015, 2016], [2020, 2021],
1157    [203b, 203b], [2074, 2074], [207f, 207f], [2081, 2084], [2105, 2105],
1158    [2113, 2113], [2121, 2122], [212b, 212b], [2154, 2155], [215b, 215b],
1159    [215e, 215e], [2160, 216b], [2170, 2179], [2189, 2189], [2190, 2199],
1160    [21d2, 21d2], [21d4, 21d4], [2200, 2200], [2202, 2203], [2207, 2208],
1161    [220b, 220b], [220f, 220f], [2211, 2211], [2215, 2215], [221a, 221a],
1162    [221d, 2220], [2223, 2223], [2225, 2225], [2227, 222c], [222e, 222e],
1163    [2234, 2237], [223c, 223d], [2248, 2248], [224c, 224c], [2252, 2252],
1164    [2260, 2261], [2264, 2267], [226a, 226b], [226e, 226f], [2282, 2283],
1165    [2286, 2287], [2295, 2295], [2299, 2299], [22a5, 22a5], [22bf, 22bf],
1166    [2312, 2312], [2460, 24fe], [2500, 254b], [2550, 2574], [2580, 258f],
1167    [2592, 2595], [25a0, 25a1], [25a3, 25a9], [25b2, 25b3], [25b6, 25b7],
1168    [25bc, 25bd], [25c0, 25c1], [25c6, 25c8], [25cb, 25cb], [25ce, 25d1],
1169    [25e2, 25e5], [25ef, 25ef], [2605, 2606], [2609, 2609], [260e, 260f],
1170    [2616, 2617], [2640, 2640], [2642, 2642], [2660, 2661], [2663, 2665],
1171    [2667, 2667], [2669, 266a], [266c, 266d], [266f, 266f], [269e, 269f],
1172    [26c9, 26cc], [26d2, 26d2], [26d5, 26d7], [26da, 26db], [26dd, 26de],
1173    [26e3, 26e3], [26e8, 26e9], [26eb, 26f0], [26f6, 26f6], [26fb, 26fc],
1174    [2757, 2757], [2776, 2793], [2b55, 2b59], [3248, 324f], [fffd, fffd],
1175    [1f100, 1f10c], [1f110, 1f12d], [1f130, 1f169], [1f170, 1f1ac]**/
1176
1177
1178    namespace {
1179    const static UnicodeSet::run_t __ai_Set_runs[] = {
1180    {Empty, 5}, {Mixed, 3}, {Empty, 14}, {Mixed, 1}, {Empty, 233},
1181    {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 3}, {Mixed, 5}, {Empty, 1},
1182    {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 2}, {Mixed, 1}, {Empty, 10},
1183    {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 3},
1184    {Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 3}, {Empty, 29}, {Mixed, 1},
1185    {Empty, 55}, {Mixed, 1}, {Empty, 1644}, {Mixed, 1}, {Empty, 1928},
1186    {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1187    {Empty, 30834}};
1188    const static UnicodeSet::bitquad_t  __ai_Set_quads[] = {
1189    0x77cc0580, 0x00800000, 0x00800000, 0x2f012e80, 0x00600000, 0x08000003,
1190    0x80100000, 0x0000001e, 0x00080020, 0x00000806, 0x48300000, 0x03ff0fff,
1191    0x03ff0200, 0x00140000, 0xe422898d, 0x30f05fa9, 0x00041100, 0x0000ccf3,
1192    0x022000cc, 0x80000020, 0x00040000, 0x7fffffff, 0xffff0fff, 0x001fffff,
1193    0x003cffff, 0x30cc03fb, 0x0003c9c3, 0x0000803c, 0x00c0c260, 0x00000005,
1194    0x0000b6bb, 0xc0000000, 0x6ce41e00, 0x1841fb08, 0x00800000, 0xffc00000,
1195    0x000fffff, 0x03e00000, 0x0000ff00, 0x20000000, 0xffff1fff, 0xffff3fff,
1196    0xffff03ff, 0x00001fff};
1197    }
1198
1199    const static UnicodeSet ai_Set{const_cast<UnicodeSet::run_t *>(__ai_Set_runs), 40, 0, const_cast<UnicodeSet::bitquad_t *>(__ai_Set_quads), 44, 0};
1200
1201    /** Code Point Ranges for BB
1202    [00b4, 00b4], [02c8, 02c8], [02cc, 02cc], [02df, 02df], [0c84, 0c84],
1203    [0f01, 0f04], [0f06, 0f07], [0f09, 0f0a], [0fd0, 0fd1], [0fd3, 0fd3],
1204    [1806, 1806], [1ffd, 1ffd], [a874, a875], [a8fc, a8fc], [11175, 11175],
1205    [111db, 111db], [115c1, 115c1], [11660, 1166c], [11a3f, 11a3f],
1206    [11a45, 11a45], [11a9e, 11aa0], [11c70, 11c70]**/
1207
1208
1209    namespace {
1210    const static UnicodeSet::run_t __bb_Set_runs[] = {
1211    {Empty, 5}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 77},
1212    {Mixed, 1}, {Empty, 19}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
1213    {Empty, 65}, {Mixed, 1}, {Empty, 62}, {Mixed, 1}, {Empty, 1091},
1214    {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 835}, {Mixed, 1},
1215    {Empty, 2}, {Mixed, 1}, {Empty, 31}, {Mixed, 1}, {Empty, 4}, {Mixed, 1},
1216    {Empty, 29}, {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 13},
1217    {Mixed, 1}, {Empty, 32540}};
1218    const static UnicodeSet::bitquad_t  __bb_Set_quads[] = {
1219    0x00100000, 0x80001100, 0x00000010, 0x000006de, 0x000b0000, 0x00000040,
1220    0x20000000, 0x00300000, 0x10000000, 0x00200000, 0x08000000, 0x00000002,
1221    0x00001fff, 0x80000000, 0x00000020, 0xc0000000, 0x00000001, 0x00010000};
1222    }
1223
1224    const static UnicodeSet bb_Set{const_cast<UnicodeSet::run_t *>(__bb_Set_runs), 33, 0, const_cast<UnicodeSet::bitquad_t *>(__bb_Set_quads), 18, 0};
1225
1226    /** Code Point Ranges for HL
1227    [05d0, 05ea], [05ef, 05f2], [fb1d, fb1d], [fb1f, fb28], [fb2a, fb36],
1228    [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4f]**/
1229
1230
1231    namespace {
1232    const static UnicodeSet::run_t __hl_Set_runs[] = {
1233    {Empty, 46}, {Mixed, 2}, {Empty, 1960}, {Mixed, 3}, {Empty, 32805}};
1234    const static UnicodeSet::bitquad_t  __hl_Set_quads[] = {
1235    0xffff0000, 0x000787ff, 0xa0000000, 0x5f7ffdff, 0x0000ffdb};
1236    }
1237
1238    const static UnicodeSet hl_Set{const_cast<UnicodeSet::run_t *>(__hl_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__hl_Set_quads), 5, 0};
1239
1240    /** Code Point Ranges for SA
1241    [0e01, 0e3a], [0e40, 0e4e], [0e81, 0e82], [0e84, 0e84], [0e87, 0e88],
1242    [0e8a, 0e8a], [0e8d, 0e8d], [0e94, 0e97], [0e99, 0e9f], [0ea1, 0ea3],
1243    [0ea5, 0ea5], [0ea7, 0ea7], [0eaa, 0eab], [0ead, 0eb9], [0ebb, 0ebd],
1244    [0ec0, 0ec4], [0ec6, 0ec6], [0ec8, 0ecd], [0edc, 0edf], [1000, 103f],
1245    [1050, 108f], [109a, 109f], [1780, 17d3], [17d7, 17d7], [17dc, 17dd],
1246    [1950, 196d], [1970, 1974], [1980, 19ab], [19b0, 19c9], [19da, 19da],
1247    [19de, 19df], [1a20, 1a5e], [1a60, 1a7c], [1aa0, 1aad], [a9e0, a9ef],
1248    [a9fa, a9fe], [aa60, aac2], [aadb, aadf], [11700, 1171a],
1249    [1171d, 1172b], [1173a, 1173b], [1173f, 1173f]**/
1250
1251
1252    namespace {
1253    const static UnicodeSet::run_t __sa_Set_runs[] = {
1254    {Empty, 112}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 9}, {Full, 2},
1255    {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 55}, {Full, 2}, {Mixed, 1},
1256    {Empty, 11}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Empty, 2}, {Full, 1},
1257    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1145}, {Mixed, 1},
1258    {Empty, 3}, {Full, 3}, {Mixed, 1}, {Empty, 865}, {Mixed, 2},
1259    {Empty, 32582}};
1260    const static UnicodeSet::bitquad_t  __sa_Set_quads[] = {
1261    0xfffffffe, 0x07ffffff, 0x00007fff, 0xfef02596, 0x3bffecae, 0xf0003f5f,
1262    0xffff0000, 0xfc00ffff, 0x308fffff, 0xffff0000, 0x001f3fff, 0xffff0fff,
1263    0xc40003ff, 0x7fffffff, 0x1fffffff, 0x00003fff, 0x7c00ffff, 0xf8000007,
1264    0xe7ffffff, 0x8c000fff};
1265    }
1266
1267    const static UnicodeSet sa_Set{const_cast<UnicodeSet::run_t *>(__sa_Set_runs), 29, 0, const_cast<UnicodeSet::bitquad_t *>(__sa_Set_quads), 20, 0};
1268
1269    /** Code Point Ranges for JL
1270    [1100, 115f], [a960, a97c]**/
1271
1272
1273    namespace {
1274    const static UnicodeSet::run_t __jl_Set_runs[] = {
1275    {Empty, 136}, {Full, 3}, {Empty, 1216}, {Mixed, 1}, {Empty, 33460}};
1276    const static UnicodeSet::bitquad_t  __jl_Set_quads[] = {
1277    0x1fffffff};
1278    }
1279
1280    const static UnicodeSet jl_Set{const_cast<UnicodeSet::run_t *>(__jl_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__jl_Set_quads), 1, 0};
1281
1282    /** Code Point Ranges for JV
1283    [1160, 11a7], [d7b0, d7c6]**/
1284
1285
1286    namespace {
1287    const static UnicodeSet::run_t __jv_Set_runs[] = {
1288    {Empty, 139}, {Full, 2}, {Mixed, 1}, {Empty, 1583}, {Mixed, 2},
1289    {Empty, 33089}};
1290    const static UnicodeSet::bitquad_t  __jv_Set_quads[] = {
1291    0x000000ff, 0xffff0000, 0x0000007f};
1292    }
1293
1294    const static UnicodeSet jv_Set{const_cast<UnicodeSet::run_t *>(__jv_Set_runs), 6, 0, const_cast<UnicodeSet::bitquad_t *>(__jv_Set_quads), 3, 0};
1295
1296    /** Code Point Ranges for JT
1297    [11a8, 11ff], [d7cb, d7fb]**/
1298
1299
1300    namespace {
1301    const static UnicodeSet::run_t __jt_Set_runs[] = {
1302    {Empty, 141}, {Mixed, 1}, {Full, 2}, {Empty, 1582}, {Mixed, 2},
1303    {Empty, 33088}};
1304    const static UnicodeSet::bitquad_t  __jt_Set_quads[] = {
1305    0xffffff00, 0xfffff800, 0x0fffffff};
1306    }
1307
1308    const static UnicodeSet jt_Set{const_cast<UnicodeSet::run_t *>(__jt_Set_runs), 6, 0, const_cast<UnicodeSet::bitquad_t *>(__jt_Set_quads), 3, 0};
1309
1310    /** Code Point Ranges for NS
1311    [17d6, 17d6], [203c, 203d], [2047, 2049], [3005, 3005], [301c, 301c],
1312    [303b, 303c], [309b, 309e], [30a0, 30a0], [30fb, 30fb], [30fd, 30fe],
1313    [a015, a015], [fe54, fe55], [ff1a, ff1b], [ff65, ff65], [ff9e, ff9f],
1314    [16fe0, 16fe1], [1f679, 1f67b]**/
1315
1316
1317    namespace {
1318    const static UnicodeSet::run_t __ns_Set_runs[] = {
1319    {Empty, 190}, {Mixed, 1}, {Empty, 66}, {Mixed, 2}, {Empty, 125},
1320    {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1},
1321    {Empty, 888}, {Mixed, 1}, {Empty, 753}, {Mixed, 1}, {Empty, 5},
1322    {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 898}, {Mixed, 1},
1323    {Empty, 1075}, {Mixed, 1}, {Empty, 30796}};
1324    const static UnicodeSet::bitquad_t  __ns_Set_quads[] = {
1325    0x00400000, 0x30000000, 0x00000380, 0x10000020, 0x18000000, 0x78000000,
1326    0x00000001, 0x68000000, 0x00200000, 0x00300000, 0x0c000000, 0x00000020,
1327    0xc0000000, 0x00000003, 0x0e000000};
1328    }
1329
1330    const static UnicodeSet ns_Set{const_cast<UnicodeSet::run_t *>(__ns_Set_runs), 23, 0, const_cast<UnicodeSet::bitquad_t *>(__ns_Set_quads), 15, 0};
1331
1332    /** Code Point Ranges for ZW
1333    [200b, 200b]**/
1334
1335
1336    namespace {
1337    const static UnicodeSet::run_t __zw_Set_runs[] = {
1338    {Empty, 256}, {Mixed, 1}, {Empty, 34559}};
1339    const static UnicodeSet::bitquad_t  __zw_Set_quads[] = {
1340    0x00000800};
1341    }
1342
1343    const static UnicodeSet zw_Set{const_cast<UnicodeSet::run_t *>(__zw_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__zw_Set_quads), 1, 0};
1344
1345    /** Code Point Ranges for ZWJ
1346    [200d, 200d]**/
1347
1348
1349    namespace {
1350    const static UnicodeSet::run_t __zwj_Set_runs[] = {
1351    {Empty, 256}, {Mixed, 1}, {Empty, 34559}};
1352    const static UnicodeSet::bitquad_t  __zwj_Set_quads[] = {
1353    0x00002000};
1354    }
1355
1356    const static UnicodeSet zwj_Set{const_cast<UnicodeSet::run_t *>(__zwj_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__zwj_Set_quads), 1, 0};
1357
1358    /** Code Point Ranges for B2
1359    [2014, 2014], [2e3a, 2e3b]**/
1360
1361
1362    namespace {
1363    const static UnicodeSet::run_t __b2_Set_runs[] = {
1364    {Empty, 256}, {Mixed, 1}, {Empty, 112}, {Mixed, 1}, {Empty, 34446}};
1365    const static UnicodeSet::bitquad_t  __b2_Set_quads[] = {
1366    0x00100000, 0x0c000000};
1367    }
1368
1369    const static UnicodeSet b2_Set{const_cast<UnicodeSet::run_t *>(__b2_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__b2_Set_quads), 2, 0};
1370
1371    /** Code Point Ranges for IN
1372    [2024, 2026], [22ef, 22ef], [fe19, fe19], [10af6, 10af6]**/
1373
1374
1375    namespace {
1376    const static UnicodeSet::run_t __in_Set_runs[] = {
1377    {Empty, 257}, {Mixed, 1}, {Empty, 21}, {Mixed, 1}, {Empty, 1752},
1378    {Mixed, 1}, {Empty, 102}, {Mixed, 1}, {Empty, 32680}};
1379    const static UnicodeSet::bitquad_t  __in_Set_quads[] = {
1380    0x00000070, 0x00008000, 0x02000000, 0x00400000};
1381    }
1382
1383    const static UnicodeSet in_Set{const_cast<UnicodeSet::run_t *>(__in_Set_runs), 9, 0, const_cast<UnicodeSet::bitquad_t *>(__in_Set_quads), 4, 0};
1384
1385    /** Code Point Ranges for WJ
1386    [2060, 2060], [feff, feff]**/
1387
1388
1389    namespace {
1390    const static UnicodeSet::run_t __wj_Set_runs[] = {
1391    {Empty, 259}, {Mixed, 1}, {Empty, 1779}, {Mixed, 1}, {Empty, 32776}};
1392    const static UnicodeSet::bitquad_t  __wj_Set_quads[] = {
1393    0x00000001, 0x80000000};
1394    }
1395
1396    const static UnicodeSet wj_Set{const_cast<UnicodeSet::run_t *>(__wj_Set_runs), 5, 0, const_cast<UnicodeSet::bitquad_t *>(__wj_Set_quads), 2, 0};
1397
1398    /** Code Point Ranges for ID
1399    [231a, 231b], [23f0, 23f3], [2600, 2603], [2614, 2615], [2618, 2618],
1400    [261a, 261c], [261e, 261f], [2639, 263b], [2668, 2668], [267f, 267f],
1401    [26bd, 26c8], [26cd, 26cd], [26cf, 26d1], [26d3, 26d4], [26d8, 26d9],
1402    [26dc, 26dc], [26df, 26e1], [26ea, 26ea], [26f1, 26f5], [26f7, 26f8],
1403    [26fa, 26fa], [26fd, 2704], [2708, 2709], [2764, 2764], [2e80, 2e99],
1404    [2e9b, 2ef3], [2f00, 2fd5], [2ff0, 2ffb], [3003, 3004], [3006, 3007],
1405    [3012, 3013], [3020, 3029], [3030, 3034], [3036, 303a], [303d, 303f],
1406    [3042, 3042], [3044, 3044], [3046, 3046], [3048, 3048], [304a, 3062],
1407    [3064, 3082], [3084, 3084], [3086, 3086], [3088, 308d], [308f, 3094],
1408    [309f, 309f], [30a2, 30a2], [30a4, 30a4], [30a6, 30a6], [30a8, 30a8],
1409    [30aa, 30c2], [30c4, 30e2], [30e4, 30e4], [30e6, 30e6], [30e8, 30ed],
1410    [30ef, 30f4], [30f7, 30fa], [30ff, 30ff], [3105, 312f], [3131, 318e],
1411    [3190, 31ba], [31c0, 31e3], [3200, 321e], [3220, 3247], [3250, 32fe],
1412    [3300, 4dbf], [4e00, a014], [a016, a48c], [a490, a4c6], [f900, faff],
1413    [fe30, fe34], [fe45, fe46], [fe49, fe4f], [fe51, fe51], [fe58, fe58],
1414    [fe5f, fe66], [fe68, fe68], [fe6b, fe6b], [ff02, ff03], [ff06, ff07],
1415    [ff0a, ff0b], [ff0d, ff0d], [ff0f, ff19], [ff1c, ff1e], [ff20, ff3a],
1416    [ff3c, ff3c], [ff3e, ff5a], [ff5c, ff5c], [ff5e, ff5e], [ff66, ff66],
1417    [ff71, ff9d], [ffa0, ffbe], [ffc2, ffc7], [ffca, ffcf], [ffd2, ffd7],
1418    [ffda, ffdc], [ffe2, ffe4], [17000, 187f1], [18800, 18af2],
1419    [1b000, 1b11e], [1b170, 1b2fb], [1f000, 1f0ff], [1f10d, 1f10f],
1420    [1f16c, 1f16f], [1f1ad, 1f1e5], [1f200, 1f384], [1f386, 1f39b],
1421    [1f39e, 1f3b4], [1f3b7, 1f3bb], [1f3bd, 1f3c1], [1f3c5, 1f3c6],
1422    [1f3c8, 1f3c9], [1f3cd, 1f3fa], [1f400, 1f441], [1f444, 1f445],
1423    [1f451, 1f465], [1f46a, 1f46d], [1f46f, 1f46f], [1f479, 1f47b],
1424    [1f47d, 1f480], [1f484, 1f484], [1f488, 1f49f], [1f4a1, 1f4a1],
1425    [1f4a3, 1f4a3], [1f4a5, 1f4a9], [1f4ab, 1f4ae], [1f4b0, 1f4b0],
1426    [1f4b3, 1f4ff], [1f507, 1f516], [1f525, 1f531], [1f54a, 1f573],
1427    [1f576, 1f579], [1f57b, 1f58f], [1f591, 1f594], [1f597, 1f5d3],
1428    [1f5dc, 1f5f3], [1f5fa, 1f644], [1f648, 1f64a], [1f680, 1f6a2],
1429    [1f6a4, 1f6b3], [1f6b7, 1f6bf], [1f6c1, 1f6cb], [1f6cd, 1f6ff],
1430    [1f774, 1f77f], [1f7d5, 1f7ff], [1f80c, 1f80f], [1f848, 1f84f],
1431    [1f85a, 1f85f], [1f888, 1f88f], [1f8ae, 1f8ff], [1f90c, 1f917],
1432    [1f91d, 1f91d], [1f920, 1f925], [1f927, 1f92f], [1f93a, 1f93c],
1433    [1f93f, 1f9b4], [1f9b7, 1f9b7], [1f9ba, 1f9d0], [1f9de, 1fffd],
1434    [20000, 2fffd], [30000, 3fffd]**/
1435
1436
1437    namespace {
1438    const static UnicodeSet::run_t __id_Set_runs[] = {
1439    {Empty, 280}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 16},
1440    {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Empty, 2},
1441    {Mixed, 1}, {Empty, 56}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6},
1442    {Mixed, 12}, {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
1443    {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 214}, {Empty, 2}, {Full, 656},
1444    {Mixed, 1}, {Full, 35}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 673},
1445    {Full, 16}, {Empty, 25}, {Mixed, 3}, {Empty, 4}, {Mixed, 8},
1446    {Empty, 896}, {Full, 191}, {Mixed, 1}, {Full, 23}, {Mixed, 1},
1447    {Empty, 296}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 11},
1448    {Mixed, 1}, {Empty, 488}, {Full, 8}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
1449    {Empty, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Full, 12}, {Mixed, 4},
1450    {Full, 2}, {Mixed, 4}, {Full, 2}, {Mixed, 5}, {Full, 1}, {Mixed, 2},
1451    {Full, 2}, {Mixed, 1}, {Empty, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
1452    {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
1453    {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 2},
1454    {Full, 3}, {Mixed, 2}, {Full, 48}, {Mixed, 1}, {Full, 2047}, {Mixed, 1},
1455    {Full, 2047}, {Mixed, 1}, {Empty, 26624}};
1456    const static UnicodeSet::bitquad_t  __id_Set_quads[] = {
1457    0x0c000000, 0x000f0000, 0xdd30000f, 0x0e000000, 0x80000100, 0xe0000000,
1458    0x931ba1ff, 0xe5be0403, 0x0000031f, 0x00000010, 0xfbffffff, 0x000fffff,
1459    0x003fffff, 0x0fff0000, 0x000c00d8, 0xe7df03ff, 0xfffffd54, 0xfffffff7,
1460    0x801fbf57, 0xfffffd54, 0xfffffff7, 0x879fbf57, 0xffffffe0, 0xfffeffff,
1461    0xffff7fff, 0x07ffffff, 0x0000000f, 0x7fffffff, 0xffff00ff, 0x7fffffff,
1462    0xffdfffff, 0xffff1fff, 0x0000007f, 0x001f0000, 0x8102fe60, 0x0000097f,
1463    0x73ffaccc, 0xd7ffffff, 0x57ffffff, 0xfffe0040, 0x3fffffff, 0x7fffffff,
1464    0x1cfcfcfc, 0x0000001c, 0x0003ffff, 0x0007ffff, 0x7fffffff, 0xffff0000,
1465    0x0fffffff, 0x0000e000, 0x0000f000, 0xffffe000, 0x0000003f, 0xcfffffdf,
1466    0xef9fffff, 0xffffe363, 0x07ffffff, 0xfffe0033, 0xee00bc3f, 0xffffff11,
1467    0xfff97bea, 0x007fff80, 0x0003ffe0, 0xfffffc00, 0xfbcfffff, 0xff9effff,
1468    0xf00fffff, 0xfc0fffff, 0x0000071f, 0xff8ffff7, 0xffffeffe, 0xfff00000,
1469    0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000, 0x20fff000,
1470    0x9c00ffbf, 0xfc9fffff, 0xc001ffff, 0x3fffffff, 0x3fffffff, 0x3fffffff};
1471    }
1472
1473    const static UnicodeSet id_Set{const_cast<UnicodeSet::run_t *>(__id_Set_runs), 96, 0, const_cast<UnicodeSet::bitquad_t *>(__id_Set_quads), 84, 0};
1474
1475    /** Code Point Ranges for EB
1476    [261d, 261d], [26f9, 26f9], [270a, 270d], [1f385, 1f385],
1477    [1f3c2, 1f3c4], [1f3c7, 1f3c7], [1f3ca, 1f3cc], [1f442, 1f443],
1478    [1f446, 1f450], [1f466, 1f469], [1f46e, 1f46e], [1f470, 1f478],
1479    [1f47c, 1f47c], [1f481, 1f483], [1f485, 1f487], [1f4aa, 1f4aa],
1480    [1f574, 1f575], [1f57a, 1f57a], [1f590, 1f590], [1f595, 1f596],
1481    [1f645, 1f647], [1f64b, 1f64f], [1f6a3, 1f6a3], [1f6b4, 1f6b6],
1482    [1f6c0, 1f6c0], [1f6cc, 1f6cc], [1f918, 1f91c], [1f91e, 1f91f],
1483    [1f926, 1f926], [1f930, 1f939], [1f93d, 1f93e], [1f9b5, 1f9b6],
1484    [1f9b8, 1f9b9], [1f9d1, 1f9dd]**/
1485
1486
1487    namespace {
1488    const static UnicodeSet::run_t __eb_Set_runs[] = {
1489    {Empty, 304}, {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 3683},
1490    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 4}, {Empty, 5},
1491    {Mixed, 2}, {Empty, 5}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 17},
1492    {Mixed, 2}, {Empty, 3}, {Mixed, 2}, {Empty, 30769}};
1493    const static UnicodeSet::bitquad_t  __eb_Set_quads[] = {
1494    0x20000000, 0x02000000, 0x00003c00, 0x00000020, 0x00001c9c, 0x0001ffcc,
1495    0x11ff43c0, 0x000000ee, 0x00000400, 0x04300000, 0x00610000, 0x0000f8e0,
1496    0x00700008, 0x00001001, 0xdf000000, 0x63ff0040, 0x03600000, 0x3ffe0000};
1497    }
1498
1499    const static UnicodeSet eb_Set{const_cast<UnicodeSet::run_t *>(__eb_Set_runs), 21, 0, const_cast<UnicodeSet::bitquad_t *>(__eb_Set_quads), 18, 0};
1500
1501    /** Code Point Ranges for CJ
1502    [3041, 3041], [3043, 3043], [3045, 3045], [3047, 3047], [3049, 3049],
1503    [3063, 3063], [3083, 3083], [3085, 3085], [3087, 3087], [308e, 308e],
1504    [3095, 3096], [30a1, 30a1], [30a3, 30a3], [30a5, 30a5], [30a7, 30a7],
1505    [30a9, 30a9], [30c3, 30c3], [30e3, 30e3], [30e5, 30e5], [30e7, 30e7],
1506    [30ee, 30ee], [30f5, 30f6], [30fc, 30fc], [31f0, 31ff], [ff67, ff70]**/
1507
1508
1509    namespace {
1510    const static UnicodeSet::run_t __cj_Set_runs[] = {
1511    {Empty, 386}, {Mixed, 6}, {Empty, 7}, {Mixed, 1}, {Empty, 1643},
1512    {Mixed, 1}, {Empty, 32772}};
1513    const static UnicodeSet::bitquad_t  __cj_Set_quads[] = {
1514    0x000002aa, 0x00000008, 0x006040a8, 0x000002aa, 0x00000008, 0x106040a8,
1515    0xffff0000, 0x0001ff80};
1516    }
1517
1518    const static UnicodeSet cj_Set{const_cast<UnicodeSet::run_t *>(__cj_Set_runs), 7, 0, const_cast<UnicodeSet::bitquad_t *>(__cj_Set_quads), 8, 0};
1519
1520    /** Code Point Ranges for H2
1521    [ac00, ac00], [ac1c, ac1c], [ac38, ac38], [ac54, ac54], [ac70, ac70],
1522    [ac8c, ac8c], [aca8, aca8], [acc4, acc4], [ace0, ace0], [acfc, acfc],
1523    [ad18, ad18], [ad34, ad34], [ad50, ad50], [ad6c, ad6c], [ad88, ad88],
1524    [ada4, ada4], [adc0, adc0], [addc, addc], [adf8, adf8], [ae14, ae14],
1525    [ae30, ae30], [ae4c, ae4c], [ae68, ae68], [ae84, ae84], [aea0, aea0],
1526    [aebc, aebc], [aed8, aed8], [aef4, aef4], [af10, af10], [af2c, af2c],
1527    [af48, af48], [af64, af64], [af80, af80], [af9c, af9c], [afb8, afb8],
1528    [afd4, afd4], [aff0, aff0], [b00c, b00c], [b028, b028], [b044, b044],
1529    [b060, b060], [b07c, b07c], [b098, b098], [b0b4, b0b4], [b0d0, b0d0],
1530    [b0ec, b0ec], [b108, b108], [b124, b124], [b140, b140], [b15c, b15c],
1531    [b178, b178], [b194, b194], [b1b0, b1b0], [b1cc, b1cc], [b1e8, b1e8],
1532    [b204, b204], [b220, b220], [b23c, b23c], [b258, b258], [b274, b274],
1533    [b290, b290], [b2ac, b2ac], [b2c8, b2c8], [b2e4, b2e4], [b300, b300],
1534    [b31c, b31c], [b338, b338], [b354, b354], [b370, b370], [b38c, b38c],
1535    [b3a8, b3a8], [b3c4, b3c4], [b3e0, b3e0], [b3fc, b3fc], [b418, b418],
1536    [b434, b434], [b450, b450], [b46c, b46c], [b488, b488], [b4a4, b4a4],
1537    [b4c0, b4c0], [b4dc, b4dc], [b4f8, b4f8], [b514, b514], [b530, b530],
1538    [b54c, b54c], [b568, b568], [b584, b584], [b5a0, b5a0], [b5bc, b5bc],
1539    [b5d8, b5d8], [b5f4, b5f4], [b610, b610], [b62c, b62c], [b648, b648],
1540    [b664, b664], [b680, b680], [b69c, b69c], [b6b8, b6b8], [b6d4, b6d4],
1541    [b6f0, b6f0], [b70c, b70c], [b728, b728], [b744, b744], [b760, b760],
1542    [b77c, b77c], [b798, b798], [b7b4, b7b4], [b7d0, b7d0], [b7ec, b7ec],
1543    [b808, b808], [b824, b824], [b840, b840], [b85c, b85c], [b878, b878],
1544    [b894, b894], [b8b0, b8b0], [b8cc, b8cc], [b8e8, b8e8], [b904, b904],
1545    [b920, b920], [b93c, b93c], [b958, b958], [b974, b974], [b990, b990],
1546    [b9ac, b9ac], [b9c8, b9c8], [b9e4, b9e4], [ba00, ba00], [ba1c, ba1c],
1547    [ba38, ba38], [ba54, ba54], [ba70, ba70], [ba8c, ba8c], [baa8, baa8],
1548    [bac4, bac4], [bae0, bae0], [bafc, bafc], [bb18, bb18], [bb34, bb34],
1549    [bb50, bb50], [bb6c, bb6c], [bb88, bb88], [bba4, bba4], [bbc0, bbc0],
1550    [bbdc, bbdc], [bbf8, bbf8], [bc14, bc14], [bc30, bc30], [bc4c, bc4c],
1551    [bc68, bc68], [bc84, bc84], [bca0, bca0], [bcbc, bcbc], [bcd8, bcd8],
1552    [bcf4, bcf4], [bd10, bd10], [bd2c, bd2c], [bd48, bd48], [bd64, bd64],
1553    [bd80, bd80], [bd9c, bd9c], [bdb8, bdb8], [bdd4, bdd4], [bdf0, bdf0],
1554    [be0c, be0c], [be28, be28], [be44, be44], [be60, be60], [be7c, be7c],
1555    [be98, be98], [beb4, beb4], [bed0, bed0], [beec, beec], [bf08, bf08],
1556    [bf24, bf24], [bf40, bf40], [bf5c, bf5c], [bf78, bf78], [bf94, bf94],
1557    [bfb0, bfb0], [bfcc, bfcc], [bfe8, bfe8], [c004, c004], [c020, c020],
1558    [c03c, c03c], [c058, c058], [c074, c074], [c090, c090], [c0ac, c0ac],
1559    [c0c8, c0c8], [c0e4, c0e4], [c100, c100], [c11c, c11c], [c138, c138],
1560    [c154, c154], [c170, c170], [c18c, c18c], [c1a8, c1a8], [c1c4, c1c4],
1561    [c1e0, c1e0], [c1fc, c1fc], [c218, c218], [c234, c234], [c250, c250],
1562    [c26c, c26c], [c288, c288], [c2a4, c2a4], [c2c0, c2c0], [c2dc, c2dc],
1563    [c2f8, c2f8], [c314, c314], [c330, c330], [c34c, c34c], [c368, c368],
1564    [c384, c384], [c3a0, c3a0], [c3bc, c3bc], [c3d8, c3d8], [c3f4, c3f4],
1565    [c410, c410], [c42c, c42c], [c448, c448], [c464, c464], [c480, c480],
1566    [c49c, c49c], [c4b8, c4b8], [c4d4, c4d4], [c4f0, c4f0], [c50c, c50c],
1567    [c528, c528], [c544, c544], [c560, c560], [c57c, c57c], [c598, c598],
1568    [c5b4, c5b4], [c5d0, c5d0], [c5ec, c5ec], [c608, c608], [c624, c624],
1569    [c640, c640], [c65c, c65c], [c678, c678], [c694, c694], [c6b0, c6b0],
1570    [c6cc, c6cc], [c6e8, c6e8], [c704, c704], [c720, c720], [c73c, c73c],
1571    [c758, c758], [c774, c774], [c790, c790], [c7ac, c7ac], [c7c8, c7c8],
1572    [c7e4, c7e4], [c800, c800], [c81c, c81c], [c838, c838], [c854, c854],
1573    [c870, c870], [c88c, c88c], [c8a8, c8a8], [c8c4, c8c4], [c8e0, c8e0],
1574    [c8fc, c8fc], [c918, c918], [c934, c934], [c950, c950], [c96c, c96c],
1575    [c988, c988], [c9a4, c9a4], [c9c0, c9c0], [c9dc, c9dc], [c9f8, c9f8],
1576    [ca14, ca14], [ca30, ca30], [ca4c, ca4c], [ca68, ca68], [ca84, ca84],
1577    [caa0, caa0], [cabc, cabc], [cad8, cad8], [caf4, caf4], [cb10, cb10],
1578    [cb2c, cb2c], [cb48, cb48], [cb64, cb64], [cb80, cb80], [cb9c, cb9c],
1579    [cbb8, cbb8], [cbd4, cbd4], [cbf0, cbf0], [cc0c, cc0c], [cc28, cc28],
1580    [cc44, cc44], [cc60, cc60], [cc7c, cc7c], [cc98, cc98], [ccb4, ccb4],
1581    [ccd0, ccd0], [ccec, ccec], [cd08, cd08], [cd24, cd24], [cd40, cd40],
1582    [cd5c, cd5c], [cd78, cd78], [cd94, cd94], [cdb0, cdb0], [cdcc, cdcc],
1583    [cde8, cde8], [ce04, ce04], [ce20, ce20], [ce3c, ce3c], [ce58, ce58],
1584    [ce74, ce74], [ce90, ce90], [ceac, ceac], [cec8, cec8], [cee4, cee4],
1585    [cf00, cf00], [cf1c, cf1c], [cf38, cf38], [cf54, cf54], [cf70, cf70],
1586    [cf8c, cf8c], [cfa8, cfa8], [cfc4, cfc4], [cfe0, cfe0], [cffc, cffc],
1587    [d018, d018], [d034, d034], [d050, d050], [d06c, d06c], [d088, d088],
1588    [d0a4, d0a4], [d0c0, d0c0], [d0dc, d0dc], [d0f8, d0f8], [d114, d114],
1589    [d130, d130], [d14c, d14c], [d168, d168], [d184, d184], [d1a0, d1a0],
1590    [d1bc, d1bc], [d1d8, d1d8], [d1f4, d1f4], [d210, d210], [d22c, d22c],
1591    [d248, d248], [d264, d264], [d280, d280], [d29c, d29c], [d2b8, d2b8],
1592    [d2d4, d2d4], [d2f0, d2f0], [d30c, d30c], [d328, d328], [d344, d344],
1593    [d360, d360], [d37c, d37c], [d398, d398], [d3b4, d3b4], [d3d0, d3d0],
1594    [d3ec, d3ec], [d408, d408], [d424, d424], [d440, d440], [d45c, d45c],
1595    [d478, d478], [d494, d494], [d4b0, d4b0], [d4cc, d4cc], [d4e8, d4e8],
1596    [d504, d504], [d520, d520], [d53c, d53c], [d558, d558], [d574, d574],
1597    [d590, d590], [d5ac, d5ac], [d5c8, d5c8], [d5e4, d5e4], [d600, d600],
1598    [d61c, d61c], [d638, d638], [d654, d654], [d670, d670], [d68c, d68c],
1599    [d6a8, d6a8], [d6c4, d6c4], [d6e0, d6e0], [d6fc, d6fc], [d718, d718],
1600    [d734, d734], [d750, d750], [d76c, d76c], [d788, d788]**/
1601
1602
1603    namespace {
1604    const static UnicodeSet::run_t __h2_Set_runs[] = {
1605    {Empty, 1376}, {Mixed, 349}, {Empty, 33091}};
1606    const static UnicodeSet::bitquad_t  __h2_Set_quads[] = {
1607    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1608    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1609    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1610    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1611    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1612    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1613    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1614    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1615    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1616    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1617    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1618    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1619    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1620    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1621    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1622    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1623    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1624    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1625    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1626    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1627    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1628    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1629    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1630    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1631    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1632    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1633    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1634    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1635    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1636    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1637    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1638    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1639    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1640    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1641    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1642    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1643    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1644    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1645    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1646    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1647    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1648    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1649    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1650    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1651    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1652    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1653    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1654    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1655    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1656    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1657    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1658    0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
1659    0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000, 0x00100000,
1660    0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
1661    0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010, 0x10000001,
1662    0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100, 0x00000010,
1663    0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000, 0x00000100,
1664    0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000, 0x00001000,
1665    0x00000100};
1666    }
1667
1668    const static UnicodeSet h2_Set{const_cast<UnicodeSet::run_t *>(__h2_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__h2_Set_quads), 349, 0};
1669
1670    /** Code Point Ranges for H3
1671    [ac01, ac1b], [ac1d, ac37], [ac39, ac53], [ac55, ac6f], [ac71, ac8b],
1672    [ac8d, aca7], [aca9, acc3], [acc5, acdf], [ace1, acfb], [acfd, ad17],
1673    [ad19, ad33], [ad35, ad4f], [ad51, ad6b], [ad6d, ad87], [ad89, ada3],
1674    [ada5, adbf], [adc1, addb], [addd, adf7], [adf9, ae13], [ae15, ae2f],
1675    [ae31, ae4b], [ae4d, ae67], [ae69, ae83], [ae85, ae9f], [aea1, aebb],
1676    [aebd, aed7], [aed9, aef3], [aef5, af0f], [af11, af2b], [af2d, af47],
1677    [af49, af63], [af65, af7f], [af81, af9b], [af9d, afb7], [afb9, afd3],
1678    [afd5, afef], [aff1, b00b], [b00d, b027], [b029, b043], [b045, b05f],
1679    [b061, b07b], [b07d, b097], [b099, b0b3], [b0b5, b0cf], [b0d1, b0eb],
1680    [b0ed, b107], [b109, b123], [b125, b13f], [b141, b15b], [b15d, b177],
1681    [b179, b193], [b195, b1af], [b1b1, b1cb], [b1cd, b1e7], [b1e9, b203],
1682    [b205, b21f], [b221, b23b], [b23d, b257], [b259, b273], [b275, b28f],
1683    [b291, b2ab], [b2ad, b2c7], [b2c9, b2e3], [b2e5, b2ff], [b301, b31b],
1684    [b31d, b337], [b339, b353], [b355, b36f], [b371, b38b], [b38d, b3a7],
1685    [b3a9, b3c3], [b3c5, b3df], [b3e1, b3fb], [b3fd, b417], [b419, b433],
1686    [b435, b44f], [b451, b46b], [b46d, b487], [b489, b4a3], [b4a5, b4bf],
1687    [b4c1, b4db], [b4dd, b4f7], [b4f9, b513], [b515, b52f], [b531, b54b],
1688    [b54d, b567], [b569, b583], [b585, b59f], [b5a1, b5bb], [b5bd, b5d7],
1689    [b5d9, b5f3], [b5f5, b60f], [b611, b62b], [b62d, b647], [b649, b663],
1690    [b665, b67f], [b681, b69b], [b69d, b6b7], [b6b9, b6d3], [b6d5, b6ef],
1691    [b6f1, b70b], [b70d, b727], [b729, b743], [b745, b75f], [b761, b77b],
1692    [b77d, b797], [b799, b7b3], [b7b5, b7cf], [b7d1, b7eb], [b7ed, b807],
1693    [b809, b823], [b825, b83f], [b841, b85b], [b85d, b877], [b879, b893],
1694    [b895, b8af], [b8b1, b8cb], [b8cd, b8e7], [b8e9, b903], [b905, b91f],
1695    [b921, b93b], [b93d, b957], [b959, b973], [b975, b98f], [b991, b9ab],
1696    [b9ad, b9c7], [b9c9, b9e3], [b9e5, b9ff], [ba01, ba1b], [ba1d, ba37],
1697    [ba39, ba53], [ba55, ba6f], [ba71, ba8b], [ba8d, baa7], [baa9, bac3],
1698    [bac5, badf], [bae1, bafb], [bafd, bb17], [bb19, bb33], [bb35, bb4f],
1699    [bb51, bb6b], [bb6d, bb87], [bb89, bba3], [bba5, bbbf], [bbc1, bbdb],
1700    [bbdd, bbf7], [bbf9, bc13], [bc15, bc2f], [bc31, bc4b], [bc4d, bc67],
1701    [bc69, bc83], [bc85, bc9f], [bca1, bcbb], [bcbd, bcd7], [bcd9, bcf3],
1702    [bcf5, bd0f], [bd11, bd2b], [bd2d, bd47], [bd49, bd63], [bd65, bd7f],
1703    [bd81, bd9b], [bd9d, bdb7], [bdb9, bdd3], [bdd5, bdef], [bdf1, be0b],
1704    [be0d, be27], [be29, be43], [be45, be5f], [be61, be7b], [be7d, be97],
1705    [be99, beb3], [beb5, becf], [bed1, beeb], [beed, bf07], [bf09, bf23],
1706    [bf25, bf3f], [bf41, bf5b], [bf5d, bf77], [bf79, bf93], [bf95, bfaf],
1707    [bfb1, bfcb], [bfcd, bfe7], [bfe9, c003], [c005, c01f], [c021, c03b],
1708    [c03d, c057], [c059, c073], [c075, c08f], [c091, c0ab], [c0ad, c0c7],
1709    [c0c9, c0e3], [c0e5, c0ff], [c101, c11b], [c11d, c137], [c139, c153],
1710    [c155, c16f], [c171, c18b], [c18d, c1a7], [c1a9, c1c3], [c1c5, c1df],
1711    [c1e1, c1fb], [c1fd, c217], [c219, c233], [c235, c24f], [c251, c26b],
1712    [c26d, c287], [c289, c2a3], [c2a5, c2bf], [c2c1, c2db], [c2dd, c2f7],
1713    [c2f9, c313], [c315, c32f], [c331, c34b], [c34d, c367], [c369, c383],
1714    [c385, c39f], [c3a1, c3bb], [c3bd, c3d7], [c3d9, c3f3], [c3f5, c40f],
1715    [c411, c42b], [c42d, c447], [c449, c463], [c465, c47f], [c481, c49b],
1716    [c49d, c4b7], [c4b9, c4d3], [c4d5, c4ef], [c4f1, c50b], [c50d, c527],
1717    [c529, c543], [c545, c55f], [c561, c57b], [c57d, c597], [c599, c5b3],
1718    [c5b5, c5cf], [c5d1, c5eb], [c5ed, c607], [c609, c623], [c625, c63f],
1719    [c641, c65b], [c65d, c677], [c679, c693], [c695, c6af], [c6b1, c6cb],
1720    [c6cd, c6e7], [c6e9, c703], [c705, c71f], [c721, c73b], [c73d, c757],
1721    [c759, c773], [c775, c78f], [c791, c7ab], [c7ad, c7c7], [c7c9, c7e3],
1722    [c7e5, c7ff], [c801, c81b], [c81d, c837], [c839, c853], [c855, c86f],
1723    [c871, c88b], [c88d, c8a7], [c8a9, c8c3], [c8c5, c8df], [c8e1, c8fb],
1724    [c8fd, c917], [c919, c933], [c935, c94f], [c951, c96b], [c96d, c987],
1725    [c989, c9a3], [c9a5, c9bf], [c9c1, c9db], [c9dd, c9f7], [c9f9, ca13],
1726    [ca15, ca2f], [ca31, ca4b], [ca4d, ca67], [ca69, ca83], [ca85, ca9f],
1727    [caa1, cabb], [cabd, cad7], [cad9, caf3], [caf5, cb0f], [cb11, cb2b],
1728    [cb2d, cb47], [cb49, cb63], [cb65, cb7f], [cb81, cb9b], [cb9d, cbb7],
1729    [cbb9, cbd3], [cbd5, cbef], [cbf1, cc0b], [cc0d, cc27], [cc29, cc43],
1730    [cc45, cc5f], [cc61, cc7b], [cc7d, cc97], [cc99, ccb3], [ccb5, cccf],
1731    [ccd1, cceb], [cced, cd07], [cd09, cd23], [cd25, cd3f], [cd41, cd5b],
1732    [cd5d, cd77], [cd79, cd93], [cd95, cdaf], [cdb1, cdcb], [cdcd, cde7],
1733    [cde9, ce03], [ce05, ce1f], [ce21, ce3b], [ce3d, ce57], [ce59, ce73],
1734    [ce75, ce8f], [ce91, ceab], [cead, cec7], [cec9, cee3], [cee5, ceff],
1735    [cf01, cf1b], [cf1d, cf37], [cf39, cf53], [cf55, cf6f], [cf71, cf8b],
1736    [cf8d, cfa7], [cfa9, cfc3], [cfc5, cfdf], [cfe1, cffb], [cffd, d017],
1737    [d019, d033], [d035, d04f], [d051, d06b], [d06d, d087], [d089, d0a3],
1738    [d0a5, d0bf], [d0c1, d0db], [d0dd, d0f7], [d0f9, d113], [d115, d12f],
1739    [d131, d14b], [d14d, d167], [d169, d183], [d185, d19f], [d1a1, d1bb],
1740    [d1bd, d1d7], [d1d9, d1f3], [d1f5, d20f], [d211, d22b], [d22d, d247],
1741    [d249, d263], [d265, d27f], [d281, d29b], [d29d, d2b7], [d2b9, d2d3],
1742    [d2d5, d2ef], [d2f1, d30b], [d30d, d327], [d329, d343], [d345, d35f],
1743    [d361, d37b], [d37d, d397], [d399, d3b3], [d3b5, d3cf], [d3d1, d3eb],
1744    [d3ed, d407], [d409, d423], [d425, d43f], [d441, d45b], [d45d, d477],
1745    [d479, d493], [d495, d4af], [d4b1, d4cb], [d4cd, d4e7], [d4e9, d503],
1746    [d505, d51f], [d521, d53b], [d53d, d557], [d559, d573], [d575, d58f],
1747    [d591, d5ab], [d5ad, d5c7], [d5c9, d5e3], [d5e5, d5ff], [d601, d61b],
1748    [d61d, d637], [d639, d653], [d655, d66f], [d671, d68b], [d68d, d6a7],
1749    [d6a9, d6c3], [d6c5, d6df], [d6e1, d6fb], [d6fd, d717], [d719, d733],
1750    [d735, d74f], [d751, d76b], [d76d, d787], [d789, d7a3]**/
1751
1752
1753    namespace {
1754    const static UnicodeSet::run_t __h3_Set_runs[] = {
1755    {Empty, 1376}, {Mixed, 350}, {Empty, 33090}};
1756    const static UnicodeSet::bitquad_t  __h3_Set_quads[] = {
1757    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1758    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1759    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1760    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1761    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1762    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1763    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1764    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1765    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1766    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1767    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1768    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1769    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1770    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1771    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1772    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1773    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1774    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1775    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1776    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1777    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1778    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1779    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1780    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1781    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1782    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1783    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1784    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1785    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1786    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1787    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1788    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1789    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1790    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1791    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1792    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1793    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1794    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1795    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1796    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1797    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1798    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1799    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1800    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1801    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1802    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1803    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1804    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1805    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1806    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1807    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1808    0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
1809    0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff,
1810    0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
1811    0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe,
1812    0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0xffffffef,
1813    0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff,
1814    0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff, 0xffffefff,
1815    0xfffffeff, 0x0000000f};
1816    }
1817
1818    const static UnicodeSet h3_Set{const_cast<UnicodeSet::run_t *>(__h3_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__h3_Set_quads), 350, 0};
1819
1820    /** Code Point Ranges for SG
1821    [d800, dfff]**/
1822
1823
1824    namespace {
1825    const static UnicodeSet::run_t __sg_Set_runs[] = {
1826    {Empty, 1728}, {Full, 64}, {Empty, 33024}};
1827    const static UnicodeSet::bitquad_t * const __sg_Set_quads = nullptr;
1828    }
1829
1830    const static UnicodeSet sg_Set{const_cast<UnicodeSet::run_t *>(__sg_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__sg_Set_quads), 0, 0};
1831
1832    /** Code Point Ranges for CB
1833    [fffc, fffc]**/
1834
1835
1836    namespace {
1837    const static UnicodeSet::run_t __cb_Set_runs[] = {
1838    {Empty, 2047}, {Mixed, 1}, {Empty, 32768}};
1839    const static UnicodeSet::bitquad_t  __cb_Set_quads[] = {
1840    0x10000000};
1841    }
1842
1843    const static UnicodeSet cb_Set{const_cast<UnicodeSet::run_t *>(__cb_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__cb_Set_quads), 1, 0};
1844
1845    /** Code Point Ranges for RI
1846    [1f1e6, 1f1ff]**/
1847
1848
1849    namespace {
1850    const static UnicodeSet::run_t __ri_Set_runs[] = {
1851    {Empty, 3983}, {Mixed, 1}, {Empty, 30832}};
1852    const static UnicodeSet::bitquad_t  __ri_Set_quads[] = {
1853    0xffffffc0};
1854    }
1855
1856    const static UnicodeSet ri_Set{const_cast<UnicodeSet::run_t *>(__ri_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__ri_Set_quads), 1, 0};
1857
1858    /** Code Point Ranges for EM
1859    [1f3fb, 1f3ff]**/
1860
1861
1862    namespace {
1863    const static UnicodeSet::run_t __em_Set_runs[] = {
1864    {Empty, 3999}, {Mixed, 1}, {Empty, 30816}};
1865    const static UnicodeSet::bitquad_t  __em_Set_quads[] = {
1866    0xf8000000};
1867    }
1868
1869    const static UnicodeSet em_Set{const_cast<UnicodeSet::run_t *>(__em_Set_runs), 3, 0, const_cast<UnicodeSet::bitquad_t *>(__em_Set_quads), 1, 0};
1870
1871    static EnumeratedPropertyObject property_object
1872        {lb,
1873        LB_ns::independent_prop_values,
1874        std::move(LB_ns::enum_names),
1875        std::move(LB_ns::value_names),
1876        std::move(LB_ns::aliases_only_map),{
1877        &xx_Set, &cm_Set, &ba_Set, &lf_Set, &bk_Set, &cr_Set, &sp_Set,
1878        &ex_Set, &qu_Set, &al_Set, &pr_Set, &po_Set, &op_Set, &cp_Set,
1879        &is_Set, &hy_Set, &sy_Set, &nu_Set, &cl_Set, &nl_Set, &gl_Set,
1880        &ai_Set, &bb_Set, &hl_Set, &sa_Set, &jl_Set, &jv_Set, &jt_Set,
1881        &ns_Set, &zw_Set, &zwj_Set, &b2_Set, &in_Set, &wj_Set, &id_Set,
1882        &eb_Set, &cj_Set, &h2_Set, &h3_Set, &sg_Set, &cb_Set, &ri_Set,
1883        &em_Set
1884        }};
1885    }
1886}
1887
1888#endif
Note: See TracBrowser for help on using the repository browser.