Imported Upstream version 0.9.3
[platform/upstream/harfbuzz.git] / src / hb-ot-shape-complex-indic-machine.hh
1
2 #line 1 "../../src/hb-ot-shape-complex-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_SHAPE_COMPLEX_INDIC_MACHINE_HH
30 #define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
31
32 #include "hb-private.hh"
33
34
35 #line 36 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
36 static const unsigned char _indic_syllable_machine_trans_keys[] = {
37         1u, 16u, 13u, 13u, 4u, 14u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 
38         5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u, 
39         16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 
40         6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 
41         4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 4u, 14u, 5u, 7u, 7u, 7u, 
42         5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 
43         7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 
44         6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 
45         4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 
46         4u, 14u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 
47         7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 
48         6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 
49         4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 
50         4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 
51         4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 
52         4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u, 5u, 14u, 
53         9u, 14u, 9u, 9u, 3u, 13u, 3u, 9u, 9u, 9u, 3u, 9u, 6u, 14u, 3u, 14u, 
54         4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
55         3u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 
56         3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 
57         3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 3u, 14u, 3u, 14u, 4u, 14u, 
58         1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 
59         1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 
60         5u, 14u, 8u, 14u, 5u, 14u, 9u, 14u, 9u, 9u, 3u, 13u, 3u, 9u, 9u, 9u, 
61         3u, 9u, 6u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
62         3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 1u, 16u, 
63         1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 
64         1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u, 3u, 14u, 
65         3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 
66         3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 3u, 14u, 3u, 14u, 4u, 14u, 1u, 16u, 
67         3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 8u, 14u, 5u, 14u, 9u, 14u, 9u, 9u, 
68         3u, 13u, 3u, 9u, 9u, 9u, 3u, 9u, 6u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
69         3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 
70         1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 
71         1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 14u, 1u, 16u, 1u, 16u, 
72         1u, 16u, 3u, 14u, 1u, 16u, 3u, 14u, 1u, 16u, 0
73 };
74
75 static const char _indic_syllable_machine_key_spans[] = {
76         16, 1, 11, 3, 1, 3, 3, 1, 
77         3, 3, 1, 3, 3, 1, 1, 1, 
78         1, 4, 1, 1, 4, 1, 1, 4, 
79         1, 1, 11, 11, 11, 11, 11, 11, 
80         11, 11, 11, 16, 1, 11, 3, 1, 
81         3, 3, 1, 3, 3, 1, 3, 3, 
82         1, 1, 1, 1, 4, 1, 1, 4, 
83         1, 1, 4, 1, 1, 11, 11, 11, 
84         11, 11, 11, 11, 11, 11, 16, 1, 
85         11, 3, 1, 3, 3, 1, 3, 3, 
86         1, 3, 3, 1, 1, 1, 1, 4, 
87         1, 1, 4, 1, 1, 4, 1, 1, 
88         11, 11, 11, 11, 11, 11, 11, 11, 
89         11, 16, 12, 12, 11, 16, 12, 12, 
90         11, 16, 12, 12, 11, 16, 12, 12, 
91         11, 16, 12, 12, 11, 10, 7, 10, 
92         6, 1, 11, 7, 1, 7, 9, 12, 
93         11, 10, 12, 11, 10, 12, 11, 10, 
94         12, 11, 11, 16, 12, 16, 16, 16, 
95         12, 16, 16, 16, 12, 16, 16, 16, 
96         12, 16, 16, 16, 12, 12, 12, 11, 
97         16, 12, 12, 11, 16, 12, 12, 11, 
98         16, 12, 12, 11, 16, 12, 12, 11, 
99         10, 7, 10, 6, 1, 11, 7, 1, 
100         7, 9, 12, 11, 10, 12, 11, 10, 
101         12, 11, 10, 12, 11, 16, 12, 16, 
102         16, 16, 12, 16, 16, 16, 12, 16, 
103         16, 16, 12, 16, 16, 11, 16, 12, 
104         12, 12, 11, 16, 12, 12, 11, 16, 
105         12, 12, 11, 16, 12, 12, 11, 16, 
106         12, 12, 11, 10, 7, 10, 6, 1, 
107         11, 7, 1, 7, 9, 12, 11, 10, 
108         12, 11, 10, 12, 11, 10, 12, 11, 
109         16, 12, 16, 16, 16, 12, 16, 16, 
110         16, 12, 16, 16, 16, 12, 16, 16, 
111         16, 12, 16, 12, 16
112 };
113
114 static const short _indic_syllable_machine_index_offsets[] = {
115         0, 17, 19, 31, 35, 37, 41, 45, 
116         47, 51, 55, 57, 61, 65, 67, 69, 
117         71, 73, 78, 80, 82, 87, 89, 91, 
118         96, 98, 100, 112, 124, 136, 148, 160, 
119         172, 184, 196, 208, 225, 227, 239, 243, 
120         245, 249, 253, 255, 259, 263, 265, 269, 
121         273, 275, 277, 279, 281, 286, 288, 290, 
122         295, 297, 299, 304, 306, 308, 320, 332, 
123         344, 356, 368, 380, 392, 404, 416, 433, 
124         435, 447, 451, 453, 457, 461, 463, 467, 
125         471, 473, 477, 481, 483, 485, 487, 489, 
126         494, 496, 498, 503, 505, 507, 512, 514, 
127         516, 528, 540, 552, 564, 576, 588, 600, 
128         612, 624, 641, 654, 667, 679, 696, 709, 
129         722, 734, 751, 764, 777, 789, 806, 819, 
130         832, 844, 861, 874, 887, 899, 910, 918, 
131         929, 936, 938, 950, 958, 960, 968, 978, 
132         991, 1003, 1014, 1027, 1039, 1050, 1063, 1075, 
133         1086, 1099, 1111, 1123, 1140, 1153, 1170, 1187, 
134         1204, 1217, 1234, 1251, 1268, 1281, 1298, 1315, 
135         1332, 1345, 1362, 1379, 1396, 1409, 1422, 1435, 
136         1447, 1464, 1477, 1490, 1502, 1519, 1532, 1545, 
137         1557, 1574, 1587, 1600, 1612, 1629, 1642, 1655, 
138         1667, 1678, 1686, 1697, 1704, 1706, 1718, 1726, 
139         1728, 1736, 1746, 1759, 1771, 1782, 1795, 1807, 
140         1818, 1831, 1843, 1854, 1867, 1879, 1896, 1909, 
141         1926, 1943, 1960, 1973, 1990, 2007, 2024, 2037, 
142         2054, 2071, 2088, 2101, 2118, 2135, 2147, 2164, 
143         2177, 2190, 2203, 2215, 2232, 2245, 2258, 2270, 
144         2287, 2300, 2313, 2325, 2342, 2355, 2368, 2380, 
145         2397, 2410, 2423, 2435, 2446, 2454, 2465, 2472, 
146         2474, 2486, 2494, 2496, 2504, 2514, 2527, 2539, 
147         2550, 2563, 2575, 2586, 2599, 2611, 2622, 2635, 
148         2647, 2664, 2677, 2694, 2711, 2728, 2741, 2758, 
149         2775, 2792, 2805, 2822, 2839, 2856, 2869, 2886, 
150         2903, 2920, 2933, 2950, 2963
151 };
152
153 static const short _indic_syllable_machine_indicies[] = {
154         1, 2, 0, 0, 0, 0, 0, 0, 
155         0, 0, 0, 0, 0, 0, 0, 1, 
156         0, 3, 0, 4, 5, 5, 6, 0, 
157         0, 0, 0, 0, 0, 4, 0, 7, 
158         7, 6, 0, 6, 0, 8, 8, 9, 
159         0, 10, 10, 9, 0, 9, 0, 11, 
160         11, 12, 0, 13, 13, 12, 0, 12, 
161         0, 14, 14, 15, 0, 16, 16, 15, 
162         0, 15, 0, 17, 0, 18, 0, 19, 
163         0, 20, 14, 14, 15, 0, 21, 0, 
164         22, 0, 23, 11, 11, 12, 0, 24, 
165         0, 25, 0, 26, 8, 8, 9, 0, 
166         27, 0, 28, 0, 4, 5, 5, 6, 
167         0, 0, 0, 0, 0, 29, 4, 0, 
168         30, 5, 5, 6, 0, 0, 0, 0, 
169         0, 0, 30, 0, 30, 5, 5, 6, 
170         0, 0, 0, 0, 0, 31, 30, 0, 
171         32, 5, 5, 6, 0, 0, 0, 0, 
172         0, 0, 32, 0, 32, 5, 5, 6, 
173         0, 0, 0, 0, 0, 33, 32, 0, 
174         34, 5, 5, 6, 0, 0, 0, 0, 
175         0, 0, 34, 0, 34, 5, 5, 6, 
176         0, 0, 0, 0, 0, 35, 34, 0, 
177         36, 5, 5, 6, 0, 0, 0, 0, 
178         0, 0, 36, 0, 36, 5, 5, 6, 
179         0, 0, 0, 0, 0, 37, 36, 0, 
180         39, 40, 38, 38, 38, 38, 38, 38, 
181         38, 38, 38, 38, 38, 38, 38, 39, 
182         38, 41, 38, 42, 43, 43, 44, 38, 
183         38, 38, 38, 38, 38, 42, 38, 45, 
184         45, 44, 38, 44, 38, 46, 46, 47, 
185         38, 48, 48, 47, 38, 47, 38, 49, 
186         49, 50, 38, 51, 51, 50, 38, 50, 
187         38, 52, 52, 53, 38, 54, 54, 53, 
188         38, 53, 38, 55, 38, 56, 38, 57, 
189         38, 58, 52, 52, 53, 38, 59, 38, 
190         60, 38, 61, 49, 49, 50, 38, 62, 
191         38, 63, 38, 64, 46, 46, 47, 38, 
192         65, 38, 66, 38, 42, 43, 43, 44, 
193         38, 38, 38, 38, 38, 67, 42, 38, 
194         68, 43, 43, 44, 38, 38, 38, 38, 
195         38, 38, 68, 38, 68, 43, 43, 44, 
196         38, 38, 38, 38, 38, 69, 68, 38, 
197         70, 43, 43, 44, 38, 38, 38, 38, 
198         38, 38, 70, 38, 70, 43, 43, 44, 
199         38, 38, 38, 38, 38, 71, 70, 38, 
200         72, 43, 43, 44, 38, 38, 38, 38, 
201         38, 38, 72, 38, 72, 43, 43, 44, 
202         38, 38, 38, 38, 38, 73, 72, 38, 
203         74, 43, 43, 44, 38, 38, 38, 38, 
204         38, 38, 74, 38, 74, 43, 43, 44, 
205         38, 38, 38, 38, 38, 75, 74, 38, 
206         77, 78, 76, 76, 76, 76, 76, 76, 
207         76, 76, 76, 76, 76, 76, 76, 77, 
208         76, 79, 76, 80, 81, 81, 82, 76, 
209         76, 76, 76, 76, 76, 80, 76, 83, 
210         83, 82, 76, 82, 76, 84, 84, 85, 
211         76, 86, 86, 85, 76, 85, 76, 87, 
212         87, 88, 76, 89, 89, 88, 76, 88, 
213         76, 90, 90, 91, 76, 92, 92, 91, 
214         76, 91, 76, 93, 76, 94, 76, 95, 
215         76, 96, 90, 90, 91, 76, 97, 76, 
216         98, 76, 99, 87, 87, 88, 76, 100, 
217         76, 101, 76, 102, 84, 84, 85, 76, 
218         103, 76, 104, 76, 80, 81, 81, 82, 
219         76, 76, 76, 76, 76, 105, 80, 76, 
220         106, 81, 81, 82, 76, 76, 76, 76, 
221         76, 76, 106, 76, 106, 81, 81, 82, 
222         76, 76, 76, 76, 76, 107, 106, 76, 
223         108, 81, 81, 82, 76, 76, 76, 76, 
224         76, 76, 108, 76, 108, 81, 81, 82, 
225         76, 76, 76, 76, 76, 109, 108, 76, 
226         110, 81, 81, 82, 76, 76, 76, 76, 
227         76, 76, 110, 76, 110, 81, 81, 82, 
228         76, 76, 76, 76, 76, 111, 110, 76, 
229         112, 81, 81, 82, 76, 76, 76, 76, 
230         76, 76, 112, 76, 112, 81, 81, 82, 
231         76, 76, 76, 76, 76, 113, 112, 76, 
232         115, 116, 114, 114, 114, 114, 114, 114, 
233         114, 114, 117, 117, 114, 114, 118, 119, 
234         114, 121, 122, 123, 124, 6, 125, 126, 
235         127, 120, 120, 37, 128, 120, 129, 122, 
236         124, 124, 6, 125, 126, 127, 120, 120, 
237         120, 128, 120, 122, 124, 124, 6, 125, 
238         126, 127, 120, 120, 120, 128, 120, 130, 
239         120, 120, 120, 19, 131, 120, 125, 126, 
240         120, 120, 120, 120, 132, 120, 130, 120, 
241         133, 134, 135, 136, 6, 125, 126, 127, 
242         120, 120, 35, 137, 120, 138, 134, 136, 
243         136, 6, 125, 126, 127, 120, 120, 120, 
244         137, 120, 134, 136, 136, 6, 125, 126, 
245         127, 120, 120, 120, 137, 120, 139, 120, 
246         120, 120, 19, 140, 120, 125, 126, 120, 
247         120, 120, 120, 132, 120, 139, 120, 141, 
248         142, 143, 144, 6, 125, 126, 127, 120, 
249         120, 33, 145, 120, 146, 142, 144, 144, 
250         6, 125, 126, 127, 120, 120, 120, 145, 
251         120, 142, 144, 144, 6, 125, 126, 127, 
252         120, 120, 120, 145, 120, 147, 120, 120, 
253         120, 19, 148, 120, 125, 126, 120, 120, 
254         120, 120, 132, 120, 147, 120, 149, 150, 
255         151, 152, 6, 125, 126, 127, 120, 120, 
256         31, 153, 120, 154, 150, 152, 152, 6, 
257         125, 126, 127, 120, 120, 120, 153, 120, 
258         150, 152, 152, 6, 125, 126, 127, 120, 
259         120, 120, 153, 120, 155, 120, 120, 120, 
260         19, 156, 120, 125, 126, 120, 120, 120, 
261         120, 132, 120, 155, 120, 157, 158, 159, 
262         160, 6, 125, 126, 127, 120, 120, 29, 
263         161, 120, 162, 158, 160, 160, 6, 125, 
264         126, 127, 120, 120, 120, 161, 120, 158, 
265         160, 160, 6, 125, 126, 127, 120, 120, 
266         120, 161, 120, 19, 19, 120, 125, 126, 
267         120, 120, 120, 120, 132, 120, 125, 126, 
268         120, 120, 120, 120, 132, 120, 163, 120, 
269         120, 120, 126, 120, 120, 120, 120, 132, 
270         120, 126, 120, 120, 120, 120, 132, 120, 
271         164, 120, 165, 120, 166, 120, 120, 120, 
272         126, 120, 120, 120, 3, 120, 2, 120, 
273         120, 120, 120, 120, 126, 120, 126, 120, 
274         165, 120, 120, 120, 120, 120, 126, 120, 
275         19, 120, 125, 126, 120, 120, 120, 120, 
276         132, 120, 167, 28, 168, 169, 9, 125, 
277         126, 120, 120, 120, 120, 132, 120, 28, 
278         168, 169, 9, 125, 126, 120, 120, 120, 
279         120, 132, 120, 168, 168, 9, 125, 126, 
280         120, 120, 120, 120, 132, 120, 170, 25, 
281         171, 172, 12, 125, 126, 120, 120, 120, 
282         120, 132, 120, 25, 171, 172, 12, 125, 
283         126, 120, 120, 120, 120, 132, 120, 171, 
284         171, 12, 125, 126, 120, 120, 120, 120, 
285         132, 120, 173, 22, 174, 175, 15, 125, 
286         126, 120, 120, 120, 120, 132, 120, 22, 
287         174, 175, 15, 125, 126, 120, 120, 120, 
288         120, 132, 120, 174, 174, 15, 125, 126, 
289         120, 120, 120, 120, 132, 120, 176, 19, 
290         120, 177, 120, 125, 126, 120, 120, 120, 
291         120, 132, 120, 19, 120, 177, 120, 125, 
292         126, 120, 120, 120, 120, 132, 120, 158, 
293         160, 160, 6, 125, 126, 120, 120, 120, 
294         120, 161, 120, 1, 2, 120, 120, 19, 
295         19, 120, 125, 126, 120, 120, 120, 120, 
296         132, 120, 1, 120, 157, 158, 160, 160, 
297         6, 125, 126, 127, 120, 120, 120, 161, 
298         120, 155, 120, 120, 120, 120, 120, 120, 
299         125, 126, 120, 120, 120, 120, 132, 120, 
300         155, 120, 155, 120, 120, 120, 120, 156, 
301         120, 125, 126, 120, 120, 120, 120, 132, 
302         120, 155, 120, 155, 2, 120, 120, 19, 
303         156, 120, 125, 126, 120, 120, 120, 120, 
304         132, 120, 155, 120, 149, 150, 152, 152, 
305         6, 125, 126, 127, 120, 120, 120, 153, 
306         120, 147, 120, 120, 120, 120, 120, 120, 
307         125, 126, 120, 120, 120, 120, 132, 120, 
308         147, 120, 147, 120, 120, 120, 120, 148, 
309         120, 125, 126, 120, 120, 120, 120, 132, 
310         120, 147, 120, 147, 2, 120, 120, 19, 
311         148, 120, 125, 126, 120, 120, 120, 120, 
312         132, 120, 147, 120, 141, 142, 144, 144, 
313         6, 125, 126, 127, 120, 120, 120, 145, 
314         120, 139, 120, 120, 120, 120, 120, 120, 
315         125, 126, 120, 120, 120, 120, 132, 120, 
316         139, 120, 139, 120, 120, 120, 120, 140, 
317         120, 125, 126, 120, 120, 120, 120, 132, 
318         120, 139, 120, 139, 2, 120, 120, 19, 
319         140, 120, 125, 126, 120, 120, 120, 120, 
320         132, 120, 139, 120, 133, 134, 136, 136, 
321         6, 125, 126, 127, 120, 120, 120, 137, 
322         120, 130, 120, 120, 120, 120, 120, 120, 
323         125, 126, 120, 120, 120, 120, 132, 120, 
324         130, 120, 130, 120, 120, 120, 120, 131, 
325         120, 125, 126, 120, 120, 120, 120, 132, 
326         120, 130, 120, 130, 2, 120, 120, 19, 
327         131, 120, 125, 126, 120, 120, 120, 120, 
328         132, 120, 130, 120, 121, 122, 124, 124, 
329         6, 125, 126, 127, 120, 120, 120, 128, 
330         120, 179, 180, 181, 182, 44, 183, 184, 
331         178, 178, 178, 75, 185, 178, 186, 180, 
332         187, 182, 44, 183, 184, 178, 178, 178, 
333         178, 185, 178, 180, 187, 182, 44, 183, 
334         184, 178, 178, 178, 178, 185, 178, 188, 
335         178, 178, 178, 57, 189, 178, 183, 184, 
336         178, 178, 178, 178, 190, 178, 188, 178, 
337         191, 192, 193, 194, 44, 183, 184, 178, 
338         178, 178, 73, 195, 178, 196, 192, 194, 
339         194, 44, 183, 184, 178, 178, 178, 178, 
340         195, 178, 192, 194, 194, 44, 183, 184, 
341         178, 178, 178, 178, 195, 178, 197, 178, 
342         178, 178, 57, 198, 178, 183, 184, 178, 
343         178, 178, 178, 190, 178, 197, 178, 199, 
344         200, 201, 202, 44, 183, 184, 178, 178, 
345         178, 71, 203, 178, 204, 200, 202, 202, 
346         44, 183, 184, 178, 178, 178, 178, 203, 
347         178, 200, 202, 202, 44, 183, 184, 178, 
348         178, 178, 178, 203, 178, 205, 178, 178, 
349         178, 57, 206, 178, 183, 184, 178, 178, 
350         178, 178, 190, 178, 205, 178, 207, 208, 
351         209, 210, 44, 183, 184, 178, 178, 178, 
352         69, 211, 178, 212, 208, 210, 210, 44, 
353         183, 184, 178, 178, 178, 178, 211, 178, 
354         208, 210, 210, 44, 183, 184, 178, 178, 
355         178, 178, 211, 178, 213, 178, 178, 178, 
356         57, 214, 178, 183, 184, 178, 178, 178, 
357         178, 190, 178, 213, 178, 215, 216, 217, 
358         218, 44, 183, 184, 178, 178, 178, 67, 
359         219, 178, 220, 216, 218, 218, 44, 183, 
360         184, 178, 178, 178, 178, 219, 178, 216, 
361         218, 218, 44, 183, 184, 178, 178, 178, 
362         178, 219, 178, 57, 57, 178, 183, 184, 
363         178, 178, 178, 178, 190, 178, 183, 184, 
364         178, 178, 178, 178, 190, 178, 221, 178, 
365         178, 178, 184, 178, 178, 178, 178, 190, 
366         178, 184, 178, 178, 178, 178, 190, 178, 
367         222, 178, 223, 178, 224, 178, 178, 178, 
368         184, 178, 178, 178, 41, 178, 40, 178, 
369         178, 178, 178, 178, 184, 178, 184, 178, 
370         223, 178, 178, 178, 178, 178, 184, 178, 
371         57, 178, 183, 184, 178, 178, 178, 178, 
372         190, 178, 225, 66, 226, 227, 47, 183, 
373         184, 178, 178, 178, 178, 190, 178, 66, 
374         226, 227, 47, 183, 184, 178, 178, 178, 
375         178, 190, 178, 226, 226, 47, 183, 184, 
376         178, 178, 178, 178, 190, 178, 228, 63, 
377         229, 230, 50, 183, 184, 178, 178, 178, 
378         178, 190, 178, 63, 229, 230, 50, 183, 
379         184, 178, 178, 178, 178, 190, 178, 229, 
380         229, 50, 183, 184, 178, 178, 178, 178, 
381         190, 178, 231, 60, 232, 233, 53, 183, 
382         184, 178, 178, 178, 178, 190, 178, 60, 
383         232, 233, 53, 183, 184, 178, 178, 178, 
384         178, 190, 178, 232, 232, 53, 183, 184, 
385         178, 178, 178, 178, 190, 178, 234, 57, 
386         178, 235, 178, 183, 184, 178, 178, 178, 
387         178, 190, 178, 57, 178, 235, 178, 183, 
388         184, 178, 178, 178, 178, 190, 178, 39, 
389         40, 178, 178, 57, 57, 178, 183, 184, 
390         178, 178, 178, 178, 190, 178, 39, 178, 
391         215, 216, 218, 218, 44, 183, 184, 178, 
392         178, 178, 178, 219, 178, 213, 178, 178, 
393         178, 178, 178, 178, 183, 184, 178, 178, 
394         178, 178, 190, 178, 213, 178, 213, 178, 
395         178, 178, 178, 214, 178, 183, 184, 178, 
396         178, 178, 178, 190, 178, 213, 178, 213, 
397         40, 178, 178, 57, 214, 178, 183, 184, 
398         178, 178, 178, 178, 190, 178, 213, 178, 
399         207, 208, 210, 210, 44, 183, 184, 178, 
400         178, 178, 178, 211, 178, 205, 178, 178, 
401         178, 178, 178, 178, 183, 184, 178, 178, 
402         178, 178, 190, 178, 205, 178, 205, 178, 
403         178, 178, 178, 206, 178, 183, 184, 178, 
404         178, 178, 178, 190, 178, 205, 178, 205, 
405         40, 178, 178, 57, 206, 178, 183, 184, 
406         178, 178, 178, 178, 190, 178, 205, 178, 
407         199, 200, 202, 202, 44, 183, 184, 178, 
408         178, 178, 178, 203, 178, 197, 178, 178, 
409         178, 178, 178, 178, 183, 184, 178, 178, 
410         178, 178, 190, 178, 197, 178, 197, 178, 
411         178, 178, 178, 198, 178, 183, 184, 178, 
412         178, 178, 178, 190, 178, 197, 178, 197, 
413         40, 178, 178, 57, 198, 178, 183, 184, 
414         178, 178, 178, 178, 190, 178, 197, 178, 
415         191, 192, 194, 194, 44, 183, 184, 178, 
416         178, 178, 178, 195, 178, 188, 178, 178, 
417         178, 178, 178, 178, 183, 184, 178, 178, 
418         178, 178, 190, 178, 188, 178, 188, 178, 
419         178, 178, 178, 189, 178, 183, 184, 178, 
420         178, 178, 178, 190, 178, 188, 178, 74, 
421         43, 43, 44, 178, 178, 178, 178, 178, 
422         178, 74, 178, 188, 40, 178, 178, 57, 
423         189, 178, 183, 184, 178, 178, 178, 178, 
424         190, 178, 188, 178, 179, 180, 187, 182, 
425         44, 183, 184, 178, 178, 178, 178, 185, 
426         178, 237, 238, 239, 240, 82, 241, 242, 
427         236, 236, 236, 113, 243, 236, 244, 238, 
428         240, 240, 82, 241, 242, 236, 236, 236, 
429         236, 243, 236, 238, 240, 240, 82, 241, 
430         242, 236, 236, 236, 236, 243, 236, 245, 
431         236, 236, 236, 95, 246, 236, 241, 242, 
432         236, 236, 236, 236, 247, 236, 245, 236, 
433         248, 249, 250, 251, 82, 241, 242, 236, 
434         236, 236, 111, 252, 236, 253, 249, 251, 
435         251, 82, 241, 242, 236, 236, 236, 236, 
436         252, 236, 249, 251, 251, 82, 241, 242, 
437         236, 236, 236, 236, 252, 236, 254, 236, 
438         236, 236, 95, 255, 236, 241, 242, 236, 
439         236, 236, 236, 247, 236, 254, 236, 256, 
440         257, 258, 259, 82, 241, 242, 236, 236, 
441         236, 109, 260, 236, 261, 257, 259, 259, 
442         82, 241, 242, 236, 236, 236, 236, 260, 
443         236, 257, 259, 259, 82, 241, 242, 236, 
444         236, 236, 236, 260, 236, 262, 236, 236, 
445         236, 95, 263, 236, 241, 242, 236, 236, 
446         236, 236, 247, 236, 262, 236, 264, 265, 
447         266, 267, 82, 241, 242, 236, 236, 236, 
448         107, 268, 236, 269, 265, 267, 267, 82, 
449         241, 242, 236, 236, 236, 236, 268, 236, 
450         265, 267, 267, 82, 241, 242, 236, 236, 
451         236, 236, 268, 236, 270, 236, 236, 236, 
452         95, 271, 236, 241, 242, 236, 236, 236, 
453         236, 247, 236, 270, 236, 272, 273, 274, 
454         275, 82, 241, 242, 236, 236, 236, 105, 
455         276, 236, 277, 273, 275, 275, 82, 241, 
456         242, 236, 236, 236, 236, 276, 236, 273, 
457         275, 275, 82, 241, 242, 236, 236, 236, 
458         236, 276, 236, 95, 95, 236, 241, 242, 
459         236, 236, 236, 236, 247, 236, 241, 242, 
460         236, 236, 236, 236, 247, 236, 278, 236, 
461         236, 236, 242, 236, 236, 236, 236, 247, 
462         236, 242, 236, 236, 236, 236, 247, 236, 
463         279, 236, 280, 236, 281, 236, 236, 236, 
464         242, 236, 236, 236, 79, 236, 78, 236, 
465         236, 236, 236, 236, 242, 236, 242, 236, 
466         280, 236, 236, 236, 236, 236, 242, 236, 
467         95, 236, 241, 242, 236, 236, 236, 236, 
468         247, 236, 282, 104, 283, 284, 85, 241, 
469         242, 236, 236, 236, 236, 247, 236, 104, 
470         283, 284, 85, 241, 242, 236, 236, 236, 
471         236, 247, 236, 283, 283, 85, 241, 242, 
472         236, 236, 236, 236, 247, 236, 285, 101, 
473         286, 287, 88, 241, 242, 236, 236, 236, 
474         236, 247, 236, 101, 286, 287, 88, 241, 
475         242, 236, 236, 236, 236, 247, 236, 286, 
476         286, 88, 241, 242, 236, 236, 236, 236, 
477         247, 236, 288, 98, 289, 290, 91, 241, 
478         242, 236, 236, 236, 236, 247, 236, 98, 
479         289, 290, 91, 241, 242, 236, 236, 236, 
480         236, 247, 236, 289, 289, 91, 241, 242, 
481         236, 236, 236, 236, 247, 236, 291, 95, 
482         236, 292, 236, 241, 242, 236, 236, 236, 
483         236, 247, 236, 95, 236, 292, 236, 241, 
484         242, 236, 236, 236, 236, 247, 236, 77, 
485         78, 236, 236, 95, 95, 236, 241, 242, 
486         236, 236, 236, 236, 247, 236, 77, 236, 
487         272, 273, 275, 275, 82, 241, 242, 236, 
488         236, 236, 236, 276, 236, 270, 236, 236, 
489         236, 236, 236, 236, 241, 242, 236, 236, 
490         236, 236, 247, 236, 270, 236, 270, 236, 
491         236, 236, 236, 271, 236, 241, 242, 236, 
492         236, 236, 236, 247, 236, 270, 236, 270, 
493         78, 236, 236, 95, 271, 236, 241, 242, 
494         236, 236, 236, 236, 247, 236, 270, 236, 
495         264, 265, 267, 267, 82, 241, 242, 236, 
496         236, 236, 236, 268, 236, 262, 236, 236, 
497         236, 236, 236, 236, 241, 242, 236, 236, 
498         236, 236, 247, 236, 262, 236, 262, 236, 
499         236, 236, 236, 263, 236, 241, 242, 236, 
500         236, 236, 236, 247, 236, 262, 236, 262, 
501         78, 236, 236, 95, 263, 236, 241, 242, 
502         236, 236, 236, 236, 247, 236, 262, 236, 
503         256, 257, 259, 259, 82, 241, 242, 236, 
504         236, 236, 236, 260, 236, 254, 236, 236, 
505         236, 236, 236, 236, 241, 242, 236, 236, 
506         236, 236, 247, 236, 254, 236, 254, 236, 
507         236, 236, 236, 255, 236, 241, 242, 236, 
508         236, 236, 236, 247, 236, 254, 236, 254, 
509         78, 236, 236, 95, 255, 236, 241, 242, 
510         236, 236, 236, 236, 247, 236, 254, 236, 
511         248, 249, 251, 251, 82, 241, 242, 236, 
512         236, 236, 236, 252, 236, 245, 236, 236, 
513         236, 236, 236, 236, 241, 242, 236, 236, 
514         236, 236, 247, 236, 245, 236, 245, 236, 
515         236, 236, 236, 246, 236, 241, 242, 236, 
516         236, 236, 236, 247, 236, 245, 236, 245, 
517         78, 236, 236, 95, 246, 236, 241, 242, 
518         236, 236, 236, 236, 247, 236, 245, 236, 
519         237, 238, 240, 240, 82, 241, 242, 236, 
520         236, 236, 236, 243, 236, 115, 116, 293, 
521         293, 293, 293, 293, 293, 293, 293, 117, 
522         117, 293, 293, 293, 115, 293, 121, 294, 
523         123, 124, 6, 125, 126, 127, 120, 120, 
524         37, 128, 120, 130, 116, 120, 120, 19, 
525         131, 120, 125, 126, 120, 117, 117, 120, 
526         132, 120, 130, 120, 0
527 };
528
529 static const short _indic_syllable_machine_trans_targs[] = {
530         105, 130, 132, 133, 134, 3, 135, 4, 
531         6, 138, 7, 9, 141, 10, 12, 144, 
532         13, 15, 16, 126, 18, 19, 143, 21, 
533         22, 140, 24, 25, 137, 148, 150, 152, 
534         154, 156, 158, 160, 162, 164, 105, 189, 
535         191, 192, 193, 38, 194, 39, 41, 197, 
536         42, 44, 200, 45, 47, 203, 48, 50, 
537         51, 185, 53, 54, 202, 56, 57, 199, 
538         59, 60, 196, 206, 208, 210, 212, 214, 
539         216, 218, 220, 223, 105, 248, 250, 251, 
540         252, 73, 253, 74, 76, 256, 77, 79, 
541         259, 80, 82, 262, 83, 85, 86, 244, 
542         88, 89, 261, 91, 92, 258, 94, 95, 
543         255, 265, 267, 269, 271, 273, 275, 277, 
544         279, 281, 105, 106, 165, 224, 282, 283, 
545         105, 107, 109, 34, 33, 127, 129, 146, 
546         163, 108, 110, 161, 0, 111, 113, 32, 
547         31, 159, 112, 114, 157, 115, 117, 30, 
548         29, 155, 116, 118, 153, 119, 121, 28, 
549         27, 151, 120, 122, 149, 123, 125, 26, 
550         2, 147, 124, 128, 105, 131, 1, 136, 
551         5, 23, 139, 8, 20, 142, 11, 17, 
552         145, 14, 105, 166, 168, 69, 221, 186, 
553         188, 222, 167, 68, 169, 219, 35, 170, 
554         172, 67, 66, 217, 171, 173, 215, 174, 
555         176, 65, 64, 213, 175, 177, 211, 178, 
556         180, 63, 62, 209, 179, 181, 207, 182, 
557         184, 61, 37, 205, 183, 187, 105, 190, 
558         36, 195, 40, 58, 198, 43, 55, 201, 
559         46, 52, 204, 49, 105, 225, 227, 104, 
560         103, 245, 247, 280, 226, 228, 278, 70, 
561         229, 231, 102, 101, 276, 230, 232, 274, 
562         233, 235, 100, 99, 272, 234, 236, 270, 
563         237, 239, 98, 97, 268, 238, 240, 266, 
564         241, 243, 96, 72, 264, 242, 246, 105, 
565         249, 71, 254, 75, 93, 257, 78, 90, 
566         260, 81, 87, 263, 84, 105, 284
567 };
568
569 static const char _indic_syllable_machine_trans_actions[] = {
570         1, 2, 0, 0, 2, 0, 2, 0, 
571         0, 2, 0, 0, 2, 0, 0, 2, 
572         0, 0, 0, 2, 0, 0, 2, 0, 
573         0, 2, 0, 0, 2, 2, 2, 2, 
574         2, 2, 2, 2, 2, 2, 3, 2, 
575         0, 0, 2, 0, 2, 0, 0, 2, 
576         0, 0, 2, 0, 0, 2, 0, 0, 
577         0, 2, 0, 0, 2, 0, 0, 2, 
578         0, 0, 2, 2, 2, 2, 2, 2, 
579         2, 2, 2, 2, 4, 2, 0, 0, 
580         2, 0, 2, 0, 0, 2, 0, 0, 
581         2, 0, 0, 2, 0, 0, 0, 2, 
582         0, 0, 2, 0, 0, 2, 0, 0, 
583         2, 2, 2, 2, 2, 2, 2, 2, 
584         2, 2, 7, 2, 2, 2, 0, 2, 
585         8, 2, 2, 0, 0, 2, 0, 2, 
586         2, 2, 2, 2, 0, 2, 2, 0, 
587         0, 2, 2, 2, 2, 2, 2, 0, 
588         0, 2, 2, 2, 2, 2, 2, 0, 
589         0, 2, 2, 2, 2, 2, 2, 0, 
590         0, 2, 2, 2, 9, 0, 0, 2, 
591         0, 0, 2, 0, 0, 2, 0, 0, 
592         2, 0, 10, 2, 2, 0, 2, 2, 
593         0, 2, 2, 0, 2, 2, 0, 2, 
594         2, 0, 0, 2, 2, 2, 2, 2, 
595         2, 0, 0, 2, 2, 2, 2, 2, 
596         2, 0, 0, 2, 2, 2, 2, 2, 
597         2, 0, 0, 2, 2, 2, 11, 0, 
598         0, 2, 0, 0, 2, 0, 0, 2, 
599         0, 0, 2, 0, 12, 2, 2, 0, 
600         0, 2, 0, 2, 2, 2, 2, 0, 
601         2, 2, 0, 0, 2, 2, 2, 2, 
602         2, 2, 0, 0, 2, 2, 2, 2, 
603         2, 2, 0, 0, 2, 2, 2, 2, 
604         2, 2, 0, 0, 2, 2, 2, 13, 
605         0, 0, 2, 0, 0, 2, 0, 0, 
606         2, 0, 0, 2, 0, 14, 2
607 };
608
609 static const char _indic_syllable_machine_to_state_actions[] = {
610         0, 0, 0, 0, 0, 0, 0, 0, 
611         0, 0, 0, 0, 0, 0, 0, 0, 
612         0, 0, 0, 0, 0, 0, 0, 0, 
613         0, 0, 0, 0, 0, 0, 0, 0, 
614         0, 0, 0, 0, 0, 0, 0, 0, 
615         0, 0, 0, 0, 0, 0, 0, 0, 
616         0, 0, 0, 0, 0, 0, 0, 0, 
617         0, 0, 0, 0, 0, 0, 0, 0, 
618         0, 0, 0, 0, 0, 0, 0, 0, 
619         0, 0, 0, 0, 0, 0, 0, 0, 
620         0, 0, 0, 0, 0, 0, 0, 0, 
621         0, 0, 0, 0, 0, 0, 0, 0, 
622         0, 0, 0, 0, 0, 0, 0, 0, 
623         0, 5, 0, 0, 0, 0, 0, 0, 
624         0, 0, 0, 0, 0, 0, 0, 0, 
625         0, 0, 0, 0, 0, 0, 0, 0, 
626         0, 0, 0, 0, 0, 0, 0, 0, 
627         0, 0, 0, 0, 0, 0, 0, 0, 
628         0, 0, 0, 0, 0, 0, 0, 0, 
629         0, 0, 0, 0, 0, 0, 0, 0, 
630         0, 0, 0, 0, 0, 0, 0, 0, 
631         0, 0, 0, 0, 0, 0, 0, 0, 
632         0, 0, 0, 0, 0, 0, 0, 0, 
633         0, 0, 0, 0, 0, 0, 0, 0, 
634         0, 0, 0, 0, 0, 0, 0, 0, 
635         0, 0, 0, 0, 0, 0, 0, 0, 
636         0, 0, 0, 0, 0, 0, 0, 0, 
637         0, 0, 0, 0, 0, 0, 0, 0, 
638         0, 0, 0, 0, 0, 0, 0, 0, 
639         0, 0, 0, 0, 0, 0, 0, 0, 
640         0, 0, 0, 0, 0, 0, 0, 0, 
641         0, 0, 0, 0, 0, 0, 0, 0, 
642         0, 0, 0, 0, 0, 0, 0, 0, 
643         0, 0, 0, 0, 0, 0, 0, 0, 
644         0, 0, 0, 0, 0, 0, 0, 0, 
645         0, 0, 0, 0, 0
646 };
647
648 static const char _indic_syllable_machine_from_state_actions[] = {
649         0, 0, 0, 0, 0, 0, 0, 0, 
650         0, 0, 0, 0, 0, 0, 0, 0, 
651         0, 0, 0, 0, 0, 0, 0, 0, 
652         0, 0, 0, 0, 0, 0, 0, 0, 
653         0, 0, 0, 0, 0, 0, 0, 0, 
654         0, 0, 0, 0, 0, 0, 0, 0, 
655         0, 0, 0, 0, 0, 0, 0, 0, 
656         0, 0, 0, 0, 0, 0, 0, 0, 
657         0, 0, 0, 0, 0, 0, 0, 0, 
658         0, 0, 0, 0, 0, 0, 0, 0, 
659         0, 0, 0, 0, 0, 0, 0, 0, 
660         0, 0, 0, 0, 0, 0, 0, 0, 
661         0, 0, 0, 0, 0, 0, 0, 0, 
662         0, 6, 0, 0, 0, 0, 0, 0, 
663         0, 0, 0, 0, 0, 0, 0, 0, 
664         0, 0, 0, 0, 0, 0, 0, 0, 
665         0, 0, 0, 0, 0, 0, 0, 0, 
666         0, 0, 0, 0, 0, 0, 0, 0, 
667         0, 0, 0, 0, 0, 0, 0, 0, 
668         0, 0, 0, 0, 0, 0, 0, 0, 
669         0, 0, 0, 0, 0, 0, 0, 0, 
670         0, 0, 0, 0, 0, 0, 0, 0, 
671         0, 0, 0, 0, 0, 0, 0, 0, 
672         0, 0, 0, 0, 0, 0, 0, 0, 
673         0, 0, 0, 0, 0, 0, 0, 0, 
674         0, 0, 0, 0, 0, 0, 0, 0, 
675         0, 0, 0, 0, 0, 0, 0, 0, 
676         0, 0, 0, 0, 0, 0, 0, 0, 
677         0, 0, 0, 0, 0, 0, 0, 0, 
678         0, 0, 0, 0, 0, 0, 0, 0, 
679         0, 0, 0, 0, 0, 0, 0, 0, 
680         0, 0, 0, 0, 0, 0, 0, 0, 
681         0, 0, 0, 0, 0, 0, 0, 0, 
682         0, 0, 0, 0, 0, 0, 0, 0, 
683         0, 0, 0, 0, 0, 0, 0, 0, 
684         0, 0, 0, 0, 0
685 };
686
687 static const short _indic_syllable_machine_eof_trans[] = {
688         1, 1, 1, 1, 1, 1, 1, 1, 
689         1, 1, 1, 1, 1, 1, 1, 1, 
690         1, 1, 1, 1, 1, 1, 1, 1, 
691         1, 1, 1, 1, 1, 1, 1, 1, 
692         1, 1, 1, 39, 39, 39, 39, 39, 
693         39, 39, 39, 39, 39, 39, 39, 39, 
694         39, 39, 39, 39, 39, 39, 39, 39, 
695         39, 39, 39, 39, 39, 39, 39, 39, 
696         39, 39, 39, 39, 39, 39, 77, 77, 
697         77, 77, 77, 77, 77, 77, 77, 77, 
698         77, 77, 77, 77, 77, 77, 77, 77, 
699         77, 77, 77, 77, 77, 77, 77, 77, 
700         77, 77, 77, 77, 77, 77, 77, 77, 
701         77, 0, 121, 121, 121, 121, 121, 121, 
702         121, 121, 121, 121, 121, 121, 121, 121, 
703         121, 121, 121, 121, 121, 121, 121, 121, 
704         121, 121, 121, 121, 121, 121, 121, 121, 
705         121, 121, 121, 121, 121, 121, 121, 121, 
706         121, 121, 121, 121, 121, 121, 121, 121, 
707         121, 121, 121, 121, 121, 121, 121, 121, 
708         121, 121, 121, 121, 121, 179, 179, 179, 
709         179, 179, 179, 179, 179, 179, 179, 179, 
710         179, 179, 179, 179, 179, 179, 179, 179, 
711         179, 179, 179, 179, 179, 179, 179, 179, 
712         179, 179, 179, 179, 179, 179, 179, 179, 
713         179, 179, 179, 179, 179, 179, 179, 179, 
714         179, 179, 179, 179, 179, 179, 179, 179, 
715         179, 179, 179, 179, 179, 179, 179, 179, 
716         237, 237, 237, 237, 237, 237, 237, 237, 
717         237, 237, 237, 237, 237, 237, 237, 237, 
718         237, 237, 237, 237, 237, 237, 237, 237, 
719         237, 237, 237, 237, 237, 237, 237, 237, 
720         237, 237, 237, 237, 237, 237, 237, 237, 
721         237, 237, 237, 237, 237, 237, 237, 237, 
722         237, 237, 237, 237, 237, 237, 237, 237, 
723         237, 237, 294, 121, 121
724 };
725
726 static const int indic_syllable_machine_start = 105;
727 static const int indic_syllable_machine_first_final = 105;
728 static const int indic_syllable_machine_error = -1;
729
730 static const int indic_syllable_machine_en_main = 105;
731
732
733 #line 36 "../../src/hb-ot-shape-complex-indic-machine.rl"
734
735
736
737 #line 88 "../../src/hb-ot-shape-complex-indic-machine.rl"
738
739
740 #define process_syllable(func) \
741   HB_STMT_START { \
742     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #func); \
743     for (unsigned int i = last; i < p+1; i++) \
744       info[i].syllable() = syllable_serial; \
745     PASTE (initial_reordering_, func) (plan, buffer, last, p+1); \
746     last = p+1; \
747     syllable_serial++; \
748     if (unlikely (!syllable_serial)) syllable_serial++; \
749   } HB_STMT_END
750
751 static void
752 find_syllables (const hb_ot_shape_plan_t *plan, hb_buffer_t *buffer)
753 {
754   unsigned int p, pe, eof, ts, te, act;
755   int cs;
756   hb_glyph_info_t *info = buffer->info;
757   
758 #line 759 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
759         {
760         cs = indic_syllable_machine_start;
761         ts = 0;
762         te = 0;
763         act = 0;
764         }
765
766 #line 110 "../../src/hb-ot-shape-complex-indic-machine.rl"
767
768
769   p = 0;
770   pe = eof = buffer->len;
771
772   unsigned int last = 0;
773   uint8_t syllable_serial = 1;
774   
775 #line 776 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
776         {
777         int _slen;
778         int _trans;
779         const unsigned char *_keys;
780         const short *_inds;
781         if ( p == pe )
782                 goto _test_eof;
783 _resume:
784         switch ( _indic_syllable_machine_from_state_actions[cs] ) {
785         case 6:
786 #line 1 "../../src/hb-ot-shape-complex-indic-machine.rl"
787         {ts = p;}
788         break;
789 #line 790 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
790         }
791
792         _keys = _indic_syllable_machine_trans_keys + (cs<<1);
793         _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
794
795         _slen = _indic_syllable_machine_key_spans[cs];
796         _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
797                 ( info[p].indic_category()) <= _keys[1] ?
798                 ( info[p].indic_category()) - _keys[0] : _slen ];
799
800 _eof_trans:
801         cs = _indic_syllable_machine_trans_targs[_trans];
802
803         if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
804                 goto _again;
805
806         switch ( _indic_syllable_machine_trans_actions[_trans] ) {
807         case 2:
808 #line 1 "../../src/hb-ot-shape-complex-indic-machine.rl"
809         {te = p+1;}
810         break;
811         case 9:
812 #line 81 "../../src/hb-ot-shape-complex-indic-machine.rl"
813         {te = p+1;{ process_syllable (consonant_syllable); }}
814         break;
815         case 11:
816 #line 82 "../../src/hb-ot-shape-complex-indic-machine.rl"
817         {te = p+1;{ process_syllable (vowel_syllable); }}
818         break;
819         case 13:
820 #line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
821         {te = p+1;{ process_syllable (standalone_cluster); }}
822         break;
823         case 7:
824 #line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
825         {te = p+1;{ process_syllable (non_indic); }}
826         break;
827         case 8:
828 #line 81 "../../src/hb-ot-shape-complex-indic-machine.rl"
829         {te = p;p--;{ process_syllable (consonant_syllable); }}
830         break;
831         case 10:
832 #line 82 "../../src/hb-ot-shape-complex-indic-machine.rl"
833         {te = p;p--;{ process_syllable (vowel_syllable); }}
834         break;
835         case 12:
836 #line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
837         {te = p;p--;{ process_syllable (standalone_cluster); }}
838         break;
839         case 14:
840 #line 84 "../../src/hb-ot-shape-complex-indic-machine.rl"
841         {te = p;p--;{ process_syllable (non_indic); }}
842         break;
843         case 1:
844 #line 81 "../../src/hb-ot-shape-complex-indic-machine.rl"
845         {{p = ((te))-1;}{ process_syllable (consonant_syllable); }}
846         break;
847         case 3:
848 #line 82 "../../src/hb-ot-shape-complex-indic-machine.rl"
849         {{p = ((te))-1;}{ process_syllable (vowel_syllable); }}
850         break;
851         case 4:
852 #line 83 "../../src/hb-ot-shape-complex-indic-machine.rl"
853         {{p = ((te))-1;}{ process_syllable (standalone_cluster); }}
854         break;
855 #line 856 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
856         }
857
858 _again:
859         switch ( _indic_syllable_machine_to_state_actions[cs] ) {
860         case 5:
861 #line 1 "../../src/hb-ot-shape-complex-indic-machine.rl"
862         {ts = 0;}
863         break;
864 #line 865 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
865         }
866
867         if ( ++p != pe )
868                 goto _resume;
869         _test_eof: {}
870         if ( p == eof )
871         {
872         if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
873                 _trans = _indic_syllable_machine_eof_trans[cs] - 1;
874                 goto _eof_trans;
875         }
876         }
877
878         }
879
880 #line 119 "../../src/hb-ot-shape-complex-indic-machine.rl"
881
882 }
883
884 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */