1
2 #line 1 "hb-ot-shaper-indic-machine.rl"
3 /*
4 * Copyright © 2011,2012 Google, Inc.
5 *
6 * This is part of HarfBuzz, a text shaping library.
7 *
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
13 *
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
18 * DAMAGE.
19 *
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
25 *
26 * Google Author(s): Behdad Esfahbod
27 */
28
29 #ifndef HB_OT_SHAPER_INDIC_MACHINE_HH
30 #define HB_OT_SHAPER_INDIC_MACHINE_HH
31
32 #include "hb.hh"
33
34 #include "hb-ot-layout.hh"
35 #include "hb-ot-shaper-indic.hh"
36
37 /* buffer var allocations */
38 #define indic_category() ot_shaper_var_u8_category() /* indic_category_t */
39 #define indic_position() ot_shaper_var_u8_auxiliary() /* indic_position_t */
40
41 using indic_category_t = unsigned;
42 using indic_position_t = ot_position_t;
43
44 #define I_Cat(Cat) indic_syllable_machine_ex_##Cat
45
46 enum indic_syllable_type_t {
47 indic_consonant_syllable,
48 indic_vowel_syllable,
49 indic_standalone_cluster,
50 indic_symbol_cluster,
51 indic_broken_cluster,
52 indic_non_indic_cluster,
53 };
54
55
56 #line 57 "hb-ot-shaper-indic-machine.hh"
57 #define indic_syllable_machine_ex_A 9u
58 #define indic_syllable_machine_ex_C 1u
59 #define indic_syllable_machine_ex_CM 16u
60 #define indic_syllable_machine_ex_CS 18u
61 #define indic_syllable_machine_ex_DOTTEDCIRCLE 11u
62 #define indic_syllable_machine_ex_H 4u
63 #define indic_syllable_machine_ex_M 7u
64 #define indic_syllable_machine_ex_MPst 13u
65 #define indic_syllable_machine_ex_N 3u
66 #define indic_syllable_machine_ex_PLACEHOLDER 10u
67 #define indic_syllable_machine_ex_RS 12u
68 #define indic_syllable_machine_ex_Ra 15u
69 #define indic_syllable_machine_ex_Repha 14u
70 #define indic_syllable_machine_ex_SM 8u
71 #define indic_syllable_machine_ex_SMPst 57u
72 #define indic_syllable_machine_ex_Symbol 17u
73 #define indic_syllable_machine_ex_V 2u
74 #define indic_syllable_machine_ex_VD 9u
75 #define indic_syllable_machine_ex_X 0u
76 #define indic_syllable_machine_ex_ZWJ 6u
77 #define indic_syllable_machine_ex_ZWNJ 5u
78
79
80 #line 81 "hb-ot-shaper-indic-machine.hh"
81 static const unsigned char _indic_syllable_machine_trans_keys[] = {
82 8u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u,
83 8u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 4u, 57u,
84 8u, 57u, 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 4u, 57u, 8u, 57u,
85 5u, 57u, 5u, 57u, 13u, 13u, 4u, 57u, 4u, 57u, 5u, 57u, 8u, 57u, 1u, 57u,
86 3u, 57u, 3u, 57u, 4u, 57u, 1u, 57u, 5u, 57u, 5u, 57u, 9u, 9u, 5u, 9u,
87 1u, 57u, 1u, 57u, 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 4u, 57u,
88 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 4u, 57u,
89 1u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u,
90 1u, 57u, 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 4u, 57u, 5u, 57u,
91 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 4u, 57u, 3u, 57u, 3u, 57u,
92 4u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u,
93 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 5u, 57u,
94 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 4u, 57u, 3u, 57u, 3u, 57u,
95 4u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u,
96 1u, 57u, 3u, 57u, 4u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 4u, 57u, 5u, 57u,
97 5u, 57u, 3u, 57u, 5u, 57u, 1u, 57u, 3u, 57u, 1u, 57u, 4u, 57u, 5u, 57u,
98 5u, 57u, 9u, 9u, 5u, 9u, 1u, 57u, 3u, 57u, 5u, 57u, 5u, 57u, 9u, 9u,
99 5u, 9u, 1u, 15u, 0
100 };
101
102 static const char _indic_syllable_machine_key_spans[] = {
103 50, 54, 53, 53, 1, 54, 54, 54,
104 50, 53, 53, 1, 54, 54, 54, 54,
105 50, 53, 53, 1, 54, 54, 54, 50,
106 53, 53, 1, 54, 54, 53, 50, 57,
107 55, 55, 54, 57, 53, 53, 1, 5,
108 57, 57, 57, 55, 54, 53, 53, 54,
109 53, 55, 53, 55, 55, 55, 55, 54,
110 57, 55, 55, 54, 57, 53, 1, 5,
111 57, 57, 55, 54, 53, 53, 54, 53,
112 53, 55, 53, 55, 55, 54, 55, 55,
113 54, 57, 55, 57, 53, 1, 5, 57,
114 57, 55, 54, 53, 53, 55, 54, 53,
115 53, 55, 53, 55, 54, 54, 55, 55,
116 54, 57, 55, 57, 53, 1, 5, 57,
117 57, 55, 54, 53, 53, 55, 54, 53,
118 53, 55, 53, 57, 55, 57, 54, 53,
119 53, 1, 5, 57, 55, 53, 53, 1,
120 5, 15
121 };
122
123 static const short _indic_syllable_machine_index_offsets[] = {
124 0, 51, 106, 160, 214, 216, 271, 326,
125 381, 432, 486, 540, 542, 597, 652, 707,
126 762, 813, 867, 921, 923, 978, 1033, 1088,
127 1139, 1193, 1247, 1249, 1304, 1359, 1413, 1464,
128 1522, 1578, 1634, 1689, 1747, 1801, 1855, 1857,
129 1863, 1921, 1979, 2037, 2093, 2148, 2202, 2256,
130 2311, 2365, 2421, 2475, 2531, 2587, 2643, 2699,
131 2754, 2812, 2868, 2924, 2979, 3037, 3091, 3093,
132 3099, 3157, 3215, 3271, 3326, 3380, 3434, 3489,
133 3543, 3597, 3653, 3707, 3763, 3819, 3874, 3930,
134 3986, 4041, 4099, 4155, 4213, 4267, 4269, 4275,
135 4333, 4391, 4447, 4502, 4556, 4610, 4666, 4721,
136 4775, 4829, 4885, 4939, 4995, 5050, 5105, 5161,
137 5217, 5272, 5330, 5386, 5444, 5498, 5500, 5506,
138 5564, 5622, 5678, 5733, 5787, 5841, 5897, 5952,
139 6006, 6060, 6116, 6170, 6228, 6284, 6342, 6397,
140 6451, 6505, 6507, 6513, 6571, 6627, 6681, 6735,
141 6737, 6743
142 };
143
144 static const unsigned char _indic_syllable_machine_indicies[] = {
145 1, 0, 0, 0, 0, 0, 0, 0,
146 0, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 0, 0,
149 0, 0, 0, 0, 0, 0, 0, 0,
150 0, 0, 0, 0, 0, 0, 0, 0,
151 0, 1, 0, 2, 3, 3, 4, 5,
152 0, 0, 0, 0, 4, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0,
158 5, 0, 3, 3, 4, 6, 0, 0,
159 0, 0, 4, 0, 0, 0, 0, 0,
160 0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0, 0, 0, 0, 0, 0,
162 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 0, 0, 0, 0,
164 0, 0, 0, 0, 0, 0, 6, 0,
165 3, 3, 4, 5, 0, 0, 0, 0,
166 4, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 0, 0, 0,
169 0, 0, 0, 0, 0, 0, 0, 0,
170 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 5, 0, 4, 0,
172 7, 3, 3, 4, 5, 0, 0, 0,
173 0, 4, 0, 0, 0, 0, 0, 0,
174 0, 0, 0, 0, 0, 0, 0, 0,
175 0, 0, 0, 0, 0, 0, 0, 0,
176 0, 0, 0, 0, 0, 0, 0, 0,
177 0, 0, 0, 0, 0, 0, 0, 0,
178 0, 0, 0, 0, 0, 5, 0, 2,
179 3, 3, 4, 5, 0, 0, 0, 8,
180 4, 0, 0, 0, 0, 0, 0, 0,
181 0, 0, 0, 0, 0, 0, 0, 0,
182 0, 0, 0, 0, 0, 0, 0, 0,
183 0, 0, 0, 0, 0, 0, 0, 0,
184 0, 0, 0, 0, 0, 0, 0, 0,
185 0, 0, 0, 0, 5, 0, 10, 11,
186 11, 12, 13, 9, 9, 9, 9, 12,
187 9, 9, 9, 9, 9, 9, 9, 9,
188 9, 9, 9, 9, 9, 9, 9, 9,
189 9, 9, 9, 9, 9, 9, 9, 9,
190 9, 9, 9, 9, 9, 9, 9, 9,
191 9, 9, 9, 9, 9, 9, 9, 9,
192 9, 9, 9, 13, 9, 14, 9, 9,
193 9, 9, 9, 9, 9, 9, 9, 9,
194 9, 9, 9, 9, 9, 9, 9, 9,
195 9, 9, 9, 9, 9, 9, 9, 9,
196 9, 9, 9, 9, 9, 9, 9, 9,
197 9, 9, 9, 9, 9, 9, 9, 9,
198 9, 9, 9, 9, 9, 9, 14, 9,
199 11, 11, 12, 15, 9, 9, 9, 9,
200 12, 9, 9, 9, 9, 9, 9, 9,
201 9, 9, 9, 9, 9, 9, 9, 9,
202 9, 9, 9, 9, 9, 9, 9, 9,
203 9, 9, 9, 9, 9, 9, 9, 9,
204 9, 9, 9, 9, 9, 9, 9, 9,
205 9, 9, 9, 9, 15, 9, 11, 11,
206 12, 13, 9, 9, 9, 9, 12, 9,
207 9, 9, 9, 9, 9, 9, 9, 9,
208 9, 9, 9, 9, 9, 9, 9, 9,
209 9, 9, 9, 9, 9, 9, 9, 9,
210 9, 9, 9, 9, 9, 9, 9, 9,
211 9, 9, 9, 9, 9, 9, 9, 9,
212 9, 9, 13, 9, 12, 9, 16, 11,
213 11, 12, 13, 9, 9, 9, 9, 12,
214 9, 9, 9, 9, 9, 9, 9, 9,
215 9, 9, 9, 9, 9, 9, 9, 9,
216 9, 9, 9, 9, 9, 9, 9, 9,
217 9, 9, 9, 9, 9, 9, 9, 9,
218 9, 9, 9, 9, 9, 9, 9, 9,
219 9, 9, 9, 13, 9, 10, 11, 11,
220 12, 13, 9, 9, 9, 17, 12, 9,
221 9, 9, 9, 9, 9, 9, 9, 9,
222 9, 9, 9, 9, 9, 9, 9, 9,
223 9, 9, 9, 9, 9, 9, 9, 9,
224 9, 9, 9, 9, 9, 9, 9, 9,
225 9, 9, 9, 9, 9, 9, 9, 9,
226 9, 9, 13, 9, 10, 11, 11, 12,
227 13, 9, 9, 9, 18, 12, 9, 9,
228 9, 9, 9, 9, 9, 9, 9, 9,
229 9, 9, 9, 9, 9, 9, 9, 9,
230 9, 9, 9, 9, 9, 9, 9, 9,
231 9, 9, 9, 9, 9, 9, 9, 9,
232 9, 9, 9, 9, 9, 9, 9, 9,
233 9, 13, 9, 20, 21, 21, 22, 23,
234 19, 19, 19, 24, 22, 19, 19, 19,
235 19, 19, 19, 19, 19, 19, 19, 19,
236 19, 19, 19, 19, 19, 19, 19, 19,
237 19, 19, 19, 19, 19, 19, 19, 19,
238 19, 19, 19, 19, 19, 19, 19, 19,
239 19, 19, 19, 19, 19, 19, 19, 19,
240 23, 19, 25, 19, 19, 19, 19, 19,
241 19, 19, 19, 19, 19, 19, 19, 19,
242 19, 19, 19, 19, 19, 19, 19, 19,
243 19, 19, 19, 19, 19, 19, 19, 19,
244 19, 19, 19, 19, 19, 19, 19, 19,
245 19, 19, 19, 19, 19, 19, 19, 19,
246 19, 19, 19, 25, 19, 21, 21, 22,
247 27, 26, 26, 26, 26, 22, 26, 26,
248 26, 26, 26, 26, 26, 26, 26, 26,
249 26, 26, 26, 26, 26, 26, 26, 26,
250 26, 26, 26, 26, 26, 26, 26, 26,
251 26, 26, 26, 26, 26, 26, 26, 26,
252 26, 26, 26, 26, 26, 26, 26, 26,
253 26, 27, 26, 21, 21, 22, 23, 19,
254 19, 19, 19, 22, 19, 19, 19, 19,
255 19, 19, 19, 19, 19, 19, 19, 19,
256 19, 19, 19, 19, 19, 19, 19, 19,
257 19, 19, 19, 19, 19, 19, 19, 19,
258 19, 19, 19, 19, 19, 19, 19, 19,
259 19, 19, 19, 19, 19, 19, 19, 23,
260 19, 22, 26, 20, 21, 21, 22, 23,
261 19, 19, 19, 19, 22, 19, 19, 19,
262 19, 19, 19, 19, 19, 19, 19, 19,
263 19, 19, 19, 19, 19, 19, 19, 19,
264 19, 19, 19, 19, 19, 19, 19, 19,
265 19, 19, 19, 19, 19, 19, 19, 19,
266 19, 19, 19, 19, 19, 19, 19, 19,
267 23, 19, 28, 21, 21, 22, 23, 19,
268 19, 19, 19, 22, 19, 19, 19, 19,
269 19, 19, 19, 19, 19, 19, 19, 19,
270 19, 19, 19, 19, 19, 19, 19, 19,
271 19, 19, 19, 19, 19, 19, 19, 19,
272 19, 19, 19, 19, 19, 19, 19, 19,
273 19, 19, 19, 19, 19, 19, 19, 23,
274 19, 30, 31, 31, 32, 33, 29, 29,
275 29, 34, 32, 29, 29, 29, 29, 29,
276 29, 29, 29, 29, 29, 29, 29, 29,
277 29, 29, 29, 29, 29, 29, 29, 29,
278 29, 29, 29, 29, 29, 29, 29, 29,
279 29, 29, 29, 29, 29, 29, 29, 29,
280 29, 29, 29, 29, 29, 29, 33, 29,
281 35, 29, 29, 29, 29, 29, 29, 29,
282 29, 29, 29, 29, 29, 29, 29, 29,
283 29, 29, 29, 29, 29, 29, 29, 29,
284 29, 29, 29, 29, 29, 29, 29, 29,
285 29, 29, 29, 29, 29, 29, 29, 29,
286 29, 29, 29, 29, 29, 29, 29, 29,
287 29, 35, 29, 31, 31, 32, 36, 29,
288 29, 29, 29, 32, 29, 29, 29, 29,
289 29, 29, 29, 29, 29, 29, 29, 29,
290 29, 29, 29, 29, 29, 29, 29, 29,
291 29, 29, 29, 29, 29, 29, 29, 29,
292 29, 29, 29, 29, 29, 29, 29, 29,
293 29, 29, 29, 29, 29, 29, 29, 36,
294 29, 31, 31, 32, 33, 29, 29, 29,
295 29, 32, 29, 29, 29, 29, 29, 29,
296 29, 29, 29, 29, 29, 29, 29, 29,
297 29, 29, 29, 29, 29, 29, 29, 29,
298 29, 29, 29, 29, 29, 29, 29, 29,
299 29, 29, 29, 29, 29, 29, 29, 29,
300 29, 29, 29, 29, 29, 33, 29, 32,
301 29, 30, 31, 31, 32, 33, 29, 29,
302 29, 29, 32, 29, 29, 29, 29, 29,
303 29, 29, 29, 29, 29, 29, 29, 29,
304 29, 29, 29, 29, 29, 29, 29, 29,
305 29, 29, 29, 29, 29, 29, 29, 29,
306 29, 29, 29, 29, 29, 29, 29, 29,
307 29, 29, 29, 29, 29, 29, 33, 29,
308 37, 31, 31, 32, 33, 29, 29, 29,
309 29, 32, 29, 29, 29, 29, 29, 29,
310 29, 29, 29, 29, 29, 29, 29, 29,
311 29, 29, 29, 29, 29, 29, 29, 29,
312 29, 29, 29, 29, 29, 29, 29, 29,
313 29, 29, 29, 29, 29, 29, 29, 29,
314 29, 29, 29, 29, 29, 33, 29, 21,
315 21, 22, 38, 0, 0, 0, 0, 22,
316 0, 0, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 0, 0,
318 0, 0, 0, 0, 0, 0, 0, 0,
319 0, 0, 0, 0, 0, 0, 0, 0,
320 0, 0, 0, 0, 0, 0, 0, 0,
321 0, 0, 0, 38, 0, 40, 39, 39,
322 39, 39, 39, 39, 39, 39, 39, 39,
323 39, 39, 39, 39, 39, 39, 39, 39,
324 39, 39, 39, 39, 39, 39, 39, 39,
325 39, 39, 39, 39, 39, 39, 39, 39,
326 39, 39, 39, 39, 39, 39, 39, 39,
327 39, 39, 39, 39, 39, 39, 40, 39,
328 42, 43, 44, 45, 46, 47, 22, 23,
329 48, 49, 49, 24, 22, 50, 51, 52,
330 53, 54, 41, 41, 41, 41, 41, 41,
331 41, 41, 41, 41, 41, 41, 41, 41,
332 41, 41, 41, 41, 41, 41, 41, 41,
333 41, 41, 41, 41, 41, 41, 41, 41,
334 41, 41, 41, 41, 41, 41, 41, 41,
335 55, 41, 57, 58, 59, 60, 4, 5,
336 61, 56, 56, 8, 4, 56, 56, 62,
337 56, 56, 56, 56, 56, 56, 56, 56,
338 56, 56, 56, 56, 56, 56, 56, 56,
339 56, 56, 56, 56, 56, 56, 56, 56,
340 56, 56, 56, 56, 56, 56, 56, 56,
341 56, 56, 56, 56, 56, 56, 56, 56,
342 5, 56, 63, 58, 64, 64, 4, 5,
343 61, 56, 56, 56, 4, 56, 56, 62,
344 56, 56, 56, 56, 56, 56, 56, 56,
345 56, 56, 56, 56, 56, 56, 56, 56,
346 56, 56, 56, 56, 56, 56, 56, 56,
347 56, 56, 56, 56, 56, 56, 56, 56,
348 56, 56, 56, 56, 56, 56, 56, 56,
349 5, 56, 58, 64, 64, 4, 5, 61,
350 56, 56, 56, 4, 56, 56, 62, 56,
351 56, 56, 56, 56, 56, 56, 56, 56,
352 56, 56, 56, 56, 56, 56, 56, 56,
353 56, 56, 56, 56, 56, 56, 56, 56,
354 56, 56, 56, 56, 56, 56, 56, 56,
355 56, 56, 56, 56, 56, 56, 56, 5,
356 56, 42, 56, 56, 56, 65, 66, 56,
357 1, 61, 56, 56, 56, 56, 56, 42,
358 56, 56, 56, 56, 56, 56, 56, 56,
359 56, 56, 56, 56, 56, 56, 56, 56,
360 56, 56, 56, 56, 56, 56, 56, 56,
361 56, 56, 56, 56, 56, 56, 56, 56,
362 56, 56, 56, 56, 56, 56, 56, 56,
363 56, 1, 56, 67, 67, 56, 1, 61,
364 56, 56, 56, 56, 56, 56, 56, 56,
365 56, 56, 56, 56, 56, 56, 56, 56,
366 56, 56, 56, 56, 56, 56, 56, 56,
367 56, 56, 56, 56, 56, 56, 56, 56,
368 56, 56, 56, 56, 56, 56, 56, 56,
369 56, 56, 56, 56, 56, 56, 56, 1,
370 56, 61, 56, 56, 68, 61, 56, 56,
371 56, 56, 56, 56, 56, 56, 56, 56,
372 56, 56, 56, 56, 56, 56, 56, 56,
373 56, 56, 56, 56, 56, 56, 56, 56,
374 56, 56, 56, 56, 56, 56, 56, 56,
375 56, 56, 56, 56, 56, 56, 56, 56,
376 56, 56, 56, 56, 56, 68, 56, 61,
377 56, 61, 56, 56, 56, 61, 56, 42,
378 56, 69, 56, 67, 67, 56, 1, 61,
379 56, 56, 56, 56, 56, 42, 56, 56,
380 56, 56, 56, 56, 56, 56, 56, 56,
381 56, 56, 56, 56, 56, 56, 56, 56,
382 56, 56, 56, 56, 56, 56, 56, 56,
383 56, 56, 56, 56, 56, 56, 56, 56,
384 56, 56, 56, 56, 56, 56, 56, 1,
385 56, 42, 56, 56, 56, 67, 67, 56,
386 1, 61, 56, 56, 56, 56, 56, 42,
387 56, 56, 56, 56, 56, 56, 56, 56,
388 56, 56, 56, 56, 56, 56, 56, 56,
389 56, 56, 56, 56, 56, 56, 56, 56,
390 56, 56, 56, 56, 56, 56, 56, 56,
391 56, 56, 56, 56, 56, 56, 56, 56,
392 56, 1, 56, 42, 56, 56, 56, 67,
393 66, 56, 1, 61, 56, 56, 56, 56,
394 56, 42, 56, 56, 56, 56, 56, 56,
395 56, 56, 56, 56, 56, 56, 56, 56,
396 56, 56, 56, 56, 56, 56, 56, 56,
397 56, 56, 56, 56, 56, 56, 56, 56,
398 56, 56, 56, 56, 56, 56, 56, 56,
399 56, 56, 56, 1, 56, 70, 71, 72,
400 72, 4, 5, 61, 56, 56, 56, 4,
401 56, 56, 56, 56, 56, 56, 56, 56,
402 56, 56, 56, 56, 56, 56, 56, 56,
403 56, 56, 56, 56, 56, 56, 56, 56,
404 56, 56, 56, 56, 56, 56, 56, 56,
405 56, 56, 56, 56, 56, 56, 56, 56,
406 56, 56, 56, 5, 56, 71, 72, 72,
407 4, 5, 61, 56, 56, 56, 4, 56,
408 56, 56, 56, 56, 56, 56, 56, 56,
409 56, 56, 56, 56, 56, 56, 56, 56,
410 56, 56, 56, 56, 56, 56, 56, 56,
411 56, 56, 56, 56, 56, 56, 56, 56,
412 56, 56, 56, 56, 56, 56, 56, 56,
413 56, 56, 5, 56, 72, 72, 4, 5,
414 61, 56, 56, 56, 4, 56, 56, 56,
415 56, 56, 56, 56, 56, 56, 56, 56,
416 56, 56, 56, 56, 56, 56, 56, 56,
417 56, 56, 56, 56, 56, 56, 56, 56,
418 56, 56, 56, 56, 56, 56, 56, 56,
419 56, 56, 56, 56, 56, 56, 56, 56,
420 5, 56, 61, 56, 56, 68, 61, 56,
421 56, 56, 4, 56, 56, 56, 56, 56,
422 56, 56, 56, 56, 56, 56, 56, 56,
423 56, 56, 56, 56, 56, 56, 56, 56,
424 56, 56, 56, 56, 56, 56, 56, 56,
425 56, 56, 56, 56, 56, 56, 56, 56,
426 56, 56, 56, 56, 56, 56, 68, 56,
427 73, 74, 74, 4, 5, 61, 56, 56,
428 56, 4, 56, 56, 56, 56, 56, 56,
429 56, 56, 56, 56, 56, 56, 56, 56,
430 56, 56, 56, 56, 56, 56, 56, 56,
431 56, 56, 56, 56, 56, 56, 56, 56,
432 56, 56, 56, 56, 56, 56, 56, 56,
433 56, 56, 56, 56, 56, 5, 56, 65,
434 75, 56, 1, 61, 56, 56, 56, 56,
435 56, 56, 56, 56, 56, 56, 56, 56,
436 56, 56, 56, 56, 56, 56, 56, 56,
437 56, 56, 56, 56, 56, 56, 56, 56,
438 56, 56, 56, 56, 56, 56, 56, 56,
439 56, 56, 56, 56, 56, 56, 56, 56,
440 56, 56, 56, 1, 56, 65, 56, 67,
441 67, 56, 1, 61, 56, 56, 56, 56,
442 56, 56, 56, 56, 56, 56, 56, 56,
443 56, 56, 56, 56, 56, 56, 56, 56,
444 56, 56, 56, 56, 56, 56, 56, 56,
445 56, 56, 56, 56, 56, 56, 56, 56,
446 56, 56, 56, 56, 56, 56, 56, 56,
447 56, 56, 56, 1, 56, 67, 75, 56,
448 1, 61, 56, 56, 56, 56, 56, 56,
449 56, 56, 56, 56, 56, 56, 56, 56,
450 56, 56, 56, 56, 56, 56, 56, 56,
451 56, 56, 56, 56, 56, 56, 56, 56,
452 56, 56, 56, 56, 56, 56, 56, 56,
453 56, 56, 56, 56, 56, 56, 56, 56,
454 56, 1, 56, 57, 58, 64, 64, 4,
455 5, 61, 56, 56, 56, 4, 56, 56,
456 62, 56, 56, 56, 56, 56, 56, 56,
457 56, 56, 56, 56, 56, 56, 56, 56,
458 56, 56, 56, 56, 56, 56, 56, 56,
459 56, 56, 56, 56, 56, 56, 56, 56,
460 56, 56, 56, 56, 56, 56, 56, 56,
461 56, 5, 56, 57, 58, 59, 64, 4,
462 5, 61, 56, 56, 8, 4, 56, 56,
463 62, 56, 56, 56, 56, 56, 56, 56,
464 56, 56, 56, 56, 56, 56, 56, 56,
465 56, 56, 56, 56, 56, 56, 56, 56,
466 56, 56, 56, 56, 56, 56, 56, 56,
467 56, 56, 56, 56, 56, 56, 56, 56,
468 56, 5, 56, 77, 78, 79, 80, 12,
469 13, 81, 76, 76, 18, 12, 76, 76,
470 82, 76, 76, 76, 76, 76, 76, 76,
471 76, 76, 76, 76, 76, 76, 76, 76,
472 76, 76, 76, 76, 76, 76, 76, 76,
473 76, 76, 76, 76, 76, 76, 76, 76,
474 76, 76, 76, 76, 76, 76, 76, 76,
475 76, 13, 76, 83, 78, 84, 80, 12,
476 13, 81, 76, 76, 76, 12, 76, 76,
477 82, 76, 76, 76, 76, 76, 76, 76,
478 76, 76, 76, 76, 76, 76, 76, 76,
479 76, 76, 76, 76, 76, 76, 76, 76,
480 76, 76, 76, 76, 76, 76, 76, 76,
481 76, 76, 76, 76, 76, 76, 76, 76,
482 76, 13, 76, 78, 84, 80, 12, 13,
483 81, 76, 76, 76, 12, 76, 76, 82,
484 76, 76, 76, 76, 76, 76, 76, 76,
485 76, 76, 76, 76, 76, 76, 76, 76,
486 76, 76, 76, 76, 76, 76, 76, 76,
487 76, 76, 76, 76, 76, 76, 76, 76,
488 76, 76, 76, 76, 76, 76, 76, 76,
489 13, 76, 85, 76, 76, 76, 86, 87,
490 76, 14, 81, 76, 76, 76, 76, 76,
491 85, 76, 76, 76, 76, 76, 76, 76,
492 76, 76, 76, 76, 76, 76, 76, 76,
493 76, 76, 76, 76, 76, 76, 76, 76,
494 76, 76, 76, 76, 76, 76, 76, 76,
495 76, 76, 76, 76, 76, 76, 76, 76,
496 76, 76, 14, 76, 88, 78, 89, 90,
497 12, 13, 81, 76, 76, 17, 12, 76,
498 76, 82, 76, 76, 76, 76, 76, 76,
499 76, 76, 76, 76, 76, 76, 76, 76,
500 76, 76, 76, 76, 76, 76, 76, 76,
501 76, 76, 76, 76, 76, 76, 76, 76,
502 76, 76, 76, 76, 76, 76, 76, 76,
503 76, 76, 13, 76, 91, 78, 84, 84,
504 12, 13, 81, 76, 76, 76, 12, 76,
505 76, 82, 76, 76, 76, 76, 76, 76,
506 76, 76, 76, 76, 76, 76, 76, 76,
507 76, 76, 76, 76, 76, 76, 76, 76,
508 76, 76, 76, 76, 76, 76, 76, 76,
509 76, 76, 76, 76, 76, 76, 76, 76,
510 76, 76, 13, 76, 78, 84, 84, 12,
511 13, 81, 76, 76, 76, 12, 76, 76,
512 82, 76, 76, 76, 76, 76, 76, 76,
513 76, 76, 76, 76, 76, 76, 76, 76,
514 76, 76, 76, 76, 76, 76, 76, 76,
515 76, 76, 76, 76, 76, 76, 76, 76,
516 76, 76, 76, 76, 76, 76, 76, 76,
517 76, 13, 76, 85, 76, 76, 76, 92,
518 87, 76, 14, 81, 76, 76, 76, 76,
519 76, 85, 76, 76, 76, 76, 76, 76,
520 76, 76, 76, 76, 76, 76, 76, 76,
521 76, 76, 76, 76, 76, 76, 76, 76,
522 76, 76, 76, 76, 76, 76, 76, 76,
523 76, 76, 76, 76, 76, 76, 76, 76,
524 76, 76, 76, 14, 76, 81, 76, 76,
525 93, 81, 76, 76, 76, 76, 76, 76,
526 76, 76, 76, 76, 76, 76, 76, 76,
527 76, 76, 76, 76, 76, 76, 76, 76,
528 76, 76, 76, 76, 76, 76, 76, 76,
529 76, 76, 76, 76, 76, 76, 76, 76,
530 76, 76, 76, 76, 76, 76, 76, 76,
531 76, 93, 76, 81, 76, 81, 76, 76,
532 76, 81, 76, 85, 76, 94, 76, 92,
533 92, 76, 14, 81, 76, 76, 76, 76,
534 76, 85, 76, 76, 76, 76, 76, 76,
535 76, 76, 76, 76, 76, 76, 76, 76,
536 76, 76, 76, 76, 76, 76, 76, 76,
537 76, 76, 76, 76, 76, 76, 76, 76,
538 76, 76, 76, 76, 76, 76, 76, 76,
539 76, 76, 76, 14, 76, 85, 76, 76,
540 76, 92, 92, 76, 14, 81, 76, 76,
541 76, 76, 76, 85, 76, 76, 76, 76,
542 76, 76, 76, 76, 76, 76, 76, 76,
543 76, 76, 76, 76, 76, 76, 76, 76,
544 76, 76, 76, 76, 76, 76, 76, 76,
545 76, 76, 76, 76, 76, 76, 76, 76,
546 76, 76, 76, 76, 76, 14, 76, 95,
547 96, 97, 97, 12, 13, 81, 76, 76,
548 76, 12, 76, 76, 76, 76, 76, 76,
549 76, 76, 76, 76, 76, 76, 76, 76,
550 76, 76, 76, 76, 76, 76, 76, 76,
551 76, 76, 76, 76, 76, 76, 76, 76,
552 76, 76, 76, 76, 76, 76, 76, 76,
553 76, 76, 76, 76, 76, 13, 76, 96,
554 97, 97, 12, 13, 81, 76, 76, 76,
555 12, 76, 76, 76, 76, 76, 76, 76,
556 76, 76, 76, 76, 76, 76, 76, 76,
557 76, 76, 76, 76, 76, 76, 76, 76,
558 76, 76, 76, 76, 76, 76, 76, 76,
559 76, 76, 76, 76, 76, 76, 76, 76,
560 76, 76, 76, 76, 13, 76, 97, 97,
561 12, 13, 81, 76, 76, 76, 12, 76,
562 76, 76, 76, 76, 76, 76, 76, 76,
563 76, 76, 76, 76, 76, 76, 76, 76,
564 76, 76, 76, 76, 76, 76, 76, 76,
565 76, 76, 76, 76, 76, 76, 76, 76,
566 76, 76, 76, 76, 76, 76, 76, 76,
567 76, 76, 13, 76, 81, 76, 76, 93,
568 81, 76, 76, 76, 12, 76, 76, 76,
569 76, 76, 76, 76, 76, 76, 76, 76,
570 76, 76, 76, 76, 76, 76, 76, 76,
571 76, 76, 76, 76, 76, 76, 76, 76,
572 76, 76, 76, 76, 76, 76, 76, 76,
573 76, 76, 76, 76, 76, 76, 76, 76,
574 93, 76, 98, 99, 99, 12, 13, 81,
575 76, 76, 76, 12, 76, 76, 76, 76,
576 76, 76, 76, 76, 76, 76, 76, 76,
577 76, 76, 76, 76, 76, 76, 76, 76,
578 76, 76, 76, 76, 76, 76, 76, 76,
579 76, 76, 76, 76, 76, 76, 76, 76,
580 76, 76, 76, 76, 76, 76, 76, 13,
581 76, 86, 100, 76, 14, 81, 76, 76,
582 76, 76, 76, 76, 76, 76, 76, 76,
583 76, 76, 76, 76, 76, 76, 76, 76,
584 76, 76, 76, 76, 76, 76, 76, 76,
585 76, 76, 76, 76, 76, 76, 76, 76,
586 76, 76, 76, 76, 76, 76, 76, 76,
587 76, 76, 76, 76, 76, 14, 76, 92,
588 92, 76, 14, 81, 76, 76, 76, 76,
589 76, 76, 76, 76, 76, 76, 76, 76,
590 76, 76, 76, 76, 76, 76, 76, 76,
591 76, 76, 76, 76, 76, 76, 76, 76,
592 76, 76, 76, 76, 76, 76, 76, 76,
593 76, 76, 76, 76, 76, 76, 76, 76,
594 76, 76, 76, 14, 76, 86, 76, 92,
595 92, 76, 14, 81, 76, 76, 76, 76,
596 76, 76, 76, 76, 76, 76, 76, 76,
597 76, 76, 76, 76, 76, 76, 76, 76,
598 76, 76, 76, 76, 76, 76, 76, 76,
599 76, 76, 76, 76, 76, 76, 76, 76,
600 76, 76, 76, 76, 76, 76, 76, 76,
601 76, 76, 76, 14, 76, 92, 100, 76,
602 14, 81, 76, 76, 76, 76, 76, 76,
603 76, 76, 76, 76, 76, 76, 76, 76,
604 76, 76, 76, 76, 76, 76, 76, 76,
605 76, 76, 76, 76, 76, 76, 76, 76,
606 76, 76, 76, 76, 76, 76, 76, 76,
607 76, 76, 76, 76, 76, 76, 76, 76,
608 76, 14, 76, 88, 78, 84, 84, 12,
609 13, 81, 76, 76, 76, 12, 76, 76,
610 82, 76, 76, 76, 76, 76, 76, 76,
611 76, 76, 76, 76, 76, 76, 76, 76,
612 76, 76, 76, 76, 76, 76, 76, 76,
613 76, 76, 76, 76, 76, 76, 76, 76,
614 76, 76, 76, 76, 76, 76, 76, 76,
615 76, 13, 76, 88, 78, 89, 84, 12,
616 13, 81, 76, 76, 17, 12, 76, 76,
617 82, 76, 76, 76, 76, 76, 76, 76,
618 76, 76, 76, 76, 76, 76, 76, 76,
619 76, 76, 76, 76, 76, 76, 76, 76,
620 76, 76, 76, 76, 76, 76, 76, 76,
621 76, 76, 76, 76, 76, 76, 76, 76,
622 76, 13, 76, 10, 11, 11, 12, 13,
623 76, 76, 76, 76, 12, 76, 76, 76,
624 76, 76, 76, 76, 76, 76, 76, 76,
625 76, 76, 76, 76, 76, 76, 76, 76,
626 76, 76, 76, 76, 76, 76, 76, 76,
627 76, 76, 76, 76, 76, 76, 76, 76,
628 76, 76, 76, 76, 76, 76, 76, 76,
629 13, 76, 77, 78, 84, 80, 12, 13,
630 81, 76, 76, 76, 12, 76, 76, 82,
631 76, 76, 76, 76, 76, 76, 76, 76,
632 76, 76, 76, 76, 76, 76, 76, 76,
633 76, 76, 76, 76, 76, 76, 76, 76,
634 76, 76, 76, 76, 76, 76, 76, 76,
635 76, 76, 76, 76, 76, 76, 76, 76,
636 13, 76, 102, 45, 103, 103, 22, 23,
637 48, 101, 101, 101, 22, 101, 101, 52,
638 101, 101, 101, 101, 101, 101, 101, 101,
639 101, 101, 101, 101, 101, 101, 101, 101,
640 101, 101, 101, 101, 101, 101, 101, 101,
641 101, 101, 101, 101, 101, 101, 101, 101,
642 101, 101, 101, 101, 101, 101, 101, 101,
643 23, 101, 45, 103, 103, 22, 23, 48,
644 101, 101, 101, 22, 101, 101, 52, 101,
645 101, 101, 101, 101, 101, 101, 101, 101,
646 101, 101, 101, 101, 101, 101, 101, 101,
647 101, 101, 101, 101, 101, 101, 101, 101,
648 101, 101, 101, 101, 101, 101, 101, 101,
649 101, 101, 101, 101, 101, 101, 101, 23,
650 101, 104, 101, 101, 101, 105, 106, 101,
651 25, 48, 101, 101, 101, 101, 101, 104,
652 101, 101, 101, 101, 101, 101, 101, 101,
653 101, 101, 101, 101, 101, 101, 101, 101,
654 101, 101, 101, 101, 101, 101, 101, 101,
655 101, 101, 101, 101, 101, 101, 101, 101,
656 101, 101, 101, 101, 101, 101, 101, 101,
657 101, 25, 101, 44, 45, 107, 108, 22,
658 23, 48, 101, 101, 24, 22, 101, 101,
659 52, 101, 101, 101, 101, 101, 101, 101,
660 101, 101, 101, 101, 101, 101, 101, 101,
661 101, 101, 101, 101, 101, 101, 101, 101,
662 101, 101, 101, 101, 101, 101, 101, 101,
663 101, 101, 101, 101, 101, 101, 101, 101,
664 101, 23, 101, 104, 101, 101, 101, 109,
665 106, 101, 25, 48, 101, 101, 101, 101,
666 101, 104, 101, 101, 101, 101, 101, 101,
667 101, 101, 101, 101, 101, 101, 101, 101,
668 101, 101, 101, 101, 101, 101, 101, 101,
669 101, 101, 101, 101, 101, 101, 101, 101,
670 101, 101, 101, 101, 101, 101, 101, 101,
671 101, 101, 101, 25, 101, 48, 101, 101,
672 110, 48, 101, 101, 101, 101, 101, 101,
673 101, 101, 101, 101, 101, 101, 101, 101,
674 101, 101, 101, 101, 101, 101, 101, 101,
675 101, 101, 101, 101, 101, 101, 101, 101,
676 101, 101, 101, 101, 101, 101, 101, 101,
677 101, 101, 101, 101, 101, 101, 101, 101,
678 101, 110, 101, 48, 101, 48, 101, 101,
679 101, 48, 101, 104, 101, 111, 101, 109,
680 109, 101, 25, 48, 101, 101, 101, 101,
681 101, 104, 101, 101, 101, 101, 101, 101,
682 101, 101, 101, 101, 101, 101, 101, 101,
683 101, 101, 101, 101, 101, 101, 101, 101,
684 101, 101, 101, 101, 101, 101, 101, 101,
685 101, 101, 101, 101, 101, 101, 101, 101,
686 101, 101, 101, 25, 101, 104, 101, 101,
687 101, 109, 109, 101, 25, 48, 101, 101,
688 101, 101, 101, 104, 101, 101, 101, 101,
689 101, 101, 101, 101, 101, 101, 101, 101,
690 101, 101, 101, 101, 101, 101, 101, 101,
691 101, 101, 101, 101, 101, 101, 101, 101,
692 101, 101, 101, 101, 101, 101, 101, 101,
693 101, 101, 101, 101, 101, 25, 101, 112,
694 113, 114, 114, 22, 23, 48, 101, 101,
695 101, 22, 101, 101, 101, 101, 101, 101,
696 101, 101, 101, 101, 101, 101, 101, 101,
697 101, 101, 101, 101, 101, 101, 101, 101,
698 101, 101, 101, 101, 101, 101, 101, 101,
699 101, 101, 101, 101, 101, 101, 101, 101,
700 101, 101, 101, 101, 101, 23, 101, 113,
701 114, 114, 22, 23, 48, 101, 101, 101,
702 22, 101, 101, 101, 101, 101, 101, 101,
703 101, 101, 101, 101, 101, 101, 101, 101,
704 101, 101, 101, 101, 101, 101, 101, 101,
705 101, 101, 101, 101, 101, 101, 101, 101,
706 101, 101, 101, 101, 101, 101, 101, 101,
707 101, 101, 101, 101, 23, 101, 114, 114,
708 22, 23, 48, 101, 101, 101, 22, 101,
709 101, 101, 101, 101, 101, 101, 101, 101,
710 101, 101, 101, 101, 101, 101, 101, 101,
711 101, 101, 101, 101, 101, 101, 101, 101,
712 101, 101, 101, 101, 101, 101, 101, 101,
713 101, 101, 101, 101, 101, 101, 101, 101,
714 101, 101, 23, 101, 48, 26, 26, 110,
715 48, 26, 26, 26, 22, 26, 26, 26,
716 26, 26, 26, 26, 26, 26, 26, 26,
717 26, 26, 26, 26, 26, 26, 26, 26,
718 26, 26, 26, 26, 26, 26, 26, 26,
719 26, 26, 26, 26, 26, 26, 26, 26,
720 26, 26, 26, 26, 26, 26, 26, 26,
721 110, 26, 44, 45, 103, 103, 22, 23,
722 48, 101, 101, 101, 22, 101, 101, 52,
723 101, 101, 101, 101, 101, 101, 101, 101,
724 101, 101, 101, 101, 101, 101, 101, 101,
725 101, 101, 101, 101, 101, 101, 101, 101,
726 101, 101, 101, 101, 101, 101, 101, 101,
727 101, 101, 101, 101, 101, 101, 101, 101,
728 23, 101, 115, 116, 116, 22, 23, 48,
729 101, 101, 101, 22, 101, 101, 101, 101,
730 101, 101, 101, 101, 101, 101, 101, 101,
731 101, 101, 101, 101, 101, 101, 101, 101,
732 101, 101, 101, 101, 101, 101, 101, 101,
733 101, 101, 101, 101, 101, 101, 101, 101,
734 101, 101, 101, 101, 101, 101, 101, 23,
735 101, 105, 117, 101, 25, 48, 101, 101,
736 101, 101, 101, 101, 101, 101, 101, 101,
737 101, 101, 101, 101, 101, 101, 101, 101,
738 101, 101, 101, 101, 101, 101, 101, 101,
739 101, 101, 101, 101, 101, 101, 101, 101,
740 101, 101, 101, 101, 101, 101, 101, 101,
741 101, 101, 101, 101, 101, 25, 101, 109,
742 109, 101, 25, 48, 101, 101, 101, 101,
743 101, 101, 101, 101, 101, 101, 101, 101,
744 101, 101, 101, 101, 101, 101, 101, 101,
745 101, 101, 101, 101, 101, 101, 101, 101,
746 101, 101, 101, 101, 101, 101, 101, 101,
747 101, 101, 101, 101, 101, 101, 101, 101,
748 101, 101, 101, 25, 101, 105, 101, 109,
749 109, 101, 25, 48, 101, 101, 101, 101,
750 101, 101, 101, 101, 101, 101, 101, 101,
751 101, 101, 101, 101, 101, 101, 101, 101,
752 101, 101, 101, 101, 101, 101, 101, 101,
753 101, 101, 101, 101, 101, 101, 101, 101,
754 101, 101, 101, 101, 101, 101, 101, 101,
755 101, 101, 101, 25, 101, 109, 117, 101,
756 25, 48, 101, 101, 101, 101, 101, 101,
757 101, 101, 101, 101, 101, 101, 101, 101,
758 101, 101, 101, 101, 101, 101, 101, 101,
759 101, 101, 101, 101, 101, 101, 101, 101,
760 101, 101, 101, 101, 101, 101, 101, 101,
761 101, 101, 101, 101, 101, 101, 101, 101,
762 101, 25, 101, 44, 45, 107, 103, 22,
763 23, 48, 101, 101, 24, 22, 101, 101,
764 52, 101, 101, 101, 101, 101, 101, 101,
765 101, 101, 101, 101, 101, 101, 101, 101,
766 101, 101, 101, 101, 101, 101, 101, 101,
767 101, 101, 101, 101, 101, 101, 101, 101,
768 101, 101, 101, 101, 101, 101, 101, 101,
769 101, 23, 101, 20, 21, 21, 22, 23,
770 118, 118, 118, 24, 22, 118, 118, 118,
771 118, 118, 118, 118, 118, 118, 118, 118,
772 118, 118, 118, 118, 118, 118, 118, 118,
773 118, 118, 118, 118, 118, 118, 118, 118,
774 118, 118, 118, 118, 118, 118, 118, 118,
775 118, 118, 118, 118, 118, 118, 118, 118,
776 23, 118, 20, 21, 21, 22, 23, 118,
777 118, 118, 118, 22, 118, 118, 118, 118,
778 118, 118, 118, 118, 118, 118, 118, 118,
779 118, 118, 118, 118, 118, 118, 118, 118,
780 118, 118, 118, 118, 118, 118, 118, 118,
781 118, 118, 118, 118, 118, 118, 118, 118,
782 118, 118, 118, 118, 118, 118, 118, 23,
783 118, 120, 121, 122, 123, 32, 33, 124,
784 119, 119, 34, 32, 119, 119, 125, 119,
785 119, 119, 119, 119, 119, 119, 119, 119,
786 119, 119, 119, 119, 119, 119, 119, 119,
787 119, 119, 119, 119, 119, 119, 119, 119,
788 119, 119, 119, 119, 119, 119, 119, 119,
789 119, 119, 119, 119, 119, 119, 119, 33,
790 119, 126, 121, 123, 123, 32, 33, 124,
791 119, 119, 119, 32, 119, 119, 125, 119,
792 119, 119, 119, 119, 119, 119, 119, 119,
793 119, 119, 119, 119, 119, 119, 119, 119,
794 119, 119, 119, 119, 119, 119, 119, 119,
795 119, 119, 119, 119, 119, 119, 119, 119,
796 119, 119, 119, 119, 119, 119, 119, 33,
797 119, 121, 123, 123, 32, 33, 124, 119,
798 119, 119, 32, 119, 119, 125, 119, 119,
799 119, 119, 119, 119, 119, 119, 119, 119,
800 119, 119, 119, 119, 119, 119, 119, 119,
801 119, 119, 119, 119, 119, 119, 119, 119,
802 119, 119, 119, 119, 119, 119, 119, 119,
803 119, 119, 119, 119, 119, 119, 33, 119,
804 127, 119, 119, 119, 128, 129, 119, 35,
805 124, 119, 119, 119, 119, 119, 127, 119,
806 119, 119, 119, 119, 119, 119, 119, 119,
807 119, 119, 119, 119, 119, 119, 119, 119,
808 119, 119, 119, 119, 119, 119, 119, 119,
809 119, 119, 119, 119, 119, 119, 119, 119,
810 119, 119, 119, 119, 119, 119, 119, 119,
811 35, 119, 120, 121, 122, 49, 32, 33,
812 124, 119, 119, 34, 32, 119, 119, 125,
813 119, 119, 119, 119, 119, 119, 119, 119,
814 119, 119, 119, 119, 119, 119, 119, 119,
815 119, 119, 119, 119, 119, 119, 119, 119,
816 119, 119, 119, 119, 119, 119, 119, 119,
817 119, 119, 119, 119, 119, 119, 119, 119,
818 33, 119, 127, 119, 119, 119, 130, 129,
819 119, 35, 124, 119, 119, 119, 119, 119,
820 127, 119, 119, 119, 119, 119, 119, 119,
821 119, 119, 119, 119, 119, 119, 119, 119,
822 119, 119, 119, 119, 119, 119, 119, 119,
823 119, 119, 119, 119, 119, 119, 119, 119,
824 119, 119, 119, 119, 119, 119, 119, 119,
825 119, 119, 35, 119, 124, 119, 119, 131,
826 124, 119, 119, 119, 119, 119, 119, 119,
827 119, 119, 119, 119, 119, 119, 119, 119,
828 119, 119, 119, 119, 119, 119, 119, 119,
829 119, 119, 119, 119, 119, 119, 119, 119,
830 119, 119, 119, 119, 119, 119, 119, 119,
831 119, 119, 119, 119, 119, 119, 119, 119,
832 131, 119, 124, 119, 124, 119, 119, 119,
833 124, 119, 127, 119, 132, 119, 130, 130,
834 119, 35, 124, 119, 119, 119, 119, 119,
835 127, 119, 119, 119, 119, 119, 119, 119,
836 119, 119, 119, 119, 119, 119, 119, 119,
837 119, 119, 119, 119, 119, 119, 119, 119,
838 119, 119, 119, 119, 119, 119, 119, 119,
839 119, 119, 119, 119, 119, 119, 119, 119,
840 119, 119, 35, 119, 127, 119, 119, 119,
841 130, 130, 119, 35, 124, 119, 119, 119,
842 119, 119, 127, 119, 119, 119, 119, 119,
843 119, 119, 119, 119, 119, 119, 119, 119,
844 119, 119, 119, 119, 119, 119, 119, 119,
845 119, 119, 119, 119, 119, 119, 119, 119,
846 119, 119, 119, 119, 119, 119, 119, 119,
847 119, 119, 119, 119, 35, 119, 133, 134,
848 135, 135, 32, 33, 124, 119, 119, 119,
849 32, 119, 119, 119, 119, 119, 119, 119,
850 119, 119, 119, 119, 119, 119, 119, 119,
851 119, 119, 119, 119, 119, 119, 119, 119,
852 119, 119, 119, 119, 119, 119, 119, 119,
853 119, 119, 119, 119, 119, 119, 119, 119,
854 119, 119, 119, 119, 33, 119, 134, 135,
855 135, 32, 33, 124, 119, 119, 119, 32,
856 119, 119, 119, 119, 119, 119, 119, 119,
857 119, 119, 119, 119, 119, 119, 119, 119,
858 119, 119, 119, 119, 119, 119, 119, 119,
859 119, 119, 119, 119, 119, 119, 119, 119,
860 119, 119, 119, 119, 119, 119, 119, 119,
861 119, 119, 119, 33, 119, 135, 135, 32,
862 33, 124, 119, 119, 119, 32, 119, 119,
863 119, 119, 119, 119, 119, 119, 119, 119,
864 119, 119, 119, 119, 119, 119, 119, 119,
865 119, 119, 119, 119, 119, 119, 119, 119,
866 119, 119, 119, 119, 119, 119, 119, 119,
867 119, 119, 119, 119, 119, 119, 119, 119,
868 119, 33, 119, 124, 119, 119, 131, 124,
869 119, 119, 119, 32, 119, 119, 119, 119,
870 119, 119, 119, 119, 119, 119, 119, 119,
871 119, 119, 119, 119, 119, 119, 119, 119,
872 119, 119, 119, 119, 119, 119, 119, 119,
873 119, 119, 119, 119, 119, 119, 119, 119,
874 119, 119, 119, 119, 119, 119, 119, 131,
875 119, 120, 121, 123, 123, 32, 33, 124,
876 119, 119, 119, 32, 119, 119, 125, 119,
877 119, 119, 119, 119, 119, 119, 119, 119,
878 119, 119, 119, 119, 119, 119, 119, 119,
879 119, 119, 119, 119, 119, 119, 119, 119,
880 119, 119, 119, 119, 119, 119, 119, 119,
881 119, 119, 119, 119, 119, 119, 119, 33,
882 119, 136, 137, 137, 32, 33, 124, 119,
883 119, 119, 32, 119, 119, 119, 119, 119,
884 119, 119, 119, 119, 119, 119, 119, 119,
885 119, 119, 119, 119, 119, 119, 119, 119,
886 119, 119, 119, 119, 119, 119, 119, 119,
887 119, 119, 119, 119, 119, 119, 119, 119,
888 119, 119, 119, 119, 119, 119, 33, 119,
889 128, 138, 119, 35, 124, 119, 119, 119,
890 119, 119, 119, 119, 119, 119, 119, 119,
891 119, 119, 119, 119, 119, 119, 119, 119,
892 119, 119, 119, 119, 119, 119, 119, 119,
893 119, 119, 119, 119, 119, 119, 119, 119,
894 119, 119, 119, 119, 119, 119, 119, 119,
895 119, 119, 119, 119, 35, 119, 130, 130,
896 119, 35, 124, 119, 119, 119, 119, 119,
897 119, 119, 119, 119, 119, 119, 119, 119,
898 119, 119, 119, 119, 119, 119, 119, 119,
899 119, 119, 119, 119, 119, 119, 119, 119,
900 119, 119, 119, 119, 119, 119, 119, 119,
901 119, 119, 119, 119, 119, 119, 119, 119,
902 119, 119, 35, 119, 128, 119, 130, 130,
903 119, 35, 124, 119, 119, 119, 119, 119,
904 119, 119, 119, 119, 119, 119, 119, 119,
905 119, 119, 119, 119, 119, 119, 119, 119,
906 119, 119, 119, 119, 119, 119, 119, 119,
907 119, 119, 119, 119, 119, 119, 119, 119,
908 119, 119, 119, 119, 119, 119, 119, 119,
909 119, 119, 35, 119, 130, 138, 119, 35,
910 124, 119, 119, 119, 119, 119, 119, 119,
911 119, 119, 119, 119, 119, 119, 119, 119,
912 119, 119, 119, 119, 119, 119, 119, 119,
913 119, 119, 119, 119, 119, 119, 119, 119,
914 119, 119, 119, 119, 119, 119, 119, 119,
915 119, 119, 119, 119, 119, 119, 119, 119,
916 35, 119, 42, 43, 44, 45, 107, 103,
917 22, 23, 48, 49, 49, 24, 22, 101,
918 42, 52, 101, 101, 101, 101, 101, 101,
919 101, 101, 101, 101, 101, 101, 101, 101,
920 101, 101, 101, 101, 101, 101, 101, 101,
921 101, 101, 101, 101, 101, 101, 101, 101,
922 101, 101, 101, 101, 101, 101, 101, 101,
923 101, 101, 23, 101, 57, 139, 59, 60,
924 4, 5, 61, 56, 56, 8, 4, 56,
925 56, 62, 56, 56, 56, 56, 56, 56,
926 56, 56, 56, 56, 56, 56, 56, 56,
927 56, 56, 56, 56, 56, 56, 56, 56,
928 56, 56, 56, 56, 56, 56, 56, 56,
929 56, 56, 56, 56, 56, 56, 56, 56,
930 56, 56, 5, 56, 42, 43, 44, 45,
931 140, 141, 22, 142, 143, 56, 49, 24,
932 22, 56, 42, 52, 56, 56, 56, 56,
933 56, 56, 56, 56, 56, 56, 56, 56,
934 56, 56, 56, 56, 56, 56, 56, 56,
935 56, 56, 56, 56, 56, 56, 56, 56,
936 56, 56, 56, 56, 56, 56, 56, 56,
937 56, 56, 56, 56, 142, 56, 20, 144,
938 144, 22, 142, 61, 56, 56, 24, 22,
939 56, 56, 56, 56, 56, 56, 56, 56,
940 56, 56, 56, 56, 56, 56, 56, 56,
941 56, 56, 56, 56, 56, 56, 56, 56,
942 56, 56, 56, 56, 56, 56, 56, 56,
943 56, 56, 56, 56, 56, 56, 56, 56,
944 56, 56, 56, 142, 56, 61, 56, 56,
945 68, 61, 56, 56, 56, 22, 56, 56,
946 56, 56, 56, 56, 56, 56, 56, 56,
947 56, 56, 56, 56, 56, 56, 56, 56,
948 56, 56, 56, 56, 56, 56, 56, 56,
949 56, 56, 56, 56, 56, 56, 56, 56,
950 56, 56, 56, 56, 56, 56, 56, 56,
951 56, 68, 56, 143, 56, 56, 145, 143,
952 56, 56, 56, 22, 56, 56, 56, 56,
953 56, 56, 56, 56, 56, 56, 56, 56,
954 56, 56, 56, 56, 56, 56, 56, 56,
955 56, 56, 56, 56, 56, 56, 56, 56,
956 56, 56, 56, 56, 56, 56, 56, 56,
957 56, 56, 56, 56, 56, 56, 56, 145,
958 56, 143, 56, 143, 56, 56, 56, 143,
959 56, 42, 56, 69, 20, 144, 144, 22,
960 142, 61, 56, 56, 56, 22, 56, 42,
961 56, 56, 56, 56, 56, 56, 56, 56,
962 56, 56, 56, 56, 56, 56, 56, 56,
963 56, 56, 56, 56, 56, 56, 56, 56,
964 56, 56, 56, 56, 56, 56, 56, 56,
965 56, 56, 56, 56, 56, 56, 56, 56,
966 56, 142, 56, 147, 146, 148, 148, 146,
967 40, 149, 146, 146, 146, 146, 146, 146,
968 146, 146, 146, 146, 146, 146, 146, 146,
969 146, 146, 146, 146, 146, 146, 146, 146,
970 146, 146, 146, 146, 146, 146, 146, 146,
971 146, 146, 146, 146, 146, 146, 146, 146,
972 146, 146, 146, 146, 146, 146, 146, 146,
973 146, 40, 146, 148, 148, 146, 40, 149,
974 146, 146, 146, 146, 146, 146, 146, 146,
975 146, 146, 146, 146, 146, 146, 146, 146,
976 146, 146, 146, 146, 146, 146, 146, 146,
977 146, 146, 146, 146, 146, 146, 146, 146,
978 146, 146, 146, 146, 146, 146, 146, 146,
979 146, 146, 146, 146, 146, 146, 146, 40,
980 146, 149, 146, 146, 150, 149, 146, 146,
981 146, 146, 146, 146, 146, 146, 146, 146,
982 146, 146, 146, 146, 146, 146, 146, 146,
983 146, 146, 146, 146, 146, 146, 146, 146,
984 146, 146, 146, 146, 146, 146, 146, 146,
985 146, 146, 146, 146, 146, 146, 146, 146,
986 146, 146, 146, 146, 146, 150, 146, 149,
987 146, 149, 146, 146, 146, 149, 146, 42,
988 118, 118, 118, 118, 118, 118, 118, 118,
989 49, 118, 118, 118, 118, 42, 118, 0
990 };
991
992 static const unsigned char _indic_syllable_machine_trans_targs[] = {
993 31, 37, 42, 2, 43, 46, 4, 50,
994 51, 31, 60, 9, 66, 69, 61, 11,
995 74, 75, 78, 31, 83, 17, 89, 92,
996 93, 84, 31, 19, 98, 31, 107, 24,
997 113, 116, 117, 108, 26, 122, 127, 31,
998 134, 31, 32, 53, 79, 81, 100, 101,
999 85, 102, 123, 124, 94, 132, 137, 92,
1000 31, 33, 35, 6, 52, 38, 47, 34,
1001 1, 36, 40, 0, 39, 41, 44, 45,
1002 3, 48, 5, 49, 31, 54, 56, 14,
1003 77, 62, 70, 55, 7, 57, 72, 64,
1004 58, 13, 76, 59, 8, 63, 65, 67,
1005 68, 10, 71, 12, 73, 31, 80, 20,
1006 82, 96, 87, 15, 99, 16, 86, 88,
1007 90, 91, 18, 95, 21, 97, 31, 31,
1008 103, 105, 22, 27, 109, 118, 104, 106,
1009 120, 111, 23, 110, 112, 114, 115, 25,
1010 119, 28, 121, 125, 126, 131, 128, 129,
1011 29, 130, 31, 133, 30, 135, 136
1012 };
1013
1014 static const char _indic_syllable_machine_trans_actions[] = {
1015 1, 0, 2, 0, 2, 0, 0, 2,
1016 2, 3, 2, 0, 2, 0, 0, 0,
1017 2, 2, 2, 4, 2, 0, 5, 5,
1018 5, 0, 6, 0, 2, 7, 2, 0,
1019 2, 0, 2, 0, 0, 2, 0, 8,
1020 0, 11, 2, 2, 5, 0, 12, 12,
1021 0, 2, 5, 2, 5, 2, 0, 13,
1022 14, 2, 0, 0, 2, 0, 2, 2,
1023 0, 2, 2, 0, 0, 2, 2, 2,
1024 0, 0, 0, 2, 15, 2, 0, 0,
1025 2, 0, 2, 2, 0, 2, 2, 2,
1026 2, 0, 2, 2, 0, 0, 2, 2,
1027 2, 0, 0, 0, 2, 16, 5, 0,
1028 5, 2, 2, 0, 5, 0, 0, 2,
1029 5, 5, 0, 0, 0, 2, 17, 18,
1030 2, 0, 0, 0, 0, 2, 2, 2,
1031 2, 2, 0, 0, 2, 2, 2, 0,
1032 0, 0, 2, 0, 19, 19, 0, 0,
1033 0, 0, 20, 2, 0, 0, 0
1034 };
1035
1036 static const char _indic_syllable_machine_to_state_actions[] = {
1037 0, 0, 0, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 0, 0,
1039 0, 0, 0, 0, 0, 0, 0, 0,
1040 0, 0, 0, 0, 0, 0, 0, 9,
1041 0, 0, 0, 0, 0, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, 0, 0,
1043 0, 0, 0, 0, 0, 0, 0, 0,
1044 0, 0, 0, 0, 0, 0, 0, 0,
1045 0, 0, 0, 0, 0, 0, 0, 0,
1046 0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 0, 0, 0, 0, 0, 0, 0,
1048 0, 0, 0, 0, 0, 0, 0, 0,
1049 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0,
1052 0, 0, 0, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 0, 0, 0,
1054 0, 0
1055 };
1056
1057 static const char _indic_syllable_machine_from_state_actions[] = {
1058 0, 0, 0, 0, 0, 0, 0, 0,
1059 0, 0, 0, 0, 0, 0, 0, 0,
1060 0, 0, 0, 0, 0, 0, 0, 0,
1061 0, 0, 0, 0, 0, 0, 0, 10,
1062 0, 0, 0, 0, 0, 0, 0, 0,
1063 0, 0, 0, 0, 0, 0, 0, 0,
1064 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0,
1070 0, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0
1076 };
1077
1078 static const short _indic_syllable_machine_eof_trans[] = {
1079 1, 1, 1, 1, 1, 1, 1, 10,
1080 10, 10, 10, 10, 10, 10, 10, 20,
1081 20, 27, 20, 27, 20, 20, 30, 30,
1082 30, 30, 30, 30, 30, 1, 40, 0,
1083 57, 57, 57, 57, 57, 57, 57, 57,
1084 57, 57, 57, 57, 57, 57, 57, 57,
1085 57, 57, 57, 57, 57, 77, 77, 77,
1086 77, 77, 77, 77, 77, 77, 77, 77,
1087 77, 77, 77, 77, 77, 77, 77, 77,
1088 77, 77, 77, 77, 77, 77, 77, 102,
1089 102, 102, 102, 102, 102, 102, 102, 102,
1090 102, 102, 102, 102, 27, 102, 102, 102,
1091 102, 102, 102, 102, 119, 119, 120, 120,
1092 120, 120, 120, 120, 120, 120, 120, 120,
1093 120, 120, 120, 120, 120, 120, 120, 120,
1094 120, 120, 120, 102, 57, 57, 57, 57,
1095 57, 57, 57, 57, 147, 147, 147, 147,
1096 147, 119
1097 };
1098
1099 static const int indic_syllable_machine_start = 31;
1100 static const int indic_syllable_machine_first_final = 31;
1101 static const int indic_syllable_machine_error = -1;
1102
1103 static const int indic_syllable_machine_en_main = 31;
1104
1105
1106 #line 58 "hb-ot-shaper-indic-machine.rl"
1107
1108
1109
1110 #line 121 "hb-ot-shaper-indic-machine.rl"
1111
1112
1113 #define found_syllable(syllable_type) \
1114 HB_STMT_START { \
1115 if (0) fprintf (stderr, "syllable %u..%u %s\n", ts, te, #syllable_type); \
1116 for (unsigned int i = ts; i < te; i++) \
1117 info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1118 syllable_serial++; \
1119 if (syllable_serial == 16) syllable_serial = 1; \
1120 } HB_STMT_END
1121
1122 inline void
find_syllables_indic(hb_buffer_t * buffer)1123 find_syllables_indic (hb_buffer_t *buffer)
1124 {
1125 unsigned int p, pe, eof, ts, te, act;
1126 int cs;
1127 hb_glyph_info_t *info = buffer->info;
1128
1129 #line 1130 "hb-ot-shaper-indic-machine.hh"
1130 {
1131 cs = indic_syllable_machine_start;
1132 ts = 0;
1133 te = 0;
1134 act = 0;
1135 }
1136
1137 #line 141 "hb-ot-shaper-indic-machine.rl"
1138
1139
1140 p = 0;
1141 pe = eof = buffer->len;
1142
1143 unsigned int syllable_serial = 1;
1144
1145 #line 1146 "hb-ot-shaper-indic-machine.hh"
1146 {
1147 int _slen;
1148 int _trans;
1149 const unsigned char *_keys;
1150 const unsigned char *_inds;
1151 if ( p == pe )
1152 goto _test_eof;
1153 _resume:
1154 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1155 case 10:
1156 #line 1 "NONE"
1157 {ts = p;}
1158 break;
1159 #line 1160 "hb-ot-shaper-indic-machine.hh"
1160 }
1161
1162 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
1163 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1164
1165 _slen = _indic_syllable_machine_key_spans[cs];
1166 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1167 ( info[p].indic_category()) <= _keys[1] ?
1168 ( info[p].indic_category()) - _keys[0] : _slen ];
1169
1170 _eof_trans:
1171 cs = _indic_syllable_machine_trans_targs[_trans];
1172
1173 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1174 goto _again;
1175
1176 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1177 case 2:
1178 #line 1 "NONE"
1179 {te = p+1;}
1180 break;
1181 case 11:
1182 #line 117 "hb-ot-shaper-indic-machine.rl"
1183 {te = p+1;{ found_syllable (indic_non_indic_cluster); }}
1184 break;
1185 case 14:
1186 #line 111 "hb-ot-shaper-indic-machine.rl"
1187 {te = p;p--;{ found_syllable (indic_consonant_syllable); }}
1188 break;
1189 case 15:
1190 #line 112 "hb-ot-shaper-indic-machine.rl"
1191 {te = p;p--;{ found_syllable (indic_vowel_syllable); }}
1192 break;
1193 case 18:
1194 #line 113 "hb-ot-shaper-indic-machine.rl"
1195 {te = p;p--;{ found_syllable (indic_standalone_cluster); }}
1196 break;
1197 case 20:
1198 #line 114 "hb-ot-shaper-indic-machine.rl"
1199 {te = p;p--;{ found_syllable (indic_symbol_cluster); }}
1200 break;
1201 case 16:
1202 #line 116 "hb-ot-shaper-indic-machine.rl"
1203 {te = p;p--;{ found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
1204 break;
1205 case 17:
1206 #line 117 "hb-ot-shaper-indic-machine.rl"
1207 {te = p;p--;{ found_syllable (indic_non_indic_cluster); }}
1208 break;
1209 case 1:
1210 #line 111 "hb-ot-shaper-indic-machine.rl"
1211 {{p = ((te))-1;}{ found_syllable (indic_consonant_syllable); }}
1212 break;
1213 case 3:
1214 #line 112 "hb-ot-shaper-indic-machine.rl"
1215 {{p = ((te))-1;}{ found_syllable (indic_vowel_syllable); }}
1216 break;
1217 case 7:
1218 #line 113 "hb-ot-shaper-indic-machine.rl"
1219 {{p = ((te))-1;}{ found_syllable (indic_standalone_cluster); }}
1220 break;
1221 case 8:
1222 #line 114 "hb-ot-shaper-indic-machine.rl"
1223 {{p = ((te))-1;}{ found_syllable (indic_symbol_cluster); }}
1224 break;
1225 case 4:
1226 #line 116 "hb-ot-shaper-indic-machine.rl"
1227 {{p = ((te))-1;}{ found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
1228 break;
1229 case 6:
1230 #line 1 "NONE"
1231 { switch( act ) {
1232 case 1:
1233 {{p = ((te))-1;} found_syllable (indic_consonant_syllable); }
1234 break;
1235 case 5:
1236 {{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
1237 break;
1238 case 6:
1239 {{p = ((te))-1;} found_syllable (indic_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
1240 break;
1241 case 7:
1242 {{p = ((te))-1;} found_syllable (indic_non_indic_cluster); }
1243 break;
1244 }
1245 }
1246 break;
1247 case 19:
1248 #line 1 "NONE"
1249 {te = p+1;}
1250 #line 111 "hb-ot-shaper-indic-machine.rl"
1251 {act = 1;}
1252 break;
1253 case 13:
1254 #line 1 "NONE"
1255 {te = p+1;}
1256 #line 115 "hb-ot-shaper-indic-machine.rl"
1257 {act = 5;}
1258 break;
1259 case 5:
1260 #line 1 "NONE"
1261 {te = p+1;}
1262 #line 116 "hb-ot-shaper-indic-machine.rl"
1263 {act = 6;}
1264 break;
1265 case 12:
1266 #line 1 "NONE"
1267 {te = p+1;}
1268 #line 117 "hb-ot-shaper-indic-machine.rl"
1269 {act = 7;}
1270 break;
1271 #line 1272 "hb-ot-shaper-indic-machine.hh"
1272 }
1273
1274 _again:
1275 switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1276 case 9:
1277 #line 1 "NONE"
1278 {ts = 0;}
1279 break;
1280 #line 1281 "hb-ot-shaper-indic-machine.hh"
1281 }
1282
1283 if ( ++p != pe )
1284 goto _resume;
1285 _test_eof: {}
1286 if ( p == eof )
1287 {
1288 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1289 _trans = _indic_syllable_machine_eof_trans[cs] - 1;
1290 goto _eof_trans;
1291 }
1292 }
1293
1294 }
1295
1296 #line 149 "hb-ot-shaper-indic-machine.rl"
1297
1298 }
1299
1300 #undef found_syllable
1301
1302 #endif /* HB_OT_SHAPER_INDIC_MACHINE_HH */
1303