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

Last change on this file since 5787 was 5751, checked in by cameron, 20 months ago

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

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