libstdc++
unicode-data.h
Go to the documentation of this file.
1 // Generated by contrib/unicode/gen_libstdcxx_unicode_data.py, do not edit.
2 
3 // Copyright The GNU Toolchain Authors.
4 //
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
9 // any later version.
10 
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
15 
16 // Under Section 7 of GPL version 3, you are granted additional
17 // permissions described in the GCC Runtime Library Exception, version
18 // 3.1, as published by the Free Software Foundation.
19 
20 // You should have received a copy of the GNU General Public License and
21 // a copy of the GCC Runtime Library Exception along with this program;
22 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
23 // <http://www.gnu.org/licenses/>.
24 
25 /** @file bits/unicode-data.h
26  * This is an internal header file, included by other library headers.
27  * Do not attempt to use it directly. @headername{format}
28  */
29 
30 #ifndef _GLIBCXX_GET_UNICODE_DATA
31 # error "This is not a public header, do not include it directly"
32 #elif _GLIBCXX_GET_UNICODE_DATA != 150100
33 # error "Version mismatch for Unicode static data"
34 #endif
35 
36  // Table generated by contrib/unicode/gen_std_format_width.py,
37  // from EastAsianWidth.txt from the Unicode standard.
38  inline constexpr char32_t __width_edges[] = {
39  0x1100, 0x1160, 0x231a, 0x231c, 0x2329, 0x232b, 0x23e9, 0x23ed,
40  0x23f0, 0x23f1, 0x23f3, 0x23f4, 0x25fd, 0x25ff, 0x2614, 0x2616,
41  0x2648, 0x2654, 0x267f, 0x2680, 0x2693, 0x2694, 0x26a1, 0x26a2,
42  0x26aa, 0x26ac, 0x26bd, 0x26bf, 0x26c4, 0x26c6, 0x26ce, 0x26cf,
43  0x26d4, 0x26d5, 0x26ea, 0x26eb, 0x26f2, 0x26f4, 0x26f5, 0x26f6,
44  0x26fa, 0x26fb, 0x26fd, 0x26fe, 0x2705, 0x2706, 0x270a, 0x270c,
45  0x2728, 0x2729, 0x274c, 0x274d, 0x274e, 0x274f, 0x2753, 0x2756,
46  0x2757, 0x2758, 0x2795, 0x2798, 0x27b0, 0x27b1, 0x27bf, 0x27c0,
47  0x2b1b, 0x2b1d, 0x2b50, 0x2b51, 0x2b55, 0x2b56, 0x2e80, 0x2e9a,
48  0x2e9b, 0x2ef4, 0x2f00, 0x2fd6, 0x2ff0, 0x303f, 0x3041, 0x3097,
49  0x3099, 0x3100, 0x3105, 0x3130, 0x3131, 0x318f, 0x3190, 0x31e4,
50  0x31ef, 0x321f, 0x3220, 0x3248, 0x3250, 0xa48d, 0xa490, 0xa4c7,
51  0xa960, 0xa97d, 0xac00, 0xd7a4, 0xf900, 0xfb00, 0xfe10, 0xfe1a,
52  0xfe30, 0xfe53, 0xfe54, 0xfe67, 0xfe68, 0xfe6c, 0xff01, 0xff61,
53  0xffe0, 0xffe7, 0x16fe0, 0x16fe5, 0x16ff0, 0x16ff2, 0x17000, 0x187f8,
54  0x18800, 0x18cd6, 0x18d00, 0x18d09, 0x1aff0, 0x1aff4, 0x1aff5, 0x1affc,
55  0x1affd, 0x1afff, 0x1b000, 0x1b123, 0x1b132, 0x1b133, 0x1b150, 0x1b153,
56  0x1b155, 0x1b156, 0x1b164, 0x1b168, 0x1b170, 0x1b2fc, 0x1f004, 0x1f005,
57  0x1f0cf, 0x1f0d0, 0x1f18e, 0x1f18f, 0x1f191, 0x1f19b, 0x1f200, 0x1f203,
58  0x1f210, 0x1f23c, 0x1f240, 0x1f249, 0x1f250, 0x1f252, 0x1f260, 0x1f266,
59  0x1f300, 0x1f650, 0x1f680, 0x1f6c6, 0x1f6cc, 0x1f6cd, 0x1f6d0, 0x1f6d3,
60  0x1f6d5, 0x1f6d8, 0x1f6dc, 0x1f6e0, 0x1f6eb, 0x1f6ed, 0x1f6f4, 0x1f6fd,
61  0x1f7e0, 0x1f7ec, 0x1f7f0, 0x1f7f1, 0x1f900, 0x1fa00, 0x1fa70, 0x1fa7d,
62  0x1fa80, 0x1fa89, 0x1fa90, 0x1fabe, 0x1fabf, 0x1fac6, 0x1face, 0x1fadc,
63  0x1fae0, 0x1fae9, 0x1faf0, 0x1faf9, 0x20000, 0x2fffe, 0x30000, 0x3fffe,
64  };
65 
66  enum class _Gcb_property {
67  _Gcb_Other = 0,
68  _Gcb_Control = 1,
69  _Gcb_LF = 2,
70  _Gcb_CR = 3,
71  _Gcb_Extend = 4,
72  _Gcb_Prepend = 5,
73  _Gcb_SpacingMark = 6,
74  _Gcb_L = 7,
75  _Gcb_V = 8,
76  _Gcb_T = 9,
77  _Gcb_ZWJ = 10,
78  _Gcb_LV = 11,
79  _Gcb_LVT = 12,
80  _Gcb_Regional_Indicator = 13,
81  };
82 
83  // Values generated by contrib/unicode/gen_std_format_width.py,
84  // from GraphemeBreakProperty.txt from the Unicode standard.
85  // Entries are (code_point << shift_bits) + property.
86  inline constexpr int __gcb_shift_bits = 0x4;
87  inline constexpr uint32_t __gcb_edges[] = {
88  0x1, 0xa2, 0xb1, 0xd3, 0xe1, 0x200,
89  0x7f1, 0xa00, 0xad1, 0xae0, 0x3004, 0x3700,
90  0x4834, 0x48a0, 0x5914, 0x5be0, 0x5bf4, 0x5c00,
91  0x5c14, 0x5c30, 0x5c44, 0x5c60, 0x5c74, 0x5c80,
92  0x6005, 0x6060, 0x6104, 0x61b0, 0x61c1, 0x61d0,
93  0x64b4, 0x6600, 0x6704, 0x6710, 0x6d64, 0x6dd5,
94  0x6de0, 0x6df4, 0x6e50, 0x6e74, 0x6e90, 0x6ea4,
95  0x6ee0, 0x70f5, 0x7100, 0x7114, 0x7120, 0x7304,
96  0x74b0, 0x7a64, 0x7b10, 0x7eb4, 0x7f40, 0x7fd4,
97  0x7fe0, 0x8164, 0x81a0, 0x81b4, 0x8240, 0x8254,
98  0x8280, 0x8294, 0x82e0, 0x8594, 0x85c0, 0x8905,
99  0x8920, 0x8984, 0x8a00, 0x8ca4, 0x8e25, 0x8e34,
100  0x9036, 0x9040, 0x93a4, 0x93b6, 0x93c4, 0x93d0,
101  0x93e6, 0x9414, 0x9496, 0x94d4, 0x94e6, 0x9500,
102  0x9514, 0x9580, 0x9624, 0x9640, 0x9814, 0x9826,
103  0x9840, 0x9bc4, 0x9bd0, 0x9be4, 0x9bf6, 0x9c14,
104  0x9c50, 0x9c76, 0x9c90, 0x9cb6, 0x9cd4, 0x9ce0,
105  0x9d74, 0x9d80, 0x9e24, 0x9e40, 0x9fe4, 0x9ff0,
106  0xa014, 0xa036, 0xa040, 0xa3c4, 0xa3d0, 0xa3e6,
107  0xa414, 0xa430, 0xa474, 0xa490, 0xa4b4, 0xa4e0,
108  0xa514, 0xa520, 0xa704, 0xa720, 0xa754, 0xa760,
109  0xa814, 0xa836, 0xa840, 0xabc4, 0xabd0, 0xabe6,
110  0xac14, 0xac60, 0xac74, 0xac96, 0xaca0, 0xacb6,
111  0xacd4, 0xace0, 0xae24, 0xae40, 0xafa4, 0xb000,
112  0xb014, 0xb026, 0xb040, 0xb3c4, 0xb3d0, 0xb3e4,
113  0xb406, 0xb414, 0xb450, 0xb476, 0xb490, 0xb4b6,
114  0xb4d4, 0xb4e0, 0xb554, 0xb580, 0xb624, 0xb640,
115  0xb824, 0xb830, 0xbbe4, 0xbbf6, 0xbc04, 0xbc16,
116  0xbc30, 0xbc66, 0xbc90, 0xbca6, 0xbcd4, 0xbce0,
117  0xbd74, 0xbd80, 0xc004, 0xc016, 0xc044, 0xc050,
118  0xc3c4, 0xc3d0, 0xc3e4, 0xc416, 0xc450, 0xc464,
119  0xc490, 0xc4a4, 0xc4e0, 0xc554, 0xc570, 0xc624,
120  0xc640, 0xc814, 0xc826, 0xc840, 0xcbc4, 0xcbd0,
121  0xcbe6, 0xcbf4, 0xcc06, 0xcc24, 0xcc36, 0xcc50,
122  0xcc64, 0xcc76, 0xcc90, 0xcca6, 0xccc4, 0xcce0,
123  0xcd54, 0xcd70, 0xce24, 0xce40, 0xcf36, 0xcf40,
124  0xd004, 0xd026, 0xd040, 0xd3b4, 0xd3d0, 0xd3e4,
125  0xd3f6, 0xd414, 0xd450, 0xd466, 0xd490, 0xd4a6,
126  0xd4d4, 0xd4e5, 0xd4f0, 0xd574, 0xd580, 0xd624,
127  0xd640, 0xd814, 0xd826, 0xd840, 0xdca4, 0xdcb0,
128  0xdcf4, 0xdd06, 0xdd24, 0xdd50, 0xdd64, 0xdd70,
129  0xdd86, 0xddf4, 0xde00, 0xdf26, 0xdf40, 0xe314,
130  0xe320, 0xe336, 0xe344, 0xe3b0, 0xe474, 0xe4f0,
131  0xeb14, 0xeb20, 0xeb36, 0xeb44, 0xebd0, 0xec84,
132  0xecf0, 0xf184, 0xf1a0, 0xf354, 0xf360, 0xf374,
133  0xf380, 0xf394, 0xf3a0, 0xf3e6, 0xf400, 0xf714,
134  0xf7f6, 0xf804, 0xf850, 0xf864, 0xf880, 0xf8d4,
135  0xf980, 0xf994, 0xfbd0, 0xfc64, 0xfc70, 0x102d4,
136  0x10316, 0x10324, 0x10380, 0x10394, 0x103b6, 0x103d4,
137  0x103f0, 0x10566, 0x10584, 0x105a0, 0x105e4, 0x10610,
138  0x10714, 0x10750, 0x10824, 0x10830, 0x10846, 0x10854,
139  0x10870, 0x108d4, 0x108e0, 0x109d4, 0x109e0, 0x11007,
140  0x11608, 0x11a89, 0x12000, 0x135d4, 0x13600, 0x17124,
141  0x17156, 0x17160, 0x17324, 0x17346, 0x17350, 0x17524,
142  0x17540, 0x17724, 0x17740, 0x17b44, 0x17b66, 0x17b74,
143  0x17be6, 0x17c64, 0x17c76, 0x17c94, 0x17d40, 0x17dd4,
144  0x17de0, 0x180b4, 0x180e1, 0x180f4, 0x18100, 0x18854,
145  0x18870, 0x18a94, 0x18aa0, 0x19204, 0x19236, 0x19274,
146  0x19296, 0x192c0, 0x19306, 0x19324, 0x19336, 0x19394,
147  0x193c0, 0x1a174, 0x1a196, 0x1a1b4, 0x1a1c0, 0x1a556,
148  0x1a564, 0x1a576, 0x1a584, 0x1a5f0, 0x1a604, 0x1a610,
149  0x1a624, 0x1a630, 0x1a654, 0x1a6d6, 0x1a734, 0x1a7d0,
150  0x1a7f4, 0x1a800, 0x1ab04, 0x1acf0, 0x1b004, 0x1b046,
151  0x1b050, 0x1b344, 0x1b3b6, 0x1b3c4, 0x1b3d6, 0x1b424,
152  0x1b436, 0x1b450, 0x1b6b4, 0x1b740, 0x1b804, 0x1b826,
153  0x1b830, 0x1ba16, 0x1ba24, 0x1ba66, 0x1ba84, 0x1baa6,
154  0x1bab4, 0x1bae0, 0x1be64, 0x1be76, 0x1be84, 0x1bea6,
155  0x1bed4, 0x1bee6, 0x1bef4, 0x1bf26, 0x1bf40, 0x1c246,
156  0x1c2c4, 0x1c346, 0x1c364, 0x1c380, 0x1cd04, 0x1cd30,
157  0x1cd44, 0x1ce16, 0x1ce24, 0x1ce90, 0x1ced4, 0x1cee0,
158  0x1cf44, 0x1cf50, 0x1cf76, 0x1cf84, 0x1cfa0, 0x1dc04,
159  0x1e000, 0x200b1, 0x200c4, 0x200da, 0x200e1, 0x20100,
160  0x20281, 0x202f0, 0x20601, 0x20700, 0x20d04, 0x20f10,
161  0x2cef4, 0x2cf20, 0x2d7f4, 0x2d800, 0x2de04, 0x2e000,
162  0x302a4, 0x30300, 0x30994, 0x309b0, 0xa66f4, 0xa6730,
163  0xa6744, 0xa67e0, 0xa69e4, 0xa6a00, 0xa6f04, 0xa6f20,
164  0xa8024, 0xa8030, 0xa8064, 0xa8070, 0xa80b4, 0xa80c0,
165  0xa8236, 0xa8254, 0xa8276, 0xa8280, 0xa82c4, 0xa82d0,
166  0xa8806, 0xa8820, 0xa8b46, 0xa8c44, 0xa8c60, 0xa8e04,
167  0xa8f20, 0xa8ff4, 0xa9000, 0xa9264, 0xa92e0, 0xa9474,
168  0xa9526, 0xa9540, 0xa9607, 0xa97d0, 0xa9804, 0xa9836,
169  0xa9840, 0xa9b34, 0xa9b46, 0xa9b64, 0xa9ba6, 0xa9bc4,
170  0xa9be6, 0xa9c10, 0xa9e54, 0xa9e60, 0xaa294, 0xaa2f6,
171  0xaa314, 0xaa336, 0xaa354, 0xaa370, 0xaa434, 0xaa440,
172  0xaa4c4, 0xaa4d6, 0xaa4e0, 0xaa7c4, 0xaa7d0, 0xaab04,
173  0xaab10, 0xaab24, 0xaab50, 0xaab74, 0xaab90, 0xaabe4,
174  0xaac00, 0xaac14, 0xaac20, 0xaaeb6, 0xaaec4, 0xaaee6,
175  0xaaf00, 0xaaf56, 0xaaf64, 0xaaf70, 0xabe36, 0xabe54,
176  0xabe66, 0xabe84, 0xabe96, 0xabeb0, 0xabec6, 0xabed4,
177  0xabee0, 0xac00b, 0xac01c, 0xac1cb, 0xac1dc, 0xac38b,
178  0xac39c, 0xac54b, 0xac55c, 0xac70b, 0xac71c, 0xac8cb,
179  0xac8dc, 0xaca8b, 0xaca9c, 0xacc4b, 0xacc5c, 0xace0b,
180  0xace1c, 0xacfcb, 0xacfdc, 0xad18b, 0xad19c, 0xad34b,
181  0xad35c, 0xad50b, 0xad51c, 0xad6cb, 0xad6dc, 0xad88b,
182  0xad89c, 0xada4b, 0xada5c, 0xadc0b, 0xadc1c, 0xaddcb,
183  0xadddc, 0xadf8b, 0xadf9c, 0xae14b, 0xae15c, 0xae30b,
184  0xae31c, 0xae4cb, 0xae4dc, 0xae68b, 0xae69c, 0xae84b,
185  0xae85c, 0xaea0b, 0xaea1c, 0xaebcb, 0xaebdc, 0xaed8b,
186  0xaed9c, 0xaef4b, 0xaef5c, 0xaf10b, 0xaf11c, 0xaf2cb,
187  0xaf2dc, 0xaf48b, 0xaf49c, 0xaf64b, 0xaf65c, 0xaf80b,
188  0xaf81c, 0xaf9cb, 0xaf9dc, 0xafb8b, 0xafb9c, 0xafd4b,
189  0xafd5c, 0xaff0b, 0xaff1c, 0xb00cb, 0xb00dc, 0xb028b,
190  0xb029c, 0xb044b, 0xb045c, 0xb060b, 0xb061c, 0xb07cb,
191  0xb07dc, 0xb098b, 0xb099c, 0xb0b4b, 0xb0b5c, 0xb0d0b,
192  0xb0d1c, 0xb0ecb, 0xb0edc, 0xb108b, 0xb109c, 0xb124b,
193  0xb125c, 0xb140b, 0xb141c, 0xb15cb, 0xb15dc, 0xb178b,
194  0xb179c, 0xb194b, 0xb195c, 0xb1b0b, 0xb1b1c, 0xb1ccb,
195  0xb1cdc, 0xb1e8b, 0xb1e9c, 0xb204b, 0xb205c, 0xb220b,
196  0xb221c, 0xb23cb, 0xb23dc, 0xb258b, 0xb259c, 0xb274b,
197  0xb275c, 0xb290b, 0xb291c, 0xb2acb, 0xb2adc, 0xb2c8b,
198  0xb2c9c, 0xb2e4b, 0xb2e5c, 0xb300b, 0xb301c, 0xb31cb,
199  0xb31dc, 0xb338b, 0xb339c, 0xb354b, 0xb355c, 0xb370b,
200  0xb371c, 0xb38cb, 0xb38dc, 0xb3a8b, 0xb3a9c, 0xb3c4b,
201  0xb3c5c, 0xb3e0b, 0xb3e1c, 0xb3fcb, 0xb3fdc, 0xb418b,
202  0xb419c, 0xb434b, 0xb435c, 0xb450b, 0xb451c, 0xb46cb,
203  0xb46dc, 0xb488b, 0xb489c, 0xb4a4b, 0xb4a5c, 0xb4c0b,
204  0xb4c1c, 0xb4dcb, 0xb4ddc, 0xb4f8b, 0xb4f9c, 0xb514b,
205  0xb515c, 0xb530b, 0xb531c, 0xb54cb, 0xb54dc, 0xb568b,
206  0xb569c, 0xb584b, 0xb585c, 0xb5a0b, 0xb5a1c, 0xb5bcb,
207  0xb5bdc, 0xb5d8b, 0xb5d9c, 0xb5f4b, 0xb5f5c, 0xb610b,
208  0xb611c, 0xb62cb, 0xb62dc, 0xb648b, 0xb649c, 0xb664b,
209  0xb665c, 0xb680b, 0xb681c, 0xb69cb, 0xb69dc, 0xb6b8b,
210  0xb6b9c, 0xb6d4b, 0xb6d5c, 0xb6f0b, 0xb6f1c, 0xb70cb,
211  0xb70dc, 0xb728b, 0xb729c, 0xb744b, 0xb745c, 0xb760b,
212  0xb761c, 0xb77cb, 0xb77dc, 0xb798b, 0xb799c, 0xb7b4b,
213  0xb7b5c, 0xb7d0b, 0xb7d1c, 0xb7ecb, 0xb7edc, 0xb808b,
214  0xb809c, 0xb824b, 0xb825c, 0xb840b, 0xb841c, 0xb85cb,
215  0xb85dc, 0xb878b, 0xb879c, 0xb894b, 0xb895c, 0xb8b0b,
216  0xb8b1c, 0xb8ccb, 0xb8cdc, 0xb8e8b, 0xb8e9c, 0xb904b,
217  0xb905c, 0xb920b, 0xb921c, 0xb93cb, 0xb93dc, 0xb958b,
218  0xb959c, 0xb974b, 0xb975c, 0xb990b, 0xb991c, 0xb9acb,
219  0xb9adc, 0xb9c8b, 0xb9c9c, 0xb9e4b, 0xb9e5c, 0xba00b,
220  0xba01c, 0xba1cb, 0xba1dc, 0xba38b, 0xba39c, 0xba54b,
221  0xba55c, 0xba70b, 0xba71c, 0xba8cb, 0xba8dc, 0xbaa8b,
222  0xbaa9c, 0xbac4b, 0xbac5c, 0xbae0b, 0xbae1c, 0xbafcb,
223  0xbafdc, 0xbb18b, 0xbb19c, 0xbb34b, 0xbb35c, 0xbb50b,
224  0xbb51c, 0xbb6cb, 0xbb6dc, 0xbb88b, 0xbb89c, 0xbba4b,
225  0xbba5c, 0xbbc0b, 0xbbc1c, 0xbbdcb, 0xbbddc, 0xbbf8b,
226  0xbbf9c, 0xbc14b, 0xbc15c, 0xbc30b, 0xbc31c, 0xbc4cb,
227  0xbc4dc, 0xbc68b, 0xbc69c, 0xbc84b, 0xbc85c, 0xbca0b,
228  0xbca1c, 0xbcbcb, 0xbcbdc, 0xbcd8b, 0xbcd9c, 0xbcf4b,
229  0xbcf5c, 0xbd10b, 0xbd11c, 0xbd2cb, 0xbd2dc, 0xbd48b,
230  0xbd49c, 0xbd64b, 0xbd65c, 0xbd80b, 0xbd81c, 0xbd9cb,
231  0xbd9dc, 0xbdb8b, 0xbdb9c, 0xbdd4b, 0xbdd5c, 0xbdf0b,
232  0xbdf1c, 0xbe0cb, 0xbe0dc, 0xbe28b, 0xbe29c, 0xbe44b,
233  0xbe45c, 0xbe60b, 0xbe61c, 0xbe7cb, 0xbe7dc, 0xbe98b,
234  0xbe99c, 0xbeb4b, 0xbeb5c, 0xbed0b, 0xbed1c, 0xbeecb,
235  0xbeedc, 0xbf08b, 0xbf09c, 0xbf24b, 0xbf25c, 0xbf40b,
236  0xbf41c, 0xbf5cb, 0xbf5dc, 0xbf78b, 0xbf79c, 0xbf94b,
237  0xbf95c, 0xbfb0b, 0xbfb1c, 0xbfccb, 0xbfcdc, 0xbfe8b,
238  0xbfe9c, 0xc004b, 0xc005c, 0xc020b, 0xc021c, 0xc03cb,
239  0xc03dc, 0xc058b, 0xc059c, 0xc074b, 0xc075c, 0xc090b,
240  0xc091c, 0xc0acb, 0xc0adc, 0xc0c8b, 0xc0c9c, 0xc0e4b,
241  0xc0e5c, 0xc100b, 0xc101c, 0xc11cb, 0xc11dc, 0xc138b,
242  0xc139c, 0xc154b, 0xc155c, 0xc170b, 0xc171c, 0xc18cb,
243  0xc18dc, 0xc1a8b, 0xc1a9c, 0xc1c4b, 0xc1c5c, 0xc1e0b,
244  0xc1e1c, 0xc1fcb, 0xc1fdc, 0xc218b, 0xc219c, 0xc234b,
245  0xc235c, 0xc250b, 0xc251c, 0xc26cb, 0xc26dc, 0xc288b,
246  0xc289c, 0xc2a4b, 0xc2a5c, 0xc2c0b, 0xc2c1c, 0xc2dcb,
247  0xc2ddc, 0xc2f8b, 0xc2f9c, 0xc314b, 0xc315c, 0xc330b,
248  0xc331c, 0xc34cb, 0xc34dc, 0xc368b, 0xc369c, 0xc384b,
249  0xc385c, 0xc3a0b, 0xc3a1c, 0xc3bcb, 0xc3bdc, 0xc3d8b,
250  0xc3d9c, 0xc3f4b, 0xc3f5c, 0xc410b, 0xc411c, 0xc42cb,
251  0xc42dc, 0xc448b, 0xc449c, 0xc464b, 0xc465c, 0xc480b,
252  0xc481c, 0xc49cb, 0xc49dc, 0xc4b8b, 0xc4b9c, 0xc4d4b,
253  0xc4d5c, 0xc4f0b, 0xc4f1c, 0xc50cb, 0xc50dc, 0xc528b,
254  0xc529c, 0xc544b, 0xc545c, 0xc560b, 0xc561c, 0xc57cb,
255  0xc57dc, 0xc598b, 0xc599c, 0xc5b4b, 0xc5b5c, 0xc5d0b,
256  0xc5d1c, 0xc5ecb, 0xc5edc, 0xc608b, 0xc609c, 0xc624b,
257  0xc625c, 0xc640b, 0xc641c, 0xc65cb, 0xc65dc, 0xc678b,
258  0xc679c, 0xc694b, 0xc695c, 0xc6b0b, 0xc6b1c, 0xc6ccb,
259  0xc6cdc, 0xc6e8b, 0xc6e9c, 0xc704b, 0xc705c, 0xc720b,
260  0xc721c, 0xc73cb, 0xc73dc, 0xc758b, 0xc759c, 0xc774b,
261  0xc775c, 0xc790b, 0xc791c, 0xc7acb, 0xc7adc, 0xc7c8b,
262  0xc7c9c, 0xc7e4b, 0xc7e5c, 0xc800b, 0xc801c, 0xc81cb,
263  0xc81dc, 0xc838b, 0xc839c, 0xc854b, 0xc855c, 0xc870b,
264  0xc871c, 0xc88cb, 0xc88dc, 0xc8a8b, 0xc8a9c, 0xc8c4b,
265  0xc8c5c, 0xc8e0b, 0xc8e1c, 0xc8fcb, 0xc8fdc, 0xc918b,
266  0xc919c, 0xc934b, 0xc935c, 0xc950b, 0xc951c, 0xc96cb,
267  0xc96dc, 0xc988b, 0xc989c, 0xc9a4b, 0xc9a5c, 0xc9c0b,
268  0xc9c1c, 0xc9dcb, 0xc9ddc, 0xc9f8b, 0xc9f9c, 0xca14b,
269  0xca15c, 0xca30b, 0xca31c, 0xca4cb, 0xca4dc, 0xca68b,
270  0xca69c, 0xca84b, 0xca85c, 0xcaa0b, 0xcaa1c, 0xcabcb,
271  0xcabdc, 0xcad8b, 0xcad9c, 0xcaf4b, 0xcaf5c, 0xcb10b,
272  0xcb11c, 0xcb2cb, 0xcb2dc, 0xcb48b, 0xcb49c, 0xcb64b,
273  0xcb65c, 0xcb80b, 0xcb81c, 0xcb9cb, 0xcb9dc, 0xcbb8b,
274  0xcbb9c, 0xcbd4b, 0xcbd5c, 0xcbf0b, 0xcbf1c, 0xcc0cb,
275  0xcc0dc, 0xcc28b, 0xcc29c, 0xcc44b, 0xcc45c, 0xcc60b,
276  0xcc61c, 0xcc7cb, 0xcc7dc, 0xcc98b, 0xcc99c, 0xccb4b,
277  0xccb5c, 0xccd0b, 0xccd1c, 0xccecb, 0xccedc, 0xcd08b,
278  0xcd09c, 0xcd24b, 0xcd25c, 0xcd40b, 0xcd41c, 0xcd5cb,
279  0xcd5dc, 0xcd78b, 0xcd79c, 0xcd94b, 0xcd95c, 0xcdb0b,
280  0xcdb1c, 0xcdccb, 0xcdcdc, 0xcde8b, 0xcde9c, 0xce04b,
281  0xce05c, 0xce20b, 0xce21c, 0xce3cb, 0xce3dc, 0xce58b,
282  0xce59c, 0xce74b, 0xce75c, 0xce90b, 0xce91c, 0xceacb,
283  0xceadc, 0xcec8b, 0xcec9c, 0xcee4b, 0xcee5c, 0xcf00b,
284  0xcf01c, 0xcf1cb, 0xcf1dc, 0xcf38b, 0xcf39c, 0xcf54b,
285  0xcf55c, 0xcf70b, 0xcf71c, 0xcf8cb, 0xcf8dc, 0xcfa8b,
286  0xcfa9c, 0xcfc4b, 0xcfc5c, 0xcfe0b, 0xcfe1c, 0xcffcb,
287  0xcffdc, 0xd018b, 0xd019c, 0xd034b, 0xd035c, 0xd050b,
288  0xd051c, 0xd06cb, 0xd06dc, 0xd088b, 0xd089c, 0xd0a4b,
289  0xd0a5c, 0xd0c0b, 0xd0c1c, 0xd0dcb, 0xd0ddc, 0xd0f8b,
290  0xd0f9c, 0xd114b, 0xd115c, 0xd130b, 0xd131c, 0xd14cb,
291  0xd14dc, 0xd168b, 0xd169c, 0xd184b, 0xd185c, 0xd1a0b,
292  0xd1a1c, 0xd1bcb, 0xd1bdc, 0xd1d8b, 0xd1d9c, 0xd1f4b,
293  0xd1f5c, 0xd210b, 0xd211c, 0xd22cb, 0xd22dc, 0xd248b,
294  0xd249c, 0xd264b, 0xd265c, 0xd280b, 0xd281c, 0xd29cb,
295  0xd29dc, 0xd2b8b, 0xd2b9c, 0xd2d4b, 0xd2d5c, 0xd2f0b,
296  0xd2f1c, 0xd30cb, 0xd30dc, 0xd328b, 0xd329c, 0xd344b,
297  0xd345c, 0xd360b, 0xd361c, 0xd37cb, 0xd37dc, 0xd398b,
298  0xd399c, 0xd3b4b, 0xd3b5c, 0xd3d0b, 0xd3d1c, 0xd3ecb,
299  0xd3edc, 0xd408b, 0xd409c, 0xd424b, 0xd425c, 0xd440b,
300  0xd441c, 0xd45cb, 0xd45dc, 0xd478b, 0xd479c, 0xd494b,
301  0xd495c, 0xd4b0b, 0xd4b1c, 0xd4ccb, 0xd4cdc, 0xd4e8b,
302  0xd4e9c, 0xd504b, 0xd505c, 0xd520b, 0xd521c, 0xd53cb,
303  0xd53dc, 0xd558b, 0xd559c, 0xd574b, 0xd575c, 0xd590b,
304  0xd591c, 0xd5acb, 0xd5adc, 0xd5c8b, 0xd5c9c, 0xd5e4b,
305  0xd5e5c, 0xd600b, 0xd601c, 0xd61cb, 0xd61dc, 0xd638b,
306  0xd639c, 0xd654b, 0xd655c, 0xd670b, 0xd671c, 0xd68cb,
307  0xd68dc, 0xd6a8b, 0xd6a9c, 0xd6c4b, 0xd6c5c, 0xd6e0b,
308  0xd6e1c, 0xd6fcb, 0xd6fdc, 0xd718b, 0xd719c, 0xd734b,
309  0xd735c, 0xd750b, 0xd751c, 0xd76cb, 0xd76dc, 0xd788b,
310  0xd789c, 0xd7a40, 0xd7b08, 0xd7c70, 0xd7cb9, 0xd7fc0,
311  0xfb1e4, 0xfb1f0, 0xfe004, 0xfe100, 0xfe204, 0xfe300,
312  0xfeff1, 0xff000, 0xff9e4, 0xffa00, 0xfff01, 0xfffc0,
313  0x101fd4, 0x101fe0, 0x102e04, 0x102e10, 0x103764, 0x1037b0,
314  0x10a014, 0x10a040, 0x10a054, 0x10a070, 0x10a0c4, 0x10a100,
315  0x10a384, 0x10a3b0, 0x10a3f4, 0x10a400, 0x10ae54, 0x10ae70,
316  0x10d244, 0x10d280, 0x10eab4, 0x10ead0, 0x10efd4, 0x10f000,
317  0x10f464, 0x10f510, 0x10f824, 0x10f860, 0x110006, 0x110014,
318  0x110026, 0x110030, 0x110384, 0x110470, 0x110704, 0x110710,
319  0x110734, 0x110750, 0x1107f4, 0x110826, 0x110830, 0x110b06,
320  0x110b34, 0x110b76, 0x110b94, 0x110bb0, 0x110bd5, 0x110be0,
321  0x110c24, 0x110c30, 0x110cd5, 0x110ce0, 0x111004, 0x111030,
322  0x111274, 0x1112c6, 0x1112d4, 0x111350, 0x111456, 0x111470,
323  0x111734, 0x111740, 0x111804, 0x111826, 0x111830, 0x111b36,
324  0x111b64, 0x111bf6, 0x111c10, 0x111c25, 0x111c40, 0x111c94,
325  0x111cd0, 0x111ce6, 0x111cf4, 0x111d00, 0x1122c6, 0x1122f4,
326  0x112326, 0x112344, 0x112356, 0x112364, 0x112380, 0x1123e4,
327  0x1123f0, 0x112414, 0x112420, 0x112df4, 0x112e06, 0x112e34,
328  0x112eb0, 0x113004, 0x113026, 0x113040, 0x1133b4, 0x1133d0,
329  0x1133e4, 0x1133f6, 0x113404, 0x113416, 0x113450, 0x113476,
330  0x113490, 0x1134b6, 0x1134e0, 0x113574, 0x113580, 0x113626,
331  0x113640, 0x113664, 0x1136d0, 0x113704, 0x113750, 0x114356,
332  0x114384, 0x114406, 0x114424, 0x114456, 0x114464, 0x114470,
333  0x1145e4, 0x1145f0, 0x114b04, 0x114b16, 0x114b34, 0x114b96,
334  0x114ba4, 0x114bb6, 0x114bd4, 0x114be6, 0x114bf4, 0x114c16,
335  0x114c24, 0x114c40, 0x115af4, 0x115b06, 0x115b24, 0x115b60,
336  0x115b86, 0x115bc4, 0x115be6, 0x115bf4, 0x115c10, 0x115dc4,
337  0x115de0, 0x116306, 0x116334, 0x1163b6, 0x1163d4, 0x1163e6,
338  0x1163f4, 0x116410, 0x116ab4, 0x116ac6, 0x116ad4, 0x116ae6,
339  0x116b04, 0x116b66, 0x116b74, 0x116b80, 0x1171d4, 0x117200,
340  0x117224, 0x117266, 0x117274, 0x1172c0, 0x1182c6, 0x1182f4,
341  0x118386, 0x118394, 0x1183b0, 0x119304, 0x119316, 0x119360,
342  0x119376, 0x119390, 0x1193b4, 0x1193d6, 0x1193e4, 0x1193f5,
343  0x119406, 0x119415, 0x119426, 0x119434, 0x119440, 0x119d16,
344  0x119d44, 0x119d80, 0x119da4, 0x119dc6, 0x119e04, 0x119e10,
345  0x119e46, 0x119e50, 0x11a014, 0x11a0b0, 0x11a334, 0x11a396,
346  0x11a3a5, 0x11a3b4, 0x11a3f0, 0x11a474, 0x11a480, 0x11a514,
347  0x11a576, 0x11a594, 0x11a5c0, 0x11a845, 0x11a8a4, 0x11a976,
348  0x11a984, 0x11a9a0, 0x11c2f6, 0x11c304, 0x11c370, 0x11c384,
349  0x11c3e6, 0x11c3f4, 0x11c400, 0x11c924, 0x11ca80, 0x11ca96,
350  0x11caa4, 0x11cb16, 0x11cb24, 0x11cb46, 0x11cb54, 0x11cb70,
351  0x11d314, 0x11d370, 0x11d3a4, 0x11d3b0, 0x11d3c4, 0x11d3e0,
352  0x11d3f4, 0x11d465, 0x11d474, 0x11d480, 0x11d8a6, 0x11d8f0,
353  0x11d904, 0x11d920, 0x11d936, 0x11d954, 0x11d966, 0x11d974,
354  0x11d980, 0x11ef34, 0x11ef56, 0x11ef70, 0x11f004, 0x11f025,
355  0x11f036, 0x11f040, 0x11f346, 0x11f364, 0x11f3b0, 0x11f3e6,
356  0x11f404, 0x11f416, 0x11f424, 0x11f430, 0x134301, 0x134404,
357  0x134410, 0x134474, 0x134560, 0x16af04, 0x16af50, 0x16b304,
358  0x16b370, 0x16f4f4, 0x16f500, 0x16f516, 0x16f880, 0x16f8f4,
359  0x16f930, 0x16fe44, 0x16fe50, 0x16ff06, 0x16ff20, 0x1bc9d4,
360  0x1bc9f0, 0x1bca01, 0x1bca40, 0x1cf004, 0x1cf2e0, 0x1cf304,
361  0x1cf470, 0x1d1654, 0x1d1666, 0x1d1674, 0x1d16a0, 0x1d16d6,
362  0x1d16e4, 0x1d1731, 0x1d17b4, 0x1d1830, 0x1d1854, 0x1d18c0,
363  0x1d1aa4, 0x1d1ae0, 0x1d2424, 0x1d2450, 0x1da004, 0x1da370,
364  0x1da3b4, 0x1da6d0, 0x1da754, 0x1da760, 0x1da844, 0x1da850,
365  0x1da9b4, 0x1daa00, 0x1daa14, 0x1dab00, 0x1e0004, 0x1e0070,
366  0x1e0084, 0x1e0190, 0x1e01b4, 0x1e0220, 0x1e0234, 0x1e0250,
367  0x1e0264, 0x1e02b0, 0x1e08f4, 0x1e0900, 0x1e1304, 0x1e1370,
368  0x1e2ae4, 0x1e2af0, 0x1e2ec4, 0x1e2f00, 0x1e4ec4, 0x1e4f00,
369  0x1e8d04, 0x1e8d70, 0x1e9444, 0x1e94b0, 0x1f1e6d, 0x1f2000,
370  0x1f3fb4, 0x1f4000, 0xe00001, 0xe00204, 0xe00801, 0xe01004,
371  0xe01f01, 0xe10000,
372  };
373 
374  inline constexpr char32_t __incb_linkers[] = {
375  0x094d, 0x09cd, 0x0acd, 0x0b4d, 0x0c4d, 0x0d4d,
376  };
377 
378  enum class _InCB { _Consonant = 1, _Extend = 2 };
379 
380  // Values generated by contrib/unicode/gen_std_format_width.py,
381  // from DerivedCoreProperties.txt from the Unicode standard.
382  // Entries are (code_point << 2) + property.
383  inline constexpr uint32_t __incb_edges[] = {
384  0xc02, 0xd3c, 0xd42, 0xdc0, 0x120e, 0x1220,
385  0x1646, 0x16f8, 0x16fe, 0x1700, 0x1706, 0x170c,
386  0x1712, 0x1718, 0x171e, 0x1720, 0x1842, 0x186c,
387  0x192e, 0x1980, 0x19c2, 0x19c4, 0x1b5a, 0x1b74,
388  0x1b7e, 0x1b94, 0x1b9e, 0x1ba4, 0x1baa, 0x1bb8,
389  0x1c46, 0x1c48, 0x1cc2, 0x1d2c, 0x1fae, 0x1fd0,
390  0x1ff6, 0x1ff8, 0x205a, 0x2068, 0x206e, 0x2090,
391  0x2096, 0x20a0, 0x20a6, 0x20b8, 0x2166, 0x2170,
392  0x2262, 0x2280, 0x232a, 0x2388, 0x238e, 0x2400,
393  0x2455, 0x24e8, 0x24f2, 0x24f4, 0x2546, 0x2554,
394  0x2561, 0x2580, 0x25e1, 0x2600, 0x2655, 0x26a4,
395  0x26a9, 0x26c4, 0x26c9, 0x26cc, 0x26d9, 0x26e8,
396  0x26f2, 0x26f4, 0x2771, 0x2778, 0x277d, 0x2780,
397  0x27c1, 0x27c8, 0x27fa, 0x27fc, 0x28f2, 0x28f4,
398  0x2a55, 0x2aa4, 0x2aa9, 0x2ac4, 0x2ac9, 0x2ad0,
399  0x2ad5, 0x2ae8, 0x2af2, 0x2af4, 0x2be5, 0x2be8,
400  0x2c55, 0x2ca4, 0x2ca9, 0x2cc4, 0x2cc9, 0x2cd0,
401  0x2cd5, 0x2ce8, 0x2cf2, 0x2cf4, 0x2d71, 0x2d78,
402  0x2d7d, 0x2d80, 0x2dc5, 0x2dc8, 0x3055, 0x30a4,
403  0x30a9, 0x30e8, 0x30f2, 0x30f4, 0x3156, 0x315c,
404  0x3161, 0x316c, 0x32f2, 0x32f4, 0x3455, 0x34ee,
405  0x34f4, 0x38e2, 0x38ec, 0x3922, 0x3930, 0x3ae2,
406  0x3aec, 0x3b22, 0x3b30, 0x3c62, 0x3c68, 0x3cd6,
407  0x3cd8, 0x3cde, 0x3ce0, 0x3ce6, 0x3ce8, 0x3dc6,
408  0x3dcc, 0x3dd2, 0x3dd4, 0x3dea, 0x3df8, 0x3e02,
409  0x3e04, 0x3e0a, 0x3e14, 0x3e1a, 0x3e20, 0x3f1a,
410  0x3f1c, 0x40de, 0x40e0, 0x40e6, 0x40ec, 0x4236,
411  0x4238, 0x4d76, 0x4d80, 0x5c52, 0x5c54, 0x5f4a,
412  0x5f4c, 0x5f76, 0x5f78, 0x62a6, 0x62a8, 0x64e6,
413  0x64f0, 0x685e, 0x6864, 0x6982, 0x6984, 0x69d6,
414  0x69f4, 0x69fe, 0x6a00, 0x6ac2, 0x6af8, 0x6afe,
415  0x6b3c, 0x6cd2, 0x6cd4, 0x6dae, 0x6dd0, 0x6eae,
416  0x6eb0, 0x6f9a, 0x6f9c, 0x70de, 0x70e0, 0x7342,
417  0x734c, 0x7352, 0x7384, 0x738a, 0x73a4, 0x73b6,
418  0x73b8, 0x73d2, 0x73d4, 0x73e2, 0x73e8, 0x7702,
419  0x7800, 0x8036, 0x8038, 0x8342, 0x8374, 0x8386,
420  0x8388, 0x8396, 0x83c4, 0xb3be, 0xb3c8, 0xb5fe,
421  0xb600, 0xb782, 0xb800, 0xc0aa, 0xc0c0, 0xc266,
422  0xc26c, 0x299be, 0x299c0, 0x299d2, 0x299f8, 0x29a7a,
423  0x29a80, 0x29bc2, 0x29bc8, 0x2a0b2, 0x2a0b4, 0x2a382,
424  0x2a3c8, 0x2a4ae, 0x2a4b8, 0x2a6ce, 0x2a6d0, 0x2aac2,
425  0x2aac4, 0x2aaca, 0x2aad4, 0x2aade, 0x2aae4, 0x2aafa,
426  0x2ab00, 0x2ab06, 0x2ab08, 0x2abda, 0x2abdc, 0x2afb6,
427  0x2afb8, 0x3ec7a, 0x3ec7c, 0x3f882, 0x3f8c0, 0x407f6,
428  0x407f8, 0x40b82, 0x40b84, 0x40dda, 0x40dec, 0x42836,
429  0x42838, 0x4283e, 0x42840, 0x428e2, 0x428ec, 0x428fe,
430  0x42900, 0x42b96, 0x42b9c, 0x43492, 0x434a0, 0x43aae,
431  0x43ab4, 0x43bf6, 0x43c00, 0x43d1a, 0x43d44, 0x43e0a,
432  0x43e18, 0x441c2, 0x441c4, 0x441fe, 0x44200, 0x442ea,
433  0x442ec, 0x44402, 0x4440c, 0x444ce, 0x444d4, 0x445ce,
434  0x445d0, 0x4472a, 0x4472c, 0x448da, 0x448dc, 0x44ba6,
435  0x44bac, 0x44cee, 0x44cf4, 0x44d9a, 0x44db4, 0x44dc2,
436  0x44dd4, 0x4511a, 0x4511c, 0x4517a, 0x4517c, 0x4530e,
437  0x45310, 0x45702, 0x45704, 0x45ade, 0x45ae0, 0x45cae,
438  0x45cb0, 0x460ea, 0x460ec, 0x464fa, 0x464fc, 0x4650e,
439  0x46510, 0x468d2, 0x468d4, 0x4691e, 0x46920, 0x46a66,
440  0x46a68, 0x4750a, 0x4750c, 0x47512, 0x47518, 0x4765e,
441  0x47660, 0x47d0a, 0x47d0c, 0x5abc2, 0x5abd4, 0x5acc2,
442  0x5acdc, 0x6f27a, 0x6f27c, 0x74596, 0x74598, 0x7459e,
443  0x745a8, 0x745ba, 0x745cc, 0x745ee, 0x7460c, 0x74616,
444  0x74630, 0x746aa, 0x746b8, 0x7490a, 0x74914, 0x78002,
445  0x7801c, 0x78022, 0x78064, 0x7806e, 0x78088, 0x7808e,
446  0x78094, 0x7809a, 0x780ac, 0x7823e, 0x78240, 0x784c2,
447  0x784dc, 0x78aba, 0x78abc, 0x78bb2, 0x78bc0, 0x793b2,
448  0x793c0, 0x7a342, 0x7a35c, 0x7a512, 0x7a52c,
449  };
450 
451  // Table generated by contrib/unicode/gen_std_format_width.py,
452  // from emoji-data.txt from the Unicode standard.
453  inline constexpr char32_t __xpicto_edges[] = {
454  0xa9, 0xaa, 0xae, 0xaf, 0x203c, 0x203d, 0x2049, 0x204a,
455  0x2122, 0x2123, 0x2139, 0x213a, 0x2194, 0x219a, 0x21a9, 0x21ab,
456  0x231a, 0x231c, 0x2328, 0x2329, 0x2388, 0x2389, 0x23cf, 0x23d0,
457  0x23e9, 0x23f4, 0x23f8, 0x23fb, 0x24c2, 0x24c3, 0x25aa, 0x25ac,
458  0x25b6, 0x25b7, 0x25c0, 0x25c1, 0x25fb, 0x25ff, 0x2600, 0x2606,
459  0x2607, 0x2613, 0x2614, 0x2686, 0x2690, 0x2706, 0x2708, 0x2713,
460  0x2714, 0x2715, 0x2716, 0x2717, 0x271d, 0x271e, 0x2721, 0x2722,
461  0x2728, 0x2729, 0x2733, 0x2735, 0x2744, 0x2745, 0x2747, 0x2748,
462  0x274c, 0x274d, 0x274e, 0x274f, 0x2753, 0x2756, 0x2757, 0x2758,
463  0x2763, 0x2768, 0x2795, 0x2798, 0x27a1, 0x27a2, 0x27b0, 0x27b1,
464  0x27bf, 0x27c0, 0x2934, 0x2936, 0x2b05, 0x2b08, 0x2b1b, 0x2b1d,
465  0x2b50, 0x2b51, 0x2b55, 0x2b56, 0x3030, 0x3031, 0x303d, 0x303e,
466  0x3297, 0x3298, 0x3299, 0x329a, 0x1f000, 0x1f100, 0x1f10d, 0x1f110,
467  0x1f12f, 0x1f130, 0x1f16c, 0x1f172, 0x1f17e, 0x1f180, 0x1f18e, 0x1f18f,
468  0x1f191, 0x1f19b, 0x1f1ad, 0x1f1e6, 0x1f201, 0x1f210, 0x1f21a, 0x1f21b,
469  0x1f22f, 0x1f230, 0x1f232, 0x1f23b, 0x1f23c, 0x1f240, 0x1f249, 0x1f3fb,
470  0x1f400, 0x1f53e, 0x1f546, 0x1f650, 0x1f680, 0x1f700, 0x1f774, 0x1f780,
471  0x1f7d5, 0x1f800, 0x1f80c, 0x1f810, 0x1f848, 0x1f850, 0x1f85a, 0x1f860,
472  0x1f888, 0x1f890, 0x1f8ae, 0x1f900, 0x1f90c, 0x1f93b, 0x1f93c, 0x1f946,
473  0x1f947, 0x1fb00, 0x1fc00, 0x1fffe,
474  };
475 
476 #undef _GLIBCXX_GET_UNICODE_DATA