Home | History | Annotate | Download | only in src
      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, 5u, 7u, 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, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u,
     42 	7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u,
     43 	5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u,
     44 	4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u,
     45 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
     46 	1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u,
     47 	5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 4u, 4u, 6u, 6u,
     48 	16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
     49 	6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
     50 	4u, 14u, 4u, 14u, 4u, 14u, 1u, 16u, 13u, 13u, 5u, 7u, 5u, 7u, 7u, 7u,
     51 	5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
     52 	7u, 7u, 4u, 4u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
     53 	6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
     54 	4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
     55 	4u, 14u, 5u, 7u, 5u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 5u, 7u, 5u, 7u,
     56 	7u, 7u, 5u, 7u, 5u, 7u, 7u, 7u, 1u, 16u, 13u, 13u, 4u, 4u, 6u, 6u,
     57 	16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u, 6u, 6u, 16u, 16u, 4u, 7u,
     58 	6u, 6u, 16u, 16u, 1u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
     59 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
     60 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 8u, 14u,
     61 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
     62 	3u, 10u, 8u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
     63 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
     64 	6u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
     65 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
     66 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
     67 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
     68 	1u, 16u, 3u, 31u, 3u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
     69 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
     70 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 8u, 14u,
     71 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
     72 	3u, 10u, 8u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
     73 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
     74 	6u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
     75 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
     76 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
     77 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
     78 	4u, 14u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u,
     79 	4u, 31u, 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, 5u, 14u, 8u, 14u, 5u, 10u,
     81 	9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u,
     82 	8u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
     83 	4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 6u, 14u,
     84 	3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
     85 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
     86 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
     87 	1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
     88 	4u, 14u, 3u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
     89 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u,
     90 	3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 8u, 14u,
     91 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
     92 	3u, 10u, 8u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
     93 	3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
     94 	6u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u,
     95 	1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u,
     96 	1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u,
     97 	1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
     98 	1u, 16u, 3u, 31u, 1u, 31u, 3u, 31u, 1u, 31u, 4u, 14u, 1u, 16u, 3u, 31u,
     99 	3u, 31u, 4u, 31u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u,
    100 	5u, 10u, 3u, 31u, 3u, 31u, 1u, 16u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
    101 	4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 8u, 14u,
    102 	3u, 13u, 3u, 10u, 8u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 3u, 10u, 8u, 10u,
    103 	5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 0
    104 };
    105 
    106 static const char _indic_syllable_machine_key_spans[] = {
    107 	16, 1, 3, 3, 1, 3, 3, 1,
    108 	3, 3, 1, 3, 3, 1, 1, 1,
    109 	1, 4, 1, 1, 4, 1, 1, 4,
    110 	1, 1, 11, 11, 11, 11, 11, 11,
    111 	11, 11, 11, 11, 16, 1, 3, 3,
    112 	1, 3, 3, 1, 3, 3, 1, 3,
    113 	3, 1, 1, 1, 1, 4, 1, 1,
    114 	4, 1, 1, 4, 1, 1, 11, 11,
    115 	11, 11, 11, 11, 11, 11, 11, 11,
    116 	16, 1, 3, 3, 1, 3, 3, 1,
    117 	3, 3, 1, 3, 3, 1, 1, 1,
    118 	1, 4, 1, 1, 4, 1, 1, 4,
    119 	1, 1, 11, 11, 11, 11, 11, 11,
    120 	11, 11, 11, 16, 1, 3, 3, 1,
    121 	3, 3, 1, 3, 3, 1, 3, 3,
    122 	1, 1, 1, 1, 4, 1, 1, 4,
    123 	1, 1, 4, 1, 1, 11, 11, 11,
    124 	11, 11, 11, 11, 11, 11, 11, 11,
    125 	11, 3, 3, 3, 3, 1, 3, 3,
    126 	1, 3, 3, 1, 16, 1, 1, 1,
    127 	1, 4, 1, 1, 4, 1, 1, 4,
    128 	1, 1, 31, 29, 29, 28, 16, 29,
    129 	29, 28, 16, 29, 29, 28, 16, 29,
    130 	29, 28, 16, 29, 29, 28, 10, 7,
    131 	6, 2, 1, 2, 2, 1, 6, 11,
    132 	8, 3, 8, 11, 12, 12, 11, 10,
    133 	12, 11, 10, 12, 11, 10, 12, 11,
    134 	9, 12, 16, 28, 11, 29, 29, 16,
    135 	16, 16, 16, 16, 29, 29, 16, 16,
    136 	16, 16, 16, 29, 29, 16, 16, 16,
    137 	16, 16, 29, 29, 16, 16, 16, 16,
    138 	16, 29, 29, 29, 29, 28, 16, 29,
    139 	29, 28, 16, 29, 29, 28, 16, 29,
    140 	29, 28, 16, 29, 29, 28, 10, 7,
    141 	6, 2, 1, 2, 2, 1, 6, 11,
    142 	8, 3, 8, 11, 12, 12, 11, 10,
    143 	12, 11, 10, 12, 11, 10, 12, 11,
    144 	9, 12, 16, 28, 11, 29, 29, 16,
    145 	16, 16, 16, 16, 29, 29, 16, 16,
    146 	16, 16, 16, 29, 29, 16, 16, 16,
    147 	16, 16, 29, 29, 16, 16, 16, 16,
    148 	11, 16, 29, 29, 28, 16, 29, 29,
    149 	28, 16, 29, 29, 28, 16, 29, 29,
    150 	28, 16, 29, 29, 28, 10, 7, 6,
    151 	2, 1, 2, 2, 1, 6, 11, 8,
    152 	3, 8, 11, 12, 12, 11, 10, 12,
    153 	11, 10, 12, 11, 10, 12, 11, 9,
    154 	12, 16, 28, 11, 29, 29, 16, 16,
    155 	16, 16, 16, 29, 29, 16, 16, 16,
    156 	16, 16, 29, 29, 16, 16, 16, 16,
    157 	16, 29, 29, 16, 16, 16, 16, 16,
    158 	11, 29, 11, 29, 29, 28, 16, 29,
    159 	29, 28, 16, 29, 29, 28, 16, 29,
    160 	29, 28, 16, 29, 29, 28, 10, 7,
    161 	6, 2, 1, 2, 2, 1, 6, 11,
    162 	8, 3, 8, 11, 12, 12, 11, 10,
    163 	12, 11, 10, 12, 11, 10, 12, 11,
    164 	9, 12, 16, 28, 11, 29, 29, 16,
    165 	16, 16, 16, 16, 29, 29, 16, 16,
    166 	16, 16, 16, 29, 29, 16, 16, 16,
    167 	16, 16, 29, 29, 16, 16, 16, 16,
    168 	16, 29, 31, 29, 31, 11, 16, 29,
    169 	29, 28, 6, 2, 1, 2, 2, 1,
    170 	6, 29, 29, 16, 12, 11, 10, 12,
    171 	11, 10, 12, 11, 10, 12, 11, 7,
    172 	11, 8, 3, 8, 11, 16, 8, 3,
    173 	6, 2, 1, 2, 2, 1, 6
    174 };
    175 
    176 static const short _indic_syllable_machine_index_offsets[] = {
    177 	0, 17, 19, 23, 27, 29, 33, 37,
    178 	39, 43, 47, 49, 53, 57, 59, 61,
    179 	63, 65, 70, 72, 74, 79, 81, 83,
    180 	88, 90, 92, 104, 116, 128, 140, 152,
    181 	164, 176, 188, 200, 212, 229, 231, 235,
    182 	239, 241, 245, 249, 251, 255, 259, 261,
    183 	265, 269, 271, 273, 275, 277, 282, 284,
    184 	286, 291, 293, 295, 300, 302, 304, 316,
    185 	328, 340, 352, 364, 376, 388, 400, 412,
    186 	424, 441, 443, 447, 451, 453, 457, 461,
    187 	463, 467, 471, 473, 477, 481, 483, 485,
    188 	487, 489, 494, 496, 498, 503, 505, 507,
    189 	512, 514, 516, 528, 540, 552, 564, 576,
    190 	588, 600, 612, 624, 641, 643, 647, 651,
    191 	653, 657, 661, 663, 667, 671, 673, 677,
    192 	681, 683, 685, 687, 689, 694, 696, 698,
    193 	703, 705, 707, 712, 714, 716, 728, 740,
    194 	752, 764, 776, 788, 800, 812, 824, 836,
    195 	848, 860, 864, 868, 872, 876, 878, 882,
    196 	886, 888, 892, 896, 898, 915, 917, 919,
    197 	921, 923, 928, 930, 932, 937, 939, 941,
    198 	946, 948, 950, 982, 1012, 1042, 1071, 1088,
    199 	1118, 1148, 1177, 1194, 1224, 1254, 1283, 1300,
    200 	1330, 1360, 1389, 1406, 1436, 1466, 1495, 1506,
    201 	1514, 1521, 1524, 1526, 1529, 1532, 1534, 1541,
    202 	1553, 1562, 1566, 1575, 1587, 1600, 1613, 1625,
    203 	1636, 1649, 1661, 1672, 1685, 1697, 1708, 1721,
    204 	1733, 1743, 1756, 1773, 1802, 1814, 1844, 1874,
    205 	1891, 1908, 1925, 1942, 1959, 1989, 2019, 2036,
    206 	2053, 2070, 2087, 2104, 2134, 2164, 2181, 2198,
    207 	2215, 2232, 2249, 2279, 2309, 2326, 2343, 2360,
    208 	2377, 2394, 2424, 2454, 2484, 2514, 2543, 2560,
    209 	2590, 2620, 2649, 2666, 2696, 2726, 2755, 2772,
    210 	2802, 2832, 2861, 2878, 2908, 2938, 2967, 2978,
    211 	2986, 2993, 2996, 2998, 3001, 3004, 3006, 3013,
    212 	3025, 3034, 3038, 3047, 3059, 3072, 3085, 3097,
    213 	3108, 3121, 3133, 3144, 3157, 3169, 3180, 3193,
    214 	3205, 3215, 3228, 3245, 3274, 3286, 3316, 3346,
    215 	3363, 3380, 3397, 3414, 3431, 3461, 3491, 3508,
    216 	3525, 3542, 3559, 3576, 3606, 3636, 3653, 3670,
    217 	3687, 3704, 3721, 3751, 3781, 3798, 3815, 3832,
    218 	3849, 3861, 3878, 3908, 3938, 3967, 3984, 4014,
    219 	4044, 4073, 4090, 4120, 4150, 4179, 4196, 4226,
    220 	4256, 4285, 4302, 4332, 4362, 4391, 4402, 4410,
    221 	4417, 4420, 4422, 4425, 4428, 4430, 4437, 4449,
    222 	4458, 4462, 4471, 4483, 4496, 4509, 4521, 4532,
    223 	4545, 4557, 4568, 4581, 4593, 4604, 4617, 4629,
    224 	4639, 4652, 4669, 4698, 4710, 4740, 4770, 4787,
    225 	4804, 4821, 4838, 4855, 4885, 4915, 4932, 4949,
    226 	4966, 4983, 5000, 5030, 5060, 5077, 5094, 5111,
    227 	5128, 5145, 5175, 5205, 5222, 5239, 5256, 5273,
    228 	5290, 5302, 5332, 5344, 5374, 5404, 5433, 5450,
    229 	5480, 5510, 5539, 5556, 5586, 5616, 5645, 5662,
    230 	5692, 5722, 5751, 5768, 5798, 5828, 5857, 5868,
    231 	5876, 5883, 5886, 5888, 5891, 5894, 5896, 5903,
    232 	5915, 5924, 5928, 5937, 5949, 5962, 5975, 5987,
    233 	5998, 6011, 6023, 6034, 6047, 6059, 6070, 6083,
    234 	6095, 6105, 6118, 6135, 6164, 6176, 6206, 6236,
    235 	6253, 6270, 6287, 6304, 6321, 6351, 6381, 6398,
    236 	6415, 6432, 6449, 6466, 6496, 6526, 6543, 6560,
    237 	6577, 6594, 6611, 6641, 6671, 6688, 6705, 6722,
    238 	6739, 6756, 6786, 6818, 6848, 6880, 6892, 6909,
    239 	6939, 6969, 6998, 7005, 7008, 7010, 7013, 7016,
    240 	7018, 7025, 7055, 7085, 7102, 7115, 7127, 7138,
    241 	7151, 7163, 7174, 7187, 7199, 7210, 7223, 7235,
    242 	7243, 7255, 7264, 7268, 7277, 7289, 7306, 7315,
    243 	7319, 7326, 7329, 7331, 7334, 7337, 7339
    244 };
    245 
    246 static const short _indic_syllable_machine_indicies[] = {
    247 	1, 2, 0, 0, 0, 0, 0, 0,
    248 	0, 0, 0, 0, 0, 0, 0, 1,
    249 	0, 3, 0, 4, 4, 5, 0, 6,
    250 	6, 5, 0, 5, 0, 7, 7, 8,
    251 	0, 9, 9, 8, 0, 8, 0, 10,
    252 	10, 11, 0, 12, 12, 11, 0, 11,
    253 	0, 13, 13, 14, 0, 15, 15, 14,
    254 	0, 14, 0, 16, 0, 17, 0, 18,
    255 	0, 19, 13, 13, 14, 0, 20, 0,
    256 	21, 0, 22, 10, 10, 11, 0, 23,
    257 	0, 24, 0, 25, 7, 7, 8, 0,
    258 	26, 0, 27, 0, 28, 4, 4, 5,
    259 	0, 0, 0, 0, 0, 0, 28, 0,
    260 	28, 4, 4, 5, 0, 0, 0, 0,
    261 	0, 29, 28, 0, 30, 4, 4, 5,
    262 	0, 0, 0, 0, 0, 0, 30, 0,
    263 	30, 4, 4, 5, 0, 0, 0, 0,
    264 	0, 31, 30, 0, 32, 4, 4, 5,
    265 	0, 0, 0, 0, 0, 0, 32, 0,
    266 	32, 4, 4, 5, 0, 0, 0, 0,
    267 	0, 33, 32, 0, 34, 4, 4, 5,
    268 	0, 0, 0, 0, 0, 0, 34, 0,
    269 	34, 4, 4, 5, 0, 0, 0, 0,
    270 	0, 35, 34, 0, 36, 4, 4, 5,
    271 	0, 0, 0, 0, 0, 0, 36, 0,
    272 	36, 4, 4, 5, 0, 0, 0, 0,
    273 	0, 37, 36, 0, 39, 40, 38, 38,
    274 	38, 38, 38, 38, 38, 38, 38, 38,
    275 	38, 38, 38, 39, 38, 41, 38, 42,
    276 	42, 43, 38, 44, 44, 43, 38, 43,
    277 	38, 45, 45, 46, 38, 47, 47, 46,
    278 	38, 46, 38, 48, 48, 49, 38, 50,
    279 	50, 49, 38, 49, 38, 51, 51, 52,
    280 	38, 53, 53, 52, 38, 52, 38, 54,
    281 	38, 55, 38, 56, 38, 57, 51, 51,
    282 	52, 38, 58, 38, 59, 38, 60, 48,
    283 	48, 49, 38, 61, 38, 62, 38, 63,
    284 	45, 45, 46, 38, 64, 38, 65, 38,
    285 	66, 42, 42, 43, 38, 38, 38, 38,
    286 	38, 38, 66, 38, 66, 42, 42, 43,
    287 	38, 38, 38, 38, 38, 67, 66, 38,
    288 	68, 42, 42, 43, 38, 38, 38, 38,
    289 	38, 38, 68, 38, 68, 42, 42, 43,
    290 	38, 38, 38, 38, 38, 69, 68, 38,
    291 	70, 42, 42, 43, 38, 38, 38, 38,
    292 	38, 38, 70, 38, 70, 42, 42, 43,
    293 	38, 38, 38, 38, 38, 71, 70, 38,
    294 	72, 42, 42, 43, 38, 38, 38, 38,
    295 	38, 38, 72, 38, 72, 42, 42, 43,
    296 	38, 38, 38, 38, 38, 73, 72, 38,
    297 	74, 42, 42, 43, 38, 38, 38, 38,
    298 	38, 38, 74, 38, 74, 42, 42, 43,
    299 	38, 38, 38, 38, 38, 75, 74, 38,
    300 	77, 78, 76, 76, 76, 76, 76, 76,
    301 	76, 76, 76, 76, 76, 76, 76, 77,
    302 	76, 79, 76, 80, 80, 81, 76, 83,
    303 	83, 81, 82, 81, 82, 84, 84, 85,
    304 	76, 86, 86, 85, 76, 85, 76, 87,
    305 	87, 88, 76, 89, 89, 88, 76, 88,
    306 	76, 90, 90, 91, 76, 92, 92, 91,
    307 	76, 91, 76, 93, 76, 94, 76, 95,
    308 	76, 96, 90, 90, 91, 76, 97, 76,
    309 	98, 76, 99, 87, 87, 88, 76, 100,
    310 	76, 101, 76, 102, 84, 84, 85, 76,
    311 	103, 76, 104, 76, 105, 80, 80, 81,
    312 	76, 76, 76, 76, 76, 76, 105, 76,
    313 	105, 80, 80, 81, 76, 76, 76, 76,
    314 	76, 106, 105, 76, 107, 80, 80, 81,
    315 	76, 76, 76, 76, 76, 76, 107, 76,
    316 	107, 80, 80, 81, 76, 76, 76, 76,
    317 	76, 108, 107, 76, 109, 80, 80, 81,
    318 	76, 76, 76, 76, 76, 76, 109, 76,
    319 	109, 80, 80, 81, 76, 76, 76, 76,
    320 	76, 110, 109, 76, 111, 80, 80, 81,
    321 	82, 82, 82, 82, 82, 82, 111, 82,
    322 	111, 80, 80, 81, 76, 76, 76, 76,
    323 	76, 112, 111, 76, 113, 80, 80, 81,
    324 	76, 76, 76, 76, 76, 76, 113, 76,
    325 	115, 116, 114, 114, 114, 114, 114, 114,
    326 	114, 114, 114, 114, 114, 114, 114, 115,
    327 	114, 117, 114, 118, 118, 119, 114, 120,
    328 	120, 119, 114, 119, 114, 121, 121, 122,
    329 	114, 123, 123, 122, 114, 122, 114, 124,
    330 	124, 125, 114, 126, 126, 125, 114, 125,
    331 	114, 127, 127, 128, 114, 129, 129, 128,
    332 	114, 128, 114, 130, 114, 131, 114, 132,
    333 	114, 133, 127, 127, 128, 114, 134, 114,
    334 	135, 114, 136, 124, 124, 125, 114, 137,
    335 	114, 138, 114, 139, 121, 121, 122, 114,
    336 	140, 114, 141, 114, 142, 118, 118, 119,
    337 	114, 114, 114, 114, 114, 114, 142, 114,
    338 	142, 118, 118, 119, 114, 114, 114, 114,
    339 	114, 143, 142, 114, 144, 118, 118, 119,
    340 	114, 114, 114, 114, 114, 114, 144, 114,
    341 	144, 118, 118, 119, 114, 114, 114, 114,
    342 	114, 145, 144, 114, 146, 118, 118, 119,
    343 	114, 114, 114, 114, 114, 114, 146, 114,
    344 	146, 118, 118, 119, 114, 114, 114, 114,
    345 	114, 147, 146, 114, 148, 118, 118, 119,
    346 	114, 114, 114, 114, 114, 114, 148, 114,
    347 	148, 118, 118, 119, 114, 114, 114, 114,
    348 	114, 149, 148, 114, 150, 118, 118, 119,
    349 	114, 114, 114, 114, 114, 114, 150, 114,
    350 	150, 118, 118, 119, 114, 114, 114, 114,
    351 	114, 151, 150, 114, 113, 80, 80, 81,
    352 	76, 76, 76, 76, 76, 152, 113, 76,
    353 	111, 80, 80, 81, 0, 0, 0, 0,
    354 	0, 153, 111, 0, 154, 154, 155, 0,
    355 	6, 6, 155, 0, 156, 156, 157, 0,
    356 	158, 158, 157, 0, 157, 0, 159, 159,
    357 	160, 0, 161, 161, 160, 0, 160, 0,
    358 	162, 162, 163, 0, 164, 164, 163, 0,
    359 	163, 0, 165, 166, 0, 0, 0, 0,
    360 	0, 0, 0, 0, 0, 0, 0, 0,
    361 	0, 165, 0, 167, 0, 168, 0, 169,
    362 	0, 170, 0, 171, 162, 162, 163, 0,
    363 	172, 0, 173, 0, 174, 159, 159, 160,
    364 	0, 175, 0, 176, 0, 177, 156, 156,
    365 	157, 0, 178, 0, 179, 0, 181, 182,
    366 	183, 184, 185, 186, 81, 187, 188, 189,
    367 	190, 190, 152, 191, 192, 193, 194, 195,
    368 	180, 180, 180, 180, 180, 180, 180, 180,
    369 	180, 180, 180, 180, 196, 180, 198, 199,
    370 	200, 201, 5, 202, 203, 204, 197, 197,
    371 	37, 205, 197, 197, 206, 197, 197, 197,
    372 	197, 197, 197, 197, 197, 197, 197, 197,
    373 	197, 197, 207, 197, 208, 199, 209, 209,
    374 	5, 202, 203, 204, 197, 197, 197, 205,
    375 	197, 197, 206, 197, 197, 197, 197, 197,
    376 	197, 197, 197, 197, 197, 197, 197, 197,
    377 	207, 197, 199, 209, 209, 5, 202, 203,
    378 	204, 197, 197, 197, 205, 197, 197, 206,
    379 	197, 197, 197, 197, 197, 197, 197, 197,
    380 	197, 197, 197, 197, 197, 207, 197, 210,
    381 	197, 197, 197, 18, 211, 197, 202, 203,
    382 	204, 197, 197, 197, 212, 197, 210, 197,
    383 	213, 214, 215, 216, 5, 202, 203, 204,
    384 	197, 197, 35, 217, 197, 197, 206, 197,
    385 	197, 197, 197, 197, 197, 197, 197, 197,
    386 	197, 197, 197, 197, 207, 197, 218, 214,
    387 	219, 219, 5, 202, 203, 204, 197, 197,
    388 	197, 217, 197, 197, 206, 197, 197, 197,
    389 	197, 197, 197, 197, 197, 197, 197, 197,
    390 	197, 197, 207, 197, 214, 219, 219, 5,
    391 	202, 203, 204, 197, 197, 197, 217, 197,
    392 	197, 206, 197, 197, 197, 197, 197, 197,
    393 	197, 197, 197, 197, 197, 197, 197, 207,
    394 	197, 220, 197, 197, 197, 18, 221, 197,
    395 	202, 203, 204, 197, 197, 197, 212, 197,
    396 	220, 197, 222, 223, 224, 225, 5, 202,
    397 	203, 204, 197, 197, 33, 226, 197, 197,
    398 	206, 197, 197, 197, 197, 197, 197, 197,
    399 	197, 197, 197, 197, 197, 197, 207, 197,
    400 	227, 223, 228, 228, 5, 202, 203, 204,
    401 	197, 197, 197, 226, 197, 197, 206, 197,
    402 	197, 197, 197, 197, 197, 197, 197, 197,
    403 	197, 197, 197, 197, 207, 197, 223, 228,
    404 	228, 5, 202, 203, 204, 197, 197, 197,
    405 	226, 197, 197, 206, 197, 197, 197, 197,
    406 	197, 197, 197, 197, 197, 197, 197, 197,
    407 	197, 207, 197, 229, 197, 197, 197, 18,
    408 	230, 197, 202, 203, 204, 197, 197, 197,
    409 	212, 197, 229, 197, 231, 232, 233, 234,
    410 	5, 202, 203, 204, 197, 197, 31, 235,
    411 	197, 197, 206, 197, 197, 197, 197, 197,
    412 	197, 197, 197, 197, 197, 197, 197, 197,
    413 	207, 197, 236, 232, 237, 237, 5, 202,
    414 	203, 204, 197, 197, 197, 235, 197, 197,
    415 	206, 197, 197, 197, 197, 197, 197, 197,
    416 	197, 197, 197, 197, 197, 197, 207, 197,
    417 	232, 237, 237, 5, 202, 203, 204, 197,
    418 	197, 197, 235, 197, 197, 206, 197, 197,
    419 	197, 197, 197, 197, 197, 197, 197, 197,
    420 	197, 197, 197, 207, 197, 238, 197, 197,
    421 	197, 18, 239, 197, 202, 203, 204, 197,
    422 	197, 197, 212, 197, 238, 197, 240, 241,
    423 	242, 243, 5, 202, 203, 204, 197, 197,
    424 	29, 244, 197, 197, 206, 197, 197, 197,
    425 	197, 197, 197, 197, 197, 197, 197, 197,
    426 	197, 197, 207, 197, 245, 241, 246, 246,
    427 	5, 202, 203, 204, 197, 197, 197, 244,
    428 	197, 197, 206, 197, 197, 197, 197, 197,
    429 	197, 197, 197, 197, 197, 197, 197, 197,
    430 	207, 197, 241, 246, 246, 5, 202, 203,
    431 	204, 197, 197, 197, 244, 197, 197, 206,
    432 	197, 197, 197, 197, 197, 197, 197, 197,
    433 	197, 197, 197, 197, 197, 207, 197, 18,
    434 	247, 197, 202, 203, 204, 197, 197, 197,
    435 	212, 197, 202, 203, 204, 197, 197, 197,
    436 	212, 197, 248, 197, 197, 249, 203, 204,
    437 	197, 203, 204, 197, 250, 197, 203, 251,
    438 	197, 203, 252, 197, 203, 197, 248, 197,
    439 	197, 197, 203, 204, 197, 253, 197, 254,
    440 	255, 197, 202, 203, 204, 197, 197, 3,
    441 	197, 2, 197, 197, 197, 197, 202, 203,
    442 	204, 197, 202, 203, 204, 197, 253, 197,
    443 	197, 197, 197, 202, 203, 204, 197, 253,
    444 	197, 254, 197, 197, 202, 203, 204, 197,
    445 	197, 3, 197, 18, 197, 256, 256, 5,
    446 	202, 203, 204, 197, 197, 197, 212, 197,
    447 	257, 27, 258, 259, 8, 202, 203, 204,
    448 	197, 197, 197, 212, 197, 27, 258, 259,
    449 	8, 202, 203, 204, 197, 197, 197, 212,
    450 	197, 258, 258, 8, 202, 203, 204, 197,
    451 	197, 197, 212, 197, 260, 24, 261, 262,
    452 	11, 202, 203, 204, 197, 197, 197, 212,
    453 	197, 24, 261, 262, 11, 202, 203, 204,
    454 	197, 197, 197, 212, 197, 261, 261, 11,
    455 	202, 203, 204, 197, 197, 197, 212, 197,
    456 	263, 21, 264, 265, 14, 202, 203, 204,
    457 	197, 197, 197, 212, 197, 21, 264, 265,
    458 	14, 202, 203, 204, 197, 197, 197, 212,
    459 	197, 264, 264, 14, 202, 203, 204, 197,
    460 	197, 197, 212, 197, 266, 18, 197, 267,
    461 	197, 202, 203, 204, 197, 197, 197, 212,
    462 	197, 18, 197, 267, 197, 202, 203, 204,
    463 	197, 197, 197, 212, 197, 268, 197, 202,
    464 	203, 204, 197, 197, 197, 212, 197, 18,
    465 	197, 197, 197, 197, 202, 203, 204, 197,
    466 	197, 197, 212, 197, 1, 2, 197, 197,
    467 	18, 247, 197, 202, 203, 204, 197, 197,
    468 	197, 212, 197, 1, 197, 241, 246, 246,
    469 	5, 202, 203, 204, 197, 197, 197, 244,
    470 	197, 197, 197, 197, 197, 197, 197, 197,
    471 	197, 197, 197, 197, 197, 197, 197, 197,
    472 	207, 197, 241, 246, 246, 5, 202, 203,
    473 	204, 197, 197, 197, 244, 197, 240, 241,
    474 	246, 246, 5, 202, 203, 204, 197, 197,
    475 	197, 244, 197, 197, 206, 197, 197, 197,
    476 	197, 197, 197, 197, 197, 197, 197, 197,
    477 	197, 197, 207, 197, 240, 241, 242, 246,
    478 	5, 202, 203, 204, 197, 197, 29, 244,
    479 	197, 197, 206, 197, 197, 197, 197, 197,
    480 	197, 197, 197, 197, 197, 197, 197, 197,
    481 	207, 197, 238, 197, 269, 197, 256, 256,
    482 	5, 202, 203, 204, 197, 197, 197, 212,
    483 	197, 238, 197, 238, 197, 197, 197, 197,
    484 	197, 197, 202, 203, 204, 197, 197, 197,
    485 	212, 197, 238, 197, 238, 197, 197, 197,
    486 	197, 270, 197, 202, 203, 204, 197, 197,
    487 	197, 212, 197, 238, 197, 238, 197, 269,
    488 	197, 197, 197, 197, 202, 203, 204, 197,
    489 	197, 197, 212, 197, 238, 197, 238, 2,
    490 	197, 197, 18, 239, 197, 202, 203, 204,
    491 	197, 197, 197, 212, 197, 238, 197, 231,
    492 	232, 237, 237, 5, 202, 203, 204, 197,
    493 	197, 197, 235, 197, 197, 206, 197, 197,
    494 	197, 197, 197, 197, 197, 197, 197, 197,
    495 	197, 197, 197, 207, 197, 231, 232, 233,
    496 	237, 5, 202, 203, 204, 197, 197, 31,
    497 	235, 197, 197, 206, 197, 197, 197, 197,
    498 	197, 197, 197, 197, 197, 197, 197, 197,
    499 	197, 207, 197, 229, 197, 271, 197, 256,
    500 	256, 5, 202, 203, 204, 197, 197, 197,
    501 	212, 197, 229, 197, 229, 197, 197, 197,
    502 	197, 197, 197, 202, 203, 204, 197, 197,
    503 	197, 212, 197, 229, 197, 229, 197, 197,
    504 	197, 197, 272, 197, 202, 203, 204, 197,
    505 	197, 197, 212, 197, 229, 197, 229, 197,
    506 	271, 197, 197, 197, 197, 202, 203, 204,
    507 	197, 197, 197, 212, 197, 229, 197, 229,
    508 	2, 197, 197, 18, 230, 197, 202, 203,
    509 	204, 197, 197, 197, 212, 197, 229, 197,
    510 	222, 223, 228, 228, 5, 202, 203, 204,
    511 	197, 197, 197, 226, 197, 197, 206, 197,
    512 	197, 197, 197, 197, 197, 197, 197, 197,
    513 	197, 197, 197, 197, 207, 197, 222, 223,
    514 	224, 228, 5, 202, 203, 204, 197, 197,
    515 	33, 226, 197, 197, 206, 197, 197, 197,
    516 	197, 197, 197, 197, 197, 197, 197, 197,
    517 	197, 197, 207, 197, 220, 197, 273, 197,
    518 	256, 256, 5, 202, 203, 204, 197, 197,
    519 	197, 212, 197, 220, 197, 220, 197, 197,
    520 	197, 197, 197, 197, 202, 203, 204, 197,
    521 	197, 197, 212, 197, 220, 197, 220, 197,
    522 	197, 197, 197, 274, 197, 202, 203, 204,
    523 	197, 197, 197, 212, 197, 220, 197, 220,
    524 	197, 273, 197, 197, 197, 197, 202, 203,
    525 	204, 197, 197, 197, 212, 197, 220, 197,
    526 	220, 2, 197, 197, 18, 221, 197, 202,
    527 	203, 204, 197, 197, 197, 212, 197, 220,
    528 	197, 213, 214, 219, 219, 5, 202, 203,
    529 	204, 197, 197, 197, 217, 197, 197, 206,
    530 	197, 197, 197, 197, 197, 197, 197, 197,
    531 	197, 197, 197, 197, 197, 207, 197, 213,
    532 	214, 215, 219, 5, 202, 203, 204, 197,
    533 	197, 35, 217, 197, 197, 206, 197, 197,
    534 	197, 197, 197, 197, 197, 197, 197, 197,
    535 	197, 197, 197, 207, 197, 210, 197, 275,
    536 	197, 256, 256, 5, 202, 203, 204, 197,
    537 	197, 197, 212, 197, 210, 197, 210, 197,
    538 	197, 197, 197, 197, 197, 202, 203, 204,
    539 	197, 197, 197, 212, 197, 210, 197, 210,
    540 	197, 197, 197, 197, 276, 197, 202, 203,
    541 	204, 197, 197, 197, 212, 197, 210, 197,
    542 	210, 197, 275, 197, 197, 197, 197, 202,
    543 	203, 204, 197, 197, 197, 212, 197, 210,
    544 	197, 210, 2, 197, 197, 18, 211, 197,
    545 	202, 203, 204, 197, 197, 197, 212, 197,
    546 	210, 197, 198, 199, 209, 209, 5, 202,
    547 	203, 204, 197, 197, 197, 205, 197, 197,
    548 	206, 197, 197, 197, 197, 197, 197, 197,
    549 	197, 197, 197, 197, 197, 197, 207, 197,
    550 	198, 199, 200, 209, 5, 202, 203, 204,
    551 	197, 197, 37, 205, 197, 197, 206, 197,
    552 	197, 197, 197, 197, 197, 197, 197, 197,
    553 	197, 197, 197, 197, 207, 197, 278, 279,
    554 	280, 281, 43, 282, 283, 284, 277, 277,
    555 	75, 285, 277, 277, 286, 277, 277, 277,
    556 	277, 277, 277, 277, 277, 277, 277, 277,
    557 	277, 277, 287, 277, 288, 279, 289, 281,
    558 	43, 282, 283, 284, 277, 277, 277, 285,
    559 	277, 277, 286, 277, 277, 277, 277, 277,
    560 	277, 277, 277, 277, 277, 277, 277, 277,
    561 	287, 277, 279, 289, 281, 43, 282, 283,
    562 	284, 277, 277, 277, 285, 277, 277, 286,
    563 	277, 277, 277, 277, 277, 277, 277, 277,
    564 	277, 277, 277, 277, 277, 287, 277, 290,
    565 	277, 277, 277, 56, 291, 277, 282, 283,
    566 	284, 277, 277, 277, 292, 277, 290, 277,
    567 	293, 294, 295, 296, 43, 282, 283, 284,
    568 	277, 277, 73, 297, 277, 277, 286, 277,
    569 	277, 277, 277, 277, 277, 277, 277, 277,
    570 	277, 277, 277, 277, 287, 277, 298, 294,
    571 	299, 299, 43, 282, 283, 284, 277, 277,
    572 	277, 297, 277, 277, 286, 277, 277, 277,
    573 	277, 277, 277, 277, 277, 277, 277, 277,
    574 	277, 277, 287, 277, 294, 299, 299, 43,
    575 	282, 283, 284, 277, 277, 277, 297, 277,
    576 	277, 286, 277, 277, 277, 277, 277, 277,
    577 	277, 277, 277, 277, 277, 277, 277, 287,
    578 	277, 300, 277, 277, 277, 56, 301, 277,
    579 	282, 283, 284, 277, 277, 277, 292, 277,
    580 	300, 277, 302, 303, 304, 305, 43, 282,
    581 	283, 284, 277, 277, 71, 306, 277, 277,
    582 	286, 277, 277, 277, 277, 277, 277, 277,
    583 	277, 277, 277, 277, 277, 277, 287, 277,
    584 	307, 303, 308, 308, 43, 282, 283, 284,
    585 	277, 277, 277, 306, 277, 277, 286, 277,
    586 	277, 277, 277, 277, 277, 277, 277, 277,
    587 	277, 277, 277, 277, 287, 277, 303, 308,
    588 	308, 43, 282, 283, 284, 277, 277, 277,
    589 	306, 277, 277, 286, 277, 277, 277, 277,
    590 	277, 277, 277, 277, 277, 277, 277, 277,
    591 	277, 287, 277, 309, 277, 277, 277, 56,
    592 	310, 277, 282, 283, 284, 277, 277, 277,
    593 	292, 277, 309, 277, 311, 312, 313, 314,
    594 	43, 282, 283, 284, 277, 277, 69, 315,
    595 	277, 277, 286, 277, 277, 277, 277, 277,
    596 	277, 277, 277, 277, 277, 277, 277, 277,
    597 	287, 277, 316, 312, 317, 317, 43, 282,
    598 	283, 284, 277, 277, 277, 315, 277, 277,
    599 	286, 277, 277, 277, 277, 277, 277, 277,
    600 	277, 277, 277, 277, 277, 277, 287, 277,
    601 	312, 317, 317, 43, 282, 283, 284, 277,
    602 	277, 277, 315, 277, 277, 286, 277, 277,
    603 	277, 277, 277, 277, 277, 277, 277, 277,
    604 	277, 277, 277, 287, 277, 318, 277, 277,
    605 	277, 56, 319, 277, 282, 283, 284, 277,
    606 	277, 277, 292, 277, 318, 277, 320, 321,
    607 	322, 323, 43, 282, 283, 284, 277, 277,
    608 	67, 324, 277, 277, 286, 277, 277, 277,
    609 	277, 277, 277, 277, 277, 277, 277, 277,
    610 	277, 277, 287, 277, 325, 321, 326, 326,
    611 	43, 282, 283, 284, 277, 277, 277, 324,
    612 	277, 277, 286, 277, 277, 277, 277, 277,
    613 	277, 277, 277, 277, 277, 277, 277, 277,
    614 	287, 277, 321, 326, 326, 43, 282, 283,
    615 	284, 277, 277, 277, 324, 277, 277, 286,
    616 	277, 277, 277, 277, 277, 277, 277, 277,
    617 	277, 277, 277, 277, 277, 287, 277, 56,
    618 	327, 277, 282, 283, 284, 277, 277, 277,
    619 	292, 277, 282, 283, 284, 277, 277, 277,
    620 	292, 277, 328, 277, 277, 329, 283, 284,
    621 	277, 283, 284, 277, 330, 277, 283, 331,
    622 	277, 283, 332, 277, 283, 277, 328, 277,
    623 	277, 277, 283, 284, 277, 333, 277, 334,
    624 	335, 277, 282, 283, 284, 277, 277, 41,
    625 	277, 40, 277, 277, 277, 277, 282, 283,
    626 	284, 277, 282, 283, 284, 277, 333, 277,
    627 	277, 277, 277, 282, 283, 284, 277, 333,
    628 	277, 334, 277, 277, 282, 283, 284, 277,
    629 	277, 41, 277, 56, 277, 336, 336, 43,
    630 	282, 283, 284, 277, 277, 277, 292, 277,
    631 	337, 65, 338, 339, 46, 282, 283, 284,
    632 	277, 277, 277, 292, 277, 65, 338, 339,
    633 	46, 282, 283, 284, 277, 277, 277, 292,
    634 	277, 338, 338, 46, 282, 283, 284, 277,
    635 	277, 277, 292, 277, 340, 62, 341, 342,
    636 	49, 282, 283, 284, 277, 277, 277, 292,
    637 	277, 62, 341, 342, 49, 282, 283, 284,
    638 	277, 277, 277, 292, 277, 341, 341, 49,
    639 	282, 283, 284, 277, 277, 277, 292, 277,
    640 	343, 59, 344, 345, 52, 282, 283, 284,
    641 	277, 277, 277, 292, 277, 59, 344, 345,
    642 	52, 282, 283, 284, 277, 277, 277, 292,
    643 	277, 344, 344, 52, 282, 283, 284, 277,
    644 	277, 277, 292, 277, 346, 56, 277, 347,
    645 	277, 282, 283, 284, 277, 277, 277, 292,
    646 	277, 56, 277, 347, 277, 282, 283, 284,
    647 	277, 277, 277, 292, 277, 348, 277, 282,
    648 	283, 284, 277, 277, 277, 292, 277, 56,
    649 	277, 277, 277, 277, 282, 283, 284, 277,
    650 	277, 277, 292, 277, 39, 40, 277, 277,
    651 	56, 327, 277, 282, 283, 284, 277, 277,
    652 	277, 292, 277, 39, 277, 321, 326, 326,
    653 	43, 282, 283, 284, 277, 277, 277, 324,
    654 	277, 277, 277, 277, 277, 277, 277, 277,
    655 	277, 277, 277, 277, 277, 277, 277, 277,
    656 	287, 277, 321, 326, 326, 43, 282, 283,
    657 	284, 277, 277, 277, 324, 277, 320, 321,
    658 	326, 326, 43, 282, 283, 284, 277, 277,
    659 	277, 324, 277, 277, 286, 277, 277, 277,
    660 	277, 277, 277, 277, 277, 277, 277, 277,
    661 	277, 277, 287, 277, 320, 321, 322, 326,
    662 	43, 282, 283, 284, 277, 277, 67, 324,
    663 	277, 277, 286, 277, 277, 277, 277, 277,
    664 	277, 277, 277, 277, 277, 277, 277, 277,
    665 	287, 277, 318, 277, 349, 277, 336, 336,
    666 	43, 282, 283, 284, 277, 277, 277, 292,
    667 	277, 318, 277, 318, 277, 277, 277, 277,
    668 	277, 277, 282, 283, 284, 277, 277, 277,
    669 	292, 277, 318, 277, 318, 277, 277, 277,
    670 	277, 350, 277, 282, 283, 284, 277, 277,
    671 	277, 292, 277, 318, 277, 318, 277, 349,
    672 	277, 277, 277, 277, 282, 283, 284, 277,
    673 	277, 277, 292, 277, 318, 277, 318, 40,
    674 	277, 277, 56, 319, 277, 282, 283, 284,
    675 	277, 277, 277, 292, 277, 318, 277, 311,
    676 	312, 317, 317, 43, 282, 283, 284, 277,
    677 	277, 277, 315, 277, 277, 286, 277, 277,
    678 	277, 277, 277, 277, 277, 277, 277, 277,
    679 	277, 277, 277, 287, 277, 311, 312, 313,
    680 	317, 43, 282, 283, 284, 277, 277, 69,
    681 	315, 277, 277, 286, 277, 277, 277, 277,
    682 	277, 277, 277, 277, 277, 277, 277, 277,
    683 	277, 287, 277, 309, 277, 351, 277, 336,
    684 	336, 43, 282, 283, 284, 277, 277, 277,
    685 	292, 277, 309, 277, 309, 277, 277, 277,
    686 	277, 277, 277, 282, 283, 284, 277, 277,
    687 	277, 292, 277, 309, 277, 309, 277, 277,
    688 	277, 277, 352, 277, 282, 283, 284, 277,
    689 	277, 277, 292, 277, 309, 277, 309, 277,
    690 	351, 277, 277, 277, 277, 282, 283, 284,
    691 	277, 277, 277, 292, 277, 309, 277, 309,
    692 	40, 277, 277, 56, 310, 277, 282, 283,
    693 	284, 277, 277, 277, 292, 277, 309, 277,
    694 	302, 303, 308, 308, 43, 282, 283, 284,
    695 	277, 277, 277, 306, 277, 277, 286, 277,
    696 	277, 277, 277, 277, 277, 277, 277, 277,
    697 	277, 277, 277, 277, 287, 277, 302, 303,
    698 	304, 308, 43, 282, 283, 284, 277, 277,
    699 	71, 306, 277, 277, 286, 277, 277, 277,
    700 	277, 277, 277, 277, 277, 277, 277, 277,
    701 	277, 277, 287, 277, 300, 277, 353, 277,
    702 	336, 336, 43, 282, 283, 284, 277, 277,
    703 	277, 292, 277, 300, 277, 300, 277, 277,
    704 	277, 277, 277, 277, 282, 283, 284, 277,
    705 	277, 277, 292, 277, 300, 277, 300, 277,
    706 	277, 277, 277, 354, 277, 282, 283, 284,
    707 	277, 277, 277, 292, 277, 300, 277, 300,
    708 	277, 353, 277, 277, 277, 277, 282, 283,
    709 	284, 277, 277, 277, 292, 277, 300, 277,
    710 	300, 40, 277, 277, 56, 301, 277, 282,
    711 	283, 284, 277, 277, 277, 292, 277, 300,
    712 	277, 293, 294, 299, 299, 43, 282, 283,
    713 	284, 277, 277, 277, 297, 277, 277, 286,
    714 	277, 277, 277, 277, 277, 277, 277, 277,
    715 	277, 277, 277, 277, 277, 287, 277, 293,
    716 	294, 295, 299, 43, 282, 283, 284, 277,
    717 	277, 73, 297, 277, 277, 286, 277, 277,
    718 	277, 277, 277, 277, 277, 277, 277, 277,
    719 	277, 277, 277, 287, 277, 290, 277, 355,
    720 	277, 336, 336, 43, 282, 283, 284, 277,
    721 	277, 277, 292, 277, 290, 277, 290, 277,
    722 	277, 277, 277, 277, 277, 282, 283, 284,
    723 	277, 277, 277, 292, 277, 290, 277, 290,
    724 	277, 277, 277, 277, 356, 277, 282, 283,
    725 	284, 277, 277, 277, 292, 277, 290, 277,
    726 	290, 277, 355, 277, 277, 277, 277, 282,
    727 	283, 284, 277, 277, 277, 292, 277, 290,
    728 	277, 74, 42, 42, 43, 277, 277, 277,
    729 	277, 277, 277, 74, 277, 290, 40, 277,
    730 	277, 56, 291, 277, 282, 283, 284, 277,
    731 	277, 277, 292, 277, 290, 277, 278, 279,
    732 	289, 281, 43, 282, 283, 284, 277, 277,
    733 	277, 285, 277, 277, 286, 277, 277, 277,
    734 	277, 277, 277, 277, 277, 277, 277, 277,
    735 	277, 277, 287, 277, 358, 184, 359, 359,
    736 	81, 187, 188, 189, 357, 357, 357, 191,
    737 	357, 357, 194, 357, 357, 357, 357, 357,
    738 	357, 357, 357, 357, 357, 357, 357, 357,
    739 	196, 357, 184, 359, 359, 81, 187, 188,
    740 	189, 357, 357, 357, 191, 357, 357, 194,
    741 	357, 357, 357, 357, 357, 357, 357, 357,
    742 	357, 357, 357, 357, 357, 196, 357, 360,
    743 	357, 357, 357, 95, 361, 357, 187, 188,
    744 	189, 357, 357, 357, 362, 357, 360, 357,
    745 	363, 364, 365, 366, 81, 187, 188, 189,
    746 	357, 357, 112, 367, 357, 357, 194, 357,
    747 	357, 357, 357, 357, 357, 357, 357, 357,
    748 	357, 357, 357, 357, 196, 357, 368, 364,
    749 	369, 369, 81, 187, 188, 189, 357, 357,
    750 	357, 367, 357, 357, 194, 357, 357, 357,
    751 	357, 357, 357, 357, 357, 357, 357, 357,
    752 	357, 357, 196, 357, 364, 369, 369, 81,
    753 	187, 188, 189, 357, 357, 357, 367, 357,
    754 	357, 194, 357, 357, 357, 357, 357, 357,
    755 	357, 357, 357, 357, 357, 357, 357, 196,
    756 	357, 370, 357, 357, 357, 95, 371, 357,
    757 	187, 188, 189, 357, 357, 357, 362, 357,
    758 	370, 357, 372, 373, 374, 375, 81, 187,
    759 	188, 189, 357, 357, 110, 376, 357, 357,
    760 	194, 357, 357, 357, 357, 357, 357, 357,
    761 	357, 357, 357, 357, 357, 357, 196, 357,
    762 	377, 373, 378, 378, 81, 187, 188, 189,
    763 	357, 357, 357, 376, 357, 357, 194, 357,
    764 	357, 357, 357, 357, 357, 357, 357, 357,
    765 	357, 357, 357, 357, 196, 357, 373, 378,
    766 	378, 81, 187, 188, 189, 357, 357, 357,
    767 	376, 357, 357, 194, 357, 357, 357, 357,
    768 	357, 357, 357, 357, 357, 357, 357, 357,
    769 	357, 196, 357, 379, 357, 357, 357, 95,
    770 	380, 357, 187, 188, 189, 357, 357, 357,
    771 	362, 357, 379, 357, 381, 382, 383, 384,
    772 	81, 187, 188, 189, 357, 357, 108, 385,
    773 	357, 357, 194, 357, 357, 357, 357, 357,
    774 	357, 357, 357, 357, 357, 357, 357, 357,
    775 	196, 357, 386, 382, 387, 387, 81, 187,
    776 	188, 189, 357, 357, 357, 385, 357, 357,
    777 	194, 357, 357, 357, 357, 357, 357, 357,
    778 	357, 357, 357, 357, 357, 357, 196, 357,
    779 	382, 387, 387, 81, 187, 188, 189, 357,
    780 	357, 357, 385, 357, 357, 194, 357, 357,
    781 	357, 357, 357, 357, 357, 357, 357, 357,
    782 	357, 357, 357, 196, 357, 388, 357, 357,
    783 	357, 95, 389, 357, 187, 188, 189, 357,
    784 	357, 357, 362, 357, 388, 357, 390, 391,
    785 	392, 393, 81, 187, 188, 189, 357, 357,
    786 	106, 394, 357, 357, 194, 357, 357, 357,
    787 	357, 357, 357, 357, 357, 357, 357, 357,
    788 	357, 357, 196, 357, 395, 391, 396, 396,
    789 	81, 187, 188, 189, 357, 357, 357, 394,
    790 	357, 357, 194, 357, 357, 357, 357, 357,
    791 	357, 357, 357, 357, 357, 357, 357, 357,
    792 	196, 357, 391, 396, 396, 81, 187, 188,
    793 	189, 357, 357, 357, 394, 357, 357, 194,
    794 	357, 357, 357, 357, 357, 357, 357, 357,
    795 	357, 357, 357, 357, 357, 196, 357, 95,
    796 	397, 357, 187, 188, 189, 357, 357, 357,
    797 	362, 357, 187, 188, 189, 357, 357, 357,
    798 	362, 357, 398, 357, 357, 399, 188, 189,
    799 	357, 188, 189, 357, 400, 357, 188, 401,
    800 	357, 188, 402, 357, 188, 357, 398, 357,
    801 	357, 357, 188, 189, 357, 403, 357, 404,
    802 	405, 357, 187, 188, 189, 357, 357, 79,
    803 	357, 78, 357, 357, 357, 357, 187, 188,
    804 	189, 357, 187, 188, 189, 357, 403, 357,
    805 	357, 357, 357, 187, 188, 189, 357, 403,
    806 	357, 404, 357, 357, 187, 188, 189, 357,
    807 	357, 79, 357, 95, 357, 406, 406, 81,
    808 	187, 188, 189, 357, 357, 357, 362, 357,
    809 	407, 104, 408, 409, 85, 187, 188, 189,
    810 	357, 357, 357, 362, 357, 104, 408, 409,
    811 	85, 187, 188, 189, 357, 357, 357, 362,
    812 	357, 408, 408, 85, 187, 188, 189, 357,
    813 	357, 357, 362, 357, 410, 101, 411, 412,
    814 	88, 187, 188, 189, 357, 357, 357, 362,
    815 	357, 101, 411, 412, 88, 187, 188, 189,
    816 	357, 357, 357, 362, 357, 411, 411, 88,
    817 	187, 188, 189, 357, 357, 357, 362, 357,
    818 	413, 98, 414, 415, 91, 187, 188, 189,
    819 	357, 357, 357, 362, 357, 98, 414, 415,
    820 	91, 187, 188, 189, 357, 357, 357, 362,
    821 	357, 414, 414, 91, 187, 188, 189, 357,
    822 	357, 357, 362, 357, 416, 95, 357, 417,
    823 	357, 187, 188, 189, 357, 357, 357, 362,
    824 	357, 95, 357, 417, 357, 187, 188, 189,
    825 	357, 357, 357, 362, 357, 418, 357, 187,
    826 	188, 189, 357, 357, 357, 362, 357, 95,
    827 	357, 357, 357, 357, 187, 188, 189, 357,
    828 	357, 357, 362, 357, 77, 78, 357, 357,
    829 	95, 397, 357, 187, 188, 189, 357, 357,
    830 	357, 362, 357, 77, 357, 391, 396, 396,
    831 	81, 187, 188, 189, 357, 357, 357, 394,
    832 	357, 357, 357, 357, 357, 357, 357, 357,
    833 	357, 357, 357, 357, 357, 357, 357, 357,
    834 	196, 357, 391, 396, 396, 81, 187, 188,
    835 	189, 357, 357, 357, 394, 357, 390, 391,
    836 	396, 396, 81, 187, 188, 189, 357, 357,
    837 	357, 394, 357, 357, 194, 357, 357, 357,
    838 	357, 357, 357, 357, 357, 357, 357, 357,
    839 	357, 357, 196, 357, 390, 391, 392, 396,
    840 	81, 187, 188, 189, 357, 357, 106, 394,
    841 	357, 357, 194, 357, 357, 357, 357, 357,
    842 	357, 357, 357, 357, 357, 357, 357, 357,
    843 	196, 357, 388, 357, 419, 357, 406, 406,
    844 	81, 187, 188, 189, 357, 357, 357, 362,
    845 	357, 388, 357, 388, 357, 357, 357, 357,
    846 	357, 357, 187, 188, 189, 357, 357, 357,
    847 	362, 357, 388, 357, 388, 357, 357, 357,
    848 	357, 420, 357, 187, 188, 189, 357, 357,
    849 	357, 362, 357, 388, 357, 388, 357, 419,
    850 	357, 357, 357, 357, 187, 188, 189, 357,
    851 	357, 357, 362, 357, 388, 357, 388, 78,
    852 	357, 357, 95, 389, 357, 187, 188, 189,
    853 	357, 357, 357, 362, 357, 388, 357, 381,
    854 	382, 387, 387, 81, 187, 188, 189, 357,
    855 	357, 357, 385, 357, 357, 194, 357, 357,
    856 	357, 357, 357, 357, 357, 357, 357, 357,
    857 	357, 357, 357, 196, 357, 381, 382, 383,
    858 	387, 81, 187, 188, 189, 357, 357, 108,
    859 	385, 357, 357, 194, 357, 357, 357, 357,
    860 	357, 357, 357, 357, 357, 357, 357, 357,
    861 	357, 196, 357, 379, 357, 421, 357, 406,
    862 	406, 81, 187, 188, 189, 357, 357, 357,
    863 	362, 357, 379, 357, 379, 357, 357, 357,
    864 	357, 357, 357, 187, 188, 189, 357, 357,
    865 	357, 362, 357, 379, 357, 379, 357, 357,
    866 	357, 357, 422, 357, 187, 188, 189, 357,
    867 	357, 357, 362, 357, 379, 357, 379, 357,
    868 	421, 357, 357, 357, 357, 187, 188, 189,
    869 	357, 357, 357, 362, 357, 379, 357, 379,
    870 	78, 357, 357, 95, 380, 357, 187, 188,
    871 	189, 357, 357, 357, 362, 357, 379, 357,
    872 	372, 373, 378, 378, 81, 187, 188, 189,
    873 	357, 357, 357, 376, 357, 357, 194, 357,
    874 	357, 357, 357, 357, 357, 357, 357, 357,
    875 	357, 357, 357, 357, 196, 357, 372, 373,
    876 	374, 378, 81, 187, 188, 189, 357, 357,
    877 	110, 376, 357, 357, 194, 357, 357, 357,
    878 	357, 357, 357, 357, 357, 357, 357, 357,
    879 	357, 357, 196, 357, 370, 357, 423, 357,
    880 	406, 406, 81, 187, 188, 189, 357, 357,
    881 	357, 362, 357, 370, 357, 370, 357, 357,
    882 	357, 357, 357, 357, 187, 188, 189, 357,
    883 	357, 357, 362, 357, 370, 357, 370, 357,
    884 	357, 357, 357, 424, 357, 187, 188, 189,
    885 	357, 357, 357, 362, 357, 370, 357, 370,
    886 	357, 423, 357, 357, 357, 357, 187, 188,
    887 	189, 357, 357, 357, 362, 357, 370, 357,
    888 	370, 78, 357, 357, 95, 371, 357, 187,
    889 	188, 189, 357, 357, 357, 362, 357, 370,
    890 	357, 363, 364, 369, 369, 81, 187, 188,
    891 	189, 357, 357, 357, 367, 357, 357, 194,
    892 	357, 357, 357, 357, 357, 357, 357, 357,
    893 	357, 357, 357, 357, 357, 196, 357, 363,
    894 	364, 365, 369, 81, 187, 188, 189, 357,
    895 	357, 112, 367, 357, 357, 194, 357, 357,
    896 	357, 357, 357, 357, 357, 357, 357, 357,
    897 	357, 357, 357, 196, 357, 360, 357, 425,
    898 	357, 406, 406, 81, 187, 188, 189, 357,
    899 	357, 357, 362, 357, 360, 357, 360, 357,
    900 	357, 357, 357, 357, 357, 187, 188, 189,
    901 	357, 357, 357, 362, 357, 360, 357, 360,
    902 	357, 357, 357, 357, 426, 357, 187, 188,
    903 	189, 357, 357, 357, 362, 357, 360, 357,
    904 	360, 357, 425, 357, 357, 357, 357, 187,
    905 	188, 189, 357, 357, 357, 362, 357, 360,
    906 	357, 360, 78, 357, 357, 95, 361, 357,
    907 	187, 188, 189, 357, 357, 357, 362, 357,
    908 	360, 357, 113, 80, 80, 81, 427, 427,
    909 	427, 427, 427, 152, 113, 427, 183, 184,
    910 	359, 359, 81, 187, 188, 189, 357, 357,
    911 	357, 191, 357, 357, 194, 357, 357, 357,
    912 	357, 357, 357, 357, 357, 357, 357, 357,
    913 	357, 357, 196, 357, 113, 80, 80, 81,
    914 	427, 427, 427, 427, 427, 427, 113, 427,
    915 	429, 430, 431, 432, 119, 433, 434, 435,
    916 	428, 428, 151, 436, 428, 428, 437, 428,
    917 	428, 428, 428, 428, 428, 428, 428, 428,
    918 	428, 428, 428, 428, 438, 428, 439, 430,
    919 	432, 432, 119, 433, 434, 435, 428, 428,
    920 	428, 436, 428, 428, 437, 428, 428, 428,
    921 	428, 428, 428, 428, 428, 428, 428, 428,
    922 	428, 428, 438, 428, 430, 432, 432, 119,
    923 	433, 434, 435, 428, 428, 428, 436, 428,
    924 	428, 437, 428, 428, 428, 428, 428, 428,
    925 	428, 428, 428, 428, 428, 428, 428, 438,
    926 	428, 440, 428, 428, 428, 132, 441, 428,
    927 	433, 434, 435, 428, 428, 428, 442, 428,
    928 	440, 428, 443, 444, 445, 446, 119, 433,
    929 	434, 435, 428, 428, 149, 447, 428, 428,
    930 	437, 428, 428, 428, 428, 428, 428, 428,
    931 	428, 428, 428, 428, 428, 428, 438, 428,
    932 	448, 444, 449, 449, 119, 433, 434, 435,
    933 	428, 428, 428, 447, 428, 428, 437, 428,
    934 	428, 428, 428, 428, 428, 428, 428, 428,
    935 	428, 428, 428, 428, 438, 428, 444, 449,
    936 	449, 119, 433, 434, 435, 428, 428, 428,
    937 	447, 428, 428, 437, 428, 428, 428, 428,
    938 	428, 428, 428, 428, 428, 428, 428, 428,
    939 	428, 438, 428, 450, 428, 428, 428, 132,
    940 	451, 428, 433, 434, 435, 428, 428, 428,
    941 	442, 428, 450, 428, 452, 453, 454, 455,
    942 	119, 433, 434, 435, 428, 428, 147, 456,
    943 	428, 428, 437, 428, 428, 428, 428, 428,
    944 	428, 428, 428, 428, 428, 428, 428, 428,
    945 	438, 428, 457, 453, 458, 458, 119, 433,
    946 	434, 435, 428, 428, 428, 456, 428, 428,
    947 	437, 428, 428, 428, 428, 428, 428, 428,
    948 	428, 428, 428, 428, 428, 428, 438, 428,
    949 	453, 458, 458, 119, 433, 434, 435, 428,
    950 	428, 428, 456, 428, 428, 437, 428, 428,
    951 	428, 428, 428, 428, 428, 428, 428, 428,
    952 	428, 428, 428, 438, 428, 459, 428, 428,
    953 	428, 132, 460, 428, 433, 434, 435, 428,
    954 	428, 428, 442, 428, 459, 428, 461, 462,
    955 	463, 464, 119, 433, 434, 435, 428, 428,
    956 	145, 465, 428, 428, 437, 428, 428, 428,
    957 	428, 428, 428, 428, 428, 428, 428, 428,
    958 	428, 428, 438, 428, 466, 462, 467, 467,
    959 	119, 433, 434, 435, 428, 428, 428, 465,
    960 	428, 428, 437, 428, 428, 428, 428, 428,
    961 	428, 428, 428, 428, 428, 428, 428, 428,
    962 	438, 428, 462, 467, 467, 119, 433, 434,
    963 	435, 428, 428, 428, 465, 428, 428, 437,
    964 	428, 428, 428, 428, 428, 428, 428, 428,
    965 	428, 428, 428, 428, 428, 438, 428, 468,
    966 	428, 428, 428, 132, 469, 428, 433, 434,
    967 	435, 428, 428, 428, 442, 428, 468, 428,
    968 	470, 471, 472, 473, 119, 433, 434, 435,
    969 	428, 428, 143, 474, 428, 428, 437, 428,
    970 	428, 428, 428, 428, 428, 428, 428, 428,
    971 	428, 428, 428, 428, 438, 428, 475, 471,
    972 	476, 476, 119, 433, 434, 435, 428, 428,
    973 	428, 474, 428, 428, 437, 428, 428, 428,
    974 	428, 428, 428, 428, 428, 428, 428, 428,
    975 	428, 428, 438, 428, 471, 476, 476, 119,
    976 	433, 434, 435, 428, 428, 428, 474, 428,
    977 	428, 437, 428, 428, 428, 428, 428, 428,
    978 	428, 428, 428, 428, 428, 428, 428, 438,
    979 	428, 132, 477, 428, 433, 434, 435, 428,
    980 	428, 428, 442, 428, 433, 434, 435, 428,
    981 	428, 428, 442, 428, 478, 428, 428, 479,
    982 	434, 435, 428, 434, 435, 428, 480, 428,
    983 	434, 481, 428, 434, 482, 428, 434, 428,
    984 	478, 428, 428, 428, 434, 435, 428, 483,
    985 	428, 484, 485, 428, 433, 434, 435, 428,
    986 	428, 117, 428, 116, 428, 428, 428, 428,
    987 	433, 434, 435, 428, 433, 434, 435, 428,
    988 	483, 428, 428, 428, 428, 433, 434, 435,
    989 	428, 483, 428, 484, 428, 428, 433, 434,
    990 	435, 428, 428, 117, 428, 132, 428, 486,
    991 	486, 119, 433, 434, 435, 428, 428, 428,
    992 	442, 428, 487, 141, 488, 489, 122, 433,
    993 	434, 435, 428, 428, 428, 442, 428, 141,
    994 	488, 489, 122, 433, 434, 435, 428, 428,
    995 	428, 442, 428, 488, 488, 122, 433, 434,
    996 	435, 428, 428, 428, 442, 428, 490, 138,
    997 	491, 492, 125, 433, 434, 435, 428, 428,
    998 	428, 442, 428, 138, 491, 492, 125, 433,
    999 	434, 435, 428, 428, 428, 442, 428, 491,
   1000 	491, 125, 433, 434, 435, 428, 428, 428,
   1001 	442, 428, 493, 135, 494, 495, 128, 433,
   1002 	434, 435, 428, 428, 428, 442, 428, 135,
   1003 	494, 495, 128, 433, 434, 435, 428, 428,
   1004 	428, 442, 428, 494, 494, 128, 433, 434,
   1005 	435, 428, 428, 428, 442, 428, 496, 132,
   1006 	428, 497, 428, 433, 434, 435, 428, 428,
   1007 	428, 442, 428, 132, 428, 497, 428, 433,
   1008 	434, 435, 428, 428, 428, 442, 428, 498,
   1009 	428, 433, 434, 435, 428, 428, 428, 442,
   1010 	428, 132, 428, 428, 428, 428, 433, 434,
   1011 	435, 428, 428, 428, 442, 428, 115, 116,
   1012 	428, 428, 132, 477, 428, 433, 434, 435,
   1013 	428, 428, 428, 442, 428, 115, 428, 471,
   1014 	476, 476, 119, 433, 434, 435, 428, 428,
   1015 	428, 474, 428, 428, 428, 428, 428, 428,
   1016 	428, 428, 428, 428, 428, 428, 428, 428,
   1017 	428, 428, 438, 428, 471, 476, 476, 119,
   1018 	433, 434, 435, 428, 428, 428, 474, 428,
   1019 	470, 471, 476, 476, 119, 433, 434, 435,
   1020 	428, 428, 428, 474, 428, 428, 437, 428,
   1021 	428, 428, 428, 428, 428, 428, 428, 428,
   1022 	428, 428, 428, 428, 438, 428, 470, 471,
   1023 	472, 476, 119, 433, 434, 435, 428, 428,
   1024 	143, 474, 428, 428, 437, 428, 428, 428,
   1025 	428, 428, 428, 428, 428, 428, 428, 428,
   1026 	428, 428, 438, 428, 468, 428, 499, 428,
   1027 	486, 486, 119, 433, 434, 435, 428, 428,
   1028 	428, 442, 428, 468, 428, 468, 428, 428,
   1029 	428, 428, 428, 428, 433, 434, 435, 428,
   1030 	428, 428, 442, 428, 468, 428, 468, 428,
   1031 	428, 428, 428, 500, 428, 433, 434, 435,
   1032 	428, 428, 428, 442, 428, 468, 428, 468,
   1033 	428, 499, 428, 428, 428, 428, 433, 434,
   1034 	435, 428, 428, 428, 442, 428, 468, 428,
   1035 	468, 116, 428, 428, 132, 469, 428, 433,
   1036 	434, 435, 428, 428, 428, 442, 428, 468,
   1037 	428, 461, 462, 467, 467, 119, 433, 434,
   1038 	435, 428, 428, 428, 465, 428, 428, 437,
   1039 	428, 428, 428, 428, 428, 428, 428, 428,
   1040 	428, 428, 428, 428, 428, 438, 428, 461,
   1041 	462, 463, 467, 119, 433, 434, 435, 428,
   1042 	428, 145, 465, 428, 428, 437, 428, 428,
   1043 	428, 428, 428, 428, 428, 428, 428, 428,
   1044 	428, 428, 428, 438, 428, 459, 428, 501,
   1045 	428, 486, 486, 119, 433, 434, 435, 428,
   1046 	428, 428, 442, 428, 459, 428, 459, 428,
   1047 	428, 428, 428, 428, 428, 433, 434, 435,
   1048 	428, 428, 428, 442, 428, 459, 428, 459,
   1049 	428, 428, 428, 428, 502, 428, 433, 434,
   1050 	435, 428, 428, 428, 442, 428, 459, 428,
   1051 	459, 428, 501, 428, 428, 428, 428, 433,
   1052 	434, 435, 428, 428, 428, 442, 428, 459,
   1053 	428, 459, 116, 428, 428, 132, 460, 428,
   1054 	433, 434, 435, 428, 428, 428, 442, 428,
   1055 	459, 428, 452, 453, 458, 458, 119, 433,
   1056 	434, 435, 428, 428, 428, 456, 428, 428,
   1057 	437, 428, 428, 428, 428, 428, 428, 428,
   1058 	428, 428, 428, 428, 428, 428, 438, 428,
   1059 	452, 453, 454, 458, 119, 433, 434, 435,
   1060 	428, 428, 147, 456, 428, 428, 437, 428,
   1061 	428, 428, 428, 428, 428, 428, 428, 428,
   1062 	428, 428, 428, 428, 438, 428, 450, 428,
   1063 	503, 428, 486, 486, 119, 433, 434, 435,
   1064 	428, 428, 428, 442, 428, 450, 428, 450,
   1065 	428, 428, 428, 428, 428, 428, 433, 434,
   1066 	435, 428, 428, 428, 442, 428, 450, 428,
   1067 	450, 428, 428, 428, 428, 504, 428, 433,
   1068 	434, 435, 428, 428, 428, 442, 428, 450,
   1069 	428, 450, 428, 503, 428, 428, 428, 428,
   1070 	433, 434, 435, 428, 428, 428, 442, 428,
   1071 	450, 428, 450, 116, 428, 428, 132, 451,
   1072 	428, 433, 434, 435, 428, 428, 428, 442,
   1073 	428, 450, 428, 443, 444, 449, 449, 119,
   1074 	433, 434, 435, 428, 428, 428, 447, 428,
   1075 	428, 437, 428, 428, 428, 428, 428, 428,
   1076 	428, 428, 428, 428, 428, 428, 428, 438,
   1077 	428, 443, 444, 445, 449, 119, 433, 434,
   1078 	435, 428, 428, 149, 447, 428, 428, 437,
   1079 	428, 428, 428, 428, 428, 428, 428, 428,
   1080 	428, 428, 428, 428, 428, 438, 428, 440,
   1081 	428, 505, 428, 486, 486, 119, 433, 434,
   1082 	435, 428, 428, 428, 442, 428, 440, 428,
   1083 	440, 428, 428, 428, 428, 428, 428, 433,
   1084 	434, 435, 428, 428, 428, 442, 428, 440,
   1085 	428, 440, 428, 428, 428, 428, 506, 428,
   1086 	433, 434, 435, 428, 428, 428, 442, 428,
   1087 	440, 428, 440, 428, 505, 428, 428, 428,
   1088 	428, 433, 434, 435, 428, 428, 428, 442,
   1089 	428, 440, 428, 440, 116, 428, 428, 132,
   1090 	441, 428, 433, 434, 435, 428, 428, 428,
   1091 	442, 428, 440, 428, 429, 430, 432, 432,
   1092 	119, 433, 434, 435, 428, 428, 428, 436,
   1093 	428, 428, 437, 428, 428, 428, 428, 428,
   1094 	428, 428, 428, 428, 428, 428, 428, 428,
   1095 	438, 428, 181, 182, 183, 184, 507, 359,
   1096 	81, 187, 188, 189, 190, 190, 152, 191,
   1097 	357, 181, 194, 357, 357, 357, 357, 357,
   1098 	357, 357, 357, 357, 357, 357, 357, 357,
   1099 	196, 357, 198, 508, 200, 201, 5, 202,
   1100 	203, 204, 197, 197, 37, 205, 197, 197,
   1101 	206, 197, 197, 197, 197, 197, 197, 197,
   1102 	197, 197, 197, 197, 197, 197, 207, 197,
   1103 	210, 182, 183, 184, 509, 510, 81, 511,
   1104 	512, 513, 197, 190, 152, 514, 197, 210,
   1105 	194, 197, 197, 197, 197, 197, 197, 197,
   1106 	197, 197, 197, 197, 197, 197, 196, 197,
   1107 	113, 80, 80, 81, 202, 203, 204, 197,
   1108 	197, 152, 515, 197, 516, 2, 357, 357,
   1109 	357, 426, 357, 187, 188, 189, 357, 357,
   1110 	357, 362, 357, 516, 357, 517, 364, 518,
   1111 	519, 81, 511, 512, 513, 197, 197, 153,
   1112 	367, 197, 197, 194, 197, 197, 197, 197,
   1113 	197, 197, 197, 197, 197, 197, 197, 197,
   1114 	197, 196, 197, 520, 364, 369, 369, 81,
   1115 	511, 512, 513, 197, 197, 197, 367, 197,
   1116 	197, 194, 197, 197, 197, 197, 197, 197,
   1117 	197, 197, 197, 197, 197, 197, 197, 196,
   1118 	197, 364, 369, 369, 81, 511, 512, 513,
   1119 	197, 197, 197, 367, 197, 197, 194, 197,
   1120 	197, 197, 197, 197, 197, 197, 197, 197,
   1121 	197, 197, 197, 197, 196, 197, 521, 197,
   1122 	197, 522, 512, 513, 197, 512, 513, 197,
   1123 	250, 197, 512, 523, 197, 512, 524, 197,
   1124 	512, 197, 521, 197, 197, 197, 512, 513,
   1125 	197, 517, 364, 369, 369, 81, 511, 512,
   1126 	513, 197, 197, 197, 367, 197, 197, 194,
   1127 	197, 197, 197, 197, 197, 197, 197, 197,
   1128 	197, 197, 197, 197, 197, 196, 197, 517,
   1129 	364, 518, 369, 81, 511, 512, 513, 197,
   1130 	197, 153, 367, 197, 197, 194, 197, 197,
   1131 	197, 197, 197, 197, 197, 197, 197, 197,
   1132 	197, 197, 197, 196, 197, 210, 197, 275,
   1133 	113, 525, 525, 155, 202, 203, 204, 197,
   1134 	197, 197, 515, 197, 210, 197, 526, 179,
   1135 	527, 528, 157, 511, 512, 513, 197, 197,
   1136 	197, 529, 197, 179, 527, 528, 157, 511,
   1137 	512, 513, 197, 197, 197, 529, 197, 527,
   1138 	527, 157, 511, 512, 513, 197, 197, 197,
   1139 	529, 197, 530, 176, 531, 532, 160, 511,
   1140 	512, 513, 197, 197, 197, 529, 197, 176,
   1141 	531, 532, 160, 511, 512, 513, 197, 197,
   1142 	197, 529, 197, 531, 531, 160, 511, 512,
   1143 	513, 197, 197, 197, 529, 197, 533, 173,
   1144 	534, 535, 163, 511, 512, 513, 197, 197,
   1145 	197, 529, 197, 173, 534, 535, 163, 511,
   1146 	512, 513, 197, 197, 197, 529, 197, 534,
   1147 	534, 163, 511, 512, 513, 197, 197, 197,
   1148 	529, 197, 536, 170, 197, 537, 197, 511,
   1149 	512, 513, 197, 197, 197, 529, 197, 170,
   1150 	197, 537, 197, 511, 512, 513, 197, 197,
   1151 	197, 529, 197, 511, 512, 513, 197, 197,
   1152 	197, 529, 197, 538, 197, 539, 540, 197,
   1153 	511, 512, 513, 197, 197, 167, 197, 166,
   1154 	197, 197, 197, 197, 511, 512, 513, 197,
   1155 	511, 512, 513, 197, 538, 197, 197, 197,
   1156 	197, 511, 512, 513, 197, 538, 197, 539,
   1157 	197, 197, 511, 512, 513, 197, 197, 167,
   1158 	197, 516, 166, 357, 357, 95, 361, 357,
   1159 	187, 188, 189, 357, 357, 357, 362, 357,
   1160 	516, 357, 542, 541, 541, 541, 541, 543,
   1161 	544, 545, 541, 543, 544, 545, 541, 546,
   1162 	541, 541, 547, 544, 545, 541, 544, 545,
   1163 	541, 548, 541, 544, 549, 541, 544, 550,
   1164 	541, 544, 541, 546, 541, 541, 541, 544,
   1165 	545, 541, 0
   1166 };
   1167 
   1168 static const short _indic_syllable_machine_trans_targs[] = {
   1169 	170, 199, 201, 202, 3, 205, 4, 6,
   1170 	208, 7, 9, 211, 10, 12, 214, 13,
   1171 	15, 16, 191, 18, 19, 213, 21, 22,
   1172 	210, 24, 25, 207, 216, 221, 225, 228,
   1173 	232, 235, 239, 242, 246, 249, 170, 279,
   1174 	281, 282, 39, 285, 40, 42, 288, 43,
   1175 	45, 291, 46, 48, 294, 49, 51, 52,
   1176 	271, 54, 55, 293, 57, 58, 290, 60,
   1177 	61, 287, 296, 301, 305, 308, 312, 315,
   1178 	319, 322, 326, 330, 170, 358, 360, 361,
   1179 	75, 364, 170, 76, 78, 367, 79, 81,
   1180 	370, 82, 84, 373, 85, 87, 88, 350,
   1181 	90, 91, 372, 93, 94, 369, 96, 97,
   1182 	366, 375, 380, 384, 387, 391, 394, 398,
   1183 	401, 405, 170, 439, 441, 442, 110, 445,
   1184 	111, 113, 448, 114, 116, 451, 117, 119,
   1185 	454, 120, 122, 123, 431, 125, 126, 453,
   1186 	128, 129, 450, 131, 132, 447, 456, 461,
   1187 	465, 468, 472, 475, 479, 482, 486, 489,
   1188 	409, 505, 146, 508, 148, 511, 149, 151,
   1189 	514, 152, 154, 517, 155, 520, 522, 523,
   1190 	159, 160, 519, 162, 163, 516, 165, 166,
   1191 	513, 168, 169, 510, 170, 171, 251, 331,
   1192 	333, 408, 410, 351, 353, 354, 411, 407,
   1193 	490, 491, 378, 526, 379, 170, 172, 174,
   1194 	35, 250, 192, 194, 195, 248, 219, 220,
   1195 	173, 34, 175, 244, 0, 176, 178, 33,
   1196 	243, 241, 177, 32, 179, 237, 180, 182,
   1197 	31, 236, 234, 181, 30, 183, 230, 184,
   1198 	186, 29, 229, 227, 185, 28, 187, 223,
   1199 	188, 190, 27, 222, 218, 189, 26, 204,
   1200 	193, 198, 170, 196, 197, 200, 1, 203,
   1201 	2, 206, 5, 23, 209, 8, 20, 212,
   1202 	11, 17, 215, 14, 217, 224, 226, 231,
   1203 	233, 238, 240, 245, 247, 170, 252, 254,
   1204 	71, 328, 272, 274, 275, 329, 299, 300,
   1205 	253, 70, 255, 324, 36, 256, 258, 69,
   1206 	323, 321, 257, 68, 259, 317, 260, 262,
   1207 	67, 316, 314, 261, 66, 263, 310, 264,
   1208 	266, 65, 309, 307, 265, 64, 267, 303,
   1209 	268, 270, 63, 302, 298, 269, 62, 284,
   1210 	273, 278, 170, 276, 277, 280, 37, 283,
   1211 	38, 286, 41, 59, 289, 44, 56, 292,
   1212 	47, 53, 295, 50, 297, 304, 306, 311,
   1213 	313, 318, 320, 325, 327, 170, 332, 106,
   1214 	334, 403, 72, 335, 337, 105, 402, 400,
   1215 	336, 104, 338, 396, 339, 341, 103, 395,
   1216 	393, 340, 102, 342, 389, 343, 345, 101,
   1217 	388, 386, 344, 100, 346, 382, 347, 349,
   1218 	99, 381, 377, 348, 98, 363, 352, 357,
   1219 	170, 355, 356, 359, 73, 362, 74, 365,
   1220 	77, 95, 368, 80, 92, 371, 83, 89,
   1221 	374, 86, 376, 383, 385, 390, 392, 397,
   1222 	399, 404, 406, 170, 170, 412, 414, 142,
   1223 	141, 432, 434, 435, 488, 459, 460, 413,
   1224 	415, 484, 107, 416, 418, 140, 483, 481,
   1225 	417, 139, 419, 477, 420, 422, 138, 476,
   1226 	474, 421, 137, 423, 470, 424, 426, 136,
   1227 	469, 467, 425, 135, 427, 463, 428, 430,
   1228 	134, 462, 458, 429, 133, 444, 433, 438,
   1229 	170, 436, 437, 440, 108, 443, 109, 446,
   1230 	112, 130, 449, 115, 127, 452, 118, 124,
   1231 	455, 121, 457, 464, 466, 471, 473, 478,
   1232 	480, 485, 487, 143, 492, 493, 507, 498,
   1233 	500, 501, 525, 494, 495, 496, 144, 506,
   1234 	497, 499, 504, 502, 503, 145, 509, 147,
   1235 	167, 156, 512, 150, 164, 515, 153, 161,
   1236 	518, 158, 521, 157, 524, 170, 527, 528,
   1237 	530, 531, 529, 534, 170, 532, 533
   1238 };
   1239 
   1240 static const char _indic_syllable_machine_trans_actions[] = {
   1241 	1, 2, 0, 0, 0, 2, 0, 0,
   1242 	2, 0, 0, 2, 0, 0, 2, 0,
   1243 	0, 0, 2, 0, 0, 2, 0, 0,
   1244 	2, 0, 0, 2, 2, 2, 2, 2,
   1245 	2, 2, 2, 2, 2, 2, 3, 2,
   1246 	0, 0, 0, 2, 0, 0, 2, 0,
   1247 	0, 2, 0, 0, 2, 0, 0, 0,
   1248 	2, 0, 0, 2, 0, 0, 2, 0,
   1249 	0, 2, 2, 2, 2, 2, 2, 2,
   1250 	2, 2, 2, 2, 4, 2, 0, 0,
   1251 	0, 2, 5, 0, 0, 2, 0, 0,
   1252 	2, 0, 0, 2, 0, 0, 0, 2,
   1253 	0, 0, 2, 0, 0, 2, 0, 0,
   1254 	2, 2, 6, 2, 6, 2, 6, 2,
   1255 	6, 2, 7, 2, 0, 0, 0, 2,
   1256 	0, 0, 2, 0, 0, 2, 0, 0,
   1257 	2, 0, 0, 0, 2, 0, 0, 2,
   1258 	0, 0, 2, 0, 0, 2, 2, 2,
   1259 	2, 2, 2, 2, 2, 2, 2, 2,
   1260 	6, 8, 0, 2, 0, 2, 0, 0,
   1261 	2, 0, 0, 2, 0, 2, 0, 0,
   1262 	0, 0, 2, 0, 0, 2, 0, 0,
   1263 	2, 0, 0, 2, 11, 2, 2, 6,
   1264 	2, 12, 12, 0, 0, 0, 2, 2,
   1265 	6, 2, 6, 0, 6, 13, 2, 2,
   1266 	0, 2, 0, 0, 0, 2, 2, 2,
   1267 	2, 0, 2, 2, 0, 2, 2, 0,
   1268 	2, 2, 2, 0, 2, 2, 2, 2,
   1269 	0, 2, 2, 2, 0, 2, 2, 2,
   1270 	2, 0, 2, 2, 2, 0, 2, 2,
   1271 	2, 2, 0, 2, 2, 2, 0, 2,
   1272 	0, 0, 14, 0, 0, 0, 0, 2,
   1273 	0, 2, 0, 0, 2, 0, 0, 2,
   1274 	0, 0, 2, 0, 2, 2, 2, 2,
   1275 	2, 2, 2, 2, 2, 15, 2, 2,
   1276 	0, 2, 0, 0, 0, 2, 2, 2,
   1277 	2, 0, 2, 2, 0, 2, 2, 0,
   1278 	2, 2, 2, 0, 2, 2, 2, 2,
   1279 	0, 2, 2, 2, 0, 2, 2, 2,
   1280 	2, 0, 2, 2, 2, 0, 2, 2,
   1281 	2, 2, 0, 2, 2, 2, 0, 2,
   1282 	0, 0, 16, 0, 0, 0, 0, 2,
   1283 	0, 2, 0, 0, 2, 0, 0, 2,
   1284 	0, 0, 2, 0, 2, 2, 2, 2,
   1285 	2, 2, 2, 2, 2, 17, 6, 0,
   1286 	6, 6, 0, 6, 2, 0, 6, 2,
   1287 	6, 0, 6, 6, 6, 2, 0, 6,
   1288 	2, 6, 0, 6, 6, 6, 2, 0,
   1289 	6, 2, 6, 0, 6, 6, 6, 2,
   1290 	0, 6, 2, 6, 0, 6, 0, 0,
   1291 	18, 0, 0, 0, 0, 2, 0, 2,
   1292 	0, 0, 2, 0, 0, 2, 0, 0,
   1293 	2, 0, 2, 2, 2, 2, 2, 2,
   1294 	2, 2, 2, 19, 20, 2, 2, 0,
   1295 	0, 0, 0, 0, 2, 2, 2, 2,
   1296 	2, 2, 0, 2, 2, 0, 2, 2,
   1297 	2, 0, 2, 2, 2, 2, 0, 2,
   1298 	2, 2, 0, 2, 2, 2, 2, 0,
   1299 	2, 2, 2, 0, 2, 2, 2, 2,
   1300 	0, 2, 2, 2, 0, 2, 0, 0,
   1301 	21, 0, 0, 0, 0, 2, 0, 2,
   1302 	0, 0, 2, 0, 0, 2, 0, 0,
   1303 	2, 0, 2, 2, 2, 2, 2, 2,
   1304 	2, 2, 2, 0, 0, 8, 2, 0,
   1305 	0, 0, 2, 2, 8, 8, 0, 8,
   1306 	8, 0, 0, 0, 0, 0, 2, 0,
   1307 	0, 0, 2, 0, 0, 2, 0, 0,
   1308 	2, 0, 0, 0, 2, 22, 0, 0,
   1309 	0, 0, 0, 0, 23, 0, 0
   1310 };
   1311 
   1312 static const char _indic_syllable_machine_to_state_actions[] = {
   1313 	0, 0, 0, 0, 0, 0, 0, 0,
   1314 	0, 0, 0, 0, 0, 0, 0, 0,
   1315 	0, 0, 0, 0, 0, 0, 0, 0,
   1316 	0, 0, 0, 0, 0, 0, 0, 0,
   1317 	0, 0, 0, 0, 0, 0, 0, 0,
   1318 	0, 0, 0, 0, 0, 0, 0, 0,
   1319 	0, 0, 0, 0, 0, 0, 0, 0,
   1320 	0, 0, 0, 0, 0, 0, 0, 0,
   1321 	0, 0, 0, 0, 0, 0, 0, 0,
   1322 	0, 0, 0, 0, 0, 0, 0, 0,
   1323 	0, 0, 0, 0, 0, 0, 0, 0,
   1324 	0, 0, 0, 0, 0, 0, 0, 0,
   1325 	0, 0, 0, 0, 0, 0, 0, 0,
   1326 	0, 0, 0, 0, 0, 0, 0, 0,
   1327 	0, 0, 0, 0, 0, 0, 0, 0,
   1328 	0, 0, 0, 0, 0, 0, 0, 0,
   1329 	0, 0, 0, 0, 0, 0, 0, 0,
   1330 	0, 0, 0, 0, 0, 0, 0, 0,
   1331 	0, 0, 0, 0, 0, 0, 0, 0,
   1332 	0, 0, 0, 0, 0, 0, 0, 0,
   1333 	0, 0, 0, 0, 0, 0, 0, 0,
   1334 	0, 0, 9, 0, 0, 0, 0, 0,
   1335 	0, 0, 0, 0, 0, 0, 0, 0,
   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, 0, 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
   1380 };
   1381 
   1382 static const char _indic_syllable_machine_from_state_actions[] = {
   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, 0,
   1404 	0, 0, 10, 0, 0, 0, 0, 0,
   1405 	0, 0, 0, 0, 0, 0, 0, 0,
   1406 	0, 0, 0, 0, 0, 0, 0, 0,
   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, 0, 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
   1450 };
   1451 
   1452 static const short _indic_syllable_machine_eof_trans[] = {
   1453 	1, 1, 1, 1, 1, 1, 1, 1,
   1454 	1, 1, 1, 1, 1, 1, 1, 1,
   1455 	1, 1, 1, 1, 1, 1, 1, 1,
   1456 	1, 1, 1, 1, 1, 1, 1, 1,
   1457 	1, 1, 1, 1, 39, 39, 39, 39,
   1458 	39, 39, 39, 39, 39, 39, 39, 39,
   1459 	39, 39, 39, 39, 39, 39, 39, 39,
   1460 	39, 39, 39, 39, 39, 39, 39, 39,
   1461 	39, 39, 39, 39, 39, 39, 39, 39,
   1462 	77, 77, 77, 83, 83, 77, 77, 77,
   1463 	77, 77, 77, 77, 77, 77, 77, 77,
   1464 	77, 77, 77, 77, 77, 77, 77, 77,
   1465 	77, 77, 77, 77, 77, 77, 77, 77,
   1466 	83, 77, 77, 115, 115, 115, 115, 115,
   1467 	115, 115, 115, 115, 115, 115, 115, 115,
   1468 	115, 115, 115, 115, 115, 115, 115, 115,
   1469 	115, 115, 115, 115, 115, 115, 115, 115,
   1470 	115, 115, 115, 115, 115, 115, 115, 77,
   1471 	1, 1, 1, 1, 1, 1, 1, 1,
   1472 	1, 1, 1, 1, 1, 1, 1, 1,
   1473 	1, 1, 1, 1, 1, 1, 1, 1,
   1474 	1, 1, 0, 198, 198, 198, 198, 198,
   1475 	198, 198, 198, 198, 198, 198, 198, 198,
   1476 	198, 198, 198, 198, 198, 198, 198, 198,
   1477 	198, 198, 198, 198, 198, 198, 198, 198,
   1478 	198, 198, 198, 198, 198, 198, 198, 198,
   1479 	198, 198, 198, 198, 198, 198, 198, 198,
   1480 	198, 198, 198, 198, 198, 198, 198, 198,
   1481 	198, 198, 198, 198, 198, 198, 198, 198,
   1482 	198, 198, 198, 198, 198, 198, 198, 198,
   1483 	198, 198, 198, 198, 198, 198, 198, 198,
   1484 	198, 198, 198, 278, 278, 278, 278, 278,
   1485 	278, 278, 278, 278, 278, 278, 278, 278,
   1486 	278, 278, 278, 278, 278, 278, 278, 278,
   1487 	278, 278, 278, 278, 278, 278, 278, 278,
   1488 	278, 278, 278, 278, 278, 278, 278, 278,
   1489 	278, 278, 278, 278, 278, 278, 278, 278,
   1490 	278, 278, 278, 278, 278, 278, 278, 278,
   1491 	278, 278, 278, 278, 278, 278, 278, 278,
   1492 	278, 278, 278, 278, 278, 278, 278, 278,
   1493 	278, 278, 278, 278, 278, 278, 278, 278,
   1494 	278, 278, 278, 358, 358, 358, 358, 358,
   1495 	358, 358, 358, 358, 358, 358, 358, 358,
   1496 	358, 358, 358, 358, 358, 358, 358, 358,
   1497 	358, 358, 358, 358, 358, 358, 358, 358,
   1498 	358, 358, 358, 358, 358, 358, 358, 358,
   1499 	358, 358, 358, 358, 358, 358, 358, 358,
   1500 	358, 358, 358, 358, 358, 358, 358, 358,
   1501 	358, 358, 358, 358, 358, 358, 358, 358,
   1502 	358, 358, 358, 358, 358, 358, 358, 358,
   1503 	358, 358, 358, 358, 358, 358, 358, 358,
   1504 	428, 358, 428, 429, 429, 429, 429, 429,
   1505 	429, 429, 429, 429, 429, 429, 429, 429,
   1506 	429, 429, 429, 429, 429, 429, 429, 429,
   1507 	429, 429, 429, 429, 429, 429, 429, 429,
   1508 	429, 429, 429, 429, 429, 429, 429, 429,
   1509 	429, 429, 429, 429, 429, 429, 429, 429,
   1510 	429, 429, 429, 429, 429, 429, 429, 429,
   1511 	429, 429, 429, 429, 429, 429, 429, 429,
   1512 	429, 429, 429, 429, 429, 429, 429, 429,
   1513 	429, 429, 429, 429, 429, 429, 429, 429,
   1514 	429, 429, 358, 198, 198, 198, 358, 198,
   1515 	198, 198, 198, 198, 198, 198, 198, 198,
   1516 	198, 198, 198, 198, 198, 198, 198, 198,
   1517 	198, 198, 198, 198, 198, 198, 198, 198,
   1518 	198, 198, 198, 198, 198, 358, 542, 542,
   1519 	542, 542, 542, 542, 542, 542, 542
   1520 };
   1521 
   1522 static const int indic_syllable_machine_start = 170;
   1523 static const int indic_syllable_machine_first_final = 170;
   1524 static const int indic_syllable_machine_error = -1;
   1525 
   1526 static const int indic_syllable_machine_en_main = 170;
   1527 
   1528 
   1529 #line 36 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1530 
   1531 
   1532 
   1533 #line 97 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1534 
   1535 
   1536 #define found_syllable(syllable_type) \
   1537   HB_STMT_START { \
   1538     if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
   1539     for (unsigned int i = last; i < p+1; i++) \
   1540       info[i].syllable() = (syllable_serial << 4) | syllable_type; \
   1541     last = p+1; \
   1542     syllable_serial++; \
   1543     if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
   1544   } HB_STMT_END
   1545 
   1546 static void
   1547 find_syllables (hb_buffer_t *buffer)
   1548 {
   1549   unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
   1550   int cs;
   1551   hb_glyph_info_t *info = buffer->info;
   1552 
   1553 #line 1554 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
   1554 	{
   1555 	cs = indic_syllable_machine_start;
   1556 	ts = 0;
   1557 	te = 0;
   1558 	act = 0;
   1559 	}
   1560 
   1561 #line 118 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1562 
   1563 
   1564   p = 0;
   1565   pe = eof = buffer->len;
   1566 
   1567   unsigned int last = 0;
   1568   unsigned int syllable_serial = 1;
   1569 
   1570 #line 1571 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
   1571 	{
   1572 	int _slen;
   1573 	int _trans;
   1574 	const unsigned char *_keys;
   1575 	const short *_inds;
   1576 	if ( p == pe )
   1577 		goto _test_eof;
   1578 _resume:
   1579 	switch ( _indic_syllable_machine_from_state_actions[cs] ) {
   1580 	case 10:
   1581 #line 1 "NONE"
   1582 	{ts = p;}
   1583 	break;
   1584 #line 1585 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
   1585 	}
   1586 
   1587 	_keys = _indic_syllable_machine_trans_keys + (cs<<1);
   1588 	_inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
   1589 
   1590 	_slen = _indic_syllable_machine_key_spans[cs];
   1591 	_trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
   1592 		( info[p].indic_category()) <= _keys[1] ?
   1593 		( info[p].indic_category()) - _keys[0] : _slen ];
   1594 
   1595 _eof_trans:
   1596 	cs = _indic_syllable_machine_trans_targs[_trans];
   1597 
   1598 	if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
   1599 		goto _again;
   1600 
   1601 	switch ( _indic_syllable_machine_trans_actions[_trans] ) {
   1602 	case 2:
   1603 #line 1 "NONE"
   1604 	{te = p+1;}
   1605 	break;
   1606 	case 14:
   1607 #line 88 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1608 	{te = p+1;{ found_syllable (consonant_syllable); }}
   1609 	break;
   1610 	case 16:
   1611 #line 89 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1612 	{te = p+1;{ found_syllable (vowel_syllable); }}
   1613 	break;
   1614 	case 21:
   1615 #line 90 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1616 	{te = p+1;{ found_syllable (standalone_cluster); }}
   1617 	break;
   1618 	case 23:
   1619 #line 91 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1620 	{te = p+1;{ found_syllable (symbol_cluster); }}
   1621 	break;
   1622 	case 18:
   1623 #line 92 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1624 	{te = p+1;{ found_syllable (broken_cluster); }}
   1625 	break;
   1626 	case 11:
   1627 #line 93 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1628 	{te = p+1;{ found_syllable (non_indic_cluster); }}
   1629 	break;
   1630 	case 13:
   1631 #line 88 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1632 	{te = p;p--;{ found_syllable (consonant_syllable); }}
   1633 	break;
   1634 	case 15:
   1635 #line 89 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1636 	{te = p;p--;{ found_syllable (vowel_syllable); }}
   1637 	break;
   1638 	case 20:
   1639 #line 90 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1640 	{te = p;p--;{ found_syllable (standalone_cluster); }}
   1641 	break;
   1642 	case 22:
   1643 #line 91 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1644 	{te = p;p--;{ found_syllable (symbol_cluster); }}
   1645 	break;
   1646 	case 17:
   1647 #line 92 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1648 	{te = p;p--;{ found_syllable (broken_cluster); }}
   1649 	break;
   1650 	case 19:
   1651 #line 93 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1652 	{te = p;p--;{ found_syllable (non_indic_cluster); }}
   1653 	break;
   1654 	case 1:
   1655 #line 88 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1656 	{{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
   1657 	break;
   1658 	case 3:
   1659 #line 89 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1660 	{{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
   1661 	break;
   1662 	case 7:
   1663 #line 90 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1664 	{{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
   1665 	break;
   1666 	case 4:
   1667 #line 92 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1668 	{{p = ((te))-1;}{ found_syllable (broken_cluster); }}
   1669 	break;
   1670 	case 5:
   1671 #line 1 "NONE"
   1672 	{	switch( act ) {
   1673 	case 1:
   1674 	{{p = ((te))-1;} found_syllable (consonant_syllable); }
   1675 	break;
   1676 	case 5:
   1677 	{{p = ((te))-1;} found_syllable (broken_cluster); }
   1678 	break;
   1679 	case 6:
   1680 	{{p = ((te))-1;} found_syllable (non_indic_cluster); }
   1681 	break;
   1682 	}
   1683 	}
   1684 	break;
   1685 	case 8:
   1686 #line 1 "NONE"
   1687 	{te = p+1;}
   1688 #line 88 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1689 	{act = 1;}
   1690 	break;
   1691 	case 6:
   1692 #line 1 "NONE"
   1693 	{te = p+1;}
   1694 #line 92 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1695 	{act = 5;}
   1696 	break;
   1697 	case 12:
   1698 #line 1 "NONE"
   1699 	{te = p+1;}
   1700 #line 93 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1701 	{act = 6;}
   1702 	break;
   1703 #line 1704 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
   1704 	}
   1705 
   1706 _again:
   1707 	switch ( _indic_syllable_machine_to_state_actions[cs] ) {
   1708 	case 9:
   1709 #line 1 "NONE"
   1710 	{ts = 0;}
   1711 	break;
   1712 #line 1713 "../../src/hb-ot-shape-complex-indic-machine.hh.tmp"
   1713 	}
   1714 
   1715 	if ( ++p != pe )
   1716 		goto _resume;
   1717 	_test_eof: {}
   1718 	if ( p == eof )
   1719 	{
   1720 	if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
   1721 		_trans = _indic_syllable_machine_eof_trans[cs] - 1;
   1722 		goto _eof_trans;
   1723 	}
   1724 	}
   1725 
   1726 	}
   1727 
   1728 #line 127 "../../src/hb-ot-shape-complex-indic-machine.rl"
   1729 
   1730 }
   1731 
   1732 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
   1733