1 
2 #line 1 "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 "hb-ot-shape-complex-indic-machine.hh"
36 static const unsigned char _indic_syllable_machine_trans_keys[] = {
37 	8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
38 	7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u,
39 	6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
40 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
41 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u,
42 	5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
43 	7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
44 	6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
45 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
46 	4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u,
47 	5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
48 	7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
49 	6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
50 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u,
51 	8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
52 	5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u,
53 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
54 	16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
55 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 5u, 8u, 4u, 14u, 4u, 14u, 5u, 8u,
56 	5u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
57 	5u, 7u, 7u, 7u, 8u, 8u, 1u, 16u, 8u, 13u, 4u, 8u, 6u, 6u, 16u, 16u,
58 	4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
59 	16u, 16u, 8u, 8u, 1u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
60 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
61 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u,
62 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
63 	3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
64 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
65 	5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
66 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
67 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
68 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
69 	1u, 16u, 3u, 31u, 3u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
70 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
71 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u,
72 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
73 	3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
74 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
75 	5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
76 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
77 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
78 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
79 	4u, 14u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u,
80 	4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u,
81 	4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 5u, 10u,
82 	9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u,
83 	5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
84 	4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
85 	3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
86 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
87 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
88 	1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
89 	4u, 14u, 3u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
90 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
91 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u,
92 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
93 	3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
94 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
95 	5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
96 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
97 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
98 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
99 	1u, 16u, 3u, 31u, 1u, 31u, 3u, 31u, 1u, 31u, 4u, 14u, 5u, 10u, 9u, 10u,
100 	9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 1u, 16u, 3u, 31u, 3u, 31u,
101 	4u, 31u, 3u, 31u, 3u, 31u, 1u, 16u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
102 	4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
103 	3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u,
104 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 0
105 };
106 
107 static const char _indic_syllable_machine_key_spans[] = {
108 	1, 16, 6, 4, 3, 1, 4, 3,
109 	1, 4, 3, 1, 4, 3, 1, 5,
110 	1, 1, 5, 1, 1, 5, 1, 1,
111 	5, 1, 1, 11, 11, 11, 11, 11,
112 	11, 11, 11, 11, 11, 1, 16, 6,
113 	4, 3, 1, 4, 3, 1, 4, 3,
114 	1, 4, 3, 1, 5, 1, 1, 5,
115 	1, 1, 5, 1, 1, 5, 1, 1,
116 	11, 11, 11, 11, 11, 11, 11, 11,
117 	11, 11, 1, 16, 6, 4, 3, 1,
118 	4, 3, 1, 4, 3, 1, 4, 3,
119 	1, 5, 1, 1, 5, 1, 1, 5,
120 	1, 1, 5, 1, 1, 11, 11, 11,
121 	11, 11, 11, 11, 11, 11, 1, 16,
122 	6, 4, 3, 1, 4, 3, 1, 4,
123 	3, 1, 4, 3, 1, 5, 1, 1,
124 	5, 1, 1, 5, 1, 1, 5, 1,
125 	1, 11, 11, 11, 11, 11, 11, 11,
126 	11, 11, 11, 11, 4, 11, 11, 4,
127 	3, 4, 3, 1, 4, 3, 1, 4,
128 	3, 1, 1, 16, 6, 5, 1, 1,
129 	5, 1, 1, 5, 1, 1, 5, 1,
130 	1, 1, 31, 29, 29, 28, 16, 29,
131 	29, 28, 16, 29, 29, 28, 16, 29,
132 	29, 28, 16, 29, 29, 28, 10, 10,
133 	6, 2, 1, 2, 2, 1, 6, 11,
134 	8, 6, 8, 11, 12, 12, 11, 10,
135 	12, 11, 10, 12, 11, 10, 12, 11,
136 	10, 12, 16, 28, 11, 29, 29, 16,
137 	16, 16, 16, 16, 29, 29, 16, 16,
138 	16, 16, 16, 29, 29, 16, 16, 16,
139 	16, 16, 29, 29, 16, 16, 16, 16,
140 	16, 29, 29, 29, 29, 28, 16, 29,
141 	29, 28, 16, 29, 29, 28, 16, 29,
142 	29, 28, 16, 29, 29, 28, 10, 10,
143 	6, 2, 1, 2, 2, 1, 6, 11,
144 	8, 6, 8, 11, 12, 12, 11, 10,
145 	12, 11, 10, 12, 11, 10, 12, 11,
146 	10, 12, 16, 28, 11, 29, 29, 16,
147 	16, 16, 16, 16, 29, 29, 16, 16,
148 	16, 16, 16, 29, 29, 16, 16, 16,
149 	16, 16, 29, 29, 16, 16, 16, 16,
150 	11, 16, 29, 29, 28, 16, 29, 29,
151 	28, 16, 29, 29, 28, 16, 29, 29,
152 	28, 16, 29, 29, 28, 10, 10, 6,
153 	2, 1, 2, 2, 1, 6, 11, 8,
154 	6, 8, 11, 12, 12, 11, 10, 12,
155 	11, 10, 12, 11, 10, 12, 11, 10,
156 	12, 16, 28, 11, 29, 29, 16, 16,
157 	16, 16, 16, 29, 29, 16, 16, 16,
158 	16, 16, 29, 29, 16, 16, 16, 16,
159 	16, 29, 29, 16, 16, 16, 16, 16,
160 	11, 29, 11, 29, 29, 28, 16, 29,
161 	29, 28, 16, 29, 29, 28, 16, 29,
162 	29, 28, 16, 29, 29, 28, 10, 10,
163 	6, 2, 1, 2, 2, 1, 6, 11,
164 	8, 6, 8, 11, 12, 12, 11, 10,
165 	12, 11, 10, 12, 11, 10, 12, 11,
166 	10, 12, 16, 28, 11, 29, 29, 16,
167 	16, 16, 16, 16, 29, 29, 16, 16,
168 	16, 16, 16, 29, 29, 16, 16, 16,
169 	16, 16, 29, 29, 16, 16, 16, 16,
170 	16, 29, 31, 29, 31, 11, 6, 2,
171 	1, 2, 2, 1, 6, 16, 29, 29,
172 	28, 29, 29, 16, 12, 11, 10, 12,
173 	11, 10, 12, 11, 10, 12, 11, 10,
174 	11, 8, 6, 8, 11, 16, 8, 6,
175 	6, 2, 1, 2, 2, 1, 6
176 };
177 
178 static const short _indic_syllable_machine_index_offsets[] = {
179 	0, 2, 19, 26, 31, 35, 37, 42,
180 	46, 48, 53, 57, 59, 64, 68, 70,
181 	76, 78, 80, 86, 88, 90, 96, 98,
182 	100, 106, 108, 110, 122, 134, 146, 158,
183 	170, 182, 194, 206, 218, 230, 232, 249,
184 	256, 261, 265, 267, 272, 276, 278, 283,
185 	287, 289, 294, 298, 300, 306, 308, 310,
186 	316, 318, 320, 326, 328, 330, 336, 338,
187 	340, 352, 364, 376, 388, 400, 412, 424,
188 	436, 448, 460, 462, 479, 486, 491, 495,
189 	497, 502, 506, 508, 513, 517, 519, 524,
190 	528, 530, 536, 538, 540, 546, 548, 550,
191 	556, 558, 560, 566, 568, 570, 582, 594,
192 	606, 618, 630, 642, 654, 666, 678, 680,
193 	697, 704, 709, 713, 715, 720, 724, 726,
194 	731, 735, 737, 742, 746, 748, 754, 756,
195 	758, 764, 766, 768, 774, 776, 778, 784,
196 	786, 788, 800, 812, 824, 836, 848, 860,
197 	872, 884, 896, 908, 920, 925, 937, 949,
198 	954, 958, 963, 967, 969, 974, 978, 980,
199 	985, 989, 991, 993, 1010, 1017, 1023, 1025,
200 	1027, 1033, 1035, 1037, 1043, 1045, 1047, 1053,
201 	1055, 1057, 1059, 1091, 1121, 1151, 1180, 1197,
202 	1227, 1257, 1286, 1303, 1333, 1363, 1392, 1409,
203 	1439, 1469, 1498, 1515, 1545, 1575, 1604, 1615,
204 	1626, 1633, 1636, 1638, 1641, 1644, 1646, 1653,
205 	1665, 1674, 1681, 1690, 1702, 1715, 1728, 1740,
206 	1751, 1764, 1776, 1787, 1800, 1812, 1823, 1836,
207 	1848, 1859, 1872, 1889, 1918, 1930, 1960, 1990,
208 	2007, 2024, 2041, 2058, 2075, 2105, 2135, 2152,
209 	2169, 2186, 2203, 2220, 2250, 2280, 2297, 2314,
210 	2331, 2348, 2365, 2395, 2425, 2442, 2459, 2476,
211 	2493, 2510, 2540, 2570, 2600, 2630, 2659, 2676,
212 	2706, 2736, 2765, 2782, 2812, 2842, 2871, 2888,
213 	2918, 2948, 2977, 2994, 3024, 3054, 3083, 3094,
214 	3105, 3112, 3115, 3117, 3120, 3123, 3125, 3132,
215 	3144, 3153, 3160, 3169, 3181, 3194, 3207, 3219,
216 	3230, 3243, 3255, 3266, 3279, 3291, 3302, 3315,
217 	3327, 3338, 3351, 3368, 3397, 3409, 3439, 3469,
218 	3486, 3503, 3520, 3537, 3554, 3584, 3614, 3631,
219 	3648, 3665, 3682, 3699, 3729, 3759, 3776, 3793,
220 	3810, 3827, 3844, 3874, 3904, 3921, 3938, 3955,
221 	3972, 3984, 4001, 4031, 4061, 4090, 4107, 4137,
222 	4167, 4196, 4213, 4243, 4273, 4302, 4319, 4349,
223 	4379, 4408, 4425, 4455, 4485, 4514, 4525, 4536,
224 	4543, 4546, 4548, 4551, 4554, 4556, 4563, 4575,
225 	4584, 4591, 4600, 4612, 4625, 4638, 4650, 4661,
226 	4674, 4686, 4697, 4710, 4722, 4733, 4746, 4758,
227 	4769, 4782, 4799, 4828, 4840, 4870, 4900, 4917,
228 	4934, 4951, 4968, 4985, 5015, 5045, 5062, 5079,
229 	5096, 5113, 5130, 5160, 5190, 5207, 5224, 5241,
230 	5258, 5275, 5305, 5335, 5352, 5369, 5386, 5403,
231 	5420, 5432, 5462, 5474, 5504, 5534, 5563, 5580,
232 	5610, 5640, 5669, 5686, 5716, 5746, 5775, 5792,
233 	5822, 5852, 5881, 5898, 5928, 5958, 5987, 5998,
234 	6009, 6016, 6019, 6021, 6024, 6027, 6029, 6036,
235 	6048, 6057, 6064, 6073, 6085, 6098, 6111, 6123,
236 	6134, 6147, 6159, 6170, 6183, 6195, 6206, 6219,
237 	6231, 6242, 6255, 6272, 6301, 6313, 6343, 6373,
238 	6390, 6407, 6424, 6441, 6458, 6488, 6518, 6535,
239 	6552, 6569, 6586, 6603, 6633, 6663, 6680, 6697,
240 	6714, 6731, 6748, 6778, 6808, 6825, 6842, 6859,
241 	6876, 6893, 6923, 6955, 6985, 7017, 7029, 7036,
242 	7039, 7041, 7044, 7047, 7049, 7056, 7073, 7103,
243 	7133, 7162, 7192, 7222, 7239, 7252, 7264, 7275,
244 	7288, 7300, 7311, 7324, 7336, 7347, 7360, 7372,
245 	7383, 7395, 7404, 7411, 7420, 7432, 7449, 7458,
246 	7465, 7472, 7475, 7477, 7480, 7483, 7485
247 };
248 
249 static const short _indic_syllable_machine_indicies[] = {
250 	1, 0, 2, 3, 0, 0, 0, 0,
251 	0, 0, 0, 0, 0, 0, 0, 0,
252 	0, 2, 0, 1, 0, 0, 0, 0,
253 	4, 0, 5, 5, 6, 1, 0, 7,
254 	7, 6, 0, 6, 0, 8, 8, 9,
255 	1, 0, 10, 10, 9, 0, 9, 0,
256 	11, 11, 12, 1, 0, 13, 13, 12,
257 	0, 12, 0, 14, 14, 15, 1, 0,
258 	16, 16, 15, 0, 15, 0, 17, 0,
259 	0, 0, 1, 0, 18, 0, 19, 0,
260 	20, 14, 14, 15, 1, 0, 21, 0,
261 	22, 0, 23, 11, 11, 12, 1, 0,
262 	24, 0, 25, 0, 26, 8, 8, 9,
263 	1, 0, 27, 0, 28, 0, 29, 5,
264 	5, 6, 1, 0, 0, 0, 0, 0,
265 	29, 0, 29, 5, 5, 6, 1, 0,
266 	0, 0, 0, 30, 29, 0, 31, 5,
267 	5, 6, 1, 0, 0, 0, 0, 0,
268 	31, 0, 31, 5, 5, 6, 1, 0,
269 	0, 0, 0, 32, 31, 0, 33, 5,
270 	5, 6, 1, 0, 0, 0, 0, 0,
271 	33, 0, 33, 5, 5, 6, 1, 0,
272 	0, 0, 0, 34, 33, 0, 35, 5,
273 	5, 6, 1, 0, 0, 0, 0, 0,
274 	35, 0, 35, 5, 5, 6, 1, 0,
275 	0, 0, 0, 36, 35, 0, 37, 5,
276 	5, 6, 1, 0, 0, 0, 0, 0,
277 	37, 0, 37, 5, 5, 6, 1, 0,
278 	0, 0, 0, 38, 37, 0, 40, 39,
279 	41, 42, 39, 39, 39, 39, 39, 39,
280 	39, 39, 39, 39, 39, 39, 39, 41,
281 	39, 40, 39, 39, 39, 39, 43, 39,
282 	44, 44, 45, 40, 39, 46, 46, 45,
283 	39, 45, 39, 47, 47, 48, 40, 39,
284 	49, 49, 48, 39, 48, 39, 50, 50,
285 	51, 40, 39, 52, 52, 51, 39, 51,
286 	39, 53, 53, 54, 40, 39, 55, 55,
287 	54, 39, 54, 39, 56, 39, 39, 39,
288 	40, 39, 57, 39, 58, 39, 59, 53,
289 	53, 54, 40, 39, 60, 39, 61, 39,
290 	62, 50, 50, 51, 40, 39, 63, 39,
291 	64, 39, 65, 47, 47, 48, 40, 39,
292 	66, 39, 67, 39, 68, 44, 44, 45,
293 	40, 39, 39, 39, 39, 39, 68, 39,
294 	68, 44, 44, 45, 40, 39, 39, 39,
295 	39, 69, 68, 39, 70, 44, 44, 45,
296 	40, 39, 39, 39, 39, 39, 70, 39,
297 	70, 44, 44, 45, 40, 39, 39, 39,
298 	39, 71, 70, 39, 72, 44, 44, 45,
299 	40, 39, 39, 39, 39, 39, 72, 39,
300 	72, 44, 44, 45, 40, 39, 39, 39,
301 	39, 73, 72, 39, 74, 44, 44, 45,
302 	40, 39, 39, 39, 39, 39, 74, 39,
303 	74, 44, 44, 45, 40, 39, 39, 39,
304 	39, 75, 74, 39, 76, 44, 44, 45,
305 	40, 39, 39, 39, 39, 39, 76, 39,
306 	76, 44, 44, 45, 40, 39, 39, 39,
307 	39, 77, 76, 39, 79, 78, 80, 81,
308 	78, 78, 78, 78, 78, 78, 78, 78,
309 	78, 78, 78, 78, 78, 80, 78, 79,
310 	78, 78, 78, 78, 82, 78, 83, 83,
311 	84, 79, 78, 86, 86, 84, 85, 84,
312 	85, 87, 87, 88, 79, 78, 89, 89,
313 	88, 78, 88, 78, 90, 90, 91, 79,
314 	78, 92, 92, 91, 78, 91, 78, 93,
315 	93, 94, 79, 78, 95, 95, 94, 78,
316 	94, 78, 96, 78, 78, 78, 79, 78,
317 	97, 78, 98, 78, 99, 93, 93, 94,
318 	79, 78, 100, 78, 101, 78, 102, 90,
319 	90, 91, 79, 78, 103, 78, 104, 78,
320 	105, 87, 87, 88, 79, 78, 106, 78,
321 	107, 78, 108, 83, 83, 84, 79, 78,
322 	78, 78, 78, 78, 108, 78, 108, 83,
323 	83, 84, 79, 78, 78, 78, 78, 109,
324 	108, 78, 110, 83, 83, 84, 79, 78,
325 	78, 78, 78, 78, 110, 78, 110, 83,
326 	83, 84, 79, 78, 78, 78, 78, 111,
327 	110, 78, 112, 83, 83, 84, 79, 78,
328 	78, 78, 78, 78, 112, 78, 112, 83,
329 	83, 84, 79, 78, 78, 78, 78, 113,
330 	112, 78, 114, 83, 83, 84, 79, 78,
331 	78, 78, 78, 78, 114, 78, 114, 83,
332 	83, 84, 79, 78, 78, 78, 78, 115,
333 	114, 78, 116, 83, 83, 84, 79, 78,
334 	78, 78, 78, 78, 116, 78, 118, 117,
335 	119, 120, 117, 117, 117, 117, 117, 117,
336 	117, 117, 117, 117, 117, 117, 117, 119,
337 	117, 118, 117, 117, 117, 117, 121, 117,
338 	122, 122, 123, 118, 117, 124, 124, 123,
339 	117, 123, 117, 125, 125, 126, 118, 117,
340 	127, 127, 126, 117, 126, 117, 128, 128,
341 	129, 118, 117, 130, 130, 129, 117, 129,
342 	117, 131, 131, 132, 118, 117, 133, 133,
343 	132, 117, 132, 117, 134, 117, 117, 117,
344 	118, 117, 135, 117, 136, 117, 137, 131,
345 	131, 132, 118, 117, 138, 117, 139, 117,
346 	140, 128, 128, 129, 118, 117, 141, 117,
347 	142, 117, 143, 125, 125, 126, 118, 117,
348 	144, 117, 145, 117, 146, 122, 122, 123,
349 	118, 117, 117, 117, 117, 117, 146, 117,
350 	146, 122, 122, 123, 118, 117, 117, 117,
351 	117, 147, 146, 117, 148, 122, 122, 123,
352 	118, 117, 117, 117, 117, 117, 148, 117,
353 	148, 122, 122, 123, 118, 117, 117, 117,
354 	117, 149, 148, 117, 150, 122, 122, 123,
355 	118, 117, 117, 117, 117, 117, 150, 117,
356 	150, 122, 122, 123, 118, 117, 117, 117,
357 	117, 151, 150, 117, 152, 122, 122, 123,
358 	118, 117, 117, 117, 117, 117, 152, 117,
359 	152, 122, 122, 123, 118, 117, 117, 117,
360 	117, 153, 152, 117, 154, 122, 122, 123,
361 	118, 117, 117, 117, 117, 117, 154, 117,
362 	154, 122, 122, 123, 118, 117, 117, 117,
363 	117, 155, 154, 117, 116, 83, 83, 84,
364 	79, 78, 78, 78, 78, 156, 116, 78,
365 	86, 86, 84, 1, 0, 114, 83, 83,
366 	84, 157, 0, 0, 0, 0, 0, 114,
367 	0, 114, 83, 83, 84, 157, 0, 0,
368 	0, 0, 158, 114, 0, 159, 159, 160,
369 	1, 0, 7, 7, 160, 0, 161, 161,
370 	162, 157, 0, 163, 163, 162, 0, 162,
371 	0, 164, 164, 165, 157, 0, 166, 166,
372 	165, 0, 165, 0, 167, 167, 168, 157,
373 	0, 169, 169, 168, 0, 168, 0, 157,
374 	0, 170, 171, 0, 0, 0, 0, 0,
375 	0, 0, 0, 0, 0, 0, 0, 0,
376 	170, 0, 157, 0, 0, 0, 0, 172,
377 	0, 173, 0, 0, 0, 157, 0, 174,
378 	0, 175, 0, 176, 167, 167, 168, 157,
379 	0, 177, 0, 178, 0, 179, 164, 164,
380 	165, 157, 0, 180, 0, 181, 0, 182,
381 	161, 161, 162, 157, 0, 183, 0, 184,
382 	0, 186, 185, 188, 189, 190, 191, 192,
383 	193, 84, 79, 194, 195, 196, 196, 156,
384 	197, 198, 199, 200, 201, 187, 187, 187,
385 	187, 187, 187, 187, 187, 187, 187, 187,
386 	187, 202, 187, 204, 205, 206, 207, 6,
387 	1, 208, 209, 203, 203, 38, 210, 203,
388 	203, 211, 203, 203, 203, 203, 203, 203,
389 	203, 203, 203, 203, 203, 203, 203, 212,
390 	203, 213, 205, 214, 214, 6, 1, 208,
391 	209, 203, 203, 203, 210, 203, 203, 211,
392 	203, 203, 203, 203, 203, 203, 203, 203,
393 	203, 203, 203, 203, 203, 212, 203, 205,
394 	214, 214, 6, 1, 208, 209, 203, 203,
395 	203, 210, 203, 203, 211, 203, 203, 203,
396 	203, 203, 203, 203, 203, 203, 203, 203,
397 	203, 203, 212, 203, 215, 203, 203, 203,
398 	19, 216, 203, 1, 208, 209, 203, 203,
399 	203, 217, 203, 215, 203, 218, 219, 220,
400 	221, 6, 1, 208, 209, 203, 203, 36,
401 	222, 203, 203, 211, 203, 203, 203, 203,
402 	203, 203, 203, 203, 203, 203, 203, 203,
403 	203, 212, 203, 223, 219, 224, 224, 6,
404 	1, 208, 209, 203, 203, 203, 222, 203,
405 	203, 211, 203, 203, 203, 203, 203, 203,
406 	203, 203, 203, 203, 203, 203, 203, 212,
407 	203, 219, 224, 224, 6, 1, 208, 209,
408 	203, 203, 203, 222, 203, 203, 211, 203,
409 	203, 203, 203, 203, 203, 203, 203, 203,
410 	203, 203, 203, 203, 212, 203, 225, 203,
411 	203, 203, 19, 226, 203, 1, 208, 209,
412 	203, 203, 203, 217, 203, 225, 203, 227,
413 	228, 229, 230, 6, 1, 208, 209, 203,
414 	203, 34, 231, 203, 203, 211, 203, 203,
415 	203, 203, 203, 203, 203, 203, 203, 203,
416 	203, 203, 203, 212, 203, 232, 228, 233,
417 	233, 6, 1, 208, 209, 203, 203, 203,
418 	231, 203, 203, 211, 203, 203, 203, 203,
419 	203, 203, 203, 203, 203, 203, 203, 203,
420 	203, 212, 203, 228, 233, 233, 6, 1,
421 	208, 209, 203, 203, 203, 231, 203, 203,
422 	211, 203, 203, 203, 203, 203, 203, 203,
423 	203, 203, 203, 203, 203, 203, 212, 203,
424 	234, 203, 203, 203, 19, 235, 203, 1,
425 	208, 209, 203, 203, 203, 217, 203, 234,
426 	203, 236, 237, 238, 239, 6, 1, 208,
427 	209, 203, 203, 32, 240, 203, 203, 211,
428 	203, 203, 203, 203, 203, 203, 203, 203,
429 	203, 203, 203, 203, 203, 212, 203, 241,
430 	237, 242, 242, 6, 1, 208, 209, 203,
431 	203, 203, 240, 203, 203, 211, 203, 203,
432 	203, 203, 203, 203, 203, 203, 203, 203,
433 	203, 203, 203, 212, 203, 237, 242, 242,
434 	6, 1, 208, 209, 203, 203, 203, 240,
435 	203, 203, 211, 203, 203, 203, 203, 203,
436 	203, 203, 203, 203, 203, 203, 203, 203,
437 	212, 203, 243, 203, 203, 203, 19, 244,
438 	203, 1, 208, 209, 203, 203, 203, 217,
439 	203, 243, 203, 245, 246, 247, 248, 6,
440 	1, 208, 209, 203, 203, 30, 249, 203,
441 	203, 211, 203, 203, 203, 203, 203, 203,
442 	203, 203, 203, 203, 203, 203, 203, 212,
443 	203, 250, 246, 251, 251, 6, 1, 208,
444 	209, 203, 203, 203, 249, 203, 203, 211,
445 	203, 203, 203, 203, 203, 203, 203, 203,
446 	203, 203, 203, 203, 203, 212, 203, 246,
447 	251, 251, 6, 1, 208, 209, 203, 203,
448 	203, 249, 203, 203, 211, 203, 203, 203,
449 	203, 203, 203, 203, 203, 203, 203, 203,
450 	203, 203, 212, 203, 19, 252, 203, 1,
451 	208, 209, 203, 203, 203, 217, 203, 253,
452 	253, 203, 1, 208, 209, 203, 203, 203,
453 	217, 203, 254, 203, 203, 255, 208, 209,
454 	203, 208, 209, 203, 256, 203, 208, 257,
455 	203, 208, 258, 203, 208, 203, 254, 203,
456 	203, 203, 208, 209, 203, 259, 203, 260,
457 	261, 203, 1, 208, 209, 203, 203, 4,
458 	203, 3, 203, 253, 253, 203, 1, 208,
459 	209, 203, 253, 253, 203, 1, 208, 209,
460 	203, 259, 203, 253, 253, 203, 1, 208,
461 	209, 203, 259, 203, 260, 253, 203, 1,
462 	208, 209, 203, 203, 4, 203, 19, 203,
463 	262, 262, 6, 1, 208, 209, 203, 203,
464 	203, 217, 203, 263, 28, 264, 265, 9,
465 	1, 208, 209, 203, 203, 203, 217, 203,
466 	28, 264, 265, 9, 1, 208, 209, 203,
467 	203, 203, 217, 203, 264, 264, 9, 1,
468 	208, 209, 203, 203, 203, 217, 203, 266,
469 	25, 267, 268, 12, 1, 208, 209, 203,
470 	203, 203, 217, 203, 25, 267, 268, 12,
471 	1, 208, 209, 203, 203, 203, 217, 203,
472 	267, 267, 12, 1, 208, 209, 203, 203,
473 	203, 217, 203, 269, 22, 270, 271, 15,
474 	1, 208, 209, 203, 203, 203, 217, 203,
475 	22, 270, 271, 15, 1, 208, 209, 203,
476 	203, 203, 217, 203, 270, 270, 15, 1,
477 	208, 209, 203, 203, 203, 217, 203, 272,
478 	19, 253, 273, 203, 1, 208, 209, 203,
479 	203, 203, 217, 203, 19, 253, 273, 203,
480 	1, 208, 209, 203, 203, 203, 217, 203,
481 	253, 274, 203, 1, 208, 209, 203, 203,
482 	203, 217, 203, 19, 203, 253, 253, 203,
483 	1, 208, 209, 203, 203, 203, 217, 203,
484 	2, 3, 203, 203, 19, 252, 203, 1,
485 	208, 209, 203, 203, 203, 217, 203, 2,
486 	203, 246, 251, 251, 6, 1, 208, 209,
487 	203, 203, 203, 249, 203, 203, 203, 203,
488 	203, 203, 203, 203, 203, 203, 203, 203,
489 	203, 203, 203, 203, 212, 203, 246, 251,
490 	251, 6, 1, 208, 209, 203, 203, 203,
491 	249, 203, 245, 246, 251, 251, 6, 1,
492 	208, 209, 203, 203, 203, 249, 203, 203,
493 	211, 203, 203, 203, 203, 203, 203, 203,
494 	203, 203, 203, 203, 203, 203, 212, 203,
495 	245, 246, 247, 251, 6, 1, 208, 209,
496 	203, 203, 30, 249, 203, 203, 211, 203,
497 	203, 203, 203, 203, 203, 203, 203, 203,
498 	203, 203, 203, 203, 212, 203, 243, 203,
499 	275, 203, 262, 262, 6, 1, 208, 209,
500 	203, 203, 203, 217, 203, 243, 203, 243,
501 	203, 203, 203, 253, 253, 203, 1, 208,
502 	209, 203, 203, 203, 217, 203, 243, 203,
503 	243, 203, 203, 203, 253, 276, 203, 1,
504 	208, 209, 203, 203, 203, 217, 203, 243,
505 	203, 243, 203, 275, 203, 253, 253, 203,
506 	1, 208, 209, 203, 203, 203, 217, 203,
507 	243, 203, 243, 3, 203, 203, 19, 244,
508 	203, 1, 208, 209, 203, 203, 203, 217,
509 	203, 243, 203, 236, 237, 242, 242, 6,
510 	1, 208, 209, 203, 203, 203, 240, 203,
511 	203, 211, 203, 203, 203, 203, 203, 203,
512 	203, 203, 203, 203, 203, 203, 203, 212,
513 	203, 236, 237, 238, 242, 6, 1, 208,
514 	209, 203, 203, 32, 240, 203, 203, 211,
515 	203, 203, 203, 203, 203, 203, 203, 203,
516 	203, 203, 203, 203, 203, 212, 203, 234,
517 	203, 277, 203, 262, 262, 6, 1, 208,
518 	209, 203, 203, 203, 217, 203, 234, 203,
519 	234, 203, 203, 203, 253, 253, 203, 1,
520 	208, 209, 203, 203, 203, 217, 203, 234,
521 	203, 234, 203, 203, 203, 253, 278, 203,
522 	1, 208, 209, 203, 203, 203, 217, 203,
523 	234, 203, 234, 203, 277, 203, 253, 253,
524 	203, 1, 208, 209, 203, 203, 203, 217,
525 	203, 234, 203, 234, 3, 203, 203, 19,
526 	235, 203, 1, 208, 209, 203, 203, 203,
527 	217, 203, 234, 203, 227, 228, 233, 233,
528 	6, 1, 208, 209, 203, 203, 203, 231,
529 	203, 203, 211, 203, 203, 203, 203, 203,
530 	203, 203, 203, 203, 203, 203, 203, 203,
531 	212, 203, 227, 228, 229, 233, 6, 1,
532 	208, 209, 203, 203, 34, 231, 203, 203,
533 	211, 203, 203, 203, 203, 203, 203, 203,
534 	203, 203, 203, 203, 203, 203, 212, 203,
535 	225, 203, 279, 203, 262, 262, 6, 1,
536 	208, 209, 203, 203, 203, 217, 203, 225,
537 	203, 225, 203, 203, 203, 253, 253, 203,
538 	1, 208, 209, 203, 203, 203, 217, 203,
539 	225, 203, 225, 203, 203, 203, 253, 280,
540 	203, 1, 208, 209, 203, 203, 203, 217,
541 	203, 225, 203, 225, 203, 279, 203, 253,
542 	253, 203, 1, 208, 209, 203, 203, 203,
543 	217, 203, 225, 203, 225, 3, 203, 203,
544 	19, 226, 203, 1, 208, 209, 203, 203,
545 	203, 217, 203, 225, 203, 218, 219, 224,
546 	224, 6, 1, 208, 209, 203, 203, 203,
547 	222, 203, 203, 211, 203, 203, 203, 203,
548 	203, 203, 203, 203, 203, 203, 203, 203,
549 	203, 212, 203, 218, 219, 220, 224, 6,
550 	1, 208, 209, 203, 203, 36, 222, 203,
551 	203, 211, 203, 203, 203, 203, 203, 203,
552 	203, 203, 203, 203, 203, 203, 203, 212,
553 	203, 215, 203, 281, 203, 262, 262, 6,
554 	1, 208, 209, 203, 203, 203, 217, 203,
555 	215, 203, 215, 203, 203, 203, 253, 253,
556 	203, 1, 208, 209, 203, 203, 203, 217,
557 	203, 215, 203, 215, 203, 203, 203, 253,
558 	282, 203, 1, 208, 209, 203, 203, 203,
559 	217, 203, 215, 203, 215, 203, 281, 203,
560 	253, 253, 203, 1, 208, 209, 203, 203,
561 	203, 217, 203, 215, 203, 215, 3, 203,
562 	203, 19, 216, 203, 1, 208, 209, 203,
563 	203, 203, 217, 203, 215, 203, 204, 205,
564 	214, 214, 6, 1, 208, 209, 203, 203,
565 	203, 210, 203, 203, 211, 203, 203, 203,
566 	203, 203, 203, 203, 203, 203, 203, 203,
567 	203, 203, 212, 203, 204, 205, 206, 214,
568 	6, 1, 208, 209, 203, 203, 38, 210,
569 	203, 203, 211, 203, 203, 203, 203, 203,
570 	203, 203, 203, 203, 203, 203, 203, 203,
571 	212, 203, 284, 285, 286, 287, 45, 40,
572 	288, 289, 283, 283, 77, 290, 283, 283,
573 	291, 283, 283, 283, 283, 283, 283, 283,
574 	283, 283, 283, 283, 283, 283, 292, 283,
575 	293, 285, 294, 287, 45, 40, 288, 289,
576 	283, 283, 283, 290, 283, 283, 291, 283,
577 	283, 283, 283, 283, 283, 283, 283, 283,
578 	283, 283, 283, 283, 292, 283, 285, 294,
579 	287, 45, 40, 288, 289, 283, 283, 283,
580 	290, 283, 283, 291, 283, 283, 283, 283,
581 	283, 283, 283, 283, 283, 283, 283, 283,
582 	283, 292, 283, 295, 283, 283, 283, 58,
583 	296, 283, 40, 288, 289, 283, 283, 283,
584 	297, 283, 295, 283, 298, 299, 300, 301,
585 	45, 40, 288, 289, 283, 283, 75, 302,
586 	283, 283, 291, 283, 283, 283, 283, 283,
587 	283, 283, 283, 283, 283, 283, 283, 283,
588 	292, 283, 303, 299, 304, 304, 45, 40,
589 	288, 289, 283, 283, 283, 302, 283, 283,
590 	291, 283, 283, 283, 283, 283, 283, 283,
591 	283, 283, 283, 283, 283, 283, 292, 283,
592 	299, 304, 304, 45, 40, 288, 289, 283,
593 	283, 283, 302, 283, 283, 291, 283, 283,
594 	283, 283, 283, 283, 283, 283, 283, 283,
595 	283, 283, 283, 292, 283, 305, 283, 283,
596 	283, 58, 306, 283, 40, 288, 289, 283,
597 	283, 283, 297, 283, 305, 283, 307, 308,
598 	309, 310, 45, 40, 288, 289, 283, 283,
599 	73, 311, 283, 283, 291, 283, 283, 283,
600 	283, 283, 283, 283, 283, 283, 283, 283,
601 	283, 283, 292, 283, 312, 308, 313, 313,
602 	45, 40, 288, 289, 283, 283, 283, 311,
603 	283, 283, 291, 283, 283, 283, 283, 283,
604 	283, 283, 283, 283, 283, 283, 283, 283,
605 	292, 283, 308, 313, 313, 45, 40, 288,
606 	289, 283, 283, 283, 311, 283, 283, 291,
607 	283, 283, 283, 283, 283, 283, 283, 283,
608 	283, 283, 283, 283, 283, 292, 283, 314,
609 	283, 283, 283, 58, 315, 283, 40, 288,
610 	289, 283, 283, 283, 297, 283, 314, 283,
611 	316, 317, 318, 319, 45, 40, 288, 289,
612 	283, 283, 71, 320, 283, 283, 291, 283,
613 	283, 283, 283, 283, 283, 283, 283, 283,
614 	283, 283, 283, 283, 292, 283, 321, 317,
615 	322, 322, 45, 40, 288, 289, 283, 283,
616 	283, 320, 283, 283, 291, 283, 283, 283,
617 	283, 283, 283, 283, 283, 283, 283, 283,
618 	283, 283, 292, 283, 317, 322, 322, 45,
619 	40, 288, 289, 283, 283, 283, 320, 283,
620 	283, 291, 283, 283, 283, 283, 283, 283,
621 	283, 283, 283, 283, 283, 283, 283, 292,
622 	283, 323, 283, 283, 283, 58, 324, 283,
623 	40, 288, 289, 283, 283, 283, 297, 283,
624 	323, 283, 325, 326, 327, 328, 45, 40,
625 	288, 289, 283, 283, 69, 329, 283, 283,
626 	291, 283, 283, 283, 283, 283, 283, 283,
627 	283, 283, 283, 283, 283, 283, 292, 283,
628 	330, 326, 331, 331, 45, 40, 288, 289,
629 	283, 283, 283, 329, 283, 283, 291, 283,
630 	283, 283, 283, 283, 283, 283, 283, 283,
631 	283, 283, 283, 283, 292, 283, 326, 331,
632 	331, 45, 40, 288, 289, 283, 283, 283,
633 	329, 283, 283, 291, 283, 283, 283, 283,
634 	283, 283, 283, 283, 283, 283, 283, 283,
635 	283, 292, 283, 58, 332, 283, 40, 288,
636 	289, 283, 283, 283, 297, 283, 333, 333,
637 	283, 40, 288, 289, 283, 283, 283, 297,
638 	283, 334, 283, 283, 335, 288, 289, 283,
639 	288, 289, 283, 336, 283, 288, 337, 283,
640 	288, 338, 283, 288, 283, 334, 283, 283,
641 	283, 288, 289, 283, 339, 283, 340, 341,
642 	283, 40, 288, 289, 283, 283, 43, 283,
643 	42, 283, 333, 333, 283, 40, 288, 289,
644 	283, 333, 333, 283, 40, 288, 289, 283,
645 	339, 283, 333, 333, 283, 40, 288, 289,
646 	283, 339, 283, 340, 333, 283, 40, 288,
647 	289, 283, 283, 43, 283, 58, 283, 342,
648 	342, 45, 40, 288, 289, 283, 283, 283,
649 	297, 283, 343, 67, 344, 345, 48, 40,
650 	288, 289, 283, 283, 283, 297, 283, 67,
651 	344, 345, 48, 40, 288, 289, 283, 283,
652 	283, 297, 283, 344, 344, 48, 40, 288,
653 	289, 283, 283, 283, 297, 283, 346, 64,
654 	347, 348, 51, 40, 288, 289, 283, 283,
655 	283, 297, 283, 64, 347, 348, 51, 40,
656 	288, 289, 283, 283, 283, 297, 283, 347,
657 	347, 51, 40, 288, 289, 283, 283, 283,
658 	297, 283, 349, 61, 350, 351, 54, 40,
659 	288, 289, 283, 283, 283, 297, 283, 61,
660 	350, 351, 54, 40, 288, 289, 283, 283,
661 	283, 297, 283, 350, 350, 54, 40, 288,
662 	289, 283, 283, 283, 297, 283, 352, 58,
663 	333, 353, 283, 40, 288, 289, 283, 283,
664 	283, 297, 283, 58, 333, 353, 283, 40,
665 	288, 289, 283, 283, 283, 297, 283, 333,
666 	354, 283, 40, 288, 289, 283, 283, 283,
667 	297, 283, 58, 283, 333, 333, 283, 40,
668 	288, 289, 283, 283, 283, 297, 283, 41,
669 	42, 283, 283, 58, 332, 283, 40, 288,
670 	289, 283, 283, 283, 297, 283, 41, 283,
671 	326, 331, 331, 45, 40, 288, 289, 283,
672 	283, 283, 329, 283, 283, 283, 283, 283,
673 	283, 283, 283, 283, 283, 283, 283, 283,
674 	283, 283, 283, 292, 283, 326, 331, 331,
675 	45, 40, 288, 289, 283, 283, 283, 329,
676 	283, 325, 326, 331, 331, 45, 40, 288,
677 	289, 283, 283, 283, 329, 283, 283, 291,
678 	283, 283, 283, 283, 283, 283, 283, 283,
679 	283, 283, 283, 283, 283, 292, 283, 325,
680 	326, 327, 331, 45, 40, 288, 289, 283,
681 	283, 69, 329, 283, 283, 291, 283, 283,
682 	283, 283, 283, 283, 283, 283, 283, 283,
683 	283, 283, 283, 292, 283, 323, 283, 355,
684 	283, 342, 342, 45, 40, 288, 289, 283,
685 	283, 283, 297, 283, 323, 283, 323, 283,
686 	283, 283, 333, 333, 283, 40, 288, 289,
687 	283, 283, 283, 297, 283, 323, 283, 323,
688 	283, 283, 283, 333, 356, 283, 40, 288,
689 	289, 283, 283, 283, 297, 283, 323, 283,
690 	323, 283, 355, 283, 333, 333, 283, 40,
691 	288, 289, 283, 283, 283, 297, 283, 323,
692 	283, 323, 42, 283, 283, 58, 324, 283,
693 	40, 288, 289, 283, 283, 283, 297, 283,
694 	323, 283, 316, 317, 322, 322, 45, 40,
695 	288, 289, 283, 283, 283, 320, 283, 283,
696 	291, 283, 283, 283, 283, 283, 283, 283,
697 	283, 283, 283, 283, 283, 283, 292, 283,
698 	316, 317, 318, 322, 45, 40, 288, 289,
699 	283, 283, 71, 320, 283, 283, 291, 283,
700 	283, 283, 283, 283, 283, 283, 283, 283,
701 	283, 283, 283, 283, 292, 283, 314, 283,
702 	357, 283, 342, 342, 45, 40, 288, 289,
703 	283, 283, 283, 297, 283, 314, 283, 314,
704 	283, 283, 283, 333, 333, 283, 40, 288,
705 	289, 283, 283, 283, 297, 283, 314, 283,
706 	314, 283, 283, 283, 333, 358, 283, 40,
707 	288, 289, 283, 283, 283, 297, 283, 314,
708 	283, 314, 283, 357, 283, 333, 333, 283,
709 	40, 288, 289, 283, 283, 283, 297, 283,
710 	314, 283, 314, 42, 283, 283, 58, 315,
711 	283, 40, 288, 289, 283, 283, 283, 297,
712 	283, 314, 283, 307, 308, 313, 313, 45,
713 	40, 288, 289, 283, 283, 283, 311, 283,
714 	283, 291, 283, 283, 283, 283, 283, 283,
715 	283, 283, 283, 283, 283, 283, 283, 292,
716 	283, 307, 308, 309, 313, 45, 40, 288,
717 	289, 283, 283, 73, 311, 283, 283, 291,
718 	283, 283, 283, 283, 283, 283, 283, 283,
719 	283, 283, 283, 283, 283, 292, 283, 305,
720 	283, 359, 283, 342, 342, 45, 40, 288,
721 	289, 283, 283, 283, 297, 283, 305, 283,
722 	305, 283, 283, 283, 333, 333, 283, 40,
723 	288, 289, 283, 283, 283, 297, 283, 305,
724 	283, 305, 283, 283, 283, 333, 360, 283,
725 	40, 288, 289, 283, 283, 283, 297, 283,
726 	305, 283, 305, 283, 359, 283, 333, 333,
727 	283, 40, 288, 289, 283, 283, 283, 297,
728 	283, 305, 283, 305, 42, 283, 283, 58,
729 	306, 283, 40, 288, 289, 283, 283, 283,
730 	297, 283, 305, 283, 298, 299, 304, 304,
731 	45, 40, 288, 289, 283, 283, 283, 302,
732 	283, 283, 291, 283, 283, 283, 283, 283,
733 	283, 283, 283, 283, 283, 283, 283, 283,
734 	292, 283, 298, 299, 300, 304, 45, 40,
735 	288, 289, 283, 283, 75, 302, 283, 283,
736 	291, 283, 283, 283, 283, 283, 283, 283,
737 	283, 283, 283, 283, 283, 283, 292, 283,
738 	295, 283, 361, 283, 342, 342, 45, 40,
739 	288, 289, 283, 283, 283, 297, 283, 295,
740 	283, 295, 283, 283, 283, 333, 333, 283,
741 	40, 288, 289, 283, 283, 283, 297, 283,
742 	295, 283, 295, 283, 283, 283, 333, 362,
743 	283, 40, 288, 289, 283, 283, 283, 297,
744 	283, 295, 283, 295, 283, 361, 283, 333,
745 	333, 283, 40, 288, 289, 283, 283, 283,
746 	297, 283, 295, 283, 76, 44, 44, 45,
747 	40, 283, 283, 283, 283, 283, 76, 283,
748 	295, 42, 283, 283, 58, 296, 283, 40,
749 	288, 289, 283, 283, 283, 297, 283, 295,
750 	283, 284, 285, 294, 287, 45, 40, 288,
751 	289, 283, 283, 283, 290, 283, 283, 291,
752 	283, 283, 283, 283, 283, 283, 283, 283,
753 	283, 283, 283, 283, 283, 292, 283, 364,
754 	191, 365, 365, 84, 79, 194, 195, 363,
755 	363, 363, 197, 363, 363, 200, 363, 363,
756 	363, 363, 363, 363, 363, 363, 363, 363,
757 	363, 363, 363, 202, 363, 191, 365, 365,
758 	84, 79, 194, 195, 363, 363, 363, 197,
759 	363, 363, 200, 363, 363, 363, 363, 363,
760 	363, 363, 363, 363, 363, 363, 363, 363,
761 	202, 363, 366, 363, 363, 363, 98, 367,
762 	363, 79, 194, 195, 363, 363, 363, 368,
763 	363, 366, 363, 369, 370, 371, 372, 84,
764 	79, 194, 195, 363, 363, 115, 373, 363,
765 	363, 200, 363, 363, 363, 363, 363, 363,
766 	363, 363, 363, 363, 363, 363, 363, 202,
767 	363, 374, 370, 375, 375, 84, 79, 194,
768 	195, 363, 363, 363, 373, 363, 363, 200,
769 	363, 363, 363, 363, 363, 363, 363, 363,
770 	363, 363, 363, 363, 363, 202, 363, 370,
771 	375, 375, 84, 79, 194, 195, 363, 363,
772 	363, 373, 363, 363, 200, 363, 363, 363,
773 	363, 363, 363, 363, 363, 363, 363, 363,
774 	363, 363, 202, 363, 376, 363, 363, 363,
775 	98, 377, 363, 79, 194, 195, 363, 363,
776 	363, 368, 363, 376, 363, 378, 379, 380,
777 	381, 84, 79, 194, 195, 363, 363, 113,
778 	382, 363, 363, 200, 363, 363, 363, 363,
779 	363, 363, 363, 363, 363, 363, 363, 363,
780 	363, 202, 363, 383, 379, 384, 384, 84,
781 	79, 194, 195, 363, 363, 363, 382, 363,
782 	363, 200, 363, 363, 363, 363, 363, 363,
783 	363, 363, 363, 363, 363, 363, 363, 202,
784 	363, 379, 384, 384, 84, 79, 194, 195,
785 	363, 363, 363, 382, 363, 363, 200, 363,
786 	363, 363, 363, 363, 363, 363, 363, 363,
787 	363, 363, 363, 363, 202, 363, 385, 363,
788 	363, 363, 98, 386, 363, 79, 194, 195,
789 	363, 363, 363, 368, 363, 385, 363, 387,
790 	388, 389, 390, 84, 79, 194, 195, 363,
791 	363, 111, 391, 363, 363, 200, 363, 363,
792 	363, 363, 363, 363, 363, 363, 363, 363,
793 	363, 363, 363, 202, 363, 392, 388, 393,
794 	393, 84, 79, 194, 195, 363, 363, 363,
795 	391, 363, 363, 200, 363, 363, 363, 363,
796 	363, 363, 363, 363, 363, 363, 363, 363,
797 	363, 202, 363, 388, 393, 393, 84, 79,
798 	194, 195, 363, 363, 363, 391, 363, 363,
799 	200, 363, 363, 363, 363, 363, 363, 363,
800 	363, 363, 363, 363, 363, 363, 202, 363,
801 	394, 363, 363, 363, 98, 395, 363, 79,
802 	194, 195, 363, 363, 363, 368, 363, 394,
803 	363, 396, 397, 398, 399, 84, 79, 194,
804 	195, 363, 363, 109, 400, 363, 363, 200,
805 	363, 363, 363, 363, 363, 363, 363, 363,
806 	363, 363, 363, 363, 363, 202, 363, 401,
807 	397, 402, 402, 84, 79, 194, 195, 363,
808 	363, 363, 400, 363, 363, 200, 363, 363,
809 	363, 363, 363, 363, 363, 363, 363, 363,
810 	363, 363, 363, 202, 363, 397, 402, 402,
811 	84, 79, 194, 195, 363, 363, 363, 400,
812 	363, 363, 200, 363, 363, 363, 363, 363,
813 	363, 363, 363, 363, 363, 363, 363, 363,
814 	202, 363, 98, 403, 363, 79, 194, 195,
815 	363, 363, 363, 368, 363, 404, 404, 363,
816 	79, 194, 195, 363, 363, 363, 368, 363,
817 	405, 363, 363, 406, 194, 195, 363, 194,
818 	195, 363, 407, 363, 194, 408, 363, 194,
819 	409, 363, 194, 363, 405, 363, 363, 363,
820 	194, 195, 363, 410, 363, 411, 412, 363,
821 	79, 194, 195, 363, 363, 82, 363, 81,
822 	363, 404, 404, 363, 79, 194, 195, 363,
823 	404, 404, 363, 79, 194, 195, 363, 410,
824 	363, 404, 404, 363, 79, 194, 195, 363,
825 	410, 363, 411, 404, 363, 79, 194, 195,
826 	363, 363, 82, 363, 98, 363, 413, 413,
827 	84, 79, 194, 195, 363, 363, 363, 368,
828 	363, 414, 107, 415, 416, 88, 79, 194,
829 	195, 363, 363, 363, 368, 363, 107, 415,
830 	416, 88, 79, 194, 195, 363, 363, 363,
831 	368, 363, 415, 415, 88, 79, 194, 195,
832 	363, 363, 363, 368, 363, 417, 104, 418,
833 	419, 91, 79, 194, 195, 363, 363, 363,
834 	368, 363, 104, 418, 419, 91, 79, 194,
835 	195, 363, 363, 363, 368, 363, 418, 418,
836 	91, 79, 194, 195, 363, 363, 363, 368,
837 	363, 420, 101, 421, 422, 94, 79, 194,
838 	195, 363, 363, 363, 368, 363, 101, 421,
839 	422, 94, 79, 194, 195, 363, 363, 363,
840 	368, 363, 421, 421, 94, 79, 194, 195,
841 	363, 363, 363, 368, 363, 423, 98, 404,
842 	424, 363, 79, 194, 195, 363, 363, 363,
843 	368, 363, 98, 404, 424, 363, 79, 194,
844 	195, 363, 363, 363, 368, 363, 404, 425,
845 	363, 79, 194, 195, 363, 363, 363, 368,
846 	363, 98, 363, 404, 404, 363, 79, 194,
847 	195, 363, 363, 363, 368, 363, 80, 81,
848 	363, 363, 98, 403, 363, 79, 194, 195,
849 	363, 363, 363, 368, 363, 80, 363, 397,
850 	402, 402, 84, 79, 194, 195, 363, 363,
851 	363, 400, 363, 363, 363, 363, 363, 363,
852 	363, 363, 363, 363, 363, 363, 363, 363,
853 	363, 363, 202, 363, 397, 402, 402, 84,
854 	79, 194, 195, 363, 363, 363, 400, 363,
855 	396, 397, 402, 402, 84, 79, 194, 195,
856 	363, 363, 363, 400, 363, 363, 200, 363,
857 	363, 363, 363, 363, 363, 363, 363, 363,
858 	363, 363, 363, 363, 202, 363, 396, 397,
859 	398, 402, 84, 79, 194, 195, 363, 363,
860 	109, 400, 363, 363, 200, 363, 363, 363,
861 	363, 363, 363, 363, 363, 363, 363, 363,
862 	363, 363, 202, 363, 394, 363, 426, 363,
863 	413, 413, 84, 79, 194, 195, 363, 363,
864 	363, 368, 363, 394, 363, 394, 363, 363,
865 	363, 404, 404, 363, 79, 194, 195, 363,
866 	363, 363, 368, 363, 394, 363, 394, 363,
867 	363, 363, 404, 427, 363, 79, 194, 195,
868 	363, 363, 363, 368, 363, 394, 363, 394,
869 	363, 426, 363, 404, 404, 363, 79, 194,
870 	195, 363, 363, 363, 368, 363, 394, 363,
871 	394, 81, 363, 363, 98, 395, 363, 79,
872 	194, 195, 363, 363, 363, 368, 363, 394,
873 	363, 387, 388, 393, 393, 84, 79, 194,
874 	195, 363, 363, 363, 391, 363, 363, 200,
875 	363, 363, 363, 363, 363, 363, 363, 363,
876 	363, 363, 363, 363, 363, 202, 363, 387,
877 	388, 389, 393, 84, 79, 194, 195, 363,
878 	363, 111, 391, 363, 363, 200, 363, 363,
879 	363, 363, 363, 363, 363, 363, 363, 363,
880 	363, 363, 363, 202, 363, 385, 363, 428,
881 	363, 413, 413, 84, 79, 194, 195, 363,
882 	363, 363, 368, 363, 385, 363, 385, 363,
883 	363, 363, 404, 404, 363, 79, 194, 195,
884 	363, 363, 363, 368, 363, 385, 363, 385,
885 	363, 363, 363, 404, 429, 363, 79, 194,
886 	195, 363, 363, 363, 368, 363, 385, 363,
887 	385, 363, 428, 363, 404, 404, 363, 79,
888 	194, 195, 363, 363, 363, 368, 363, 385,
889 	363, 385, 81, 363, 363, 98, 386, 363,
890 	79, 194, 195, 363, 363, 363, 368, 363,
891 	385, 363, 378, 379, 384, 384, 84, 79,
892 	194, 195, 363, 363, 363, 382, 363, 363,
893 	200, 363, 363, 363, 363, 363, 363, 363,
894 	363, 363, 363, 363, 363, 363, 202, 363,
895 	378, 379, 380, 384, 84, 79, 194, 195,
896 	363, 363, 113, 382, 363, 363, 200, 363,
897 	363, 363, 363, 363, 363, 363, 363, 363,
898 	363, 363, 363, 363, 202, 363, 376, 363,
899 	430, 363, 413, 413, 84, 79, 194, 195,
900 	363, 363, 363, 368, 363, 376, 363, 376,
901 	363, 363, 363, 404, 404, 363, 79, 194,
902 	195, 363, 363, 363, 368, 363, 376, 363,
903 	376, 363, 363, 363, 404, 431, 363, 79,
904 	194, 195, 363, 363, 363, 368, 363, 376,
905 	363, 376, 363, 430, 363, 404, 404, 363,
906 	79, 194, 195, 363, 363, 363, 368, 363,
907 	376, 363, 376, 81, 363, 363, 98, 377,
908 	363, 79, 194, 195, 363, 363, 363, 368,
909 	363, 376, 363, 369, 370, 375, 375, 84,
910 	79, 194, 195, 363, 363, 363, 373, 363,
911 	363, 200, 363, 363, 363, 363, 363, 363,
912 	363, 363, 363, 363, 363, 363, 363, 202,
913 	363, 369, 370, 371, 375, 84, 79, 194,
914 	195, 363, 363, 115, 373, 363, 363, 200,
915 	363, 363, 363, 363, 363, 363, 363, 363,
916 	363, 363, 363, 363, 363, 202, 363, 366,
917 	363, 432, 363, 413, 413, 84, 79, 194,
918 	195, 363, 363, 363, 368, 363, 366, 363,
919 	366, 363, 363, 363, 404, 404, 363, 79,
920 	194, 195, 363, 363, 363, 368, 363, 366,
921 	363, 366, 363, 363, 363, 404, 433, 363,
922 	79, 194, 195, 363, 363, 363, 368, 363,
923 	366, 363, 366, 363, 432, 363, 404, 404,
924 	363, 79, 194, 195, 363, 363, 363, 368,
925 	363, 366, 363, 366, 81, 363, 363, 98,
926 	367, 363, 79, 194, 195, 363, 363, 363,
927 	368, 363, 366, 363, 116, 83, 83, 84,
928 	79, 434, 434, 434, 434, 156, 116, 434,
929 	190, 191, 365, 365, 84, 79, 194, 195,
930 	363, 363, 363, 197, 363, 363, 200, 363,
931 	363, 363, 363, 363, 363, 363, 363, 363,
932 	363, 363, 363, 363, 202, 363, 116, 83,
933 	83, 84, 79, 434, 434, 434, 434, 434,
934 	116, 434, 436, 437, 438, 439, 123, 118,
935 	440, 441, 435, 435, 155, 442, 435, 435,
936 	443, 435, 435, 435, 435, 435, 435, 435,
937 	435, 435, 435, 435, 435, 435, 444, 435,
938 	445, 437, 439, 439, 123, 118, 440, 441,
939 	435, 435, 435, 442, 435, 435, 443, 435,
940 	435, 435, 435, 435, 435, 435, 435, 435,
941 	435, 435, 435, 435, 444, 435, 437, 439,
942 	439, 123, 118, 440, 441, 435, 435, 435,
943 	442, 435, 435, 443, 435, 435, 435, 435,
944 	435, 435, 435, 435, 435, 435, 435, 435,
945 	435, 444, 435, 446, 435, 435, 435, 136,
946 	447, 435, 118, 440, 441, 435, 435, 435,
947 	448, 435, 446, 435, 449, 450, 451, 452,
948 	123, 118, 440, 441, 435, 435, 153, 453,
949 	435, 435, 443, 435, 435, 435, 435, 435,
950 	435, 435, 435, 435, 435, 435, 435, 435,
951 	444, 435, 454, 450, 455, 455, 123, 118,
952 	440, 441, 435, 435, 435, 453, 435, 435,
953 	443, 435, 435, 435, 435, 435, 435, 435,
954 	435, 435, 435, 435, 435, 435, 444, 435,
955 	450, 455, 455, 123, 118, 440, 441, 435,
956 	435, 435, 453, 435, 435, 443, 435, 435,
957 	435, 435, 435, 435, 435, 435, 435, 435,
958 	435, 435, 435, 444, 435, 456, 435, 435,
959 	435, 136, 457, 435, 118, 440, 441, 435,
960 	435, 435, 448, 435, 456, 435, 458, 459,
961 	460, 461, 123, 118, 440, 441, 435, 435,
962 	151, 462, 435, 435, 443, 435, 435, 435,
963 	435, 435, 435, 435, 435, 435, 435, 435,
964 	435, 435, 444, 435, 463, 459, 464, 464,
965 	123, 118, 440, 441, 435, 435, 435, 462,
966 	435, 435, 443, 435, 435, 435, 435, 435,
967 	435, 435, 435, 435, 435, 435, 435, 435,
968 	444, 435, 459, 464, 464, 123, 118, 440,
969 	441, 435, 435, 435, 462, 435, 435, 443,
970 	435, 435, 435, 435, 435, 435, 435, 435,
971 	435, 435, 435, 435, 435, 444, 435, 465,
972 	435, 435, 435, 136, 466, 435, 118, 440,
973 	441, 435, 435, 435, 448, 435, 465, 435,
974 	467, 468, 469, 470, 123, 118, 440, 441,
975 	435, 435, 149, 471, 435, 435, 443, 435,
976 	435, 435, 435, 435, 435, 435, 435, 435,
977 	435, 435, 435, 435, 444, 435, 472, 468,
978 	473, 473, 123, 118, 440, 441, 435, 435,
979 	435, 471, 435, 435, 443, 435, 435, 435,
980 	435, 435, 435, 435, 435, 435, 435, 435,
981 	435, 435, 444, 435, 468, 473, 473, 123,
982 	118, 440, 441, 435, 435, 435, 471, 435,
983 	435, 443, 435, 435, 435, 435, 435, 435,
984 	435, 435, 435, 435, 435, 435, 435, 444,
985 	435, 474, 435, 435, 435, 136, 475, 435,
986 	118, 440, 441, 435, 435, 435, 448, 435,
987 	474, 435, 476, 477, 478, 479, 123, 118,
988 	440, 441, 435, 435, 147, 480, 435, 435,
989 	443, 435, 435, 435, 435, 435, 435, 435,
990 	435, 435, 435, 435, 435, 435, 444, 435,
991 	481, 477, 482, 482, 123, 118, 440, 441,
992 	435, 435, 435, 480, 435, 435, 443, 435,
993 	435, 435, 435, 435, 435, 435, 435, 435,
994 	435, 435, 435, 435, 444, 435, 477, 482,
995 	482, 123, 118, 440, 441, 435, 435, 435,
996 	480, 435, 435, 443, 435, 435, 435, 435,
997 	435, 435, 435, 435, 435, 435, 435, 435,
998 	435, 444, 435, 136, 483, 435, 118, 440,
999 	441, 435, 435, 435, 448, 435, 484, 484,
1000 	435, 118, 440, 441, 435, 435, 435, 448,
1001 	435, 485, 435, 435, 486, 440, 441, 435,
1002 	440, 441, 435, 487, 435, 440, 488, 435,
1003 	440, 489, 435, 440, 435, 485, 435, 435,
1004 	435, 440, 441, 435, 490, 435, 491, 492,
1005 	435, 118, 440, 441, 435, 435, 121, 435,
1006 	120, 435, 484, 484, 435, 118, 440, 441,
1007 	435, 484, 484, 435, 118, 440, 441, 435,
1008 	490, 435, 484, 484, 435, 118, 440, 441,
1009 	435, 490, 435, 491, 484, 435, 118, 440,
1010 	441, 435, 435, 121, 435, 136, 435, 493,
1011 	493, 123, 118, 440, 441, 435, 435, 435,
1012 	448, 435, 494, 145, 495, 496, 126, 118,
1013 	440, 441, 435, 435, 435, 448, 435, 145,
1014 	495, 496, 126, 118, 440, 441, 435, 435,
1015 	435, 448, 435, 495, 495, 126, 118, 440,
1016 	441, 435, 435, 435, 448, 435, 497, 142,
1017 	498, 499, 129, 118, 440, 441, 435, 435,
1018 	435, 448, 435, 142, 498, 499, 129, 118,
1019 	440, 441, 435, 435, 435, 448, 435, 498,
1020 	498, 129, 118, 440, 441, 435, 435, 435,
1021 	448, 435, 500, 139, 501, 502, 132, 118,
1022 	440, 441, 435, 435, 435, 448, 435, 139,
1023 	501, 502, 132, 118, 440, 441, 435, 435,
1024 	435, 448, 435, 501, 501, 132, 118, 440,
1025 	441, 435, 435, 435, 448, 435, 503, 136,
1026 	484, 504, 435, 118, 440, 441, 435, 435,
1027 	435, 448, 435, 136, 484, 504, 435, 118,
1028 	440, 441, 435, 435, 435, 448, 435, 484,
1029 	505, 435, 118, 440, 441, 435, 435, 435,
1030 	448, 435, 136, 435, 484, 484, 435, 118,
1031 	440, 441, 435, 435, 435, 448, 435, 119,
1032 	120, 435, 435, 136, 483, 435, 118, 440,
1033 	441, 435, 435, 435, 448, 435, 119, 435,
1034 	477, 482, 482, 123, 118, 440, 441, 435,
1035 	435, 435, 480, 435, 435, 435, 435, 435,
1036 	435, 435, 435, 435, 435, 435, 435, 435,
1037 	435, 435, 435, 444, 435, 477, 482, 482,
1038 	123, 118, 440, 441, 435, 435, 435, 480,
1039 	435, 476, 477, 482, 482, 123, 118, 440,
1040 	441, 435, 435, 435, 480, 435, 435, 443,
1041 	435, 435, 435, 435, 435, 435, 435, 435,
1042 	435, 435, 435, 435, 435, 444, 435, 476,
1043 	477, 478, 482, 123, 118, 440, 441, 435,
1044 	435, 147, 480, 435, 435, 443, 435, 435,
1045 	435, 435, 435, 435, 435, 435, 435, 435,
1046 	435, 435, 435, 444, 435, 474, 435, 506,
1047 	435, 493, 493, 123, 118, 440, 441, 435,
1048 	435, 435, 448, 435, 474, 435, 474, 435,
1049 	435, 435, 484, 484, 435, 118, 440, 441,
1050 	435, 435, 435, 448, 435, 474, 435, 474,
1051 	435, 435, 435, 484, 507, 435, 118, 440,
1052 	441, 435, 435, 435, 448, 435, 474, 435,
1053 	474, 435, 506, 435, 484, 484, 435, 118,
1054 	440, 441, 435, 435, 435, 448, 435, 474,
1055 	435, 474, 120, 435, 435, 136, 475, 435,
1056 	118, 440, 441, 435, 435, 435, 448, 435,
1057 	474, 435, 467, 468, 473, 473, 123, 118,
1058 	440, 441, 435, 435, 435, 471, 435, 435,
1059 	443, 435, 435, 435, 435, 435, 435, 435,
1060 	435, 435, 435, 435, 435, 435, 444, 435,
1061 	467, 468, 469, 473, 123, 118, 440, 441,
1062 	435, 435, 149, 471, 435, 435, 443, 435,
1063 	435, 435, 435, 435, 435, 435, 435, 435,
1064 	435, 435, 435, 435, 444, 435, 465, 435,
1065 	508, 435, 493, 493, 123, 118, 440, 441,
1066 	435, 435, 435, 448, 435, 465, 435, 465,
1067 	435, 435, 435, 484, 484, 435, 118, 440,
1068 	441, 435, 435, 435, 448, 435, 465, 435,
1069 	465, 435, 435, 435, 484, 509, 435, 118,
1070 	440, 441, 435, 435, 435, 448, 435, 465,
1071 	435, 465, 435, 508, 435, 484, 484, 435,
1072 	118, 440, 441, 435, 435, 435, 448, 435,
1073 	465, 435, 465, 120, 435, 435, 136, 466,
1074 	435, 118, 440, 441, 435, 435, 435, 448,
1075 	435, 465, 435, 458, 459, 464, 464, 123,
1076 	118, 440, 441, 435, 435, 435, 462, 435,
1077 	435, 443, 435, 435, 435, 435, 435, 435,
1078 	435, 435, 435, 435, 435, 435, 435, 444,
1079 	435, 458, 459, 460, 464, 123, 118, 440,
1080 	441, 435, 435, 151, 462, 435, 435, 443,
1081 	435, 435, 435, 435, 435, 435, 435, 435,
1082 	435, 435, 435, 435, 435, 444, 435, 456,
1083 	435, 510, 435, 493, 493, 123, 118, 440,
1084 	441, 435, 435, 435, 448, 435, 456, 435,
1085 	456, 435, 435, 435, 484, 484, 435, 118,
1086 	440, 441, 435, 435, 435, 448, 435, 456,
1087 	435, 456, 435, 435, 435, 484, 511, 435,
1088 	118, 440, 441, 435, 435, 435, 448, 435,
1089 	456, 435, 456, 435, 510, 435, 484, 484,
1090 	435, 118, 440, 441, 435, 435, 435, 448,
1091 	435, 456, 435, 456, 120, 435, 435, 136,
1092 	457, 435, 118, 440, 441, 435, 435, 435,
1093 	448, 435, 456, 435, 449, 450, 455, 455,
1094 	123, 118, 440, 441, 435, 435, 435, 453,
1095 	435, 435, 443, 435, 435, 435, 435, 435,
1096 	435, 435, 435, 435, 435, 435, 435, 435,
1097 	444, 435, 449, 450, 451, 455, 123, 118,
1098 	440, 441, 435, 435, 153, 453, 435, 435,
1099 	443, 435, 435, 435, 435, 435, 435, 435,
1100 	435, 435, 435, 435, 435, 435, 444, 435,
1101 	446, 435, 512, 435, 493, 493, 123, 118,
1102 	440, 441, 435, 435, 435, 448, 435, 446,
1103 	435, 446, 435, 435, 435, 484, 484, 435,
1104 	118, 440, 441, 435, 435, 435, 448, 435,
1105 	446, 435, 446, 435, 435, 435, 484, 513,
1106 	435, 118, 440, 441, 435, 435, 435, 448,
1107 	435, 446, 435, 446, 435, 512, 435, 484,
1108 	484, 435, 118, 440, 441, 435, 435, 435,
1109 	448, 435, 446, 435, 446, 120, 435, 435,
1110 	136, 447, 435, 118, 440, 441, 435, 435,
1111 	435, 448, 435, 446, 435, 436, 437, 439,
1112 	439, 123, 118, 440, 441, 435, 435, 435,
1113 	442, 435, 435, 443, 435, 435, 435, 435,
1114 	435, 435, 435, 435, 435, 435, 435, 435,
1115 	435, 444, 435, 188, 189, 190, 191, 514,
1116 	365, 84, 79, 194, 195, 196, 196, 156,
1117 	197, 363, 188, 200, 363, 363, 363, 363,
1118 	363, 363, 363, 363, 363, 363, 363, 363,
1119 	363, 202, 363, 204, 515, 206, 207, 6,
1120 	1, 208, 209, 203, 203, 38, 210, 203,
1121 	203, 211, 203, 203, 203, 203, 203, 203,
1122 	203, 203, 203, 203, 203, 203, 203, 212,
1123 	203, 215, 189, 190, 191, 516, 517, 84,
1124 	157, 518, 519, 203, 196, 156, 520, 203,
1125 	215, 200, 203, 203, 203, 203, 203, 203,
1126 	203, 203, 203, 203, 203, 203, 203, 202,
1127 	203, 116, 521, 521, 84, 157, 208, 209,
1128 	203, 203, 156, 522, 203, 523, 203, 203,
1129 	524, 518, 519, 203, 518, 519, 203, 256,
1130 	203, 518, 525, 203, 518, 526, 203, 518,
1131 	203, 523, 203, 203, 203, 518, 519, 203,
1132 	527, 3, 363, 363, 404, 433, 363, 79,
1133 	194, 195, 363, 363, 363, 368, 363, 527,
1134 	363, 528, 370, 529, 530, 84, 157, 518,
1135 	519, 203, 203, 158, 373, 203, 203, 200,
1136 	203, 203, 203, 203, 203, 203, 203, 203,
1137 	203, 203, 203, 203, 203, 202, 203, 531,
1138 	370, 532, 532, 84, 157, 518, 519, 203,
1139 	203, 203, 373, 203, 203, 200, 203, 203,
1140 	203, 203, 203, 203, 203, 203, 203, 203,
1141 	203, 203, 203, 202, 203, 370, 532, 532,
1142 	84, 157, 518, 519, 203, 203, 203, 373,
1143 	203, 203, 200, 203, 203, 203, 203, 203,
1144 	203, 203, 203, 203, 203, 203, 203, 203,
1145 	202, 203, 528, 370, 532, 532, 84, 157,
1146 	518, 519, 203, 203, 203, 373, 203, 203,
1147 	200, 203, 203, 203, 203, 203, 203, 203,
1148 	203, 203, 203, 203, 203, 203, 202, 203,
1149 	528, 370, 529, 532, 84, 157, 518, 519,
1150 	203, 203, 158, 373, 203, 203, 200, 203,
1151 	203, 203, 203, 203, 203, 203, 203, 203,
1152 	203, 203, 203, 203, 202, 203, 215, 203,
1153 	281, 116, 533, 533, 160, 157, 208, 209,
1154 	203, 203, 203, 522, 203, 215, 203, 534,
1155 	184, 535, 536, 162, 157, 518, 519, 203,
1156 	203, 203, 537, 203, 184, 535, 536, 162,
1157 	157, 518, 519, 203, 203, 203, 537, 203,
1158 	535, 535, 162, 157, 518, 519, 203, 203,
1159 	203, 537, 203, 538, 181, 539, 540, 165,
1160 	157, 518, 519, 203, 203, 203, 537, 203,
1161 	181, 539, 540, 165, 157, 518, 519, 203,
1162 	203, 203, 537, 203, 539, 539, 165, 157,
1163 	518, 519, 203, 203, 203, 537, 203, 541,
1164 	178, 542, 543, 168, 157, 518, 519, 203,
1165 	203, 203, 537, 203, 178, 542, 543, 168,
1166 	157, 518, 519, 203, 203, 203, 537, 203,
1167 	542, 542, 168, 157, 518, 519, 203, 203,
1168 	203, 537, 203, 544, 175, 545, 546, 203,
1169 	157, 518, 519, 203, 203, 203, 537, 203,
1170 	175, 545, 546, 203, 157, 518, 519, 203,
1171 	203, 203, 537, 203, 545, 545, 203, 157,
1172 	518, 519, 203, 203, 203, 537, 203, 547,
1173 	203, 548, 549, 203, 157, 518, 519, 203,
1174 	203, 172, 203, 171, 203, 545, 545, 203,
1175 	157, 518, 519, 203, 545, 545, 203, 157,
1176 	518, 519, 203, 547, 203, 545, 545, 203,
1177 	157, 518, 519, 203, 547, 203, 548, 545,
1178 	203, 157, 518, 519, 203, 203, 172, 203,
1179 	527, 171, 363, 363, 98, 367, 363, 79,
1180 	194, 195, 363, 363, 363, 368, 363, 527,
1181 	363, 551, 550, 552, 552, 550, 186, 553,
1182 	554, 550, 552, 552, 550, 186, 553, 554,
1183 	550, 555, 550, 550, 556, 553, 554, 550,
1184 	553, 554, 550, 557, 550, 553, 558, 550,
1185 	553, 559, 550, 553, 550, 555, 550, 550,
1186 	550, 553, 554, 550, 0
1187 };
1188 
1189 static const short _indic_syllable_machine_trans_targs[] = {
1190 	178, 200, 207, 209, 210, 4, 213, 5,
1191 	7, 216, 8, 10, 219, 11, 13, 222,
1192 	14, 16, 17, 199, 19, 20, 221, 22,
1193 	23, 218, 25, 26, 215, 224, 229, 233,
1194 	236, 240, 243, 247, 250, 254, 257, 178,
1195 	280, 287, 289, 290, 41, 293, 42, 44,
1196 	296, 45, 47, 299, 48, 50, 302, 51,
1197 	53, 54, 279, 56, 57, 301, 59, 60,
1198 	298, 62, 63, 295, 304, 309, 313, 316,
1199 	320, 323, 327, 330, 334, 338, 178, 359,
1200 	366, 368, 369, 78, 372, 178, 79, 81,
1201 	375, 82, 84, 378, 85, 87, 381, 88,
1202 	90, 91, 358, 93, 94, 380, 96, 97,
1203 	377, 99, 100, 374, 383, 388, 392, 395,
1204 	399, 402, 406, 409, 413, 178, 440, 447,
1205 	449, 450, 114, 453, 115, 117, 456, 118,
1206 	120, 459, 121, 123, 462, 124, 126, 127,
1207 	439, 129, 130, 461, 132, 133, 458, 135,
1208 	136, 455, 464, 469, 473, 476, 480, 483,
1209 	487, 490, 494, 497, 417, 502, 513, 152,
1210 	516, 154, 519, 155, 157, 522, 158, 160,
1211 	525, 161, 528, 530, 531, 166, 167, 527,
1212 	169, 170, 524, 172, 173, 521, 175, 176,
1213 	518, 178, 536, 178, 179, 259, 339, 341,
1214 	416, 418, 361, 362, 419, 415, 498, 499,
1215 	386, 534, 387, 178, 180, 182, 36, 258,
1216 	202, 203, 256, 227, 228, 181, 35, 183,
1217 	252, 1, 184, 186, 34, 251, 249, 185,
1218 	33, 187, 245, 188, 190, 32, 244, 242,
1219 	189, 31, 191, 238, 192, 194, 30, 237,
1220 	235, 193, 29, 195, 231, 196, 198, 28,
1221 	230, 226, 197, 27, 212, 0, 201, 206,
1222 	178, 204, 205, 208, 2, 211, 3, 214,
1223 	6, 24, 217, 9, 21, 220, 12, 18,
1224 	223, 15, 225, 232, 234, 239, 241, 246,
1225 	248, 253, 255, 178, 260, 262, 73, 336,
1226 	282, 283, 337, 307, 308, 261, 72, 263,
1227 	332, 38, 264, 266, 71, 331, 329, 265,
1228 	70, 267, 325, 268, 270, 69, 324, 322,
1229 	269, 68, 271, 318, 272, 274, 67, 317,
1230 	315, 273, 66, 275, 311, 276, 278, 65,
1231 	310, 306, 277, 64, 292, 37, 281, 286,
1232 	178, 284, 285, 288, 39, 291, 40, 294,
1233 	43, 61, 297, 46, 58, 300, 49, 55,
1234 	303, 52, 305, 312, 314, 319, 321, 326,
1235 	328, 333, 335, 178, 340, 109, 342, 411,
1236 	75, 343, 345, 108, 410, 408, 344, 107,
1237 	346, 404, 347, 349, 106, 403, 401, 348,
1238 	105, 350, 397, 351, 353, 104, 396, 394,
1239 	352, 103, 354, 390, 355, 357, 102, 389,
1240 	385, 356, 101, 371, 74, 360, 365, 178,
1241 	363, 364, 367, 76, 370, 77, 373, 80,
1242 	98, 376, 83, 95, 379, 86, 92, 382,
1243 	89, 384, 391, 393, 398, 400, 405, 407,
1244 	412, 414, 178, 178, 420, 422, 146, 145,
1245 	442, 443, 496, 467, 468, 421, 423, 492,
1246 	111, 424, 426, 144, 491, 489, 425, 143,
1247 	427, 485, 428, 430, 142, 484, 482, 429,
1248 	141, 431, 478, 432, 434, 140, 477, 475,
1249 	433, 139, 435, 471, 436, 438, 138, 470,
1250 	466, 437, 137, 452, 110, 441, 446, 178,
1251 	444, 445, 448, 112, 451, 113, 454, 116,
1252 	134, 457, 119, 131, 460, 122, 128, 463,
1253 	125, 465, 472, 474, 479, 481, 486, 488,
1254 	493, 495, 147, 500, 501, 515, 504, 505,
1255 	533, 148, 509, 503, 508, 506, 507, 510,
1256 	511, 150, 514, 512, 149, 151, 517, 153,
1257 	174, 163, 520, 156, 171, 523, 159, 168,
1258 	526, 162, 165, 529, 164, 532, 178, 535,
1259 	177, 538, 539, 537, 542, 178, 540, 541
1260 };
1261 
1262 static const char _indic_syllable_machine_trans_actions[] = {
1263 	1, 0, 2, 2, 2, 0, 2, 0,
1264 	0, 2, 0, 0, 2, 0, 0, 2,
1265 	0, 0, 0, 2, 0, 0, 2, 0,
1266 	0, 2, 0, 0, 2, 2, 2, 2,
1267 	2, 2, 2, 2, 2, 2, 2, 3,
1268 	0, 2, 2, 2, 0, 2, 0, 0,
1269 	2, 0, 0, 2, 0, 0, 2, 0,
1270 	0, 0, 2, 0, 0, 2, 0, 0,
1271 	2, 0, 0, 2, 2, 2, 2, 2,
1272 	2, 2, 2, 2, 2, 2, 4, 0,
1273 	2, 2, 2, 0, 2, 5, 0, 0,
1274 	2, 0, 0, 2, 0, 0, 2, 0,
1275 	0, 0, 2, 0, 0, 2, 0, 0,
1276 	2, 0, 0, 2, 2, 6, 2, 6,
1277 	2, 6, 2, 6, 2, 7, 0, 2,
1278 	2, 2, 0, 2, 0, 0, 2, 0,
1279 	0, 2, 0, 0, 2, 0, 0, 0,
1280 	2, 0, 0, 2, 0, 0, 2, 0,
1281 	0, 2, 2, 2, 2, 2, 2, 2,
1282 	2, 2, 2, 2, 6, 0, 8, 0,
1283 	2, 0, 2, 0, 0, 2, 0, 0,
1284 	2, 0, 2, 2, 2, 0, 0, 2,
1285 	0, 0, 2, 0, 0, 2, 0, 0,
1286 	2, 9, 0, 12, 2, 2, 6, 2,
1287 	13, 13, 0, 0, 2, 2, 6, 2,
1288 	6, 2, 6, 14, 2, 2, 0, 2,
1289 	0, 0, 2, 2, 2, 2, 0, 2,
1290 	2, 0, 2, 2, 0, 2, 2, 2,
1291 	0, 2, 2, 2, 2, 0, 2, 2,
1292 	2, 0, 2, 2, 2, 2, 0, 2,
1293 	2, 2, 0, 2, 2, 2, 2, 0,
1294 	2, 2, 2, 0, 2, 0, 0, 0,
1295 	15, 0, 0, 2, 0, 2, 0, 2,
1296 	0, 0, 2, 0, 0, 2, 0, 0,
1297 	2, 0, 2, 2, 2, 2, 2, 2,
1298 	2, 2, 2, 16, 2, 2, 0, 2,
1299 	0, 0, 2, 2, 2, 2, 0, 2,
1300 	2, 0, 2, 2, 0, 2, 2, 2,
1301 	0, 2, 2, 2, 2, 0, 2, 2,
1302 	2, 0, 2, 2, 2, 2, 0, 2,
1303 	2, 2, 0, 2, 2, 2, 2, 0,
1304 	2, 2, 2, 0, 2, 0, 0, 0,
1305 	17, 0, 0, 2, 0, 2, 0, 2,
1306 	0, 0, 2, 0, 0, 2, 0, 0,
1307 	2, 0, 2, 2, 2, 2, 2, 2,
1308 	2, 2, 2, 18, 6, 0, 6, 6,
1309 	0, 6, 2, 0, 6, 2, 6, 0,
1310 	6, 6, 6, 2, 0, 6, 2, 6,
1311 	0, 6, 6, 6, 2, 0, 6, 2,
1312 	6, 0, 6, 6, 6, 2, 0, 6,
1313 	2, 6, 0, 6, 0, 0, 0, 19,
1314 	0, 0, 2, 0, 2, 0, 2, 0,
1315 	0, 2, 0, 0, 2, 0, 0, 2,
1316 	0, 2, 2, 2, 2, 2, 2, 2,
1317 	2, 2, 20, 21, 2, 2, 0, 0,
1318 	0, 0, 2, 2, 2, 2, 2, 2,
1319 	0, 2, 2, 0, 2, 2, 2, 0,
1320 	2, 2, 2, 2, 0, 2, 2, 2,
1321 	0, 2, 2, 2, 2, 0, 2, 2,
1322 	2, 0, 2, 2, 2, 2, 0, 2,
1323 	2, 2, 0, 2, 0, 0, 0, 22,
1324 	0, 0, 2, 0, 2, 0, 2, 0,
1325 	0, 2, 0, 0, 2, 0, 0, 2,
1326 	0, 2, 2, 2, 2, 2, 2, 2,
1327 	2, 2, 0, 0, 8, 2, 0, 0,
1328 	2, 0, 2, 0, 0, 0, 0, 8,
1329 	8, 0, 8, 8, 0, 0, 2, 0,
1330 	0, 0, 2, 0, 0, 2, 0, 0,
1331 	2, 0, 0, 2, 0, 2, 23, 2,
1332 	0, 0, 0, 0, 0, 24, 0, 0
1333 };
1334 
1335 static const char _indic_syllable_machine_to_state_actions[] = {
1336 	0, 0, 0, 0, 0, 0, 0, 0,
1337 	0, 0, 0, 0, 0, 0, 0, 0,
1338 	0, 0, 0, 0, 0, 0, 0, 0,
1339 	0, 0, 0, 0, 0, 0, 0, 0,
1340 	0, 0, 0, 0, 0, 0, 0, 0,
1341 	0, 0, 0, 0, 0, 0, 0, 0,
1342 	0, 0, 0, 0, 0, 0, 0, 0,
1343 	0, 0, 0, 0, 0, 0, 0, 0,
1344 	0, 0, 0, 0, 0, 0, 0, 0,
1345 	0, 0, 0, 0, 0, 0, 0, 0,
1346 	0, 0, 0, 0, 0, 0, 0, 0,
1347 	0, 0, 0, 0, 0, 0, 0, 0,
1348 	0, 0, 0, 0, 0, 0, 0, 0,
1349 	0, 0, 0, 0, 0, 0, 0, 0,
1350 	0, 0, 0, 0, 0, 0, 0, 0,
1351 	0, 0, 0, 0, 0, 0, 0, 0,
1352 	0, 0, 0, 0, 0, 0, 0, 0,
1353 	0, 0, 0, 0, 0, 0, 0, 0,
1354 	0, 0, 0, 0, 0, 0, 0, 0,
1355 	0, 0, 0, 0, 0, 0, 0, 0,
1356 	0, 0, 0, 0, 0, 0, 0, 0,
1357 	0, 0, 0, 0, 0, 0, 0, 0,
1358 	0, 0, 10, 0, 0, 0, 0, 0,
1359 	0, 0, 0, 0, 0, 0, 0, 0,
1360 	0, 0, 0, 0, 0, 0, 0, 0,
1361 	0, 0, 0, 0, 0, 0, 0, 0,
1362 	0, 0, 0, 0, 0, 0, 0, 0,
1363 	0, 0, 0, 0, 0, 0, 0, 0,
1364 	0, 0, 0, 0, 0, 0, 0, 0,
1365 	0, 0, 0, 0, 0, 0, 0, 0,
1366 	0, 0, 0, 0, 0, 0, 0, 0,
1367 	0, 0, 0, 0, 0, 0, 0, 0,
1368 	0, 0, 0, 0, 0, 0, 0, 0,
1369 	0, 0, 0, 0, 0, 0, 0, 0,
1370 	0, 0, 0, 0, 0, 0, 0, 0,
1371 	0, 0, 0, 0, 0, 0, 0, 0,
1372 	0, 0, 0, 0, 0, 0, 0, 0,
1373 	0, 0, 0, 0, 0, 0, 0, 0,
1374 	0, 0, 0, 0, 0, 0, 0, 0,
1375 	0, 0, 0, 0, 0, 0, 0, 0,
1376 	0, 0, 0, 0, 0, 0, 0, 0,
1377 	0, 0, 0, 0, 0, 0, 0, 0,
1378 	0, 0, 0, 0, 0, 0, 0, 0,
1379 	0, 0, 0, 0, 0, 0, 0, 0,
1380 	0, 0, 0, 0, 0, 0, 0, 0,
1381 	0, 0, 0, 0, 0, 0, 0, 0,
1382 	0, 0, 0, 0, 0, 0, 0, 0,
1383 	0, 0, 0, 0, 0, 0, 0, 0,
1384 	0, 0, 0, 0, 0, 0, 0, 0,
1385 	0, 0, 0, 0, 0, 0, 0, 0,
1386 	0, 0, 0, 0, 0, 0, 0, 0,
1387 	0, 0, 0, 0, 0, 0, 0, 0,
1388 	0, 0, 0, 0, 0, 0, 0, 0,
1389 	0, 0, 0, 0, 0, 0, 0, 0,
1390 	0, 0, 0, 0, 0, 0, 0, 0,
1391 	0, 0, 0, 0, 0, 0, 0, 0,
1392 	0, 0, 0, 0, 0, 0, 0, 0,
1393 	0, 0, 0, 0, 0, 0, 0, 0,
1394 	0, 0, 0, 0, 0, 0, 0, 0,
1395 	0, 0, 0, 0, 0, 0, 0, 0,
1396 	0, 0, 0, 0, 0, 0, 0, 0,
1397 	0, 0, 0, 0, 0, 0, 0, 0,
1398 	0, 0, 0, 0, 0, 0, 0, 0,
1399 	0, 0, 0, 0, 0, 0, 0, 0,
1400 	0, 0, 0, 0, 0, 0, 0, 0,
1401 	0, 0, 0, 0, 0, 0, 0, 0,
1402 	0, 0, 0, 0, 0, 0, 0, 0,
1403 	0, 0, 0, 0, 0, 0, 0
1404 };
1405 
1406 static const char _indic_syllable_machine_from_state_actions[] = {
1407 	0, 0, 0, 0, 0, 0, 0, 0,
1408 	0, 0, 0, 0, 0, 0, 0, 0,
1409 	0, 0, 0, 0, 0, 0, 0, 0,
1410 	0, 0, 0, 0, 0, 0, 0, 0,
1411 	0, 0, 0, 0, 0, 0, 0, 0,
1412 	0, 0, 0, 0, 0, 0, 0, 0,
1413 	0, 0, 0, 0, 0, 0, 0, 0,
1414 	0, 0, 0, 0, 0, 0, 0, 0,
1415 	0, 0, 0, 0, 0, 0, 0, 0,
1416 	0, 0, 0, 0, 0, 0, 0, 0,
1417 	0, 0, 0, 0, 0, 0, 0, 0,
1418 	0, 0, 0, 0, 0, 0, 0, 0,
1419 	0, 0, 0, 0, 0, 0, 0, 0,
1420 	0, 0, 0, 0, 0, 0, 0, 0,
1421 	0, 0, 0, 0, 0, 0, 0, 0,
1422 	0, 0, 0, 0, 0, 0, 0, 0,
1423 	0, 0, 0, 0, 0, 0, 0, 0,
1424 	0, 0, 0, 0, 0, 0, 0, 0,
1425 	0, 0, 0, 0, 0, 0, 0, 0,
1426 	0, 0, 0, 0, 0, 0, 0, 0,
1427 	0, 0, 0, 0, 0, 0, 0, 0,
1428 	0, 0, 0, 0, 0, 0, 0, 0,
1429 	0, 0, 11, 0, 0, 0, 0, 0,
1430 	0, 0, 0, 0, 0, 0, 0, 0,
1431 	0, 0, 0, 0, 0, 0, 0, 0,
1432 	0, 0, 0, 0, 0, 0, 0, 0,
1433 	0, 0, 0, 0, 0, 0, 0, 0,
1434 	0, 0, 0, 0, 0, 0, 0, 0,
1435 	0, 0, 0, 0, 0, 0, 0, 0,
1436 	0, 0, 0, 0, 0, 0, 0, 0,
1437 	0, 0, 0, 0, 0, 0, 0, 0,
1438 	0, 0, 0, 0, 0, 0, 0, 0,
1439 	0, 0, 0, 0, 0, 0, 0, 0,
1440 	0, 0, 0, 0, 0, 0, 0, 0,
1441 	0, 0, 0, 0, 0, 0, 0, 0,
1442 	0, 0, 0, 0, 0, 0, 0, 0,
1443 	0, 0, 0, 0, 0, 0, 0, 0,
1444 	0, 0, 0, 0, 0, 0, 0, 0,
1445 	0, 0, 0, 0, 0, 0, 0, 0,
1446 	0, 0, 0, 0, 0, 0, 0, 0,
1447 	0, 0, 0, 0, 0, 0, 0, 0,
1448 	0, 0, 0, 0, 0, 0, 0, 0,
1449 	0, 0, 0, 0, 0, 0, 0, 0,
1450 	0, 0, 0, 0, 0, 0, 0, 0,
1451 	0, 0, 0, 0, 0, 0, 0, 0,
1452 	0, 0, 0, 0, 0, 0, 0, 0,
1453 	0, 0, 0, 0, 0, 0, 0, 0,
1454 	0, 0, 0, 0, 0, 0, 0, 0,
1455 	0, 0, 0, 0, 0, 0, 0, 0,
1456 	0, 0, 0, 0, 0, 0, 0, 0,
1457 	0, 0, 0, 0, 0, 0, 0, 0,
1458 	0, 0, 0, 0, 0, 0, 0, 0,
1459 	0, 0, 0, 0, 0, 0, 0, 0,
1460 	0, 0, 0, 0, 0, 0, 0, 0,
1461 	0, 0, 0, 0, 0, 0, 0, 0,
1462 	0, 0, 0, 0, 0, 0, 0, 0,
1463 	0, 0, 0, 0, 0, 0, 0, 0,
1464 	0, 0, 0, 0, 0, 0, 0, 0,
1465 	0, 0, 0, 0, 0, 0, 0, 0,
1466 	0, 0, 0, 0, 0, 0, 0, 0,
1467 	0, 0, 0, 0, 0, 0, 0, 0,
1468 	0, 0, 0, 0, 0, 0, 0, 0,
1469 	0, 0, 0, 0, 0, 0, 0, 0,
1470 	0, 0, 0, 0, 0, 0, 0, 0,
1471 	0, 0, 0, 0, 0, 0, 0, 0,
1472 	0, 0, 0, 0, 0, 0, 0, 0,
1473 	0, 0, 0, 0, 0, 0, 0, 0,
1474 	0, 0, 0, 0, 0, 0, 0
1475 };
1476 
1477 static const short _indic_syllable_machine_eof_trans[] = {
1478 	1, 1, 1, 1, 1, 1, 1, 1,
1479 	1, 1, 1, 1, 1, 1, 1, 1,
1480 	1, 1, 1, 1, 1, 1, 1, 1,
1481 	1, 1, 1, 1, 1, 1, 1, 1,
1482 	1, 1, 1, 1, 1, 40, 40, 40,
1483 	40, 40, 40, 40, 40, 40, 40, 40,
1484 	40, 40, 40, 40, 40, 40, 40, 40,
1485 	40, 40, 40, 40, 40, 40, 40, 40,
1486 	40, 40, 40, 40, 40, 40, 40, 40,
1487 	40, 40, 79, 79, 79, 79, 86, 86,
1488 	79, 79, 79, 79, 79, 79, 79, 79,
1489 	79, 79, 79, 79, 79, 79, 79, 79,
1490 	79, 79, 79, 79, 79, 79, 79, 79,
1491 	79, 79, 79, 79, 79, 79, 118, 118,
1492 	118, 118, 118, 118, 118, 118, 118, 118,
1493 	118, 118, 118, 118, 118, 118, 118, 118,
1494 	118, 118, 118, 118, 118, 118, 118, 118,
1495 	118, 118, 118, 118, 118, 118, 118, 118,
1496 	118, 118, 118, 79, 1, 1, 1, 1,
1497 	1, 1, 1, 1, 1, 1, 1, 1,
1498 	1, 1, 1, 1, 1, 1, 1, 1,
1499 	1, 1, 1, 1, 1, 1, 1, 1,
1500 	1, 186, 0, 204, 204, 204, 204, 204,
1501 	204, 204, 204, 204, 204, 204, 204, 204,
1502 	204, 204, 204, 204, 204, 204, 204, 204,
1503 	204, 204, 204, 204, 204, 204, 204, 204,
1504 	204, 204, 204, 204, 204, 204, 204, 204,
1505 	204, 204, 204, 204, 204, 204, 204, 204,
1506 	204, 204, 204, 204, 204, 204, 204, 204,
1507 	204, 204, 204, 204, 204, 204, 204, 204,
1508 	204, 204, 204, 204, 204, 204, 204, 204,
1509 	204, 204, 204, 204, 204, 204, 204, 204,
1510 	204, 204, 204, 284, 284, 284, 284, 284,
1511 	284, 284, 284, 284, 284, 284, 284, 284,
1512 	284, 284, 284, 284, 284, 284, 284, 284,
1513 	284, 284, 284, 284, 284, 284, 284, 284,
1514 	284, 284, 284, 284, 284, 284, 284, 284,
1515 	284, 284, 284, 284, 284, 284, 284, 284,
1516 	284, 284, 284, 284, 284, 284, 284, 284,
1517 	284, 284, 284, 284, 284, 284, 284, 284,
1518 	284, 284, 284, 284, 284, 284, 284, 284,
1519 	284, 284, 284, 284, 284, 284, 284, 284,
1520 	284, 284, 284, 364, 364, 364, 364, 364,
1521 	364, 364, 364, 364, 364, 364, 364, 364,
1522 	364, 364, 364, 364, 364, 364, 364, 364,
1523 	364, 364, 364, 364, 364, 364, 364, 364,
1524 	364, 364, 364, 364, 364, 364, 364, 364,
1525 	364, 364, 364, 364, 364, 364, 364, 364,
1526 	364, 364, 364, 364, 364, 364, 364, 364,
1527 	364, 364, 364, 364, 364, 364, 364, 364,
1528 	364, 364, 364, 364, 364, 364, 364, 364,
1529 	364, 364, 364, 364, 364, 364, 364, 364,
1530 	435, 364, 435, 436, 436, 436, 436, 436,
1531 	436, 436, 436, 436, 436, 436, 436, 436,
1532 	436, 436, 436, 436, 436, 436, 436, 436,
1533 	436, 436, 436, 436, 436, 436, 436, 436,
1534 	436, 436, 436, 436, 436, 436, 436, 436,
1535 	436, 436, 436, 436, 436, 436, 436, 436,
1536 	436, 436, 436, 436, 436, 436, 436, 436,
1537 	436, 436, 436, 436, 436, 436, 436, 436,
1538 	436, 436, 436, 436, 436, 436, 436, 436,
1539 	436, 436, 436, 436, 436, 436, 436, 436,
1540 	436, 436, 364, 204, 204, 204, 204, 204,
1541 	204, 204, 204, 204, 204, 364, 204, 204,
1542 	204, 204, 204, 204, 204, 204, 204, 204,
1543 	204, 204, 204, 204, 204, 204, 204, 204,
1544 	204, 204, 204, 204, 204, 364, 551, 551,
1545 	551, 551, 551, 551, 551, 551, 551
1546 };
1547 
1548 static const int indic_syllable_machine_start = 178;
1549 static const int indic_syllable_machine_first_final = 178;
1550 static const int indic_syllable_machine_error = -1;
1551 
1552 static const int indic_syllable_machine_en_main = 178;
1553 
1554 
1555 #line 36 "hb-ot-shape-complex-indic-machine.rl"
1556 
1557 
1558 
1559 #line 97 "hb-ot-shape-complex-indic-machine.rl"
1560 
1561 
1562 #define found_syllable(syllable_type) \
1563   HB_STMT_START { \
1564     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1565     for (unsigned int i = last; i < p+1; i++) \
1566       info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1567     last = p+1; \
1568     syllable_serial++; \
1569     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1570   } HB_STMT_END
1571 
1572 static void
find_syllables(hb_buffer_t * buffer)1573 find_syllables (hb_buffer_t *buffer)
1574 {
1575   unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
1576   int cs;
1577   hb_glyph_info_t *info = buffer->info;
1578 
1579 #line 1580 "hb-ot-shape-complex-indic-machine.hh"
1580 	{
1581 	cs = indic_syllable_machine_start;
1582 	ts = 0;
1583 	te = 0;
1584 	act = 0;
1585 	}
1586 
1587 #line 118 "hb-ot-shape-complex-indic-machine.rl"
1588 
1589 
1590   p = 0;
1591   pe = eof = buffer->len;
1592 
1593   unsigned int last = 0;
1594   unsigned int syllable_serial = 1;
1595 
1596 #line 1597 "hb-ot-shape-complex-indic-machine.hh"
1597 	{
1598 	int _slen;
1599 	int _trans;
1600 	const unsigned char *_keys;
1601 	const short *_inds;
1602 	if ( p == pe )
1603 		goto _test_eof;
1604 _resume:
1605 	switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1606 	case 11:
1607 #line 1 "NONE"
1608 	{ts = p;}
1609 	break;
1610 #line 1611 "hb-ot-shape-complex-indic-machine.hh"
1611 	}
1612 
1613 	_keys = _indic_syllable_machine_trans_keys + (cs<<1);
1614 	_inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1615 
1616 	_slen = _indic_syllable_machine_key_spans[cs];
1617 	_trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1618 		( info[p].indic_category()) <= _keys[1] ?
1619 		( info[p].indic_category()) - _keys[0] : _slen ];
1620 
1621 _eof_trans:
1622 	cs = _indic_syllable_machine_trans_targs[_trans];
1623 
1624 	if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1625 		goto _again;
1626 
1627 	switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1628 	case 2:
1629 #line 1 "NONE"
1630 	{te = p+1;}
1631 	break;
1632 	case 15:
1633 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1634 	{te = p+1;{ found_syllable (consonant_syllable); }}
1635 	break;
1636 	case 17:
1637 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1638 	{te = p+1;{ found_syllable (vowel_syllable); }}
1639 	break;
1640 	case 22:
1641 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1642 	{te = p+1;{ found_syllable (standalone_cluster); }}
1643 	break;
1644 	case 24:
1645 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1646 	{te = p+1;{ found_syllable (symbol_cluster); }}
1647 	break;
1648 	case 19:
1649 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1650 	{te = p+1;{ found_syllable (broken_cluster); }}
1651 	break;
1652 	case 12:
1653 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1654 	{te = p+1;{ found_syllable (non_indic_cluster); }}
1655 	break;
1656 	case 14:
1657 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1658 	{te = p;p--;{ found_syllable (consonant_syllable); }}
1659 	break;
1660 	case 16:
1661 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1662 	{te = p;p--;{ found_syllable (vowel_syllable); }}
1663 	break;
1664 	case 21:
1665 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1666 	{te = p;p--;{ found_syllable (standalone_cluster); }}
1667 	break;
1668 	case 23:
1669 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1670 	{te = p;p--;{ found_syllable (symbol_cluster); }}
1671 	break;
1672 	case 18:
1673 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1674 	{te = p;p--;{ found_syllable (broken_cluster); }}
1675 	break;
1676 	case 20:
1677 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1678 	{te = p;p--;{ found_syllable (non_indic_cluster); }}
1679 	break;
1680 	case 1:
1681 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1682 	{{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1683 	break;
1684 	case 3:
1685 #line 89 "hb-ot-shape-complex-indic-machine.rl"
1686 	{{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1687 	break;
1688 	case 7:
1689 #line 90 "hb-ot-shape-complex-indic-machine.rl"
1690 	{{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1691 	break;
1692 	case 9:
1693 #line 91 "hb-ot-shape-complex-indic-machine.rl"
1694 	{{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1695 	break;
1696 	case 4:
1697 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1698 	{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1699 	break;
1700 	case 5:
1701 #line 1 "NONE"
1702 	{	switch( act ) {
1703 	case 1:
1704 	{{p = ((te))-1;} found_syllable (consonant_syllable); }
1705 	break;
1706 	case 5:
1707 	{{p = ((te))-1;} found_syllable (broken_cluster); }
1708 	break;
1709 	case 6:
1710 	{{p = ((te))-1;} found_syllable (non_indic_cluster); }
1711 	break;
1712 	}
1713 	}
1714 	break;
1715 	case 8:
1716 #line 1 "NONE"
1717 	{te = p+1;}
1718 #line 88 "hb-ot-shape-complex-indic-machine.rl"
1719 	{act = 1;}
1720 	break;
1721 	case 6:
1722 #line 1 "NONE"
1723 	{te = p+1;}
1724 #line 92 "hb-ot-shape-complex-indic-machine.rl"
1725 	{act = 5;}
1726 	break;
1727 	case 13:
1728 #line 1 "NONE"
1729 	{te = p+1;}
1730 #line 93 "hb-ot-shape-complex-indic-machine.rl"
1731 	{act = 6;}
1732 	break;
1733 #line 1734 "hb-ot-shape-complex-indic-machine.hh"
1734 	}
1735 
1736 _again:
1737 	switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1738 	case 10:
1739 #line 1 "NONE"
1740 	{ts = 0;}
1741 	break;
1742 #line 1743 "hb-ot-shape-complex-indic-machine.hh"
1743 	}
1744 
1745 	if ( ++p != pe )
1746 		goto _resume;
1747 	_test_eof: {}
1748 	if ( p == eof )
1749 	{
1750 	if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1751 		_trans = _indic_syllable_machine_eof_trans[cs] - 1;
1752 		goto _eof_trans;
1753 	}
1754 	}
1755 
1756 	}
1757 
1758 #line 127 "hb-ot-shape-complex-indic-machine.rl"
1759 
1760 }
1761 
1762 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
1763