• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 /*****************************************************************************************
8  ******************** This file was generated by sksllex. Do not edit. *******************
9  *****************************************************************************************/
10 #include "SkSLLayoutLexer.h"
11 
12 namespace SkSL {
13 
14 static int16_t mappings[127] = {
15         0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
16         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
17         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
18         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 1, 1, 1,  1,  1,  1,  1,  1,  1,
19         1,  1,  1,  1,  1,  1,  1,  3,  1,  4,  5,  6,  7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
20         17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1, 1, 1, 1,  1};
21 static int16_t transitions[29][326] = {
22         {
23                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
24                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
25                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
26                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
28                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
33                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
35         },
36         {
37                 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
38                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
39                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
40                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
41                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
42                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
43                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
44                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
45                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
46                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
47                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
48                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49         },
50         {
51                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
52                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
53                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
54                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
55                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
56                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
57                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
58                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
59                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
60                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
61                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
62                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63         },
64         {
65                 0,   2, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   14, 0,   0, 0, 0,   0,   0,   0,
66                 22,  0, 0,   0, 26, 0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
67                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
68                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
69                 85,  0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
70                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
71                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
72                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   0,   0,   0,
73                 169, 0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   180, 0,   0,  0,   0, 0, 0,   0,   0,   0,
74                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   202, 0,  0,   0, 0, 0,   0,   209, 0,
75                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 0,   229, 0,   0,
76                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  0,   0, 0, 249, 0,   0,   0,
77                 0,   0, 255, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0,   0,  267, 0, 0, 0,   0,   0,   0,
78                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,   285, 0,   0,  0,   0, 0, 0,   0,   0,   0,
79                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 305, 0,   0,   0,  0,   0, 0, 312, 0,   0,   0,
80                 0,   0, 0,   0, 0,  0, 0, 0, 0, 0, 0,
81         },
82         {
83                 0,   2, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
84                 0,   0, 23, 0, 0,   0, 0,   0, 0,   30,  0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
85                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   51,  0, 0,   0,   0,  0,   0, 0, 0, 0,
86                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 0,   0,   75, 0,   0, 0, 0, 0,
87                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
88                 0,   0, 0,  0, 105, 0, 0,   0, 109, 0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
89                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 0,   134, 0,  0,   0, 0, 0, 0,
90                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
91                 0,   0, 0,  0, 0,   0, 0,   0, 0,   170, 0,   0, 173, 0,   0,  0,   0, 0, 0, 0,
92                 0,   0, 0,  0, 0,   0, 0,   0, 189, 0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
93                 0,   0, 0,  0, 0,   0, 0,   0, 0,   210, 0,   0, 213, 0,   0,  0,   0, 0, 0, 0,
94                 221, 0, 0,  0, 0,   0, 227, 0, 0,   0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
95                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 0,   0,   0,  0,   0, 0, 0, 0,
96                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 273, 0,   0,  0,   0, 0, 0, 0,
97                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   291, 0, 0,   0,   0,  0,   0, 0, 0, 300,
98                 0,   0, 0,  0, 0,   0, 0,   0, 0,   0,   0,   0, 313, 0,   0,  316, 0, 0, 0, 0,
99                 0,   0, 0,  0, 0,   0,
100         },
101         {
102                 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
103                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
104                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
109                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
110                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
111                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
112                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
113                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
114         },
115         {
116                 0, 156, 0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
117                 0, 36,  0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
118                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   63,
119                 0, 0,   0, 67,  0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
120                 0, 86,  0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
121                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
122                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   137, 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
123                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
124                 0, 0,   0, 0,   0,   174, 0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 188, 0,
125                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
126                 0, 0,   0, 214, 0,   0,   217, 0, 0, 220, 0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
127                 0, 0,   0, 235, 0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
128                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 268, 0, 0, 0, 0,   0,
129                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 286, 0, 0, 0,   0, 0, 0, 0,   0,
130                 0, 0,   0, 0,   0,   0,   0,   0, 0, 0,   0,   0, 0,   0, 0, 0,   0, 0, 0, 0,   0,
131                 0, 317, 0, 0,   320, 0,   0,   0, 0, 0,   0,
132         },
133         {
134                 0,   2,   0, 0, 0,  6, 0, 0, 0, 0, 0, 0, 13, 0, 0,   0, 0,  0, 0,   0, 0, 0, 50, 0,
135                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 45, 0, 0,   0, 0, 0, 47, 0,
136                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
137                 0,   0,   0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
138                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
139                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
140                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 163, 0, 0, 0, 0,  0,
141                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 183, 0, 0,  0, 0,   0, 0, 0, 0,  0,
142                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 211, 0, 0, 0, 0,  0,
143                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
144                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
145                 265, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
146                 0,   0,   0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0,  0, 0,   0, 0, 0, 0,  0,
147                 0,   314, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,
148         },
149         {
150                 0,   2,   0,   0,   0, 0,   0,   0,  0,   0,   11,  0,   0,  0,   0,   0,   0,
151                 0,   0,   0,   0,   0, 65,  0,   0,  0,   27,  0,   0,   0,  0,   0,   0,   0,
152                 0,   0,   0,   0,   0, 0,   0,   0,  0,   0,   0,   0,   0,  0,   49,  0,   0,
153                 0,   0,   54,  0,   0, 0,   0,   59, 0,   61,  0,   0,   64, 0,   0,   0,   0,
154                 0,   0,   0,   0,   0, 0,   0,   0,  0,   0,   0,   0,   0,  0,   0,   0,   0,
155                 0,   0,   0,   0,   0, 0,   0,   93, 0,   0,   0,   0,   0,  0,   0,   0,   0,
156                 0,   0,   0,   0,   0, 0,   0,   0,  0,   0,   0,   0,   0,  0,   0,   0,   119,
157                 0,   0,   0,   0,   0, 0,   0,   0,  0,   0,   0,   131, 0,  0,   0,   0,   0,
158                 0,   0,   139, 140, 0, 0,   0,   0,  0,   0,   0,   0,   0,  0,   0,   0,   0,
159                 0,   0,   0,   0,   0, 0,   160, 0,  0,   0,   164, 0,   0,  0,   0,   0,   0,
160                 0,   0,   0,   0,   0, 0,   177, 0,  0,   0,   0,   0,   0,  184, 0,   0,   0,
161                 0,   0,   0,   0,   0, 0,   0,   0,  196, 0,   0,   0,   0,  201, 0,   0,   0,
162                 0,   0,   0,   0,   0, 0,   0,   0,  0,   0,   215, 0,   0,  0,   0,   0,   0,
163                 0,   0,   0,   0,   0, 0,   0,   0,  0,   231, 0,   0,   0,  0,   236, 0,   0,
164                 0,   0,   0,   242, 0, 0,   0,   0,  0,   0,   0,   0,   0,  0,   253, 0,   0,
165                 0,   257, 0,   0,   0, 261, 0,   0,  0,   0,   266, 0,   0,  0,   0,   271, 0,
166                 0,   0,   275, 0,   0, 0,   0,   0,  0,   0,   0,   0,   0,  0,   0,   0,   0,
167                 0,   0,   0,   0,   0, 295, 0,   0,  0,   0,   0,   0,   0,  0,   304, 0,   0,
168                 0,   0,   0,   0,   0, 0,   0,   0,  0,   0,   0,   318, 0,  0,   0,   0,   0,
169                 324, 0,   0,
170         },
171         {
172                 0, 2, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
173                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
174                 0, 0, 0, 0, 0, 0, 0, 0, 57, 58, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
175                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
176                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
177                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 143, 0,
178                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
179                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
180                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
181                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 239, 240,
182                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 0, 0,   0,
183                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
184                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0,
185                 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0,
186         },
187         {
188                 0, 2, 0,   0, 0, 0,   0, 0,  9, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
189                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 48,
190                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
191                 0, 0, 0,   0, 0, 0,   0, 80, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
192                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
193                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
194                 0, 0, 147, 0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
195                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
196                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
197                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
198                 0, 0, 0,   0, 0, 246, 0, 0,  0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
199                 0, 0, 0,   0, 0, 0,   0, 0,  0, 274, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
200                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 302, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
201                 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0, 0,
202         },
203         {
204                 0, 2, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 74, 0,
205                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
206                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
207                 0, 0, 0, 0,   0, 0, 0,   0, 81, 0, 0,   0, 0, 91, 0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
208                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   117, 0, 0,  0,
209                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
210                 0, 0, 0, 148, 0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
211                 0, 0, 0, 0,   0, 0, 175, 0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
212                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
213                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
214                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
215                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 284, 0,   0, 0,  0,
216                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0, 0,  0, 0, 0, 0, 0, 0,   0,   0, 0,  0,
217                 0, 0, 0, 0,   0, 0, 0,   0, 0,  0, 323, 0, 0, 0,
218         },
219         {
220                 0,   161, 0,   4, 0, 0, 7,   0,   0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
221                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   0,   0,   0,   32, 0,  0, 0,   0,
222                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   0,   0,   0,   0,  56, 0, 0,   0,
223                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   0,   0,   0,   0,  0,  0, 71,  0,
224                 0,   0,   0,   0, 0, 0, 79,  0,   0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
225                 0,   0,   0,   0, 0, 0, 97,  0,   0, 0,   101, 0,   0,   0,  0,  0, 0,   0,
226                 0,   0,   111, 0, 0, 0, 115, 0,   0, 0,   0,   0,   0,   0,  0,  0, 125, 0,
227                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
228                 0,   146, 0,   0, 0, 0, 151, 0,   0, 154, 0,   0,   0,   0,  0,  0, 0,   0,
229                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
230                 181, 0,   0,   0, 0, 0, 0,   0,   0, 0,   191, 0,   0,   0,  0,  0, 0,   0,
231                 199, 0,   0,   0, 0, 0, 0,   206, 0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
232                 0,   0,   0,   0, 0, 0, 223, 0,   0, 0,   0,   0,   0,   0,  0,  0, 0,   234,
233                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   245, 0,   247, 0,  0,  0, 0,   0,
234                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   0,   264, 0,   0,  0,  0, 0,   0,
235                 0,   0,   0,   0, 0, 0, 0,   278, 0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
236                 0,   0,   0,   0, 0, 0, 0,   0,   0, 0,   299, 0,   0,   0,  0,  0, 0,   0,
237                 0,   0,   309, 0, 0, 0, 0,   0,   0, 0,   0,   0,   0,   0,  0,  0, 0,   0,
238                 0,   0,
239         },
240         {
241                 0, 2, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
242                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
243                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
244                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
245                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
246                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
247                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
248                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
249                 0, 0, 0,   212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
250                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
252                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
253                 0, 0, 315, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
254         },
255         {
256                 0,  195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
257                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
258                 53, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
259                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
260                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
261                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
262                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
263                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
264                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
265                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
266                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
267                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
268                 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
269         },
270         {
271                 0,   198, 0,  10, 0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
272                 114, 24,  25, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 38, 0,   0,  0, 0,   0, 0,
273                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
274                 0,   68,  0,  0,  0, 0, 0, 0, 0, 0, 0, 78, 0,   0,   0, 0,  0,   84, 0, 94,  0, 88,
275                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
276                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  123, 0,   0, 0,  127, 0,  0, 0,   0, 0,
277                 133, 0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  145, 0,   0, 0,  0,   0,  0, 152, 0, 0,
278                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
279                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
280                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
281                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
282                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   256, 0, 0,  0,   0,  0, 0,   0, 0,
283                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,  0, 0,   0, 0,
284                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  303, 0,  0, 0,   0, 0,
285                 0,   0,   0,  0,  0, 0, 0, 0, 0, 0, 0, 0,  0,   0,   0, 0,  0,   0,
286         },
287         {
288                 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 121, 0, 0, 0,
289                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
290                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
291                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,   0, 0, 0,   0, 0, 0,
292                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
293                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
294                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 176, 0, 0, 0,   0, 0, 0,
295                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
296                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
297                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
298                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
299                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0,   0, 0, 0,   0, 0, 0,
300                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
301         },
302         {
303                 0,   2,   0, 0,  5,   0, 0, 8,   0, 0, 0, 12,  0,   0,  0,   0,   0, 0,   0,   0,
304                 0,   0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   34, 0,   0,   0, 0,   0,   0,
305                 0,   0,   0, 44, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  55,  0,   0, 0,   0,   0,
306                 0,   62,  0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   73,  0,  0,   0,   0, 0,   0,   0,
307                 0,   0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   0,   0, 98,  0,   0,
308                 0,   0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   113, 0,  0,   0,   0, 0,   0,   120,
309                 0,   0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   0,   0, 0,   0,   0,
310                 141, 0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  155, 0,   0, 0,   0,   0,
311                 0,   162, 0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   0,   0, 178, 0,   0,
312                 0,   182, 0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   193, 0,  0,   0,   0, 0,   0,   200,
313                 0,   0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   216, 0, 0,   0,   0,
314                 0,   0,   0, 0,  225, 0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   0,   0, 0,   0,   0,
315                 0,   0,   0, 0,  0,   0, 0, 248, 0, 0, 0, 0,   0,   0,  0,   0,   0, 0,   0,   0,
316                 0,   0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   0,   0, 0,   279, 0,
317                 0,   0,   0, 0,  0,   0, 0, 288, 0, 0, 0, 292, 0,   0,  0,   0,   0, 0,   0,   0,
318                 301, 0,   0, 0,  0,   0, 0, 0,   0, 0, 0, 0,   0,   0,  0,   0,   0, 0,   319, 0,
319                 0,   0,   0, 0,  325, 0,
320         },
321         {
322                 0,   238, 0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 19, 0, 0,  0,
323                 129, 0,   0, 0,   0,   0,  0, 0, 0, 0, 33,  0, 0,   0, 37, 0,   39, 0, 0,  0, 0,  0,
324                 0,   46,  0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
325                 0,   0,   0, 0,   0,   72, 0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 87, 0,
326                 89,  0,   0, 0,   0,   0,  0, 0, 0, 0, 99,  0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
327                 0,   112, 0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
328                 0,   0,   0, 0,   142, 0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
329                 0,   0,   0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
330                 0,   0,   0, 0,   0,   0,  0, 0, 0, 0, 187, 0, 0,   0, 0,  192, 0,  0, 0,  0, 0,  0,
331                 219, 0,   0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
332                 0,   0,   0, 224, 0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
333                 0,   0,   0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
334                 0,   0,   0, 0,   269, 0,  0, 0, 0, 0, 0,   0, 277, 0, 0,  0,   0,  0, 0,  0, 0,  0,
335                 287, 0,   0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0, 0,  0, 0,  0,
336                 0,   0,   0, 0,   0,   0,  0, 0, 0, 0, 0,   0, 0,   0, 0,  0,   0,  0,
337         },
338         {
339                 0, 276, 0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   17, 18, 0, 0, 0, 0,
340                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
341                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
342                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
343                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
344                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 126, 0,  0,  0, 0, 0, 0,
345                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
346                 0, 0,   0, 0, 159, 0, 0, 0, 166, 0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
347                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
348                 0, 0,   0, 0, 0,   0, 0, 0, 207, 0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
349                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
350                 0, 0,   0, 0, 0,   0, 0, 0, 251, 252, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
351                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
352                 0, 0,   0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0,
353                 0, 310, 0, 0, 0,   0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0,   0,  0,
354         },
355         {
356                 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28,
357                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
358                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
359                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
360                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
361                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
362                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
363                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
364                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
365                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
366                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
367                 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368         },
369         {
370                 0, 2,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   20,
371                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   40,
372                 0, 0,   43,  0, 0,   0, 0, 0,   0, 0,  0, 52,  0, 0,   0, 0,  0, 0,   0,   60,
373                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 76, 0, 0,   0,   0,
374                 0, 0,   0,   0, 0,   0, 0, 0,   0, 90, 0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
375                 0, 0,   0,   0, 0,   0, 0, 108, 0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
376                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 132, 0, 0,   0, 0,  0, 138, 0,   0,
377                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
378                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
379                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
380                 0, 0,   0,   0, 205, 0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
381                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 232, 0, 0,   0, 0,  0, 0,   244, 0,
382                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 254, 0, 0,  0, 0,   0,   0,
383                 0, 262, 263, 0, 0,   0, 0, 0,   0, 0,  0, 272, 0, 0,   0, 0,  0, 0,   0,   0,
384                 0, 0,   0,   0, 0,   0, 0, 0,   0, 0,  0, 0,   0, 0,   0, 0,  0, 298, 0,   0,
385                 0, 0,   0,   0, 0,   0, 0, 308, 0, 0,  0, 0,   0, 0,   0, 0,  0, 0,   0,   0,
386                 0, 0,   0,   0, 0,   0,
387         },
388         {
389                 0, 294, 0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   15, 0,   0, 0, 0, 0, 0,
390                 0, 136, 0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   35,  0,  0,   0, 0, 0, 0, 0,
391                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
392                 0, 0,   0, 0, 0,   0,   70, 0,   0, 0,   0,   83,  0,   0,   0,  0,   0, 0, 0, 0, 0,
393                 0, 104, 0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  100, 0, 0, 0, 0, 0,
394                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
395                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
396                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
397                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
398                 0, 0,   0, 0, 194, 0,   0,  0,   0, 0,   0,   0,   208, 203, 0,  0,   0, 0, 0, 0, 0,
399                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
400                 0, 0,   0, 0, 0,   237, 0,  0,   0, 241, 0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
401                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,   0,   0,   0,   0,  0,   0, 0, 0, 0, 0,
402                 0, 0,   0, 0, 0,   0,   0,  281, 0, 283, 0,   0,   0,   0,   0,  289, 0, 0, 0, 0, 0,
403                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   311, 306, 0,   0,   0,  0,   0, 0, 0, 0, 0,
404                 0, 0,   0, 0, 0,   0,   0,  0,   0, 0,   0,
405         },
406         {
407                 0,   297, 0,  0, 0,   0,   0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
408                 0,   0,   21, 0, 0,   0,   0,   0,   0,   0,   0, 0,   31,  0, 0, 0,   0,   0,
409                 0,   0,   0,  0, 0,   0,   0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
410                 0,   0,   0,  0, 0,   0,   0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
411                 0,   0,   0,  0, 0,   0,   0,   0,   0,   82,  0, 0,   0,   0, 0, 0,   0,   0,
412                 0,   0,   0,  0, 0,   0,   0,   0,   0,   0,   0, 102, 0,   0, 0, 106, 0,   0,
413                 0,   110, 0,  0, 0,   0,   0,   0,   0,   118, 0, 0,   0,   0, 0, 124, 0,   0,
414                 0,   0,   0,  0, 0,   0,   0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   144,
415                 0,   0,   0,  0, 149, 0,   0,   0,   153, 0,   0, 0,   157, 0, 0, 0,   0,   0,
416                 0,   0,   0,  0, 0,   168, 0,   0,   171, 172, 0, 0,   0,   0, 0, 0,   179, 0,
417                 0,   0,   0,  0, 0,   0,   0,   0,   0,   190, 0, 0,   0,   0, 0, 0,   0,   0,
418                 0,   0,   0,  0, 0,   204, 0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
419                 0,   0,   0,  0, 0,   222, 0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   233, 0,
420                 0,   0,   0,  0, 0,   0,   0,   0,   243, 0,   0, 0,   0,   0, 0, 0,   0,   0,
421                 0,   0,   0,  0, 0,   0,   259, 0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
422                 0,   0,   0,  0, 0,   0,   0,   0,   0,   280, 0, 0,   0,   0, 0, 0,   0,   0,
423                 0,   290, 0,  0, 293, 0,   0,   296, 0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
424                 307, 0,   0,  0, 0,   0,   0,   0,   0,   0,   0, 0,   0,   0, 0, 0,   0,   0,
425                 0,   0,
426         },
427         {
428                 0, 2, 0,  150, 0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 16, 0, 0, 0,   0,  0, 0,
429                 0, 0, 0,  0,   0, 0, 29, 0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   42, 0, 0,
430                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
431                 0, 0, 69, 0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
432                 0, 0, 0,  92,  0, 0, 95, 0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 107, 0,  0, 0,
433                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 122, 0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
434                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
435                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   167, 0, 0, 0,  0, 0, 0,   0,  0, 0,
436                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
437                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
438                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
439                 0, 0, 0,  0,   0, 0, 0,  250, 0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
440                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   282, 0, 0, 0,  0, 0, 0,   0,  0, 0,
441                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0, 0,   0,  0, 0,
442                 0, 0, 0,  0,   0, 0, 0,  0,   0, 0, 0, 0,   0,   0, 0, 0,  0, 0,
443         },
444         {
445                 0, 2, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
446                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
447                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
448                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
449                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
450                 0, 0, 0, 0, 0, 0,   0, 0, 0, 130, 0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
451                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 186, 0, 0, 0, 0,   0,
452                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
453                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
454                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 230, 0, 0, 0, 0, 0,   0, 0, 0, 260, 0,
455                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
456                 0, 0, 0, 0, 0, 270, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
457                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0, 0,   0, 0, 0, 0,   0,
458                 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,   0, 0, 0, 0,
459         },
460         {
461                 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
462                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
463                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
464                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
470                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
471                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
473                 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
474         },
475         {
476                 0, 2, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
477                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
478                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
479                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
480                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
481                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
482                 0, 0, 0,   0, 0, 0, 0, 0, 165, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
483                 0, 0, 185, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
484                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0,
485                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
486                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
487                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0,
488                 0, 0, 0,   0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0,
489         },
490         {
491                 0, 2, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
492                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
493                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
494                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
495                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 103, 0, 0, 0,   0, 0,   0,   0,
496                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 128, 0, 0,   0,   0,
497                 0, 0, 135, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
498                 0, 0, 0,   158, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
499                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   197, 0,
500                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 218, 0,   0,
501                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
502                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
503                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
504                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0,   0, 0, 0,   0, 0,   0,   0,
505                 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 321, 0, 0,   0, 0, 0,
506         },
507 };
508 
509 static int8_t accepts[326] = {
510         -1, -1, 39, 39, -1, -1, -1, -1, -1, 3,  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
511         -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1,
512         17, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, 20, -1,
513         -1, -1, -1, -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, -1, -1, -1, 18, -1, -1, -1, -1, -1,
514         -1, -1, 24, -1, -1, 22, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, -1, -1, -1, -1, -1,
515         -1, -1, -1, 23, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, 11, -1, -1, -1,
516         -1, -1, -1, 13, -1, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1,
517         -1, 6,  39, -1, -1, -1, 38, 39, -1, -1, -1, 4,  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
518         -1, -1, -1, -1, -1, -1, -1, -1, -1, 7,  -1, -1, -1, -1, -1, -1, -1, -1, 35, 39, -1, 37,
519         39, -1, -1, -1, -1, -1, -1, -1, -1, 29, 28, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1,
520         -1, -1, -1, -1, -1, 1,  39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 34, 39, -1, -1, -1,
521         -1, 2,  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8,  -1, -1, -1, -1,
522         -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9,  39, -1, -1, -1, -1, 27, -1, -1, -1, -1,
523         -1, -1, -1, -1, -1, -1, -1, 26, 39, -1, 5,  39, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
524         -1, -1, 32, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 39, -1, -1, 36,
525 };
526 
next()527 LayoutToken LayoutLexer::next() {
528     int startOffset = fOffset;
529     if (startOffset == fLength) {
530         return LayoutToken(LayoutToken::END_OF_FILE, startOffset, 0);
531     }
532     int offset = startOffset;
533     int state = 1;
534     LayoutToken::Kind lastAccept = LayoutToken::Kind::INVALID;
535     int lastAcceptEnd = startOffset + 1;
536     while (offset < fLength) {
537         if ((uint8_t)fText[offset] >= 127) {
538             break;
539         }
540         state = transitions[mappings[(int)fText[offset]]][state];
541         ++offset;
542         if (!state) {
543             break;
544         }
545         if (accepts[state]) {
546             lastAccept = (LayoutToken::Kind)accepts[state];
547             lastAcceptEnd = offset;
548         }
549     }
550     fOffset = lastAcceptEnd;
551     return LayoutToken(lastAccept, startOffset, lastAcceptEnd - startOffset);
552 }
553 
554 }  // namespace
555