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