1#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)]
10pub enum CanonicalCombiningClass {
11 NotReordered = 0,
12 Overlay = 1,
13 HanReading = 6,
14 Nukta = 7,
15 KanaVoicing = 8,
16 Virama = 9,
17 CCC10 = 10,
18 CCC11 = 11,
19 CCC12 = 12,
20 CCC13 = 13,
21 CCC14 = 14,
22 CCC15 = 15,
23 CCC16 = 16,
24 CCC17 = 17,
25 CCC18 = 18,
26 CCC19 = 19,
27 CCC20 = 20,
28 CCC21 = 21,
29 CCC22 = 22,
30 CCC23 = 23,
31 CCC24 = 24,
32 CCC25 = 25,
33 CCC26 = 26,
34 CCC27 = 27,
35 CCC28 = 28,
36 CCC29 = 29,
37 CCC30 = 30,
38 CCC31 = 31,
39 CCC32 = 32,
40 CCC33 = 33,
41 CCC34 = 34,
42 CCC35 = 35,
43 CCC36 = 36,
44 CCC84 = 84,
45 CCC91 = 91,
46 CCC103 = 103,
47 CCC107 = 107,
48 CCC118 = 118,
49 CCC122 = 122,
50 CCC129 = 129,
51 CCC130 = 130,
52 CCC132 = 132,
53 AttachedBelow = 202,
54 AttachedAbove = 214,
55 AttachedAboveRight = 216,
56 BelowLeft = 218,
57 Below = 220,
58 BelowRight = 222,
59 Left = 224,
60 Right = 226,
61 AboveLeft = 228,
62 Above = 230,
63 AboveRight = 232,
64 DoubleBelow = 233,
65 DoubleAbove = 234,
66 IotaSubscript = 240,
67}
68
69#[allow(dead_code)]
70pub const CANONICAL_COMBINING_CLASS: &'static [(u32, u32, CanonicalCombiningClass)] = &[
71 (0, 767, CanonicalCombiningClass::NotReordered),
72 (768, 788, CanonicalCombiningClass::Above),
73 (789, 789, CanonicalCombiningClass::AboveRight),
74 (790, 793, CanonicalCombiningClass::Below),
75 (794, 794, CanonicalCombiningClass::AboveRight),
76 (795, 795, CanonicalCombiningClass::AttachedAboveRight),
77 (796, 800, CanonicalCombiningClass::Below),
78 (801, 802, CanonicalCombiningClass::AttachedBelow),
79 (803, 806, CanonicalCombiningClass::Below),
80 (807, 808, CanonicalCombiningClass::AttachedBelow),
81 (809, 819, CanonicalCombiningClass::Below),
82 (820, 824, CanonicalCombiningClass::Overlay),
83 (825, 828, CanonicalCombiningClass::Below),
84 (829, 836, CanonicalCombiningClass::Above),
85 (837, 837, CanonicalCombiningClass::IotaSubscript),
86 (838, 838, CanonicalCombiningClass::Above),
87 (839, 841, CanonicalCombiningClass::Below),
88 (842, 844, CanonicalCombiningClass::Above),
89 (845, 846, CanonicalCombiningClass::Below),
90 (847, 847, CanonicalCombiningClass::NotReordered),
91 (848, 850, CanonicalCombiningClass::Above),
92 (851, 854, CanonicalCombiningClass::Below),
93 (855, 855, CanonicalCombiningClass::Above),
94 (856, 856, CanonicalCombiningClass::AboveRight),
95 (857, 858, CanonicalCombiningClass::Below),
96 (859, 859, CanonicalCombiningClass::Above),
97 (860, 860, CanonicalCombiningClass::DoubleBelow),
98 (861, 862, CanonicalCombiningClass::DoubleAbove),
99 (863, 863, CanonicalCombiningClass::DoubleBelow),
100 (864, 865, CanonicalCombiningClass::DoubleAbove),
101 (866, 866, CanonicalCombiningClass::DoubleBelow),
102 (867, 879, CanonicalCombiningClass::Above),
103 (880, 1154, CanonicalCombiningClass::NotReordered),
104 (1155, 1159, CanonicalCombiningClass::Above),
105 (1160, 1424, CanonicalCombiningClass::NotReordered),
106 (1425, 1425, CanonicalCombiningClass::Below),
107 (1426, 1429, CanonicalCombiningClass::Above),
108 (1430, 1430, CanonicalCombiningClass::Below),
109 (1431, 1433, CanonicalCombiningClass::Above),
110 (1434, 1434, CanonicalCombiningClass::BelowRight),
111 (1435, 1435, CanonicalCombiningClass::Below),
112 (1436, 1441, CanonicalCombiningClass::Above),
113 (1442, 1447, CanonicalCombiningClass::Below),
114 (1448, 1449, CanonicalCombiningClass::Above),
115 (1450, 1450, CanonicalCombiningClass::Below),
116 (1451, 1452, CanonicalCombiningClass::Above),
117 (1453, 1453, CanonicalCombiningClass::BelowRight),
118 (1454, 1454, CanonicalCombiningClass::AboveLeft),
119 (1455, 1455, CanonicalCombiningClass::Above),
120 (1456, 1456, CanonicalCombiningClass::CCC10),
121 (1457, 1457, CanonicalCombiningClass::CCC11),
122 (1458, 1458, CanonicalCombiningClass::CCC12),
123 (1459, 1459, CanonicalCombiningClass::CCC13),
124 (1460, 1460, CanonicalCombiningClass::CCC14),
125 (1461, 1461, CanonicalCombiningClass::CCC15),
126 (1462, 1462, CanonicalCombiningClass::CCC16),
127 (1463, 1463, CanonicalCombiningClass::CCC17),
128 (1464, 1464, CanonicalCombiningClass::CCC18),
129 (1465, 1466, CanonicalCombiningClass::CCC19),
130 (1467, 1467, CanonicalCombiningClass::CCC20),
131 (1468, 1468, CanonicalCombiningClass::CCC21),
132 (1469, 1469, CanonicalCombiningClass::CCC22),
133 (1470, 1470, CanonicalCombiningClass::NotReordered),
134 (1471, 1471, CanonicalCombiningClass::CCC23),
135 (1472, 1472, CanonicalCombiningClass::NotReordered),
136 (1473, 1473, CanonicalCombiningClass::CCC24),
137 (1474, 1474, CanonicalCombiningClass::CCC25),
138 (1475, 1475, CanonicalCombiningClass::NotReordered),
139 (1476, 1476, CanonicalCombiningClass::Above),
140 (1477, 1477, CanonicalCombiningClass::Below),
141 (1478, 1478, CanonicalCombiningClass::NotReordered),
142 (1479, 1479, CanonicalCombiningClass::CCC18),
143 (1480, 1551, CanonicalCombiningClass::NotReordered),
144 (1552, 1559, CanonicalCombiningClass::Above),
145 (1560, 1560, CanonicalCombiningClass::CCC30),
146 (1561, 1561, CanonicalCombiningClass::CCC31),
147 (1562, 1562, CanonicalCombiningClass::CCC32),
148 (1563, 1610, CanonicalCombiningClass::NotReordered),
149 (1611, 1611, CanonicalCombiningClass::CCC27),
150 (1612, 1612, CanonicalCombiningClass::CCC28),
151 (1613, 1613, CanonicalCombiningClass::CCC29),
152 (1614, 1614, CanonicalCombiningClass::CCC30),
153 (1615, 1615, CanonicalCombiningClass::CCC31),
154 (1616, 1616, CanonicalCombiningClass::CCC32),
155 (1617, 1617, CanonicalCombiningClass::CCC33),
156 (1618, 1618, CanonicalCombiningClass::CCC34),
157 (1619, 1620, CanonicalCombiningClass::Above),
158 (1621, 1622, CanonicalCombiningClass::Below),
159 (1623, 1627, CanonicalCombiningClass::Above),
160 (1628, 1628, CanonicalCombiningClass::Below),
161 (1629, 1630, CanonicalCombiningClass::Above),
162 (1631, 1631, CanonicalCombiningClass::Below),
163 (1632, 1647, CanonicalCombiningClass::NotReordered),
164 (1648, 1648, CanonicalCombiningClass::CCC35),
165 (1649, 1749, CanonicalCombiningClass::NotReordered),
166 (1750, 1756, CanonicalCombiningClass::Above),
167 (1757, 1758, CanonicalCombiningClass::NotReordered),
168 (1759, 1762, CanonicalCombiningClass::Above),
169 (1763, 1763, CanonicalCombiningClass::Below),
170 (1764, 1764, CanonicalCombiningClass::Above),
171 (1765, 1766, CanonicalCombiningClass::NotReordered),
172 (1767, 1768, CanonicalCombiningClass::Above),
173 (1769, 1769, CanonicalCombiningClass::NotReordered),
174 (1770, 1770, CanonicalCombiningClass::Below),
175 (1771, 1772, CanonicalCombiningClass::Above),
176 (1773, 1773, CanonicalCombiningClass::Below),
177 (1774, 1808, CanonicalCombiningClass::NotReordered),
178 (1809, 1809, CanonicalCombiningClass::CCC36),
179 (1810, 1839, CanonicalCombiningClass::NotReordered),
180 (1840, 1840, CanonicalCombiningClass::Above),
181 (1841, 1841, CanonicalCombiningClass::Below),
182 (1842, 1843, CanonicalCombiningClass::Above),
183 (1844, 1844, CanonicalCombiningClass::Below),
184 (1845, 1846, CanonicalCombiningClass::Above),
185 (1847, 1849, CanonicalCombiningClass::Below),
186 (1850, 1850, CanonicalCombiningClass::Above),
187 (1851, 1852, CanonicalCombiningClass::Below),
188 (1853, 1853, CanonicalCombiningClass::Above),
189 (1854, 1854, CanonicalCombiningClass::Below),
190 (1855, 1857, CanonicalCombiningClass::Above),
191 (1858, 1858, CanonicalCombiningClass::Below),
192 (1859, 1859, CanonicalCombiningClass::Above),
193 (1860, 1860, CanonicalCombiningClass::Below),
194 (1861, 1861, CanonicalCombiningClass::Above),
195 (1862, 1862, CanonicalCombiningClass::Below),
196 (1863, 1863, CanonicalCombiningClass::Above),
197 (1864, 1864, CanonicalCombiningClass::Below),
198 (1865, 1866, CanonicalCombiningClass::Above),
199 (1867, 2026, CanonicalCombiningClass::NotReordered),
200 (2027, 2033, CanonicalCombiningClass::Above),
201 (2034, 2034, CanonicalCombiningClass::Below),
202 (2035, 2035, CanonicalCombiningClass::Above),
203 (2036, 2044, CanonicalCombiningClass::NotReordered),
204 (2045, 2045, CanonicalCombiningClass::Below),
205 (2046, 2069, CanonicalCombiningClass::NotReordered),
206 (2070, 2073, CanonicalCombiningClass::Above),
207 (2074, 2074, CanonicalCombiningClass::NotReordered),
208 (2075, 2083, CanonicalCombiningClass::Above),
209 (2084, 2084, CanonicalCombiningClass::NotReordered),
210 (2085, 2087, CanonicalCombiningClass::Above),
211 (2088, 2088, CanonicalCombiningClass::NotReordered),
212 (2089, 2093, CanonicalCombiningClass::Above),
213 (2094, 2136, CanonicalCombiningClass::NotReordered),
214 (2137, 2139, CanonicalCombiningClass::Below),
215 (2140, 2198, CanonicalCombiningClass::NotReordered),
216 (2199, 2200, CanonicalCombiningClass::Above),
217 (2201, 2203, CanonicalCombiningClass::Below),
218 (2204, 2207, CanonicalCombiningClass::Above),
219 (2208, 2249, CanonicalCombiningClass::NotReordered),
220 (2250, 2254, CanonicalCombiningClass::Above),
221 (2255, 2259, CanonicalCombiningClass::Below),
222 (2260, 2273, CanonicalCombiningClass::Above),
223 (2274, 2274, CanonicalCombiningClass::NotReordered),
224 (2275, 2275, CanonicalCombiningClass::Below),
225 (2276, 2277, CanonicalCombiningClass::Above),
226 (2278, 2278, CanonicalCombiningClass::Below),
227 (2279, 2280, CanonicalCombiningClass::Above),
228 (2281, 2281, CanonicalCombiningClass::Below),
229 (2282, 2284, CanonicalCombiningClass::Above),
230 (2285, 2287, CanonicalCombiningClass::Below),
231 (2288, 2288, CanonicalCombiningClass::CCC27),
232 (2289, 2289, CanonicalCombiningClass::CCC28),
233 (2290, 2290, CanonicalCombiningClass::CCC29),
234 (2291, 2293, CanonicalCombiningClass::Above),
235 (2294, 2294, CanonicalCombiningClass::Below),
236 (2295, 2296, CanonicalCombiningClass::Above),
237 (2297, 2298, CanonicalCombiningClass::Below),
238 (2299, 2303, CanonicalCombiningClass::Above),
239 (2304, 2363, CanonicalCombiningClass::NotReordered),
240 (2364, 2364, CanonicalCombiningClass::Nukta),
241 (2365, 2380, CanonicalCombiningClass::NotReordered),
242 (2381, 2381, CanonicalCombiningClass::Virama),
243 (2382, 2384, CanonicalCombiningClass::NotReordered),
244 (2385, 2385, CanonicalCombiningClass::Above),
245 (2386, 2386, CanonicalCombiningClass::Below),
246 (2387, 2388, CanonicalCombiningClass::Above),
247 (2389, 2491, CanonicalCombiningClass::NotReordered),
248 (2492, 2492, CanonicalCombiningClass::Nukta),
249 (2493, 2508, CanonicalCombiningClass::NotReordered),
250 (2509, 2509, CanonicalCombiningClass::Virama),
251 (2510, 2557, CanonicalCombiningClass::NotReordered),
252 (2558, 2558, CanonicalCombiningClass::Above),
253 (2559, 2619, CanonicalCombiningClass::NotReordered),
254 (2620, 2620, CanonicalCombiningClass::Nukta),
255 (2621, 2636, CanonicalCombiningClass::NotReordered),
256 (2637, 2637, CanonicalCombiningClass::Virama),
257 (2638, 2747, CanonicalCombiningClass::NotReordered),
258 (2748, 2748, CanonicalCombiningClass::Nukta),
259 (2749, 2764, CanonicalCombiningClass::NotReordered),
260 (2765, 2765, CanonicalCombiningClass::Virama),
261 (2766, 2875, CanonicalCombiningClass::NotReordered),
262 (2876, 2876, CanonicalCombiningClass::Nukta),
263 (2877, 2892, CanonicalCombiningClass::NotReordered),
264 (2893, 2893, CanonicalCombiningClass::Virama),
265 (2894, 3020, CanonicalCombiningClass::NotReordered),
266 (3021, 3021, CanonicalCombiningClass::Virama),
267 (3022, 3131, CanonicalCombiningClass::NotReordered),
268 (3132, 3132, CanonicalCombiningClass::Nukta),
269 (3133, 3148, CanonicalCombiningClass::NotReordered),
270 (3149, 3149, CanonicalCombiningClass::Virama),
271 (3150, 3156, CanonicalCombiningClass::NotReordered),
272 (3157, 3157, CanonicalCombiningClass::CCC84),
273 (3158, 3158, CanonicalCombiningClass::CCC91),
274 (3159, 3259, CanonicalCombiningClass::NotReordered),
275 (3260, 3260, CanonicalCombiningClass::Nukta),
276 (3261, 3276, CanonicalCombiningClass::NotReordered),
277 (3277, 3277, CanonicalCombiningClass::Virama),
278 (3278, 3386, CanonicalCombiningClass::NotReordered),
279 (3387, 3388, CanonicalCombiningClass::Virama),
280 (3389, 3404, CanonicalCombiningClass::NotReordered),
281 (3405, 3405, CanonicalCombiningClass::Virama),
282 (3406, 3529, CanonicalCombiningClass::NotReordered),
283 (3530, 3530, CanonicalCombiningClass::Virama),
284 (3531, 3639, CanonicalCombiningClass::NotReordered),
285 (3640, 3641, CanonicalCombiningClass::CCC103),
286 (3642, 3642, CanonicalCombiningClass::Virama),
287 (3643, 3655, CanonicalCombiningClass::NotReordered),
288 (3656, 3659, CanonicalCombiningClass::CCC107),
289 (3660, 3767, CanonicalCombiningClass::NotReordered),
290 (3768, 3769, CanonicalCombiningClass::CCC118),
291 (3770, 3770, CanonicalCombiningClass::Virama),
292 (3771, 3783, CanonicalCombiningClass::NotReordered),
293 (3784, 3787, CanonicalCombiningClass::CCC122),
294 (3788, 3863, CanonicalCombiningClass::NotReordered),
295 (3864, 3865, CanonicalCombiningClass::Below),
296 (3866, 3892, CanonicalCombiningClass::NotReordered),
297 (3893, 3893, CanonicalCombiningClass::Below),
298 (3894, 3894, CanonicalCombiningClass::NotReordered),
299 (3895, 3895, CanonicalCombiningClass::Below),
300 (3896, 3896, CanonicalCombiningClass::NotReordered),
301 (3897, 3897, CanonicalCombiningClass::AttachedAboveRight),
302 (3898, 3952, CanonicalCombiningClass::NotReordered),
303 (3953, 3953, CanonicalCombiningClass::CCC129),
304 (3954, 3954, CanonicalCombiningClass::CCC130),
305 (3955, 3955, CanonicalCombiningClass::NotReordered),
306 (3956, 3956, CanonicalCombiningClass::CCC132),
307 (3957, 3961, CanonicalCombiningClass::NotReordered),
308 (3962, 3965, CanonicalCombiningClass::CCC130),
309 (3966, 3967, CanonicalCombiningClass::NotReordered),
310 (3968, 3968, CanonicalCombiningClass::CCC130),
311 (3969, 3969, CanonicalCombiningClass::NotReordered),
312 (3970, 3971, CanonicalCombiningClass::Above),
313 (3972, 3972, CanonicalCombiningClass::Virama),
314 (3973, 3973, CanonicalCombiningClass::NotReordered),
315 (3974, 3975, CanonicalCombiningClass::Above),
316 (3976, 4037, CanonicalCombiningClass::NotReordered),
317 (4038, 4038, CanonicalCombiningClass::Below),
318 (4039, 4150, CanonicalCombiningClass::NotReordered),
319 (4151, 4151, CanonicalCombiningClass::Nukta),
320 (4152, 4152, CanonicalCombiningClass::NotReordered),
321 (4153, 4154, CanonicalCombiningClass::Virama),
322 (4155, 4236, CanonicalCombiningClass::NotReordered),
323 (4237, 4237, CanonicalCombiningClass::Below),
324 (4238, 4956, CanonicalCombiningClass::NotReordered),
325 (4957, 4959, CanonicalCombiningClass::Above),
326 (4960, 5907, CanonicalCombiningClass::NotReordered),
327 (5908, 5909, CanonicalCombiningClass::Virama),
328 (5910, 5939, CanonicalCombiningClass::NotReordered),
329 (5940, 5940, CanonicalCombiningClass::Virama),
330 (5941, 6097, CanonicalCombiningClass::NotReordered),
331 (6098, 6098, CanonicalCombiningClass::Virama),
332 (6099, 6108, CanonicalCombiningClass::NotReordered),
333 (6109, 6109, CanonicalCombiningClass::Above),
334 (6110, 6312, CanonicalCombiningClass::NotReordered),
335 (6313, 6313, CanonicalCombiningClass::AboveLeft),
336 (6314, 6456, CanonicalCombiningClass::NotReordered),
337 (6457, 6457, CanonicalCombiningClass::BelowRight),
338 (6458, 6458, CanonicalCombiningClass::Above),
339 (6459, 6459, CanonicalCombiningClass::Below),
340 (6460, 6678, CanonicalCombiningClass::NotReordered),
341 (6679, 6679, CanonicalCombiningClass::Above),
342 (6680, 6680, CanonicalCombiningClass::Below),
343 (6681, 6751, CanonicalCombiningClass::NotReordered),
344 (6752, 6752, CanonicalCombiningClass::Virama),
345 (6753, 6772, CanonicalCombiningClass::NotReordered),
346 (6773, 6780, CanonicalCombiningClass::Above),
347 (6781, 6782, CanonicalCombiningClass::NotReordered),
348 (6783, 6783, CanonicalCombiningClass::Below),
349 (6784, 6831, CanonicalCombiningClass::NotReordered),
350 (6832, 6836, CanonicalCombiningClass::Above),
351 (6837, 6842, CanonicalCombiningClass::Below),
352 (6843, 6844, CanonicalCombiningClass::Above),
353 (6845, 6845, CanonicalCombiningClass::Below),
354 (6846, 6846, CanonicalCombiningClass::NotReordered),
355 (6847, 6848, CanonicalCombiningClass::Below),
356 (6849, 6850, CanonicalCombiningClass::Above),
357 (6851, 6852, CanonicalCombiningClass::Below),
358 (6853, 6857, CanonicalCombiningClass::Above),
359 (6858, 6858, CanonicalCombiningClass::Below),
360 (6859, 6862, CanonicalCombiningClass::Above),
361 (6863, 6963, CanonicalCombiningClass::NotReordered),
362 (6964, 6964, CanonicalCombiningClass::Nukta),
363 (6965, 6979, CanonicalCombiningClass::NotReordered),
364 (6980, 6980, CanonicalCombiningClass::Virama),
365 (6981, 7018, CanonicalCombiningClass::NotReordered),
366 (7019, 7019, CanonicalCombiningClass::Above),
367 (7020, 7020, CanonicalCombiningClass::Below),
368 (7021, 7027, CanonicalCombiningClass::Above),
369 (7028, 7081, CanonicalCombiningClass::NotReordered),
370 (7082, 7083, CanonicalCombiningClass::Virama),
371 (7084, 7141, CanonicalCombiningClass::NotReordered),
372 (7142, 7142, CanonicalCombiningClass::Nukta),
373 (7143, 7153, CanonicalCombiningClass::NotReordered),
374 (7154, 7155, CanonicalCombiningClass::Virama),
375 (7156, 7222, CanonicalCombiningClass::NotReordered),
376 (7223, 7223, CanonicalCombiningClass::Nukta),
377 (7224, 7375, CanonicalCombiningClass::NotReordered),
378 (7376, 7378, CanonicalCombiningClass::Above),
379 (7379, 7379, CanonicalCombiningClass::NotReordered),
380 (7380, 7380, CanonicalCombiningClass::Overlay),
381 (7381, 7385, CanonicalCombiningClass::Below),
382 (7386, 7387, CanonicalCombiningClass::Above),
383 (7388, 7391, CanonicalCombiningClass::Below),
384 (7392, 7392, CanonicalCombiningClass::Above),
385 (7393, 7393, CanonicalCombiningClass::NotReordered),
386 (7394, 7400, CanonicalCombiningClass::Overlay),
387 (7401, 7404, CanonicalCombiningClass::NotReordered),
388 (7405, 7405, CanonicalCombiningClass::Below),
389 (7406, 7411, CanonicalCombiningClass::NotReordered),
390 (7412, 7412, CanonicalCombiningClass::Above),
391 (7413, 7415, CanonicalCombiningClass::NotReordered),
392 (7416, 7417, CanonicalCombiningClass::Above),
393 (7418, 7615, CanonicalCombiningClass::NotReordered),
394 (7616, 7617, CanonicalCombiningClass::Above),
395 (7618, 7618, CanonicalCombiningClass::Below),
396 (7619, 7625, CanonicalCombiningClass::Above),
397 (7626, 7626, CanonicalCombiningClass::Below),
398 (7627, 7628, CanonicalCombiningClass::Above),
399 (7629, 7629, CanonicalCombiningClass::DoubleAbove),
400 (7630, 7630, CanonicalCombiningClass::AttachedAbove),
401 (7631, 7631, CanonicalCombiningClass::Below),
402 (7632, 7632, CanonicalCombiningClass::AttachedBelow),
403 (7633, 7669, CanonicalCombiningClass::Above),
404 (7670, 7670, CanonicalCombiningClass::AboveRight),
405 (7671, 7672, CanonicalCombiningClass::AboveLeft),
406 (7673, 7673, CanonicalCombiningClass::Below),
407 (7674, 7674, CanonicalCombiningClass::BelowLeft),
408 (7675, 7675, CanonicalCombiningClass::Above),
409 (7676, 7676, CanonicalCombiningClass::DoubleBelow),
410 (7677, 7677, CanonicalCombiningClass::Below),
411 (7678, 7678, CanonicalCombiningClass::Above),
412 (7679, 7679, CanonicalCombiningClass::Below),
413 (7680, 8399, CanonicalCombiningClass::NotReordered),
414 (8400, 8401, CanonicalCombiningClass::Above),
415 (8402, 8403, CanonicalCombiningClass::Overlay),
416 (8404, 8407, CanonicalCombiningClass::Above),
417 (8408, 8410, CanonicalCombiningClass::Overlay),
418 (8411, 8412, CanonicalCombiningClass::Above),
419 (8413, 8416, CanonicalCombiningClass::NotReordered),
420 (8417, 8417, CanonicalCombiningClass::Above),
421 (8418, 8420, CanonicalCombiningClass::NotReordered),
422 (8421, 8422, CanonicalCombiningClass::Overlay),
423 (8423, 8423, CanonicalCombiningClass::Above),
424 (8424, 8424, CanonicalCombiningClass::Below),
425 (8425, 8425, CanonicalCombiningClass::Above),
426 (8426, 8427, CanonicalCombiningClass::Overlay),
427 (8428, 8431, CanonicalCombiningClass::Below),
428 (8432, 8432, CanonicalCombiningClass::Above),
429 (8433, 11502, CanonicalCombiningClass::NotReordered),
430 (11503, 11505, CanonicalCombiningClass::Above),
431 (11506, 11646, CanonicalCombiningClass::NotReordered),
432 (11647, 11647, CanonicalCombiningClass::Virama),
433 (11648, 11743, CanonicalCombiningClass::NotReordered),
434 (11744, 11775, CanonicalCombiningClass::Above),
435 (11776, 12329, CanonicalCombiningClass::NotReordered),
436 (12330, 12330, CanonicalCombiningClass::BelowLeft),
437 (12331, 12331, CanonicalCombiningClass::AboveLeft),
438 (12332, 12332, CanonicalCombiningClass::AboveRight),
439 (12333, 12333, CanonicalCombiningClass::BelowRight),
440 (12334, 12335, CanonicalCombiningClass::Left),
441 (12336, 12440, CanonicalCombiningClass::NotReordered),
442 (12441, 12442, CanonicalCombiningClass::KanaVoicing),
443 (12443, 42606, CanonicalCombiningClass::NotReordered),
444 (42607, 42607, CanonicalCombiningClass::Above),
445 (42608, 42611, CanonicalCombiningClass::NotReordered),
446 (42612, 42621, CanonicalCombiningClass::Above),
447 (42622, 42653, CanonicalCombiningClass::NotReordered),
448 (42654, 42655, CanonicalCombiningClass::Above),
449 (42656, 42735, CanonicalCombiningClass::NotReordered),
450 (42736, 42737, CanonicalCombiningClass::Above),
451 (42738, 43013, CanonicalCombiningClass::NotReordered),
452 (43014, 43014, CanonicalCombiningClass::Virama),
453 (43015, 43051, CanonicalCombiningClass::NotReordered),
454 (43052, 43052, CanonicalCombiningClass::Virama),
455 (43053, 43203, CanonicalCombiningClass::NotReordered),
456 (43204, 43204, CanonicalCombiningClass::Virama),
457 (43205, 43231, CanonicalCombiningClass::NotReordered),
458 (43232, 43249, CanonicalCombiningClass::Above),
459 (43250, 43306, CanonicalCombiningClass::NotReordered),
460 (43307, 43309, CanonicalCombiningClass::Below),
461 (43310, 43346, CanonicalCombiningClass::NotReordered),
462 (43347, 43347, CanonicalCombiningClass::Virama),
463 (43348, 43442, CanonicalCombiningClass::NotReordered),
464 (43443, 43443, CanonicalCombiningClass::Nukta),
465 (43444, 43455, CanonicalCombiningClass::NotReordered),
466 (43456, 43456, CanonicalCombiningClass::Virama),
467 (43457, 43695, CanonicalCombiningClass::NotReordered),
468 (43696, 43696, CanonicalCombiningClass::Above),
469 (43697, 43697, CanonicalCombiningClass::NotReordered),
470 (43698, 43699, CanonicalCombiningClass::Above),
471 (43700, 43700, CanonicalCombiningClass::Below),
472 (43701, 43702, CanonicalCombiningClass::NotReordered),
473 (43703, 43704, CanonicalCombiningClass::Above),
474 (43705, 43709, CanonicalCombiningClass::NotReordered),
475 (43710, 43711, CanonicalCombiningClass::Above),
476 (43712, 43712, CanonicalCombiningClass::NotReordered),
477 (43713, 43713, CanonicalCombiningClass::Above),
478 (43714, 43765, CanonicalCombiningClass::NotReordered),
479 (43766, 43766, CanonicalCombiningClass::Virama),
480 (43767, 44012, CanonicalCombiningClass::NotReordered),
481 (44013, 44013, CanonicalCombiningClass::Virama),
482 (44014, 64285, CanonicalCombiningClass::NotReordered),
483 (64286, 64286, CanonicalCombiningClass::CCC26),
484 (64287, 65055, CanonicalCombiningClass::NotReordered),
485 (65056, 65062, CanonicalCombiningClass::Above),
486 (65063, 65069, CanonicalCombiningClass::Below),
487 (65070, 65071, CanonicalCombiningClass::Above),
488 (65072, 66044, CanonicalCombiningClass::NotReordered),
489 (66045, 66045, CanonicalCombiningClass::Below),
490 (66046, 66271, CanonicalCombiningClass::NotReordered),
491 (66272, 66272, CanonicalCombiningClass::Below),
492 (66273, 66421, CanonicalCombiningClass::NotReordered),
493 (66422, 66426, CanonicalCombiningClass::Above),
494 (66427, 68108, CanonicalCombiningClass::NotReordered),
495 (68109, 68109, CanonicalCombiningClass::Below),
496 (68110, 68110, CanonicalCombiningClass::NotReordered),
497 (68111, 68111, CanonicalCombiningClass::Above),
498 (68112, 68151, CanonicalCombiningClass::NotReordered),
499 (68152, 68152, CanonicalCombiningClass::Above),
500 (68153, 68153, CanonicalCombiningClass::Overlay),
501 (68154, 68154, CanonicalCombiningClass::Below),
502 (68155, 68158, CanonicalCombiningClass::NotReordered),
503 (68159, 68159, CanonicalCombiningClass::Virama),
504 (68160, 68324, CanonicalCombiningClass::NotReordered),
505 (68325, 68325, CanonicalCombiningClass::Above),
506 (68326, 68326, CanonicalCombiningClass::Below),
507 (68327, 68899, CanonicalCombiningClass::NotReordered),
508 (68900, 68903, CanonicalCombiningClass::Above),
509 (68904, 68968, CanonicalCombiningClass::NotReordered),
510 (68969, 68973, CanonicalCombiningClass::Above),
511 (68974, 69290, CanonicalCombiningClass::NotReordered),
512 (69291, 69292, CanonicalCombiningClass::Above),
513 (69293, 69372, CanonicalCombiningClass::NotReordered),
514 (69373, 69375, CanonicalCombiningClass::Below),
515 (69376, 69445, CanonicalCombiningClass::NotReordered),
516 (69446, 69447, CanonicalCombiningClass::Below),
517 (69448, 69450, CanonicalCombiningClass::Above),
518 (69451, 69451, CanonicalCombiningClass::Below),
519 (69452, 69452, CanonicalCombiningClass::Above),
520 (69453, 69456, CanonicalCombiningClass::Below),
521 (69457, 69505, CanonicalCombiningClass::NotReordered),
522 (69506, 69506, CanonicalCombiningClass::Above),
523 (69507, 69507, CanonicalCombiningClass::Below),
524 (69508, 69508, CanonicalCombiningClass::Above),
525 (69509, 69509, CanonicalCombiningClass::Below),
526 (69510, 69701, CanonicalCombiningClass::NotReordered),
527 (69702, 69702, CanonicalCombiningClass::Virama),
528 (69703, 69743, CanonicalCombiningClass::NotReordered),
529 (69744, 69744, CanonicalCombiningClass::Virama),
530 (69745, 69758, CanonicalCombiningClass::NotReordered),
531 (69759, 69759, CanonicalCombiningClass::Virama),
532 (69760, 69816, CanonicalCombiningClass::NotReordered),
533 (69817, 69817, CanonicalCombiningClass::Virama),
534 (69818, 69818, CanonicalCombiningClass::Nukta),
535 (69819, 69887, CanonicalCombiningClass::NotReordered),
536 (69888, 69890, CanonicalCombiningClass::Above),
537 (69891, 69938, CanonicalCombiningClass::NotReordered),
538 (69939, 69940, CanonicalCombiningClass::Virama),
539 (69941, 70002, CanonicalCombiningClass::NotReordered),
540 (70003, 70003, CanonicalCombiningClass::Nukta),
541 (70004, 70079, CanonicalCombiningClass::NotReordered),
542 (70080, 70080, CanonicalCombiningClass::Virama),
543 (70081, 70089, CanonicalCombiningClass::NotReordered),
544 (70090, 70090, CanonicalCombiningClass::Nukta),
545 (70091, 70196, CanonicalCombiningClass::NotReordered),
546 (70197, 70197, CanonicalCombiningClass::Virama),
547 (70198, 70198, CanonicalCombiningClass::Nukta),
548 (70199, 70376, CanonicalCombiningClass::NotReordered),
549 (70377, 70377, CanonicalCombiningClass::Nukta),
550 (70378, 70378, CanonicalCombiningClass::Virama),
551 (70379, 70458, CanonicalCombiningClass::NotReordered),
552 (70459, 70460, CanonicalCombiningClass::Nukta),
553 (70461, 70476, CanonicalCombiningClass::NotReordered),
554 (70477, 70477, CanonicalCombiningClass::Virama),
555 (70478, 70501, CanonicalCombiningClass::NotReordered),
556 (70502, 70508, CanonicalCombiningClass::Above),
557 (70509, 70511, CanonicalCombiningClass::NotReordered),
558 (70512, 70516, CanonicalCombiningClass::Above),
559 (70517, 70605, CanonicalCombiningClass::NotReordered),
560 (70606, 70608, CanonicalCombiningClass::Virama),
561 (70609, 70721, CanonicalCombiningClass::NotReordered),
562 (70722, 70722, CanonicalCombiningClass::Virama),
563 (70723, 70725, CanonicalCombiningClass::NotReordered),
564 (70726, 70726, CanonicalCombiningClass::Nukta),
565 (70727, 70749, CanonicalCombiningClass::NotReordered),
566 (70750, 70750, CanonicalCombiningClass::Above),
567 (70751, 70849, CanonicalCombiningClass::NotReordered),
568 (70850, 70850, CanonicalCombiningClass::Virama),
569 (70851, 70851, CanonicalCombiningClass::Nukta),
570 (70852, 71102, CanonicalCombiningClass::NotReordered),
571 (71103, 71103, CanonicalCombiningClass::Virama),
572 (71104, 71104, CanonicalCombiningClass::Nukta),
573 (71105, 71230, CanonicalCombiningClass::NotReordered),
574 (71231, 71231, CanonicalCombiningClass::Virama),
575 (71232, 71349, CanonicalCombiningClass::NotReordered),
576 (71350, 71350, CanonicalCombiningClass::Virama),
577 (71351, 71351, CanonicalCombiningClass::Nukta),
578 (71352, 71466, CanonicalCombiningClass::NotReordered),
579 (71467, 71467, CanonicalCombiningClass::Virama),
580 (71468, 71736, CanonicalCombiningClass::NotReordered),
581 (71737, 71737, CanonicalCombiningClass::Virama),
582 (71738, 71738, CanonicalCombiningClass::Nukta),
583 (71739, 71996, CanonicalCombiningClass::NotReordered),
584 (71997, 71998, CanonicalCombiningClass::Virama),
585 (71999, 72002, CanonicalCombiningClass::NotReordered),
586 (72003, 72003, CanonicalCombiningClass::Nukta),
587 (72004, 72159, CanonicalCombiningClass::NotReordered),
588 (72160, 72160, CanonicalCombiningClass::Virama),
589 (72161, 72243, CanonicalCombiningClass::NotReordered),
590 (72244, 72244, CanonicalCombiningClass::Virama),
591 (72245, 72262, CanonicalCombiningClass::NotReordered),
592 (72263, 72263, CanonicalCombiningClass::Virama),
593 (72264, 72344, CanonicalCombiningClass::NotReordered),
594 (72345, 72345, CanonicalCombiningClass::Virama),
595 (72346, 72766, CanonicalCombiningClass::NotReordered),
596 (72767, 72767, CanonicalCombiningClass::Virama),
597 (72768, 73025, CanonicalCombiningClass::NotReordered),
598 (73026, 73026, CanonicalCombiningClass::Nukta),
599 (73027, 73027, CanonicalCombiningClass::NotReordered),
600 (73028, 73029, CanonicalCombiningClass::Virama),
601 (73030, 73110, CanonicalCombiningClass::NotReordered),
602 (73111, 73111, CanonicalCombiningClass::Virama),
603 (73112, 73536, CanonicalCombiningClass::NotReordered),
604 (73537, 73538, CanonicalCombiningClass::Virama),
605 (73539, 90414, CanonicalCombiningClass::NotReordered),
606 (90415, 90415, CanonicalCombiningClass::Virama),
607 (90416, 92911, CanonicalCombiningClass::NotReordered),
608 (92912, 92916, CanonicalCombiningClass::Overlay),
609 (92917, 92975, CanonicalCombiningClass::NotReordered),
610 (92976, 92982, CanonicalCombiningClass::Above),
611 (92983, 94191, CanonicalCombiningClass::NotReordered),
612 (94192, 94193, CanonicalCombiningClass::HanReading),
613 (94194, 113821, CanonicalCombiningClass::NotReordered),
614 (113822, 113822, CanonicalCombiningClass::Overlay),
615 (113823, 119140, CanonicalCombiningClass::NotReordered),
616 (119141, 119142, CanonicalCombiningClass::AttachedAboveRight),
617 (119143, 119145, CanonicalCombiningClass::Overlay),
618 (119146, 119148, CanonicalCombiningClass::NotReordered),
619 (119149, 119149, CanonicalCombiningClass::Right),
620 (119150, 119154, CanonicalCombiningClass::AttachedAboveRight),
621 (119155, 119162, CanonicalCombiningClass::NotReordered),
622 (119163, 119170, CanonicalCombiningClass::Below),
623 (119171, 119172, CanonicalCombiningClass::NotReordered),
624 (119173, 119177, CanonicalCombiningClass::Above),
625 (119178, 119179, CanonicalCombiningClass::Below),
626 (119180, 119209, CanonicalCombiningClass::NotReordered),
627 (119210, 119213, CanonicalCombiningClass::Above),
628 (119214, 119361, CanonicalCombiningClass::NotReordered),
629 (119362, 119364, CanonicalCombiningClass::Above),
630 (119365, 122879, CanonicalCombiningClass::NotReordered),
631 (122880, 122886, CanonicalCombiningClass::Above),
632 (122887, 122887, CanonicalCombiningClass::NotReordered),
633 (122888, 122904, CanonicalCombiningClass::Above),
634 (122905, 122906, CanonicalCombiningClass::NotReordered),
635 (122907, 122913, CanonicalCombiningClass::Above),
636 (122914, 122914, CanonicalCombiningClass::NotReordered),
637 (122915, 122916, CanonicalCombiningClass::Above),
638 (122917, 122917, CanonicalCombiningClass::NotReordered),
639 (122918, 122922, CanonicalCombiningClass::Above),
640 (122923, 123022, CanonicalCombiningClass::NotReordered),
641 (123023, 123023, CanonicalCombiningClass::Above),
642 (123024, 123183, CanonicalCombiningClass::NotReordered),
643 (123184, 123190, CanonicalCombiningClass::Above),
644 (123191, 123565, CanonicalCombiningClass::NotReordered),
645 (123566, 123566, CanonicalCombiningClass::Above),
646 (123567, 123627, CanonicalCombiningClass::NotReordered),
647 (123628, 123631, CanonicalCombiningClass::Above),
648 (123632, 124139, CanonicalCombiningClass::NotReordered),
649 (124140, 124141, CanonicalCombiningClass::AboveRight),
650 (124142, 124142, CanonicalCombiningClass::Below),
651 (124143, 124143, CanonicalCombiningClass::Above),
652 (124144, 124397, CanonicalCombiningClass::NotReordered),
653 (124398, 124398, CanonicalCombiningClass::Above),
654 (124399, 124399, CanonicalCombiningClass::Below),
655 (124400, 125135, CanonicalCombiningClass::NotReordered),
656 (125136, 125142, CanonicalCombiningClass::Below),
657 (125143, 125251, CanonicalCombiningClass::NotReordered),
658 (125252, 125257, CanonicalCombiningClass::Above),
659 (125258, 125258, CanonicalCombiningClass::Nukta),
660 (125259, 1114111, CanonicalCombiningClass::NotReordered),
661];