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