Coverage Report

Created: 2026-08-14 07:08

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/glslang/glslang/MachineIndependent/glslang_tab.cpp
Line
Count
Source
1
/* A Bison parser, made by GNU Bison 3.8.2.  */
2
3
/* Bison implementation for Yacc-like parsers in C
4
5
   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6
   Inc.
7
8
   This program is free software: you can redistribute it and/or modify
9
   it under the terms of the GNU General Public License as published by
10
   the Free Software Foundation, either version 3 of the License, or
11
   (at your option) any later version.
12
13
   This program is distributed in the hope that it will be useful,
14
   but WITHOUT ANY WARRANTY; without even the implied warranty of
15
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
   GNU General Public License for more details.
17
18
   You should have received a copy of the GNU General Public License
19
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
20
21
/* As a special exception, you may create a larger work that contains
22
   part or all of the Bison parser skeleton and distribute that work
23
   under terms of your choice, so long as that work isn't itself a
24
   parser generator using the skeleton or a modified version thereof
25
   as a parser skeleton.  Alternatively, if you modify or redistribute
26
   the parser skeleton itself, you may (at your option) remove this
27
   special exception, which will cause the skeleton and the resulting
28
   Bison output files to be licensed under the GNU General Public
29
   License without this special exception.
30
31
   This special exception was added by the Free Software Foundation in
32
   version 2.2 of Bison.  */
33
34
/* C LALR(1) parser skeleton written by Richard Stallman, by
35
   simplifying the original so-called "semantic" parser.  */
36
37
/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38
   especially those whose name start with YY_ or yy_.  They are
39
   private implementation details that can be changed or removed.  */
40
41
/* All symbols defined below should begin with yy or YY, to avoid
42
   infringing on user name space.  This should be done even for local
43
   variables, as they might otherwise be expanded by user macros.
44
   There are some unavoidable exceptions within include files to
45
   define necessary library symbols; they are noted "INFRINGES ON
46
   USER NAME SPACE" below.  */
47
48
/* Identify Bison output, and Bison version.  */
49
#define YYBISON 30802
50
51
/* Bison version string.  */
52
#define YYBISON_VERSION "3.8.2"
53
54
/* Skeleton name.  */
55
#define YYSKELETON_NAME "yacc.c"
56
57
/* Pure parsers.  */
58
#define YYPURE 1
59
60
/* Push parsers.  */
61
#define YYPUSH 0
62
63
/* Pull parsers.  */
64
#define YYPULL 1
65
66
67
68
69
/* First part of user prologue.  */
70
#line 44 "MachineIndependent/glslang.y"
71
72
73
/* Based on:
74
ANSI C Yacc grammar
75
76
In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
77
matching Lex specification) for the April 30, 1985 draft version of the
78
ANSI C standard.  Tom Stockfisch reposted it to net.sources in 1987; that
79
original, as mentioned in the answer to question 17.25 of the comp.lang.c
80
FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
81
82
I intend to keep this version as close to the current C Standard grammar as
83
possible; please let me know if you discover discrepancies.
84
85
Jutta Degener, 1995
86
*/
87
88
#include "SymbolTable.h"
89
#include "ParseHelper.h"
90
#include "../Public/ShaderLang.h"
91
#include "attribute.h"
92
93
using namespace glslang;
94
95
96
#line 97 "MachineIndependent/glslang_tab.cpp"
97
98
# ifndef YY_CAST
99
#  ifdef __cplusplus
100
3.14M
#   define YY_CAST(Type, Val) static_cast<Type> (Val)
101
#   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
102
#  else
103
#   define YY_CAST(Type, Val) ((Type) (Val))
104
#   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
105
#  endif
106
# endif
107
# ifndef YY_NULLPTR
108
#  if defined __cplusplus
109
#   if 201103L <= __cplusplus
110
264
#    define YY_NULLPTR nullptr
111
#   else
112
#    define YY_NULLPTR 0
113
#   endif
114
#  else
115
#   define YY_NULLPTR ((void*)0)
116
#  endif
117
# endif
118
119
#include "glslang_tab.cpp.h"
120
/* Symbol kind.  */
121
enum yysymbol_kind_t
122
{
123
  YYSYMBOL_YYEMPTY = -2,
124
  YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
125
  YYSYMBOL_YYerror = 1,                    /* error  */
126
  YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
127
  YYSYMBOL_CONST = 3,                      /* CONST  */
128
  YYSYMBOL_BOOL = 4,                       /* BOOL  */
129
  YYSYMBOL_INT = 5,                        /* INT  */
130
  YYSYMBOL_UINT = 6,                       /* UINT  */
131
  YYSYMBOL_FLOAT = 7,                      /* FLOAT  */
132
  YYSYMBOL_BVEC2 = 8,                      /* BVEC2  */
133
  YYSYMBOL_BVEC3 = 9,                      /* BVEC3  */
134
  YYSYMBOL_BVEC4 = 10,                     /* BVEC4  */
135
  YYSYMBOL_IVEC2 = 11,                     /* IVEC2  */
136
  YYSYMBOL_IVEC3 = 12,                     /* IVEC3  */
137
  YYSYMBOL_IVEC4 = 13,                     /* IVEC4  */
138
  YYSYMBOL_UVEC2 = 14,                     /* UVEC2  */
139
  YYSYMBOL_UVEC3 = 15,                     /* UVEC3  */
140
  YYSYMBOL_UVEC4 = 16,                     /* UVEC4  */
141
  YYSYMBOL_VEC2 = 17,                      /* VEC2  */
142
  YYSYMBOL_VEC3 = 18,                      /* VEC3  */
143
  YYSYMBOL_VEC4 = 19,                      /* VEC4  */
144
  YYSYMBOL_MAT2 = 20,                      /* MAT2  */
145
  YYSYMBOL_MAT3 = 21,                      /* MAT3  */
146
  YYSYMBOL_MAT4 = 22,                      /* MAT4  */
147
  YYSYMBOL_MAT2X2 = 23,                    /* MAT2X2  */
148
  YYSYMBOL_MAT2X3 = 24,                    /* MAT2X3  */
149
  YYSYMBOL_MAT2X4 = 25,                    /* MAT2X4  */
150
  YYSYMBOL_MAT3X2 = 26,                    /* MAT3X2  */
151
  YYSYMBOL_MAT3X3 = 27,                    /* MAT3X3  */
152
  YYSYMBOL_MAT3X4 = 28,                    /* MAT3X4  */
153
  YYSYMBOL_MAT4X2 = 29,                    /* MAT4X2  */
154
  YYSYMBOL_MAT4X3 = 30,                    /* MAT4X3  */
155
  YYSYMBOL_MAT4X4 = 31,                    /* MAT4X4  */
156
  YYSYMBOL_SAMPLER2D = 32,                 /* SAMPLER2D  */
157
  YYSYMBOL_SAMPLER3D = 33,                 /* SAMPLER3D  */
158
  YYSYMBOL_SAMPLERCUBE = 34,               /* SAMPLERCUBE  */
159
  YYSYMBOL_SAMPLER2DSHADOW = 35,           /* SAMPLER2DSHADOW  */
160
  YYSYMBOL_SAMPLERCUBESHADOW = 36,         /* SAMPLERCUBESHADOW  */
161
  YYSYMBOL_SAMPLER2DARRAY = 37,            /* SAMPLER2DARRAY  */
162
  YYSYMBOL_SAMPLER2DARRAYSHADOW = 38,      /* SAMPLER2DARRAYSHADOW  */
163
  YYSYMBOL_ISAMPLER2D = 39,                /* ISAMPLER2D  */
164
  YYSYMBOL_ISAMPLER3D = 40,                /* ISAMPLER3D  */
165
  YYSYMBOL_ISAMPLERCUBE = 41,              /* ISAMPLERCUBE  */
166
  YYSYMBOL_ISAMPLER2DARRAY = 42,           /* ISAMPLER2DARRAY  */
167
  YYSYMBOL_USAMPLER2D = 43,                /* USAMPLER2D  */
168
  YYSYMBOL_USAMPLER3D = 44,                /* USAMPLER3D  */
169
  YYSYMBOL_USAMPLERCUBE = 45,              /* USAMPLERCUBE  */
170
  YYSYMBOL_USAMPLER2DARRAY = 46,           /* USAMPLER2DARRAY  */
171
  YYSYMBOL_SAMPLER = 47,                   /* SAMPLER  */
172
  YYSYMBOL_SAMPLERSHADOW = 48,             /* SAMPLERSHADOW  */
173
  YYSYMBOL_TEXTURE2D = 49,                 /* TEXTURE2D  */
174
  YYSYMBOL_TEXTURE3D = 50,                 /* TEXTURE3D  */
175
  YYSYMBOL_TEXTURECUBE = 51,               /* TEXTURECUBE  */
176
  YYSYMBOL_TEXTURE2DARRAY = 52,            /* TEXTURE2DARRAY  */
177
  YYSYMBOL_ITEXTURE2D = 53,                /* ITEXTURE2D  */
178
  YYSYMBOL_ITEXTURE3D = 54,                /* ITEXTURE3D  */
179
  YYSYMBOL_ITEXTURECUBE = 55,              /* ITEXTURECUBE  */
180
  YYSYMBOL_ITEXTURE2DARRAY = 56,           /* ITEXTURE2DARRAY  */
181
  YYSYMBOL_UTEXTURE2D = 57,                /* UTEXTURE2D  */
182
  YYSYMBOL_UTEXTURE3D = 58,                /* UTEXTURE3D  */
183
  YYSYMBOL_UTEXTURECUBE = 59,              /* UTEXTURECUBE  */
184
  YYSYMBOL_UTEXTURE2DARRAY = 60,           /* UTEXTURE2DARRAY  */
185
  YYSYMBOL_ATTRIBUTE = 61,                 /* ATTRIBUTE  */
186
  YYSYMBOL_VARYING = 62,                   /* VARYING  */
187
  YYSYMBOL_FLOATE5M2_T = 63,               /* FLOATE5M2_T  */
188
  YYSYMBOL_FLOATE4M3_T = 64,               /* FLOATE4M3_T  */
189
  YYSYMBOL_BFLOAT16_T = 65,                /* BFLOAT16_T  */
190
  YYSYMBOL_FLOAT16_T = 66,                 /* FLOAT16_T  */
191
  YYSYMBOL_FLOAT32_T = 67,                 /* FLOAT32_T  */
192
  YYSYMBOL_DOUBLE = 68,                    /* DOUBLE  */
193
  YYSYMBOL_FLOAT64_T = 69,                 /* FLOAT64_T  */
194
  YYSYMBOL_FLOATE2M1_T = 70,               /* FLOATE2M1_T  */
195
  YYSYMBOL_FLOATE3M2_T = 71,               /* FLOATE3M2_T  */
196
  YYSYMBOL_FLOATE2M3_T = 72,               /* FLOATE2M3_T  */
197
  YYSYMBOL_FLOATUE8M0_T = 73,              /* FLOATUE8M0_T  */
198
  YYSYMBOL_FLOATMXINT8_T = 74,             /* FLOATMXINT8_T  */
199
  YYSYMBOL_INT64_T = 75,                   /* INT64_T  */
200
  YYSYMBOL_UINT64_T = 76,                  /* UINT64_T  */
201
  YYSYMBOL_INT32_T = 77,                   /* INT32_T  */
202
  YYSYMBOL_UINT32_T = 78,                  /* UINT32_T  */
203
  YYSYMBOL_INT16_T = 79,                   /* INT16_T  */
204
  YYSYMBOL_UINT16_T = 80,                  /* UINT16_T  */
205
  YYSYMBOL_INT8_T = 81,                    /* INT8_T  */
206
  YYSYMBOL_UINT8_T = 82,                   /* UINT8_T  */
207
  YYSYMBOL_I64VEC2 = 83,                   /* I64VEC2  */
208
  YYSYMBOL_I64VEC3 = 84,                   /* I64VEC3  */
209
  YYSYMBOL_I64VEC4 = 85,                   /* I64VEC4  */
210
  YYSYMBOL_U64VEC2 = 86,                   /* U64VEC2  */
211
  YYSYMBOL_U64VEC3 = 87,                   /* U64VEC3  */
212
  YYSYMBOL_U64VEC4 = 88,                   /* U64VEC4  */
213
  YYSYMBOL_I32VEC2 = 89,                   /* I32VEC2  */
214
  YYSYMBOL_I32VEC3 = 90,                   /* I32VEC3  */
215
  YYSYMBOL_I32VEC4 = 91,                   /* I32VEC4  */
216
  YYSYMBOL_U32VEC2 = 92,                   /* U32VEC2  */
217
  YYSYMBOL_U32VEC3 = 93,                   /* U32VEC3  */
218
  YYSYMBOL_U32VEC4 = 94,                   /* U32VEC4  */
219
  YYSYMBOL_I16VEC2 = 95,                   /* I16VEC2  */
220
  YYSYMBOL_I16VEC3 = 96,                   /* I16VEC3  */
221
  YYSYMBOL_I16VEC4 = 97,                   /* I16VEC4  */
222
  YYSYMBOL_U16VEC2 = 98,                   /* U16VEC2  */
223
  YYSYMBOL_U16VEC3 = 99,                   /* U16VEC3  */
224
  YYSYMBOL_U16VEC4 = 100,                  /* U16VEC4  */
225
  YYSYMBOL_I8VEC2 = 101,                   /* I8VEC2  */
226
  YYSYMBOL_I8VEC3 = 102,                   /* I8VEC3  */
227
  YYSYMBOL_I8VEC4 = 103,                   /* I8VEC4  */
228
  YYSYMBOL_U8VEC2 = 104,                   /* U8VEC2  */
229
  YYSYMBOL_U8VEC3 = 105,                   /* U8VEC3  */
230
  YYSYMBOL_U8VEC4 = 106,                   /* U8VEC4  */
231
  YYSYMBOL_DVEC2 = 107,                    /* DVEC2  */
232
  YYSYMBOL_DVEC3 = 108,                    /* DVEC3  */
233
  YYSYMBOL_DVEC4 = 109,                    /* DVEC4  */
234
  YYSYMBOL_DMAT2 = 110,                    /* DMAT2  */
235
  YYSYMBOL_DMAT3 = 111,                    /* DMAT3  */
236
  YYSYMBOL_DMAT4 = 112,                    /* DMAT4  */
237
  YYSYMBOL_BF16VEC2 = 113,                 /* BF16VEC2  */
238
  YYSYMBOL_BF16VEC3 = 114,                 /* BF16VEC3  */
239
  YYSYMBOL_BF16VEC4 = 115,                 /* BF16VEC4  */
240
  YYSYMBOL_FE5M2VEC2 = 116,                /* FE5M2VEC2  */
241
  YYSYMBOL_FE5M2VEC3 = 117,                /* FE5M2VEC3  */
242
  YYSYMBOL_FE5M2VEC4 = 118,                /* FE5M2VEC4  */
243
  YYSYMBOL_FE4M3VEC2 = 119,                /* FE4M3VEC2  */
244
  YYSYMBOL_FE4M3VEC3 = 120,                /* FE4M3VEC3  */
245
  YYSYMBOL_FE4M3VEC4 = 121,                /* FE4M3VEC4  */
246
  YYSYMBOL_FE2M1VEC2 = 122,                /* FE2M1VEC2  */
247
  YYSYMBOL_FE2M1VEC3 = 123,                /* FE2M1VEC3  */
248
  YYSYMBOL_FE2M1VEC4 = 124,                /* FE2M1VEC4  */
249
  YYSYMBOL_FE3M2VEC2 = 125,                /* FE3M2VEC2  */
250
  YYSYMBOL_FE3M2VEC3 = 126,                /* FE3M2VEC3  */
251
  YYSYMBOL_FE3M2VEC4 = 127,                /* FE3M2VEC4  */
252
  YYSYMBOL_FE2M3VEC2 = 128,                /* FE2M3VEC2  */
253
  YYSYMBOL_FE2M3VEC3 = 129,                /* FE2M3VEC3  */
254
  YYSYMBOL_FE2M3VEC4 = 130,                /* FE2M3VEC4  */
255
  YYSYMBOL_FUE8M0VEC2 = 131,               /* FUE8M0VEC2  */
256
  YYSYMBOL_FUE8M0VEC3 = 132,               /* FUE8M0VEC3  */
257
  YYSYMBOL_FUE8M0VEC4 = 133,               /* FUE8M0VEC4  */
258
  YYSYMBOL_FMXINT8VEC2 = 134,              /* FMXINT8VEC2  */
259
  YYSYMBOL_FMXINT8VEC3 = 135,              /* FMXINT8VEC3  */
260
  YYSYMBOL_FMXINT8VEC4 = 136,              /* FMXINT8VEC4  */
261
  YYSYMBOL_F16VEC2 = 137,                  /* F16VEC2  */
262
  YYSYMBOL_F16VEC3 = 138,                  /* F16VEC3  */
263
  YYSYMBOL_F16VEC4 = 139,                  /* F16VEC4  */
264
  YYSYMBOL_F16MAT2 = 140,                  /* F16MAT2  */
265
  YYSYMBOL_F16MAT3 = 141,                  /* F16MAT3  */
266
  YYSYMBOL_F16MAT4 = 142,                  /* F16MAT4  */
267
  YYSYMBOL_F32VEC2 = 143,                  /* F32VEC2  */
268
  YYSYMBOL_F32VEC3 = 144,                  /* F32VEC3  */
269
  YYSYMBOL_F32VEC4 = 145,                  /* F32VEC4  */
270
  YYSYMBOL_F32MAT2 = 146,                  /* F32MAT2  */
271
  YYSYMBOL_F32MAT3 = 147,                  /* F32MAT3  */
272
  YYSYMBOL_F32MAT4 = 148,                  /* F32MAT4  */
273
  YYSYMBOL_F64VEC2 = 149,                  /* F64VEC2  */
274
  YYSYMBOL_F64VEC3 = 150,                  /* F64VEC3  */
275
  YYSYMBOL_F64VEC4 = 151,                  /* F64VEC4  */
276
  YYSYMBOL_F64MAT2 = 152,                  /* F64MAT2  */
277
  YYSYMBOL_F64MAT3 = 153,                  /* F64MAT3  */
278
  YYSYMBOL_F64MAT4 = 154,                  /* F64MAT4  */
279
  YYSYMBOL_DMAT2X2 = 155,                  /* DMAT2X2  */
280
  YYSYMBOL_DMAT2X3 = 156,                  /* DMAT2X3  */
281
  YYSYMBOL_DMAT2X4 = 157,                  /* DMAT2X4  */
282
  YYSYMBOL_DMAT3X2 = 158,                  /* DMAT3X2  */
283
  YYSYMBOL_DMAT3X3 = 159,                  /* DMAT3X3  */
284
  YYSYMBOL_DMAT3X4 = 160,                  /* DMAT3X4  */
285
  YYSYMBOL_DMAT4X2 = 161,                  /* DMAT4X2  */
286
  YYSYMBOL_DMAT4X3 = 162,                  /* DMAT4X3  */
287
  YYSYMBOL_DMAT4X4 = 163,                  /* DMAT4X4  */
288
  YYSYMBOL_F16MAT2X2 = 164,                /* F16MAT2X2  */
289
  YYSYMBOL_F16MAT2X3 = 165,                /* F16MAT2X3  */
290
  YYSYMBOL_F16MAT2X4 = 166,                /* F16MAT2X4  */
291
  YYSYMBOL_F16MAT3X2 = 167,                /* F16MAT3X2  */
292
  YYSYMBOL_F16MAT3X3 = 168,                /* F16MAT3X3  */
293
  YYSYMBOL_F16MAT3X4 = 169,                /* F16MAT3X4  */
294
  YYSYMBOL_F16MAT4X2 = 170,                /* F16MAT4X2  */
295
  YYSYMBOL_F16MAT4X3 = 171,                /* F16MAT4X3  */
296
  YYSYMBOL_F16MAT4X4 = 172,                /* F16MAT4X4  */
297
  YYSYMBOL_F32MAT2X2 = 173,                /* F32MAT2X2  */
298
  YYSYMBOL_F32MAT2X3 = 174,                /* F32MAT2X3  */
299
  YYSYMBOL_F32MAT2X4 = 175,                /* F32MAT2X4  */
300
  YYSYMBOL_F32MAT3X2 = 176,                /* F32MAT3X2  */
301
  YYSYMBOL_F32MAT3X3 = 177,                /* F32MAT3X3  */
302
  YYSYMBOL_F32MAT3X4 = 178,                /* F32MAT3X4  */
303
  YYSYMBOL_F32MAT4X2 = 179,                /* F32MAT4X2  */
304
  YYSYMBOL_F32MAT4X3 = 180,                /* F32MAT4X3  */
305
  YYSYMBOL_F32MAT4X4 = 181,                /* F32MAT4X4  */
306
  YYSYMBOL_F64MAT2X2 = 182,                /* F64MAT2X2  */
307
  YYSYMBOL_F64MAT2X3 = 183,                /* F64MAT2X3  */
308
  YYSYMBOL_F64MAT2X4 = 184,                /* F64MAT2X4  */
309
  YYSYMBOL_F64MAT3X2 = 185,                /* F64MAT3X2  */
310
  YYSYMBOL_F64MAT3X3 = 186,                /* F64MAT3X3  */
311
  YYSYMBOL_F64MAT3X4 = 187,                /* F64MAT3X4  */
312
  YYSYMBOL_F64MAT4X2 = 188,                /* F64MAT4X2  */
313
  YYSYMBOL_F64MAT4X3 = 189,                /* F64MAT4X3  */
314
  YYSYMBOL_F64MAT4X4 = 190,                /* F64MAT4X4  */
315
  YYSYMBOL_ATOMIC_UINT = 191,              /* ATOMIC_UINT  */
316
  YYSYMBOL_ACCSTRUCTNV = 192,              /* ACCSTRUCTNV  */
317
  YYSYMBOL_ACCSTRUCTEXT = 193,             /* ACCSTRUCTEXT  */
318
  YYSYMBOL_RAYQUERYEXT = 194,              /* RAYQUERYEXT  */
319
  YYSYMBOL_FCOOPMATNV = 195,               /* FCOOPMATNV  */
320
  YYSYMBOL_ICOOPMATNV = 196,               /* ICOOPMATNV  */
321
  YYSYMBOL_UCOOPMATNV = 197,               /* UCOOPMATNV  */
322
  YYSYMBOL_COOPMAT = 198,                  /* COOPMAT  */
323
  YYSYMBOL_COOPVECNV = 199,                /* COOPVECNV  */
324
  YYSYMBOL_VECTOR = 200,                   /* VECTOR  */
325
  YYSYMBOL_HITOBJECTNV = 201,              /* HITOBJECTNV  */
326
  YYSYMBOL_HITOBJECTATTRNV = 202,          /* HITOBJECTATTRNV  */
327
  YYSYMBOL_HITOBJECTEXT = 203,             /* HITOBJECTEXT  */
328
  YYSYMBOL_HITOBJECTATTREXT = 204,         /* HITOBJECTATTREXT  */
329
  YYSYMBOL_TENSORLAYOUTNV = 205,           /* TENSORLAYOUTNV  */
330
  YYSYMBOL_TENSORVIEWNV = 206,             /* TENSORVIEWNV  */
331
  YYSYMBOL_TENSORARM = 207,                /* TENSORARM  */
332
  YYSYMBOL_SAMPLERCUBEARRAY = 208,         /* SAMPLERCUBEARRAY  */
333
  YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 209,   /* SAMPLERCUBEARRAYSHADOW  */
334
  YYSYMBOL_ISAMPLERCUBEARRAY = 210,        /* ISAMPLERCUBEARRAY  */
335
  YYSYMBOL_USAMPLERCUBEARRAY = 211,        /* USAMPLERCUBEARRAY  */
336
  YYSYMBOL_SAMPLER1D = 212,                /* SAMPLER1D  */
337
  YYSYMBOL_SAMPLER1DARRAY = 213,           /* SAMPLER1DARRAY  */
338
  YYSYMBOL_SAMPLER1DARRAYSHADOW = 214,     /* SAMPLER1DARRAYSHADOW  */
339
  YYSYMBOL_ISAMPLER1D = 215,               /* ISAMPLER1D  */
340
  YYSYMBOL_SAMPLER1DSHADOW = 216,          /* SAMPLER1DSHADOW  */
341
  YYSYMBOL_SAMPLER2DRECT = 217,            /* SAMPLER2DRECT  */
342
  YYSYMBOL_SAMPLER2DRECTSHADOW = 218,      /* SAMPLER2DRECTSHADOW  */
343
  YYSYMBOL_ISAMPLER2DRECT = 219,           /* ISAMPLER2DRECT  */
344
  YYSYMBOL_USAMPLER2DRECT = 220,           /* USAMPLER2DRECT  */
345
  YYSYMBOL_SAMPLERBUFFER = 221,            /* SAMPLERBUFFER  */
346
  YYSYMBOL_ISAMPLERBUFFER = 222,           /* ISAMPLERBUFFER  */
347
  YYSYMBOL_USAMPLERBUFFER = 223,           /* USAMPLERBUFFER  */
348
  YYSYMBOL_SAMPLER2DMS = 224,              /* SAMPLER2DMS  */
349
  YYSYMBOL_ISAMPLER2DMS = 225,             /* ISAMPLER2DMS  */
350
  YYSYMBOL_USAMPLER2DMS = 226,             /* USAMPLER2DMS  */
351
  YYSYMBOL_SAMPLER2DMSARRAY = 227,         /* SAMPLER2DMSARRAY  */
352
  YYSYMBOL_ISAMPLER2DMSARRAY = 228,        /* ISAMPLER2DMSARRAY  */
353
  YYSYMBOL_USAMPLER2DMSARRAY = 229,        /* USAMPLER2DMSARRAY  */
354
  YYSYMBOL_SAMPLEREXTERNALOES = 230,       /* SAMPLEREXTERNALOES  */
355
  YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 231,  /* SAMPLEREXTERNAL2DY2YEXT  */
356
  YYSYMBOL_ISAMPLER1DARRAY = 232,          /* ISAMPLER1DARRAY  */
357
  YYSYMBOL_USAMPLER1D = 233,               /* USAMPLER1D  */
358
  YYSYMBOL_USAMPLER1DARRAY = 234,          /* USAMPLER1DARRAY  */
359
  YYSYMBOL_F16SAMPLER1D = 235,             /* F16SAMPLER1D  */
360
  YYSYMBOL_F16SAMPLER2D = 236,             /* F16SAMPLER2D  */
361
  YYSYMBOL_F16SAMPLER3D = 237,             /* F16SAMPLER3D  */
362
  YYSYMBOL_F16SAMPLER2DRECT = 238,         /* F16SAMPLER2DRECT  */
363
  YYSYMBOL_F16SAMPLERCUBE = 239,           /* F16SAMPLERCUBE  */
364
  YYSYMBOL_F16SAMPLER1DARRAY = 240,        /* F16SAMPLER1DARRAY  */
365
  YYSYMBOL_F16SAMPLER2DARRAY = 241,        /* F16SAMPLER2DARRAY  */
366
  YYSYMBOL_F16SAMPLERCUBEARRAY = 242,      /* F16SAMPLERCUBEARRAY  */
367
  YYSYMBOL_F16SAMPLERBUFFER = 243,         /* F16SAMPLERBUFFER  */
368
  YYSYMBOL_F16SAMPLER2DMS = 244,           /* F16SAMPLER2DMS  */
369
  YYSYMBOL_F16SAMPLER2DMSARRAY = 245,      /* F16SAMPLER2DMSARRAY  */
370
  YYSYMBOL_F16SAMPLER1DSHADOW = 246,       /* F16SAMPLER1DSHADOW  */
371
  YYSYMBOL_F16SAMPLER2DSHADOW = 247,       /* F16SAMPLER2DSHADOW  */
372
  YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 248,  /* F16SAMPLER1DARRAYSHADOW  */
373
  YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 249,  /* F16SAMPLER2DARRAYSHADOW  */
374
  YYSYMBOL_F16SAMPLER2DRECTSHADOW = 250,   /* F16SAMPLER2DRECTSHADOW  */
375
  YYSYMBOL_F16SAMPLERCUBESHADOW = 251,     /* F16SAMPLERCUBESHADOW  */
376
  YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 252, /* F16SAMPLERCUBEARRAYSHADOW  */
377
  YYSYMBOL_IMAGE1D = 253,                  /* IMAGE1D  */
378
  YYSYMBOL_IIMAGE1D = 254,                 /* IIMAGE1D  */
379
  YYSYMBOL_UIMAGE1D = 255,                 /* UIMAGE1D  */
380
  YYSYMBOL_IMAGE2D = 256,                  /* IMAGE2D  */
381
  YYSYMBOL_IIMAGE2D = 257,                 /* IIMAGE2D  */
382
  YYSYMBOL_UIMAGE2D = 258,                 /* UIMAGE2D  */
383
  YYSYMBOL_IMAGE3D = 259,                  /* IMAGE3D  */
384
  YYSYMBOL_IIMAGE3D = 260,                 /* IIMAGE3D  */
385
  YYSYMBOL_UIMAGE3D = 261,                 /* UIMAGE3D  */
386
  YYSYMBOL_IMAGE2DRECT = 262,              /* IMAGE2DRECT  */
387
  YYSYMBOL_IIMAGE2DRECT = 263,             /* IIMAGE2DRECT  */
388
  YYSYMBOL_UIMAGE2DRECT = 264,             /* UIMAGE2DRECT  */
389
  YYSYMBOL_IMAGECUBE = 265,                /* IMAGECUBE  */
390
  YYSYMBOL_IIMAGECUBE = 266,               /* IIMAGECUBE  */
391
  YYSYMBOL_UIMAGECUBE = 267,               /* UIMAGECUBE  */
392
  YYSYMBOL_IMAGEBUFFER = 268,              /* IMAGEBUFFER  */
393
  YYSYMBOL_IIMAGEBUFFER = 269,             /* IIMAGEBUFFER  */
394
  YYSYMBOL_UIMAGEBUFFER = 270,             /* UIMAGEBUFFER  */
395
  YYSYMBOL_IMAGE1DARRAY = 271,             /* IMAGE1DARRAY  */
396
  YYSYMBOL_IIMAGE1DARRAY = 272,            /* IIMAGE1DARRAY  */
397
  YYSYMBOL_UIMAGE1DARRAY = 273,            /* UIMAGE1DARRAY  */
398
  YYSYMBOL_IMAGE2DARRAY = 274,             /* IMAGE2DARRAY  */
399
  YYSYMBOL_IIMAGE2DARRAY = 275,            /* IIMAGE2DARRAY  */
400
  YYSYMBOL_UIMAGE2DARRAY = 276,            /* UIMAGE2DARRAY  */
401
  YYSYMBOL_IMAGECUBEARRAY = 277,           /* IMAGECUBEARRAY  */
402
  YYSYMBOL_IIMAGECUBEARRAY = 278,          /* IIMAGECUBEARRAY  */
403
  YYSYMBOL_UIMAGECUBEARRAY = 279,          /* UIMAGECUBEARRAY  */
404
  YYSYMBOL_IMAGE2DMS = 280,                /* IMAGE2DMS  */
405
  YYSYMBOL_IIMAGE2DMS = 281,               /* IIMAGE2DMS  */
406
  YYSYMBOL_UIMAGE2DMS = 282,               /* UIMAGE2DMS  */
407
  YYSYMBOL_IMAGE2DMSARRAY = 283,           /* IMAGE2DMSARRAY  */
408
  YYSYMBOL_IIMAGE2DMSARRAY = 284,          /* IIMAGE2DMSARRAY  */
409
  YYSYMBOL_UIMAGE2DMSARRAY = 285,          /* UIMAGE2DMSARRAY  */
410
  YYSYMBOL_F16IMAGE1D = 286,               /* F16IMAGE1D  */
411
  YYSYMBOL_F16IMAGE2D = 287,               /* F16IMAGE2D  */
412
  YYSYMBOL_F16IMAGE3D = 288,               /* F16IMAGE3D  */
413
  YYSYMBOL_F16IMAGE2DRECT = 289,           /* F16IMAGE2DRECT  */
414
  YYSYMBOL_F16IMAGECUBE = 290,             /* F16IMAGECUBE  */
415
  YYSYMBOL_F16IMAGE1DARRAY = 291,          /* F16IMAGE1DARRAY  */
416
  YYSYMBOL_F16IMAGE2DARRAY = 292,          /* F16IMAGE2DARRAY  */
417
  YYSYMBOL_F16IMAGECUBEARRAY = 293,        /* F16IMAGECUBEARRAY  */
418
  YYSYMBOL_F16IMAGEBUFFER = 294,           /* F16IMAGEBUFFER  */
419
  YYSYMBOL_F16IMAGE2DMS = 295,             /* F16IMAGE2DMS  */
420
  YYSYMBOL_F16IMAGE2DMSARRAY = 296,        /* F16IMAGE2DMSARRAY  */
421
  YYSYMBOL_I64IMAGE1D = 297,               /* I64IMAGE1D  */
422
  YYSYMBOL_U64IMAGE1D = 298,               /* U64IMAGE1D  */
423
  YYSYMBOL_I64IMAGE2D = 299,               /* I64IMAGE2D  */
424
  YYSYMBOL_U64IMAGE2D = 300,               /* U64IMAGE2D  */
425
  YYSYMBOL_I64IMAGE3D = 301,               /* I64IMAGE3D  */
426
  YYSYMBOL_U64IMAGE3D = 302,               /* U64IMAGE3D  */
427
  YYSYMBOL_I64IMAGE2DRECT = 303,           /* I64IMAGE2DRECT  */
428
  YYSYMBOL_U64IMAGE2DRECT = 304,           /* U64IMAGE2DRECT  */
429
  YYSYMBOL_I64IMAGECUBE = 305,             /* I64IMAGECUBE  */
430
  YYSYMBOL_U64IMAGECUBE = 306,             /* U64IMAGECUBE  */
431
  YYSYMBOL_I64IMAGEBUFFER = 307,           /* I64IMAGEBUFFER  */
432
  YYSYMBOL_U64IMAGEBUFFER = 308,           /* U64IMAGEBUFFER  */
433
  YYSYMBOL_I64IMAGE1DARRAY = 309,          /* I64IMAGE1DARRAY  */
434
  YYSYMBOL_U64IMAGE1DARRAY = 310,          /* U64IMAGE1DARRAY  */
435
  YYSYMBOL_I64IMAGE2DARRAY = 311,          /* I64IMAGE2DARRAY  */
436
  YYSYMBOL_U64IMAGE2DARRAY = 312,          /* U64IMAGE2DARRAY  */
437
  YYSYMBOL_I64IMAGECUBEARRAY = 313,        /* I64IMAGECUBEARRAY  */
438
  YYSYMBOL_U64IMAGECUBEARRAY = 314,        /* U64IMAGECUBEARRAY  */
439
  YYSYMBOL_I64IMAGE2DMS = 315,             /* I64IMAGE2DMS  */
440
  YYSYMBOL_U64IMAGE2DMS = 316,             /* U64IMAGE2DMS  */
441
  YYSYMBOL_I64IMAGE2DMSARRAY = 317,        /* I64IMAGE2DMSARRAY  */
442
  YYSYMBOL_U64IMAGE2DMSARRAY = 318,        /* U64IMAGE2DMSARRAY  */
443
  YYSYMBOL_TEXTURECUBEARRAY = 319,         /* TEXTURECUBEARRAY  */
444
  YYSYMBOL_ITEXTURECUBEARRAY = 320,        /* ITEXTURECUBEARRAY  */
445
  YYSYMBOL_UTEXTURECUBEARRAY = 321,        /* UTEXTURECUBEARRAY  */
446
  YYSYMBOL_TEXTURE1D = 322,                /* TEXTURE1D  */
447
  YYSYMBOL_ITEXTURE1D = 323,               /* ITEXTURE1D  */
448
  YYSYMBOL_UTEXTURE1D = 324,               /* UTEXTURE1D  */
449
  YYSYMBOL_TEXTURE1DARRAY = 325,           /* TEXTURE1DARRAY  */
450
  YYSYMBOL_ITEXTURE1DARRAY = 326,          /* ITEXTURE1DARRAY  */
451
  YYSYMBOL_UTEXTURE1DARRAY = 327,          /* UTEXTURE1DARRAY  */
452
  YYSYMBOL_TEXTURE2DRECT = 328,            /* TEXTURE2DRECT  */
453
  YYSYMBOL_ITEXTURE2DRECT = 329,           /* ITEXTURE2DRECT  */
454
  YYSYMBOL_UTEXTURE2DRECT = 330,           /* UTEXTURE2DRECT  */
455
  YYSYMBOL_TEXTUREBUFFER = 331,            /* TEXTUREBUFFER  */
456
  YYSYMBOL_ITEXTUREBUFFER = 332,           /* ITEXTUREBUFFER  */
457
  YYSYMBOL_UTEXTUREBUFFER = 333,           /* UTEXTUREBUFFER  */
458
  YYSYMBOL_TEXTURE2DMS = 334,              /* TEXTURE2DMS  */
459
  YYSYMBOL_ITEXTURE2DMS = 335,             /* ITEXTURE2DMS  */
460
  YYSYMBOL_UTEXTURE2DMS = 336,             /* UTEXTURE2DMS  */
461
  YYSYMBOL_TEXTURE2DMSARRAY = 337,         /* TEXTURE2DMSARRAY  */
462
  YYSYMBOL_ITEXTURE2DMSARRAY = 338,        /* ITEXTURE2DMSARRAY  */
463
  YYSYMBOL_UTEXTURE2DMSARRAY = 339,        /* UTEXTURE2DMSARRAY  */
464
  YYSYMBOL_F16TEXTURE1D = 340,             /* F16TEXTURE1D  */
465
  YYSYMBOL_F16TEXTURE2D = 341,             /* F16TEXTURE2D  */
466
  YYSYMBOL_F16TEXTURE3D = 342,             /* F16TEXTURE3D  */
467
  YYSYMBOL_F16TEXTURE2DRECT = 343,         /* F16TEXTURE2DRECT  */
468
  YYSYMBOL_F16TEXTURECUBE = 344,           /* F16TEXTURECUBE  */
469
  YYSYMBOL_F16TEXTURE1DARRAY = 345,        /* F16TEXTURE1DARRAY  */
470
  YYSYMBOL_F16TEXTURE2DARRAY = 346,        /* F16TEXTURE2DARRAY  */
471
  YYSYMBOL_F16TEXTURECUBEARRAY = 347,      /* F16TEXTURECUBEARRAY  */
472
  YYSYMBOL_F16TEXTUREBUFFER = 348,         /* F16TEXTUREBUFFER  */
473
  YYSYMBOL_F16TEXTURE2DMS = 349,           /* F16TEXTURE2DMS  */
474
  YYSYMBOL_F16TEXTURE2DMSARRAY = 350,      /* F16TEXTURE2DMSARRAY  */
475
  YYSYMBOL_SUBPASSINPUT = 351,             /* SUBPASSINPUT  */
476
  YYSYMBOL_SUBPASSINPUTMS = 352,           /* SUBPASSINPUTMS  */
477
  YYSYMBOL_ISUBPASSINPUT = 353,            /* ISUBPASSINPUT  */
478
  YYSYMBOL_ISUBPASSINPUTMS = 354,          /* ISUBPASSINPUTMS  */
479
  YYSYMBOL_USUBPASSINPUT = 355,            /* USUBPASSINPUT  */
480
  YYSYMBOL_USUBPASSINPUTMS = 356,          /* USUBPASSINPUTMS  */
481
  YYSYMBOL_F16SUBPASSINPUT = 357,          /* F16SUBPASSINPUT  */
482
  YYSYMBOL_F16SUBPASSINPUTMS = 358,        /* F16SUBPASSINPUTMS  */
483
  YYSYMBOL_SPIRV_INSTRUCTION = 359,        /* SPIRV_INSTRUCTION  */
484
  YYSYMBOL_SPIRV_EXECUTION_MODE = 360,     /* SPIRV_EXECUTION_MODE  */
485
  YYSYMBOL_SPIRV_EXECUTION_MODE_ID = 361,  /* SPIRV_EXECUTION_MODE_ID  */
486
  YYSYMBOL_SPIRV_DECORATE = 362,           /* SPIRV_DECORATE  */
487
  YYSYMBOL_SPIRV_DECORATE_ID = 363,        /* SPIRV_DECORATE_ID  */
488
  YYSYMBOL_SPIRV_DECORATE_STRING = 364,    /* SPIRV_DECORATE_STRING  */
489
  YYSYMBOL_SPIRV_TYPE = 365,               /* SPIRV_TYPE  */
490
  YYSYMBOL_SPIRV_STORAGE_CLASS = 366,      /* SPIRV_STORAGE_CLASS  */
491
  YYSYMBOL_SPIRV_BY_REFERENCE = 367,       /* SPIRV_BY_REFERENCE  */
492
  YYSYMBOL_SPIRV_LITERAL = 368,            /* SPIRV_LITERAL  */
493
  YYSYMBOL_ATTACHMENTEXT = 369,            /* ATTACHMENTEXT  */
494
  YYSYMBOL_IATTACHMENTEXT = 370,           /* IATTACHMENTEXT  */
495
  YYSYMBOL_UATTACHMENTEXT = 371,           /* UATTACHMENTEXT  */
496
  YYSYMBOL_LEFT_OP = 372,                  /* LEFT_OP  */
497
  YYSYMBOL_RIGHT_OP = 373,                 /* RIGHT_OP  */
498
  YYSYMBOL_INC_OP = 374,                   /* INC_OP  */
499
  YYSYMBOL_DEC_OP = 375,                   /* DEC_OP  */
500
  YYSYMBOL_LE_OP = 376,                    /* LE_OP  */
501
  YYSYMBOL_GE_OP = 377,                    /* GE_OP  */
502
  YYSYMBOL_EQ_OP = 378,                    /* EQ_OP  */
503
  YYSYMBOL_NE_OP = 379,                    /* NE_OP  */
504
  YYSYMBOL_AND_OP = 380,                   /* AND_OP  */
505
  YYSYMBOL_OR_OP = 381,                    /* OR_OP  */
506
  YYSYMBOL_XOR_OP = 382,                   /* XOR_OP  */
507
  YYSYMBOL_MUL_ASSIGN = 383,               /* MUL_ASSIGN  */
508
  YYSYMBOL_DIV_ASSIGN = 384,               /* DIV_ASSIGN  */
509
  YYSYMBOL_ADD_ASSIGN = 385,               /* ADD_ASSIGN  */
510
  YYSYMBOL_MOD_ASSIGN = 386,               /* MOD_ASSIGN  */
511
  YYSYMBOL_LEFT_ASSIGN = 387,              /* LEFT_ASSIGN  */
512
  YYSYMBOL_RIGHT_ASSIGN = 388,             /* RIGHT_ASSIGN  */
513
  YYSYMBOL_AND_ASSIGN = 389,               /* AND_ASSIGN  */
514
  YYSYMBOL_XOR_ASSIGN = 390,               /* XOR_ASSIGN  */
515
  YYSYMBOL_OR_ASSIGN = 391,                /* OR_ASSIGN  */
516
  YYSYMBOL_SUB_ASSIGN = 392,               /* SUB_ASSIGN  */
517
  YYSYMBOL_STRING_LITERAL = 393,           /* STRING_LITERAL  */
518
  YYSYMBOL_LEFT_PAREN = 394,               /* LEFT_PAREN  */
519
  YYSYMBOL_RIGHT_PAREN = 395,              /* RIGHT_PAREN  */
520
  YYSYMBOL_LEFT_BRACKET = 396,             /* LEFT_BRACKET  */
521
  YYSYMBOL_RIGHT_BRACKET = 397,            /* RIGHT_BRACKET  */
522
  YYSYMBOL_LEFT_BRACE = 398,               /* LEFT_BRACE  */
523
  YYSYMBOL_RIGHT_BRACE = 399,              /* RIGHT_BRACE  */
524
  YYSYMBOL_DOT = 400,                      /* DOT  */
525
  YYSYMBOL_COMMA = 401,                    /* COMMA  */
526
  YYSYMBOL_COLON = 402,                    /* COLON  */
527
  YYSYMBOL_EQUAL = 403,                    /* EQUAL  */
528
  YYSYMBOL_SEMICOLON = 404,                /* SEMICOLON  */
529
  YYSYMBOL_BANG = 405,                     /* BANG  */
530
  YYSYMBOL_DASH = 406,                     /* DASH  */
531
  YYSYMBOL_TILDE = 407,                    /* TILDE  */
532
  YYSYMBOL_PLUS = 408,                     /* PLUS  */
533
  YYSYMBOL_STAR = 409,                     /* STAR  */
534
  YYSYMBOL_SLASH = 410,                    /* SLASH  */
535
  YYSYMBOL_PERCENT = 411,                  /* PERCENT  */
536
  YYSYMBOL_LEFT_ANGLE = 412,               /* LEFT_ANGLE  */
537
  YYSYMBOL_RIGHT_ANGLE = 413,              /* RIGHT_ANGLE  */
538
  YYSYMBOL_VERTICAL_BAR = 414,             /* VERTICAL_BAR  */
539
  YYSYMBOL_CARET = 415,                    /* CARET  */
540
  YYSYMBOL_AMPERSAND = 416,                /* AMPERSAND  */
541
  YYSYMBOL_QUESTION = 417,                 /* QUESTION  */
542
  YYSYMBOL_INVARIANT = 418,                /* INVARIANT  */
543
  YYSYMBOL_HIGH_PRECISION = 419,           /* HIGH_PRECISION  */
544
  YYSYMBOL_MEDIUM_PRECISION = 420,         /* MEDIUM_PRECISION  */
545
  YYSYMBOL_LOW_PRECISION = 421,            /* LOW_PRECISION  */
546
  YYSYMBOL_PRECISION = 422,                /* PRECISION  */
547
  YYSYMBOL_PACKED = 423,                   /* PACKED  */
548
  YYSYMBOL_RESOURCE = 424,                 /* RESOURCE  */
549
  YYSYMBOL_SUPERP = 425,                   /* SUPERP  */
550
  YYSYMBOL_INLINE = 426,                   /* INLINE  */
551
  YYSYMBOL_NOINLINE = 427,                 /* NOINLINE  */
552
  YYSYMBOL_FLOATCONSTANT = 428,            /* FLOATCONSTANT  */
553
  YYSYMBOL_INTCONSTANT = 429,              /* INTCONSTANT  */
554
  YYSYMBOL_UINTCONSTANT = 430,             /* UINTCONSTANT  */
555
  YYSYMBOL_BOOLCONSTANT = 431,             /* BOOLCONSTANT  */
556
  YYSYMBOL_IDENTIFIER = 432,               /* IDENTIFIER  */
557
  YYSYMBOL_TYPE_NAME = 433,                /* TYPE_NAME  */
558
  YYSYMBOL_CENTROID = 434,                 /* CENTROID  */
559
  YYSYMBOL_IN = 435,                       /* IN  */
560
  YYSYMBOL_OUT = 436,                      /* OUT  */
561
  YYSYMBOL_INOUT = 437,                    /* INOUT  */
562
  YYSYMBOL_STRUCT = 438,                   /* STRUCT  */
563
  YYSYMBOL_VOID = 439,                     /* VOID  */
564
  YYSYMBOL_WHILE = 440,                    /* WHILE  */
565
  YYSYMBOL_BREAK = 441,                    /* BREAK  */
566
  YYSYMBOL_CONTINUE = 442,                 /* CONTINUE  */
567
  YYSYMBOL_DO = 443,                       /* DO  */
568
  YYSYMBOL_ELSE = 444,                     /* ELSE  */
569
  YYSYMBOL_FOR = 445,                      /* FOR  */
570
  YYSYMBOL_IF = 446,                       /* IF  */
571
  YYSYMBOL_DISCARD = 447,                  /* DISCARD  */
572
  YYSYMBOL_RETURN = 448,                   /* RETURN  */
573
  YYSYMBOL_SWITCH = 449,                   /* SWITCH  */
574
  YYSYMBOL_CASE = 450,                     /* CASE  */
575
  YYSYMBOL_DEFAULT = 451,                  /* DEFAULT  */
576
  YYSYMBOL_TERMINATE_INVOCATION = 452,     /* TERMINATE_INVOCATION  */
577
  YYSYMBOL_TERMINATE_RAY = 453,            /* TERMINATE_RAY  */
578
  YYSYMBOL_IGNORE_INTERSECTION = 454,      /* IGNORE_INTERSECTION  */
579
  YYSYMBOL_UNIFORM = 455,                  /* UNIFORM  */
580
  YYSYMBOL_SHARED = 456,                   /* SHARED  */
581
  YYSYMBOL_BUFFER = 457,                   /* BUFFER  */
582
  YYSYMBOL_TILEIMAGEEXT = 458,             /* TILEIMAGEEXT  */
583
  YYSYMBOL_FLAT = 459,                     /* FLAT  */
584
  YYSYMBOL_SMOOTH = 460,                   /* SMOOTH  */
585
  YYSYMBOL_LAYOUT = 461,                   /* LAYOUT  */
586
  YYSYMBOL_DOUBLECONSTANT = 462,           /* DOUBLECONSTANT  */
587
  YYSYMBOL_INT16CONSTANT = 463,            /* INT16CONSTANT  */
588
  YYSYMBOL_UINT16CONSTANT = 464,           /* UINT16CONSTANT  */
589
  YYSYMBOL_FLOAT16CONSTANT = 465,          /* FLOAT16CONSTANT  */
590
  YYSYMBOL_INT32CONSTANT = 466,            /* INT32CONSTANT  */
591
  YYSYMBOL_UINT32CONSTANT = 467,           /* UINT32CONSTANT  */
592
  YYSYMBOL_FLOATE2M1CONSTANT = 468,        /* FLOATE2M1CONSTANT  */
593
  YYSYMBOL_FLOATE3M2CONSTANT = 469,        /* FLOATE3M2CONSTANT  */
594
  YYSYMBOL_FLOATE2M3CONSTANT = 470,        /* FLOATE2M3CONSTANT  */
595
  YYSYMBOL_FLOATUE8M0CONSTANT = 471,       /* FLOATUE8M0CONSTANT  */
596
  YYSYMBOL_FLOATMXINT8CONSTANT = 472,      /* FLOATMXINT8CONSTANT  */
597
  YYSYMBOL_INT64CONSTANT = 473,            /* INT64CONSTANT  */
598
  YYSYMBOL_UINT64CONSTANT = 474,           /* UINT64CONSTANT  */
599
  YYSYMBOL_SUBROUTINE = 475,               /* SUBROUTINE  */
600
  YYSYMBOL_DEMOTE = 476,                   /* DEMOTE  */
601
  YYSYMBOL_FUNCTION = 477,                 /* FUNCTION  */
602
  YYSYMBOL_PAYLOADNV = 478,                /* PAYLOADNV  */
603
  YYSYMBOL_PAYLOADINNV = 479,              /* PAYLOADINNV  */
604
  YYSYMBOL_HITATTRNV = 480,                /* HITATTRNV  */
605
  YYSYMBOL_CALLDATANV = 481,               /* CALLDATANV  */
606
  YYSYMBOL_CALLDATAINNV = 482,             /* CALLDATAINNV  */
607
  YYSYMBOL_PAYLOADEXT = 483,               /* PAYLOADEXT  */
608
  YYSYMBOL_PAYLOADINEXT = 484,             /* PAYLOADINEXT  */
609
  YYSYMBOL_HITATTREXT = 485,               /* HITATTREXT  */
610
  YYSYMBOL_CALLDATAEXT = 486,              /* CALLDATAEXT  */
611
  YYSYMBOL_CALLDATAINEXT = 487,            /* CALLDATAINEXT  */
612
  YYSYMBOL_PATCH = 488,                    /* PATCH  */
613
  YYSYMBOL_SAMPLE = 489,                   /* SAMPLE  */
614
  YYSYMBOL_NONUNIFORM = 490,               /* NONUNIFORM  */
615
  YYSYMBOL_RESOURCEHEAP = 491,             /* RESOURCEHEAP  */
616
  YYSYMBOL_SAMPLERHEAP = 492,              /* SAMPLERHEAP  */
617
  YYSYMBOL_COHERENT = 493,                 /* COHERENT  */
618
  YYSYMBOL_VOLATILE = 494,                 /* VOLATILE  */
619
  YYSYMBOL_RESTRICT = 495,                 /* RESTRICT  */
620
  YYSYMBOL_READONLY = 496,                 /* READONLY  */
621
  YYSYMBOL_WRITEONLY = 497,                /* WRITEONLY  */
622
  YYSYMBOL_NONTEMPORAL = 498,              /* NONTEMPORAL  */
623
  YYSYMBOL_DEVICECOHERENT = 499,           /* DEVICECOHERENT  */
624
  YYSYMBOL_QUEUEFAMILYCOHERENT = 500,      /* QUEUEFAMILYCOHERENT  */
625
  YYSYMBOL_WORKGROUPCOHERENT = 501,        /* WORKGROUPCOHERENT  */
626
  YYSYMBOL_SUBGROUPCOHERENT = 502,         /* SUBGROUPCOHERENT  */
627
  YYSYMBOL_NONPRIVATE = 503,               /* NONPRIVATE  */
628
  YYSYMBOL_SHADERCALLCOHERENT = 504,       /* SHADERCALLCOHERENT  */
629
  YYSYMBOL_NOPERSPECTIVE = 505,            /* NOPERSPECTIVE  */
630
  YYSYMBOL_EXPLICITINTERPAMD = 506,        /* EXPLICITINTERPAMD  */
631
  YYSYMBOL_PERVERTEXEXT = 507,             /* PERVERTEXEXT  */
632
  YYSYMBOL_PERVERTEXNV = 508,              /* PERVERTEXNV  */
633
  YYSYMBOL_PERPRIMITIVENV = 509,           /* PERPRIMITIVENV  */
634
  YYSYMBOL_PERVIEWNV = 510,                /* PERVIEWNV  */
635
  YYSYMBOL_PERTASKNV = 511,                /* PERTASKNV  */
636
  YYSYMBOL_PERPRIMITIVEEXT = 512,          /* PERPRIMITIVEEXT  */
637
  YYSYMBOL_TASKPAYLOADWORKGROUPEXT = 513,  /* TASKPAYLOADWORKGROUPEXT  */
638
  YYSYMBOL_PRECISE = 514,                  /* PRECISE  */
639
  YYSYMBOL_YYACCEPT = 515,                 /* $accept  */
640
  YYSYMBOL_variable_identifier = 516,      /* variable_identifier  */
641
  YYSYMBOL_primary_expression = 517,       /* primary_expression  */
642
  YYSYMBOL_postfix_expression = 518,       /* postfix_expression  */
643
  YYSYMBOL_integer_expression = 519,       /* integer_expression  */
644
  YYSYMBOL_function_call = 520,            /* function_call  */
645
  YYSYMBOL_function_call_or_method = 521,  /* function_call_or_method  */
646
  YYSYMBOL_function_call_generic = 522,    /* function_call_generic  */
647
  YYSYMBOL_function_call_header_no_parameters = 523, /* function_call_header_no_parameters  */
648
  YYSYMBOL_function_call_header_with_parameters = 524, /* function_call_header_with_parameters  */
649
  YYSYMBOL_function_call_header = 525,     /* function_call_header  */
650
  YYSYMBOL_function_identifier = 526,      /* function_identifier  */
651
  YYSYMBOL_unary_expression = 527,         /* unary_expression  */
652
  YYSYMBOL_unary_operator = 528,           /* unary_operator  */
653
  YYSYMBOL_multiplicative_expression = 529, /* multiplicative_expression  */
654
  YYSYMBOL_additive_expression = 530,      /* additive_expression  */
655
  YYSYMBOL_shift_expression = 531,         /* shift_expression  */
656
  YYSYMBOL_relational_expression = 532,    /* relational_expression  */
657
  YYSYMBOL_equality_expression = 533,      /* equality_expression  */
658
  YYSYMBOL_and_expression = 534,           /* and_expression  */
659
  YYSYMBOL_exclusive_or_expression = 535,  /* exclusive_or_expression  */
660
  YYSYMBOL_inclusive_or_expression = 536,  /* inclusive_or_expression  */
661
  YYSYMBOL_logical_and_expression = 537,   /* logical_and_expression  */
662
  YYSYMBOL_logical_xor_expression = 538,   /* logical_xor_expression  */
663
  YYSYMBOL_logical_or_expression = 539,    /* logical_or_expression  */
664
  YYSYMBOL_conditional_expression = 540,   /* conditional_expression  */
665
  YYSYMBOL_541_1 = 541,                    /* $@1  */
666
  YYSYMBOL_assignment_expression = 542,    /* assignment_expression  */
667
  YYSYMBOL_assignment_operator = 543,      /* assignment_operator  */
668
  YYSYMBOL_expression = 544,               /* expression  */
669
  YYSYMBOL_constant_expression = 545,      /* constant_expression  */
670
  YYSYMBOL_declaration = 546,              /* declaration  */
671
  YYSYMBOL_block_structure = 547,          /* block_structure  */
672
  YYSYMBOL_548_2 = 548,                    /* $@2  */
673
  YYSYMBOL_identifier_list = 549,          /* identifier_list  */
674
  YYSYMBOL_function_prototype = 550,       /* function_prototype  */
675
  YYSYMBOL_function_declarator = 551,      /* function_declarator  */
676
  YYSYMBOL_function_header_with_parameters = 552, /* function_header_with_parameters  */
677
  YYSYMBOL_function_header = 553,          /* function_header  */
678
  YYSYMBOL_parameter_declarator = 554,     /* parameter_declarator  */
679
  YYSYMBOL_parameter_declaration = 555,    /* parameter_declaration  */
680
  YYSYMBOL_parameter_type_specifier = 556, /* parameter_type_specifier  */
681
  YYSYMBOL_init_declarator_list = 557,     /* init_declarator_list  */
682
  YYSYMBOL_single_declaration = 558,       /* single_declaration  */
683
  YYSYMBOL_fully_specified_type = 559,     /* fully_specified_type  */
684
  YYSYMBOL_invariant_qualifier = 560,      /* invariant_qualifier  */
685
  YYSYMBOL_interpolation_qualifier = 561,  /* interpolation_qualifier  */
686
  YYSYMBOL_layout_qualifier = 562,         /* layout_qualifier  */
687
  YYSYMBOL_layout_qualifier_id_list = 563, /* layout_qualifier_id_list  */
688
  YYSYMBOL_layout_qualifier_id = 564,      /* layout_qualifier_id  */
689
  YYSYMBOL_precise_qualifier = 565,        /* precise_qualifier  */
690
  YYSYMBOL_type_qualifier = 566,           /* type_qualifier  */
691
  YYSYMBOL_single_type_qualifier = 567,    /* single_type_qualifier  */
692
  YYSYMBOL_storage_qualifier = 568,        /* storage_qualifier  */
693
  YYSYMBOL_non_uniform_qualifier = 569,    /* non_uniform_qualifier  */
694
  YYSYMBOL_type_name_list = 570,           /* type_name_list  */
695
  YYSYMBOL_type_specifier = 571,           /* type_specifier  */
696
  YYSYMBOL_array_specifier = 572,          /* array_specifier  */
697
  YYSYMBOL_type_parameter_specifier_opt = 573, /* type_parameter_specifier_opt  */
698
  YYSYMBOL_type_parameter_specifier = 574, /* type_parameter_specifier  */
699
  YYSYMBOL_type_parameter_specifier_list = 575, /* type_parameter_specifier_list  */
700
  YYSYMBOL_type_specifier_nonarray = 576,  /* type_specifier_nonarray  */
701
  YYSYMBOL_precision_qualifier = 577,      /* precision_qualifier  */
702
  YYSYMBOL_struct_specifier = 578,         /* struct_specifier  */
703
  YYSYMBOL_579_3 = 579,                    /* $@3  */
704
  YYSYMBOL_580_4 = 580,                    /* $@4  */
705
  YYSYMBOL_struct_declaration_list = 581,  /* struct_declaration_list  */
706
  YYSYMBOL_struct_declaration = 582,       /* struct_declaration  */
707
  YYSYMBOL_block_heap_inner_structure = 583, /* block_heap_inner_structure  */
708
  YYSYMBOL_584_5 = 584,                    /* $@5  */
709
  YYSYMBOL_struct_declaration_no_inline_block_list = 585, /* struct_declaration_no_inline_block_list  */
710
  YYSYMBOL_struct_declaration_no_inline_block = 586, /* struct_declaration_no_inline_block  */
711
  YYSYMBOL_struct_declarator_list = 587,   /* struct_declarator_list  */
712
  YYSYMBOL_struct_declarator = 588,        /* struct_declarator  */
713
  YYSYMBOL_initializer = 589,              /* initializer  */
714
  YYSYMBOL_initializer_list = 590,         /* initializer_list  */
715
  YYSYMBOL_declaration_statement = 591,    /* declaration_statement  */
716
  YYSYMBOL_statement = 592,                /* statement  */
717
  YYSYMBOL_simple_statement = 593,         /* simple_statement  */
718
  YYSYMBOL_demote_statement = 594,         /* demote_statement  */
719
  YYSYMBOL_compound_statement = 595,       /* compound_statement  */
720
  YYSYMBOL_596_6 = 596,                    /* $@6  */
721
  YYSYMBOL_597_7 = 597,                    /* $@7  */
722
  YYSYMBOL_statement_no_new_scope = 598,   /* statement_no_new_scope  */
723
  YYSYMBOL_statement_scoped = 599,         /* statement_scoped  */
724
  YYSYMBOL_600_8 = 600,                    /* $@8  */
725
  YYSYMBOL_601_9 = 601,                    /* $@9  */
726
  YYSYMBOL_compound_statement_no_new_scope = 602, /* compound_statement_no_new_scope  */
727
  YYSYMBOL_statement_list = 603,           /* statement_list  */
728
  YYSYMBOL_expression_statement = 604,     /* expression_statement  */
729
  YYSYMBOL_selection_statement = 605,      /* selection_statement  */
730
  YYSYMBOL_selection_statement_nonattributed = 606, /* selection_statement_nonattributed  */
731
  YYSYMBOL_selection_rest_statement = 607, /* selection_rest_statement  */
732
  YYSYMBOL_condition = 608,                /* condition  */
733
  YYSYMBOL_switch_statement = 609,         /* switch_statement  */
734
  YYSYMBOL_switch_statement_nonattributed = 610, /* switch_statement_nonattributed  */
735
  YYSYMBOL_611_10 = 611,                   /* $@10  */
736
  YYSYMBOL_switch_statement_list = 612,    /* switch_statement_list  */
737
  YYSYMBOL_case_label = 613,               /* case_label  */
738
  YYSYMBOL_iteration_statement = 614,      /* iteration_statement  */
739
  YYSYMBOL_iteration_statement_nonattributed = 615, /* iteration_statement_nonattributed  */
740
  YYSYMBOL_616_11 = 616,                   /* $@11  */
741
  YYSYMBOL_617_12 = 617,                   /* $@12  */
742
  YYSYMBOL_618_13 = 618,                   /* $@13  */
743
  YYSYMBOL_for_init_statement = 619,       /* for_init_statement  */
744
  YYSYMBOL_conditionopt = 620,             /* conditionopt  */
745
  YYSYMBOL_for_rest_statement = 621,       /* for_rest_statement  */
746
  YYSYMBOL_jump_statement = 622,           /* jump_statement  */
747
  YYSYMBOL_translation_unit = 623,         /* translation_unit  */
748
  YYSYMBOL_external_declaration = 624,     /* external_declaration  */
749
  YYSYMBOL_function_definition = 625,      /* function_definition  */
750
  YYSYMBOL_626_14 = 626,                   /* $@14  */
751
  YYSYMBOL_attribute = 627,                /* attribute  */
752
  YYSYMBOL_attribute_list = 628,           /* attribute_list  */
753
  YYSYMBOL_single_attribute = 629,         /* single_attribute  */
754
  YYSYMBOL_spirv_requirements_list = 630,  /* spirv_requirements_list  */
755
  YYSYMBOL_spirv_requirements_parameter = 631, /* spirv_requirements_parameter  */
756
  YYSYMBOL_spirv_extension_list = 632,     /* spirv_extension_list  */
757
  YYSYMBOL_spirv_capability_list = 633,    /* spirv_capability_list  */
758
  YYSYMBOL_spirv_execution_mode_qualifier = 634, /* spirv_execution_mode_qualifier  */
759
  YYSYMBOL_spirv_execution_mode_parameter_list = 635, /* spirv_execution_mode_parameter_list  */
760
  YYSYMBOL_spirv_execution_mode_parameter = 636, /* spirv_execution_mode_parameter  */
761
  YYSYMBOL_spirv_execution_mode_id_parameter_list = 637, /* spirv_execution_mode_id_parameter_list  */
762
  YYSYMBOL_spirv_storage_class_qualifier = 638, /* spirv_storage_class_qualifier  */
763
  YYSYMBOL_spirv_decorate_qualifier = 639, /* spirv_decorate_qualifier  */
764
  YYSYMBOL_spirv_decorate_parameter_list = 640, /* spirv_decorate_parameter_list  */
765
  YYSYMBOL_spirv_decorate_parameter = 641, /* spirv_decorate_parameter  */
766
  YYSYMBOL_spirv_decorate_id_parameter_list = 642, /* spirv_decorate_id_parameter_list  */
767
  YYSYMBOL_spirv_decorate_id_parameter = 643, /* spirv_decorate_id_parameter  */
768
  YYSYMBOL_spirv_decorate_string_parameter_list = 644, /* spirv_decorate_string_parameter_list  */
769
  YYSYMBOL_spirv_type_specifier = 645,     /* spirv_type_specifier  */
770
  YYSYMBOL_spirv_type_parameter_list = 646, /* spirv_type_parameter_list  */
771
  YYSYMBOL_spirv_type_parameter = 647,     /* spirv_type_parameter  */
772
  YYSYMBOL_spirv_instruction_qualifier = 648, /* spirv_instruction_qualifier  */
773
  YYSYMBOL_spirv_instruction_qualifier_list = 649, /* spirv_instruction_qualifier_list  */
774
  YYSYMBOL_spirv_instruction_qualifier_id = 650 /* spirv_instruction_qualifier_id  */
775
};
776
typedef enum yysymbol_kind_t yysymbol_kind_t;
777
778
779
/* Second part of user prologue.  */
780
#line 111 "MachineIndependent/glslang.y"
781
782
783
2.11M
#define parseContext (*pParseContext)
784
90
#define yyerror(context, msg) context->parserError(msg)
785
786
extern int yylex(YYSTYPE*, TParseContext&);
787
788
789
#line 790 "MachineIndependent/glslang_tab.cpp"
790
791
792
#ifdef short
793
# undef short
794
#endif
795
796
/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
797
   <limits.h> and (if available) <stdint.h> are included
798
   so that the code can choose integer types of a good width.  */
799
800
#ifndef __PTRDIFF_MAX__
801
# include <limits.h> /* INFRINGES ON USER NAME SPACE */
802
# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
803
#  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
804
#  define YY_STDINT_H
805
# endif
806
#endif
807
808
/* Narrow types that promote to a signed type and that can represent a
809
   signed or unsigned integer of at least N bits.  In tables they can
810
   save space and decrease cache pressure.  Promoting to a signed type
811
   helps avoid bugs in integer arithmetic.  */
812
813
#ifdef __INT_LEAST8_MAX__
814
typedef __INT_LEAST8_TYPE__ yytype_int8;
815
#elif defined YY_STDINT_H
816
typedef int_least8_t yytype_int8;
817
#else
818
typedef signed char yytype_int8;
819
#endif
820
821
#ifdef __INT_LEAST16_MAX__
822
typedef __INT_LEAST16_TYPE__ yytype_int16;
823
#elif defined YY_STDINT_H
824
typedef int_least16_t yytype_int16;
825
#else
826
typedef short yytype_int16;
827
#endif
828
829
/* Work around bug in HP-UX 11.23, which defines these macros
830
   incorrectly for preprocessor constants.  This workaround can likely
831
   be removed in 2023, as HPE has promised support for HP-UX 11.23
832
   (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
833
   <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
834
#ifdef __hpux
835
# undef UINT_LEAST8_MAX
836
# undef UINT_LEAST16_MAX
837
# define UINT_LEAST8_MAX 255
838
# define UINT_LEAST16_MAX 65535
839
#endif
840
841
#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
842
typedef __UINT_LEAST8_TYPE__ yytype_uint8;
843
#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
844
       && UINT_LEAST8_MAX <= INT_MAX)
845
typedef uint_least8_t yytype_uint8;
846
#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
847
typedef unsigned char yytype_uint8;
848
#else
849
typedef short yytype_uint8;
850
#endif
851
852
#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
853
typedef __UINT_LEAST16_TYPE__ yytype_uint16;
854
#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
855
       && UINT_LEAST16_MAX <= INT_MAX)
856
typedef uint_least16_t yytype_uint16;
857
#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
858
typedef unsigned short yytype_uint16;
859
#else
860
typedef int yytype_uint16;
861
#endif
862
863
#ifndef YYPTRDIFF_T
864
# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
865
1.10k
#  define YYPTRDIFF_T __PTRDIFF_TYPE__
866
#  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
867
# elif defined PTRDIFF_MAX
868
#  ifndef ptrdiff_t
869
#   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
870
#  endif
871
#  define YYPTRDIFF_T ptrdiff_t
872
#  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
873
# else
874
#  define YYPTRDIFF_T long
875
#  define YYPTRDIFF_MAXIMUM LONG_MAX
876
# endif
877
#endif
878
879
#ifndef YYSIZE_T
880
# ifdef __SIZE_TYPE__
881
#  define YYSIZE_T __SIZE_TYPE__
882
# elif defined size_t
883
#  define YYSIZE_T size_t
884
# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
885
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
886
#  define YYSIZE_T size_t
887
# else
888
#  define YYSIZE_T unsigned
889
# endif
890
#endif
891
892
#define YYSIZE_MAXIMUM                                  \
893
174
  YY_CAST (YYPTRDIFF_T,                                 \
894
           (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
895
            ? YYPTRDIFF_MAXIMUM                         \
896
            : YY_CAST (YYSIZE_T, -1)))
897
898
0
#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
899
900
901
/* Stored state numbers (used for stacks). */
902
typedef yytype_int16 yy_state_t;
903
904
/* State numbers in computations.  */
905
typedef int yy_state_fast_t;
906
907
#ifndef YY_
908
# if defined YYENABLE_NLS && YYENABLE_NLS
909
#  if ENABLE_NLS
910
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
911
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
912
#  endif
913
# endif
914
# ifndef YY_
915
90
#  define YY_(Msgid) Msgid
916
# endif
917
#endif
918
919
920
#ifndef YY_ATTRIBUTE_PURE
921
# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
922
#  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
923
# else
924
#  define YY_ATTRIBUTE_PURE
925
# endif
926
#endif
927
928
#ifndef YY_ATTRIBUTE_UNUSED
929
# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
930
#  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
931
# else
932
#  define YY_ATTRIBUTE_UNUSED
933
# endif
934
#endif
935
936
/* Suppress unused-variable warnings by "using" E.  */
937
#if ! defined lint || defined __GNUC__
938
2.27k
# define YY_USE(E) ((void) (E))
939
#else
940
# define YY_USE(E) /* empty */
941
#endif
942
943
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
944
#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
945
# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
946
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
947
    _Pragma ("GCC diagnostic push")                                     \
948
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
949
# else
950
#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
951
    _Pragma ("GCC diagnostic push")                                     \
952
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
953
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
954
# endif
955
# define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
956
    _Pragma ("GCC diagnostic pop")
957
#else
958
756
# define YY_INITIAL_VALUE(Value) Value
959
#endif
960
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
961
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
962
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
963
#endif
964
#ifndef YY_INITIAL_VALUE
965
# define YY_INITIAL_VALUE(Value) /* Nothing. */
966
#endif
967
968
#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
969
# define YY_IGNORE_USELESS_CAST_BEGIN                          \
970
    _Pragma ("GCC diagnostic push")                            \
971
    _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
972
# define YY_IGNORE_USELESS_CAST_END            \
973
    _Pragma ("GCC diagnostic pop")
974
#endif
975
#ifndef YY_IGNORE_USELESS_CAST_BEGIN
976
# define YY_IGNORE_USELESS_CAST_BEGIN
977
# define YY_IGNORE_USELESS_CAST_END
978
#endif
979
980
981
1.97M
#define YY_ASSERT(E) ((void) (0 && (E)))
982
983
#if 1
984
985
/* The parser invokes alloca or malloc; define the necessary symbols.  */
986
987
# ifdef YYSTACK_USE_ALLOCA
988
#  if YYSTACK_USE_ALLOCA
989
#   ifdef __GNUC__
990
#    define YYSTACK_ALLOC __builtin_alloca
991
#   elif defined __BUILTIN_VA_ARG_INCR
992
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
993
#   elif defined _AIX
994
#    define YYSTACK_ALLOC __alloca
995
#   elif defined _MSC_VER
996
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
997
#    define alloca _alloca
998
#   else
999
#    define YYSTACK_ALLOC alloca
1000
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1001
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1002
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
1003
#     ifndef EXIT_SUCCESS
1004
#      define EXIT_SUCCESS 0
1005
#     endif
1006
#    endif
1007
#   endif
1008
#  endif
1009
# endif
1010
1011
# ifdef YYSTACK_ALLOC
1012
   /* Pacify GCC's 'empty if-body' warning.  */
1013
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1014
#  ifndef YYSTACK_ALLOC_MAXIMUM
1015
    /* The OS might guarantee only one guard page at the bottom of the stack,
1016
       and a page size can be as small as 4096 bytes.  So we cannot safely
1017
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
1018
       to allow for a few compiler-allocated temporary stack slots.  */
1019
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1020
#  endif
1021
# else
1022
#  define YYSTACK_ALLOC YYMALLOC
1023
0
#  define YYSTACK_FREE YYFREE
1024
#  ifndef YYSTACK_ALLOC_MAXIMUM
1025
174
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1026
#  endif
1027
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1028
       && ! ((defined YYMALLOC || defined malloc) \
1029
             && (defined YYFREE || defined free)))
1030
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1031
#   ifndef EXIT_SUCCESS
1032
#    define EXIT_SUCCESS 0
1033
#   endif
1034
#  endif
1035
#  ifndef YYMALLOC
1036
#   define YYMALLOC malloc
1037
#   if ! defined malloc && ! defined EXIT_SUCCESS
1038
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1039
#   endif
1040
#  endif
1041
#  ifndef YYFREE
1042
0
#   define YYFREE free
1043
#   if ! defined free && ! defined EXIT_SUCCESS
1044
void free (void *); /* INFRINGES ON USER NAME SPACE */
1045
#   endif
1046
#  endif
1047
# endif
1048
#endif /* 1 */
1049
1050
#if (! defined yyoverflow \
1051
     && (! defined __cplusplus \
1052
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1053
1054
/* A type that is properly aligned for any stack member.  */
1055
union yyalloc
1056
{
1057
  yy_state_t yyss_alloc;
1058
  YYSTYPE yyvs_alloc;
1059
};
1060
1061
/* The size of the maximum gap between one aligned stack and the next.  */
1062
0
# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1063
1064
/* The size of an array large to enough to hold all stacks, each with
1065
   N elements.  */
1066
# define YYSTACK_BYTES(N) \
1067
     ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
1068
      + YYSTACK_GAP_MAXIMUM)
1069
1070
# define YYCOPY_NEEDED 1
1071
1072
/* Relocate STACK from its old location to the new one.  The
1073
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
1074
   elements in the stack, and YYPTR gives the new location of the
1075
   stack.  Advance YYPTR to a properly aligned location for the next
1076
   stack.  */
1077
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1078
0
    do                                                                  \
1079
0
      {                                                                 \
1080
0
        YYPTRDIFF_T yynewbytes;                                         \
1081
0
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1082
0
        Stack = &yyptr->Stack_alloc;                                    \
1083
0
        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1084
0
        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1085
0
      }                                                                 \
1086
0
    while (0)
1087
1088
#endif
1089
1090
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1091
/* Copy COUNT objects from SRC to DST.  The source and destination do
1092
   not overlap.  */
1093
# ifndef YYCOPY
1094
#  if defined __GNUC__ && 1 < __GNUC__
1095
#   define YYCOPY(Dst, Src, Count) \
1096
0
      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1097
#  else
1098
#   define YYCOPY(Dst, Src, Count)              \
1099
      do                                        \
1100
        {                                       \
1101
          YYPTRDIFF_T yyi;                      \
1102
          for (yyi = 0; yyi < (Count); yyi++)   \
1103
            (Dst)[yyi] = (Src)[yyi];            \
1104
        }                                       \
1105
      while (0)
1106
#  endif
1107
# endif
1108
#endif /* !YYCOPY_NEEDED */
1109
1110
/* YYFINAL -- State number of the termination state.  */
1111
1.97M
#define YYFINAL  496
1112
/* YYLAST -- Last index in YYTABLE.  */
1113
3.34M
#define YYLAST   15602
1114
1115
/* YYNTOKENS -- Number of terminals.  */
1116
1.44M
#define YYNTOKENS  515
1117
/* YYNNTS -- Number of nonterminals.  */
1118
#define YYNNTS  136
1119
/* YYNRULES -- Number of rules.  */
1120
#define YYNRULES  758
1121
/* YYNSTATES -- Number of states.  */
1122
#define YYNSTATES  1012
1123
1124
/* YYMAXUTOK -- Last valid token kind.  */
1125
1.16M
#define YYMAXUTOK   769
1126
1127
1128
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1129
   as returned by yylex, with out-of-bounds checking.  */
1130
#define YYTRANSLATE(YYX)                                \
1131
1.16M
  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1132
1.16M
   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1133
1.16M
   : YYSYMBOL_YYUNDEF)
1134
1135
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1136
   as returned by yylex.  */
1137
static const yytype_int16 yytranslate[] =
1138
{
1139
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1140
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1141
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1142
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1143
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1144
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1145
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1146
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1147
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1148
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1149
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1150
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1151
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1152
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1153
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1154
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1155
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1156
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1157
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1158
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1159
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1160
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1161
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1162
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1163
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1164
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
1165
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1166
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1167
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1168
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1169
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1170
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1171
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1172
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1173
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1174
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1175
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1176
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1177
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1178
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1179
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1180
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1181
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1182
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1183
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1184
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1185
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1186
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1187
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1188
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1189
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1190
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1191
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
1192
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1193
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
1194
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
1195
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
1196
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1197
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1198
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1199
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1200
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1201
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1202
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1203
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1204
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1205
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1206
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1207
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1208
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1209
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1210
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1211
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1212
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1213
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1214
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1215
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514
1216
};
1217
1218
#if YYDEBUG
1219
/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1220
static const yytype_int16 yyrline[] =
1221
{
1222
       0,   371,   371,   377,   380,   385,   388,   391,   395,   398,
1223
     401,   405,   409,   413,   417,   421,   425,   431,   435,   439,
1224
     443,   447,   451,   458,   461,   464,   467,   470,   475,   483,
1225
     490,   497,   503,   507,   514,   517,   523,   541,   566,   574,
1226
     579,   606,   614,   620,   624,   628,   644,   651,   652,   653,
1227
     654,   660,   661,   666,   671,   680,   681,   686,   694,   695,
1228
     701,   710,   711,   716,   721,   726,   734,   735,   744,   756,
1229
     757,   766,   767,   776,   777,   786,   787,   795,   796,   804,
1230
     805,   813,   814,   814,   832,   833,   849,   853,   857,   861,
1231
     866,   870,   874,   878,   882,   886,   890,   897,   900,   911,
1232
     918,   923,   930,   935,   940,   947,   950,   953,   956,   961,
1233
     969,   969,   981,   985,   992,   997,  1005,  1013,  1025,  1028,
1234
    1035,  1048,  1068,  1075,  1098,  1113,  1132,  1143,  1154,  1164,
1235
    1174,  1184,  1193,  1196,  1201,  1206,  1211,  1219,  1224,  1230,
1236
    1235,  1240,  1249,  1259,  1286,  1295,  1302,  1309,  1316,  1323,
1237
    1331,  1339,  1349,  1359,  1366,  1376,  1382,  1385,  1392,  1396,
1238
    1400,  1408,  1417,  1420,  1431,  1434,  1437,  1441,  1445,  1449,
1239
    1453,  1456,  1461,  1465,  1470,  1478,  1482,  1487,  1493,  1499,
1240
    1506,  1511,  1516,  1524,  1529,  1541,  1555,  1561,  1566,  1571,
1241
    1576,  1584,  1592,  1600,  1608,  1616,  1624,  1632,  1640,  1648,
1242
    1656,  1663,  1670,  1674,  1679,  1684,  1689,  1694,  1699,  1704,
1243
    1708,  1712,  1716,  1720,  1724,  1730,  1736,  1746,  1753,  1756,
1244
    1764,  1771,  1782,  1787,  1795,  1799,  1809,  1812,  1818,  1824,
1245
    1830,  1838,  1848,  1852,  1856,  1860,  1865,  1869,  1874,  1879,
1246
    1884,  1889,  1894,  1899,  1904,  1909,  1914,  1920,  1926,  1932,
1247
    1937,  1942,  1947,  1952,  1957,  1962,  1967,  1972,  1977,  1982,
1248
    1987,  1992,  1999,  2004,  2009,  2014,  2019,  2024,  2029,  2034,
1249
    2039,  2044,  2049,  2054,  2059,  2064,  2069,  2074,  2079,  2084,
1250
    2089,  2094,  2102,  2110,  2118,  2124,  2130,  2136,  2142,  2148,
1251
    2154,  2160,  2166,  2172,  2178,  2184,  2190,  2196,  2202,  2208,
1252
    2214,  2220,  2226,  2232,  2238,  2244,  2250,  2256,  2262,  2268,
1253
    2274,  2280,  2286,  2292,  2298,  2304,  2310,  2316,  2322,  2328,
1254
    2334,  2340,  2346,  2352,  2358,  2364,  2370,  2376,  2382,  2388,
1255
    2394,  2400,  2406,  2412,  2418,  2424,  2430,  2436,  2442,  2448,
1256
    2454,  2460,  2468,  2476,  2484,  2492,  2500,  2508,  2516,  2524,
1257
    2532,  2540,  2548,  2556,  2562,  2568,  2574,  2580,  2586,  2592,
1258
    2598,  2604,  2610,  2616,  2622,  2628,  2634,  2640,  2646,  2652,
1259
    2658,  2664,  2670,  2676,  2682,  2688,  2694,  2700,  2706,  2712,
1260
    2718,  2724,  2730,  2736,  2742,  2748,  2754,  2760,  2766,  2772,
1261
    2776,  2780,  2784,  2789,  2794,  2799,  2804,  2809,  2814,  2819,
1262
    2824,  2829,  2834,  2839,  2844,  2849,  2854,  2860,  2866,  2872,
1263
    2878,  2884,  2890,  2896,  2902,  2908,  2914,  2920,  2926,  2932,
1264
    2937,  2942,  2947,  2952,  2957,  2962,  2967,  2972,  2977,  2982,
1265
    2987,  2992,  2997,  3002,  3007,  3012,  3017,  3022,  3027,  3032,
1266
    3037,  3042,  3047,  3052,  3057,  3062,  3067,  3072,  3077,  3082,
1267
    3087,  3092,  3097,  3103,  3109,  3114,  3119,  3124,  3130,  3135,
1268
    3140,  3145,  3151,  3156,  3161,  3166,  3172,  3177,  3182,  3187,
1269
    3193,  3199,  3205,  3211,  3216,  3222,  3228,  3234,  3239,  3244,
1270
    3249,  3254,  3259,  3265,  3270,  3275,  3280,  3286,  3291,  3296,
1271
    3301,  3307,  3312,  3317,  3322,  3328,  3333,  3338,  3343,  3349,
1272
    3354,  3359,  3364,  3370,  3375,  3380,  3385,  3391,  3396,  3401,
1273
    3406,  3412,  3417,  3422,  3427,  3433,  3438,  3443,  3448,  3454,
1274
    3459,  3464,  3469,  3475,  3480,  3485,  3490,  3496,  3501,  3506,
1275
    3511,  3517,  3522,  3527,  3532,  3538,  3543,  3548,  3553,  3559,
1276
    3564,  3569,  3574,  3579,  3584,  3589,  3594,  3599,  3604,  3609,
1277
    3614,  3619,  3624,  3629,  3634,  3639,  3644,  3649,  3654,  3659,
1278
    3664,  3669,  3674,  3679,  3685,  3691,  3697,  3703,  3709,  3715,
1279
    3721,  3728,  3735,  3741,  3747,  3753,  3759,  3766,  3773,  3780,
1280
    3787,  3792,  3797,  3801,  3807,  3813,  3819,  3823,  3827,  3831,
1281
    3836,  3854,  3859,  3864,  3872,  3872,  3888,  3888,  3898,  3901,
1282
    3914,  3917,  3934,  3934,  3950,  3953,  3966,  3988,  4015,  4019,
1283
    4025,  4030,  4041,  4044,  4050,  4056,  4065,  4068,  4074,  4078,
1284
    4079,  4085,  4086,  4087,  4088,  4089,  4090,  4091,  4092,  4096,
1285
    4104,  4105,  4109,  4105,  4123,  4124,  4128,  4128,  4135,  4135,
1286
    4149,  4152,  4162,  4170,  4181,  4182,  4186,  4189,  4196,  4203,
1287
    4207,  4215,  4219,  4228,  4231,  4238,  4238,  4258,  4261,  4267,
1288
    4279,  4291,  4294,  4302,  4302,  4321,  4321,  4343,  4343,  4364,
1289
    4367,  4373,  4376,  4382,  4386,  4393,  4398,  4403,  4410,  4413,
1290
    4417,  4421,  4425,  4434,  4438,  4447,  4450,  4453,  4461,  4461,
1291
    4504,  4509,  4512,  4517,  4520,  4523,  4526,  4531,  4534,  4539,
1292
    4542,  4547,  4550,  4555,  4558,  4563,  4567,  4572,  4576,  4581,
1293
    4585,  4592,  4595,  4600,  4603,  4606,  4609,  4612,  4617,  4626,
1294
    4637,  4642,  4650,  4654,  4659,  4663,  4668,  4672,  4677,  4681,
1295
    4688,  4691,  4696,  4699,  4702,  4705,  4710,  4713,  4718,  4724,
1296
    4727,  4730,  4733,  4738,  4742,  4747,  4751,  4756,  4760,  4767,
1297
    4770,  4775,  4778,  4783,  4786,  4792,  4795,  4800,  4803
1298
};
1299
#endif
1300
1301
/** Accessing symbol of state STATE.  */
1302
668
#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1303
1304
#if 1
1305
/* The user-facing name of the symbol whose (internal) number is
1306
   YYSYMBOL.  No bounds checking.  */
1307
static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1308
1309
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1310
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1311
static const char *const yytname[] =
1312
{
1313
  "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
1314
  "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
1315
  "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
1316
  "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
1317
  "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
1318
  "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
1319
  "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
1320
  "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
1321
  "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
1322
  "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
1323
  "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
1324
  "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOATE5M2_T",
1325
  "FLOATE4M3_T", "BFLOAT16_T", "FLOAT16_T", "FLOAT32_T", "DOUBLE",
1326
  "FLOAT64_T", "FLOATE2M1_T", "FLOATE3M2_T", "FLOATE2M3_T", "FLOATUE8M0_T",
1327
  "FLOATMXINT8_T", "INT64_T", "UINT64_T", "INT32_T", "UINT32_T", "INT16_T",
1328
  "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2", "I64VEC3", "I64VEC4",
1329
  "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2", "I32VEC3", "I32VEC4",
1330
  "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2", "I16VEC3", "I16VEC4",
1331
  "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2", "I8VEC3", "I8VEC4", "U8VEC2",
1332
  "U8VEC3", "U8VEC4", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", "DMAT4",
1333
  "BF16VEC2", "BF16VEC3", "BF16VEC4", "FE5M2VEC2", "FE5M2VEC3",
1334
  "FE5M2VEC4", "FE4M3VEC2", "FE4M3VEC3", "FE4M3VEC4", "FE2M1VEC2",
1335
  "FE2M1VEC3", "FE2M1VEC4", "FE3M2VEC2", "FE3M2VEC3", "FE3M2VEC4",
1336
  "FE2M3VEC2", "FE2M3VEC3", "FE2M3VEC4", "FUE8M0VEC2", "FUE8M0VEC3",
1337
  "FUE8M0VEC4", "FMXINT8VEC2", "FMXINT8VEC3", "FMXINT8VEC4", "F16VEC2",
1338
  "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2",
1339
  "F32VEC3", "F32VEC4", "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2",
1340
  "F64VEC3", "F64VEC4", "F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2",
1341
  "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2",
1342
  "DMAT4X3", "DMAT4X4", "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2",
1343
  "F16MAT3X3", "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4",
1344
  "F32MAT2X2", "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3",
1345
  "F32MAT3X4", "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2",
1346
  "F64MAT2X3", "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4",
1347
  "F64MAT4X2", "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV",
1348
  "ACCSTRUCTEXT", "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
1349
  "COOPMAT", "COOPVECNV", "VECTOR", "HITOBJECTNV", "HITOBJECTATTRNV",
1350
  "HITOBJECTEXT", "HITOBJECTATTREXT", "TENSORLAYOUTNV", "TENSORVIEWNV",
1351
  "TENSORARM", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW",
1352
  "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
1353
  "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
1354
  "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
1355
  "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
1356
  "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
1357
  "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
1358
  "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
1359
  "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
1360
  "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
1361
  "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
1362
  "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
1363
  "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
1364
  "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
1365
  "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
1366
  "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
1367
  "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
1368
  "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
1369
  "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
1370
  "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
1371
  "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
1372
  "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
1373
  "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
1374
  "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
1375
  "F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
1376
  "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
1377
  "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
1378
  "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
1379
  "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
1380
  "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
1381
  "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
1382
  "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
1383
  "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
1384
  "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
1385
  "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
1386
  "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
1387
  "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
1388
  "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
1389
  "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
1390
  "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
1391
  "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
1392
  "F16SUBPASSINPUTMS", "SPIRV_INSTRUCTION", "SPIRV_EXECUTION_MODE",
1393
  "SPIRV_EXECUTION_MODE_ID", "SPIRV_DECORATE", "SPIRV_DECORATE_ID",
1394
  "SPIRV_DECORATE_STRING", "SPIRV_TYPE", "SPIRV_STORAGE_CLASS",
1395
  "SPIRV_BY_REFERENCE", "SPIRV_LITERAL", "ATTACHMENTEXT", "IATTACHMENTEXT",
1396
  "UATTACHMENTEXT", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
1397
  "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
1398
  "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
1399
  "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
1400
  "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
1401
  "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
1402
  "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
1403
  "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
1404
  "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
1405
  "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP", "INLINE",
1406
  "NOINLINE", "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT",
1407
  "BOOLCONSTANT", "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT",
1408
  "INOUT", "STRUCT", "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE",
1409
  "FOR", "IF", "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT",
1410
  "TERMINATE_INVOCATION", "TERMINATE_RAY", "IGNORE_INTERSECTION",
1411
  "UNIFORM", "SHARED", "BUFFER", "TILEIMAGEEXT", "FLAT", "SMOOTH",
1412
  "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT", "UINT16CONSTANT",
1413
  "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
1414
  "FLOATE2M1CONSTANT", "FLOATE3M2CONSTANT", "FLOATE2M3CONSTANT",
1415
  "FLOATUE8M0CONSTANT", "FLOATMXINT8CONSTANT", "INT64CONSTANT",
1416
  "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "FUNCTION", "PAYLOADNV",
1417
  "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
1418
  "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
1419
  "SAMPLE", "NONUNIFORM", "RESOURCEHEAP", "SAMPLERHEAP", "COHERENT",
1420
  "VOLATILE", "RESTRICT", "READONLY", "WRITEONLY", "NONTEMPORAL",
1421
  "DEVICECOHERENT", "QUEUEFAMILYCOHERENT", "WORKGROUPCOHERENT",
1422
  "SUBGROUPCOHERENT", "NONPRIVATE", "SHADERCALLCOHERENT", "NOPERSPECTIVE",
1423
  "EXPLICITINTERPAMD", "PERVERTEXEXT", "PERVERTEXNV", "PERPRIMITIVENV",
1424
  "PERVIEWNV", "PERTASKNV", "PERPRIMITIVEEXT", "TASKPAYLOADWORKGROUPEXT",
1425
  "PRECISE", "$accept", "variable_identifier", "primary_expression",
1426
  "postfix_expression", "integer_expression", "function_call",
1427
  "function_call_or_method", "function_call_generic",
1428
  "function_call_header_no_parameters",
1429
  "function_call_header_with_parameters", "function_call_header",
1430
  "function_identifier", "unary_expression", "unary_operator",
1431
  "multiplicative_expression", "additive_expression", "shift_expression",
1432
  "relational_expression", "equality_expression", "and_expression",
1433
  "exclusive_or_expression", "inclusive_or_expression",
1434
  "logical_and_expression", "logical_xor_expression",
1435
  "logical_or_expression", "conditional_expression", "$@1",
1436
  "assignment_expression", "assignment_operator", "expression",
1437
  "constant_expression", "declaration", "block_structure", "$@2",
1438
  "identifier_list", "function_prototype", "function_declarator",
1439
  "function_header_with_parameters", "function_header",
1440
  "parameter_declarator", "parameter_declaration",
1441
  "parameter_type_specifier", "init_declarator_list", "single_declaration",
1442
  "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
1443
  "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
1444
  "precise_qualifier", "type_qualifier", "single_type_qualifier",
1445
  "storage_qualifier", "non_uniform_qualifier", "type_name_list",
1446
  "type_specifier", "array_specifier", "type_parameter_specifier_opt",
1447
  "type_parameter_specifier", "type_parameter_specifier_list",
1448
  "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
1449
  "$@3", "$@4", "struct_declaration_list", "struct_declaration",
1450
  "block_heap_inner_structure", "$@5",
1451
  "struct_declaration_no_inline_block_list",
1452
  "struct_declaration_no_inline_block", "struct_declarator_list",
1453
  "struct_declarator", "initializer", "initializer_list",
1454
  "declaration_statement", "statement", "simple_statement",
1455
  "demote_statement", "compound_statement", "$@6", "$@7",
1456
  "statement_no_new_scope", "statement_scoped", "$@8", "$@9",
1457
  "compound_statement_no_new_scope", "statement_list",
1458
  "expression_statement", "selection_statement",
1459
  "selection_statement_nonattributed", "selection_rest_statement",
1460
  "condition", "switch_statement", "switch_statement_nonattributed",
1461
  "$@10", "switch_statement_list", "case_label", "iteration_statement",
1462
  "iteration_statement_nonattributed", "$@11", "$@12", "$@13",
1463
  "for_init_statement", "conditionopt", "for_rest_statement",
1464
  "jump_statement", "translation_unit", "external_declaration",
1465
  "function_definition", "$@14", "attribute", "attribute_list",
1466
  "single_attribute", "spirv_requirements_list",
1467
  "spirv_requirements_parameter", "spirv_extension_list",
1468
  "spirv_capability_list", "spirv_execution_mode_qualifier",
1469
  "spirv_execution_mode_parameter_list", "spirv_execution_mode_parameter",
1470
  "spirv_execution_mode_id_parameter_list",
1471
  "spirv_storage_class_qualifier", "spirv_decorate_qualifier",
1472
  "spirv_decorate_parameter_list", "spirv_decorate_parameter",
1473
  "spirv_decorate_id_parameter_list", "spirv_decorate_id_parameter",
1474
  "spirv_decorate_string_parameter_list", "spirv_type_specifier",
1475
  "spirv_type_parameter_list", "spirv_type_parameter",
1476
  "spirv_instruction_qualifier", "spirv_instruction_qualifier_list",
1477
  "spirv_instruction_qualifier_id", YY_NULLPTR
1478
};
1479
1480
static const char *
1481
yysymbol_name (yysymbol_kind_t yysymbol)
1482
0
{
1483
0
  return yytname[yysymbol];
1484
0
}
1485
#endif
1486
1487
1.97M
#define YYPACT_NINF (-901)
1488
1489
#define yypact_value_is_default(Yyn) \
1490
1.97M
  ((Yyn) == YYPACT_NINF)
1491
1492
#define YYTABLE_NINF (-753)
1493
1494
#define yytable_value_is_error(Yyn) \
1495
0
  0
1496
1497
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1498
   STATE-NUM.  */
1499
static const yytype_int16 yypact[] =
1500
{
1501
    5111,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1502
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1503
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1504
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1505
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1506
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1507
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1508
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1509
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1510
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1511
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1512
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1513
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1514
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1515
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1516
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1517
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1518
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1519
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1520
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1521
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1522
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1523
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1524
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1525
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1526
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1527
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1528
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1529
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1530
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1531
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1532
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1533
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1534
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1535
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1536
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -335,  -307,  -276,
1537
    -256,  -252,  -237,  -232,  -220,  -901,  -901,  -901,  -901,  -901,
1538
    -274,  -901,  -901,  -901,  -901,  -901,   -75,  -901,  -901,  -901,
1539
    -901,  -901,  -370,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1540
    -210,  -143,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1541
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1542
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1543
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1544
    -901,  -372,   -95,  -112,   -70, 10231,  -264,  -901,   -79,  -901,
1545
    -901,  -901,  -901,  6135,  -901,  -901,  -901,  -901,   -76,  -901,
1546
    -901,  1015,  -901,  -901, 10231,   -66,  -901,  -901,  -901,  6647,
1547
     -78,  -378,  -246,  -195,  -191,  -161,   -78,  -157,  -279, 15125,
1548
    -901,   -42,  -399,   -72,  -901,  -341,  -901,   -37,   -34,  7159,
1549
    -901,  -901,  -901, 10231,   -69,   -68,  -901,  -338,  -901,   -33,
1550
    -128,  -901,  -901, 13664,   -29,  -901,  -901,  -901,   -27,   -62,
1551
   10231,  -901,   -32,   -30,   -26,  -901,  -250,  -901,  -245,   -25,
1552
     -24,   -22,   -21,  -243,   -20,   -18,   -17,   -16,   -15,   -14,
1553
    -235,   -19,   -13,  -901,  -901,   -23,  -281,  -901,   -12, 10231,
1554
    -901,    -9,  -901,  -228,  -901,  -901,  -223, 11716,  -901,  -302,
1555
    1527,  -901,  -901,   -11,  -901,  -901,  -901,  -293,  -282,  -901,
1556
   12203,  -262,  -901,   -58,  -901, 13664, 13664,  -901, 13664,  -901,
1557
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1558
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1559
    -901,  -901,  -901,  -289,  -901,  -901,  -901,    -5,  -219, 14151,
1560
      -3,  -901, 13664,  -901,     1,  -360,     6,   -34,     3,  -901,
1561
    -350,   -78,  -901,   -36,  -901,  -362,     7,  -152, 13664,  -145,
1562
    -901,  -183,  -141,  -176,  -140,     8,  -139,   -78,  -901, 14638,
1563
    -901,  -135, 13664,    10,  -279,  -901,  7671,   -28,  8183,  -901,
1564
     -28,  -901, 10231, 13664,  -901,  -399,  -901,   -10,  -901,  -901,
1565
     -59,   -73,  -323,  -340,  -121,    -8,    -6,    -4,    18,    23,
1566
    -347,    14,  -901, 12690,  -901,    16,  -901,  -901,    12,    13,
1567
      15,  -901,    22,    24,    19, 13177,    26, 13664,    25,    20,
1568
      21,    27,    29,  -259,  -901,  -901,  -106,  -901,   -95,    32,
1569
       1,  -901,  -901,  -901,  -901,  -901,  2039,  -901,  -901,  -901,
1570
    -901,  -901,  -901,  -901,  -901,  -901,  5623,    28, 12203,     6,
1571
   12203,  -260, 10742,  -901,  -901, 12203, 10231,  -901,  -901,  -901,
1572
    -216,  -300,  -901,  -901, 13664,    -2,  -901,  -901, 13664,    34,
1573
    -901,  -901,  -901, 13664,  -901,  -901,  -901,  -354,  -901,  -901,
1574
    -198,    31,  -901,  -901,  -901,  -901,  -901,  -901,  -197,  -901,
1575
    -196,  -901,  -901,  -194,    35,  -901,  -901,  -901,  -901,  -193,
1576
    -901,  -189,  -901,  -901,  -901,  -901,  -901,  -186,  -901,    36,
1577
    -901,  -185,    37,  -182,    31,  -901,  -321,  -181,  -901,    44,
1578
      45,  -901,  -901,  -901,   -28,   -29,  -102,  -901,  -901,  -901,
1579
     -98,  8695,  -901,  -901,  -901, 13664, 13664, 13664, 13664, 13664,
1580
   13664, 13664, 13664, 13664, 13664, 13664, 13664, 13664, 13664, 13664,
1581
   13664, 13664, 13664, 13664,  -901,  -901,  -901,    48,  -901,  2551,
1582
    -901,  -901,  -901,  2551,  -901, 13664,  -901,  -901,   -96, 13664,
1583
    -123,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1584
    -901,  -901,  -901,  -901,  -901,  -901,  -901, 13664, 13664,  -901,
1585
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901, 12203,  -901,
1586
    -901,  -159,  -901,  9207,  -901, 13664,    49,    41,  -901,  -901,
1587
    -901,  -901,  -901,  -242,  -226,  -901,  -345,  -901,  -362,  -901,
1588
    -362,  -901, 13664, 13664,  -901,  -183,  -901,  -183,  -901,  -176,
1589
    -176,  -901,    55,     8,  -901, 14638,  -901, 13664,  -901,  -901,
1590
   10231,   -94,     6,   -28,  -901,  -901,  -901,  -901,  -901,  -901,
1591
     -59,   -59,   -73,   -73,  -323,  -323,  -323,  -323,  -340,  -340,
1592
    -121,    -8,    -6,    -4,    18,    23, 13664,  -901,  2551,  4599,
1593
      17,  4087,  -178,  -901,  -177,  -901,  -901,  -901,  -901,  -901,
1594
   11229,  -901,  -901,  -901,  -901,    56,  -901,    38,  -901,  -174,
1595
    -901,  -173,  -901,  -170,  -901,  -169,  -901,  -166,  -165,  -901,
1596
   10231,  9719,  -901,  -901,  -901,   -61,    51,    41,    33,    75,
1597
      77,  -901,  -901,  4599,    74,  -901,  -901,  -901,  -901,  -901,
1598
    -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901, 13664,  -901,
1599
      70,  3063, 13664,  -901,    71,    79,    40,    78,  3575,  -901,
1600
      80,  -901, 12203,  -901,  -901,  -901,  -162, 13664,  3063,    74,
1601
    -901,  -901,  2551,  -901,    73,    41,  -901,  -901,  2551,    82,
1602
    -901,  -901
1603
};
1604
1605
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1606
   Performed when YYTABLE does not specify something else to do.  Zero
1607
   means the default is an error.  */
1608
static const yytype_int16 yydefact[] =
1609
{
1610
       0,   175,   236,   234,   235,   233,   240,   241,   242,   243,
1611
     244,   245,   246,   247,   248,   237,   238,   239,   249,   250,
1612
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1613
     394,   395,   396,   397,   398,   399,   400,   420,   421,   422,
1614
     423,   424,   425,   426,   435,   448,   449,   436,   437,   439,
1615
     438,   440,   441,   442,   443,   444,   445,   446,   447,   184,
1616
     185,   263,   264,   262,   270,   271,   261,   272,   265,   266,
1617
     267,   268,   269,   279,   280,   277,   278,   275,   276,   273,
1618
     274,   326,   327,   328,   338,   339,   340,   323,   324,   325,
1619
     335,   336,   337,   320,   321,   322,   332,   333,   334,   317,
1620
     318,   319,   329,   330,   331,   281,   282,   283,   341,   342,
1621
     343,   284,   285,   286,   287,   288,   289,   290,   291,   292,
1622
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1623
     303,   304,   305,   306,   307,   308,   309,   310,   353,   354,
1624
     355,   311,   312,   313,   365,   366,   367,   314,   315,   316,
1625
     377,   378,   379,   344,   345,   346,   347,   348,   349,   350,
1626
     351,   352,   356,   357,   358,   359,   360,   361,   362,   363,
1627
     364,   368,   369,   370,   371,   372,   373,   374,   375,   376,
1628
     380,   381,   382,   383,   384,   385,   386,   387,   388,   392,
1629
     389,   390,   391,   576,   577,   578,   579,   583,   585,   587,
1630
     191,   588,   192,   580,   581,   584,   404,   405,   428,   431,
1631
     393,   402,   403,   419,   401,   450,   451,   454,   455,   456,
1632
     458,   459,   460,   462,   463,   464,   466,   467,   563,   564,
1633
     427,   429,   430,   406,   407,   408,   452,   409,   413,   414,
1634
     417,   457,   461,   465,   410,   411,   415,   416,   453,   412,
1635
     418,   497,   499,   500,   501,   503,   504,   505,   507,   508,
1636
     509,   511,   512,   513,   515,   516,   517,   519,   520,   521,
1637
     523,   524,   525,   527,   528,   529,   531,   532,   533,   535,
1638
     536,   537,   539,   540,   498,   502,   506,   510,   514,   522,
1639
     526,   530,   518,   534,   538,   541,   542,   543,   544,   545,
1640
     546,   547,   548,   549,   550,   551,   552,   553,   554,   555,
1641
     556,   557,   558,   559,   560,   561,   562,   432,   433,   434,
1642
     468,   477,   479,   473,   478,   480,   481,   483,   484,   485,
1643
     487,   488,   489,   491,   492,   493,   495,   496,   469,   470,
1644
     471,   482,   472,   474,   475,   476,   486,   490,   494,   568,
1645
     569,   572,   573,   574,   575,   570,   571,     0,     0,     0,
1646
       0,     0,     0,     0,     0,   173,   174,   565,   566,   567,
1647
       0,   687,   144,   591,   592,   593,     0,   590,   179,   177,
1648
     178,   176,     0,   232,   180,   182,   183,   181,   146,   145,
1649
       0,   214,   582,   194,   196,   190,   198,   200,   195,   197,
1650
     193,   199,   201,   186,   187,   217,   188,   189,   202,   209,
1651
     210,   211,   212,   213,   203,   204,   205,   206,   207,   208,
1652
     147,   148,   150,   149,   151,   153,   154,   152,   216,   161,
1653
     686,     0,   688,     0,   119,   118,     0,   132,   137,   168,
1654
     167,   165,   169,     0,   162,   164,   170,   142,   227,   166,
1655
     589,     0,   683,   685,     0,     0,   171,   172,   586,     0,
1656
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1657
     596,     0,     0,     0,   105,     0,   100,     0,   114,     0,
1658
     128,   120,   130,     0,   131,     0,   103,   138,   108,   112,
1659
       0,   163,   143,     0,   220,   226,     1,   684,     0,     0,
1660
       0,   102,     0,     0,     0,   697,     0,   755,     0,     0,
1661
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662
       0,     0,     0,   695,   696,   693,     0,   691,     0,     0,
1663
     594,   158,   160,     0,   156,   218,     0,     0,   106,     0,
1664
       0,   689,   115,     0,   121,   127,   129,   124,   133,   123,
1665
       0,   139,   110,     0,   109,     0,     0,     9,     0,    49,
1666
      48,    50,    47,     5,     6,     7,     8,     2,    16,    14,
1667
      15,    17,    10,    11,    18,    19,    20,    21,    22,    12,
1668
      13,     3,    23,    42,    25,    30,    31,     0,     0,    35,
1669
       0,   230,     0,    41,   229,     0,   221,   116,     0,   101,
1670
       0,     0,   753,     0,   705,     0,     0,     0,     0,     0,
1671
     722,     0,     0,     0,     0,     0,     0,     0,   747,     0,
1672
     720,     0,     0,     0,     0,   104,     0,     0,     0,   598,
1673
       0,   600,     0,     0,   155,     0,   215,     0,   222,    51,
1674
      55,    58,    61,    66,    69,    71,    73,    75,    77,    79,
1675
      81,     0,    39,     0,   107,   631,   640,   644,     0,     0,
1676
       0,   665,     0,     0,     0,     0,     0,     0,     0,     0,
1677
       0,     0,     0,    51,    84,    97,     0,   618,     0,   170,
1678
     142,   621,   642,   620,   628,   619,     0,   622,   623,   646,
1679
     624,   653,   625,   626,   661,   627,     0,     0,     0,   125,
1680
       0,   134,     0,   612,   141,     0,     0,   113,    43,    44,
1681
       0,   227,    27,    28,     0,     0,    33,    32,     0,   232,
1682
      36,    38,    45,     0,   228,   117,   757,     0,   758,   698,
1683
       0,     0,   756,   717,   713,   714,   715,   716,     0,   711,
1684
       0,    99,   718,     0,     0,   732,   733,   734,   735,     0,
1685
     730,     0,   739,   740,   741,   742,   738,     0,   736,     0,
1686
     743,     0,     0,     0,     2,   751,   227,     0,   749,     0,
1687
       0,   690,   692,   602,     0,   610,     0,   608,   597,   599,
1688
       0,     0,   159,   157,   219,     0,     0,     0,     0,     0,
1689
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1690
       0,     0,     0,     0,    82,   223,   224,     0,   630,     0,
1691
     663,   676,   675,     0,   667,     0,   679,   677,     0,     0,
1692
       0,   660,   680,   681,   682,   629,    87,    88,    90,    89,
1693
      92,    93,    94,    95,    96,    91,    86,     0,     0,   645,
1694
     641,   643,   647,   654,   662,   122,   126,   136,     0,   615,
1695
     616,     0,   140,     0,     4,     0,     0,    29,    26,    37,
1696
     231,   701,   703,     0,     0,   754,     0,   707,     0,   706,
1697
       0,   709,     0,     0,   724,     0,   723,     0,   726,     0,
1698
       0,   728,     0,     0,   748,     0,   745,     0,   721,   694,
1699
       0,     0,   611,     0,   606,   601,   595,    52,    53,    54,
1700
      57,    56,    59,    60,    64,    65,    62,    63,    67,    68,
1701
      70,    72,    74,    76,    78,    80,     0,   225,   632,     0,
1702
       0,     0,     0,   678,     0,   659,    85,    98,   135,   613,
1703
       0,   111,    46,    24,   699,     0,   700,     0,   712,     0,
1704
     719,     0,   731,     0,   737,     0,   744,     0,     0,   750,
1705
       0,     0,   604,   607,   609,     0,     0,   651,     0,     0,
1706
       0,   670,   669,   672,   638,   655,   614,   617,   702,   704,
1707
     708,   710,   725,   727,   729,   746,   603,   605,     0,   633,
1708
       0,     0,     0,   671,     0,     0,   650,     0,     0,   648,
1709
       0,    83,     0,   635,   664,   634,     0,   673,     0,   638,
1710
     637,   639,   657,   652,     0,   674,   668,   649,   658,     0,
1711
     666,   656
1712
};
1713
1714
/* YYPGOTO[NTERM-NUM].  */
1715
static const yytype_int16 yypgoto[] =
1716
{
1717
    -901,  -598,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,
1718
    -901,  -901,  -473,  -901,  -522,  -443,  -532,  -438,  -316,  -314,
1719
    -311,  -315,  -312,  -309,  -901,  -530,  -901,  -537,  -901,  -550,
1720
    -587,    11,  -901,  -901,  -901,     5,  -437,  -901,  -901,    30,
1721
      39,    42,  -901,  -901,  -453,  -901,  -901,  -901,  -901,  -144,
1722
    -901,  -432,  -439,  -901,     9,  -901,     0,  -471,  -901,  -901,
1723
    -901,  -548,   119,  -901,  -901,  -901,  -606,  -604,  -901,  -901,
1724
    -901,  -861,  -605,  -397,  -660,  -901,  -424,  -674,  -900,  -901,
1725
    -489,  -901,  -901,  -499,  -498,  -901,  -901,    43,  -791,  -419,
1726
    -901,  -192,  -901,  -460,  -901,  -190,  -901,  -901,  -901,  -901,
1727
    -188,  -901,  -901,  -901,  -901,  -901,  -901,  -901,  -901,    54,
1728
    -901,  -901,     2,  -901,  -117,  -272,  -508,  -901,  -901,  -901,
1729
    -358,  -353,  -359,  -901,  -901,  -361,  -352,  -363,  -357,  -356,
1730
    -901,  -364,  -355,  -901,  -447,  -589
1731
};
1732
1733
/* YYDEFGOTO[NTERM-NUM].  */
1734
static const yytype_int16 yydefgoto[] =
1735
{
1736
       0,   581,   582,   583,   856,   584,   585,   586,   587,   588,
1737
     589,   590,   673,   592,   640,   641,   642,   643,   644,   645,
1738
     646,   647,   648,   649,   650,   674,   916,   675,   837,   676,
1739
     765,   677,   431,   706,   490,   678,   433,   434,   435,   480,
1740
     481,   482,   436,   437,   438,   439,   440,   441,   533,   534,
1741
     442,   443,   444,   445,   593,   536,   652,   539,   494,   495,
1742
     595,   448,   449,   450,   632,   529,   628,   629,   630,   890,
1743
     951,   631,   776,   777,   704,   851,   681,   682,   683,   684,
1744
     685,   809,   956,   994,   986,   987,   988,   995,   686,   687,
1745
     688,   689,   989,   959,   690,   691,   990,  1009,   692,   693,
1746
     694,   919,   813,   921,   963,   984,   985,   695,   451,   452,
1747
     453,   477,   696,   526,   527,   504,   505,   863,   864,   455,
1748
     738,   739,   743,   456,   457,   749,   750,   757,   758,   761,
1749
     458,   767,   768,   459,   506,   507
1750
};
1751
1752
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1753
   positive, shift that token.  If negative, reduce the rule whose
1754
   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1755
static const yytype_int16 yytable[] =
1756
{
1757
     447,   499,   454,   483,   491,   432,   499,   651,   710,   446,
1758
     711,   430,   841,   703,   732,   756,   551,   498,   918,   520,
1759
     591,   742,   500,   596,   779,   780,   781,   500,   470,   952,
1760
     732,   733,   474,   531,   803,   770,   792,   793,   846,   861,
1761
     847,   723,   850,   726,   491,   852,   727,   483,   726,   790,
1762
     791,   508,   720,   724,   509,   537,   549,   532,   537,   460,
1763
     475,   491,   471,   538,   639,   550,   734,   735,   736,   737,
1764
     804,   766,   794,   795,  -752,   862,   699,   701,   741,   728,
1765
    -752,   993,   708,   709,   728,   712,   713,   461,  1001,   741,
1766
     977,   493,   741,   729,   653,   855,   782,   626,   993,   729,
1767
     853,   729,   654,   537,   729,   -40,   729,   714,   729,   729,
1768
     698,   715,   493,   729,   537,   818,   623,   820,   462,   722,
1769
     624,   700,   468,   807,   826,   827,   828,   829,   830,   831,
1770
     832,   833,   834,   835,   653,   639,   653,   485,   463,   920,
1771
     486,   705,   464,   848,   836,   602,   639,   523,   524,   639,
1772
     604,   603,   610,   525,   730,   934,   605,   465,   611,   935,
1773
     618,   703,   466,   703,   857,   703,   619,   634,   703,   891,
1774
     763,   936,   636,   635,   467,   937,   717,   779,   637,   854,
1775
     639,   859,   718,   511,   472,   838,   509,   491,   928,   510,
1776
     512,   514,   516,   518,   519,   522,   626,   865,   867,   869,
1777
     626,   871,   874,   603,   868,   870,   876,   872,   875,   878,
1778
     881,  1008,   877,   884,   886,   879,   882,   964,   965,   885,
1779
     887,   970,   971,   838,   838,   972,   973,   868,   872,   974,
1780
     975,   875,   879,  1004,   513,   882,   887,   509,   515,   838,
1781
     929,   509,   930,   499,   841,   745,   746,   747,   748,   779,
1782
     860,   473,   752,   753,   754,   755,   567,   796,   797,   498,
1783
     904,   905,   906,   907,   500,   922,   900,   901,   517,   924,
1784
     967,   509,   521,   553,   626,   509,   554,   740,   838,   925,
1785
     509,   756,   756,   478,   744,   940,   742,   509,   751,   759,
1786
     762,   509,   509,   509,   769,   838,   732,   509,   839,   893,
1787
     926,   927,   894,   893,   892,   838,   895,   893,   923,   476,
1788
     953,   703,   897,   898,   899,   639,   639,   639,   639,   639,
1789
     639,   639,   639,   639,   639,   639,   639,   639,   639,   639,
1790
     639,   479,  1003,   788,   841,   789,   493,   766,   501,   766,
1791
     838,   978,   741,   741,   373,   374,   375,   902,   903,   626,
1792
     785,   786,   787,   487,   503,   741,   530,   741,   908,   909,
1793
     535,   540,   370,   547,   548,   552,   955,   537,   597,   957,
1794
     598,   622,   599,   600,   707,   601,   620,   607,   606,   608,
1795
     609,   612,   932,   613,   614,   615,   616,   617,   621,   697,
1796
     716,   721,   625,   703,   633,   -39,   731,   549,   801,   639,
1797
     639,   760,   653,   727,   775,   802,   810,   771,   798,   799,
1798
     800,   805,   639,   957,   639,   808,   814,   811,   815,   812,
1799
     819,   626,   784,   816,   822,   823,   -41,   821,   845,   -34,
1800
     858,   824,   996,   825,   866,   484,   873,   880,   883,   888,
1801
     889,   991,   838,   492,   446,   917,   933,  1005,   946,   968,
1802
     979,   447,   446,   454,   447,   703,   432,   960,   950,   447,
1803
     446,   454,   430,   446,   502,   980,   958,   969,   446,   528,
1804
     981,   982,  -636,   992,   998,   997,   655,  1010,  1002,   484,
1805
     542,  1011,   910,   484,   999,   911,   913,   500,   446,   912,
1806
     914,   783,   446,   594,   915,   469,   954,   961,  1000,  1006,
1807
     492,  1007,   962,   983,   842,   497,   843,   772,   844,   446,
1808
     958,   491,   939,   545,   941,   938,   943,   945,   544,   950,
1809
     541,   948,   944,   942,     0,   546,     0,   947,     0,   627,
1810
       0,   500,   949,     0,     0,     0,     0,     0,   446,     0,
1811
     680,     0,     0,     0,     0,     0,     0,     0,     0,   679,
1812
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1813
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1814
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1815
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1816
       0,     0,     0,     0,     0,     0,     0,     0,     0,   725,
1817
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1818
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1819
       0,     0,     0,     0,     0,     0,   774,     0,   627,     0,
1820
       0,     0,   627,     0,     0,   446,     0,   446,     0,     0,
1821
       0,   446,     0,     0,     0,     0,     0,     0,     0,     0,
1822
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1823
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1824
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1825
       0,     0,     0,     0,     0,     0,   680,     0,     0,     0,
1826
       0,     0,     0,     0,     0,   679,   447,     0,     0,     0,
1827
       0,     0,     0,     0,     0,   446,   627,     0,     0,     0,
1828
       0,     0,     0,     0,     0,   446,     0,     0,     0,     0,
1829
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1831
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1832
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1833
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1834
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1835
       0,   627,     0,     0,     0,     0,     0,     0,     0,     0,
1836
     446,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1837
       0,     0,     0,     0,     0,     0,     0,     0,     0,   680,
1838
       0,     0,     0,   680,     0,     0,     0,     0,   679,     0,
1839
       0,     0,   679,     0,     0,     0,     0,     0,     0,     0,
1840
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1841
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1842
       0,     0,     0,   627,     0,     0,     0,     0,     0,     0,
1843
       0,     0,   446,     0,     0,     0,     0,     0,     0,     0,
1844
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1845
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1846
     627,     0,     0,     0,     0,     0,     0,     0,     0,   446,
1847
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1848
       0,     0,     0,     0,     0,     0,     0,     0,   680,   680,
1849
       0,   680,     0,   454,     0,     0,     0,   679,   679,     0,
1850
     679,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1851
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1852
     774,   627,     0,     0,     0,     0,     0,     0,     0,   446,
1853
     446,     0,     0,   680,     0,     0,     0,     0,     0,     0,
1854
       0,     0,   679,     0,     0,     0,     0,     0,     0,     0,
1855
       0,   680,     0,     0,     0,     0,     0,     0,   680,     0,
1856
     679,     0,     0,     0,     0,     0,     0,   679,   680,     0,
1857
       0,     0,   680,     0,     0,     0,     0,   679,   680,     0,
1858
       0,   679,     0,     0,     0,   496,     0,   679,     1,     2,
1859
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1860
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1861
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1862
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1863
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1864
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1865
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1866
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1867
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1868
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1869
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1870
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1871
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1872
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1873
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1874
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1875
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1876
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1877
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1878
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1879
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1880
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1881
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1882
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1883
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1884
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1885
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
1886
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1887
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
1888
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
1889
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
1890
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
1891
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
1892
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
1893
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
1894
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1895
     363,   364,   365,   366,   367,   368,   369,     0,     0,     0,
1896
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1897
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1898
       0,   370,     0,     0,     0,     0,     0,     0,     0,   371,
1899
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1900
       0,     0,     0,   372,   373,   374,   375,   376,     0,     0,
1901
       0,     0,     0,     0,     0,     0,     0,     0,   377,   378,
1902
     379,   380,   381,   382,   383,     0,     0,     0,     0,     0,
1903
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1904
     384,   385,   386,   387,   388,   389,   390,     0,     0,     0,
1905
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1906
     391,     0,   392,   393,   394,   395,   396,   397,   398,   399,
1907
     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1908
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
1909
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
1910
       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
1911
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1912
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1913
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1914
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1915
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1916
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1917
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1918
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1919
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1920
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1921
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1922
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1923
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1924
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1925
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1926
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1927
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1928
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1929
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1930
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1931
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1932
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1933
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1934
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1935
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1936
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1937
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
1938
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
1939
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
1940
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
1941
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
1942
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1943
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
1944
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
1945
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
1946
     361,   362,   363,   364,   365,   366,   367,   368,   369,     0,
1947
       0,   555,   556,     0,     0,     0,     0,     0,     0,     0,
1948
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1949
     557,   558,     0,   370,     0,   655,   656,     0,     0,     0,
1950
       0,   657,   559,   560,   561,   562,     0,     0,     0,     0,
1951
       0,     0,     0,     0,     0,   372,   373,   374,   375,   376,
1952
       0,     0,     0,     0,     0,   563,   564,   565,   566,   567,
1953
     377,   378,   379,   380,   381,   382,   383,   658,   659,   660,
1954
     661,     0,   662,   663,   664,   665,   666,   667,   668,   669,
1955
     670,   671,   384,   385,   386,   387,   388,   389,   390,   568,
1956
     569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
1957
     579,   580,   391,   672,   392,   393,   394,   395,   396,   397,
1958
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
1959
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
1960
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
1961
     428,   429,     1,     2,     3,     4,     5,     6,     7,     8,
1962
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1963
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1964
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1965
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1966
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1967
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1968
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1969
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1970
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1971
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1972
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1973
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1974
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1975
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1976
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1977
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1978
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1979
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1980
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1981
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1982
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1983
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1984
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1985
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1986
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1987
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
1988
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1989
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
1990
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
1991
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
1992
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
1993
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
1994
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
1995
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1996
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
1997
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
1998
     369,     0,     0,   555,   556,     0,     0,     0,     0,     0,
1999
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2000
       0,     0,   557,   558,     0,   370,     0,   655,   840,     0,
2001
       0,     0,     0,   657,   559,   560,   561,   562,     0,     0,
2002
       0,     0,     0,     0,     0,     0,     0,   372,   373,   374,
2003
     375,   376,     0,     0,     0,     0,     0,   563,   564,   565,
2004
     566,   567,   377,   378,   379,   380,   381,   382,   383,   658,
2005
     659,   660,   661,     0,   662,   663,   664,   665,   666,   667,
2006
     668,   669,   670,   671,   384,   385,   386,   387,   388,   389,
2007
     390,   568,   569,   570,   571,   572,   573,   574,   575,   576,
2008
     577,   578,   579,   580,   391,   672,   392,   393,   394,   395,
2009
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2010
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
2011
     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
2012
     426,   427,   428,   429,     1,     2,     3,     4,     5,     6,
2013
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2014
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2015
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2016
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2017
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2018
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2019
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2020
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2021
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2022
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2023
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2024
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2025
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2026
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2027
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2028
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2029
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2030
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2031
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2032
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2033
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2034
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2035
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2036
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2037
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2038
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2039
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2040
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2041
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2042
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2043
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2044
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2045
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2046
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2047
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2048
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
2049
     367,   368,   369,     0,     0,   555,   556,     0,     0,     0,
2050
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2051
       0,     0,     0,     0,   557,   558,     0,   370,     0,   655,
2052
       0,     0,     0,     0,     0,   657,   559,   560,   561,   562,
2053
       0,     0,     0,     0,     0,     0,     0,     0,     0,   372,
2054
     373,   374,   375,   376,     0,     0,     0,     0,     0,   563,
2055
     564,   565,   566,   567,   377,   378,   379,   380,   381,   382,
2056
     383,   658,   659,   660,   661,     0,   662,   663,   664,   665,
2057
     666,   667,   668,   669,   670,   671,   384,   385,   386,   387,
2058
     388,   389,   390,   568,   569,   570,   571,   572,   573,   574,
2059
     575,   576,   577,   578,   579,   580,   391,   672,   392,   393,
2060
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2061
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2062
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2063
     424,   425,   426,   427,   428,   429,     1,     2,     3,     4,
2064
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2065
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2066
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2067
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2068
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2069
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2070
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2071
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2072
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2073
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2074
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2075
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2076
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2077
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2078
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2079
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2080
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2081
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2082
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2083
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2084
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2085
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2086
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2087
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2088
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2089
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2090
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2091
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2092
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2093
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2094
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2095
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2096
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2097
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2098
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2099
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
2100
     365,   366,   367,   368,   369,     0,     0,   555,   556,     0,
2101
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2102
       0,     0,     0,     0,     0,     0,   557,   558,     0,   370,
2103
       0,   540,     0,     0,     0,     0,     0,   657,   559,   560,
2104
     561,   562,     0,     0,     0,     0,     0,     0,     0,     0,
2105
       0,   372,   373,   374,   375,   376,     0,     0,     0,     0,
2106
       0,   563,   564,   565,   566,   567,   377,   378,   379,   380,
2107
     381,   382,   383,   658,   659,   660,   661,     0,   662,   663,
2108
     664,   665,   666,   667,   668,   669,   670,   671,   384,   385,
2109
     386,   387,   388,   389,   390,   568,   569,   570,   571,   572,
2110
     573,   574,   575,   576,   577,   578,   579,   580,   391,   672,
2111
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
2112
     402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
2113
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
2114
     422,   423,   424,   425,   426,   427,   428,   429,     1,     2,
2115
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2116
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2117
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2118
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2119
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2120
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2121
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2122
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2123
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2124
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2125
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2126
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2127
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2128
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2129
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2130
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2131
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2132
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2133
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2134
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2135
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2136
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2137
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2138
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2139
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2140
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2141
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2142
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2143
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2144
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2145
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2146
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2147
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2148
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
2149
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2150
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
2151
     363,   364,   365,   366,   367,   368,   369,     0,     0,   555,
2152
     556,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2153
       0,     0,     0,     0,     0,     0,     0,     0,   557,   558,
2154
       0,   370,     0,     0,     0,     0,     0,     0,     0,   657,
2155
     559,   560,   561,   562,     0,     0,     0,     0,     0,     0,
2156
       0,     0,     0,   372,   373,   374,   375,   376,     0,     0,
2157
       0,     0,     0,   563,   564,   565,   566,   567,   377,   378,
2158
     379,   380,   381,   382,   383,   658,   659,   660,   661,     0,
2159
     662,   663,   664,   665,   666,   667,   668,   669,   670,   671,
2160
     384,   385,   386,   387,   388,   389,   390,   568,   569,   570,
2161
     571,   572,   573,   574,   575,   576,   577,   578,   579,   580,
2162
     391,   672,   392,   393,   394,   395,   396,   397,   398,   399,
2163
     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
2164
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
2165
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
2166
       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2167
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2168
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2169
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2170
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2171
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2172
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2173
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2174
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2175
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2176
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2177
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2178
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2179
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2180
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2181
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2182
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2183
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2184
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2185
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2186
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2187
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2188
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2189
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2190
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2191
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2192
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2193
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2194
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2195
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2196
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2197
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2198
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2199
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2200
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2201
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
2202
     361,   362,   363,   364,   365,   366,   367,   368,   369,     0,
2203
       0,   555,   556,     0,     0,     0,     0,     0,     0,     0,
2204
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2205
     557,   558,     0,   370,     0,     0,     0,     0,     0,     0,
2206
       0,   657,   559,   560,   561,   562,     0,     0,     0,     0,
2207
       0,     0,     0,     0,     0,   372,   373,   374,   375,   376,
2208
       0,     0,     0,     0,     0,   563,   564,   565,   566,   567,
2209
     377,   378,   379,   380,   381,   382,   383,     0,     0,     0,
2210
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2211
       0,     0,   384,   385,   386,   387,   388,   389,   390,   568,
2212
     569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
2213
     579,   580,   391,     0,   392,   393,   394,   395,   396,   397,
2214
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
2215
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
2216
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
2217
     428,   429,     1,     2,     3,     4,     5,     6,     7,     8,
2218
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2219
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2220
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2221
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2222
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2223
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2224
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2225
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2226
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2227
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2228
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2229
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2230
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2231
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2232
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2233
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2234
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2235
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2236
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2237
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2238
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2239
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2240
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2241
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2242
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2243
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2244
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2245
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2246
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2247
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2248
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2249
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2250
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2251
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2252
     349,   350,   351,   352,   353,   354,   355,   356,     0,     0,
2253
       0,   360,   361,   362,   363,   364,   365,   366,   367,   368,
2254
     369,     0,     0,   555,   556,     0,     0,     0,     0,     0,
2255
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2256
       0,     0,   557,   558,     0,     0,     0,     0,     0,     0,
2257
       0,     0,     0,     0,   559,   560,   561,   562,     0,     0,
2258
       0,     0,     0,     0,     0,     0,     0,   372,   373,   374,
2259
     375,     0,     0,     0,     0,     0,     0,   563,   564,   565,
2260
     566,   567,   377,   378,   379,   380,   381,   382,   383,     0,
2261
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2262
       0,     0,     0,     0,   384,   385,   386,   387,   388,   389,
2263
     390,   568,   569,   570,   571,   572,   573,   574,   575,   576,
2264
     577,   578,   579,   580,   391,     0,   392,   393,   394,   395,
2265
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2266
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
2267
     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
2268
     426,   427,   428,   429,     1,     2,     3,     4,     5,     6,
2269
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2270
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2271
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2272
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2273
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2274
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2275
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2276
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2277
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2278
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2279
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2280
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2281
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2282
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2283
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2284
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2285
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2286
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2287
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2288
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2289
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2290
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2291
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2292
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2293
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2294
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2295
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2296
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2297
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2298
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2299
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2300
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2301
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2302
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2303
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2304
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
2305
     367,   368,   369,     0,     0,     0,     0,     0,     0,     0,
2306
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2307
       0,     0,     0,     0,     0,     0,     0,   370,     0,     0,
2308
       0,     0,     0,     0,     0,   371,     0,     0,     0,     0,
2309
       0,     0,     0,     0,     0,     0,     0,     0,     0,   372,
2310
     373,   374,   375,   376,     0,     0,     0,     0,     0,     0,
2311
       0,     0,     0,     0,   377,   378,   379,   380,   381,   382,
2312
     383,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2313
       0,     0,     0,     0,     0,     0,   384,   385,   386,   387,
2314
     388,   389,   390,     0,     0,     0,     0,     0,     0,     0,
2315
       0,     0,     0,     0,     0,     0,   391,     0,   392,   393,
2316
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2317
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2318
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2319
     424,   425,   426,   427,   428,   429,     1,     2,     3,     4,
2320
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2321
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2322
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2323
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2324
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2325
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2326
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2327
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2328
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2329
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2330
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2331
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2332
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2333
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2334
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2335
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2336
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2337
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2338
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2339
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2340
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2341
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2342
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2343
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2344
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2345
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2346
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2347
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2348
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2349
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2350
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2351
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2352
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2353
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2354
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2355
     355,   356,     0,     0,     0,   360,   361,   362,   363,   364,
2356
     365,   366,   367,   368,   369,     0,     0,     0,     0,     0,
2357
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2358
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2359
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2360
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2361
       0,   372,   373,   374,   375,     0,     0,     0,     0,     0,
2362
       0,     0,     0,     0,     0,     0,   377,   378,   379,   380,
2363
     381,   382,   383,   658,     0,     0,   661,     0,   662,   663,
2364
       0,     0,   666,     0,     0,     0,     0,     0,   384,   385,
2365
     386,   387,   388,   389,   390,     0,     0,     0,     0,     0,
2366
       0,     0,     0,     0,     0,     0,     0,     0,   391,     0,
2367
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
2368
     402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
2369
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
2370
     422,   423,   424,   425,   426,   427,   428,   429,     1,     2,
2371
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2372
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2373
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2374
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2375
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2376
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2377
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2378
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2379
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2380
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2381
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2382
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2383
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2384
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2385
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2386
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2387
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2388
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2389
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2390
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2391
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2392
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2393
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2394
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2395
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2396
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2397
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2398
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2399
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2400
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2401
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2402
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2403
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2404
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
2405
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2406
     353,   354,   355,   356,     0,     0,     0,   360,   361,   362,
2407
     363,   364,   365,   366,   367,   368,   369,     0,     0,     0,
2408
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2409
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2410
       0,     0,     0,     0,     0,     0,     0,     0,     0,   488,
2411
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2412
       0,     0,     0,   372,   373,   374,   375,     0,     0,     0,
2413
       0,     0,     0,     0,     0,     0,     0,   489,   377,   378,
2414
     379,   380,   381,   382,   383,     0,     0,     0,     0,     0,
2415
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2416
     384,   385,   386,   387,   388,   389,   390,     0,     0,     0,
2417
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2418
     391,     0,   392,   393,   394,   395,   396,   397,   398,   399,
2419
     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
2420
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
2421
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
2422
       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2423
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2424
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2425
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2426
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2427
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2428
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2429
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2430
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2431
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2432
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2433
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2434
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2435
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2436
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2437
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2438
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2439
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2440
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2441
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2442
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2443
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2444
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2445
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2446
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2447
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2448
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2449
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2450
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2451
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2452
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2453
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2454
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2455
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2456
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2457
     351,   352,   353,   354,   355,   356,     0,     0,     0,   360,
2458
     361,   362,   363,   364,   365,   366,   367,   368,   369,     0,
2459
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2460
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2461
       0,     0,     0,   370,     0,     0,     0,     0,     0,     0,
2462
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2463
       0,     0,     0,     0,     0,   372,   373,   374,   375,     0,
2464
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2465
     377,   378,   379,   380,   381,   382,   383,     0,     0,     0,
2466
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2467
       0,     0,   384,   385,   386,   387,   388,   389,   390,     0,
2468
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2469
       0,     0,   391,     0,   392,   393,   394,   395,   396,   397,
2470
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
2471
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
2472
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
2473
     428,   429,     1,     2,     3,     4,     5,     6,     7,     8,
2474
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2475
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2476
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2477
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2478
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2479
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2480
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2481
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2482
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2483
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2484
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2485
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2486
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2487
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2488
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2489
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2490
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2491
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2492
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2493
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2494
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2495
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2496
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2497
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2498
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2499
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2500
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2501
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2502
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2503
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2504
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2505
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2506
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2507
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2508
     349,   350,   351,   352,   353,   354,   355,   356,     0,     0,
2509
       0,   360,   361,   362,   363,   364,   365,   366,   367,   368,
2510
     369,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2511
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2512
       0,     0,     0,     0,     0,     0,     0,     0,     0,   543,
2513
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2514
       0,     0,     0,     0,     0,     0,     0,   372,   373,   374,
2515
     375,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2516
       0,     0,   377,   378,   379,   380,   381,   382,   383,     0,
2517
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2518
       0,     0,     0,     0,   384,   385,   386,   387,   388,   389,
2519
     390,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2520
       0,     0,     0,     0,   391,     0,   392,   393,   394,   395,
2521
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2522
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
2523
     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
2524
     426,   427,   428,   429,     1,     2,     3,     4,     5,     6,
2525
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2526
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2527
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2528
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2529
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2530
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2531
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2532
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2533
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2534
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2535
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2536
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2537
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2538
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2539
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2540
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2541
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2542
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2543
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2544
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2545
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2546
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2547
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2548
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2549
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2550
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2551
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2552
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2553
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2554
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2555
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2556
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2557
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2558
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2559
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2560
       0,     0,     0,   360,   361,   362,   363,   364,   365,   366,
2561
     367,   368,   369,     0,     0,     0,     0,     0,     0,     0,
2562
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2563
       0,     0,     0,     0,     0,     0,     0,     0,     0,   773,
2564
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2565
       0,     0,     0,     0,     0,     0,     0,     0,     0,   372,
2566
     373,   374,   375,     0,     0,     0,     0,     0,     0,     0,
2567
       0,     0,     0,     0,   377,   378,   379,   380,   381,   382,
2568
     383,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2569
       0,     0,     0,     0,     0,     0,   384,   385,   386,   387,
2570
     388,   389,   390,     0,     0,     0,     0,     0,     0,     0,
2571
       0,     0,     0,     0,     0,     0,   391,     0,   392,   393,
2572
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2573
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2574
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2575
     424,   425,   426,   427,   428,   429,     1,     2,     3,     4,
2576
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2577
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2578
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2579
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2580
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2581
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
2582
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2583
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2584
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2585
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2586
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2587
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2588
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2589
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2590
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2591
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2592
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2593
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2594
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2595
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
2596
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2597
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
2598
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
2599
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
2600
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
2601
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2602
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2603
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2604
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
2605
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
2606
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
2607
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
2608
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
2609
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2610
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2611
     355,   356,     0,     0,     0,   360,   361,   362,   363,   364,
2612
     365,   366,   367,   368,   369,     0,     0,     0,     0,     0,
2613
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2614
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2615
       0,     0,   778,     0,     0,     0,     0,     0,     0,     0,
2616
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2617
       0,   372,   373,   374,   375,     0,     0,     0,     0,     0,
2618
       0,     0,     0,     0,     0,     0,   377,   378,   379,   380,
2619
     381,   382,   383,     0,     0,     0,     0,     0,     0,     0,
2620
       0,     0,     0,     0,     0,     0,     0,     0,   384,   385,
2621
     386,   387,   388,   389,   390,     0,     0,     0,     0,     0,
2622
       0,     0,     0,     0,     0,     0,     0,     0,   391,     0,
2623
     392,   393,   394,   395,   396,   397,   398,   399,   400,   401,
2624
     402,   403,   404,   405,   406,   407,   408,   409,   410,   411,
2625
     412,   413,   414,   415,   416,   417,   418,   419,   420,   421,
2626
     422,   423,   424,   425,   426,   427,   428,   429,     1,     2,
2627
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
2628
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
2629
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2630
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
2631
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
2632
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
2633
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
2634
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
2635
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
2636
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
2637
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
2638
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
2639
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
2640
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
2641
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
2642
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
2643
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
2644
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
2645
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
2646
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
2647
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
2648
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
2649
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
2650
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
2651
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
2652
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
2653
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
2654
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
2655
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
2656
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
2657
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
2658
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
2659
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
2660
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
2661
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
2662
     353,   354,   355,   356,     0,     0,     0,   360,   361,   362,
2663
     363,   364,   365,   366,   367,   368,   369,     0,     0,     0,
2664
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2665
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2666
       0,     0,     0,     0,   896,     0,     0,     0,     0,     0,
2667
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2668
       0,     0,     0,   372,   373,   374,   375,     0,     0,     0,
2669
       0,     0,     0,     0,     0,     0,     0,     0,   377,   378,
2670
     379,   380,   381,   382,   383,     0,     0,     0,     0,     0,
2671
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2672
     384,   385,   386,   387,   388,   389,   390,     0,     0,     0,
2673
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2674
     391,     0,   392,   393,   394,   395,   396,   397,   398,   399,
2675
     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
2676
     410,   411,   412,   413,   414,   415,   416,   417,   418,   419,
2677
     420,   421,   422,   423,   424,   425,   426,   427,   428,   429,
2678
       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
2679
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2680
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2681
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
2682
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
2683
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2684
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
2685
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
2686
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
2687
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
2688
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
2689
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
2690
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
2691
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
2692
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
2693
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
2694
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
2695
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
2696
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
2697
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
2698
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
2699
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
2700
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
2701
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
2702
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
2703
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2704
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
2705
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
2706
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
2707
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
2708
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
2709
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
2710
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2711
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
2712
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2713
     351,   352,   353,   354,   355,   356,     0,     0,     0,   360,
2714
     361,   362,   363,   364,   365,   366,   367,   368,   369,     0,
2715
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2716
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2717
       0,     0,     0,     0,     0,     0,   931,     0,     0,     0,
2718
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2719
       0,     0,     0,     0,     0,   372,   373,   374,   375,     0,
2720
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2721
     377,   378,   379,   380,   381,   382,   383,     0,     0,     0,
2722
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2723
       0,     0,   384,   385,   386,   387,   388,   389,   390,     0,
2724
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2725
       0,     0,   391,     0,   392,   393,   394,   395,   396,   397,
2726
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
2727
     408,   409,   410,   411,   412,   413,   414,   415,   416,   417,
2728
     418,   419,   420,   421,   422,   423,   424,   425,   426,   427,
2729
     428,   429,     1,     2,     3,     4,     5,     6,     7,     8,
2730
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2731
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2732
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2733
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2734
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2735
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
2736
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2737
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2738
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2739
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2740
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2741
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2742
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2743
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2744
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2745
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2746
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2747
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2748
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2749
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
2750
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2751
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2752
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2753
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2754
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2755
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2756
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2757
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2758
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2759
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2760
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2761
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2762
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2763
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2764
     349,   350,   351,   352,   353,   354,   355,   356,     0,     0,
2765
       0,   360,   361,   362,   363,   364,   365,   366,   367,   368,
2766
     369,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2767
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2768
       0,     0,     0,     0,     0,     0,     0,     0,   976,     0,
2769
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2770
       0,     0,     0,     0,     0,     0,     0,   372,   373,   374,
2771
     375,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2772
       0,     0,   377,   378,   379,   380,   381,   382,   383,     0,
2773
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2774
       0,     0,     0,     0,   384,   385,   386,   387,   388,   389,
2775
     390,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2776
       0,     0,     0,     0,   391,     0,   392,   393,   394,   395,
2777
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2778
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
2779
     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
2780
     426,   427,   428,   429,     1,     2,     3,     4,     5,     6,
2781
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2782
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2783
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
2784
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
2785
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
2786
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
2787
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2788
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
2789
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
2790
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
2791
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
2792
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
2793
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
2794
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
2795
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
2796
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
2797
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
2798
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
2799
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
2800
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
2801
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
2802
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
2803
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
2804
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
2805
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
2806
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
2807
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
2808
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
2809
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
2810
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2811
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
2812
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
2813
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
2814
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2815
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
2816
       0,     0,     0,   360,   361,   362,   363,   364,   365,   366,
2817
     367,   368,   369,     0,     0,     0,     0,     0,     0,     0,
2818
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2819
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2820
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2821
       0,     0,     0,     0,     0,     0,     0,     0,     0,   372,
2822
     373,   374,   375,     0,     0,     0,     0,     0,     0,     0,
2823
       0,     0,     0,     0,   377,   378,   379,   380,   381,   382,
2824
     383,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2825
       0,     0,     0,     0,     0,     0,   384,   385,   386,   387,
2826
     388,   389,   390,     0,     0,     0,     0,     0,     0,     0,
2827
       0,     0,     0,     0,     0,     0,   391,     0,   392,   393,
2828
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2829
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2830
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2831
     424,   425,   426,   427,   428,   429,     2,     3,     4,     5,
2832
       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
2833
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
2834
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
2835
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
2836
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
2837
      56,    57,    58,     0,     0,    61,    62,    63,    64,    65,
2838
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
2839
      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
2840
      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
2841
      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
2842
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
2843
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
2844
     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
2845
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
2846
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
2847
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
2848
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
2849
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
2850
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
2851
     196,   197,   198,   199,     0,   201,     0,   203,   204,   205,
2852
     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
2853
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
2854
     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
2855
     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
2856
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
2857
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
2858
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2859
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
2860
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
2861
     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2862
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
2863
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
2864
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
2865
     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
2866
     346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
2867
     356,     0,     0,     0,     0,     0,     0,   363,     0,     0,
2868
       0,   367,   368,   369,     0,     0,   555,   556,     0,     0,
2869
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2870
       0,     0,     0,     0,     0,   557,   558,     0,     0,     0,
2871
     702,   849,     0,     0,     0,     0,     0,   559,   560,   561,
2872
     562,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2873
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2874
     563,   564,   565,   566,   567,   377,     0,     0,     0,     0,
2875
     382,   383,     0,     0,     0,     0,     0,     0,     0,     0,
2876
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2877
       0,     0,     0,     0,   568,   569,   570,   571,   572,   573,
2878
     574,   575,   576,   577,   578,   579,   580,     0,     0,   392,
2879
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2880
       0,     0,   405,     2,     3,     4,     5,     6,     7,     8,
2881
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2882
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2883
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
2884
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
2885
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
2886
       0,     0,    61,    62,    63,    64,    65,    66,    67,    68,
2887
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2888
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
2889
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
2890
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2891
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
2892
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
2893
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
2894
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
2895
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
2896
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
2897
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
2898
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
2899
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
2900
     199,     0,   201,     0,   203,   204,   205,   206,   207,   208,
2901
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
2902
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
2903
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
2904
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2905
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
2906
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
2907
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2908
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
2909
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
2910
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
2911
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
2912
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
2913
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
2914
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
2915
     349,   350,   351,   352,   353,   354,   355,   356,     0,     0,
2916
       0,     0,     0,     0,   363,     0,     0,     0,   367,   368,
2917
     369,     0,     0,   555,   556,     0,     0,     0,     0,     0,
2918
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2919
       0,     0,   557,   558,     0,     0,     0,   702,   966,     0,
2920
       0,     0,     0,     0,   559,   560,   561,   562,     0,     0,
2921
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2922
       0,     0,     0,     0,     0,     0,     0,   563,   564,   565,
2923
     566,   567,   377,     0,     0,     0,     0,   382,   383,     0,
2924
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2925
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2926
       0,   568,   569,   570,   571,   572,   573,   574,   575,   576,
2927
     577,   578,   579,   580,     0,     0,   392,     0,     0,     0,
2928
       0,     0,     0,     0,     0,     0,     0,     0,     0,   405,
2929
       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
2930
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
2931
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2932
      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
2933
      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
2934
      52,    53,    54,    55,    56,    57,    58,     0,     0,    61,
2935
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
2936
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
2937
      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
2938
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
2939
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
2940
     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
2941
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
2942
     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
2943
     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
2944
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
2945
     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2946
     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
2947
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
2948
     192,   193,   194,   195,   196,   197,   198,   199,     0,   201,
2949
       0,   203,   204,   205,   206,   207,   208,   209,   210,   211,
2950
     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
2951
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
2952
     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
2953
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
2954
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2955
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2956
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
2957
     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
2958
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
2959
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
2960
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
2961
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2962
     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
2963
     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
2964
     352,   353,   354,   355,   356,     0,     0,     0,     0,     0,
2965
       0,   363,     0,     0,     0,   367,   368,   369,     0,     0,
2966
     555,   556,     0,     0,     0,     0,     0,     0,     0,     0,
2967
       0,     0,     0,     0,     0,     0,     0,     0,     0,   557,
2968
     558,     0,     0,   638,     0,     0,     0,     0,     0,     0,
2969
       0,   559,   560,   561,   562,     0,     0,     0,     0,     0,
2970
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2971
       0,     0,     0,     0,   563,   564,   565,   566,   567,   377,
2972
       0,     0,     0,     0,   382,   383,     0,     0,     0,     0,
2973
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2974
       0,     0,     0,     0,     0,     0,     0,     0,   568,   569,
2975
     570,   571,   572,   573,   574,   575,   576,   577,   578,   579,
2976
     580,     0,     0,   392,     0,     0,     0,     0,     0,     0,
2977
       0,     0,     0,     0,     0,     0,   405,     2,     3,     4,
2978
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
2979
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
2980
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
2981
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
2982
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
2983
      55,    56,    57,    58,     0,     0,    61,    62,    63,    64,
2984
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
2985
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
2986
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
2987
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
2988
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
2989
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
2990
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
2991
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
2992
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
2993
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
2994
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
2995
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
2996
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
2997
     195,   196,   197,   198,   199,     0,   201,     0,   203,   204,
2998
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
2999
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3000
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3001
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3002
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3003
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3004
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3005
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3006
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3007
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3008
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3009
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3010
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
3011
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
3012
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
3013
     355,   356,     0,     0,     0,     0,     0,     0,   363,     0,
3014
       0,     0,   367,   368,   369,     0,     0,   555,   556,     0,
3015
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3016
       0,     0,     0,     0,     0,     0,   557,   558,     0,     0,
3017
       0,   702,     0,     0,     0,     0,     0,     0,   559,   560,
3018
     561,   562,     0,     0,     0,     0,     0,     0,     0,     0,
3019
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3020
       0,   563,   564,   565,   566,   567,   377,     0,     0,     0,
3021
       0,   382,   383,     0,     0,     0,     0,     0,     0,     0,
3022
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3023
       0,     0,     0,     0,     0,   568,   569,   570,   571,   572,
3024
     573,   574,   575,   576,   577,   578,   579,   580,     0,     0,
3025
     392,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3026
       0,     0,     0,   405,     2,     3,     4,     5,     6,     7,
3027
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
3028
      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3029
      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
3030
      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
3031
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
3032
      58,     0,     0,    61,    62,    63,    64,    65,    66,    67,
3033
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
3034
      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
3035
      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
3036
      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
3037
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
3038
     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
3039
     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
3040
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
3041
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
3042
     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
3043
     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
3044
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
3045
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
3046
     198,   199,     0,   201,     0,   203,   204,   205,   206,   207,
3047
     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
3048
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
3049
     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
3050
     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
3051
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
3052
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
3053
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
3054
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
3055
     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
3056
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
3057
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
3058
     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
3059
     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
3060
     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
3061
     348,   349,   350,   351,   352,   353,   354,   355,   356,     0,
3062
       0,     0,     0,     0,     0,   363,     0,     0,     0,   367,
3063
     368,   369,     0,     0,   555,   556,     0,     0,     0,     0,
3064
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3065
       0,     0,     0,   557,   558,     0,     0,   806,     0,     0,
3066
       0,     0,     0,     0,     0,   559,   560,   561,   562,     0,
3067
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3068
       0,     0,     0,     0,     0,     0,     0,     0,   563,   564,
3069
     565,   566,   567,   377,     0,     0,     0,     0,   382,   383,
3070
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3071
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3072
       0,     0,   568,   569,   570,   571,   572,   573,   574,   575,
3073
     576,   577,   578,   579,   580,     0,     0,   392,     0,     0,
3074
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3075
     405,     2,     3,     4,     5,     6,     7,     8,     9,    10,
3076
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3077
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3078
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3079
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3080
      51,    52,    53,    54,    55,    56,    57,    58,     0,     0,
3081
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3082
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3083
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3084
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3085
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3086
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3087
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3088
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3089
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3090
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3091
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3092
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3093
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3094
     191,   192,   193,   194,   195,   196,   197,   198,   199,     0,
3095
     201,     0,   203,   204,   205,   206,   207,   208,   209,   210,
3096
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3097
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3098
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3099
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3100
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3101
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3102
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3103
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3104
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3105
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3106
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
3107
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
3108
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
3109
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
3110
     351,   352,   353,   354,   355,   356,     0,     0,     0,     0,
3111
       0,     0,   363,     0,     0,     0,   367,   368,   369,     0,
3112
       0,   555,   556,     0,     0,     0,     0,     0,     0,     0,
3113
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3114
     557,   558,     0,     0,     0,     0,     0,     0,     0,     0,
3115
       0,   817,   559,   560,   561,   562,     0,     0,     0,     0,
3116
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3117
       0,     0,     0,     0,     0,   563,   564,   565,   566,   567,
3118
     377,     0,     0,     0,     0,   382,   383,     0,     0,     0,
3119
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3120
       0,     0,     0,     0,     0,     0,     0,     0,     0,   568,
3121
     569,   570,   571,   572,   573,   574,   575,   576,   577,   578,
3122
     579,   580,     0,     0,   392,     0,     0,     0,     0,     0,
3123
       0,     0,     0,     0,     0,     0,     0,   405,     2,     3,
3124
       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
3125
      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
3126
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
3127
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
3128
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
3129
      54,    55,    56,    57,    58,     0,     0,    61,    62,    63,
3130
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
3131
      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3132
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
3133
      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
3134
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
3135
     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
3136
     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
3137
     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
3138
     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
3139
     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
3140
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
3141
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
3142
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
3143
     194,   195,   196,   197,   198,   199,     0,   201,     0,   203,
3144
     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
3145
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
3146
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
3147
     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
3148
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
3149
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
3150
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
3151
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
3152
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
3153
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
3154
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
3155
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
3156
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
3157
     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
3158
     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
3159
     354,   355,   356,     0,     0,     0,     0,     0,     0,   363,
3160
       0,     0,     0,   367,   368,   369,     0,     0,   555,   556,
3161
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3162
       0,     0,     0,     0,     0,     0,     0,   557,   558,     0,
3163
       0,     0,     0,     0,     0,     0,     0,     0,     0,   559,
3164
     560,   561,   562,     0,     0,     0,     0,     0,     0,     0,
3165
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3166
       0,     0,   563,   564,   565,   566,   567,   377,     0,     0,
3167
       0,     0,   382,   383,     0,     0,     0,     0,     0,     0,
3168
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3169
       0,     0,     0,     0,     0,     0,   568,   569,   570,   571,
3170
     572,   573,   574,   575,   576,   577,   578,   579,   580,     0,
3171
       0,   392,     0,     0,     0,     0,     0,     0,     0,     0,
3172
       0,     0,     0,     0,   405,     2,     3,     4,     5,     6,
3173
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3174
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3175
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3176
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3177
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3178
      57,    58,     0,     0,    61,    62,    63,    64,    65,    66,
3179
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3180
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3181
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3182
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3183
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3184
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3185
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3186
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3187
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3188
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3189
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3190
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3191
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3192
     197,   198,   199,     0,   201,     0,   203,   204,   205,   206,
3193
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3194
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3195
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3196
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3197
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3198
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3199
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3200
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3201
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3202
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3203
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3204
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
3205
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
3206
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
3207
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
3208
       0,     0,     0,     0,     0,     0,   363,     0,     0,     0,
3209
     367,   368,   369,     0,     0,   555,   556,     0,     0,     0,
3210
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3211
       0,     0,     0,     0,   557,   558,     0,     0,     0,     0,
3212
       0,     0,     0,     0,     0,     0,   559,   560,   561,   562,
3213
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3214
       0,     0,     0,     0,     0,     0,     0,     0,     0,   563,
3215
     564,   565,   566,   567,   377,     0,     0,     0,     0,   382,
3216
     719,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3217
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3218
       0,     0,     0,   568,   569,   570,   571,   572,   573,   574,
3219
     575,   576,   577,   578,   579,   580,     0,     0,   392,     0,
3220
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3221
       0,   405,     2,     3,     4,     5,     6,     7,     8,     9,
3222
      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
3223
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3224
      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
3225
      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
3226
      50,    51,    52,    53,    54,    55,    56,    57,    58,     0,
3227
       0,    61,    62,    63,    64,    65,    66,    67,    68,    69,
3228
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
3229
      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
3230
      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
3231
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
3232
     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
3233
     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
3234
     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
3235
     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
3236
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
3237
     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
3238
     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
3239
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
3240
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
3241
       0,   201,     0,   203,   204,   205,   206,   207,   208,   209,
3242
     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
3243
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
3244
     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
3245
     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
3246
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
3247
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
3248
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
3249
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
3250
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
3251
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
3252
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
3253
     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
3254
     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
3255
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
3256
     350,   351,   352,   353,   354,   355,   356,     0,     0,     0,
3257
       0,     0,     0,   363,     0,     0,     0,   367,   368,   369,
3258
       0,     0,   555,   556,     0,     0,     0,     0,     0,     0,
3259
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3260
       0,   557,   558,     0,     0,     0,     0,     0,     0,     0,
3261
       0,     0,     0,   559,   560,   561,   562,     0,     0,     0,
3262
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3263
       0,     0,     0,     0,     0,     0,   563,   564,   565,   566,
3264
     764,   377,     0,     0,     0,     0,   382,   383,     0,     0,
3265
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3266
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3267
     568,   569,   570,   571,   572,   573,   574,   575,   576,   577,
3268
     578,   579,   580,     0,     0,   392,     0,     0,     0,     0,
3269
       0,     0,     0,     0,     0,     0,     0,     0,   405,     2,
3270
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3271
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3272
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3273
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3274
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3275
      53,    54,    55,    56,    57,    58,     0,     0,    61,    62,
3276
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3277
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3278
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3279
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3280
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3281
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3282
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3283
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3284
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3285
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3286
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3287
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3288
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3289
     193,   194,   195,   196,   197,   198,   199,     0,   201,     0,
3290
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3291
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3292
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3293
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3294
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3295
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3296
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3297
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3298
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3299
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3300
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3301
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3302
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3303
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
3304
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
3305
     353,   354,   355,   356,     0,     0,     0,     0,     0,     0,
3306
     363,     0,     0,     0,   367,   368,   369,     0,     0,     0,
3307
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3308
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3309
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3310
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3311
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3312
       0,     0,     0,     0,     0,     0,     0,     0,   377,     0,
3313
       0,     0,     0,   382,   383,     0,     0,     0,     0,     0,
3314
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3315
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3316
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
3317
       0,     0,   392
3318
};
3319
3320
static const yytype_int16 yycheck[] =
3321
{
3322
       0,   454,     0,   435,   443,     0,   459,   537,   558,     0,
3323
     558,     0,   686,   550,   603,   613,   487,   454,   809,   466,
3324
     493,   608,   454,   494,   628,   630,   632,   459,   398,   890,
3325
     619,   393,   404,   432,   381,   622,   376,   377,   698,   393,
3326
     700,   401,   702,   393,   483,   705,   396,   479,   393,   372,
3327
     373,   429,   589,   413,   432,   396,   394,   456,   396,   394,
3328
     432,   500,   432,   404,   537,   403,   428,   429,   430,   431,
3329
     417,   619,   412,   413,   395,   429,   547,   548,   608,   429,
3330
     401,   981,   555,   556,   429,   374,   375,   394,   988,   619,
3331
     951,   412,   622,   601,   396,   395,   633,   529,   998,   607,
3332
     706,   609,   404,   396,   612,   394,   614,   396,   616,   617,
3333
     403,   400,   412,   621,   396,   665,   397,   667,   394,   592,
3334
     401,   403,   396,   653,   383,   384,   385,   386,   387,   388,
3335
     389,   390,   391,   392,   396,   608,   396,   401,   394,   813,
3336
     404,   403,   394,   403,   403,   395,   619,   426,   427,   622,
3337
     395,   401,   395,   432,   601,   397,   401,   394,   401,   401,
3338
     395,   698,   394,   700,   714,   702,   401,   395,   705,   774,
3339
     617,   397,   395,   401,   394,   401,   395,   781,   401,   395,
3340
     653,   718,   401,   429,   394,   401,   432,   626,   848,   461,
3341
     462,   463,   464,   465,   466,   467,   628,   395,   395,   395,
3342
     632,   395,   395,   401,   401,   401,   395,   401,   401,   395,
3343
     395,  1002,   401,   395,   395,   401,   401,   395,   395,   401,
3344
     401,   395,   395,   401,   401,   395,   395,   401,   401,   395,
3345
     395,   401,   401,   395,   429,   401,   401,   432,   429,   401,
3346
     399,   432,   401,   696,   918,   428,   429,   430,   431,   853,
3347
     723,   394,   428,   429,   430,   431,   432,   378,   379,   696,
3348
     792,   793,   794,   795,   696,   815,   788,   789,   429,   819,
3349
     930,   432,   429,   401,   706,   432,   404,   429,   401,   402,
3350
     432,   879,   880,   395,   429,   872,   873,   432,   429,   429,
3351
     429,   432,   432,   432,   429,   401,   885,   432,   404,   401,
3352
     837,   838,   404,   401,   775,   401,   404,   401,   404,   404,
3353
     404,   848,   785,   786,   787,   788,   789,   790,   791,   792,
3354
     793,   794,   795,   796,   797,   798,   799,   800,   801,   802,
3355
     803,   401,   992,   406,  1008,   408,   412,   885,   404,   887,
3356
     401,   402,   872,   873,   419,   420,   421,   790,   791,   781,
3357
     409,   410,   411,   432,   432,   885,   398,   887,   796,   797,
3358
     432,   398,   396,   432,   432,   398,   916,   396,   395,   919,
3359
     432,   394,   404,   403,   432,   401,   395,   401,   403,   401,
3360
     401,   401,   855,   401,   401,   401,   401,   401,   401,   400,
3361
     395,   394,   404,   930,   403,   394,   432,   394,   380,   872,
3362
     873,   393,   396,   396,   432,   382,   394,   397,   416,   415,
3363
     414,   397,   885,   963,   887,   399,   394,   404,   394,   404,
3364
     394,   853,   432,   404,   404,   404,   394,   402,   400,   395,
3365
     432,   404,   982,   404,   403,   435,   401,   401,   401,   395,
3366
     395,   978,   401,   443,   435,   397,   397,   997,   393,   393,
3367
     399,   451,   443,   451,   454,   992,   451,   440,   890,   459,
3368
     451,   459,   451,   454,   459,   432,   919,   429,   459,   469,
3369
     395,   394,   398,   403,   395,   404,   398,   404,   398,   479,
3370
     478,   399,   798,   483,   444,   799,   801,   919,   479,   800,
3371
     802,   635,   483,   493,   803,   376,   893,   921,   987,   998,
3372
     500,   999,   921,   963,   696,   451,   696,   624,   696,   500,
3373
     963,   950,   870,   483,   873,   868,   877,   880,   479,   951,
3374
     477,   885,   879,   875,    -1,   483,    -1,   883,    -1,   529,
3375
      -1,   963,   887,    -1,    -1,    -1,    -1,    -1,   529,    -1,
3376
     540,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   540,
3377
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3378
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3379
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3380
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3381
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   597,
3382
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3383
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3384
      -1,    -1,    -1,    -1,    -1,    -1,   626,    -1,   628,    -1,
3385
      -1,    -1,   632,    -1,    -1,   626,    -1,   628,    -1,    -1,
3386
      -1,   632,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3387
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3388
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3389
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3390
      -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,    -1,    -1,
3391
      -1,    -1,    -1,    -1,    -1,   686,   696,    -1,    -1,    -1,
3392
      -1,    -1,    -1,    -1,    -1,   696,   706,    -1,    -1,    -1,
3393
      -1,    -1,    -1,    -1,    -1,   706,    -1,    -1,    -1,    -1,
3394
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3395
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3396
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3397
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3398
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3399
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3400
      -1,   781,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3401
     781,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3402
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   809,
3403
      -1,    -1,    -1,   813,    -1,    -1,    -1,    -1,   809,    -1,
3404
      -1,    -1,   813,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3405
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3406
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3407
      -1,    -1,    -1,   853,    -1,    -1,    -1,    -1,    -1,    -1,
3408
      -1,    -1,   853,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3409
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3410
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3411
     890,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890,
3412
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3413
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,   919,
3414
      -1,   921,    -1,   921,    -1,    -1,    -1,   918,   919,    -1,
3415
     921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3416
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3417
     950,   951,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   950,
3418
     951,    -1,    -1,   963,    -1,    -1,    -1,    -1,    -1,    -1,
3419
      -1,    -1,   963,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3420
      -1,   981,    -1,    -1,    -1,    -1,    -1,    -1,   988,    -1,
3421
     981,    -1,    -1,    -1,    -1,    -1,    -1,   988,   998,    -1,
3422
      -1,    -1,  1002,    -1,    -1,    -1,    -1,   998,  1008,    -1,
3423
      -1,  1002,    -1,    -1,    -1,     0,    -1,  1008,     3,     4,
3424
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3425
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3426
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3427
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3428
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3429
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
3430
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3431
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3432
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3433
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3434
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3435
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3436
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3437
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3438
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3439
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3440
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3441
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3442
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3443
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3444
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3445
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3446
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3447
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3448
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3449
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3450
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3451
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3452
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3453
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3454
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3455
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3456
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
3457
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
3458
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
3459
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
3460
     365,   366,   367,   368,   369,   370,   371,    -1,    -1,    -1,
3461
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3462
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3463
      -1,   396,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
3464
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3465
      -1,    -1,    -1,   418,   419,   420,   421,   422,    -1,    -1,
3466
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   433,   434,
3467
     435,   436,   437,   438,   439,    -1,    -1,    -1,    -1,    -1,
3468
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3469
     455,   456,   457,   458,   459,   460,   461,    -1,    -1,    -1,
3470
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3471
     475,    -1,   477,   478,   479,   480,   481,   482,   483,   484,
3472
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
3473
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
3474
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
3475
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3476
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3477
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3478
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3479
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3480
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3481
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3482
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3483
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3484
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3485
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3486
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3487
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3488
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3489
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3490
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3491
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3492
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3493
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3494
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3495
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3496
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3497
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3498
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3499
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3500
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3501
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3502
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3503
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3504
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3505
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3506
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3507
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3508
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
3509
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
3510
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
3511
     363,   364,   365,   366,   367,   368,   369,   370,   371,    -1,
3512
      -1,   374,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3513
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3514
     393,   394,    -1,   396,    -1,   398,   399,    -1,    -1,    -1,
3515
      -1,   404,   405,   406,   407,   408,    -1,    -1,    -1,    -1,
3516
      -1,    -1,    -1,    -1,    -1,   418,   419,   420,   421,   422,
3517
      -1,    -1,    -1,    -1,    -1,   428,   429,   430,   431,   432,
3518
     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
3519
     443,    -1,   445,   446,   447,   448,   449,   450,   451,   452,
3520
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
3521
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
3522
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
3523
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
3524
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
3525
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
3526
     513,   514,     3,     4,     5,     6,     7,     8,     9,    10,
3527
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3528
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3529
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3530
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3531
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3532
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3533
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3534
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3535
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3536
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3537
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3538
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3539
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3540
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3541
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3542
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3543
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3544
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3545
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3546
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3547
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3548
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3549
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3550
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3551
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3552
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3553
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3554
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3555
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3556
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3557
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
3558
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
3559
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
3560
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
3561
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
3562
     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,
3563
     371,    -1,    -1,   374,   375,    -1,    -1,    -1,    -1,    -1,
3564
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3565
      -1,    -1,   393,   394,    -1,   396,    -1,   398,   399,    -1,
3566
      -1,    -1,    -1,   404,   405,   406,   407,   408,    -1,    -1,
3567
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,   419,   420,
3568
     421,   422,    -1,    -1,    -1,    -1,    -1,   428,   429,   430,
3569
     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
3570
     441,   442,   443,    -1,   445,   446,   447,   448,   449,   450,
3571
     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
3572
     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
3573
     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
3574
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
3575
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
3576
     501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
3577
     511,   512,   513,   514,     3,     4,     5,     6,     7,     8,
3578
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3579
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
3580
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3581
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3582
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3583
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
3584
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3585
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
3586
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
3587
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3588
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3589
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
3590
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3591
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3592
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3593
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3594
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3595
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3596
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3597
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3598
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3599
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3600
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3601
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3602
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3603
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3604
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3605
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3606
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3607
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3608
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
3609
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
3610
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
3611
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
3612
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
3613
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
3614
     369,   370,   371,    -1,    -1,   374,   375,    -1,    -1,    -1,
3615
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3616
      -1,    -1,    -1,    -1,   393,   394,    -1,   396,    -1,   398,
3617
      -1,    -1,    -1,    -1,    -1,   404,   405,   406,   407,   408,
3618
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,
3619
     419,   420,   421,   422,    -1,    -1,    -1,    -1,    -1,   428,
3620
     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
3621
     439,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
3622
     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
3623
     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
3624
     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
3625
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
3626
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
3627
     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
3628
     509,   510,   511,   512,   513,   514,     3,     4,     5,     6,
3629
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3630
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3631
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3632
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3633
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3634
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
3635
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3636
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3637
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3638
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3639
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3640
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3641
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3642
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3643
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3644
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3645
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3646
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3647
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3648
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3649
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3650
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3651
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3652
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3653
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3654
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3655
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3656
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3657
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3658
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3659
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3660
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
3661
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
3662
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
3663
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
3664
     357,   358,   359,   360,   361,   362,   363,   364,   365,   366,
3665
     367,   368,   369,   370,   371,    -1,    -1,   374,   375,    -1,
3666
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3667
      -1,    -1,    -1,    -1,    -1,    -1,   393,   394,    -1,   396,
3668
      -1,   398,    -1,    -1,    -1,    -1,    -1,   404,   405,   406,
3669
     407,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3670
      -1,   418,   419,   420,   421,   422,    -1,    -1,    -1,    -1,
3671
      -1,   428,   429,   430,   431,   432,   433,   434,   435,   436,
3672
     437,   438,   439,   440,   441,   442,   443,    -1,   445,   446,
3673
     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
3674
     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
3675
     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
3676
     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
3677
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
3678
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
3679
     507,   508,   509,   510,   511,   512,   513,   514,     3,     4,
3680
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3681
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3682
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3683
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3684
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3685
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
3686
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3687
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3688
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3689
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3690
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3691
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3692
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3693
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3694
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3695
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3696
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3697
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3698
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3699
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3700
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3701
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3702
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3703
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3704
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3705
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3706
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3707
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3708
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3709
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3710
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3711
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3712
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
3713
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
3714
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
3715
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
3716
     365,   366,   367,   368,   369,   370,   371,    -1,    -1,   374,
3717
     375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3718
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   393,   394,
3719
      -1,   396,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
3720
     405,   406,   407,   408,    -1,    -1,    -1,    -1,    -1,    -1,
3721
      -1,    -1,    -1,   418,   419,   420,   421,   422,    -1,    -1,
3722
      -1,    -1,    -1,   428,   429,   430,   431,   432,   433,   434,
3723
     435,   436,   437,   438,   439,   440,   441,   442,   443,    -1,
3724
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
3725
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
3726
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
3727
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
3728
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
3729
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
3730
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
3731
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3732
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3733
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3734
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3735
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3736
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3737
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3738
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3739
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3740
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3741
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3742
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3743
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
3744
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
3745
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
3746
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
3747
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
3748
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
3749
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
3750
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
3751
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
3752
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
3753
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
3754
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
3755
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
3756
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
3757
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
3758
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
3759
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
3760
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
3761
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
3762
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
3763
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
3764
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
3765
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
3766
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
3767
     363,   364,   365,   366,   367,   368,   369,   370,   371,    -1,
3768
      -1,   374,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3769
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3770
     393,   394,    -1,   396,    -1,    -1,    -1,    -1,    -1,    -1,
3771
      -1,   404,   405,   406,   407,   408,    -1,    -1,    -1,    -1,
3772
      -1,    -1,    -1,    -1,    -1,   418,   419,   420,   421,   422,
3773
      -1,    -1,    -1,    -1,    -1,   428,   429,   430,   431,   432,
3774
     433,   434,   435,   436,   437,   438,   439,    -1,    -1,    -1,
3775
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3776
      -1,    -1,   455,   456,   457,   458,   459,   460,   461,   462,
3777
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
3778
     473,   474,   475,    -1,   477,   478,   479,   480,   481,   482,
3779
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
3780
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
3781
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
3782
     513,   514,     3,     4,     5,     6,     7,     8,     9,    10,
3783
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
3784
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3785
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
3786
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
3787
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
3788
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
3789
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3790
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
3791
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
3792
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
3793
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
3794
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
3795
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
3796
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
3797
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
3798
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
3799
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
3800
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
3801
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
3802
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
3803
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
3804
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
3805
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
3806
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
3807
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
3808
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
3809
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
3810
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
3811
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
3812
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
3813
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
3814
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
3815
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
3816
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
3817
     351,   352,   353,   354,   355,   356,   357,   358,    -1,    -1,
3818
      -1,   362,   363,   364,   365,   366,   367,   368,   369,   370,
3819
     371,    -1,    -1,   374,   375,    -1,    -1,    -1,    -1,    -1,
3820
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3821
      -1,    -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,
3822
      -1,    -1,    -1,    -1,   405,   406,   407,   408,    -1,    -1,
3823
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,   419,   420,
3824
     421,    -1,    -1,    -1,    -1,    -1,    -1,   428,   429,   430,
3825
     431,   432,   433,   434,   435,   436,   437,   438,   439,    -1,
3826
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3827
      -1,    -1,    -1,    -1,   455,   456,   457,   458,   459,   460,
3828
     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
3829
     471,   472,   473,   474,   475,    -1,   477,   478,   479,   480,
3830
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
3831
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
3832
     501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
3833
     511,   512,   513,   514,     3,     4,     5,     6,     7,     8,
3834
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
3835
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
3836
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
3837
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
3838
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
3839
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
3840
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
3841
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
3842
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
3843
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
3844
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
3845
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
3846
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
3847
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
3848
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
3849
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
3850
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
3851
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
3852
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
3853
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
3854
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
3855
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
3856
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
3857
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
3858
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
3859
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
3860
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
3861
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
3862
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
3863
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
3864
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
3865
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
3866
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
3867
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
3868
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
3869
     359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
3870
     369,   370,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3871
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3872
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   396,    -1,    -1,
3873
      -1,    -1,    -1,    -1,    -1,   404,    -1,    -1,    -1,    -1,
3874
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,
3875
     419,   420,   421,   422,    -1,    -1,    -1,    -1,    -1,    -1,
3876
      -1,    -1,    -1,    -1,   433,   434,   435,   436,   437,   438,
3877
     439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3878
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,   457,   458,
3879
     459,   460,   461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3880
      -1,    -1,    -1,    -1,    -1,    -1,   475,    -1,   477,   478,
3881
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
3882
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
3883
     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
3884
     509,   510,   511,   512,   513,   514,     3,     4,     5,     6,
3885
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
3886
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
3887
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
3888
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
3889
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
3890
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
3891
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
3892
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
3893
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
3894
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
3895
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
3896
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
3897
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
3898
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
3899
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
3900
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
3901
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
3902
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
3903
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
3904
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
3905
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
3906
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
3907
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
3908
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
3909
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
3910
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
3911
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
3912
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
3913
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
3914
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
3915
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
3916
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
3917
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
3918
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
3919
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
3920
     357,   358,    -1,    -1,    -1,   362,   363,   364,   365,   366,
3921
     367,   368,   369,   370,   371,    -1,    -1,    -1,    -1,    -1,
3922
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3923
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3924
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3925
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3926
      -1,   418,   419,   420,   421,    -1,    -1,    -1,    -1,    -1,
3927
      -1,    -1,    -1,    -1,    -1,    -1,   433,   434,   435,   436,
3928
     437,   438,   439,   440,    -1,    -1,   443,    -1,   445,   446,
3929
      -1,    -1,   449,    -1,    -1,    -1,    -1,    -1,   455,   456,
3930
     457,   458,   459,   460,   461,    -1,    -1,    -1,    -1,    -1,
3931
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   475,    -1,
3932
     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
3933
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
3934
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
3935
     507,   508,   509,   510,   511,   512,   513,   514,     3,     4,
3936
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
3937
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
3938
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
3939
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
3940
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
3941
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
3942
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
3943
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
3944
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
3945
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
3946
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
3947
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
3948
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
3949
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
3950
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
3951
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
3952
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
3953
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
3954
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
3955
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
3956
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
3957
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
3958
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
3959
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
3960
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
3961
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
3962
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
3963
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
3964
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
3965
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
3966
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
3967
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
3968
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
3969
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
3970
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
3971
     355,   356,   357,   358,    -1,    -1,    -1,   362,   363,   364,
3972
     365,   366,   367,   368,   369,   370,   371,    -1,    -1,    -1,
3973
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3974
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3975
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,
3976
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3977
      -1,    -1,    -1,   418,   419,   420,   421,    -1,    -1,    -1,
3978
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   432,   433,   434,
3979
     435,   436,   437,   438,   439,    -1,    -1,    -1,    -1,    -1,
3980
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3981
     455,   456,   457,   458,   459,   460,   461,    -1,    -1,    -1,
3982
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3983
     475,    -1,   477,   478,   479,   480,   481,   482,   483,   484,
3984
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
3985
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
3986
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
3987
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
3988
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
3989
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
3990
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
3991
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
3992
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3993
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
3994
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3995
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
3996
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
3997
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
3998
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
3999
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
4000
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
4001
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
4002
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
4003
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
4004
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
4005
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
4006
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
4007
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
4008
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
4009
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
4010
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
4011
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
4012
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
4013
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
4014
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
4015
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
4016
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
4017
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
4018
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
4019
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
4020
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
4021
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
4022
     353,   354,   355,   356,   357,   358,    -1,    -1,    -1,   362,
4023
     363,   364,   365,   366,   367,   368,   369,   370,   371,    -1,
4024
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4025
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4026
      -1,    -1,    -1,   396,    -1,    -1,    -1,    -1,    -1,    -1,
4027
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4028
      -1,    -1,    -1,    -1,    -1,   418,   419,   420,   421,    -1,
4029
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4030
     433,   434,   435,   436,   437,   438,   439,    -1,    -1,    -1,
4031
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4032
      -1,    -1,   455,   456,   457,   458,   459,   460,   461,    -1,
4033
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4034
      -1,    -1,   475,    -1,   477,   478,   479,   480,   481,   482,
4035
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
4036
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
4037
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
4038
     513,   514,     3,     4,     5,     6,     7,     8,     9,    10,
4039
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
4040
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
4041
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
4042
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
4043
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
4044
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
4045
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
4046
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
4047
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
4048
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
4049
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
4050
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
4051
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
4052
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
4053
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
4054
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
4055
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
4056
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
4057
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
4058
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
4059
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
4060
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
4061
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
4062
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
4063
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
4064
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
4065
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
4066
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
4067
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
4068
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
4069
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
4070
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
4071
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
4072
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
4073
     351,   352,   353,   354,   355,   356,   357,   358,    -1,    -1,
4074
      -1,   362,   363,   364,   365,   366,   367,   368,   369,   370,
4075
     371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4076
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4077
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,
4078
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4079
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,   419,   420,
4080
     421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4081
      -1,    -1,   433,   434,   435,   436,   437,   438,   439,    -1,
4082
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4083
      -1,    -1,    -1,    -1,   455,   456,   457,   458,   459,   460,
4084
     461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4085
      -1,    -1,    -1,    -1,   475,    -1,   477,   478,   479,   480,
4086
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
4087
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
4088
     501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
4089
     511,   512,   513,   514,     3,     4,     5,     6,     7,     8,
4090
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
4091
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
4092
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
4093
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
4094
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
4095
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
4096
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
4097
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
4098
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
4099
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
4100
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
4101
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
4102
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
4103
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
4104
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
4105
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
4106
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
4107
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
4108
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
4109
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
4110
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
4111
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
4112
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
4113
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
4114
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
4115
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
4116
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
4117
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
4118
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
4119
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
4120
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
4121
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
4122
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
4123
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
4124
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
4125
      -1,    -1,    -1,   362,   363,   364,   365,   366,   367,   368,
4126
     369,   370,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4127
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4128
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   398,
4129
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4130
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,
4131
     419,   420,   421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4132
      -1,    -1,    -1,    -1,   433,   434,   435,   436,   437,   438,
4133
     439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4134
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,   457,   458,
4135
     459,   460,   461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4136
      -1,    -1,    -1,    -1,    -1,    -1,   475,    -1,   477,   478,
4137
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
4138
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
4139
     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
4140
     509,   510,   511,   512,   513,   514,     3,     4,     5,     6,
4141
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
4142
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
4143
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
4144
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
4145
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
4146
      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
4147
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
4148
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
4149
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
4150
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
4151
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
4152
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
4153
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
4154
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
4155
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
4156
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
4157
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
4158
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
4159
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
4160
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
4161
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
4162
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
4163
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
4164
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
4165
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
4166
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
4167
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
4168
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
4169
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
4170
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
4171
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
4172
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
4173
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
4174
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
4175
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
4176
     357,   358,    -1,    -1,    -1,   362,   363,   364,   365,   366,
4177
     367,   368,   369,   370,   371,    -1,    -1,    -1,    -1,    -1,
4178
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4179
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4180
      -1,    -1,   399,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4181
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4182
      -1,   418,   419,   420,   421,    -1,    -1,    -1,    -1,    -1,
4183
      -1,    -1,    -1,    -1,    -1,    -1,   433,   434,   435,   436,
4184
     437,   438,   439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4185
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,
4186
     457,   458,   459,   460,   461,    -1,    -1,    -1,    -1,    -1,
4187
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   475,    -1,
4188
     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
4189
     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
4190
     497,   498,   499,   500,   501,   502,   503,   504,   505,   506,
4191
     507,   508,   509,   510,   511,   512,   513,   514,     3,     4,
4192
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
4193
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
4194
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
4195
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
4196
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
4197
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
4198
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
4199
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
4200
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
4201
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
4202
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
4203
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
4204
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
4205
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
4206
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
4207
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
4208
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
4209
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
4210
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
4211
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
4212
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
4213
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
4214
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
4215
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
4216
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
4217
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
4218
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
4219
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
4220
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
4221
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
4222
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
4223
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
4224
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
4225
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
4226
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
4227
     355,   356,   357,   358,    -1,    -1,    -1,   362,   363,   364,
4228
     365,   366,   367,   368,   369,   370,   371,    -1,    -1,    -1,
4229
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4230
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4231
      -1,    -1,    -1,    -1,   399,    -1,    -1,    -1,    -1,    -1,
4232
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4233
      -1,    -1,    -1,   418,   419,   420,   421,    -1,    -1,    -1,
4234
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   433,   434,
4235
     435,   436,   437,   438,   439,    -1,    -1,    -1,    -1,    -1,
4236
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4237
     455,   456,   457,   458,   459,   460,   461,    -1,    -1,    -1,
4238
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4239
     475,    -1,   477,   478,   479,   480,   481,   482,   483,   484,
4240
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
4241
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
4242
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
4243
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
4244
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
4245
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
4246
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
4247
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
4248
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
4249
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
4250
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
4251
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
4252
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
4253
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
4254
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
4255
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
4256
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
4257
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
4258
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
4259
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
4260
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
4261
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
4262
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
4263
     203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
4264
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
4265
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
4266
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
4267
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
4268
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
4269
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
4270
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
4271
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
4272
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
4273
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
4274
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
4275
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
4276
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
4277
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
4278
     353,   354,   355,   356,   357,   358,    -1,    -1,    -1,   362,
4279
     363,   364,   365,   366,   367,   368,   369,   370,   371,    -1,
4280
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4281
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4282
      -1,    -1,    -1,    -1,    -1,    -1,   399,    -1,    -1,    -1,
4283
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4284
      -1,    -1,    -1,    -1,    -1,   418,   419,   420,   421,    -1,
4285
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4286
     433,   434,   435,   436,   437,   438,   439,    -1,    -1,    -1,
4287
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4288
      -1,    -1,   455,   456,   457,   458,   459,   460,   461,    -1,
4289
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4290
      -1,    -1,   475,    -1,   477,   478,   479,   480,   481,   482,
4291
     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
4292
     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
4293
     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
4294
     513,   514,     3,     4,     5,     6,     7,     8,     9,    10,
4295
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
4296
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
4297
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
4298
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
4299
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
4300
      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
4301
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
4302
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
4303
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
4304
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
4305
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
4306
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
4307
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
4308
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
4309
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
4310
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
4311
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
4312
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
4313
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
4314
     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
4315
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
4316
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
4317
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
4318
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
4319
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
4320
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
4321
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
4322
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
4323
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
4324
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
4325
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
4326
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
4327
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
4328
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
4329
     351,   352,   353,   354,   355,   356,   357,   358,    -1,    -1,
4330
      -1,   362,   363,   364,   365,   366,   367,   368,   369,   370,
4331
     371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4332
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4333
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   399,    -1,
4334
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4335
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,   419,   420,
4336
     421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4337
      -1,    -1,   433,   434,   435,   436,   437,   438,   439,    -1,
4338
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4339
      -1,    -1,    -1,    -1,   455,   456,   457,   458,   459,   460,
4340
     461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4341
      -1,    -1,    -1,    -1,   475,    -1,   477,   478,   479,   480,
4342
     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
4343
     491,   492,   493,   494,   495,   496,   497,   498,   499,   500,
4344
     501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
4345
     511,   512,   513,   514,     3,     4,     5,     6,     7,     8,
4346
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
4347
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
4348
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
4349
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
4350
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
4351
      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
4352
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
4353
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
4354
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
4355
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
4356
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
4357
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
4358
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
4359
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
4360
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
4361
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
4362
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
4363
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
4364
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
4365
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
4366
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
4367
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
4368
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
4369
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
4370
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
4371
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
4372
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
4373
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
4374
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
4375
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
4376
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
4377
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
4378
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
4379
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
4380
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
4381
      -1,    -1,    -1,   362,   363,   364,   365,   366,   367,   368,
4382
     369,   370,   371,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4383
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4384
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4385
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4386
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   418,
4387
     419,   420,   421,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4388
      -1,    -1,    -1,    -1,   433,   434,   435,   436,   437,   438,
4389
     439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4390
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,   457,   458,
4391
     459,   460,   461,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4392
      -1,    -1,    -1,    -1,    -1,    -1,   475,    -1,   477,   478,
4393
     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
4394
     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
4395
     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
4396
     509,   510,   511,   512,   513,   514,     4,     5,     6,     7,
4397
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
4398
      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
4399
      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
4400
      38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
4401
      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
4402
      58,    59,    60,    -1,    -1,    63,    64,    65,    66,    67,
4403
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
4404
      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
4405
      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
4406
      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
4407
     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
4408
     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
4409
     128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
4410
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
4411
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
4412
     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
4413
     168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
4414
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
4415
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
4416
     198,   199,   200,   201,    -1,   203,    -1,   205,   206,   207,
4417
     208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
4418
     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
4419
     228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
4420
     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
4421
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
4422
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
4423
     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
4424
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
4425
     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
4426
     298,   299,   300,   301,   302,   303,   304,   305,   306,   307,
4427
     308,   309,   310,   311,   312,   313,   314,   315,   316,   317,
4428
     318,   319,   320,   321,   322,   323,   324,   325,   326,   327,
4429
     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
4430
     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
4431
     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
4432
     358,    -1,    -1,    -1,    -1,    -1,    -1,   365,    -1,    -1,
4433
      -1,   369,   370,   371,    -1,    -1,   374,   375,    -1,    -1,
4434
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4435
      -1,    -1,    -1,    -1,    -1,   393,   394,    -1,    -1,    -1,
4436
     398,   399,    -1,    -1,    -1,    -1,    -1,   405,   406,   407,
4437
     408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4438
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4439
     428,   429,   430,   431,   432,   433,    -1,    -1,    -1,    -1,
4440
     438,   439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4441
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4442
      -1,    -1,    -1,    -1,   462,   463,   464,   465,   466,   467,
4443
     468,   469,   470,   471,   472,   473,   474,    -1,    -1,   477,
4444
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4445
      -1,    -1,   490,     4,     5,     6,     7,     8,     9,    10,
4446
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
4447
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
4448
      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
4449
      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
4450
      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
4451
      -1,    -1,    63,    64,    65,    66,    67,    68,    69,    70,
4452
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
4453
      81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
4454
      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
4455
     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
4456
     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
4457
     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
4458
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
4459
     141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
4460
     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
4461
     161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
4462
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
4463
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
4464
     191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
4465
     201,    -1,   203,    -1,   205,   206,   207,   208,   209,   210,
4466
     211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
4467
     221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
4468
     231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
4469
     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
4470
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
4471
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
4472
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
4473
     281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
4474
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
4475
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
4476
     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
4477
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
4478
     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
4479
     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
4480
     351,   352,   353,   354,   355,   356,   357,   358,    -1,    -1,
4481
      -1,    -1,    -1,    -1,   365,    -1,    -1,    -1,   369,   370,
4482
     371,    -1,    -1,   374,   375,    -1,    -1,    -1,    -1,    -1,
4483
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4484
      -1,    -1,   393,   394,    -1,    -1,    -1,   398,   399,    -1,
4485
      -1,    -1,    -1,    -1,   405,   406,   407,   408,    -1,    -1,
4486
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4487
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,   429,   430,
4488
     431,   432,   433,    -1,    -1,    -1,    -1,   438,   439,    -1,
4489
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4490
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4491
      -1,   462,   463,   464,   465,   466,   467,   468,   469,   470,
4492
     471,   472,   473,   474,    -1,    -1,   477,    -1,    -1,    -1,
4493
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   490,
4494
       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
4495
      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
4496
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
4497
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
4498
      44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
4499
      54,    55,    56,    57,    58,    59,    60,    -1,    -1,    63,
4500
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
4501
      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
4502
      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
4503
      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
4504
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
4505
     114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
4506
     124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
4507
     134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
4508
     144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
4509
     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
4510
     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
4511
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
4512
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
4513
     194,   195,   196,   197,   198,   199,   200,   201,    -1,   203,
4514
      -1,   205,   206,   207,   208,   209,   210,   211,   212,   213,
4515
     214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
4516
     224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
4517
     234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
4518
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
4519
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
4520
     264,   265,   266,   267,   268,   269,   270,   271,   272,   273,
4521
     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
4522
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
4523
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
4524
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
4525
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
4526
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
4527
     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
4528
     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
4529
     354,   355,   356,   357,   358,    -1,    -1,    -1,    -1,    -1,
4530
      -1,   365,    -1,    -1,    -1,   369,   370,   371,    -1,    -1,
4531
     374,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4532
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   393,
4533
     394,    -1,    -1,   397,    -1,    -1,    -1,    -1,    -1,    -1,
4534
      -1,   405,   406,   407,   408,    -1,    -1,    -1,    -1,    -1,
4535
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4536
      -1,    -1,    -1,    -1,   428,   429,   430,   431,   432,   433,
4537
      -1,    -1,    -1,    -1,   438,   439,    -1,    -1,    -1,    -1,
4538
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4539
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   462,   463,
4540
     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
4541
     474,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
4542
      -1,    -1,    -1,    -1,    -1,    -1,   490,     4,     5,     6,
4543
       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
4544
      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
4545
      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
4546
      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
4547
      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
4548
      57,    58,    59,    60,    -1,    -1,    63,    64,    65,    66,
4549
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
4550
      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
4551
      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
4552
      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
4553
     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
4554
     117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
4555
     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
4556
     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
4557
     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
4558
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
4559
     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
4560
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
4561
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
4562
     197,   198,   199,   200,   201,    -1,   203,    -1,   205,   206,
4563
     207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
4564
     217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
4565
     227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
4566
     237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
4567
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
4568
     257,   258,   259,   260,   261,   262,   263,   264,   265,   266,
4569
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
4570
     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
4571
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
4572
     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
4573
     307,   308,   309,   310,   311,   312,   313,   314,   315,   316,
4574
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
4575
     327,   328,   329,   330,   331,   332,   333,   334,   335,   336,
4576
     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
4577
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
4578
     357,   358,    -1,    -1,    -1,    -1,    -1,    -1,   365,    -1,
4579
      -1,    -1,   369,   370,   371,    -1,    -1,   374,   375,    -1,
4580
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4581
      -1,    -1,    -1,    -1,    -1,    -1,   393,   394,    -1,    -1,
4582
      -1,   398,    -1,    -1,    -1,    -1,    -1,    -1,   405,   406,
4583
     407,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4584
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4585
      -1,   428,   429,   430,   431,   432,   433,    -1,    -1,    -1,
4586
      -1,   438,   439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4587
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4588
      -1,    -1,    -1,    -1,    -1,   462,   463,   464,   465,   466,
4589
     467,   468,   469,   470,   471,   472,   473,   474,    -1,    -1,
4590
     477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4591
      -1,    -1,    -1,   490,     4,     5,     6,     7,     8,     9,
4592
      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
4593
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
4594
      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
4595
      40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
4596
      50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
4597
      60,    -1,    -1,    63,    64,    65,    66,    67,    68,    69,
4598
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
4599
      80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
4600
      90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
4601
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
4602
     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
4603
     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
4604
     130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
4605
     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
4606
     150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
4607
     160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
4608
     170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
4609
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
4610
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
4611
     200,   201,    -1,   203,    -1,   205,   206,   207,   208,   209,
4612
     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
4613
     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
4614
     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
4615
     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
4616
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
4617
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
4618
     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
4619
     280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
4620
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
4621
     300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
4622
     310,   311,   312,   313,   314,   315,   316,   317,   318,   319,
4623
     320,   321,   322,   323,   324,   325,   326,   327,   328,   329,
4624
     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
4625
     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
4626
     350,   351,   352,   353,   354,   355,   356,   357,   358,    -1,
4627
      -1,    -1,    -1,    -1,    -1,   365,    -1,    -1,    -1,   369,
4628
     370,   371,    -1,    -1,   374,   375,    -1,    -1,    -1,    -1,
4629
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4630
      -1,    -1,    -1,   393,   394,    -1,    -1,   397,    -1,    -1,
4631
      -1,    -1,    -1,    -1,    -1,   405,   406,   407,   408,    -1,
4632
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4633
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,   429,
4634
     430,   431,   432,   433,    -1,    -1,    -1,    -1,   438,   439,
4635
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4636
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4637
      -1,    -1,   462,   463,   464,   465,   466,   467,   468,   469,
4638
     470,   471,   472,   473,   474,    -1,    -1,   477,    -1,    -1,
4639
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4640
     490,     4,     5,     6,     7,     8,     9,    10,    11,    12,
4641
      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
4642
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
4643
      33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
4644
      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
4645
      53,    54,    55,    56,    57,    58,    59,    60,    -1,    -1,
4646
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
4647
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
4648
      83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
4649
      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
4650
     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
4651
     113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
4652
     123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
4653
     133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
4654
     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
4655
     153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
4656
     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
4657
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
4658
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
4659
     193,   194,   195,   196,   197,   198,   199,   200,   201,    -1,
4660
     203,    -1,   205,   206,   207,   208,   209,   210,   211,   212,
4661
     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
4662
     223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
4663
     233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
4664
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
4665
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
4666
     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
4667
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
4668
     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
4669
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
4670
     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
4671
     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
4672
     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
4673
     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
4674
     343,   344,   345,   346,   347,   348,   349,   350,   351,   352,
4675
     353,   354,   355,   356,   357,   358,    -1,    -1,    -1,    -1,
4676
      -1,    -1,   365,    -1,    -1,    -1,   369,   370,   371,    -1,
4677
      -1,   374,   375,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4678
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4679
     393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4680
      -1,   404,   405,   406,   407,   408,    -1,    -1,    -1,    -1,
4681
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4682
      -1,    -1,    -1,    -1,    -1,   428,   429,   430,   431,   432,
4683
     433,    -1,    -1,    -1,    -1,   438,   439,    -1,    -1,    -1,
4684
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4685
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   462,
4686
     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
4687
     473,   474,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,
4688
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   490,     4,     5,
4689
       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
4690
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
4691
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
4692
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
4693
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
4694
      56,    57,    58,    59,    60,    -1,    -1,    63,    64,    65,
4695
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
4696
      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
4697
      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
4698
      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
4699
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
4700
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
4701
     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
4702
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
4703
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
4704
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
4705
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
4706
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
4707
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
4708
     196,   197,   198,   199,   200,   201,    -1,   203,    -1,   205,
4709
     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
4710
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
4711
     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
4712
     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
4713
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
4714
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
4715
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
4716
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
4717
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
4718
     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
4719
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
4720
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
4721
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
4722
     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
4723
     346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
4724
     356,   357,   358,    -1,    -1,    -1,    -1,    -1,    -1,   365,
4725
      -1,    -1,    -1,   369,   370,   371,    -1,    -1,   374,   375,
4726
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4727
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   393,   394,    -1,
4728
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   405,
4729
     406,   407,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4730
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4731
      -1,    -1,   428,   429,   430,   431,   432,   433,    -1,    -1,
4732
      -1,    -1,   438,   439,    -1,    -1,    -1,    -1,    -1,    -1,
4733
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4734
      -1,    -1,    -1,    -1,    -1,    -1,   462,   463,   464,   465,
4735
     466,   467,   468,   469,   470,   471,   472,   473,   474,    -1,
4736
      -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4737
      -1,    -1,    -1,    -1,   490,     4,     5,     6,     7,     8,
4738
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
4739
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
4740
      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
4741
      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
4742
      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
4743
      59,    60,    -1,    -1,    63,    64,    65,    66,    67,    68,
4744
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
4745
      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
4746
      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
4747
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
4748
     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
4749
     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
4750
     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
4751
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
4752
     149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
4753
     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
4754
     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
4755
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
4756
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
4757
     199,   200,   201,    -1,   203,    -1,   205,   206,   207,   208,
4758
     209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
4759
     219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
4760
     229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
4761
     239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
4762
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
4763
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
4764
     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
4765
     279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
4766
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
4767
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
4768
     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
4769
     319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
4770
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
4771
     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
4772
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
4773
      -1,    -1,    -1,    -1,    -1,    -1,   365,    -1,    -1,    -1,
4774
     369,   370,   371,    -1,    -1,   374,   375,    -1,    -1,    -1,
4775
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4776
      -1,    -1,    -1,    -1,   393,   394,    -1,    -1,    -1,    -1,
4777
      -1,    -1,    -1,    -1,    -1,    -1,   405,   406,   407,   408,
4778
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4779
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   428,
4780
     429,   430,   431,   432,   433,    -1,    -1,    -1,    -1,   438,
4781
     439,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4782
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4783
      -1,    -1,    -1,   462,   463,   464,   465,   466,   467,   468,
4784
     469,   470,   471,   472,   473,   474,    -1,    -1,   477,    -1,
4785
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4786
      -1,   490,     4,     5,     6,     7,     8,     9,    10,    11,
4787
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
4788
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
4789
      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
4790
      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
4791
      52,    53,    54,    55,    56,    57,    58,    59,    60,    -1,
4792
      -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
4793
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
4794
      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
4795
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
4796
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
4797
     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
4798
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
4799
     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
4800
     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
4801
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
4802
     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
4803
     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
4804
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
4805
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
4806
      -1,   203,    -1,   205,   206,   207,   208,   209,   210,   211,
4807
     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
4808
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
4809
     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
4810
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
4811
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
4812
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
4813
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
4814
     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
4815
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
4816
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
4817
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
4818
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
4819
     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
4820
     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
4821
     352,   353,   354,   355,   356,   357,   358,    -1,    -1,    -1,
4822
      -1,    -1,    -1,   365,    -1,    -1,    -1,   369,   370,   371,
4823
      -1,    -1,   374,   375,    -1,    -1,    -1,    -1,    -1,    -1,
4824
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4825
      -1,   393,   394,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4826
      -1,    -1,    -1,   405,   406,   407,   408,    -1,    -1,    -1,
4827
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4828
      -1,    -1,    -1,    -1,    -1,    -1,   428,   429,   430,   431,
4829
     432,   433,    -1,    -1,    -1,    -1,   438,   439,    -1,    -1,
4830
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4831
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4832
     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
4833
     472,   473,   474,    -1,    -1,   477,    -1,    -1,    -1,    -1,
4834
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   490,     4,
4835
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
4836
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
4837
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
4838
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
4839
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
4840
      55,    56,    57,    58,    59,    60,    -1,    -1,    63,    64,
4841
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
4842
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
4843
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
4844
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
4845
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
4846
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
4847
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
4848
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
4849
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
4850
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
4851
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
4852
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
4853
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
4854
     195,   196,   197,   198,   199,   200,   201,    -1,   203,    -1,
4855
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
4856
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
4857
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
4858
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
4859
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
4860
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
4861
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
4862
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
4863
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
4864
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
4865
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
4866
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
4867
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
4868
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
4869
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
4870
     355,   356,   357,   358,    -1,    -1,    -1,    -1,    -1,    -1,
4871
     365,    -1,    -1,    -1,   369,   370,   371,    -1,    -1,    -1,
4872
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4873
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4874
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4875
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4876
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4877
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   433,    -1,
4878
      -1,    -1,    -1,   438,   439,    -1,    -1,    -1,    -1,    -1,
4879
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4880
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4881
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
4882
      -1,    -1,   477
4883
};
4884
4885
/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
4886
   state STATE-NUM.  */
4887
static const yytype_int16 yystos[] =
4888
{
4889
       0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
4890
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
4891
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
4892
      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
4893
      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
4894
      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
4895
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
4896
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
4897
      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
4898
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
4899
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
4900
     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
4901
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
4902
     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
4903
     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
4904
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
4905
     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
4906
     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
4907
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
4908
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
4909
     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
4910
     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
4911
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
4912
     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
4913
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
4914
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
4915
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
4916
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
4917
     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
4918
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
4919
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
4920
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
4921
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
4922
     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
4923
     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
4924
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
4925
     362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
4926
     396,   404,   418,   419,   420,   421,   422,   433,   434,   435,
4927
     436,   437,   438,   439,   455,   456,   457,   458,   459,   460,
4928
     461,   475,   477,   478,   479,   480,   481,   482,   483,   484,
4929
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
4930
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
4931
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
4932
     546,   547,   550,   551,   552,   553,   557,   558,   559,   560,
4933
     561,   562,   565,   566,   567,   568,   569,   571,   576,   577,
4934
     578,   623,   624,   625,   627,   634,   638,   639,   645,   648,
4935
     394,   394,   394,   394,   394,   394,   394,   394,   396,   577,
4936
     398,   432,   394,   394,   404,   432,   404,   626,   395,   401,
4937
     554,   555,   556,   566,   571,   401,   404,   432,   404,   432,
4938
     549,   567,   571,   412,   573,   574,     0,   624,   551,   559,
4939
     566,   404,   550,   432,   630,   631,   649,   650,   429,   432,
4940
     630,   429,   630,   429,   630,   429,   630,   429,   630,   630,
4941
     649,   429,   630,   426,   427,   432,   628,   629,   571,   580,
4942
     398,   432,   456,   563,   564,   432,   570,   396,   404,   572,
4943
     398,   602,   627,   400,   555,   554,   556,   432,   432,   394,
4944
     403,   572,   398,   401,   404,   374,   375,   393,   394,   405,
4945
     406,   407,   408,   428,   429,   430,   431,   432,   462,   463,
4946
     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
4947
     474,   516,   517,   518,   520,   521,   522,   523,   524,   525,
4948
     526,   527,   528,   569,   571,   575,   572,   395,   432,   404,
4949
     403,   401,   395,   401,   395,   401,   403,   401,   401,   401,
4950
     395,   401,   401,   401,   401,   401,   401,   401,   395,   401,
4951
     395,   401,   394,   397,   401,   404,   566,   571,   581,   582,
4952
     583,   586,   579,   403,   395,   401,   395,   401,   397,   527,
4953
     529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
4954
     539,   540,   571,   396,   404,   398,   399,   404,   440,   441,
4955
     442,   443,   445,   446,   447,   448,   449,   450,   451,   452,
4956
     453,   454,   476,   527,   540,   542,   544,   546,   550,   569,
4957
     571,   591,   592,   593,   594,   595,   603,   604,   605,   606,
4958
     609,   610,   613,   614,   615,   622,   627,   400,   403,   572,
4959
     403,   572,   398,   542,   589,   403,   548,   432,   527,   527,
4960
     544,   576,   374,   375,   396,   400,   395,   395,   401,   439,
4961
     542,   394,   527,   401,   413,   627,   393,   396,   429,   631,
4962
     649,   432,   650,   393,   428,   429,   430,   431,   635,   636,
4963
     429,   540,   545,   637,   429,   428,   429,   430,   431,   640,
4964
     641,   429,   428,   429,   430,   431,   516,   642,   643,   429,
4965
     393,   644,   429,   649,   432,   545,   576,   646,   647,   429,
4966
     545,   397,   629,   398,   571,   432,   587,   588,   399,   582,
4967
     587,   581,   542,   564,   432,   409,   410,   411,   406,   408,
4968
     372,   373,   376,   377,   412,   413,   378,   379,   416,   415,
4969
     414,   380,   382,   381,   417,   397,   397,   540,   399,   596,
4970
     394,   404,   404,   617,   394,   394,   404,   404,   544,   394,
4971
     544,   402,   404,   404,   404,   404,   383,   384,   385,   386,
4972
     387,   388,   389,   390,   391,   392,   403,   543,   401,   404,
4973
     399,   592,   606,   610,   615,   400,   589,   589,   403,   399,
4974
     589,   590,   589,   581,   395,   395,   519,   544,   432,   542,
4975
     527,   393,   429,   632,   633,   395,   403,   395,   401,   395,
4976
     401,   395,   401,   401,   395,   401,   395,   401,   395,   401,
4977
     401,   395,   401,   401,   395,   401,   395,   401,   395,   395,
4978
     584,   587,   572,   401,   404,   404,   399,   527,   527,   527,
4979
     529,   529,   530,   530,   531,   531,   531,   531,   532,   532,
4980
     533,   534,   535,   536,   537,   538,   541,   397,   603,   616,
4981
     592,   618,   544,   404,   544,   402,   542,   542,   589,   399,
4982
     401,   399,   527,   397,   397,   401,   397,   401,   636,   635,
4983
     545,   637,   641,   640,   643,   642,   393,   644,   646,   647,
4984
     566,   585,   586,   404,   588,   544,   597,   544,   559,   608,
4985
     440,   591,   604,   619,   395,   395,   399,   589,   393,   429,
4986
     395,   395,   395,   395,   395,   395,   399,   586,   402,   399,
4987
     432,   395,   394,   608,   620,   621,   599,   600,   601,   607,
4988
     611,   542,   403,   593,   598,   602,   544,   404,   395,   444,
4989
     595,   593,   398,   589,   395,   544,   598,   599,   603,   612,
4990
     404,   399
4991
};
4992
4993
/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
4994
static const yytype_int16 yyr1[] =
4995
{
4996
       0,   515,   516,   517,   517,   517,   517,   517,   517,   517,
4997
     517,   517,   517,   517,   517,   517,   517,   517,   517,   517,
4998
     517,   517,   517,   518,   518,   518,   518,   518,   518,   519,
4999
     520,   521,   522,   522,   523,   523,   524,   524,   525,   526,
5000
     526,   526,   527,   527,   527,   527,   527,   528,   528,   528,
5001
     528,   529,   529,   529,   529,   530,   530,   530,   531,   531,
5002
     531,   532,   532,   532,   532,   532,   533,   533,   533,   534,
5003
     534,   535,   535,   536,   536,   537,   537,   538,   538,   539,
5004
     539,   540,   541,   540,   542,   542,   543,   543,   543,   543,
5005
     543,   543,   543,   543,   543,   543,   543,   544,   544,   545,
5006
     546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
5007
     548,   547,   549,   549,   550,   550,   550,   550,   551,   551,
5008
     552,   552,   552,   553,   554,   554,   554,   555,   555,   555,
5009
     555,   556,   557,   557,   557,   557,   557,   558,   558,   558,
5010
     558,   558,   559,   559,   560,   561,   561,   561,   561,   561,
5011
     561,   561,   561,   561,   561,   562,   563,   563,   564,   564,
5012
     564,   565,   566,   566,   567,   567,   567,   567,   567,   567,
5013
     567,   567,   567,   567,   567,   568,   568,   568,   568,   568,
5014
     568,   568,   568,   568,   568,   568,   568,   568,   568,   568,
5015
     568,   568,   568,   568,   568,   568,   568,   568,   568,   568,
5016
     568,   568,   568,   568,   568,   568,   568,   568,   568,   568,
5017
     568,   568,   568,   568,   568,   568,   568,   569,   570,   570,
5018
     571,   571,   572,   572,   572,   572,   573,   573,   574,   575,
5019
     575,   575,   576,   576,   576,   576,   576,   576,   576,   576,
5020
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5021
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5022
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5023
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5024
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5025
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5026
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5027
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5028
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5029
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5030
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5031
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5032
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5033
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5034
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5035
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5036
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5037
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5038
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5039
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5040
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5041
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5042
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5043
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5044
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5045
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5046
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5047
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5048
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5049
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5050
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5051
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5052
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5053
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5054
     576,   576,   576,   576,   576,   576,   576,   576,   576,   576,
5055
     576,   577,   577,   577,   579,   578,   580,   578,   581,   581,
5056
     582,   582,   584,   583,   585,   585,   586,   586,   587,   587,
5057
     588,   588,   589,   589,   589,   589,   590,   590,   591,   592,
5058
     592,   593,   593,   593,   593,   593,   593,   593,   593,   594,
5059
     595,   596,   597,   595,   598,   598,   600,   599,   601,   599,
5060
     602,   602,   603,   603,   604,   604,   605,   605,   606,   607,
5061
     607,   608,   608,   609,   609,   611,   610,   612,   612,   613,
5062
     613,   614,   614,   616,   615,   617,   615,   618,   615,   619,
5063
     619,   620,   620,   621,   621,   622,   622,   622,   622,   622,
5064
     622,   622,   622,   623,   623,   624,   624,   624,   626,   625,
5065
     627,   628,   628,   629,   629,   629,   629,   630,   630,   631,
5066
     631,   632,   632,   633,   633,   634,   634,   634,   634,   634,
5067
     634,   635,   635,   636,   636,   636,   636,   636,   637,   637,
5068
     638,   638,   639,   639,   639,   639,   639,   639,   639,   639,
5069
     640,   640,   641,   641,   641,   641,   642,   642,   643,   643,
5070
     643,   643,   643,   644,   644,   645,   645,   645,   645,   646,
5071
     646,   647,   647,   648,   648,   649,   649,   650,   650
5072
};
5073
5074
/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
5075
static const yytype_int8 yyr2[] =
5076
{
5077
       0,     2,     1,     1,     3,     1,     1,     1,     1,     1,
5078
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5079
       1,     1,     1,     1,     4,     1,     3,     2,     2,     1,
5080
       1,     1,     2,     2,     2,     1,     2,     3,     2,     1,
5081
       1,     1,     1,     2,     2,     2,     4,     1,     1,     1,
5082
       1,     1,     3,     3,     3,     1,     3,     3,     1,     3,
5083
       3,     1,     3,     3,     3,     3,     1,     3,     3,     1,
5084
       3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
5085
       3,     1,     0,     6,     1,     3,     1,     1,     1,     1,
5086
       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
5087
       2,     3,     2,     2,     4,     2,     3,     4,     2,     3,
5088
       0,     6,     1,     3,     2,     3,     3,     4,     1,     1,
5089
       2,     3,     5,     3,     2,     3,     4,     2,     1,     2,
5090
       1,     1,     1,     3,     4,     6,     5,     1,     2,     3,
5091
       5,     4,     1,     2,     1,     1,     1,     1,     1,     1,
5092
       1,     1,     1,     1,     1,     4,     1,     3,     1,     3,
5093
       1,     1,     1,     2,     1,     1,     1,     1,     1,     1,
5094
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5095
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5096
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5097
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5098
       1,     1,     1,     1,     1,     4,     1,     1,     1,     3,
5099
       2,     3,     2,     3,     3,     4,     1,     0,     3,     1,
5100
       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
5101
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5102
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5103
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5104
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5105
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5106
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5107
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5108
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5109
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5110
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5111
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5112
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5113
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5114
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5115
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5116
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5117
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5118
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5119
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5120
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5121
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5122
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5123
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5124
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5125
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5126
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5127
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5128
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5129
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5130
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5131
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5132
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5133
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5134
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5135
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
5136
       1,     1,     1,     1,     0,     6,     0,     5,     1,     2,
5137
       1,     3,     0,     5,     1,     2,     3,     4,     1,     3,
5138
       1,     2,     1,     3,     4,     2,     1,     3,     1,     1,
5139
       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
5140
       2,     0,     0,     5,     1,     1,     0,     2,     0,     2,
5141
       2,     3,     1,     2,     1,     2,     1,     2,     5,     3,
5142
       1,     1,     4,     1,     2,     0,     8,     0,     1,     3,
5143
       2,     1,     2,     0,     6,     0,     8,     0,     7,     1,
5144
       1,     1,     0,     2,     3,     2,     2,     2,     3,     2,
5145
       2,     2,     2,     1,     2,     1,     1,     1,     0,     3,
5146
       5,     1,     3,     1,     4,     1,     1,     1,     3,     5,
5147
       5,     1,     3,     1,     3,     4,     6,     6,     8,     6,
5148
       8,     1,     3,     1,     1,     1,     1,     1,     1,     3,
5149
       4,     6,     4,     6,     6,     8,     6,     8,     6,     8,
5150
       1,     3,     1,     1,     1,     1,     1,     3,     1,     1,
5151
       1,     1,     1,     1,     3,     6,     8,     4,     6,     1,
5152
       3,     1,     1,     4,     6,     1,     3,     3,     3
5153
};
5154
5155
5156
enum { YYENOMEM = -2 };
5157
5158
#define yyerrok         (yyerrstatus = 0)
5159
#define yyclearin       (yychar = YYEMPTY)
5160
5161
288
#define YYACCEPT        goto yyacceptlab
5162
90
#define YYABORT         goto yyabortlab
5163
0
#define YYERROR         goto yyerrorlab
5164
0
#define YYNOMEM         goto yyexhaustedlab
5165
5166
5167
#define YYRECOVERING()  (!!yyerrstatus)
5168
5169
#define YYBACKUP(Token, Value)                                    \
5170
  do                                                              \
5171
    if (yychar == YYEMPTY)                                        \
5172
      {                                                           \
5173
        yychar = (Token);                                         \
5174
        yylval = (Value);                                         \
5175
        YYPOPSTACK (yylen);                                       \
5176
        yystate = *yyssp;                                         \
5177
        goto yybackup;                                            \
5178
      }                                                           \
5179
    else                                                          \
5180
      {                                                           \
5181
        yyerror (pParseContext, YY_("syntax error: cannot back up")); \
5182
        YYERROR;                                                  \
5183
      }                                                           \
5184
  while (0)
5185
5186
/* Backward compatibility with an undocumented macro.
5187
   Use YYerror or YYUNDEF. */
5188
#define YYERRCODE YYUNDEF
5189
5190
5191
/* Enable debugging if requested.  */
5192
#if YYDEBUG
5193
5194
# ifndef YYFPRINTF
5195
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
5196
0
#  define YYFPRINTF fprintf
5197
# endif
5198
5199
2.51M
# define YYDPRINTF(Args)                        \
5200
2.51M
do {                                            \
5201
2.51M
  if (yydebug)                                  \
5202
2.51M
    YYFPRINTF Args;                             \
5203
2.51M
} while (0)
5204
5205
5206
5207
5208
3.14M
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
5209
3.14M
do {                                                                      \
5210
3.14M
  if (yydebug)                                                            \
5211
3.14M
    {                                                                     \
5212
0
      YYFPRINTF (stderr, "%s ", Title);                                   \
5213
0
      yy_symbol_print (stderr,                                            \
5214
0
                  Kind, Value, pParseContext); \
5215
0
      YYFPRINTF (stderr, "\n");                                           \
5216
0
    }                                                                     \
5217
3.14M
} while (0)
5218
5219
5220
/*-----------------------------------.
5221
| Print this symbol's value on YYO.  |
5222
`-----------------------------------*/
5223
5224
static void
5225
yy_symbol_value_print (FILE *yyo,
5226
                       yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
5227
0
{
5228
0
  FILE *yyoutput = yyo;
5229
0
  YY_USE (yyoutput);
5230
0
  YY_USE (pParseContext);
5231
0
  if (!yyvaluep)
5232
0
    return;
5233
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5234
0
  YY_USE (yykind);
5235
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
5236
0
}
5237
5238
5239
/*---------------------------.
5240
| Print this symbol on YYO.  |
5241
`---------------------------*/
5242
5243
static void
5244
yy_symbol_print (FILE *yyo,
5245
                 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
5246
0
{
5247
0
  YYFPRINTF (yyo, "%s %s (",
5248
0
             yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
5249
5250
0
  yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
5251
0
  YYFPRINTF (yyo, ")");
5252
0
}
5253
5254
/*------------------------------------------------------------------.
5255
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
5256
| TOP (included).                                                   |
5257
`------------------------------------------------------------------*/
5258
5259
static void
5260
yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
5261
0
{
5262
0
  YYFPRINTF (stderr, "Stack now");
5263
0
  for (; yybottom <= yytop; yybottom++)
5264
0
    {
5265
0
      int yybot = *yybottom;
5266
0
      YYFPRINTF (stderr, " %d", yybot);
5267
0
    }
5268
0
  YYFPRINTF (stderr, "\n");
5269
0
}
5270
5271
1.97M
# define YY_STACK_PRINT(Bottom, Top)                            \
5272
1.97M
do {                                                            \
5273
1.97M
  if (yydebug)                                                  \
5274
1.97M
    yy_stack_print ((Bottom), (Top));                           \
5275
1.97M
} while (0)
5276
5277
5278
/*------------------------------------------------.
5279
| Report that the YYRULE is going to be reduced.  |
5280
`------------------------------------------------*/
5281
5282
static void
5283
yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
5284
                 int yyrule, glslang::TParseContext* pParseContext)
5285
0
{
5286
0
  int yylno = yyrline[yyrule];
5287
0
  int yynrhs = yyr2[yyrule];
5288
0
  int yyi;
5289
0
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
5290
0
             yyrule - 1, yylno);
5291
  /* The symbols being reduced.  */
5292
0
  for (yyi = 0; yyi < yynrhs; yyi++)
5293
0
    {
5294
0
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
5295
0
      yy_symbol_print (stderr,
5296
0
                       YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
5297
0
                       &yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
5298
0
      YYFPRINTF (stderr, "\n");
5299
0
    }
5300
0
}
5301
5302
1.44M
# define YY_REDUCE_PRINT(Rule)          \
5303
1.44M
do {                                    \
5304
1.44M
  if (yydebug)                          \
5305
1.44M
    yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
5306
1.44M
} while (0)
5307
5308
/* Nonzero means print parse trace.  It is left uninitialized so that
5309
   multiple parsers can coexist.  */
5310
int yydebug;
5311
#else /* !YYDEBUG */
5312
# define YYDPRINTF(Args) ((void) 0)
5313
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
5314
# define YY_STACK_PRINT(Bottom, Top)
5315
# define YY_REDUCE_PRINT(Rule)
5316
#endif /* !YYDEBUG */
5317
5318
5319
/* YYINITDEPTH -- initial size of the parser's stacks.  */
5320
#ifndef YYINITDEPTH
5321
378
# define YYINITDEPTH 200
5322
#endif
5323
5324
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
5325
   if the built-in stack extension method is used).
5326
5327
   Do not make this value too large; the results are undefined if
5328
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
5329
   evaluated with infinite-precision integer arithmetic.  */
5330
5331
#ifndef YYMAXDEPTH
5332
0
# define YYMAXDEPTH 10000
5333
#endif
5334
5335
5336
/* Context of a parse error.  */
5337
typedef struct
5338
{
5339
  yy_state_t *yyssp;
5340
  yysymbol_kind_t yytoken;
5341
} yypcontext_t;
5342
5343
/* Put in YYARG at most YYARGN of the expected tokens given the
5344
   current YYCTX, and return the number of tokens stored in YYARG.  If
5345
   YYARG is null, return the number of expected tokens (guaranteed to
5346
   be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
5347
   Return 0 if there are more than YYARGN expected tokens, yet fill
5348
   YYARG up to YYARGN. */
5349
static int
5350
yypcontext_expected_tokens (const yypcontext_t *yyctx,
5351
                            yysymbol_kind_t yyarg[], int yyargn)
5352
90
{
5353
  /* Actual size of YYARG. */
5354
90
  int yycount = 0;
5355
90
  int yyn = yypact[+*yyctx->yyssp];
5356
90
  if (!yypact_value_is_default (yyn))
5357
90
    {
5358
      /* Start YYX at -YYN if negative to avoid negative indexes in
5359
         YYCHECK.  In other words, skip the first -YYN actions for
5360
         this state because they are default actions.  */
5361
90
      int yyxbegin = yyn < 0 ? -yyn : 0;
5362
      /* Stay within bounds of both yycheck and yytname.  */
5363
90
      int yychecklim = YYLAST - yyn + 1;
5364
90
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
5365
90
      int yyx;
5366
11.9k
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5367
11.9k
        if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
5368
0
            && !yytable_value_is_error (yytable[yyx + yyn]))
5369
314
          {
5370
314
            if (!yyarg)
5371
0
              ++yycount;
5372
314
            else if (yycount == yyargn)
5373
46
              return 0;
5374
268
            else
5375
268
              yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
5376
314
          }
5377
90
    }
5378
44
  if (yyarg && yycount == 0 && 0 < yyargn)
5379
0
    yyarg[0] = YYSYMBOL_YYEMPTY;
5380
44
  return yycount;
5381
90
}
5382
5383
5384
5385
5386
#ifndef yystrlen
5387
# if defined __GLIBC__ && defined _STRING_H
5388
224
#  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
5389
# else
5390
/* Return the length of YYSTR.  */
5391
static YYPTRDIFF_T
5392
yystrlen (const char *yystr)
5393
{
5394
  YYPTRDIFF_T yylen;
5395
  for (yylen = 0; yystr[yylen]; yylen++)
5396
    continue;
5397
  return yylen;
5398
}
5399
# endif
5400
#endif
5401
5402
#ifndef yystpcpy
5403
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
5404
134
#  define yystpcpy stpcpy
5405
# else
5406
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
5407
   YYDEST.  */
5408
static char *
5409
yystpcpy (char *yydest, const char *yysrc)
5410
{
5411
  char *yyd = yydest;
5412
  const char *yys = yysrc;
5413
5414
  while ((*yyd++ = *yys++) != '\0')
5415
    continue;
5416
5417
  return yyd - 1;
5418
}
5419
# endif
5420
#endif
5421
5422
#ifndef yytnamerr
5423
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
5424
   quotes and backslashes, so that it's suitable for yyerror.  The
5425
   heuristic is that double-quoting is unnecessary unless the string
5426
   contains an apostrophe, a comma, or backslash (other than
5427
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
5428
   null, do not copy; instead, return the length of what the result
5429
   would have been.  */
5430
static YYPTRDIFF_T
5431
yytnamerr (char *yyres, const char *yystr)
5432
348
{
5433
348
  if (*yystr == '"')
5434
80
    {
5435
80
      YYPTRDIFF_T yyn = 0;
5436
80
      char const *yyp = yystr;
5437
80
      for (;;)
5438
960
        switch (*++yyp)
5439
960
          {
5440
0
          case '\'':
5441
0
          case ',':
5442
0
            goto do_not_strip_quotes;
5443
5444
0
          case '\\':
5445
0
            if (*++yyp != '\\')
5446
0
              goto do_not_strip_quotes;
5447
0
            else
5448
0
              goto append;
5449
5450
0
          append:
5451
880
          default:
5452
880
            if (yyres)
5453
440
              yyres[yyn] = *yyp;
5454
880
            yyn++;
5455
880
            break;
5456
5457
80
          case '"':
5458
80
            if (yyres)
5459
40
              yyres[yyn] = '\0';
5460
80
            return yyn;
5461
960
          }
5462
0
    do_not_strip_quotes: ;
5463
0
    }
5464
5465
268
  if (yyres)
5466
134
    return yystpcpy (yyres, yystr) - yyres;
5467
134
  else
5468
134
    return yystrlen (yystr);
5469
268
}
5470
#endif
5471
5472
5473
static int
5474
yy_syntax_error_arguments (const yypcontext_t *yyctx,
5475
                           yysymbol_kind_t yyarg[], int yyargn)
5476
90
{
5477
  /* Actual size of YYARG. */
5478
90
  int yycount = 0;
5479
  /* There are many possibilities here to consider:
5480
     - If this state is a consistent state with a default action, then
5481
       the only way this function was invoked is if the default action
5482
       is an error action.  In that case, don't check for expected
5483
       tokens because there are none.
5484
     - The only way there can be no lookahead present (in yychar) is if
5485
       this state is a consistent state with a default action.  Thus,
5486
       detecting the absence of a lookahead is sufficient to determine
5487
       that there is no unexpected or expected token to report.  In that
5488
       case, just report a simple "syntax error".
5489
     - Don't assume there isn't a lookahead just because this state is a
5490
       consistent state with a default action.  There might have been a
5491
       previous inconsistent state, consistent state with a non-default
5492
       action, or user semantic action that manipulated yychar.
5493
     - Of course, the expected token list depends on states to have
5494
       correct lookahead information, and it depends on the parser not
5495
       to perform extra reductions after fetching a lookahead from the
5496
       scanner and before detecting a syntax error.  Thus, state merging
5497
       (from LALR or IELR) and default reductions corrupt the expected
5498
       token list.  However, the list is correct for canonical LR with
5499
       one exception: it will still contain any token that will not be
5500
       accepted due to an error action in a later state.
5501
  */
5502
90
  if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
5503
90
    {
5504
90
      int yyn;
5505
90
      if (yyarg)
5506
90
        yyarg[yycount] = yyctx->yytoken;
5507
90
      ++yycount;
5508
90
      yyn = yypcontext_expected_tokens (yyctx,
5509
90
                                        yyarg ? yyarg + 1 : yyarg, yyargn - 1);
5510
90
      if (yyn == YYENOMEM)
5511
0
        return YYENOMEM;
5512
90
      else
5513
90
        yycount += yyn;
5514
90
    }
5515
90
  return yycount;
5516
90
}
5517
5518
/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
5519
   about the unexpected token YYTOKEN for the state stack whose top is
5520
   YYSSP.
5521
5522
   Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
5523
   not large enough to hold the message.  In that case, also set
5524
   *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
5525
   required number of bytes is too large to store.  */
5526
static int
5527
yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
5528
                const yypcontext_t *yyctx)
5529
90
{
5530
90
  enum { YYARGS_MAX = 5 };
5531
  /* Internationalized format string. */
5532
90
  const char *yyformat = YY_NULLPTR;
5533
  /* Arguments of yyformat: reported tokens (one for the "unexpected",
5534
     one per "expected"). */
5535
90
  yysymbol_kind_t yyarg[YYARGS_MAX];
5536
  /* Cumulated lengths of YYARG.  */
5537
90
  YYPTRDIFF_T yysize = 0;
5538
5539
  /* Actual size of YYARG. */
5540
90
  int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
5541
90
  if (yycount == YYENOMEM)
5542
0
    return YYENOMEM;
5543
5544
90
  switch (yycount)
5545
90
    {
5546
0
#define YYCASE_(N, S)                       \
5547
90
      case N:                               \
5548
90
        yyformat = S;                       \
5549
90
        break
5550
0
    default: /* Avoid compiler warnings. */
5551
0
      YYCASE_(0, YY_("syntax error"));
5552
46
      YYCASE_(1, YY_("syntax error, unexpected %s"));
5553
4
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
5554
40
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
5555
0
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
5556
90
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5557
90
#undef YYCASE_
5558
90
    }
5559
5560
  /* Compute error message size.  Don't count the "%s"s, but reserve
5561
     room for the terminator.  */
5562
90
  yysize = yystrlen (yyformat) - 2 * yycount + 1;
5563
90
  {
5564
90
    int yyi;
5565
264
    for (yyi = 0; yyi < yycount; ++yyi)
5566
174
      {
5567
174
        YYPTRDIFF_T yysize1
5568
174
          = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
5569
174
        if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
5570
174
          yysize = yysize1;
5571
0
        else
5572
0
          return YYENOMEM;
5573
174
      }
5574
90
  }
5575
5576
90
  if (*yymsg_alloc < yysize)
5577
0
    {
5578
0
      *yymsg_alloc = 2 * yysize;
5579
0
      if (! (yysize <= *yymsg_alloc
5580
0
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
5581
0
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
5582
0
      return -1;
5583
0
    }
5584
5585
  /* Avoid sprintf, as that infringes on the user's name space.
5586
     Don't have undefined behavior even if the translation
5587
     produced a string with the wrong number of "%s"s.  */
5588
90
  {
5589
90
    char *yyp = *yymsg;
5590
90
    int yyi = 0;
5591
3.20k
    while ((*yyp = *yyformat) != '\0')
5592
3.11k
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
5593
174
        {
5594
174
          yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
5595
174
          yyformat += 2;
5596
174
        }
5597
2.93k
      else
5598
2.93k
        {
5599
2.93k
          ++yyp;
5600
2.93k
          ++yyformat;
5601
2.93k
        }
5602
90
  }
5603
90
  return 0;
5604
90
}
5605
5606
5607
/*-----------------------------------------------.
5608
| Release the memory associated to this symbol.  |
5609
`-----------------------------------------------*/
5610
5611
static void
5612
yydestruct (const char *yymsg,
5613
            yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
5614
758
{
5615
758
  YY_USE (yyvaluep);
5616
758
  YY_USE (pParseContext);
5617
758
  if (!yymsg)
5618
0
    yymsg = "Deleting";
5619
758
  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
5620
5621
758
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5622
758
  YY_USE (yykind);
5623
758
  YY_IGNORE_MAYBE_UNINITIALIZED_END
5624
758
}
5625
5626
5627
5628
5629
5630
5631
/*----------.
5632
| yyparse.  |
5633
`----------*/
5634
5635
int
5636
yyparse (glslang::TParseContext* pParseContext)
5637
378
{
5638
/* Lookahead token kind.  */
5639
378
int yychar;
5640
5641
5642
/* The semantic value of the lookahead symbol.  */
5643
/* Default value used for initialization, for pacifying older GCCs
5644
   or non-GCC compilers.  */
5645
378
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
5646
378
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
5647
5648
    /* Number of syntax errors so far.  */
5649
378
    int yynerrs = 0;
5650
5651
378
    yy_state_fast_t yystate = 0;
5652
    /* Number of tokens to shift before error messages enabled.  */
5653
378
    int yyerrstatus = 0;
5654
5655
    /* Refer to the stacks through separate pointers, to allow yyoverflow
5656
       to reallocate them elsewhere.  */
5657
5658
    /* Their size.  */
5659
378
    YYPTRDIFF_T yystacksize = YYINITDEPTH;
5660
5661
    /* The state stack: array, bottom, top.  */
5662
378
    yy_state_t yyssa[YYINITDEPTH];
5663
378
    yy_state_t *yyss = yyssa;
5664
378
    yy_state_t *yyssp = yyss;
5665
5666
    /* The semantic value stack: array, bottom, top.  */
5667
378
    YYSTYPE yyvsa[YYINITDEPTH];
5668
378
    YYSTYPE *yyvs = yyvsa;
5669
378
    YYSTYPE *yyvsp = yyvs;
5670
5671
378
  int yyn;
5672
  /* The return value of yyparse.  */
5673
378
  int yyresult;
5674
  /* Lookahead symbol kind.  */
5675
378
  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
5676
  /* The variables used to return semantic value and location from the
5677
     action routines.  */
5678
378
  YYSTYPE yyval;
5679
5680
  /* Buffer for error messages, and its allocated size.  */
5681
378
  char yymsgbuf[128];
5682
378
  char *yymsg = yymsgbuf;
5683
378
  YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
5684
5685
1.44M
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
5686
5687
  /* The number of symbols on the RHS of the reduced rule.
5688
     Keep to zero when no symbol should be popped.  */
5689
378
  int yylen = 0;
5690
5691
378
  YYDPRINTF ((stderr, "Starting parse\n"));
5692
5693
378
  yychar = YYEMPTY; /* Cause a token to be read.  */
5694
5695
378
  goto yysetstate;
5696
5697
5698
/*------------------------------------------------------------.
5699
| yynewstate -- push a new state, which is found in yystate.  |
5700
`------------------------------------------------------------*/
5701
1.97M
yynewstate:
5702
  /* In all cases, when you get here, the value and location stacks
5703
     have just been pushed.  So pushing a state here evens the stacks.  */
5704
1.97M
  yyssp++;
5705
5706
5707
/*--------------------------------------------------------------------.
5708
| yysetstate -- set current state (the top of the stack) to yystate.  |
5709
`--------------------------------------------------------------------*/
5710
1.97M
yysetstate:
5711
1.97M
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
5712
1.97M
  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
5713
1.97M
  YY_IGNORE_USELESS_CAST_BEGIN
5714
1.97M
  *yyssp = YY_CAST (yy_state_t, yystate);
5715
1.97M
  YY_IGNORE_USELESS_CAST_END
5716
1.97M
  YY_STACK_PRINT (yyss, yyssp);
5717
5718
1.97M
  if (yyss + yystacksize - 1 <= yyssp)
5719
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
5720
    YYNOMEM;
5721
#else
5722
0
    {
5723
      /* Get the current used size of the three stacks, in elements.  */
5724
0
      YYPTRDIFF_T yysize = yyssp - yyss + 1;
5725
5726
# if defined yyoverflow
5727
      {
5728
        /* Give user a chance to reallocate the stack.  Use copies of
5729
           these so that the &'s don't force the real ones into
5730
           memory.  */
5731
        yy_state_t *yyss1 = yyss;
5732
        YYSTYPE *yyvs1 = yyvs;
5733
5734
        /* Each stack pointer address is followed by the size of the
5735
           data in use in that stack, in bytes.  This used to be a
5736
           conditional around just the two extra args, but that might
5737
           be undefined if yyoverflow is a macro.  */
5738
        yyoverflow (YY_("memory exhausted"),
5739
                    &yyss1, yysize * YYSIZEOF (*yyssp),
5740
                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
5741
                    &yystacksize);
5742
        yyss = yyss1;
5743
        yyvs = yyvs1;
5744
      }
5745
# else /* defined YYSTACK_RELOCATE */
5746
      /* Extend the stack our own way.  */
5747
0
      if (YYMAXDEPTH <= yystacksize)
5748
0
        YYNOMEM;
5749
0
      yystacksize *= 2;
5750
0
      if (YYMAXDEPTH < yystacksize)
5751
0
        yystacksize = YYMAXDEPTH;
5752
5753
0
      {
5754
0
        yy_state_t *yyss1 = yyss;
5755
0
        union yyalloc *yyptr =
5756
0
          YY_CAST (union yyalloc *,
5757
0
                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
5758
0
        if (! yyptr)
5759
0
          YYNOMEM;
5760
0
        YYSTACK_RELOCATE (yyss_alloc, yyss);
5761
0
        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
5762
0
#  undef YYSTACK_RELOCATE
5763
0
        if (yyss1 != yyssa)
5764
0
          YYSTACK_FREE (yyss1);
5765
0
      }
5766
0
# endif
5767
5768
0
      yyssp = yyss + yysize - 1;
5769
0
      yyvsp = yyvs + yysize - 1;
5770
5771
0
      YY_IGNORE_USELESS_CAST_BEGIN
5772
0
      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
5773
0
                  YY_CAST (long, yystacksize)));
5774
0
      YY_IGNORE_USELESS_CAST_END
5775
5776
0
      if (yyss + yystacksize - 1 <= yyssp)
5777
0
        YYABORT;
5778
0
    }
5779
1.97M
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
5780
5781
5782
1.97M
  if (yystate == YYFINAL)
5783
288
    YYACCEPT;
5784
5785
1.97M
  goto yybackup;
5786
5787
5788
/*-----------.
5789
| yybackup.  |
5790
`-----------*/
5791
1.97M
yybackup:
5792
  /* Do appropriate processing given the current state.  Read a
5793
     lookahead token if we need one and don't already have one.  */
5794
5795
  /* First try to decide what to do without reference to lookahead token.  */
5796
1.97M
  yyn = yypact[yystate];
5797
1.97M
  if (yypact_value_is_default (yyn))
5798
812k
    goto yydefault;
5799
5800
  /* Not known => get a lookahead token if don't already have one.  */
5801
5802
  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
5803
1.16M
  if (yychar == YYEMPTY)
5804
536k
    {
5805
536k
      YYDPRINTF ((stderr, "Reading a token\n"));
5806
536k
      yychar = yylex (&yylval, parseContext);
5807
536k
    }
5808
5809
1.16M
  if (yychar <= YYEOF)
5810
328
    {
5811
328
      yychar = YYEOF;
5812
328
      yytoken = YYSYMBOL_YYEOF;
5813
328
      YYDPRINTF ((stderr, "Now at end of input.\n"));
5814
328
    }
5815
1.16M
  else if (yychar == YYerror)
5816
0
    {
5817
      /* The scanner already issued an error message, process directly
5818
         to error recovery.  But do not keep the error token as
5819
         lookahead, it is too special and may lead us to an endless
5820
         loop in error recovery. */
5821
0
      yychar = YYUNDEF;
5822
0
      yytoken = YYSYMBOL_YYerror;
5823
0
      goto yyerrlab1;
5824
0
    }
5825
1.16M
  else
5826
1.16M
    {
5827
1.16M
      yytoken = YYTRANSLATE (yychar);
5828
1.16M
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
5829
1.16M
    }
5830
5831
  /* If the proper action on seeing token YYTOKEN is to reduce or to
5832
     detect an error, take that action.  */
5833
1.16M
  yyn += yytoken;
5834
1.16M
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
5835
628k
    goto yydefault;
5836
536k
  yyn = yytable[yyn];
5837
536k
  if (yyn <= 0)
5838
0
    {
5839
0
      if (yytable_value_is_error (yyn))
5840
0
        goto yyerrlab;
5841
0
      yyn = -yyn;
5842
0
      goto yyreduce;
5843
0
    }
5844
5845
  /* Count tokens shifted since error; after three, turn off error
5846
     status.  */
5847
536k
  if (yyerrstatus)
5848
0
    yyerrstatus--;
5849
5850
  /* Shift the lookahead token.  */
5851
536k
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
5852
536k
  yystate = yyn;
5853
536k
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
5854
536k
  *++yyvsp = yylval;
5855
536k
  YY_IGNORE_MAYBE_UNINITIALIZED_END
5856
5857
  /* Discard the shifted token.  */
5858
536k
  yychar = YYEMPTY;
5859
536k
  goto yynewstate;
5860
5861
5862
/*-----------------------------------------------------------.
5863
| yydefault -- do the default action for the current state.  |
5864
`-----------------------------------------------------------*/
5865
1.44M
yydefault:
5866
1.44M
  yyn = yydefact[yystate];
5867
1.44M
  if (yyn == 0)
5868
90
    goto yyerrlab;
5869
1.44M
  goto yyreduce;
5870
5871
5872
/*-----------------------------.
5873
| yyreduce -- do a reduction.  |
5874
`-----------------------------*/
5875
1.44M
yyreduce:
5876
  /* yyn is the number of a rule to reduce with.  */
5877
1.44M
  yylen = yyr2[yyn];
5878
5879
  /* If YYLEN is nonzero, implement the default value of the action:
5880
     '$$ = $1'.
5881
5882
     Otherwise, the following line sets YYVAL to garbage.
5883
     This behavior is undocumented and Bison
5884
     users should not rely upon it.  Assigning to YYVAL
5885
     unconditionally makes the parser a bit smaller, and it avoids a
5886
     GCC warning that YYVAL may be used uninitialized.  */
5887
1.44M
  yyval = yyvsp[1-yylen];
5888
5889
5890
1.44M
  YY_REDUCE_PRINT (yyn);
5891
1.44M
  switch (yyn)
5892
1.44M
    {
5893
2
  case 2: /* variable_identifier: IDENTIFIER  */
5894
2
#line 371 "MachineIndependent/glslang.y"
5895
2
                 {
5896
2
        (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
5897
2
    }
5898
2
#line 5899 "MachineIndependent/glslang_tab.cpp"
5899
2
    break;
5900
5901
2
  case 3: /* primary_expression: variable_identifier  */
5902
2
#line 377 "MachineIndependent/glslang.y"
5903
2
                          {
5904
2
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
5905
2
    }
5906
2
#line 5907 "MachineIndependent/glslang_tab.cpp"
5907
2
    break;
5908
5909
0
  case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN  */
5910
0
#line 380 "MachineIndependent/glslang.y"
5911
0
                                        {
5912
0
        (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
5913
0
        if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
5914
0
            (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
5915
0
    }
5916
0
#line 5917 "MachineIndependent/glslang_tab.cpp"
5917
0
    break;
5918
5919
0
  case 5: /* primary_expression: FLOATCONSTANT  */
5920
0
#line 385 "MachineIndependent/glslang.y"
5921
0
                    {
5922
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
5923
0
    }
5924
0
#line 5925 "MachineIndependent/glslang_tab.cpp"
5925
0
    break;
5926
5927
1.18k
  case 6: /* primary_expression: INTCONSTANT  */
5928
1.18k
#line 388 "MachineIndependent/glslang.y"
5929
1.18k
                  {
5930
1.18k
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5931
1.18k
    }
5932
1.18k
#line 5933 "MachineIndependent/glslang_tab.cpp"
5933
1.18k
    break;
5934
5935
122
  case 7: /* primary_expression: UINTCONSTANT  */
5936
122
#line 391 "MachineIndependent/glslang.y"
5937
122
                   {
5938
122
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
5939
122
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5940
122
    }
5941
122
#line 5942 "MachineIndependent/glslang_tab.cpp"
5942
122
    break;
5943
5944
0
  case 8: /* primary_expression: BOOLCONSTANT  */
5945
0
#line 395 "MachineIndependent/glslang.y"
5946
0
                   {
5947
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
5948
0
    }
5949
0
#line 5950 "MachineIndependent/glslang_tab.cpp"
5950
0
    break;
5951
5952
0
  case 9: /* primary_expression: STRING_LITERAL  */
5953
0
#line 398 "MachineIndependent/glslang.y"
5954
0
                     {
5955
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
5956
0
    }
5957
0
#line 5958 "MachineIndependent/glslang_tab.cpp"
5958
0
    break;
5959
5960
0
  case 10: /* primary_expression: INT32CONSTANT  */
5961
0
#line 401 "MachineIndependent/glslang.y"
5962
0
                    {
5963
0
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5964
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
5965
0
    }
5966
0
#line 5967 "MachineIndependent/glslang_tab.cpp"
5967
0
    break;
5968
5969
0
  case 11: /* primary_expression: UINT32CONSTANT  */
5970
0
#line 405 "MachineIndependent/glslang.y"
5971
0
                     {
5972
0
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
5973
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
5974
0
    }
5975
0
#line 5976 "MachineIndependent/glslang_tab.cpp"
5976
0
    break;
5977
5978
0
  case 12: /* primary_expression: INT64CONSTANT  */
5979
0
#line 409 "MachineIndependent/glslang.y"
5980
0
                    {
5981
0
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
5982
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
5983
0
    }
5984
0
#line 5985 "MachineIndependent/glslang_tab.cpp"
5985
0
    break;
5986
5987
0
  case 13: /* primary_expression: UINT64CONSTANT  */
5988
0
#line 413 "MachineIndependent/glslang.y"
5989
0
                     {
5990
0
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
5991
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
5992
0
    }
5993
0
#line 5994 "MachineIndependent/glslang_tab.cpp"
5994
0
    break;
5995
5996
0
  case 14: /* primary_expression: INT16CONSTANT  */
5997
0
#line 417 "MachineIndependent/glslang.y"
5998
0
                    {
5999
0
        parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
6000
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
6001
0
    }
6002
0
#line 6003 "MachineIndependent/glslang_tab.cpp"
6003
0
    break;
6004
6005
0
  case 15: /* primary_expression: UINT16CONSTANT  */
6006
0
#line 421 "MachineIndependent/glslang.y"
6007
0
                     {
6008
0
        parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
6009
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
6010
0
    }
6011
0
#line 6012 "MachineIndependent/glslang_tab.cpp"
6012
0
    break;
6013
6014
0
  case 16: /* primary_expression: DOUBLECONSTANT  */
6015
0
#line 425 "MachineIndependent/glslang.y"
6016
0
                     {
6017
0
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
6018
0
        if (! parseContext.symbolTable.atBuiltInLevel())
6019
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
6020
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
6021
0
    }
6022
0
#line 6023 "MachineIndependent/glslang_tab.cpp"
6023
0
    break;
6024
6025
0
  case 17: /* primary_expression: FLOAT16CONSTANT  */
6026
0
#line 431 "MachineIndependent/glslang.y"
6027
0
                      {
6028
0
        parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
6029
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
6030
0
    }
6031
0
#line 6032 "MachineIndependent/glslang_tab.cpp"
6032
0
    break;
6033
6034
0
  case 18: /* primary_expression: FLOATE2M1CONSTANT  */
6035
0
#line 435 "MachineIndependent/glslang.y"
6036
0
                        {
6037
0
        parseContext.floate2m1ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m1 literal");
6038
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloatE2M1, (yyvsp[0].lex).loc, true);
6039
0
    }
6040
0
#line 6041 "MachineIndependent/glslang_tab.cpp"
6041
0
    break;
6042
6043
0
  case 19: /* primary_expression: FLOATE3M2CONSTANT  */
6044
0
#line 439 "MachineIndependent/glslang.y"
6045
0
                        {
6046
0
        parseContext.floate3m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe3m2 literal");
6047
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloatE3M2, (yyvsp[0].lex).loc, true);
6048
0
    }
6049
0
#line 6050 "MachineIndependent/glslang_tab.cpp"
6050
0
    break;
6051
6052
0
  case 20: /* primary_expression: FLOATE2M3CONSTANT  */
6053
0
#line 443 "MachineIndependent/glslang.y"
6054
0
                        {
6055
0
        parseContext.floate2m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m3 literal");
6056
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloatE2M3, (yyvsp[0].lex).loc, true);
6057
0
    }
6058
0
#line 6059 "MachineIndependent/glslang_tab.cpp"
6059
0
    break;
6060
6061
0
  case 21: /* primary_expression: FLOATUE8M0CONSTANT  */
6062
0
#line 447 "MachineIndependent/glslang.y"
6063
0
                         {
6064
0
        parseContext.floatue8m0ScalarVectorCheck((yyvsp[0].lex).loc, "fue8m0 literal");
6065
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloatUE8M0, (yyvsp[0].lex).loc, true);
6066
0
    }
6067
0
#line 6068 "MachineIndependent/glslang_tab.cpp"
6068
0
    break;
6069
6070
0
  case 22: /* primary_expression: FLOATMXINT8CONSTANT  */
6071
0
#line 451 "MachineIndependent/glslang.y"
6072
0
                          {
6073
0
        parseContext.floatmxint8ScalarVectorCheck((yyvsp[0].lex).loc, "fmxint8 literal");
6074
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloatMXINT8, (yyvsp[0].lex).loc, true);
6075
0
    }
6076
0
#line 6077 "MachineIndependent/glslang_tab.cpp"
6077
0
    break;
6078
6079
1.30k
  case 23: /* postfix_expression: primary_expression  */
6080
1.30k
#line 458 "MachineIndependent/glslang.y"
6081
1.30k
                         {
6082
1.30k
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6083
1.30k
    }
6084
1.30k
#line 6085 "MachineIndependent/glslang_tab.cpp"
6085
1.30k
    break;
6086
6087
0
  case 24: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET  */
6088
0
#line 461 "MachineIndependent/glslang.y"
6089
0
                                                                       {
6090
0
        (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
6091
0
    }
6092
0
#line 6093 "MachineIndependent/glslang_tab.cpp"
6093
0
    break;
6094
6095
10
  case 25: /* postfix_expression: function_call  */
6096
10
#line 464 "MachineIndependent/glslang.y"
6097
10
                    {
6098
10
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6099
10
    }
6100
10
#line 6101 "MachineIndependent/glslang_tab.cpp"
6101
10
    break;
6102
6103
0
  case 26: /* postfix_expression: postfix_expression DOT IDENTIFIER  */
6104
0
#line 467 "MachineIndependent/glslang.y"
6105
0
                                        {
6106
0
        (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
6107
0
    }
6108
0
#line 6109 "MachineIndependent/glslang_tab.cpp"
6109
0
    break;
6110
6111
0
  case 27: /* postfix_expression: postfix_expression INC_OP  */
6112
0
#line 470 "MachineIndependent/glslang.y"
6113
0
                                {
6114
0
        parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
6115
0
        parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
6116
0
        (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
6117
0
    }
6118
0
#line 6119 "MachineIndependent/glslang_tab.cpp"
6119
0
    break;
6120
6121
0
  case 28: /* postfix_expression: postfix_expression DEC_OP  */
6122
0
#line 475 "MachineIndependent/glslang.y"
6123
0
                                {
6124
0
        parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
6125
0
        parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
6126
0
        (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
6127
0
    }
6128
0
#line 6129 "MachineIndependent/glslang_tab.cpp"
6129
0
    break;
6130
6131
0
  case 29: /* integer_expression: expression  */
6132
0
#line 483 "MachineIndependent/glslang.y"
6133
0
                 {
6134
0
        parseContext.arrayIndexCheck((yyvsp[0].interm.intermTypedNode), "[]");
6135
0
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6136
0
    }
6137
0
#line 6138 "MachineIndependent/glslang_tab.cpp"
6138
0
    break;
6139
6140
10
  case 30: /* function_call: function_call_or_method  */
6141
10
#line 490 "MachineIndependent/glslang.y"
6142
10
                              {
6143
10
        (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
6144
10
        delete (yyvsp[0].interm).function;
6145
10
    }
6146
10
#line 6147 "MachineIndependent/glslang_tab.cpp"
6147
10
    break;
6148
6149
10
  case 31: /* function_call_or_method: function_call_generic  */
6150
10
#line 497 "MachineIndependent/glslang.y"
6151
10
                            {
6152
10
        (yyval.interm) = (yyvsp[0].interm);
6153
10
    }
6154
10
#line 6155 "MachineIndependent/glslang_tab.cpp"
6155
10
    break;
6156
6157
10
  case 32: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN  */
6158
10
#line 503 "MachineIndependent/glslang.y"
6159
10
                                                       {
6160
10
        (yyval.interm) = (yyvsp[-1].interm);
6161
10
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6162
10
    }
6163
10
#line 6164 "MachineIndependent/glslang_tab.cpp"
6164
10
    break;
6165
6166
0
  case 33: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN  */
6167
0
#line 507 "MachineIndependent/glslang.y"
6168
0
                                                     {
6169
0
        (yyval.interm) = (yyvsp[-1].interm);
6170
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6171
0
    }
6172
0
#line 6173 "MachineIndependent/glslang_tab.cpp"
6173
0
    break;
6174
6175
0
  case 34: /* function_call_header_no_parameters: function_call_header VOID  */
6176
0
#line 514 "MachineIndependent/glslang.y"
6177
0
                                {
6178
0
        (yyval.interm) = (yyvsp[-1].interm);
6179
0
    }
6180
0
#line 6181 "MachineIndependent/glslang_tab.cpp"
6181
0
    break;
6182
6183
0
  case 35: /* function_call_header_no_parameters: function_call_header  */
6184
0
#line 517 "MachineIndependent/glslang.y"
6185
0
                           {
6186
0
        (yyval.interm) = (yyvsp[0].interm);
6187
0
    }
6188
0
#line 6189 "MachineIndependent/glslang_tab.cpp"
6189
0
    break;
6190
6191
10
  case 36: /* function_call_header_with_parameters: function_call_header assignment_expression  */
6192
10
#line 523 "MachineIndependent/glslang.y"
6193
10
                                                 {
6194
10
        if (parseContext.spvVersion.vulkan > 0
6195
3
            && parseContext.spvVersion.vulkanRelaxed
6196
0
            && (yyvsp[0].interm.intermTypedNode)->getType().containsOpaque())
6197
0
        {
6198
0
            (yyval.interm).intermNode = parseContext.vkRelaxedRemapFunctionArgument((yyval.interm).loc, (yyvsp[-1].interm).function, (yyvsp[0].interm.intermTypedNode));
6199
0
            (yyval.interm).function = (yyvsp[-1].interm).function;
6200
0
        }
6201
10
        else
6202
10
        {
6203
10
            TParameter param = { 0, new TType, {} };
6204
10
            param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
6205
6206
10
            (yyvsp[-1].interm).function->addParameter(param);
6207
10
            (yyval.interm).function = (yyvsp[-1].interm).function;
6208
10
            (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
6209
10
        }
6210
10
    }
6211
10
#line 6212 "MachineIndependent/glslang_tab.cpp"
6212
10
    break;
6213
6214
20
  case 37: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression  */
6215
20
#line 541 "MachineIndependent/glslang.y"
6216
20
                                                                       {
6217
20
        if (parseContext.spvVersion.vulkan > 0
6218
6
            && parseContext.spvVersion.vulkanRelaxed
6219
0
            && (yyvsp[0].interm.intermTypedNode)->getType().containsOpaque())
6220
0
        {
6221
0
            TIntermNode* remappedNode = parseContext.vkRelaxedRemapFunctionArgument((yyvsp[-1].lex).loc, (yyvsp[-2].interm).function, (yyvsp[0].interm.intermTypedNode));
6222
0
            if (remappedNode == (yyvsp[0].interm.intermTypedNode))
6223
0
                (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
6224
0
            else
6225
0
                (yyval.interm).intermNode = parseContext.intermediate.mergeAggregate((yyvsp[-2].interm).intermNode, remappedNode, (yyvsp[-1].lex).loc);
6226
0
            (yyval.interm).function = (yyvsp[-2].interm).function;
6227
0
        }
6228
20
        else
6229
20
        {
6230
20
            TParameter param = { 0, new TType, {} };
6231
20
            param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
6232
6233
20
            (yyvsp[-2].interm).function->addParameter(param);
6234
20
            (yyval.interm).function = (yyvsp[-2].interm).function;
6235
20
            (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
6236
20
        }
6237
20
    }
6238
20
#line 6239 "MachineIndependent/glslang_tab.cpp"
6239
20
    break;
6240
6241
10
  case 38: /* function_call_header: function_identifier LEFT_PAREN  */
6242
10
#line 566 "MachineIndependent/glslang.y"
6243
10
                                     {
6244
10
        (yyval.interm) = (yyvsp[-1].interm);
6245
10
    }
6246
10
#line 6247 "MachineIndependent/glslang_tab.cpp"
6247
10
    break;
6248
6249
10
  case 39: /* function_identifier: type_specifier  */
6250
10
#line 574 "MachineIndependent/glslang.y"
6251
10
                     {
6252
        // Constructor
6253
10
        (yyval.interm).intermNode = 0;
6254
10
        (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
6255
10
    }
6256
10
#line 6257 "MachineIndependent/glslang_tab.cpp"
6257
10
    break;
6258
6259
0
  case 40: /* function_identifier: postfix_expression  */
6260
0
#line 579 "MachineIndependent/glslang.y"
6261
0
                         {
6262
        //
6263
        // Should be a method or subroutine call, but we haven't recognized the arguments yet.
6264
        //
6265
0
        (yyval.interm).function = 0;
6266
0
        (yyval.interm).intermNode = 0;
6267
6268
0
        TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
6269
0
        if (method) {
6270
0
            (yyval.interm).function = new TFunction(&method->getMethodName(), method->getType(), EOpArrayLength);
6271
0
            (yyval.interm).intermNode = method->getObject();
6272
0
        } else {
6273
0
            TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
6274
0
            if (symbol) {
6275
0
                parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
6276
0
                TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
6277
0
                (yyval.interm).function = function;
6278
0
            } else
6279
0
                parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
6280
0
        }
6281
6282
0
        if ((yyval.interm).function == 0) {
6283
            // error recover
6284
0
            TString* empty = NewPoolTString("");
6285
0
            (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
6286
0
        }
6287
0
    }
6288
0
#line 6289 "MachineIndependent/glslang_tab.cpp"
6289
0
    break;
6290
6291
0
  case 41: /* function_identifier: non_uniform_qualifier  */
6292
0
#line 606 "MachineIndependent/glslang.y"
6293
0
                            {
6294
        // Constructor
6295
0
        (yyval.interm).intermNode = 0;
6296
0
        (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
6297
0
    }
6298
0
#line 6299 "MachineIndependent/glslang_tab.cpp"
6299
0
    break;
6300
6301
1.31k
  case 42: /* unary_expression: postfix_expression  */
6302
1.31k
#line 614 "MachineIndependent/glslang.y"
6303
1.31k
                         {
6304
1.31k
        parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
6305
1.31k
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6306
1.31k
        if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
6307
0
            parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
6308
1.31k
    }
6309
1.31k
#line 6310 "MachineIndependent/glslang_tab.cpp"
6310
1.31k
    break;
6311
6312
0
  case 43: /* unary_expression: INC_OP unary_expression  */
6313
0
#line 620 "MachineIndependent/glslang.y"
6314
0
                              {
6315
0
        parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
6316
0
        (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
6317
0
    }
6318
0
#line 6319 "MachineIndependent/glslang_tab.cpp"
6319
0
    break;
6320
6321
0
  case 44: /* unary_expression: DEC_OP unary_expression  */
6322
0
#line 624 "MachineIndependent/glslang.y"
6323
0
                              {
6324
0
        parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
6325
0
        (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
6326
0
    }
6327
0
#line 6328 "MachineIndependent/glslang_tab.cpp"
6328
0
    break;
6329
6330
1
  case 45: /* unary_expression: unary_operator unary_expression  */
6331
1
#line 628 "MachineIndependent/glslang.y"
6332
1
                                      {
6333
1
        if ((yyvsp[-1].interm).op != EOpNull) {
6334
1
            char errorOp[2] = {0, 0};
6335
1
            switch((yyvsp[-1].interm).op) {
6336
1
            case EOpNegative:   errorOp[0] = '-'; break;
6337
0
            case EOpLogicalNot: errorOp[0] = '!'; break;
6338
0
            case EOpBitwiseNot: errorOp[0] = '~'; break;
6339
0
            default: break; // some compilers want this
6340
1
            }
6341
1
            (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
6342
1
        } else {
6343
0
            (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6344
0
            if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
6345
0
                (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
6346
0
        }
6347
1
    }
6348
1
#line 6349 "MachineIndependent/glslang_tab.cpp"
6349
1
    break;
6350
6351
1
  case 46: /* unary_expression: LEFT_PAREN type_specifier_nonarray RIGHT_PAREN unary_expression  */
6352
0
#line 644 "MachineIndependent/glslang.y"
6353
0
                                                                      {
6354
0
        (yyval.interm.intermTypedNode) = parseContext.handleTypeCast((yyvsp[-3].lex).loc, new TType((yyvsp[-2].interm.type)), (yyvsp[0].interm.intermTypedNode));
6355
0
    }
6356
0
#line 6357 "MachineIndependent/glslang_tab.cpp"
6357
0
    break;
6358
6359
0
  case 47: /* unary_operator: PLUS  */
6360
0
#line 651 "MachineIndependent/glslang.y"
6361
0
            { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
6362
0
#line 6363 "MachineIndependent/glslang_tab.cpp"
6363
0
    break;
6364
6365
1
  case 48: /* unary_operator: DASH  */
6366
1
#line 652 "MachineIndependent/glslang.y"
6367
1
            { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
6368
1
#line 6369 "MachineIndependent/glslang_tab.cpp"
6369
1
    break;
6370
6371
0
  case 49: /* unary_operator: BANG  */
6372
0
#line 653 "MachineIndependent/glslang.y"
6373
0
            { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
6374
0
#line 6375 "MachineIndependent/glslang_tab.cpp"
6375
0
    break;
6376
6377
0
  case 50: /* unary_operator: TILDE  */
6378
0
#line 654 "MachineIndependent/glslang.y"
6379
0
            { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
6380
0
              parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
6381
0
#line 6382 "MachineIndependent/glslang_tab.cpp"
6382
0
    break;
6383
6384
1.29k
  case 51: /* multiplicative_expression: unary_expression  */
6385
1.29k
#line 660 "MachineIndependent/glslang.y"
6386
1.29k
                       { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6387
1.29k
#line 6388 "MachineIndependent/glslang_tab.cpp"
6388
1.29k
    break;
6389
6390
0
  case 52: /* multiplicative_expression: multiplicative_expression STAR unary_expression  */
6391
0
#line 661 "MachineIndependent/glslang.y"
6392
0
                                                      {
6393
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6394
0
        if ((yyval.interm.intermTypedNode) == 0)
6395
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6396
0
    }
6397
0
#line 6398 "MachineIndependent/glslang_tab.cpp"
6398
0
    break;
6399
6400
0
  case 53: /* multiplicative_expression: multiplicative_expression SLASH unary_expression  */
6401
0
#line 666 "MachineIndependent/glslang.y"
6402
0
                                                       {
6403
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6404
0
        if ((yyval.interm.intermTypedNode) == 0)
6405
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6406
0
    }
6407
0
#line 6408 "MachineIndependent/glslang_tab.cpp"
6408
0
    break;
6409
6410
0
  case 54: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression  */
6411
0
#line 671 "MachineIndependent/glslang.y"
6412
0
                                                         {
6413
0
        parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
6414
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6415
0
        if ((yyval.interm.intermTypedNode) == 0)
6416
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6417
0
    }
6418
0
#line 6419 "MachineIndependent/glslang_tab.cpp"
6419
0
    break;
6420
6421
1.29k
  case 55: /* additive_expression: multiplicative_expression  */
6422
1.29k
#line 680 "MachineIndependent/glslang.y"
6423
1.29k
                                { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6424
1.29k
#line 6425 "MachineIndependent/glslang_tab.cpp"
6425
1.29k
    break;
6426
6427
0
  case 56: /* additive_expression: additive_expression PLUS multiplicative_expression  */
6428
0
#line 681 "MachineIndependent/glslang.y"
6429
0
                                                         {
6430
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6431
0
        if ((yyval.interm.intermTypedNode) == 0)
6432
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6433
0
    }
6434
0
#line 6435 "MachineIndependent/glslang_tab.cpp"
6435
0
    break;
6436
6437
0
  case 57: /* additive_expression: additive_expression DASH multiplicative_expression  */
6438
0
#line 686 "MachineIndependent/glslang.y"
6439
0
                                                         {
6440
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6441
0
        if ((yyval.interm.intermTypedNode) == 0)
6442
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6443
0
    }
6444
0
#line 6445 "MachineIndependent/glslang_tab.cpp"
6445
0
    break;
6446
6447
1.29k
  case 58: /* shift_expression: additive_expression  */
6448
1.29k
#line 694 "MachineIndependent/glslang.y"
6449
1.29k
                          { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6450
1.29k
#line 6451 "MachineIndependent/glslang_tab.cpp"
6451
1.29k
    break;
6452
6453
0
  case 59: /* shift_expression: shift_expression LEFT_OP additive_expression  */
6454
0
#line 695 "MachineIndependent/glslang.y"
6455
0
                                                   {
6456
0
        parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
6457
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6458
0
        if ((yyval.interm.intermTypedNode) == 0)
6459
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6460
0
    }
6461
0
#line 6462 "MachineIndependent/glslang_tab.cpp"
6462
0
    break;
6463
6464
0
  case 60: /* shift_expression: shift_expression RIGHT_OP additive_expression  */
6465
0
#line 701 "MachineIndependent/glslang.y"
6466
0
                                                    {
6467
0
        parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
6468
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6469
0
        if ((yyval.interm.intermTypedNode) == 0)
6470
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6471
0
    }
6472
0
#line 6473 "MachineIndependent/glslang_tab.cpp"
6473
0
    break;
6474
6475
1.29k
  case 61: /* relational_expression: shift_expression  */
6476
1.29k
#line 710 "MachineIndependent/glslang.y"
6477
1.29k
                       { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6478
1.29k
#line 6479 "MachineIndependent/glslang_tab.cpp"
6479
1.29k
    break;
6480
6481
0
  case 62: /* relational_expression: relational_expression LEFT_ANGLE shift_expression  */
6482
0
#line 711 "MachineIndependent/glslang.y"
6483
0
                                                        {
6484
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6485
0
        if ((yyval.interm.intermTypedNode) == 0)
6486
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6487
0
    }
6488
0
#line 6489 "MachineIndependent/glslang_tab.cpp"
6489
0
    break;
6490
6491
0
  case 63: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression  */
6492
0
#line 716 "MachineIndependent/glslang.y"
6493
0
                                                          {
6494
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6495
0
        if ((yyval.interm.intermTypedNode) == 0)
6496
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6497
0
    }
6498
0
#line 6499 "MachineIndependent/glslang_tab.cpp"
6499
0
    break;
6500
6501
0
  case 64: /* relational_expression: relational_expression LE_OP shift_expression  */
6502
0
#line 721 "MachineIndependent/glslang.y"
6503
0
                                                    {
6504
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6505
0
        if ((yyval.interm.intermTypedNode) == 0)
6506
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6507
0
    }
6508
0
#line 6509 "MachineIndependent/glslang_tab.cpp"
6509
0
    break;
6510
6511
0
  case 65: /* relational_expression: relational_expression GE_OP shift_expression  */
6512
0
#line 726 "MachineIndependent/glslang.y"
6513
0
                                                    {
6514
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6515
0
        if ((yyval.interm.intermTypedNode) == 0)
6516
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6517
0
    }
6518
0
#line 6519 "MachineIndependent/glslang_tab.cpp"
6519
0
    break;
6520
6521
1.29k
  case 66: /* equality_expression: relational_expression  */
6522
1.29k
#line 734 "MachineIndependent/glslang.y"
6523
1.29k
                            { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6524
1.29k
#line 6525 "MachineIndependent/glslang_tab.cpp"
6525
1.29k
    break;
6526
6527
0
  case 67: /* equality_expression: equality_expression EQ_OP relational_expression  */
6528
0
#line 735 "MachineIndependent/glslang.y"
6529
0
                                                       {
6530
0
        parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
6531
0
        parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
6532
0
        parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
6533
0
        parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
6534
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6535
0
        if ((yyval.interm.intermTypedNode) == 0)
6536
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6537
0
    }
6538
0
#line 6539 "MachineIndependent/glslang_tab.cpp"
6539
0
    break;
6540
6541
0
  case 68: /* equality_expression: equality_expression NE_OP relational_expression  */
6542
0
#line 744 "MachineIndependent/glslang.y"
6543
0
                                                      {
6544
0
        parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
6545
0
        parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
6546
0
        parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
6547
0
        parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
6548
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6549
0
        if ((yyval.interm.intermTypedNode) == 0)
6550
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6551
0
    }
6552
0
#line 6553 "MachineIndependent/glslang_tab.cpp"
6553
0
    break;
6554
6555
1.29k
  case 69: /* and_expression: equality_expression  */
6556
1.29k
#line 756 "MachineIndependent/glslang.y"
6557
1.29k
                          { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6558
1.29k
#line 6559 "MachineIndependent/glslang_tab.cpp"
6559
1.29k
    break;
6560
6561
0
  case 70: /* and_expression: and_expression AMPERSAND equality_expression  */
6562
0
#line 757 "MachineIndependent/glslang.y"
6563
0
                                                   {
6564
0
        parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
6565
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6566
0
        if ((yyval.interm.intermTypedNode) == 0)
6567
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6568
0
    }
6569
0
#line 6570 "MachineIndependent/glslang_tab.cpp"
6570
0
    break;
6571
6572
1.29k
  case 71: /* exclusive_or_expression: and_expression  */
6573
1.29k
#line 766 "MachineIndependent/glslang.y"
6574
1.29k
                     { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6575
1.29k
#line 6576 "MachineIndependent/glslang_tab.cpp"
6576
1.29k
    break;
6577
6578
0
  case 72: /* exclusive_or_expression: exclusive_or_expression CARET and_expression  */
6579
0
#line 767 "MachineIndependent/glslang.y"
6580
0
                                                   {
6581
0
        parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
6582
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6583
0
        if ((yyval.interm.intermTypedNode) == 0)
6584
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6585
0
    }
6586
0
#line 6587 "MachineIndependent/glslang_tab.cpp"
6587
0
    break;
6588
6589
1.29k
  case 73: /* inclusive_or_expression: exclusive_or_expression  */
6590
1.29k
#line 776 "MachineIndependent/glslang.y"
6591
1.29k
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6592
1.29k
#line 6593 "MachineIndependent/glslang_tab.cpp"
6593
1.29k
    break;
6594
6595
0
  case 74: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression  */
6596
0
#line 777 "MachineIndependent/glslang.y"
6597
0
                                                                   {
6598
0
        parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
6599
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6600
0
        if ((yyval.interm.intermTypedNode) == 0)
6601
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6602
0
    }
6603
0
#line 6604 "MachineIndependent/glslang_tab.cpp"
6604
0
    break;
6605
6606
1.29k
  case 75: /* logical_and_expression: inclusive_or_expression  */
6607
1.29k
#line 786 "MachineIndependent/glslang.y"
6608
1.29k
                              { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6609
1.29k
#line 6610 "MachineIndependent/glslang_tab.cpp"
6610
1.29k
    break;
6611
6612
0
  case 76: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression  */
6613
0
#line 787 "MachineIndependent/glslang.y"
6614
0
                                                            {
6615
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6616
0
        if ((yyval.interm.intermTypedNode) == 0)
6617
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6618
0
    }
6619
0
#line 6620 "MachineIndependent/glslang_tab.cpp"
6620
0
    break;
6621
6622
1.29k
  case 77: /* logical_xor_expression: logical_and_expression  */
6623
1.29k
#line 795 "MachineIndependent/glslang.y"
6624
1.29k
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6625
1.29k
#line 6626 "MachineIndependent/glslang_tab.cpp"
6626
1.29k
    break;
6627
6628
0
  case 78: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression  */
6629
0
#line 796 "MachineIndependent/glslang.y"
6630
0
                                                            {
6631
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6632
0
        if ((yyval.interm.intermTypedNode) == 0)
6633
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6634
0
    }
6635
0
#line 6636 "MachineIndependent/glslang_tab.cpp"
6636
0
    break;
6637
6638
1.29k
  case 79: /* logical_or_expression: logical_xor_expression  */
6639
1.29k
#line 804 "MachineIndependent/glslang.y"
6640
1.29k
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6641
1.29k
#line 6642 "MachineIndependent/glslang_tab.cpp"
6642
1.29k
    break;
6643
6644
0
  case 80: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression  */
6645
0
#line 805 "MachineIndependent/glslang.y"
6646
0
                                                          {
6647
0
        (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6648
0
        if ((yyval.interm.intermTypedNode) == 0)
6649
0
            (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
6650
0
    }
6651
0
#line 6652 "MachineIndependent/glslang_tab.cpp"
6652
0
    break;
6653
6654
1.29k
  case 81: /* conditional_expression: logical_or_expression  */
6655
1.29k
#line 813 "MachineIndependent/glslang.y"
6656
1.29k
                            { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6657
1.29k
#line 6658 "MachineIndependent/glslang_tab.cpp"
6658
1.29k
    break;
6659
6660
0
  case 82: /* $@1: %empty  */
6661
0
#line 814 "MachineIndependent/glslang.y"
6662
0
                                     {
6663
0
        ++parseContext.controlFlowNestingLevel;
6664
0
    }
6665
0
#line 6666 "MachineIndependent/glslang_tab.cpp"
6666
0
    break;
6667
6668
0
  case 83: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression  */
6669
0
#line 817 "MachineIndependent/glslang.y"
6670
0
                                             {
6671
0
        --parseContext.controlFlowNestingLevel;
6672
0
        parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
6673
0
        parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
6674
0
        parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
6675
0
        parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
6676
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
6677
0
        if ((yyval.interm.intermTypedNode) == 0) {
6678
0
            parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
6679
0
            (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6680
0
        }
6681
0
    }
6682
0
#line 6683 "MachineIndependent/glslang_tab.cpp"
6683
0
    break;
6684
6685
904
  case 84: /* assignment_expression: conditional_expression  */
6686
904
#line 832 "MachineIndependent/glslang.y"
6687
904
                             { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
6688
904
#line 6689 "MachineIndependent/glslang_tab.cpp"
6689
904
    break;
6690
6691
0
  case 85: /* assignment_expression: unary_expression assignment_operator assignment_expression  */
6692
0
#line 833 "MachineIndependent/glslang.y"
6693
0
                                                                 {
6694
0
        parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
6695
0
        parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
6696
0
        parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
6697
0
        parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
6698
0
        parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
6699
0
        parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
6700
0
        (yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
6701
0
        if ((yyval.interm.intermTypedNode) == 0) {
6702
0
            parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
6703
0
            (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
6704
0
        }
6705
0
    }
6706
0
#line 6707 "MachineIndependent/glslang_tab.cpp"
6707
0
    break;
6708
6709
0
  case 86: /* assignment_operator: EQUAL  */
6710
0
#line 849 "MachineIndependent/glslang.y"
6711
0
            {
6712
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6713
0
        (yyval.interm).op = EOpAssign;
6714
0
    }
6715
0
#line 6716 "MachineIndependent/glslang_tab.cpp"
6716
0
    break;
6717
6718
0
  case 87: /* assignment_operator: MUL_ASSIGN  */
6719
0
#line 853 "MachineIndependent/glslang.y"
6720
0
                 {
6721
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6722
0
        (yyval.interm).op = EOpMulAssign;
6723
0
    }
6724
0
#line 6725 "MachineIndependent/glslang_tab.cpp"
6725
0
    break;
6726
6727
0
  case 88: /* assignment_operator: DIV_ASSIGN  */
6728
0
#line 857 "MachineIndependent/glslang.y"
6729
0
                 {
6730
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6731
0
        (yyval.interm).op = EOpDivAssign;
6732
0
    }
6733
0
#line 6734 "MachineIndependent/glslang_tab.cpp"
6734
0
    break;
6735
6736
0
  case 89: /* assignment_operator: MOD_ASSIGN  */
6737
0
#line 861 "MachineIndependent/glslang.y"
6738
0
                 {
6739
0
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
6740
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6741
0
        (yyval.interm).op = EOpModAssign;
6742
0
    }
6743
0
#line 6744 "MachineIndependent/glslang_tab.cpp"
6744
0
    break;
6745
6746
0
  case 90: /* assignment_operator: ADD_ASSIGN  */
6747
0
#line 866 "MachineIndependent/glslang.y"
6748
0
                 {
6749
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6750
0
        (yyval.interm).op = EOpAddAssign;
6751
0
    }
6752
0
#line 6753 "MachineIndependent/glslang_tab.cpp"
6753
0
    break;
6754
6755
0
  case 91: /* assignment_operator: SUB_ASSIGN  */
6756
0
#line 870 "MachineIndependent/glslang.y"
6757
0
                 {
6758
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6759
0
        (yyval.interm).op = EOpSubAssign;
6760
0
    }
6761
0
#line 6762 "MachineIndependent/glslang_tab.cpp"
6762
0
    break;
6763
6764
0
  case 92: /* assignment_operator: LEFT_ASSIGN  */
6765
0
#line 874 "MachineIndependent/glslang.y"
6766
0
                  {
6767
0
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
6768
0
        (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
6769
0
    }
6770
0
#line 6771 "MachineIndependent/glslang_tab.cpp"
6771
0
    break;
6772
6773
0
  case 93: /* assignment_operator: RIGHT_ASSIGN  */
6774
0
#line 878 "MachineIndependent/glslang.y"
6775
0
                   {
6776
0
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
6777
0
        (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
6778
0
    }
6779
0
#line 6780 "MachineIndependent/glslang_tab.cpp"
6780
0
    break;
6781
6782
0
  case 94: /* assignment_operator: AND_ASSIGN  */
6783
0
#line 882 "MachineIndependent/glslang.y"
6784
0
                 {
6785
0
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
6786
0
        (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
6787
0
    }
6788
0
#line 6789 "MachineIndependent/glslang_tab.cpp"
6789
0
    break;
6790
6791
0
  case 95: /* assignment_operator: XOR_ASSIGN  */
6792
0
#line 886 "MachineIndependent/glslang.y"
6793
0
                 {
6794
0
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
6795
0
        (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
6796
0
    }
6797
0
#line 6798 "MachineIndependent/glslang_tab.cpp"
6798
0
    break;
6799
6800
0
  case 96: /* assignment_operator: OR_ASSIGN  */
6801
0
#line 890 "MachineIndependent/glslang.y"
6802
0
                {
6803
0
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
6804
0
        (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
6805
0
    }
6806
0
#line 6807 "MachineIndependent/glslang_tab.cpp"
6807
0
    break;
6808
6809
0
  case 97: /* expression: assignment_expression  */
6810
0
#line 897 "MachineIndependent/glslang.y"
6811
0
                            {
6812
0
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6813
0
    }
6814
0
#line 6815 "MachineIndependent/glslang_tab.cpp"
6815
0
    break;
6816
6817
0
  case 98: /* expression: expression COMMA assignment_expression  */
6818
0
#line 900 "MachineIndependent/glslang.y"
6819
0
                                             {
6820
0
        parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
6821
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
6822
0
        if ((yyval.interm.intermTypedNode) == 0) {
6823
0
            parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()), (yyvsp[0].interm.intermTypedNode)->getCompleteString(parseContext.intermediate.getEnhancedMsgs()));
6824
0
            (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6825
0
        }
6826
0
    }
6827
0
#line 6828 "MachineIndependent/glslang_tab.cpp"
6828
0
    break;
6829
6830
2
  case 99: /* constant_expression: conditional_expression  */
6831
2
#line 911 "MachineIndependent/glslang.y"
6832
2
                             {
6833
2
        parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
6834
2
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
6835
2
    }
6836
2
#line 6837 "MachineIndependent/glslang_tab.cpp"
6837
2
    break;
6838
6839
55.4k
  case 100: /* declaration: function_prototype SEMICOLON  */
6840
55.4k
#line 918 "MachineIndependent/glslang.y"
6841
55.4k
                                   {
6842
55.4k
        parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6843
55.4k
        (yyval.interm.intermNode) = 0;
6844
        // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6845
55.4k
    }
6846
55.4k
#line 6847 "MachineIndependent/glslang_tab.cpp"
6847
55.4k
    break;
6848
6849
0
  case 101: /* declaration: spirv_instruction_qualifier function_prototype SEMICOLON  */
6850
0
#line 923 "MachineIndependent/glslang.y"
6851
0
                                                               {
6852
0
        parseContext.requireExtensions((yyvsp[-1].interm).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V instruction qualifier");
6853
0
        (yyvsp[-1].interm).function->setSpirvInstruction(*(yyvsp[-2].interm.spirvInst)); // Attach SPIR-V intruction qualifier
6854
0
        parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
6855
0
        (yyval.interm.intermNode) = 0;
6856
        // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
6857
0
    }
6858
0
#line 6859 "MachineIndependent/glslang_tab.cpp"
6859
0
    break;
6860
6861
0
  case 102: /* declaration: spirv_execution_mode_qualifier SEMICOLON  */
6862
0
#line 930 "MachineIndependent/glslang.y"
6863
0
                                               {
6864
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "SPIR-V execution mode qualifier");
6865
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V execution mode qualifier");
6866
0
        (yyval.interm.intermNode) = 0;
6867
0
    }
6868
0
#line 6869 "MachineIndependent/glslang_tab.cpp"
6869
0
    break;
6870
6871
2.23k
  case 103: /* declaration: init_declarator_list SEMICOLON  */
6872
2.23k
#line 935 "MachineIndependent/glslang.y"
6873
2.23k
                                     {
6874
2.23k
        if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
6875
0
            (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
6876
2.23k
        (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
6877
2.23k
    }
6878
2.23k
#line 6879 "MachineIndependent/glslang_tab.cpp"
6879
2.23k
    break;
6880
6881
0
  case 104: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON  */
6882
0
#line 940 "MachineIndependent/glslang.y"
6883
0
                                                             {
6884
0
        parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
6885
        // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
6886
0
        parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
6887
0
        parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
6888
0
        (yyval.interm.intermNode) = 0;
6889
0
    }
6890
0
#line 6891 "MachineIndependent/glslang_tab.cpp"
6891
0
    break;
6892
6893
6
  case 105: /* declaration: block_structure SEMICOLON  */
6894
6
#line 947 "MachineIndependent/glslang.y"
6895
6
                                {
6896
6
        (yyval.interm.intermNode) = parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
6897
6
    }
6898
6
#line 6899 "MachineIndependent/glslang_tab.cpp"
6899
6
    break;
6900
6901
0
  case 106: /* declaration: block_structure IDENTIFIER SEMICOLON  */
6902
0
#line 950 "MachineIndependent/glslang.y"
6903
0
                                           {
6904
0
        (yyval.interm.intermNode) = parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
6905
0
    }
6906
0
#line 6907 "MachineIndependent/glslang_tab.cpp"
6907
0
    break;
6908
6909
12
  case 107: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON  */
6910
12
#line 953 "MachineIndependent/glslang.y"
6911
12
                                                           {
6912
12
        (yyval.interm.intermNode) = parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
6913
12
    }
6914
12
#line 6915 "MachineIndependent/glslang_tab.cpp"
6915
12
    break;
6916
6917
0
  case 108: /* declaration: type_qualifier SEMICOLON  */
6918
0
#line 956 "MachineIndependent/glslang.y"
6919
0
                               {
6920
0
        parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
6921
0
        parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
6922
0
        (yyval.interm.intermNode) = 0;
6923
0
    }
6924
0
#line 6925 "MachineIndependent/glslang_tab.cpp"
6925
0
    break;
6926
6927
0
  case 109: /* declaration: type_qualifier identifier_list SEMICOLON  */
6928
0
#line 961 "MachineIndependent/glslang.y"
6929
0
                                               {
6930
0
        parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
6931
0
        parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
6932
0
        (yyval.interm.intermNode) = 0;
6933
0
    }
6934
0
#line 6935 "MachineIndependent/glslang_tab.cpp"
6935
0
    break;
6936
6937
18
  case 110: /* $@2: %empty  */
6938
18
#line 969 "MachineIndependent/glslang.y"
6939
18
                                           { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
6940
18
#line 6941 "MachineIndependent/glslang_tab.cpp"
6941
18
    break;
6942
6943
18
  case 111: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE  */
6944
18
#line 969 "MachineIndependent/glslang.y"
6945
18
                                                                                                                          {
6946
18
        --parseContext.blockNestingLevel;
6947
18
        parseContext.blockName = (yyvsp[-4].lex).string;
6948
18
        parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
6949
18
        parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
6950
18
        parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
6951
18
        (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
6952
18
        (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
6953
18
    }
6954
18
#line 6955 "MachineIndependent/glslang_tab.cpp"
6955
18
    break;
6956
6957
0
  case 112: /* identifier_list: IDENTIFIER  */
6958
0
#line 981 "MachineIndependent/glslang.y"
6959
0
                 {
6960
0
        (yyval.interm.identifierList) = new TIdentifierList;
6961
0
        (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6962
0
    }
6963
0
#line 6964 "MachineIndependent/glslang_tab.cpp"
6964
0
    break;
6965
6966
0
  case 113: /* identifier_list: identifier_list COMMA IDENTIFIER  */
6967
0
#line 985 "MachineIndependent/glslang.y"
6968
0
                                       {
6969
0
        (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
6970
0
        (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
6971
0
    }
6972
0
#line 6973 "MachineIndependent/glslang_tab.cpp"
6973
0
    break;
6974
6975
55.4k
  case 114: /* function_prototype: function_declarator RIGHT_PAREN  */
6976
55.4k
#line 992 "MachineIndependent/glslang.y"
6977
55.4k
                                       {
6978
55.4k
        (yyval.interm).function = (yyvsp[-1].interm.function);
6979
55.4k
        if (parseContext.compileOnly) (yyval.interm).function->setExport();
6980
55.4k
        (yyval.interm).loc = (yyvsp[0].lex).loc;
6981
55.4k
    }
6982
55.4k
#line 6983 "MachineIndependent/glslang_tab.cpp"
6983
55.4k
    break;
6984
6985
0
  case 115: /* function_prototype: function_declarator RIGHT_PAREN attribute  */
6986
0
#line 997 "MachineIndependent/glslang.y"
6987
0
                                                {
6988
0
        (yyval.interm).function = (yyvsp[-2].interm.function);
6989
0
        if (parseContext.compileOnly) (yyval.interm).function->setExport();
6990
0
        (yyval.interm).loc = (yyvsp[-1].lex).loc;
6991
0
        const char * extensions[3] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence, E_GL_EXT_function_control_attributes };
6992
0
        parseContext.requireExtensions((yyvsp[-1].lex).loc, 3, extensions, "attribute");
6993
0
        parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyval.interm).function, *(yyvsp[0].interm.attributes));
6994
0
    }
6995
0
#line 6996 "MachineIndependent/glslang_tab.cpp"
6996
0
    break;
6997
6998
0
  case 116: /* function_prototype: attribute function_declarator RIGHT_PAREN  */
6999
0
#line 1005 "MachineIndependent/glslang.y"
7000
0
                                                {
7001
0
        (yyval.interm).function = (yyvsp[-1].interm.function);
7002
0
        if (parseContext.compileOnly) (yyval.interm).function->setExport();
7003
0
        (yyval.interm).loc = (yyvsp[0].lex).loc;
7004
0
        const char * extensions[3] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence, E_GL_EXT_function_control_attributes };
7005
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 3, extensions, "attribute");
7006
0
        parseContext.handleFunctionAttributes((yyvsp[0].lex).loc, *(yyval.interm).function, *(yyvsp[-2].interm.attributes));
7007
0
    }
7008
0
#line 7009 "MachineIndependent/glslang_tab.cpp"
7009
0
    break;
7010
7011
0
  case 117: /* function_prototype: attribute function_declarator RIGHT_PAREN attribute  */
7012
0
#line 1013 "MachineIndependent/glslang.y"
7013
0
                                                          {
7014
0
        (yyval.interm).function = (yyvsp[-2].interm.function);
7015
0
        if (parseContext.compileOnly) (yyval.interm).function->setExport();
7016
0
        (yyval.interm).loc = (yyvsp[-1].lex).loc;
7017
0
        const char * extensions[3] = { E_GL_EXT_subgroup_uniform_control_flow, E_GL_EXT_maximal_reconvergence, E_GL_EXT_function_control_attributes };
7018
0
        parseContext.requireExtensions((yyvsp[-1].lex).loc, 3, extensions, "attribute");
7019
0
        parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyval.interm).function, *(yyvsp[-3].interm.attributes));
7020
0
        parseContext.handleFunctionAttributes((yyvsp[-1].lex).loc, *(yyval.interm).function, *(yyvsp[0].interm.attributes));
7021
0
    }
7022
0
#line 7023 "MachineIndependent/glslang_tab.cpp"
7023
0
    break;
7024
7025
317
  case 118: /* function_declarator: function_header  */
7026
317
#line 1025 "MachineIndependent/glslang.y"
7027
317
                      {
7028
317
        (yyval.interm.function) = (yyvsp[0].interm.function);
7029
317
    }
7030
317
#line 7031 "MachineIndependent/glslang_tab.cpp"
7031
317
    break;
7032
7033
55.1k
  case 119: /* function_declarator: function_header_with_parameters  */
7034
55.1k
#line 1028 "MachineIndependent/glslang.y"
7035
55.1k
                                      {
7036
55.1k
        (yyval.interm.function) = (yyvsp[0].interm.function);
7037
55.1k
    }
7038
55.1k
#line 7039 "MachineIndependent/glslang_tab.cpp"
7039
55.1k
    break;
7040
7041
55.1k
  case 120: /* function_header_with_parameters: function_header parameter_declaration  */
7042
55.1k
#line 1035 "MachineIndependent/glslang.y"
7043
55.1k
                                            {
7044
        // Add the parameter
7045
55.1k
        (yyval.interm.function) = (yyvsp[-1].interm.function);
7046
55.1k
        if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
7047
55.0k
        {
7048
55.0k
            if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
7049
55.0k
                (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
7050
0
            else
7051
0
                parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-1].interm.function), (yyvsp[0].interm).param);
7052
55.0k
        }
7053
100
        else
7054
100
            delete (yyvsp[0].interm).param.type;
7055
55.1k
    }
7056
55.1k
#line 7057 "MachineIndependent/glslang_tab.cpp"
7057
55.1k
    break;
7058
7059
72.5k
  case 121: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration  */
7060
72.5k
#line 1048 "MachineIndependent/glslang.y"
7061
72.5k
                                                                  {
7062
        //
7063
        // Only first parameter of one-parameter functions can be void
7064
        // The check for named parameters not being void is done in parameter_declarator
7065
        //
7066
72.5k
        if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
7067
            //
7068
            // This parameter > first is void
7069
            //
7070
0
            parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
7071
0
            delete (yyvsp[0].interm).param.type;
7072
72.5k
        } else {
7073
            // Add the parameter
7074
72.5k
            (yyval.interm.function) = (yyvsp[-2].interm.function);
7075
72.5k
            if (!(parseContext.spvVersion.vulkan > 0 && parseContext.spvVersion.vulkanRelaxed))
7076
72.5k
                (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
7077
0
            else
7078
0
                parseContext.vkRelaxedRemapFunctionParameter((yyvsp[-2].interm.function), (yyvsp[0].interm).param);
7079
72.5k
        }
7080
72.5k
    }
7081
72.5k
#line 7082 "MachineIndependent/glslang_tab.cpp"
7082
72.5k
    break;
7083
7084
120
  case 122: /* function_header_with_parameters: function_header_with_parameters COMMA DOT DOT DOT  */
7085
120
#line 1068 "MachineIndependent/glslang.y"
7086
120
                                                        {
7087
120
        (yyval.interm.function) = (yyvsp[-4].interm.function);
7088
120
        parseContext.makeVariadic((yyvsp[-4].interm.function), (yyvsp[-2].lex).loc);
7089
120
    }
7090
120
#line 7091 "MachineIndependent/glslang_tab.cpp"
7091
120
    break;
7092
7093
55.4k
  case 123: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN  */
7094
55.4k
#line 1075 "MachineIndependent/glslang.y"
7095
55.4k
                                                 {
7096
55.4k
        if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
7097
0
            parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
7098
0
                               GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
7099
0
        }
7100
55.4k
        if ((yyvsp[-2].interm.type).arraySizes)
7101
0
            parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
7102
7103
        // Add the function as a prototype after parsing it (we do not support recursion)
7104
55.4k
        TFunction *function;
7105
55.4k
        TType type((yyvsp[-2].interm.type));
7106
7107
        // Potentially rename shader entry point function.  No-op most of the time.
7108
55.4k
        parseContext.renameShaderFunction((yyvsp[-1].lex).string);
7109
7110
        // Make the function
7111
55.4k
        function = new TFunction((yyvsp[-1].lex).string, type);
7112
55.4k
        (yyval.interm.function) = function;
7113
55.4k
    }
7114
55.4k
#line 7115 "MachineIndependent/glslang_tab.cpp"
7115
55.4k
    break;
7116
7117
16.8k
  case 124: /* parameter_declarator: type_specifier IDENTIFIER  */
7118
16.8k
#line 1098 "MachineIndependent/glslang.y"
7119
16.8k
                                {
7120
16.8k
        if ((yyvsp[-1].interm.type).arraySizes) {
7121
1.95k
            parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
7122
1.95k
            parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
7123
1.95k
            parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
7124
1.95k
        }
7125
16.8k
        if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
7126
0
            parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
7127
0
        }
7128
16.8k
        parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
7129
7130
16.8k
        TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type)), {}};
7131
16.8k
        (yyval.interm).loc = (yyvsp[0].lex).loc;
7132
16.8k
        (yyval.interm).param = param;
7133
16.8k
    }
7134
16.8k
#line 7135 "MachineIndependent/glslang_tab.cpp"
7135
16.8k
    break;
7136
7137
436
  case 125: /* parameter_declarator: type_specifier IDENTIFIER array_specifier  */
7138
436
#line 1113 "MachineIndependent/glslang.y"
7139
436
                                                {
7140
436
        if ((yyvsp[-2].interm.type).arraySizes) {
7141
0
            parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
7142
0
            parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
7143
0
            parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
7144
0
        }
7145
436
        TType* type = new TType((yyvsp[-2].interm.type));
7146
436
        type->transferArraySizes((yyvsp[0].interm).arraySizes);
7147
436
        type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
7148
7149
436
        parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
7150
436
        parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
7151
436
        parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
7152
7153
436
        TParameter param = { (yyvsp[-1].lex).string, type, {} };
7154
7155
436
        (yyval.interm).loc = (yyvsp[-1].lex).loc;
7156
436
        (yyval.interm).param = param;
7157
436
    }
7158
436
#line 7159 "MachineIndependent/glslang_tab.cpp"
7159
436
    break;
7160
7161
120
  case 126: /* parameter_declarator: type_specifier IDENTIFIER EQUAL initializer  */
7162
120
#line 1132 "MachineIndependent/glslang.y"
7163
120
                                                  {
7164
120
        TParameter param = parseContext.getParamWithDefault((yyvsp[-3].interm.type), (yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
7165
120
        (yyval.interm).loc = (yyvsp[-2].lex).loc;
7166
120
        (yyval.interm).param = param;
7167
120
    }
7168
120
#line 7169 "MachineIndependent/glslang_tab.cpp"
7169
120
    break;
7170
7171
2.03k
  case 127: /* parameter_declaration: type_qualifier parameter_declarator  */
7172
2.03k
#line 1143 "MachineIndependent/glslang.y"
7173
2.03k
                                          {
7174
2.03k
        (yyval.interm) = (yyvsp[0].interm);
7175
2.03k
        if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
7176
34
            (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
7177
2.03k
        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->hasTypeParameter());
7178
7179
2.03k
        parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
7180
2.03k
        parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
7181
2.03k
        parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
7182
7183
2.03k
    }
7184
2.03k
#line 7185 "MachineIndependent/glslang_tab.cpp"
7185
2.03k
    break;
7186
7187
15.3k
  case 128: /* parameter_declaration: parameter_declarator  */
7188
15.3k
#line 1154 "MachineIndependent/glslang.y"
7189
15.3k
                           {
7190
15.3k
        (yyval.interm) = (yyvsp[0].interm);
7191
7192
15.3k
        parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
7193
15.3k
        parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
7194
15.3k
        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->hasTypeParameter());
7195
15.3k
    }
7196
15.3k
#line 7197 "MachineIndependent/glslang_tab.cpp"
7197
15.3k
    break;
7198
7199
7.47k
  case 129: /* parameter_declaration: type_qualifier parameter_type_specifier  */
7200
7.47k
#line 1164 "MachineIndependent/glslang.y"
7201
7.47k
                                              {
7202
7.47k
        (yyval.interm) = (yyvsp[0].interm);
7203
7.47k
        if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
7204
942
            (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
7205
7.47k
        parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->hasTypeParameter());
7206
7207
7.47k
        parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
7208
7.47k
        parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
7209
7.47k
        parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
7210
7.47k
    }
7211
7.47k
#line 7212 "MachineIndependent/glslang_tab.cpp"
7212
7.47k
    break;
7213
7214
102k
  case 130: /* parameter_declaration: parameter_type_specifier  */
7215
102k
#line 1174 "MachineIndependent/glslang.y"
7216
102k
                               {
7217
102k
        (yyval.interm) = (yyvsp[0].interm);
7218
7219
102k
        parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
7220
102k
        parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
7221
102k
        parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier(), (yyval.interm).param.type->hasTypeParameter());
7222
102k
    }
7223
102k
#line 7224 "MachineIndependent/glslang_tab.cpp"
7224
102k
    break;
7225
7226
110k
  case 131: /* parameter_type_specifier: type_specifier  */
7227
110k
#line 1184 "MachineIndependent/glslang.y"
7228
110k
                     {
7229
110k
        TParameter param = { 0, new TType((yyvsp[0].interm.type)), {} };
7230
110k
        (yyval.interm).param = param;
7231
110k
        if ((yyvsp[0].interm.type).arraySizes)
7232
376
            parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
7233
110k
    }
7234
110k
#line 7235 "MachineIndependent/glslang_tab.cpp"
7235
110k
    break;
7236
7237
2.27k
  case 132: /* init_declarator_list: single_declaration  */
7238
2.27k
#line 1193 "MachineIndependent/glslang.y"
7239
2.27k
                         {
7240
2.27k
        (yyval.interm) = (yyvsp[0].interm);
7241
2.27k
    }
7242
2.27k
#line 7243 "MachineIndependent/glslang_tab.cpp"
7243
2.27k
    break;
7244
7245
0
  case 133: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER  */
7246
0
#line 1196 "MachineIndependent/glslang.y"
7247
0
                                            {
7248
0
        (yyval.interm) = (yyvsp[-2].interm);
7249
0
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
7250
0
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, declNode, (yyvsp[0].lex).loc);
7251
0
    }
7252
0
#line 7253 "MachineIndependent/glslang_tab.cpp"
7253
0
    break;
7254
7255
0
  case 134: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier  */
7256
0
#line 1201 "MachineIndependent/glslang.y"
7257
0
                                                            {
7258
0
        (yyval.interm) = (yyvsp[-3].interm);
7259
0
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
7260
0
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-3].interm).intermNode, declNode, (yyvsp[-1].lex).loc);
7261
0
    }
7262
0
#line 7263 "MachineIndependent/glslang_tab.cpp"
7263
0
    break;
7264
7265
0
  case 135: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer  */
7266
0
#line 1206 "MachineIndependent/glslang.y"
7267
0
                                                                              {
7268
0
        (yyval.interm).type = (yyvsp[-5].interm).type;
7269
0
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
7270
0
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, declNode, (yyvsp[-1].lex).loc);
7271
0
    }
7272
0
#line 7273 "MachineIndependent/glslang_tab.cpp"
7273
0
    break;
7274
7275
0
  case 136: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer  */
7276
0
#line 1211 "MachineIndependent/glslang.y"
7277
0
                                                              {
7278
0
        (yyval.interm).type = (yyvsp[-4].interm).type;
7279
0
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
7280
0
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, declNode, (yyvsp[-1].lex).loc);
7281
0
    }
7282
0
#line 7283 "MachineIndependent/glslang_tab.cpp"
7283
0
    break;
7284
7285
144
  case 137: /* single_declaration: fully_specified_type  */
7286
144
#line 1219 "MachineIndependent/glslang.y"
7287
144
                           {
7288
144
        (yyval.interm).type = (yyvsp[0].interm.type);
7289
144
        (yyval.interm).intermNode = 0;
7290
144
        parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
7291
144
    }
7292
144
#line 7293 "MachineIndependent/glslang_tab.cpp"
7293
144
    break;
7294
7295
1.33k
  case 138: /* single_declaration: fully_specified_type IDENTIFIER  */
7296
1.33k
#line 1224 "MachineIndependent/glslang.y"
7297
1.33k
                                      {
7298
1.33k
        (yyval.interm).type = (yyvsp[-1].interm.type);
7299
1.33k
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
7300
1.33k
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[0].lex).loc);
7301
7302
1.33k
    }
7303
1.33k
#line 7304 "MachineIndependent/glslang_tab.cpp"
7304
1.33k
    break;
7305
7306
48
  case 139: /* single_declaration: fully_specified_type IDENTIFIER array_specifier  */
7307
48
#line 1230 "MachineIndependent/glslang.y"
7308
48
                                                      {
7309
48
        (yyval.interm).type = (yyvsp[-2].interm.type);
7310
48
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
7311
48
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[-1].lex).loc);
7312
48
    }
7313
48
#line 7314 "MachineIndependent/glslang_tab.cpp"
7314
48
    break;
7315
7316
0
  case 140: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer  */
7317
0
#line 1235 "MachineIndependent/glslang.y"
7318
0
                                                                        {
7319
0
        (yyval.interm).type = (yyvsp[-4].interm.type);
7320
0
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
7321
0
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[-3].lex).loc);
7322
0
    }
7323
0
#line 7324 "MachineIndependent/glslang_tab.cpp"
7324
0
    break;
7325
7326
754
  case 141: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer  */
7327
754
#line 1240 "MachineIndependent/glslang.y"
7328
754
                                                        {
7329
754
        (yyval.interm).type = (yyvsp[-3].interm.type);
7330
754
        TIntermNode* declNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
7331
754
        (yyval.interm).intermNode = parseContext.intermediate.growAggregate(nullptr, declNode, (yyvsp[-2].lex).loc);
7332
754
    }
7333
754
#line 7334 "MachineIndependent/glslang_tab.cpp"
7334
754
    break;
7335
7336
54.0k
  case 142: /* fully_specified_type: type_specifier  */
7337
54.0k
#line 1249 "MachineIndependent/glslang.y"
7338
54.0k
                     {
7339
54.0k
        (yyval.interm.type) = (yyvsp[0].interm.type);
7340
7341
54.0k
        parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
7342
54.0k
        if ((yyvsp[0].interm.type).arraySizes) {
7343
0
            parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
7344
0
            parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
7345
0
        }
7346
54.0k
        parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier, (yyval.interm.type).hasTypeParameter());
7347
54.0k
    }
7348
54.0k
#line 7349 "MachineIndependent/glslang_tab.cpp"
7349
54.0k
    break;
7350
7351
3.68k
  case 143: /* fully_specified_type: type_qualifier type_specifier  */
7352
3.68k
#line 1259 "MachineIndependent/glslang.y"
7353
3.68k
                                     {
7354
3.68k
        parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, false, &(yyvsp[0].interm.type));
7355
3.68k
        parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
7356
7357
3.68k
        if ((yyvsp[0].interm.type).arraySizes) {
7358
0
            parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
7359
0
            parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
7360
0
        }
7361
7362
3.68k
        if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
7363
0
            (yyvsp[0].interm.type).arraySizes = nullptr;
7364
7365
3.68k
        parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
7366
3.68k
        (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
7367
3.68k
        parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
7368
3.68k
        parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier, (yyvsp[0].interm.type).hasTypeParameter());
7369
7370
3.68k
        (yyval.interm.type) = (yyvsp[0].interm.type);
7371
7372
3.68k
        if (! (yyval.interm.type).qualifier.isInterpolation() &&
7373
3.64k
            ((parseContext.language == EShLangVertex   && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
7374
3.62k
             (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
7375
31
            (yyval.interm.type).qualifier.smooth = true;
7376
3.68k
    }
7377
3.68k
#line 7378 "MachineIndependent/glslang_tab.cpp"
7378
3.68k
    break;
7379
7380
0
  case 144: /* invariant_qualifier: INVARIANT  */
7381
0
#line 1286 "MachineIndependent/glslang.y"
7382
0
                {
7383
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
7384
0
        parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
7385
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7386
0
        (yyval.interm.type).qualifier.invariant = true;
7387
0
    }
7388
0
#line 7389 "MachineIndependent/glslang_tab.cpp"
7389
0
    break;
7390
7391
0
  case 145: /* interpolation_qualifier: SMOOTH  */
7392
0
#line 1295 "MachineIndependent/glslang.y"
7393
0
             {
7394
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
7395
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
7396
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
7397
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7398
0
        (yyval.interm.type).qualifier.smooth = true;
7399
0
    }
7400
0
#line 7401 "MachineIndependent/glslang_tab.cpp"
7401
0
    break;
7402
7403
35
  case 146: /* interpolation_qualifier: FLAT  */
7404
35
#line 1302 "MachineIndependent/glslang.y"
7405
35
           {
7406
35
        parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
7407
35
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
7408
35
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
7409
35
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7410
35
        (yyval.interm.type).qualifier.flat = true;
7411
35
    }
7412
35
#line 7413 "MachineIndependent/glslang_tab.cpp"
7413
35
    break;
7414
7415
0
  case 147: /* interpolation_qualifier: NOPERSPECTIVE  */
7416
0
#line 1309 "MachineIndependent/glslang.y"
7417
0
                    {
7418
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
7419
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
7420
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
7421
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7422
0
        (yyval.interm.type).qualifier.nopersp = true;
7423
0
    }
7424
0
#line 7425 "MachineIndependent/glslang_tab.cpp"
7425
0
    break;
7426
7427
0
  case 148: /* interpolation_qualifier: EXPLICITINTERPAMD  */
7428
0
#line 1316 "MachineIndependent/glslang.y"
7429
0
                        {
7430
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
7431
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
7432
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
7433
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7434
0
        (yyval.interm.type).qualifier.explicitInterp = true;
7435
0
    }
7436
0
#line 7437 "MachineIndependent/glslang_tab.cpp"
7437
0
    break;
7438
7439
0
  case 149: /* interpolation_qualifier: PERVERTEXNV  */
7440
0
#line 1323 "MachineIndependent/glslang.y"
7441
0
                  {
7442
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
7443
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
7444
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
7445
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
7446
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7447
0
        (yyval.interm.type).qualifier.pervertexNV = true;
7448
0
    }
7449
0
#line 7450 "MachineIndependent/glslang_tab.cpp"
7450
0
    break;
7451
7452
0
  case 150: /* interpolation_qualifier: PERVERTEXEXT  */
7453
0
#line 1331 "MachineIndependent/glslang.y"
7454
0
                   {
7455
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexEXT");
7456
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
7457
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
7458
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_EXT_fragment_shader_barycentric, "fragment shader barycentric");
7459
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7460
0
        (yyval.interm.type).qualifier.pervertexEXT = true;
7461
0
    }
7462
0
#line 7463 "MachineIndependent/glslang_tab.cpp"
7463
0
    break;
7464
7465
2
  case 151: /* interpolation_qualifier: PERPRIMITIVENV  */
7466
2
#line 1339 "MachineIndependent/glslang.y"
7467
2
                     {
7468
        // No need for profile version or extension check. Shader stage already checks both.
7469
2
        parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
7470
2
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshMask), "perprimitiveNV");
7471
        // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
7472
2
        if (parseContext.language == EShLangFragment)
7473
0
            parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
7474
2
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7475
2
        (yyval.interm.type).qualifier.perPrimitiveNV = true;
7476
2
    }
7477
2
#line 7478 "MachineIndependent/glslang_tab.cpp"
7478
2
    break;
7479
7480
2
  case 152: /* interpolation_qualifier: PERPRIMITIVEEXT  */
7481
2
#line 1349 "MachineIndependent/glslang.y"
7482
2
                      {
7483
        // No need for profile version or extension check. Shader stage already checks both.
7484
2
        parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveEXT");
7485
2
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshMask), "perprimitiveEXT");
7486
        // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
7487
2
        if (parseContext.language == EShLangFragment)
7488
0
            parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_mesh_shader, "perprimitiveEXT");
7489
2
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7490
2
        (yyval.interm.type).qualifier.perPrimitiveNV = true;
7491
2
    }
7492
2
#line 7493 "MachineIndependent/glslang_tab.cpp"
7493
2
    break;
7494
7495
10
  case 153: /* interpolation_qualifier: PERVIEWNV  */
7496
10
#line 1359 "MachineIndependent/glslang.y"
7497
10
                {
7498
        // No need for profile version or extension check. Shader stage already checks both.
7499
10
        parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
7500
10
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangMesh, "perviewNV");
7501
10
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7502
10
        (yyval.interm.type).qualifier.perViewNV = true;
7503
10
    }
7504
10
#line 7505 "MachineIndependent/glslang_tab.cpp"
7505
10
    break;
7506
7507
0
  case 154: /* interpolation_qualifier: PERTASKNV  */
7508
0
#line 1366 "MachineIndependent/glslang.y"
7509
0
                {
7510
        // No need for profile version or extension check. Shader stage already checks both.
7511
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
7512
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask), "taskNV");
7513
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7514
0
        (yyval.interm.type).qualifier.perTaskNV = true;
7515
0
    }
7516
0
#line 7517 "MachineIndependent/glslang_tab.cpp"
7517
0
    break;
7518
7519
0
  case 155: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN  */
7520
0
#line 1376 "MachineIndependent/glslang.y"
7521
0
                                                             {
7522
0
        (yyval.interm.type) = (yyvsp[-1].interm.type);
7523
0
    }
7524
0
#line 7525 "MachineIndependent/glslang_tab.cpp"
7525
0
    break;
7526
7527
0
  case 156: /* layout_qualifier_id_list: layout_qualifier_id  */
7528
0
#line 1382 "MachineIndependent/glslang.y"
7529
0
                          {
7530
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7531
0
    }
7532
0
#line 7533 "MachineIndependent/glslang_tab.cpp"
7533
0
    break;
7534
7535
0
  case 157: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id  */
7536
0
#line 1385 "MachineIndependent/glslang.y"
7537
0
                                                         {
7538
0
        (yyval.interm.type) = (yyvsp[-2].interm.type);
7539
0
        (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
7540
0
        parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
7541
0
    }
7542
0
#line 7543 "MachineIndependent/glslang_tab.cpp"
7543
0
    break;
7544
7545
0
  case 158: /* layout_qualifier_id: IDENTIFIER  */
7546
0
#line 1392 "MachineIndependent/glslang.y"
7547
0
                 {
7548
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7549
0
        parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
7550
0
    }
7551
0
#line 7552 "MachineIndependent/glslang_tab.cpp"
7552
0
    break;
7553
7554
0
  case 159: /* layout_qualifier_id: IDENTIFIER EQUAL assignment_expression  */
7555
0
#line 1396 "MachineIndependent/glslang.y"
7556
0
                                             {
7557
0
        (yyval.interm.type).init((yyvsp[-2].lex).loc);
7558
0
        parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
7559
0
    }
7560
0
#line 7561 "MachineIndependent/glslang_tab.cpp"
7561
0
    break;
7562
7563
0
  case 160: /* layout_qualifier_id: SHARED  */
7564
0
#line 1400 "MachineIndependent/glslang.y"
7565
0
             { // because "shared" is both an identifier and a keyword
7566
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7567
0
        TString strShared("shared");
7568
0
        parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
7569
0
    }
7570
0
#line 7571 "MachineIndependent/glslang_tab.cpp"
7571
0
    break;
7572
7573
0
  case 161: /* precise_qualifier: PRECISE  */
7574
0
#line 1408 "MachineIndependent/glslang.y"
7575
0
              {
7576
0
        parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
7577
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
7578
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7579
0
        (yyval.interm.type).qualifier.noContraction = true;
7580
0
    }
7581
0
#line 7582 "MachineIndependent/glslang_tab.cpp"
7582
0
    break;
7583
7584
13.5k
  case 162: /* type_qualifier: single_type_qualifier  */
7585
13.5k
#line 1417 "MachineIndependent/glslang.y"
7586
13.5k
                            {
7587
13.5k
        (yyval.interm.type) = (yyvsp[0].interm.type);
7588
13.5k
    }
7589
13.5k
#line 7590 "MachineIndependent/glslang_tab.cpp"
7590
13.5k
    break;
7591
7592
10.5k
  case 163: /* type_qualifier: type_qualifier single_type_qualifier  */
7593
10.5k
#line 1420 "MachineIndependent/glslang.y"
7594
10.5k
                                           {
7595
10.5k
        (yyval.interm.type) = (yyvsp[-1].interm.type);
7596
10.5k
        if ((yyval.interm.type).basicType == EbtVoid)
7597
10.5k
            (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
7598
7599
10.5k
        (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
7600
10.5k
        parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
7601
10.5k
    }
7602
10.5k
#line 7603 "MachineIndependent/glslang_tab.cpp"
7603
10.5k
    break;
7604
7605
18.7k
  case 164: /* single_type_qualifier: storage_qualifier  */
7606
18.7k
#line 1431 "MachineIndependent/glslang.y"
7607
18.7k
                        {
7608
18.7k
        (yyval.interm.type) = (yyvsp[0].interm.type);
7609
18.7k
    }
7610
18.7k
#line 7611 "MachineIndependent/glslang_tab.cpp"
7611
18.7k
    break;
7612
7613
0
  case 165: /* single_type_qualifier: layout_qualifier  */
7614
0
#line 1434 "MachineIndependent/glslang.y"
7615
0
                       {
7616
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7617
0
    }
7618
0
#line 7619 "MachineIndependent/glslang_tab.cpp"
7619
0
    break;
7620
7621
5.30k
  case 166: /* single_type_qualifier: precision_qualifier  */
7622
5.30k
#line 1437 "MachineIndependent/glslang.y"
7623
5.30k
                          {
7624
5.30k
        parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
7625
5.30k
        (yyval.interm.type) = (yyvsp[0].interm.type);
7626
5.30k
    }
7627
5.30k
#line 7628 "MachineIndependent/glslang_tab.cpp"
7628
5.30k
    break;
7629
7630
49
  case 167: /* single_type_qualifier: interpolation_qualifier  */
7631
49
#line 1441 "MachineIndependent/glslang.y"
7632
49
                              {
7633
        // allow inheritance of storage qualifier from block declaration
7634
49
        (yyval.interm.type) = (yyvsp[0].interm.type);
7635
49
    }
7636
49
#line 7637 "MachineIndependent/glslang_tab.cpp"
7637
49
    break;
7638
7639
0
  case 168: /* single_type_qualifier: invariant_qualifier  */
7640
0
#line 1445 "MachineIndependent/glslang.y"
7641
0
                          {
7642
        // allow inheritance of storage qualifier from block declaration
7643
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7644
0
    }
7645
0
#line 7646 "MachineIndependent/glslang_tab.cpp"
7646
0
    break;
7647
7648
0
  case 169: /* single_type_qualifier: precise_qualifier  */
7649
0
#line 1449 "MachineIndependent/glslang.y"
7650
0
                        {
7651
        // allow inheritance of storage qualifier from block declaration
7652
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7653
0
    }
7654
0
#line 7655 "MachineIndependent/glslang_tab.cpp"
7655
0
    break;
7656
7657
0
  case 170: /* single_type_qualifier: non_uniform_qualifier  */
7658
0
#line 1453 "MachineIndependent/glslang.y"
7659
0
                            {
7660
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7661
0
    }
7662
0
#line 7663 "MachineIndependent/glslang_tab.cpp"
7663
0
    break;
7664
7665
0
  case 171: /* single_type_qualifier: spirv_storage_class_qualifier  */
7666
0
#line 1456 "MachineIndependent/glslang.y"
7667
0
                                    {
7668
0
        parseContext.globalCheck((yyvsp[0].interm.type).loc, "spirv_storage_class");
7669
0
        parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V storage class qualifier");
7670
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7671
0
    }
7672
0
#line 7673 "MachineIndependent/glslang_tab.cpp"
7673
0
    break;
7674
7675
0
  case 172: /* single_type_qualifier: spirv_decorate_qualifier  */
7676
0
#line 1461 "MachineIndependent/glslang.y"
7677
0
                               {
7678
0
        parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V decorate qualifier");
7679
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
7680
0
    }
7681
0
#line 7682 "MachineIndependent/glslang_tab.cpp"
7682
0
    break;
7683
7684
0
  case 173: /* single_type_qualifier: SPIRV_BY_REFERENCE  */
7685
0
#line 1465 "MachineIndependent/glslang.y"
7686
0
                         {
7687
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_reference");
7688
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7689
0
        (yyval.interm.type).qualifier.setSpirvByReference();
7690
0
    }
7691
0
#line 7692 "MachineIndependent/glslang_tab.cpp"
7692
0
    break;
7693
7694
0
  case 174: /* single_type_qualifier: SPIRV_LITERAL  */
7695
0
#line 1470 "MachineIndependent/glslang.y"
7696
0
                    {
7697
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_spirv_intrinsics, "spirv_by_literal");
7698
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7699
0
        (yyval.interm.type).qualifier.setSpirvLiteral();
7700
0
    }
7701
0
#line 7702 "MachineIndependent/glslang_tab.cpp"
7702
0
    break;
7703
7704
754
  case 175: /* storage_qualifier: CONST  */
7705
754
#line 1478 "MachineIndependent/glslang.y"
7706
754
            {
7707
754
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7708
754
        (yyval.interm.type).qualifier.storage = EvqConst;  // will later turn into EvqConstReadOnly, if the initializer is not constant
7709
754
    }
7710
754
#line 7711 "MachineIndependent/glslang_tab.cpp"
7711
754
    break;
7712
7713
216
  case 176: /* storage_qualifier: INOUT  */
7714
216
#line 1482 "MachineIndependent/glslang.y"
7715
216
            {
7716
216
        parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
7717
216
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7718
216
        (yyval.interm.type).qualifier.storage = EvqInOut;
7719
216
    }
7720
216
#line 7721 "MachineIndependent/glslang_tab.cpp"
7721
216
    break;
7722
7723
766
  case 177: /* storage_qualifier: IN  */
7724
766
#line 1487 "MachineIndependent/glslang.y"
7725
766
         {
7726
766
        parseContext.globalCheck((yyvsp[0].lex).loc, "in");
7727
766
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7728
        // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
7729
766
        (yyval.interm.type).qualifier.storage = EvqIn;
7730
766
    }
7731
766
#line 7732 "MachineIndependent/glslang_tab.cpp"
7732
766
    break;
7733
7734
3.38k
  case 178: /* storage_qualifier: OUT  */
7735
3.38k
#line 1493 "MachineIndependent/glslang.y"
7736
3.38k
          {
7737
3.38k
        parseContext.globalCheck((yyvsp[0].lex).loc, "out");
7738
3.38k
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7739
        // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
7740
3.38k
        (yyval.interm.type).qualifier.storage = EvqOut;
7741
3.38k
    }
7742
3.38k
#line 7743 "MachineIndependent/glslang_tab.cpp"
7743
3.38k
    break;
7744
7745
0
  case 179: /* storage_qualifier: CENTROID  */
7746
0
#line 1499 "MachineIndependent/glslang.y"
7747
0
               {
7748
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
7749
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
7750
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
7751
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7752
0
        (yyval.interm.type).qualifier.centroid = true;
7753
0
    }
7754
0
#line 7755 "MachineIndependent/glslang_tab.cpp"
7755
0
    break;
7756
7757
128
  case 180: /* storage_qualifier: UNIFORM  */
7758
128
#line 1506 "MachineIndependent/glslang.y"
7759
128
              {
7760
128
        parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
7761
128
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7762
128
        (yyval.interm.type).qualifier.storage = EvqUniform;
7763
128
    }
7764
128
#line 7765 "MachineIndependent/glslang_tab.cpp"
7765
128
    break;
7766
7767
0
  case 181: /* storage_qualifier: TILEIMAGEEXT  */
7768
0
#line 1511 "MachineIndependent/glslang.y"
7769
0
                   {
7770
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "tileImageEXT");
7771
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7772
0
        (yyval.interm.type).qualifier.storage = EvqTileImageEXT;
7773
0
    }
7774
0
#line 7775 "MachineIndependent/glslang_tab.cpp"
7775
0
    break;
7776
7777
0
  case 182: /* storage_qualifier: SHARED  */
7778
0
#line 1516 "MachineIndependent/glslang.y"
7779
0
             {
7780
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
7781
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
7782
0
        parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
7783
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshMask | EShLangTaskMask), "shared");
7784
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7785
0
        (yyval.interm.type).qualifier.storage = EvqShared;
7786
0
    }
7787
0
#line 7788 "MachineIndependent/glslang_tab.cpp"
7788
0
    break;
7789
7790
0
  case 183: /* storage_qualifier: BUFFER  */
7791
0
#line 1524 "MachineIndependent/glslang.y"
7792
0
             {
7793
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
7794
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7795
0
        (yyval.interm.type).qualifier.storage = EvqBuffer;
7796
0
    }
7797
0
#line 7798 "MachineIndependent/glslang_tab.cpp"
7798
0
    break;
7799
7800
0
  case 184: /* storage_qualifier: ATTRIBUTE  */
7801
0
#line 1529 "MachineIndependent/glslang.y"
7802
0
                {
7803
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
7804
0
        parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
7805
0
        parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
7806
0
        parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
7807
0
        parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
7808
7809
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
7810
7811
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7812
0
        (yyval.interm.type).qualifier.storage = EvqVaryingIn;
7813
0
    }
7814
0
#line 7815 "MachineIndependent/glslang_tab.cpp"
7815
0
    break;
7816
7817
0
  case 185: /* storage_qualifier: VARYING  */
7818
0
#line 1541 "MachineIndependent/glslang.y"
7819
0
              {
7820
0
        parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
7821
0
        parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
7822
0
        parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
7823
0
        parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
7824
7825
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
7826
7827
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7828
0
        if (parseContext.language == EShLangVertex)
7829
0
            (yyval.interm.type).qualifier.storage = EvqVaryingOut;
7830
0
        else
7831
0
            (yyval.interm.type).qualifier.storage = EvqVaryingIn;
7832
0
    }
7833
0
#line 7834 "MachineIndependent/glslang_tab.cpp"
7834
0
    break;
7835
7836
8
  case 186: /* storage_qualifier: PATCH  */
7837
8
#line 1555 "MachineIndependent/glslang.y"
7838
8
            {
7839
8
        parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
7840
8
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
7841
8
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7842
8
        (yyval.interm.type).qualifier.patch = true;
7843
8
    }
7844
8
#line 7845 "MachineIndependent/glslang_tab.cpp"
7845
8
    break;
7846
7847
0
  case 187: /* storage_qualifier: SAMPLE  */
7848
0
#line 1561 "MachineIndependent/glslang.y"
7849
0
             {
7850
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
7851
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7852
0
        (yyval.interm.type).qualifier.sample = true;
7853
0
    }
7854
0
#line 7855 "MachineIndependent/glslang_tab.cpp"
7855
0
    break;
7856
7857
0
  case 188: /* storage_qualifier: RESOURCEHEAP  */
7858
0
#line 1566 "MachineIndependent/glslang.y"
7859
0
                   {
7860
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "resourceHeap");
7861
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7862
0
        (yyval.interm.type).qualifier.storage = EvqResourceHeap;
7863
0
    }
7864
0
#line 7865 "MachineIndependent/glslang_tab.cpp"
7865
0
    break;
7866
7867
0
  case 189: /* storage_qualifier: SAMPLERHEAP  */
7868
0
#line 1571 "MachineIndependent/glslang.y"
7869
0
                  {
7870
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "samplerHeap");
7871
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7872
0
        (yyval.interm.type).qualifier.storage = EvqSamplerHeap;
7873
0
    }
7874
0
#line 7875 "MachineIndependent/glslang_tab.cpp"
7875
0
    break;
7876
7877
0
  case 190: /* storage_qualifier: HITATTRNV  */
7878
0
#line 1576 "MachineIndependent/glslang.y"
7879
0
                {
7880
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
7881
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7882
0
            | EShLangAnyHitMask), "hitAttributeNV");
7883
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
7884
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7885
0
        (yyval.interm.type).qualifier.storage = EvqHitAttr;
7886
0
    }
7887
0
#line 7888 "MachineIndependent/glslang_tab.cpp"
7888
0
    break;
7889
7890
0
  case 191: /* storage_qualifier: HITOBJECTATTRNV  */
7891
0
#line 1584 "MachineIndependent/glslang.y"
7892
0
                      {
7893
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
7894
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
7895
0
            | EShLangMissMask), "hitObjectAttributeNV");
7896
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_shader_invocation_reorder, "hitObjectAttributeNV");
7897
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7898
0
        (yyval.interm.type).qualifier.storage = EvqHitObjectAttrNV;
7899
0
    }
7900
0
#line 7901 "MachineIndependent/glslang_tab.cpp"
7901
0
    break;
7902
7903
0
  case 192: /* storage_qualifier: HITOBJECTATTREXT  */
7904
0
#line 1592 "MachineIndependent/glslang.y"
7905
0
                       {
7906
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
7907
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask
7908
0
            | EShLangMissMask), "hitObjectAttributeEXT");
7909
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_shader_invocation_reorder, "hitObjectAttributeEXT");
7910
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7911
0
        (yyval.interm.type).qualifier.storage = EvqHitObjectAttrEXT;
7912
0
    }
7913
0
#line 7914 "MachineIndependent/glslang_tab.cpp"
7914
0
    break;
7915
7916
0
  case 193: /* storage_qualifier: HITATTREXT  */
7917
0
#line 1600 "MachineIndependent/glslang.y"
7918
0
                 {
7919
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
7920
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
7921
0
            | EShLangAnyHitMask), "hitAttributeEXT");
7922
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
7923
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7924
0
        (yyval.interm.type).qualifier.storage = EvqHitAttr;
7925
0
    }
7926
0
#line 7927 "MachineIndependent/glslang_tab.cpp"
7927
0
    break;
7928
7929
0
  case 194: /* storage_qualifier: PAYLOADNV  */
7930
0
#line 1608 "MachineIndependent/glslang.y"
7931
0
                {
7932
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
7933
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7934
0
            EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
7935
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
7936
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7937
0
        (yyval.interm.type).qualifier.storage = EvqPayload;
7938
0
    }
7939
0
#line 7940 "MachineIndependent/glslang_tab.cpp"
7940
0
    break;
7941
7942
0
  case 195: /* storage_qualifier: PAYLOADEXT  */
7943
0
#line 1616 "MachineIndependent/glslang.y"
7944
0
                 {
7945
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
7946
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
7947
0
            EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
7948
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
7949
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7950
0
        (yyval.interm.type).qualifier.storage = EvqPayload;
7951
0
    }
7952
0
#line 7953 "MachineIndependent/glslang_tab.cpp"
7953
0
    break;
7954
7955
0
  case 196: /* storage_qualifier: PAYLOADINNV  */
7956
0
#line 1624 "MachineIndependent/glslang.y"
7957
0
                  {
7958
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
7959
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7960
0
            EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
7961
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
7962
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7963
0
        (yyval.interm.type).qualifier.storage = EvqPayloadIn;
7964
0
    }
7965
0
#line 7966 "MachineIndependent/glslang_tab.cpp"
7966
0
    break;
7967
7968
0
  case 197: /* storage_qualifier: PAYLOADINEXT  */
7969
0
#line 1632 "MachineIndependent/glslang.y"
7970
0
                   {
7971
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
7972
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
7973
0
            EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
7974
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
7975
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7976
0
        (yyval.interm.type).qualifier.storage = EvqPayloadIn;
7977
0
    }
7978
0
#line 7979 "MachineIndependent/glslang_tab.cpp"
7979
0
    break;
7980
7981
0
  case 198: /* storage_qualifier: CALLDATANV  */
7982
0
#line 1640 "MachineIndependent/glslang.y"
7983
0
                 {
7984
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
7985
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7986
0
            EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
7987
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
7988
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
7989
0
        (yyval.interm.type).qualifier.storage = EvqCallableData;
7990
0
    }
7991
0
#line 7992 "MachineIndependent/glslang_tab.cpp"
7992
0
    break;
7993
7994
0
  case 199: /* storage_qualifier: CALLDATAEXT  */
7995
0
#line 1648 "MachineIndependent/glslang.y"
7996
0
                  {
7997
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
7998
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
7999
0
            EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
8000
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
8001
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8002
0
        (yyval.interm.type).qualifier.storage = EvqCallableData;
8003
0
    }
8004
0
#line 8005 "MachineIndependent/glslang_tab.cpp"
8005
0
    break;
8006
8007
0
  case 200: /* storage_qualifier: CALLDATAINNV  */
8008
0
#line 1656 "MachineIndependent/glslang.y"
8009
0
                   {
8010
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
8011
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
8012
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
8013
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8014
0
        (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
8015
0
    }
8016
0
#line 8017 "MachineIndependent/glslang_tab.cpp"
8017
0
    break;
8018
8019
0
  case 201: /* storage_qualifier: CALLDATAINEXT  */
8020
0
#line 1663 "MachineIndependent/glslang.y"
8021
0
                    {
8022
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
8023
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
8024
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
8025
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8026
0
        (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
8027
0
    }
8028
0
#line 8029 "MachineIndependent/glslang_tab.cpp"
8029
0
    break;
8030
8031
4.19k
  case 202: /* storage_qualifier: COHERENT  */
8032
4.19k
#line 1670 "MachineIndependent/glslang.y"
8033
4.19k
               {
8034
4.19k
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8035
4.19k
        (yyval.interm.type).qualifier.coherent = true;
8036
4.19k
    }
8037
4.19k
#line 8038 "MachineIndependent/glslang_tab.cpp"
8038
4.19k
    break;
8039
8040
0
  case 203: /* storage_qualifier: DEVICECOHERENT  */
8041
0
#line 1674 "MachineIndependent/glslang.y"
8042
0
                     {
8043
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8044
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
8045
0
        (yyval.interm.type).qualifier.devicecoherent = true;
8046
0
    }
8047
0
#line 8048 "MachineIndependent/glslang_tab.cpp"
8048
0
    break;
8049
8050
0
  case 204: /* storage_qualifier: QUEUEFAMILYCOHERENT  */
8051
0
#line 1679 "MachineIndependent/glslang.y"
8052
0
                          {
8053
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8054
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
8055
0
        (yyval.interm.type).qualifier.queuefamilycoherent = true;
8056
0
    }
8057
0
#line 8058 "MachineIndependent/glslang_tab.cpp"
8058
0
    break;
8059
8060
0
  case 205: /* storage_qualifier: WORKGROUPCOHERENT  */
8061
0
#line 1684 "MachineIndependent/glslang.y"
8062
0
                        {
8063
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8064
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
8065
0
        (yyval.interm.type).qualifier.workgroupcoherent = true;
8066
0
    }
8067
0
#line 8068 "MachineIndependent/glslang_tab.cpp"
8068
0
    break;
8069
8070
0
  case 206: /* storage_qualifier: SUBGROUPCOHERENT  */
8071
0
#line 1689 "MachineIndependent/glslang.y"
8072
0
                       {
8073
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8074
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
8075
0
        (yyval.interm.type).qualifier.subgroupcoherent = true;
8076
0
    }
8077
0
#line 8078 "MachineIndependent/glslang_tab.cpp"
8078
0
    break;
8079
8080
0
  case 207: /* storage_qualifier: NONPRIVATE  */
8081
0
#line 1694 "MachineIndependent/glslang.y"
8082
0
                 {
8083
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8084
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
8085
0
        (yyval.interm.type).qualifier.nonprivate = true;
8086
0
    }
8087
0
#line 8088 "MachineIndependent/glslang_tab.cpp"
8088
0
    break;
8089
8090
0
  case 208: /* storage_qualifier: SHADERCALLCOHERENT  */
8091
0
#line 1699 "MachineIndependent/glslang.y"
8092
0
                         {
8093
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8094
0
        parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
8095
0
        (yyval.interm.type).qualifier.shadercallcoherent = true;
8096
0
    }
8097
0
#line 8098 "MachineIndependent/glslang_tab.cpp"
8098
0
    break;
8099
8100
4.35k
  case 209: /* storage_qualifier: VOLATILE  */
8101
4.35k
#line 1704 "MachineIndependent/glslang.y"
8102
4.35k
               {
8103
4.35k
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8104
4.35k
        (yyval.interm.type).qualifier.volatil = true;
8105
4.35k
    }
8106
4.35k
#line 8107 "MachineIndependent/glslang_tab.cpp"
8107
4.35k
    break;
8108
8109
0
  case 210: /* storage_qualifier: RESTRICT  */
8110
0
#line 1708 "MachineIndependent/glslang.y"
8111
0
               {
8112
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8113
0
        (yyval.interm.type).qualifier.restrict = true;
8114
0
    }
8115
0
#line 8116 "MachineIndependent/glslang_tab.cpp"
8116
0
    break;
8117
8118
634
  case 211: /* storage_qualifier: READONLY  */
8119
634
#line 1712 "MachineIndependent/glslang.y"
8120
634
               {
8121
634
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8122
634
        (yyval.interm.type).qualifier.readonly = true;
8123
634
    }
8124
634
#line 8125 "MachineIndependent/glslang_tab.cpp"
8125
634
    break;
8126
8127
478
  case 212: /* storage_qualifier: WRITEONLY  */
8128
478
#line 1716 "MachineIndependent/glslang.y"
8129
478
                {
8130
478
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8131
478
        (yyval.interm.type).qualifier.writeonly = true;
8132
478
    }
8133
478
#line 8134 "MachineIndependent/glslang_tab.cpp"
8134
478
    break;
8135
8136
3.83k
  case 213: /* storage_qualifier: NONTEMPORAL  */
8137
3.83k
#line 1720 "MachineIndependent/glslang.y"
8138
3.83k
                  {
8139
3.83k
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8140
3.83k
        (yyval.interm.type).qualifier.nontemporal  = true;
8141
3.83k
    }
8142
3.83k
#line 8143 "MachineIndependent/glslang_tab.cpp"
8143
3.83k
    break;
8144
8145
0
  case 214: /* storage_qualifier: SUBROUTINE  */
8146
0
#line 1724 "MachineIndependent/glslang.y"
8147
0
                 {
8148
0
        parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
8149
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
8150
0
        parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
8151
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8152
0
    }
8153
0
#line 8154 "MachineIndependent/glslang_tab.cpp"
8154
0
    break;
8155
8156
0
  case 215: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN  */
8157
0
#line 1730 "MachineIndependent/glslang.y"
8158
0
                                                       {
8159
0
        parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
8160
0
        parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
8161
0
        parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
8162
0
        (yyval.interm.type).init((yyvsp[-3].lex).loc);
8163
0
    }
8164
0
#line 8165 "MachineIndependent/glslang_tab.cpp"
8165
0
    break;
8166
8167
0
  case 216: /* storage_qualifier: TASKPAYLOADWORKGROUPEXT  */
8168
0
#line 1736 "MachineIndependent/glslang.y"
8169
0
                              {
8170
        // No need for profile version or extension check. Shader stage already checks both.
8171
0
        parseContext.globalCheck((yyvsp[0].lex).loc, "taskPayloadSharedEXT");
8172
0
        parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskMask | EShLangMeshMask), "taskPayloadSharedEXT  ");
8173
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8174
0
        (yyval.interm.type).qualifier.storage = EvqtaskPayloadSharedEXT;
8175
0
    }
8176
0
#line 8177 "MachineIndependent/glslang_tab.cpp"
8177
0
    break;
8178
8179
0
  case 217: /* non_uniform_qualifier: NONUNIFORM  */
8180
0
#line 1746 "MachineIndependent/glslang.y"
8181
0
                 {
8182
0
        (yyval.interm.type).init((yyvsp[0].lex).loc);
8183
0
        (yyval.interm.type).qualifier.nonUniform = true;
8184
0
    }
8185
0
#line 8186 "MachineIndependent/glslang_tab.cpp"
8186
0
    break;
8187
8188
0
  case 218: /* type_name_list: IDENTIFIER  */
8189
0
#line 1753 "MachineIndependent/glslang.y"
8190
0
                 {
8191
        // TODO
8192
0
    }
8193
0
#line 8194 "MachineIndependent/glslang_tab.cpp"
8194
0
    break;
8195
8196
0
  case 219: /* type_name_list: type_name_list COMMA IDENTIFIER  */
8197
0
#line 1756 "MachineIndependent/glslang.y"
8198
0
                                      {
8199
        // TODO: 4.0 semantics: subroutines
8200
        // 1) make sure each identifier is a type declared earlier with SUBROUTINE
8201
        // 2) save all of the identifiers for future comparison with the declared function
8202
0
    }
8203
0
#line 8204 "MachineIndependent/glslang_tab.cpp"
8204
0
    break;
8205
8206
183k
  case 220: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt  */
8207
183k
#line 1764 "MachineIndependent/glslang.y"
8208
183k
                                                           {
8209
183k
        (yyval.interm.type) = (yyvsp[-1].interm.type);
8210
183k
        (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
8211
183k
        (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
8212
183k
        parseContext.typeParametersCheck((yyvsp[-1].interm.type).loc, (yyval.interm.type));
8213
8214
183k
    }
8215
183k
#line 8216 "MachineIndependent/glslang_tab.cpp"
8216
183k
    break;
8217
8218
2.32k
  case 221: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier  */
8219
2.32k
#line 1771 "MachineIndependent/glslang.y"
8220
2.32k
                                                                           {
8221
2.32k
        parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
8222
2.32k
        (yyval.interm.type) = (yyvsp[-2].interm.type);
8223
2.32k
        (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
8224
2.32k
        (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
8225
2.32k
        (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
8226
2.32k
        parseContext.typeParametersCheck((yyvsp[-2].interm.type).loc, (yyval.interm.type));
8227
2.32k
    }
8228
2.32k
#line 8229 "MachineIndependent/glslang_tab.cpp"
8229
2.32k
    break;
8230
8231
2.48k
  case 222: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET  */
8232
2.48k
#line 1782 "MachineIndependent/glslang.y"
8233
2.48k
                                 {
8234
2.48k
        (yyval.interm).loc = (yyvsp[-1].lex).loc;
8235
2.48k
        (yyval.interm).arraySizes = new TArraySizes;
8236
2.48k
        (yyval.interm).arraySizes->addInnerSize();
8237
2.48k
    }
8238
2.48k
#line 8239 "MachineIndependent/glslang_tab.cpp"
8239
2.48k
    break;
8240
8241
388
  case 223: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
8242
388
#line 1787 "MachineIndependent/glslang.y"
8243
388
                                                        {
8244
388
        (yyval.interm).loc = (yyvsp[-2].lex).loc;
8245
388
        (yyval.interm).arraySizes = new TArraySizes;
8246
8247
388
        TArraySize size;
8248
388
        parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
8249
388
        (yyval.interm).arraySizes->addInnerSize(size);
8250
388
    }
8251
388
#line 8252 "MachineIndependent/glslang_tab.cpp"
8252
388
    break;
8253
8254
6
  case 224: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET  */
8255
6
#line 1795 "MachineIndependent/glslang.y"
8256
6
                                                 {
8257
6
        (yyval.interm) = (yyvsp[-2].interm);
8258
6
        (yyval.interm).arraySizes->addInnerSize();
8259
6
    }
8260
6
#line 8261 "MachineIndependent/glslang_tab.cpp"
8261
6
    break;
8262
8263
0
  case 225: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET  */
8264
0
#line 1799 "MachineIndependent/glslang.y"
8265
0
                                                                        {
8266
0
        (yyval.interm) = (yyvsp[-3].interm);
8267
8268
0
        TArraySize size;
8269
0
        parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
8270
0
        (yyval.interm).arraySizes->addInnerSize(size);
8271
0
    }
8272
0
#line 8273 "MachineIndependent/glslang_tab.cpp"
8273
0
    break;
8274
8275
24
  case 226: /* type_parameter_specifier_opt: type_parameter_specifier  */
8276
24
#line 1809 "MachineIndependent/glslang.y"
8277
24
                               {
8278
24
        (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
8279
24
    }
8280
24
#line 8281 "MachineIndependent/glslang_tab.cpp"
8281
24
    break;
8282
8283
185k
  case 227: /* type_parameter_specifier_opt: %empty  */
8284
185k
#line 1812 "MachineIndependent/glslang.y"
8285
185k
                        {
8286
185k
        (yyval.interm.typeParameters) = 0;
8287
185k
    }
8288
185k
#line 8289 "MachineIndependent/glslang_tab.cpp"
8289
185k
    break;
8290
8291
24
  case 228: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE  */
8292
24
#line 1818 "MachineIndependent/glslang.y"
8293
24
                                                           {
8294
24
        (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
8295
24
    }
8296
24
#line 8297 "MachineIndependent/glslang_tab.cpp"
8297
24
    break;
8298
8299
24
  case 229: /* type_parameter_specifier_list: type_specifier  */
8300
24
#line 1824 "MachineIndependent/glslang.y"
8301
24
                     {
8302
24
        (yyval.interm.typeParameters) = new TTypeParameters;
8303
24
        (yyval.interm.typeParameters)->arraySizes = new TArraySizes;
8304
24
        (yyval.interm.typeParameters)->spirvType = (yyvsp[0].interm.type).spirvType;
8305
24
        (yyval.interm.typeParameters)->basicType = (yyvsp[0].interm.type).basicType;
8306
24
    }
8307
24
#line 8308 "MachineIndependent/glslang_tab.cpp"
8308
24
    break;
8309
8310
0
  case 230: /* type_parameter_specifier_list: unary_expression  */
8311
0
#line 1830 "MachineIndependent/glslang.y"
8312
0
                       {
8313
0
        (yyval.interm.typeParameters) = new TTypeParameters;
8314
0
        (yyval.interm.typeParameters)->arraySizes = new TArraySizes;
8315
8316
0
        TArraySize size;
8317
0
        parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true);
8318
0
        (yyval.interm.typeParameters)->arraySizes->addInnerSize(size);
8319
0
    }
8320
0
#line 8321 "MachineIndependent/glslang_tab.cpp"
8321
0
    break;
8322
8323
24
  case 231: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression  */
8324
24
#line 1838 "MachineIndependent/glslang.y"
8325
24
                                                           {
8326
24
        (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
8327
8328
24
        TArraySize size;
8329
24
        parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter", true);
8330
24
        (yyval.interm.typeParameters)->arraySizes->addInnerSize(size);
8331
24
    }
8332
24
#line 8333 "MachineIndependent/glslang_tab.cpp"
8333
24
    break;
8334
8335
2.98k
  case 232: /* type_specifier_nonarray: VOID  */
8336
2.98k
#line 1848 "MachineIndependent/glslang.y"
8337
2.98k
           {
8338
2.98k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8339
2.98k
        (yyval.interm.type).basicType = EbtVoid;
8340
2.98k
    }
8341
2.98k
#line 8342 "MachineIndependent/glslang_tab.cpp"
8342
2.98k
    break;
8343
8344
23.9k
  case 233: /* type_specifier_nonarray: FLOAT  */
8345
23.9k
#line 1852 "MachineIndependent/glslang.y"
8346
23.9k
            {
8347
23.9k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8348
23.9k
        (yyval.interm.type).basicType = EbtFloat;
8349
23.9k
    }
8350
23.9k
#line 8351 "MachineIndependent/glslang_tab.cpp"
8351
23.9k
    break;
8352
8353
16.7k
  case 234: /* type_specifier_nonarray: INT  */
8354
16.7k
#line 1856 "MachineIndependent/glslang.y"
8355
16.7k
          {
8356
16.7k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8357
16.7k
        (yyval.interm.type).basicType = EbtInt;
8358
16.7k
    }
8359
16.7k
#line 8360 "MachineIndependent/glslang_tab.cpp"
8360
16.7k
    break;
8361
8362
7.28k
  case 235: /* type_specifier_nonarray: UINT  */
8363
7.28k
#line 1860 "MachineIndependent/glslang.y"
8364
7.28k
           {
8365
7.28k
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
8366
7.28k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8367
7.28k
        (yyval.interm.type).basicType = EbtUint;
8368
7.28k
    }
8369
7.28k
#line 8370 "MachineIndependent/glslang_tab.cpp"
8370
7.28k
    break;
8371
8372
1.92k
  case 236: /* type_specifier_nonarray: BOOL  */
8373
1.92k
#line 1865 "MachineIndependent/glslang.y"
8374
1.92k
           {
8375
1.92k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8376
1.92k
        (yyval.interm.type).basicType = EbtBool;
8377
1.92k
    }
8378
1.92k
#line 8379 "MachineIndependent/glslang_tab.cpp"
8379
1.92k
    break;
8380
8381
19.3k
  case 237: /* type_specifier_nonarray: VEC2  */
8382
19.3k
#line 1869 "MachineIndependent/glslang.y"
8383
19.3k
           {
8384
19.3k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8385
19.3k
        (yyval.interm.type).basicType = EbtFloat;
8386
19.3k
        (yyval.interm.type).setVector(2);
8387
19.3k
    }
8388
19.3k
#line 8389 "MachineIndependent/glslang_tab.cpp"
8389
19.3k
    break;
8390
8391
19.3k
  case 238: /* type_specifier_nonarray: VEC3  */
8392
19.3k
#line 1874 "MachineIndependent/glslang.y"
8393
19.3k
           {
8394
19.3k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8395
19.3k
        (yyval.interm.type).basicType = EbtFloat;
8396
19.3k
        (yyval.interm.type).setVector(3);
8397
19.3k
    }
8398
19.3k
#line 8399 "MachineIndependent/glslang_tab.cpp"
8399
19.3k
    break;
8400
8401
21.0k
  case 239: /* type_specifier_nonarray: VEC4  */
8402
21.0k
#line 1879 "MachineIndependent/glslang.y"
8403
21.0k
           {
8404
21.0k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8405
21.0k
        (yyval.interm.type).basicType = EbtFloat;
8406
21.0k
        (yyval.interm.type).setVector(4);
8407
21.0k
    }
8408
21.0k
#line 8409 "MachineIndependent/glslang_tab.cpp"
8409
21.0k
    break;
8410
8411
3.06k
  case 240: /* type_specifier_nonarray: BVEC2  */
8412
3.06k
#line 1884 "MachineIndependent/glslang.y"
8413
3.06k
            {
8414
3.06k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8415
3.06k
        (yyval.interm.type).basicType = EbtBool;
8416
3.06k
        (yyval.interm.type).setVector(2);
8417
3.06k
    }
8418
3.06k
#line 8419 "MachineIndependent/glslang_tab.cpp"
8419
3.06k
    break;
8420
8421
3.06k
  case 241: /* type_specifier_nonarray: BVEC3  */
8422
3.06k
#line 1889 "MachineIndependent/glslang.y"
8423
3.06k
            {
8424
3.06k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8425
3.06k
        (yyval.interm.type).basicType = EbtBool;
8426
3.06k
        (yyval.interm.type).setVector(3);
8427
3.06k
    }
8428
3.06k
#line 8429 "MachineIndependent/glslang_tab.cpp"
8429
3.06k
    break;
8430
8431
3.06k
  case 242: /* type_specifier_nonarray: BVEC4  */
8432
3.06k
#line 1894 "MachineIndependent/glslang.y"
8433
3.06k
            {
8434
3.06k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8435
3.06k
        (yyval.interm.type).basicType = EbtBool;
8436
3.06k
        (yyval.interm.type).setVector(4);
8437
3.06k
    }
8438
3.06k
#line 8439 "MachineIndependent/glslang_tab.cpp"
8439
3.06k
    break;
8440
8441
5.62k
  case 243: /* type_specifier_nonarray: IVEC2  */
8442
5.62k
#line 1899 "MachineIndependent/glslang.y"
8443
5.62k
            {
8444
5.62k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8445
5.62k
        (yyval.interm.type).basicType = EbtInt;
8446
5.62k
        (yyval.interm.type).setVector(2);
8447
5.62k
    }
8448
5.62k
#line 8449 "MachineIndependent/glslang_tab.cpp"
8449
5.62k
    break;
8450
8451
4.13k
  case 244: /* type_specifier_nonarray: IVEC3  */
8452
4.13k
#line 1904 "MachineIndependent/glslang.y"
8453
4.13k
            {
8454
4.13k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8455
4.13k
        (yyval.interm.type).basicType = EbtInt;
8456
4.13k
        (yyval.interm.type).setVector(3);
8457
4.13k
    }
8458
4.13k
#line 8459 "MachineIndependent/glslang_tab.cpp"
8459
4.13k
    break;
8460
8461
3.15k
  case 245: /* type_specifier_nonarray: IVEC4  */
8462
3.15k
#line 1909 "MachineIndependent/glslang.y"
8463
3.15k
            {
8464
3.15k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8465
3.15k
        (yyval.interm.type).basicType = EbtInt;
8466
3.15k
        (yyval.interm.type).setVector(4);
8467
3.15k
    }
8468
3.15k
#line 8469 "MachineIndependent/glslang_tab.cpp"
8469
3.15k
    break;
8470
8471
626
  case 246: /* type_specifier_nonarray: UVEC2  */
8472
626
#line 1914 "MachineIndependent/glslang.y"
8473
626
            {
8474
626
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
8475
626
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8476
626
        (yyval.interm.type).basicType = EbtUint;
8477
626
        (yyval.interm.type).setVector(2);
8478
626
    }
8479
626
#line 8480 "MachineIndependent/glslang_tab.cpp"
8480
626
    break;
8481
8482
612
  case 247: /* type_specifier_nonarray: UVEC3  */
8483
612
#line 1920 "MachineIndependent/glslang.y"
8484
612
            {
8485
612
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
8486
612
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8487
612
        (yyval.interm.type).basicType = EbtUint;
8488
612
        (yyval.interm.type).setVector(3);
8489
612
    }
8490
612
#line 8491 "MachineIndependent/glslang_tab.cpp"
8491
612
    break;
8492
8493
3.65k
  case 248: /* type_specifier_nonarray: UVEC4  */
8494
3.65k
#line 1926 "MachineIndependent/glslang.y"
8495
3.65k
            {
8496
3.65k
        parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
8497
3.65k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8498
3.65k
        (yyval.interm.type).basicType = EbtUint;
8499
3.65k
        (yyval.interm.type).setVector(4);
8500
3.65k
    }
8501
3.65k
#line 8502 "MachineIndependent/glslang_tab.cpp"
8502
3.65k
    break;
8503
8504
390
  case 249: /* type_specifier_nonarray: MAT2  */
8505
390
#line 1932 "MachineIndependent/glslang.y"
8506
390
           {
8507
390
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8508
390
        (yyval.interm.type).basicType = EbtFloat;
8509
390
        (yyval.interm.type).setMatrix(2, 2);
8510
390
    }
8511
390
#line 8512 "MachineIndependent/glslang_tab.cpp"
8512
390
    break;
8513
8514
390
  case 250: /* type_specifier_nonarray: MAT3  */
8515
390
#line 1937 "MachineIndependent/glslang.y"
8516
390
           {
8517
390
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8518
390
        (yyval.interm.type).basicType = EbtFloat;
8519
390
        (yyval.interm.type).setMatrix(3, 3);
8520
390
    }
8521
390
#line 8522 "MachineIndependent/glslang_tab.cpp"
8522
390
    break;
8523
8524
390
  case 251: /* type_specifier_nonarray: MAT4  */
8525
390
#line 1942 "MachineIndependent/glslang.y"
8526
390
           {
8527
390
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8528
390
        (yyval.interm.type).basicType = EbtFloat;
8529
390
        (yyval.interm.type).setMatrix(4, 4);
8530
390
    }
8531
390
#line 8532 "MachineIndependent/glslang_tab.cpp"
8532
390
    break;
8533
8534
0
  case 252: /* type_specifier_nonarray: MAT2X2  */
8535
0
#line 1947 "MachineIndependent/glslang.y"
8536
0
             {
8537
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8538
0
        (yyval.interm.type).basicType = EbtFloat;
8539
0
        (yyval.interm.type).setMatrix(2, 2);
8540
0
    }
8541
0
#line 8542 "MachineIndependent/glslang_tab.cpp"
8542
0
    break;
8543
8544
12
  case 253: /* type_specifier_nonarray: MAT2X3  */
8545
12
#line 1952 "MachineIndependent/glslang.y"
8546
12
             {
8547
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8548
12
        (yyval.interm.type).basicType = EbtFloat;
8549
12
        (yyval.interm.type).setMatrix(2, 3);
8550
12
    }
8551
12
#line 8552 "MachineIndependent/glslang_tab.cpp"
8552
12
    break;
8553
8554
12
  case 254: /* type_specifier_nonarray: MAT2X4  */
8555
12
#line 1957 "MachineIndependent/glslang.y"
8556
12
             {
8557
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8558
12
        (yyval.interm.type).basicType = EbtFloat;
8559
12
        (yyval.interm.type).setMatrix(2, 4);
8560
12
    }
8561
12
#line 8562 "MachineIndependent/glslang_tab.cpp"
8562
12
    break;
8563
8564
12
  case 255: /* type_specifier_nonarray: MAT3X2  */
8565
12
#line 1962 "MachineIndependent/glslang.y"
8566
12
             {
8567
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8568
12
        (yyval.interm.type).basicType = EbtFloat;
8569
12
        (yyval.interm.type).setMatrix(3, 2);
8570
12
    }
8571
12
#line 8572 "MachineIndependent/glslang_tab.cpp"
8572
12
    break;
8573
8574
0
  case 256: /* type_specifier_nonarray: MAT3X3  */
8575
0
#line 1967 "MachineIndependent/glslang.y"
8576
0
             {
8577
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8578
0
        (yyval.interm.type).basicType = EbtFloat;
8579
0
        (yyval.interm.type).setMatrix(3, 3);
8580
0
    }
8581
0
#line 8582 "MachineIndependent/glslang_tab.cpp"
8582
0
    break;
8583
8584
12
  case 257: /* type_specifier_nonarray: MAT3X4  */
8585
12
#line 1972 "MachineIndependent/glslang.y"
8586
12
             {
8587
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8588
12
        (yyval.interm.type).basicType = EbtFloat;
8589
12
        (yyval.interm.type).setMatrix(3, 4);
8590
12
    }
8591
12
#line 8592 "MachineIndependent/glslang_tab.cpp"
8592
12
    break;
8593
8594
12
  case 258: /* type_specifier_nonarray: MAT4X2  */
8595
12
#line 1977 "MachineIndependent/glslang.y"
8596
12
             {
8597
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8598
12
        (yyval.interm.type).basicType = EbtFloat;
8599
12
        (yyval.interm.type).setMatrix(4, 2);
8600
12
    }
8601
12
#line 8602 "MachineIndependent/glslang_tab.cpp"
8602
12
    break;
8603
8604
12
  case 259: /* type_specifier_nonarray: MAT4X3  */
8605
12
#line 1982 "MachineIndependent/glslang.y"
8606
12
             {
8607
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8608
12
        (yyval.interm.type).basicType = EbtFloat;
8609
12
        (yyval.interm.type).setMatrix(4, 3);
8610
12
    }
8611
12
#line 8612 "MachineIndependent/glslang_tab.cpp"
8612
12
    break;
8613
8614
0
  case 260: /* type_specifier_nonarray: MAT4X4  */
8615
0
#line 1987 "MachineIndependent/glslang.y"
8616
0
             {
8617
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8618
0
        (yyval.interm.type).basicType = EbtFloat;
8619
0
        (yyval.interm.type).setMatrix(4, 4);
8620
0
    }
8621
0
#line 8622 "MachineIndependent/glslang_tab.cpp"
8622
0
    break;
8623
8624
570
  case 261: /* type_specifier_nonarray: DOUBLE  */
8625
570
#line 1992 "MachineIndependent/glslang.y"
8626
570
             {
8627
570
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
8628
570
        if (! parseContext.symbolTable.atBuiltInLevel())
8629
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
8630
570
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8631
570
        (yyval.interm.type).basicType = EbtDouble;
8632
570
    }
8633
570
#line 8634 "MachineIndependent/glslang_tab.cpp"
8634
570
    break;
8635
8636
36
  case 262: /* type_specifier_nonarray: BFLOAT16_T  */
8637
36
#line 1999 "MachineIndependent/glslang.y"
8638
36
                 {
8639
36
        parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "bfloat16_t", parseContext.symbolTable.atBuiltInLevel());
8640
36
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8641
36
        (yyval.interm.type).basicType = EbtBFloat16;
8642
36
    }
8643
36
#line 8644 "MachineIndependent/glslang_tab.cpp"
8644
36
    break;
8645
8646
24
  case 263: /* type_specifier_nonarray: FLOATE5M2_T  */
8647
24
#line 2004 "MachineIndependent/glslang.y"
8648
24
                  {
8649
24
        parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "floate5m2_t", parseContext.symbolTable.atBuiltInLevel());
8650
24
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8651
24
        (yyval.interm.type).basicType = EbtFloatE5M2;
8652
24
    }
8653
24
#line 8654 "MachineIndependent/glslang_tab.cpp"
8654
24
    break;
8655
8656
24
  case 264: /* type_specifier_nonarray: FLOATE4M3_T  */
8657
24
#line 2009 "MachineIndependent/glslang.y"
8658
24
                  {
8659
24
        parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "floate4m3_t", parseContext.symbolTable.atBuiltInLevel());
8660
24
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8661
24
        (yyval.interm.type).basicType = EbtFloatE4M3;
8662
24
    }
8663
24
#line 8664 "MachineIndependent/glslang_tab.cpp"
8664
24
    break;
8665
8666
10
  case 265: /* type_specifier_nonarray: FLOATE2M1_T  */
8667
10
#line 2014 "MachineIndependent/glslang.y"
8668
10
                  {
8669
10
        parseContext.floate2m1ScalarVectorCheck((yyvsp[0].lex).loc, "floate2m1_t", parseContext.symbolTable.atBuiltInLevel());
8670
10
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8671
10
        (yyval.interm.type).basicType = EbtFloatE2M1;
8672
10
    }
8673
10
#line 8674 "MachineIndependent/glslang_tab.cpp"
8674
10
    break;
8675
8676
10
  case 266: /* type_specifier_nonarray: FLOATE3M2_T  */
8677
10
#line 2019 "MachineIndependent/glslang.y"
8678
10
                  {
8679
10
        parseContext.floate3m2ScalarVectorCheck((yyvsp[0].lex).loc, "floate3m2_t", parseContext.symbolTable.atBuiltInLevel());
8680
10
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8681
10
        (yyval.interm.type).basicType = EbtFloatE3M2;
8682
10
    }
8683
10
#line 8684 "MachineIndependent/glslang_tab.cpp"
8684
10
    break;
8685
8686
10
  case 267: /* type_specifier_nonarray: FLOATE2M3_T  */
8687
10
#line 2024 "MachineIndependent/glslang.y"
8688
10
                  {
8689
10
        parseContext.floate2m3ScalarVectorCheck((yyvsp[0].lex).loc, "floate2m3_t", parseContext.symbolTable.atBuiltInLevel());
8690
10
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8691
10
        (yyval.interm.type).basicType = EbtFloatE2M3;
8692
10
    }
8693
10
#line 8694 "MachineIndependent/glslang_tab.cpp"
8694
10
    break;
8695
8696
8
  case 268: /* type_specifier_nonarray: FLOATUE8M0_T  */
8697
8
#line 2029 "MachineIndependent/glslang.y"
8698
8
                   {
8699
8
        parseContext.floatue8m0ScalarVectorCheck((yyvsp[0].lex).loc, "floatue8m0_t", parseContext.symbolTable.atBuiltInLevel());
8700
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8701
8
        (yyval.interm.type).basicType = EbtFloatUE8M0;
8702
8
    }
8703
8
#line 8704 "MachineIndependent/glslang_tab.cpp"
8704
8
    break;
8705
8706
8
  case 269: /* type_specifier_nonarray: FLOATMXINT8_T  */
8707
8
#line 2034 "MachineIndependent/glslang.y"
8708
8
                    {
8709
8
        parseContext.floatmxint8ScalarVectorCheck((yyvsp[0].lex).loc, "floatmxint8_t", parseContext.symbolTable.atBuiltInLevel());
8710
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8711
8
        (yyval.interm.type).basicType = EbtFloatMXINT8;
8712
8
    }
8713
8
#line 8714 "MachineIndependent/glslang_tab.cpp"
8714
8
    break;
8715
8716
2.53k
  case 270: /* type_specifier_nonarray: FLOAT16_T  */
8717
2.53k
#line 2039 "MachineIndependent/glslang.y"
8718
2.53k
                {
8719
2.53k
        parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
8720
2.53k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8721
2.53k
        (yyval.interm.type).basicType = EbtFloat16;
8722
2.53k
    }
8723
2.53k
#line 8724 "MachineIndependent/glslang_tab.cpp"
8724
2.53k
    break;
8725
8726
152
  case 271: /* type_specifier_nonarray: FLOAT32_T  */
8727
152
#line 2044 "MachineIndependent/glslang.y"
8728
152
                {
8729
152
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
8730
152
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8731
152
        (yyval.interm.type).basicType = EbtFloat;
8732
152
    }
8733
152
#line 8734 "MachineIndependent/glslang_tab.cpp"
8734
152
    break;
8735
8736
282
  case 272: /* type_specifier_nonarray: FLOAT64_T  */
8737
282
#line 2049 "MachineIndependent/glslang.y"
8738
282
                {
8739
282
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
8740
282
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8741
282
        (yyval.interm.type).basicType = EbtDouble;
8742
282
    }
8743
282
#line 8744 "MachineIndependent/glslang_tab.cpp"
8744
282
    break;
8745
8746
570
  case 273: /* type_specifier_nonarray: INT8_T  */
8747
570
#line 2054 "MachineIndependent/glslang.y"
8748
570
             {
8749
570
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
8750
570
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8751
570
        (yyval.interm.type).basicType = EbtInt8;
8752
570
    }
8753
570
#line 8754 "MachineIndependent/glslang_tab.cpp"
8754
570
    break;
8755
8756
532
  case 274: /* type_specifier_nonarray: UINT8_T  */
8757
532
#line 2059 "MachineIndependent/glslang.y"
8758
532
              {
8759
532
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
8760
532
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8761
532
        (yyval.interm.type).basicType = EbtUint8;
8762
532
    }
8763
532
#line 8764 "MachineIndependent/glslang_tab.cpp"
8764
532
    break;
8765
8766
694
  case 275: /* type_specifier_nonarray: INT16_T  */
8767
694
#line 2064 "MachineIndependent/glslang.y"
8768
694
              {
8769
694
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
8770
694
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8771
694
        (yyval.interm.type).basicType = EbtInt16;
8772
694
    }
8773
694
#line 8774 "MachineIndependent/glslang_tab.cpp"
8774
694
    break;
8775
8776
618
  case 276: /* type_specifier_nonarray: UINT16_T  */
8777
618
#line 2069 "MachineIndependent/glslang.y"
8778
618
               {
8779
618
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
8780
618
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8781
618
        (yyval.interm.type).basicType = EbtUint16;
8782
618
    }
8783
618
#line 8784 "MachineIndependent/glslang_tab.cpp"
8784
618
    break;
8785
8786
160
  case 277: /* type_specifier_nonarray: INT32_T  */
8787
160
#line 2074 "MachineIndependent/glslang.y"
8788
160
              {
8789
160
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
8790
160
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8791
160
        (yyval.interm.type).basicType = EbtInt;
8792
160
    }
8793
160
#line 8794 "MachineIndependent/glslang_tab.cpp"
8794
160
    break;
8795
8796
164
  case 278: /* type_specifier_nonarray: UINT32_T  */
8797
164
#line 2079 "MachineIndependent/glslang.y"
8798
164
               {
8799
164
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
8800
164
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8801
164
        (yyval.interm.type).basicType = EbtUint;
8802
164
    }
8803
164
#line 8804 "MachineIndependent/glslang_tab.cpp"
8804
164
    break;
8805
8806
1.54k
  case 279: /* type_specifier_nonarray: INT64_T  */
8807
1.54k
#line 2084 "MachineIndependent/glslang.y"
8808
1.54k
              {
8809
1.54k
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
8810
1.54k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8811
1.54k
        (yyval.interm.type).basicType = EbtInt64;
8812
1.54k
    }
8813
1.54k
#line 8814 "MachineIndependent/glslang_tab.cpp"
8814
1.54k
    break;
8815
8816
2.55k
  case 280: /* type_specifier_nonarray: UINT64_T  */
8817
2.55k
#line 2089 "MachineIndependent/glslang.y"
8818
2.55k
               {
8819
2.55k
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
8820
2.55k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8821
2.55k
        (yyval.interm.type).basicType = EbtUint64;
8822
2.55k
    }
8823
2.55k
#line 8824 "MachineIndependent/glslang_tab.cpp"
8824
2.55k
    break;
8825
8826
464
  case 281: /* type_specifier_nonarray: DVEC2  */
8827
464
#line 2094 "MachineIndependent/glslang.y"
8828
464
            {
8829
464
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
8830
464
        if (! parseContext.symbolTable.atBuiltInLevel())
8831
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
8832
464
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8833
464
        (yyval.interm.type).basicType = EbtDouble;
8834
464
        (yyval.interm.type).setVector(2);
8835
464
    }
8836
464
#line 8837 "MachineIndependent/glslang_tab.cpp"
8837
464
    break;
8838
8839
462
  case 282: /* type_specifier_nonarray: DVEC3  */
8840
462
#line 2102 "MachineIndependent/glslang.y"
8841
462
            {
8842
462
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
8843
462
        if (! parseContext.symbolTable.atBuiltInLevel())
8844
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
8845
462
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8846
462
        (yyval.interm.type).basicType = EbtDouble;
8847
462
        (yyval.interm.type).setVector(3);
8848
462
    }
8849
462
#line 8850 "MachineIndependent/glslang_tab.cpp"
8850
462
    break;
8851
8852
464
  case 283: /* type_specifier_nonarray: DVEC4  */
8853
464
#line 2110 "MachineIndependent/glslang.y"
8854
464
            {
8855
464
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
8856
464
        if (! parseContext.symbolTable.atBuiltInLevel())
8857
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
8858
464
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8859
464
        (yyval.interm.type).basicType = EbtDouble;
8860
464
        (yyval.interm.type).setVector(4);
8861
464
    }
8862
464
#line 8863 "MachineIndependent/glslang_tab.cpp"
8863
464
    break;
8864
8865
20
  case 284: /* type_specifier_nonarray: BF16VEC2  */
8866
20
#line 2118 "MachineIndependent/glslang.y"
8867
20
               {
8868
20
        parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
8869
20
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8870
20
        (yyval.interm.type).basicType = EbtBFloat16;
8871
20
        (yyval.interm.type).setVector(2);
8872
20
    }
8873
20
#line 8874 "MachineIndependent/glslang_tab.cpp"
8874
20
    break;
8875
8876
12
  case 285: /* type_specifier_nonarray: BF16VEC3  */
8877
12
#line 2124 "MachineIndependent/glslang.y"
8878
12
               {
8879
12
        parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
8880
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8881
12
        (yyval.interm.type).basicType = EbtBFloat16;
8882
12
        (yyval.interm.type).setVector(3);
8883
12
    }
8884
12
#line 8885 "MachineIndependent/glslang_tab.cpp"
8885
12
    break;
8886
8887
20
  case 286: /* type_specifier_nonarray: BF16VEC4  */
8888
20
#line 2130 "MachineIndependent/glslang.y"
8889
20
               {
8890
20
        parseContext.bfloat16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
8891
20
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8892
20
        (yyval.interm.type).basicType = EbtBFloat16;
8893
20
        (yyval.interm.type).setVector(4);
8894
20
    }
8895
20
#line 8896 "MachineIndependent/glslang_tab.cpp"
8896
20
    break;
8897
8898
16
  case 287: /* type_specifier_nonarray: FE5M2VEC2  */
8899
16
#line 2136 "MachineIndependent/glslang.y"
8900
16
                {
8901
16
        parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe5m2 vector", parseContext.symbolTable.atBuiltInLevel());
8902
16
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8903
16
        (yyval.interm.type).basicType = EbtFloatE5M2;
8904
16
        (yyval.interm.type).setVector(2);
8905
16
    }
8906
16
#line 8907 "MachineIndependent/glslang_tab.cpp"
8907
16
    break;
8908
8909
8
  case 288: /* type_specifier_nonarray: FE5M2VEC3  */
8910
8
#line 2142 "MachineIndependent/glslang.y"
8911
8
                {
8912
8
        parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe5m2 vector", parseContext.symbolTable.atBuiltInLevel());
8913
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8914
8
        (yyval.interm.type).basicType = EbtFloatE5M2;
8915
8
        (yyval.interm.type).setVector(3);
8916
8
    }
8917
8
#line 8918 "MachineIndependent/glslang_tab.cpp"
8918
8
    break;
8919
8920
16
  case 289: /* type_specifier_nonarray: FE5M2VEC4  */
8921
16
#line 2148 "MachineIndependent/glslang.y"
8922
16
                {
8923
16
        parseContext.floate5m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe5m2 vector", parseContext.symbolTable.atBuiltInLevel());
8924
16
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8925
16
        (yyval.interm.type).basicType = EbtFloatE5M2;
8926
16
        (yyval.interm.type).setVector(4);
8927
16
    }
8928
16
#line 8929 "MachineIndependent/glslang_tab.cpp"
8929
16
    break;
8930
8931
16
  case 290: /* type_specifier_nonarray: FE4M3VEC2  */
8932
16
#line 2154 "MachineIndependent/glslang.y"
8933
16
                {
8934
16
        parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe4m3 vector", parseContext.symbolTable.atBuiltInLevel());
8935
16
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8936
16
        (yyval.interm.type).basicType = EbtFloatE4M3;
8937
16
        (yyval.interm.type).setVector(2);
8938
16
    }
8939
16
#line 8940 "MachineIndependent/glslang_tab.cpp"
8940
16
    break;
8941
8942
8
  case 291: /* type_specifier_nonarray: FE4M3VEC3  */
8943
8
#line 2160 "MachineIndependent/glslang.y"
8944
8
                {
8945
8
        parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe4m3 vector", parseContext.symbolTable.atBuiltInLevel());
8946
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8947
8
        (yyval.interm.type).basicType = EbtFloatE4M3;
8948
8
        (yyval.interm.type).setVector(3);
8949
8
    }
8950
8
#line 8951 "MachineIndependent/glslang_tab.cpp"
8951
8
    break;
8952
8953
16
  case 292: /* type_specifier_nonarray: FE4M3VEC4  */
8954
16
#line 2166 "MachineIndependent/glslang.y"
8955
16
                {
8956
16
        parseContext.floate4m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe4m3 vector", parseContext.symbolTable.atBuiltInLevel());
8957
16
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8958
16
        (yyval.interm.type).basicType = EbtFloatE4M3;
8959
16
        (yyval.interm.type).setVector(4);
8960
16
    }
8961
16
#line 8962 "MachineIndependent/glslang_tab.cpp"
8962
16
    break;
8963
8964
6
  case 293: /* type_specifier_nonarray: FE2M1VEC2  */
8965
6
#line 2172 "MachineIndependent/glslang.y"
8966
6
                {
8967
6
        parseContext.floate2m1ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m1 vector", parseContext.symbolTable.atBuiltInLevel());
8968
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8969
6
        (yyval.interm.type).basicType = EbtFloatE2M1;
8970
6
        (yyval.interm.type).setVector(2);
8971
6
    }
8972
6
#line 8973 "MachineIndependent/glslang_tab.cpp"
8973
6
    break;
8974
8975
2
  case 294: /* type_specifier_nonarray: FE2M1VEC3  */
8976
2
#line 2178 "MachineIndependent/glslang.y"
8977
2
                {
8978
2
        parseContext.floate2m1ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m1 vector", parseContext.symbolTable.atBuiltInLevel());
8979
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8980
2
        (yyval.interm.type).basicType = EbtFloatE2M1;
8981
2
        (yyval.interm.type).setVector(3);
8982
2
    }
8983
2
#line 8984 "MachineIndependent/glslang_tab.cpp"
8984
2
    break;
8985
8986
6
  case 295: /* type_specifier_nonarray: FE2M1VEC4  */
8987
6
#line 2184 "MachineIndependent/glslang.y"
8988
6
                {
8989
6
        parseContext.floate2m1ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m1 vector", parseContext.symbolTable.atBuiltInLevel());
8990
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
8991
6
        (yyval.interm.type).basicType = EbtFloatE2M1;
8992
6
        (yyval.interm.type).setVector(4);
8993
6
    }
8994
6
#line 8995 "MachineIndependent/glslang_tab.cpp"
8995
6
    break;
8996
8997
2
  case 296: /* type_specifier_nonarray: FE3M2VEC2  */
8998
2
#line 2190 "MachineIndependent/glslang.y"
8999
2
                {
9000
2
        parseContext.floate3m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe3m2 vector", parseContext.symbolTable.atBuiltInLevel());
9001
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9002
2
        (yyval.interm.type).basicType = EbtFloatE3M2;
9003
2
        (yyval.interm.type).setVector(2);
9004
2
    }
9005
2
#line 9006 "MachineIndependent/glslang_tab.cpp"
9006
2
    break;
9007
9008
2
  case 297: /* type_specifier_nonarray: FE3M2VEC3  */
9009
2
#line 2196 "MachineIndependent/glslang.y"
9010
2
                {
9011
2
        parseContext.floate3m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe3m2 vector", parseContext.symbolTable.atBuiltInLevel());
9012
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9013
2
        (yyval.interm.type).basicType = EbtFloatE3M2;
9014
2
        (yyval.interm.type).setVector(3);
9015
2
    }
9016
2
#line 9017 "MachineIndependent/glslang_tab.cpp"
9017
2
    break;
9018
9019
6
  case 298: /* type_specifier_nonarray: FE3M2VEC4  */
9020
6
#line 2202 "MachineIndependent/glslang.y"
9021
6
                {
9022
6
        parseContext.floate3m2ScalarVectorCheck((yyvsp[0].lex).loc, "fe3m2 vector", parseContext.symbolTable.atBuiltInLevel());
9023
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9024
6
        (yyval.interm.type).basicType = EbtFloatE3M2;
9025
6
        (yyval.interm.type).setVector(4);
9026
6
    }
9027
6
#line 9028 "MachineIndependent/glslang_tab.cpp"
9028
6
    break;
9029
9030
2
  case 299: /* type_specifier_nonarray: FE2M3VEC2  */
9031
2
#line 2208 "MachineIndependent/glslang.y"
9032
2
                {
9033
2
        parseContext.floate2m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m3 vector", parseContext.symbolTable.atBuiltInLevel());
9034
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9035
2
        (yyval.interm.type).basicType = EbtFloatE2M3;
9036
2
        (yyval.interm.type).setVector(2);
9037
2
    }
9038
2
#line 9039 "MachineIndependent/glslang_tab.cpp"
9039
2
    break;
9040
9041
2
  case 300: /* type_specifier_nonarray: FE2M3VEC3  */
9042
2
#line 2214 "MachineIndependent/glslang.y"
9043
2
                {
9044
2
        parseContext.floate2m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m3 vector", parseContext.symbolTable.atBuiltInLevel());
9045
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9046
2
        (yyval.interm.type).basicType = EbtFloatE2M3;
9047
2
        (yyval.interm.type).setVector(3);
9048
2
    }
9049
2
#line 9050 "MachineIndependent/glslang_tab.cpp"
9050
2
    break;
9051
9052
6
  case 301: /* type_specifier_nonarray: FE2M3VEC4  */
9053
6
#line 2220 "MachineIndependent/glslang.y"
9054
6
                {
9055
6
        parseContext.floate2m3ScalarVectorCheck((yyvsp[0].lex).loc, "fe2m3 vector", parseContext.symbolTable.atBuiltInLevel());
9056
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9057
6
        (yyval.interm.type).basicType = EbtFloatE2M3;
9058
6
        (yyval.interm.type).setVector(4);
9059
6
    }
9060
6
#line 9061 "MachineIndependent/glslang_tab.cpp"
9061
6
    break;
9062
9063
8
  case 302: /* type_specifier_nonarray: FUE8M0VEC2  */
9064
8
#line 2226 "MachineIndependent/glslang.y"
9065
8
                 {
9066
8
        parseContext.floatue8m0ScalarVectorCheck((yyvsp[0].lex).loc, "fue8m0 vector", parseContext.symbolTable.atBuiltInLevel());
9067
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9068
8
        (yyval.interm.type).basicType = EbtFloatUE8M0;
9069
8
        (yyval.interm.type).setVector(2);
9070
8
    }
9071
8
#line 9072 "MachineIndependent/glslang_tab.cpp"
9072
8
    break;
9073
9074
8
  case 303: /* type_specifier_nonarray: FUE8M0VEC3  */
9075
8
#line 2232 "MachineIndependent/glslang.y"
9076
8
                 {
9077
8
        parseContext.floatue8m0ScalarVectorCheck((yyvsp[0].lex).loc, "fue8m0 vector", parseContext.symbolTable.atBuiltInLevel());
9078
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9079
8
        (yyval.interm.type).basicType = EbtFloatUE8M0;
9080
8
        (yyval.interm.type).setVector(3);
9081
8
    }
9082
8
#line 9083 "MachineIndependent/glslang_tab.cpp"
9083
8
    break;
9084
9085
8
  case 304: /* type_specifier_nonarray: FUE8M0VEC4  */
9086
8
#line 2238 "MachineIndependent/glslang.y"
9087
8
                 {
9088
8
        parseContext.floatue8m0ScalarVectorCheck((yyvsp[0].lex).loc, "fue8m0 vector", parseContext.symbolTable.atBuiltInLevel());
9089
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9090
8
        (yyval.interm.type).basicType = EbtFloatUE8M0;
9091
8
        (yyval.interm.type).setVector(4);
9092
8
    }
9093
8
#line 9094 "MachineIndependent/glslang_tab.cpp"
9094
8
    break;
9095
9096
8
  case 305: /* type_specifier_nonarray: FMXINT8VEC2  */
9097
8
#line 2244 "MachineIndependent/glslang.y"
9098
8
                  {
9099
8
        parseContext.floatmxint8ScalarVectorCheck((yyvsp[0].lex).loc, "fmxint8 vector", parseContext.symbolTable.atBuiltInLevel());
9100
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9101
8
        (yyval.interm.type).basicType = EbtFloatMXINT8;
9102
8
        (yyval.interm.type).setVector(2);
9103
8
    }
9104
8
#line 9105 "MachineIndependent/glslang_tab.cpp"
9105
8
    break;
9106
9107
8
  case 306: /* type_specifier_nonarray: FMXINT8VEC3  */
9108
8
#line 2250 "MachineIndependent/glslang.y"
9109
8
                  {
9110
8
        parseContext.floatmxint8ScalarVectorCheck((yyvsp[0].lex).loc, "fmxint8 vector", parseContext.symbolTable.atBuiltInLevel());
9111
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9112
8
        (yyval.interm.type).basicType = EbtFloatMXINT8;
9113
8
        (yyval.interm.type).setVector(3);
9114
8
    }
9115
8
#line 9116 "MachineIndependent/glslang_tab.cpp"
9116
8
    break;
9117
9118
8
  case 307: /* type_specifier_nonarray: FMXINT8VEC4  */
9119
8
#line 2256 "MachineIndependent/glslang.y"
9120
8
                  {
9121
8
        parseContext.floatmxint8ScalarVectorCheck((yyvsp[0].lex).loc, "fmxint8 vector", parseContext.symbolTable.atBuiltInLevel());
9122
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9123
8
        (yyval.interm.type).basicType = EbtFloatMXINT8;
9124
8
        (yyval.interm.type).setVector(4);
9125
8
    }
9126
8
#line 9127 "MachineIndependent/glslang_tab.cpp"
9127
8
    break;
9128
9129
1.90k
  case 308: /* type_specifier_nonarray: F16VEC2  */
9130
1.90k
#line 2262 "MachineIndependent/glslang.y"
9131
1.90k
              {
9132
1.90k
        parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
9133
1.90k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9134
1.90k
        (yyval.interm.type).basicType = EbtFloat16;
9135
1.90k
        (yyval.interm.type).setVector(2);
9136
1.90k
    }
9137
1.90k
#line 9138 "MachineIndependent/glslang_tab.cpp"
9138
1.90k
    break;
9139
9140
1.31k
  case 309: /* type_specifier_nonarray: F16VEC3  */
9141
1.31k
#line 2268 "MachineIndependent/glslang.y"
9142
1.31k
              {
9143
1.31k
        parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
9144
1.31k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9145
1.31k
        (yyval.interm.type).basicType = EbtFloat16;
9146
1.31k
        (yyval.interm.type).setVector(3);
9147
1.31k
    }
9148
1.31k
#line 9149 "MachineIndependent/glslang_tab.cpp"
9149
1.31k
    break;
9150
9151
3.27k
  case 310: /* type_specifier_nonarray: F16VEC4  */
9152
3.27k
#line 2274 "MachineIndependent/glslang.y"
9153
3.27k
              {
9154
3.27k
        parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
9155
3.27k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9156
3.27k
        (yyval.interm.type).basicType = EbtFloat16;
9157
3.27k
        (yyval.interm.type).setVector(4);
9158
3.27k
    }
9159
3.27k
#line 9160 "MachineIndependent/glslang_tab.cpp"
9160
3.27k
    break;
9161
9162
8
  case 311: /* type_specifier_nonarray: F32VEC2  */
9163
8
#line 2280 "MachineIndependent/glslang.y"
9164
8
              {
9165
8
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
9166
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9167
8
        (yyval.interm.type).basicType = EbtFloat;
9168
8
        (yyval.interm.type).setVector(2);
9169
8
    }
9170
8
#line 9171 "MachineIndependent/glslang_tab.cpp"
9171
8
    break;
9172
9173
8
  case 312: /* type_specifier_nonarray: F32VEC3  */
9174
8
#line 2286 "MachineIndependent/glslang.y"
9175
8
              {
9176
8
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
9177
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9178
8
        (yyval.interm.type).basicType = EbtFloat;
9179
8
        (yyval.interm.type).setVector(3);
9180
8
    }
9181
8
#line 9182 "MachineIndependent/glslang_tab.cpp"
9182
8
    break;
9183
9184
8
  case 313: /* type_specifier_nonarray: F32VEC4  */
9185
8
#line 2292 "MachineIndependent/glslang.y"
9186
8
              {
9187
8
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
9188
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9189
8
        (yyval.interm.type).basicType = EbtFloat;
9190
8
        (yyval.interm.type).setVector(4);
9191
8
    }
9192
8
#line 9193 "MachineIndependent/glslang_tab.cpp"
9193
8
    break;
9194
9195
180
  case 314: /* type_specifier_nonarray: F64VEC2  */
9196
180
#line 2298 "MachineIndependent/glslang.y"
9197
180
              {
9198
180
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
9199
180
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9200
180
        (yyval.interm.type).basicType = EbtDouble;
9201
180
        (yyval.interm.type).setVector(2);
9202
180
    }
9203
180
#line 9204 "MachineIndependent/glslang_tab.cpp"
9204
180
    break;
9205
9206
172
  case 315: /* type_specifier_nonarray: F64VEC3  */
9207
172
#line 2304 "MachineIndependent/glslang.y"
9208
172
              {
9209
172
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
9210
172
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9211
172
        (yyval.interm.type).basicType = EbtDouble;
9212
172
        (yyval.interm.type).setVector(3);
9213
172
    }
9214
172
#line 9215 "MachineIndependent/glslang_tab.cpp"
9215
172
    break;
9216
9217
172
  case 316: /* type_specifier_nonarray: F64VEC4  */
9218
172
#line 2310 "MachineIndependent/glslang.y"
9219
172
              {
9220
172
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
9221
172
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9222
172
        (yyval.interm.type).basicType = EbtDouble;
9223
172
        (yyval.interm.type).setVector(4);
9224
172
    }
9225
172
#line 9226 "MachineIndependent/glslang_tab.cpp"
9226
172
    break;
9227
9228
408
  case 317: /* type_specifier_nonarray: I8VEC2  */
9229
408
#line 2316 "MachineIndependent/glslang.y"
9230
408
             {
9231
408
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9232
408
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9233
408
        (yyval.interm.type).basicType = EbtInt8;
9234
408
        (yyval.interm.type).setVector(2);
9235
408
    }
9236
408
#line 9237 "MachineIndependent/glslang_tab.cpp"
9237
408
    break;
9238
9239
396
  case 318: /* type_specifier_nonarray: I8VEC3  */
9240
396
#line 2322 "MachineIndependent/glslang.y"
9241
396
             {
9242
396
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9243
396
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9244
396
        (yyval.interm.type).basicType = EbtInt8;
9245
396
        (yyval.interm.type).setVector(3);
9246
396
    }
9247
396
#line 9248 "MachineIndependent/glslang_tab.cpp"
9248
396
    break;
9249
9250
408
  case 319: /* type_specifier_nonarray: I8VEC4  */
9251
408
#line 2328 "MachineIndependent/glslang.y"
9252
408
             {
9253
408
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9254
408
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9255
408
        (yyval.interm.type).basicType = EbtInt8;
9256
408
        (yyval.interm.type).setVector(4);
9257
408
    }
9258
408
#line 9259 "MachineIndependent/glslang_tab.cpp"
9259
408
    break;
9260
9261
536
  case 320: /* type_specifier_nonarray: I16VEC2  */
9262
536
#line 2334 "MachineIndependent/glslang.y"
9263
536
              {
9264
536
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9265
536
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9266
536
        (yyval.interm.type).basicType = EbtInt16;
9267
536
        (yyval.interm.type).setVector(2);
9268
536
    }
9269
536
#line 9270 "MachineIndependent/glslang_tab.cpp"
9270
536
    break;
9271
9272
520
  case 321: /* type_specifier_nonarray: I16VEC3  */
9273
520
#line 2340 "MachineIndependent/glslang.y"
9274
520
              {
9275
520
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9276
520
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9277
520
        (yyval.interm.type).basicType = EbtInt16;
9278
520
        (yyval.interm.type).setVector(3);
9279
520
    }
9280
520
#line 9281 "MachineIndependent/glslang_tab.cpp"
9281
520
    break;
9282
9283
536
  case 322: /* type_specifier_nonarray: I16VEC4  */
9284
536
#line 2346 "MachineIndependent/glslang.y"
9285
536
              {
9286
536
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9287
536
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9288
536
        (yyval.interm.type).basicType = EbtInt16;
9289
536
        (yyval.interm.type).setVector(4);
9290
536
    }
9291
536
#line 9292 "MachineIndependent/glslang_tab.cpp"
9292
536
    break;
9293
9294
12
  case 323: /* type_specifier_nonarray: I32VEC2  */
9295
12
#line 2352 "MachineIndependent/glslang.y"
9296
12
              {
9297
12
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9298
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9299
12
        (yyval.interm.type).basicType = EbtInt;
9300
12
        (yyval.interm.type).setVector(2);
9301
12
    }
9302
12
#line 9303 "MachineIndependent/glslang_tab.cpp"
9303
12
    break;
9304
9305
8
  case 324: /* type_specifier_nonarray: I32VEC3  */
9306
8
#line 2358 "MachineIndependent/glslang.y"
9307
8
              {
9308
8
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9309
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9310
8
        (yyval.interm.type).basicType = EbtInt;
9311
8
        (yyval.interm.type).setVector(3);
9312
8
    }
9313
8
#line 9314 "MachineIndependent/glslang_tab.cpp"
9314
8
    break;
9315
9316
8
  case 325: /* type_specifier_nonarray: I32VEC4  */
9317
8
#line 2364 "MachineIndependent/glslang.y"
9318
8
              {
9319
8
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
9320
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9321
8
        (yyval.interm.type).basicType = EbtInt;
9322
8
        (yyval.interm.type).setVector(4);
9323
8
    }
9324
8
#line 9325 "MachineIndependent/glslang_tab.cpp"
9325
8
    break;
9326
9327
478
  case 326: /* type_specifier_nonarray: I64VEC2  */
9328
478
#line 2370 "MachineIndependent/glslang.y"
9329
478
              {
9330
478
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
9331
478
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9332
478
        (yyval.interm.type).basicType = EbtInt64;
9333
478
        (yyval.interm.type).setVector(2);
9334
478
    }
9335
478
#line 9336 "MachineIndependent/glslang_tab.cpp"
9336
478
    break;
9337
9338
470
  case 327: /* type_specifier_nonarray: I64VEC3  */
9339
470
#line 2376 "MachineIndependent/glslang.y"
9340
470
              {
9341
470
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
9342
470
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9343
470
        (yyval.interm.type).basicType = EbtInt64;
9344
470
        (yyval.interm.type).setVector(3);
9345
470
    }
9346
470
#line 9347 "MachineIndependent/glslang_tab.cpp"
9347
470
    break;
9348
9349
576
  case 328: /* type_specifier_nonarray: I64VEC4  */
9350
576
#line 2382 "MachineIndependent/glslang.y"
9351
576
              {
9352
576
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
9353
576
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9354
576
        (yyval.interm.type).basicType = EbtInt64;
9355
576
        (yyval.interm.type).setVector(4);
9356
576
    }
9357
576
#line 9358 "MachineIndependent/glslang_tab.cpp"
9358
576
    break;
9359
9360
394
  case 329: /* type_specifier_nonarray: U8VEC2  */
9361
394
#line 2388 "MachineIndependent/glslang.y"
9362
394
             {
9363
394
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9364
394
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9365
394
        (yyval.interm.type).basicType = EbtUint8;
9366
394
        (yyval.interm.type).setVector(2);
9367
394
    }
9368
394
#line 9369 "MachineIndependent/glslang_tab.cpp"
9369
394
    break;
9370
9371
390
  case 330: /* type_specifier_nonarray: U8VEC3  */
9372
390
#line 2394 "MachineIndependent/glslang.y"
9373
390
             {
9374
390
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9375
390
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9376
390
        (yyval.interm.type).basicType = EbtUint8;
9377
390
        (yyval.interm.type).setVector(3);
9378
390
    }
9379
390
#line 9380 "MachineIndependent/glslang_tab.cpp"
9380
390
    break;
9381
9382
394
  case 331: /* type_specifier_nonarray: U8VEC4  */
9383
394
#line 2400 "MachineIndependent/glslang.y"
9384
394
             {
9385
394
        parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9386
394
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9387
394
        (yyval.interm.type).basicType = EbtUint8;
9388
394
        (yyval.interm.type).setVector(4);
9389
394
    }
9390
394
#line 9391 "MachineIndependent/glslang_tab.cpp"
9391
394
    break;
9392
9393
516
  case 332: /* type_specifier_nonarray: U16VEC2  */
9394
516
#line 2406 "MachineIndependent/glslang.y"
9395
516
              {
9396
516
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9397
516
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9398
516
        (yyval.interm.type).basicType = EbtUint16;
9399
516
        (yyval.interm.type).setVector(2);
9400
516
    }
9401
516
#line 9402 "MachineIndependent/glslang_tab.cpp"
9402
516
    break;
9403
9404
508
  case 333: /* type_specifier_nonarray: U16VEC3  */
9405
508
#line 2412 "MachineIndependent/glslang.y"
9406
508
              {
9407
508
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9408
508
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9409
508
        (yyval.interm.type).basicType = EbtUint16;
9410
508
        (yyval.interm.type).setVector(3);
9411
508
    }
9412
508
#line 9413 "MachineIndependent/glslang_tab.cpp"
9413
508
    break;
9414
9415
516
  case 334: /* type_specifier_nonarray: U16VEC4  */
9416
516
#line 2418 "MachineIndependent/glslang.y"
9417
516
              {
9418
516
        parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9419
516
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9420
516
        (yyval.interm.type).basicType = EbtUint16;
9421
516
        (yyval.interm.type).setVector(4);
9422
516
    }
9423
516
#line 9424 "MachineIndependent/glslang_tab.cpp"
9424
516
    break;
9425
9426
16
  case 335: /* type_specifier_nonarray: U32VEC2  */
9427
16
#line 2424 "MachineIndependent/glslang.y"
9428
16
              {
9429
16
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9430
16
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9431
16
        (yyval.interm.type).basicType = EbtUint;
9432
16
        (yyval.interm.type).setVector(2);
9433
16
    }
9434
16
#line 9435 "MachineIndependent/glslang_tab.cpp"
9435
16
    break;
9436
9437
16
  case 336: /* type_specifier_nonarray: U32VEC3  */
9438
16
#line 2430 "MachineIndependent/glslang.y"
9439
16
              {
9440
16
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9441
16
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9442
16
        (yyval.interm.type).basicType = EbtUint;
9443
16
        (yyval.interm.type).setVector(3);
9444
16
    }
9445
16
#line 9446 "MachineIndependent/glslang_tab.cpp"
9446
16
    break;
9447
9448
8
  case 337: /* type_specifier_nonarray: U32VEC4  */
9449
8
#line 2436 "MachineIndependent/glslang.y"
9450
8
              {
9451
8
        parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9452
8
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9453
8
        (yyval.interm.type).basicType = EbtUint;
9454
8
        (yyval.interm.type).setVector(4);
9455
8
    }
9456
8
#line 9457 "MachineIndependent/glslang_tab.cpp"
9457
8
    break;
9458
9459
462
  case 338: /* type_specifier_nonarray: U64VEC2  */
9460
462
#line 2442 "MachineIndependent/glslang.y"
9461
462
              {
9462
462
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9463
462
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9464
462
        (yyval.interm.type).basicType = EbtUint64;
9465
462
        (yyval.interm.type).setVector(2);
9466
462
    }
9467
462
#line 9468 "MachineIndependent/glslang_tab.cpp"
9468
462
    break;
9469
9470
454
  case 339: /* type_specifier_nonarray: U64VEC3  */
9471
454
#line 2448 "MachineIndependent/glslang.y"
9472
454
              {
9473
454
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9474
454
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9475
454
        (yyval.interm.type).basicType = EbtUint64;
9476
454
        (yyval.interm.type).setVector(3);
9477
454
    }
9478
454
#line 9479 "MachineIndependent/glslang_tab.cpp"
9479
454
    break;
9480
9481
560
  case 340: /* type_specifier_nonarray: U64VEC4  */
9482
560
#line 2454 "MachineIndependent/glslang.y"
9483
560
              {
9484
560
        parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
9485
560
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9486
560
        (yyval.interm.type).basicType = EbtUint64;
9487
560
        (yyval.interm.type).setVector(4);
9488
560
    }
9489
560
#line 9490 "MachineIndependent/glslang_tab.cpp"
9490
560
    break;
9491
9492
18
  case 341: /* type_specifier_nonarray: DMAT2  */
9493
18
#line 2460 "MachineIndependent/glslang.y"
9494
18
            {
9495
18
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9496
18
        if (! parseContext.symbolTable.atBuiltInLevel())
9497
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9498
18
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9499
18
        (yyval.interm.type).basicType = EbtDouble;
9500
18
        (yyval.interm.type).setMatrix(2, 2);
9501
18
    }
9502
18
#line 9503 "MachineIndependent/glslang_tab.cpp"
9503
18
    break;
9504
9505
18
  case 342: /* type_specifier_nonarray: DMAT3  */
9506
18
#line 2468 "MachineIndependent/glslang.y"
9507
18
            {
9508
18
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9509
18
        if (! parseContext.symbolTable.atBuiltInLevel())
9510
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9511
18
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9512
18
        (yyval.interm.type).basicType = EbtDouble;
9513
18
        (yyval.interm.type).setMatrix(3, 3);
9514
18
    }
9515
18
#line 9516 "MachineIndependent/glslang_tab.cpp"
9516
18
    break;
9517
9518
18
  case 343: /* type_specifier_nonarray: DMAT4  */
9519
18
#line 2476 "MachineIndependent/glslang.y"
9520
18
            {
9521
18
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9522
18
        if (! parseContext.symbolTable.atBuiltInLevel())
9523
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9524
18
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9525
18
        (yyval.interm.type).basicType = EbtDouble;
9526
18
        (yyval.interm.type).setMatrix(4, 4);
9527
18
    }
9528
18
#line 9529 "MachineIndependent/glslang_tab.cpp"
9529
18
    break;
9530
9531
0
  case 344: /* type_specifier_nonarray: DMAT2X2  */
9532
0
#line 2484 "MachineIndependent/glslang.y"
9533
0
              {
9534
0
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9535
0
        if (! parseContext.symbolTable.atBuiltInLevel())
9536
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9537
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9538
0
        (yyval.interm.type).basicType = EbtDouble;
9539
0
        (yyval.interm.type).setMatrix(2, 2);
9540
0
    }
9541
0
#line 9542 "MachineIndependent/glslang_tab.cpp"
9542
0
    break;
9543
9544
12
  case 345: /* type_specifier_nonarray: DMAT2X3  */
9545
12
#line 2492 "MachineIndependent/glslang.y"
9546
12
              {
9547
12
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9548
12
        if (! parseContext.symbolTable.atBuiltInLevel())
9549
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9550
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9551
12
        (yyval.interm.type).basicType = EbtDouble;
9552
12
        (yyval.interm.type).setMatrix(2, 3);
9553
12
    }
9554
12
#line 9555 "MachineIndependent/glslang_tab.cpp"
9555
12
    break;
9556
9557
12
  case 346: /* type_specifier_nonarray: DMAT2X4  */
9558
12
#line 2500 "MachineIndependent/glslang.y"
9559
12
              {
9560
12
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9561
12
        if (! parseContext.symbolTable.atBuiltInLevel())
9562
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9563
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9564
12
        (yyval.interm.type).basicType = EbtDouble;
9565
12
        (yyval.interm.type).setMatrix(2, 4);
9566
12
    }
9567
12
#line 9568 "MachineIndependent/glslang_tab.cpp"
9568
12
    break;
9569
9570
12
  case 347: /* type_specifier_nonarray: DMAT3X2  */
9571
12
#line 2508 "MachineIndependent/glslang.y"
9572
12
              {
9573
12
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9574
12
        if (! parseContext.symbolTable.atBuiltInLevel())
9575
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9576
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9577
12
        (yyval.interm.type).basicType = EbtDouble;
9578
12
        (yyval.interm.type).setMatrix(3, 2);
9579
12
    }
9580
12
#line 9581 "MachineIndependent/glslang_tab.cpp"
9581
12
    break;
9582
9583
0
  case 348: /* type_specifier_nonarray: DMAT3X3  */
9584
0
#line 2516 "MachineIndependent/glslang.y"
9585
0
              {
9586
0
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9587
0
        if (! parseContext.symbolTable.atBuiltInLevel())
9588
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9589
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9590
0
        (yyval.interm.type).basicType = EbtDouble;
9591
0
        (yyval.interm.type).setMatrix(3, 3);
9592
0
    }
9593
0
#line 9594 "MachineIndependent/glslang_tab.cpp"
9594
0
    break;
9595
9596
12
  case 349: /* type_specifier_nonarray: DMAT3X4  */
9597
12
#line 2524 "MachineIndependent/glslang.y"
9598
12
              {
9599
12
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9600
12
        if (! parseContext.symbolTable.atBuiltInLevel())
9601
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9602
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9603
12
        (yyval.interm.type).basicType = EbtDouble;
9604
12
        (yyval.interm.type).setMatrix(3, 4);
9605
12
    }
9606
12
#line 9607 "MachineIndependent/glslang_tab.cpp"
9607
12
    break;
9608
9609
12
  case 350: /* type_specifier_nonarray: DMAT4X2  */
9610
12
#line 2532 "MachineIndependent/glslang.y"
9611
12
              {
9612
12
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9613
12
        if (! parseContext.symbolTable.atBuiltInLevel())
9614
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9615
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9616
12
        (yyval.interm.type).basicType = EbtDouble;
9617
12
        (yyval.interm.type).setMatrix(4, 2);
9618
12
    }
9619
12
#line 9620 "MachineIndependent/glslang_tab.cpp"
9620
12
    break;
9621
9622
12
  case 351: /* type_specifier_nonarray: DMAT4X3  */
9623
12
#line 2540 "MachineIndependent/glslang.y"
9624
12
              {
9625
12
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9626
12
        if (! parseContext.symbolTable.atBuiltInLevel())
9627
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9628
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9629
12
        (yyval.interm.type).basicType = EbtDouble;
9630
12
        (yyval.interm.type).setMatrix(4, 3);
9631
12
    }
9632
12
#line 9633 "MachineIndependent/glslang_tab.cpp"
9633
12
    break;
9634
9635
0
  case 352: /* type_specifier_nonarray: DMAT4X4  */
9636
0
#line 2548 "MachineIndependent/glslang.y"
9637
0
              {
9638
0
        parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
9639
0
        if (! parseContext.symbolTable.atBuiltInLevel())
9640
0
            parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
9641
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9642
0
        (yyval.interm.type).basicType = EbtDouble;
9643
0
        (yyval.interm.type).setMatrix(4, 4);
9644
0
    }
9645
0
#line 9646 "MachineIndependent/glslang_tab.cpp"
9646
0
    break;
9647
9648
18
  case 353: /* type_specifier_nonarray: F16MAT2  */
9649
18
#line 2556 "MachineIndependent/glslang.y"
9650
18
              {
9651
18
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9652
18
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9653
18
        (yyval.interm.type).basicType = EbtFloat16;
9654
18
        (yyval.interm.type).setMatrix(2, 2);
9655
18
    }
9656
18
#line 9657 "MachineIndependent/glslang_tab.cpp"
9657
18
    break;
9658
9659
18
  case 354: /* type_specifier_nonarray: F16MAT3  */
9660
18
#line 2562 "MachineIndependent/glslang.y"
9661
18
              {
9662
18
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9663
18
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9664
18
        (yyval.interm.type).basicType = EbtFloat16;
9665
18
        (yyval.interm.type).setMatrix(3, 3);
9666
18
    }
9667
18
#line 9668 "MachineIndependent/glslang_tab.cpp"
9668
18
    break;
9669
9670
18
  case 355: /* type_specifier_nonarray: F16MAT4  */
9671
18
#line 2568 "MachineIndependent/glslang.y"
9672
18
              {
9673
18
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9674
18
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9675
18
        (yyval.interm.type).basicType = EbtFloat16;
9676
18
        (yyval.interm.type).setMatrix(4, 4);
9677
18
    }
9678
18
#line 9679 "MachineIndependent/glslang_tab.cpp"
9679
18
    break;
9680
9681
0
  case 356: /* type_specifier_nonarray: F16MAT2X2  */
9682
0
#line 2574 "MachineIndependent/glslang.y"
9683
0
                {
9684
0
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9685
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9686
0
        (yyval.interm.type).basicType = EbtFloat16;
9687
0
        (yyval.interm.type).setMatrix(2, 2);
9688
0
    }
9689
0
#line 9690 "MachineIndependent/glslang_tab.cpp"
9690
0
    break;
9691
9692
12
  case 357: /* type_specifier_nonarray: F16MAT2X3  */
9693
12
#line 2580 "MachineIndependent/glslang.y"
9694
12
                {
9695
12
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9696
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9697
12
        (yyval.interm.type).basicType = EbtFloat16;
9698
12
        (yyval.interm.type).setMatrix(2, 3);
9699
12
    }
9700
12
#line 9701 "MachineIndependent/glslang_tab.cpp"
9701
12
    break;
9702
9703
12
  case 358: /* type_specifier_nonarray: F16MAT2X4  */
9704
12
#line 2586 "MachineIndependent/glslang.y"
9705
12
                {
9706
12
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9707
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9708
12
        (yyval.interm.type).basicType = EbtFloat16;
9709
12
        (yyval.interm.type).setMatrix(2, 4);
9710
12
    }
9711
12
#line 9712 "MachineIndependent/glslang_tab.cpp"
9712
12
    break;
9713
9714
12
  case 359: /* type_specifier_nonarray: F16MAT3X2  */
9715
12
#line 2592 "MachineIndependent/glslang.y"
9716
12
                {
9717
12
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9718
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9719
12
        (yyval.interm.type).basicType = EbtFloat16;
9720
12
        (yyval.interm.type).setMatrix(3, 2);
9721
12
    }
9722
12
#line 9723 "MachineIndependent/glslang_tab.cpp"
9723
12
    break;
9724
9725
0
  case 360: /* type_specifier_nonarray: F16MAT3X3  */
9726
0
#line 2598 "MachineIndependent/glslang.y"
9727
0
                {
9728
0
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9729
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9730
0
        (yyval.interm.type).basicType = EbtFloat16;
9731
0
        (yyval.interm.type).setMatrix(3, 3);
9732
0
    }
9733
0
#line 9734 "MachineIndependent/glslang_tab.cpp"
9734
0
    break;
9735
9736
12
  case 361: /* type_specifier_nonarray: F16MAT3X4  */
9737
12
#line 2604 "MachineIndependent/glslang.y"
9738
12
                {
9739
12
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9740
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9741
12
        (yyval.interm.type).basicType = EbtFloat16;
9742
12
        (yyval.interm.type).setMatrix(3, 4);
9743
12
    }
9744
12
#line 9745 "MachineIndependent/glslang_tab.cpp"
9745
12
    break;
9746
9747
12
  case 362: /* type_specifier_nonarray: F16MAT4X2  */
9748
12
#line 2610 "MachineIndependent/glslang.y"
9749
12
                {
9750
12
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9751
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9752
12
        (yyval.interm.type).basicType = EbtFloat16;
9753
12
        (yyval.interm.type).setMatrix(4, 2);
9754
12
    }
9755
12
#line 9756 "MachineIndependent/glslang_tab.cpp"
9756
12
    break;
9757
9758
12
  case 363: /* type_specifier_nonarray: F16MAT4X3  */
9759
12
#line 2616 "MachineIndependent/glslang.y"
9760
12
                {
9761
12
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9762
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9763
12
        (yyval.interm.type).basicType = EbtFloat16;
9764
12
        (yyval.interm.type).setMatrix(4, 3);
9765
12
    }
9766
12
#line 9767 "MachineIndependent/glslang_tab.cpp"
9767
12
    break;
9768
9769
0
  case 364: /* type_specifier_nonarray: F16MAT4X4  */
9770
0
#line 2622 "MachineIndependent/glslang.y"
9771
0
                {
9772
0
        parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
9773
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9774
0
        (yyval.interm.type).basicType = EbtFloat16;
9775
0
        (yyval.interm.type).setMatrix(4, 4);
9776
0
    }
9777
0
#line 9778 "MachineIndependent/glslang_tab.cpp"
9778
0
    break;
9779
9780
0
  case 365: /* type_specifier_nonarray: F32MAT2  */
9781
0
#line 2628 "MachineIndependent/glslang.y"
9782
0
              {
9783
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9784
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9785
0
        (yyval.interm.type).basicType = EbtFloat;
9786
0
        (yyval.interm.type).setMatrix(2, 2);
9787
0
    }
9788
0
#line 9789 "MachineIndependent/glslang_tab.cpp"
9789
0
    break;
9790
9791
0
  case 366: /* type_specifier_nonarray: F32MAT3  */
9792
0
#line 2634 "MachineIndependent/glslang.y"
9793
0
              {
9794
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9795
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9796
0
        (yyval.interm.type).basicType = EbtFloat;
9797
0
        (yyval.interm.type).setMatrix(3, 3);
9798
0
    }
9799
0
#line 9800 "MachineIndependent/glslang_tab.cpp"
9800
0
    break;
9801
9802
0
  case 367: /* type_specifier_nonarray: F32MAT4  */
9803
0
#line 2640 "MachineIndependent/glslang.y"
9804
0
              {
9805
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9806
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9807
0
        (yyval.interm.type).basicType = EbtFloat;
9808
0
        (yyval.interm.type).setMatrix(4, 4);
9809
0
    }
9810
0
#line 9811 "MachineIndependent/glslang_tab.cpp"
9811
0
    break;
9812
9813
0
  case 368: /* type_specifier_nonarray: F32MAT2X2  */
9814
0
#line 2646 "MachineIndependent/glslang.y"
9815
0
                {
9816
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9817
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9818
0
        (yyval.interm.type).basicType = EbtFloat;
9819
0
        (yyval.interm.type).setMatrix(2, 2);
9820
0
    }
9821
0
#line 9822 "MachineIndependent/glslang_tab.cpp"
9822
0
    break;
9823
9824
0
  case 369: /* type_specifier_nonarray: F32MAT2X3  */
9825
0
#line 2652 "MachineIndependent/glslang.y"
9826
0
                {
9827
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9828
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9829
0
        (yyval.interm.type).basicType = EbtFloat;
9830
0
        (yyval.interm.type).setMatrix(2, 3);
9831
0
    }
9832
0
#line 9833 "MachineIndependent/glslang_tab.cpp"
9833
0
    break;
9834
9835
0
  case 370: /* type_specifier_nonarray: F32MAT2X4  */
9836
0
#line 2658 "MachineIndependent/glslang.y"
9837
0
                {
9838
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9839
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9840
0
        (yyval.interm.type).basicType = EbtFloat;
9841
0
        (yyval.interm.type).setMatrix(2, 4);
9842
0
    }
9843
0
#line 9844 "MachineIndependent/glslang_tab.cpp"
9844
0
    break;
9845
9846
0
  case 371: /* type_specifier_nonarray: F32MAT3X2  */
9847
0
#line 2664 "MachineIndependent/glslang.y"
9848
0
                {
9849
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9850
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9851
0
        (yyval.interm.type).basicType = EbtFloat;
9852
0
        (yyval.interm.type).setMatrix(3, 2);
9853
0
    }
9854
0
#line 9855 "MachineIndependent/glslang_tab.cpp"
9855
0
    break;
9856
9857
0
  case 372: /* type_specifier_nonarray: F32MAT3X3  */
9858
0
#line 2670 "MachineIndependent/glslang.y"
9859
0
                {
9860
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9861
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9862
0
        (yyval.interm.type).basicType = EbtFloat;
9863
0
        (yyval.interm.type).setMatrix(3, 3);
9864
0
    }
9865
0
#line 9866 "MachineIndependent/glslang_tab.cpp"
9866
0
    break;
9867
9868
0
  case 373: /* type_specifier_nonarray: F32MAT3X4  */
9869
0
#line 2676 "MachineIndependent/glslang.y"
9870
0
                {
9871
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9872
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9873
0
        (yyval.interm.type).basicType = EbtFloat;
9874
0
        (yyval.interm.type).setMatrix(3, 4);
9875
0
    }
9876
0
#line 9877 "MachineIndependent/glslang_tab.cpp"
9877
0
    break;
9878
9879
0
  case 374: /* type_specifier_nonarray: F32MAT4X2  */
9880
0
#line 2682 "MachineIndependent/glslang.y"
9881
0
                {
9882
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9883
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9884
0
        (yyval.interm.type).basicType = EbtFloat;
9885
0
        (yyval.interm.type).setMatrix(4, 2);
9886
0
    }
9887
0
#line 9888 "MachineIndependent/glslang_tab.cpp"
9888
0
    break;
9889
9890
0
  case 375: /* type_specifier_nonarray: F32MAT4X3  */
9891
0
#line 2688 "MachineIndependent/glslang.y"
9892
0
                {
9893
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9894
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9895
0
        (yyval.interm.type).basicType = EbtFloat;
9896
0
        (yyval.interm.type).setMatrix(4, 3);
9897
0
    }
9898
0
#line 9899 "MachineIndependent/glslang_tab.cpp"
9899
0
    break;
9900
9901
0
  case 376: /* type_specifier_nonarray: F32MAT4X4  */
9902
0
#line 2694 "MachineIndependent/glslang.y"
9903
0
                {
9904
0
        parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
9905
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9906
0
        (yyval.interm.type).basicType = EbtFloat;
9907
0
        (yyval.interm.type).setMatrix(4, 4);
9908
0
    }
9909
0
#line 9910 "MachineIndependent/glslang_tab.cpp"
9910
0
    break;
9911
9912
0
  case 377: /* type_specifier_nonarray: F64MAT2  */
9913
0
#line 2700 "MachineIndependent/glslang.y"
9914
0
              {
9915
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9916
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9917
0
        (yyval.interm.type).basicType = EbtDouble;
9918
0
        (yyval.interm.type).setMatrix(2, 2);
9919
0
    }
9920
0
#line 9921 "MachineIndependent/glslang_tab.cpp"
9921
0
    break;
9922
9923
0
  case 378: /* type_specifier_nonarray: F64MAT3  */
9924
0
#line 2706 "MachineIndependent/glslang.y"
9925
0
              {
9926
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9927
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9928
0
        (yyval.interm.type).basicType = EbtDouble;
9929
0
        (yyval.interm.type).setMatrix(3, 3);
9930
0
    }
9931
0
#line 9932 "MachineIndependent/glslang_tab.cpp"
9932
0
    break;
9933
9934
0
  case 379: /* type_specifier_nonarray: F64MAT4  */
9935
0
#line 2712 "MachineIndependent/glslang.y"
9936
0
              {
9937
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9938
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9939
0
        (yyval.interm.type).basicType = EbtDouble;
9940
0
        (yyval.interm.type).setMatrix(4, 4);
9941
0
    }
9942
0
#line 9943 "MachineIndependent/glslang_tab.cpp"
9943
0
    break;
9944
9945
0
  case 380: /* type_specifier_nonarray: F64MAT2X2  */
9946
0
#line 2718 "MachineIndependent/glslang.y"
9947
0
                {
9948
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9949
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9950
0
        (yyval.interm.type).basicType = EbtDouble;
9951
0
        (yyval.interm.type).setMatrix(2, 2);
9952
0
    }
9953
0
#line 9954 "MachineIndependent/glslang_tab.cpp"
9954
0
    break;
9955
9956
0
  case 381: /* type_specifier_nonarray: F64MAT2X3  */
9957
0
#line 2724 "MachineIndependent/glslang.y"
9958
0
                {
9959
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9960
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9961
0
        (yyval.interm.type).basicType = EbtDouble;
9962
0
        (yyval.interm.type).setMatrix(2, 3);
9963
0
    }
9964
0
#line 9965 "MachineIndependent/glslang_tab.cpp"
9965
0
    break;
9966
9967
0
  case 382: /* type_specifier_nonarray: F64MAT2X4  */
9968
0
#line 2730 "MachineIndependent/glslang.y"
9969
0
                {
9970
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9971
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9972
0
        (yyval.interm.type).basicType = EbtDouble;
9973
0
        (yyval.interm.type).setMatrix(2, 4);
9974
0
    }
9975
0
#line 9976 "MachineIndependent/glslang_tab.cpp"
9976
0
    break;
9977
9978
0
  case 383: /* type_specifier_nonarray: F64MAT3X2  */
9979
0
#line 2736 "MachineIndependent/glslang.y"
9980
0
                {
9981
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9982
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9983
0
        (yyval.interm.type).basicType = EbtDouble;
9984
0
        (yyval.interm.type).setMatrix(3, 2);
9985
0
    }
9986
0
#line 9987 "MachineIndependent/glslang_tab.cpp"
9987
0
    break;
9988
9989
0
  case 384: /* type_specifier_nonarray: F64MAT3X3  */
9990
0
#line 2742 "MachineIndependent/glslang.y"
9991
0
                {
9992
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
9993
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
9994
0
        (yyval.interm.type).basicType = EbtDouble;
9995
0
        (yyval.interm.type).setMatrix(3, 3);
9996
0
    }
9997
0
#line 9998 "MachineIndependent/glslang_tab.cpp"
9998
0
    break;
9999
10000
0
  case 385: /* type_specifier_nonarray: F64MAT3X4  */
10001
0
#line 2748 "MachineIndependent/glslang.y"
10002
0
                {
10003
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
10004
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10005
0
        (yyval.interm.type).basicType = EbtDouble;
10006
0
        (yyval.interm.type).setMatrix(3, 4);
10007
0
    }
10008
0
#line 10009 "MachineIndependent/glslang_tab.cpp"
10009
0
    break;
10010
10011
0
  case 386: /* type_specifier_nonarray: F64MAT4X2  */
10012
0
#line 2754 "MachineIndependent/glslang.y"
10013
0
                {
10014
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
10015
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10016
0
        (yyval.interm.type).basicType = EbtDouble;
10017
0
        (yyval.interm.type).setMatrix(4, 2);
10018
0
    }
10019
0
#line 10020 "MachineIndependent/glslang_tab.cpp"
10020
0
    break;
10021
10022
0
  case 387: /* type_specifier_nonarray: F64MAT4X3  */
10023
0
#line 2760 "MachineIndependent/glslang.y"
10024
0
                {
10025
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
10026
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10027
0
        (yyval.interm.type).basicType = EbtDouble;
10028
0
        (yyval.interm.type).setMatrix(4, 3);
10029
0
    }
10030
0
#line 10031 "MachineIndependent/glslang_tab.cpp"
10031
0
    break;
10032
10033
0
  case 388: /* type_specifier_nonarray: F64MAT4X4  */
10034
0
#line 2766 "MachineIndependent/glslang.y"
10035
0
                {
10036
0
        parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
10037
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10038
0
        (yyval.interm.type).basicType = EbtDouble;
10039
0
        (yyval.interm.type).setMatrix(4, 4);
10040
0
    }
10041
0
#line 10042 "MachineIndependent/glslang_tab.cpp"
10042
0
    break;
10043
10044
0
  case 389: /* type_specifier_nonarray: ACCSTRUCTNV  */
10045
0
#line 2772 "MachineIndependent/glslang.y"
10046
0
                  {
10047
0
       (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10048
0
       (yyval.interm.type).basicType = EbtAccStruct;
10049
0
    }
10050
0
#line 10051 "MachineIndependent/glslang_tab.cpp"
10051
0
    break;
10052
10053
0
  case 390: /* type_specifier_nonarray: ACCSTRUCTEXT  */
10054
0
#line 2776 "MachineIndependent/glslang.y"
10055
0
                   {
10056
0
       (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10057
0
       (yyval.interm.type).basicType = EbtAccStruct;
10058
0
    }
10059
0
#line 10060 "MachineIndependent/glslang_tab.cpp"
10060
0
    break;
10061
10062
0
  case 391: /* type_specifier_nonarray: RAYQUERYEXT  */
10063
0
#line 2780 "MachineIndependent/glslang.y"
10064
0
                  {
10065
0
       (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10066
0
       (yyval.interm.type).basicType = EbtRayQuery;
10067
0
    }
10068
0
#line 10069 "MachineIndependent/glslang_tab.cpp"
10069
0
    break;
10070
10071
12
  case 392: /* type_specifier_nonarray: ATOMIC_UINT  */
10072
12
#line 2784 "MachineIndependent/glslang.y"
10073
12
                  {
10074
12
        parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
10075
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10076
12
        (yyval.interm.type).basicType = EbtAtomicUint;
10077
12
    }
10078
12
#line 10079 "MachineIndependent/glslang_tab.cpp"
10079
12
    break;
10080
10081
111
  case 393: /* type_specifier_nonarray: SAMPLER1D  */
10082
111
#line 2789 "MachineIndependent/glslang.y"
10083
111
                {
10084
111
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10085
111
        (yyval.interm.type).basicType = EbtSampler;
10086
111
        (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
10087
111
    }
10088
111
#line 10089 "MachineIndependent/glslang_tab.cpp"
10089
111
    break;
10090
10091
1.38k
  case 394: /* type_specifier_nonarray: SAMPLER2D  */
10092
1.38k
#line 2794 "MachineIndependent/glslang.y"
10093
1.38k
                {
10094
1.38k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10095
1.38k
        (yyval.interm.type).basicType = EbtSampler;
10096
1.38k
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
10097
1.38k
    }
10098
1.38k
#line 10099 "MachineIndependent/glslang_tab.cpp"
10099
1.38k
    break;
10100
10101
556
  case 395: /* type_specifier_nonarray: SAMPLER3D  */
10102
556
#line 2799 "MachineIndependent/glslang.y"
10103
556
                {
10104
556
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10105
556
        (yyval.interm.type).basicType = EbtSampler;
10106
556
        (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
10107
556
    }
10108
556
#line 10109 "MachineIndependent/glslang_tab.cpp"
10109
556
    break;
10110
10111
439
  case 396: /* type_specifier_nonarray: SAMPLERCUBE  */
10112
439
#line 2804 "MachineIndependent/glslang.y"
10113
439
                  {
10114
439
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10115
439
        (yyval.interm.type).basicType = EbtSampler;
10116
439
        (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
10117
439
    }
10118
439
#line 10119 "MachineIndependent/glslang_tab.cpp"
10119
439
    break;
10120
10121
314
  case 397: /* type_specifier_nonarray: SAMPLER2DSHADOW  */
10122
314
#line 2809 "MachineIndependent/glslang.y"
10123
314
                      {
10124
314
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10125
314
        (yyval.interm.type).basicType = EbtSampler;
10126
314
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
10127
314
    }
10128
314
#line 10129 "MachineIndependent/glslang_tab.cpp"
10129
314
    break;
10130
10131
54
  case 398: /* type_specifier_nonarray: SAMPLERCUBESHADOW  */
10132
54
#line 2814 "MachineIndependent/glslang.y"
10133
54
                        {
10134
54
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10135
54
        (yyval.interm.type).basicType = EbtSampler;
10136
54
        (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
10137
54
    }
10138
54
#line 10139 "MachineIndependent/glslang_tab.cpp"
10139
54
    break;
10140
10141
226
  case 399: /* type_specifier_nonarray: SAMPLER2DARRAY  */
10142
226
#line 2819 "MachineIndependent/glslang.y"
10143
226
                     {
10144
226
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10145
226
        (yyval.interm.type).basicType = EbtSampler;
10146
226
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
10147
226
    }
10148
226
#line 10149 "MachineIndependent/glslang_tab.cpp"
10149
226
    break;
10150
10151
74
  case 400: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW  */
10152
74
#line 2824 "MachineIndependent/glslang.y"
10153
74
                           {
10154
74
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10155
74
        (yyval.interm.type).basicType = EbtSampler;
10156
74
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
10157
74
    }
10158
74
#line 10159 "MachineIndependent/glslang_tab.cpp"
10159
74
    break;
10160
10161
72
  case 401: /* type_specifier_nonarray: SAMPLER1DSHADOW  */
10162
72
#line 2829 "MachineIndependent/glslang.y"
10163
72
                      {
10164
72
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10165
72
        (yyval.interm.type).basicType = EbtSampler;
10166
72
        (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
10167
72
    }
10168
72
#line 10169 "MachineIndependent/glslang_tab.cpp"
10169
72
    break;
10170
10171
62
  case 402: /* type_specifier_nonarray: SAMPLER1DARRAY  */
10172
62
#line 2834 "MachineIndependent/glslang.y"
10173
62
                     {
10174
62
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10175
62
        (yyval.interm.type).basicType = EbtSampler;
10176
62
        (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
10177
62
    }
10178
62
#line 10179 "MachineIndependent/glslang_tab.cpp"
10179
62
    break;
10180
10181
52
  case 403: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW  */
10182
52
#line 2839 "MachineIndependent/glslang.y"
10183
52
                           {
10184
52
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10185
52
        (yyval.interm.type).basicType = EbtSampler;
10186
52
        (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
10187
52
    }
10188
52
#line 10189 "MachineIndependent/glslang_tab.cpp"
10189
52
    break;
10190
10191
82
  case 404: /* type_specifier_nonarray: SAMPLERCUBEARRAY  */
10192
82
#line 2844 "MachineIndependent/glslang.y"
10193
82
                       {
10194
82
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10195
82
        (yyval.interm.type).basicType = EbtSampler;
10196
82
        (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
10197
82
    }
10198
82
#line 10199 "MachineIndependent/glslang_tab.cpp"
10199
82
    break;
10200
10201
44
  case 405: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW  */
10202
44
#line 2849 "MachineIndependent/glslang.y"
10203
44
                             {
10204
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10205
44
        (yyval.interm.type).basicType = EbtSampler;
10206
44
        (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
10207
44
    }
10208
44
#line 10209 "MachineIndependent/glslang_tab.cpp"
10209
44
    break;
10210
10211
200
  case 406: /* type_specifier_nonarray: F16SAMPLER1D  */
10212
200
#line 2854 "MachineIndependent/glslang.y"
10213
200
                   {
10214
200
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10215
200
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10216
200
        (yyval.interm.type).basicType = EbtSampler;
10217
200
        (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
10218
200
    }
10219
200
#line 10220 "MachineIndependent/glslang_tab.cpp"
10220
200
    break;
10221
10222
464
  case 407: /* type_specifier_nonarray: F16SAMPLER2D  */
10223
464
#line 2860 "MachineIndependent/glslang.y"
10224
464
                   {
10225
464
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10226
464
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10227
464
        (yyval.interm.type).basicType = EbtSampler;
10228
464
        (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
10229
464
    }
10230
464
#line 10231 "MachineIndependent/glslang_tab.cpp"
10231
464
    break;
10232
10233
236
  case 408: /* type_specifier_nonarray: F16SAMPLER3D  */
10234
236
#line 2866 "MachineIndependent/glslang.y"
10235
236
                   {
10236
236
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10237
236
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10238
236
        (yyval.interm.type).basicType = EbtSampler;
10239
236
        (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
10240
236
    }
10241
236
#line 10242 "MachineIndependent/glslang_tab.cpp"
10242
236
    break;
10243
10244
148
  case 409: /* type_specifier_nonarray: F16SAMPLERCUBE  */
10245
148
#line 2872 "MachineIndependent/glslang.y"
10246
148
                     {
10247
148
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10248
148
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10249
148
        (yyval.interm.type).basicType = EbtSampler;
10250
148
        (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
10251
148
    }
10252
148
#line 10253 "MachineIndependent/glslang_tab.cpp"
10253
148
    break;
10254
10255
124
  case 410: /* type_specifier_nonarray: F16SAMPLER1DSHADOW  */
10256
124
#line 2878 "MachineIndependent/glslang.y"
10257
124
                         {
10258
124
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10259
124
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10260
124
        (yyval.interm.type).basicType = EbtSampler;
10261
124
        (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
10262
124
    }
10263
124
#line 10264 "MachineIndependent/glslang_tab.cpp"
10264
124
    break;
10265
10266
216
  case 411: /* type_specifier_nonarray: F16SAMPLER2DSHADOW  */
10267
216
#line 2884 "MachineIndependent/glslang.y"
10268
216
                         {
10269
216
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10270
216
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10271
216
        (yyval.interm.type).basicType = EbtSampler;
10272
216
        (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
10273
216
    }
10274
216
#line 10275 "MachineIndependent/glslang_tab.cpp"
10275
216
    break;
10276
10277
88
  case 412: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW  */
10278
88
#line 2890 "MachineIndependent/glslang.y"
10279
88
                           {
10280
88
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10281
88
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10282
88
        (yyval.interm.type).basicType = EbtSampler;
10283
88
        (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
10284
88
    }
10285
88
#line 10286 "MachineIndependent/glslang_tab.cpp"
10286
88
    break;
10287
10288
104
  case 413: /* type_specifier_nonarray: F16SAMPLER1DARRAY  */
10289
104
#line 2896 "MachineIndependent/glslang.y"
10290
104
                        {
10291
104
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10292
104
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10293
104
        (yyval.interm.type).basicType = EbtSampler;
10294
104
        (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
10295
104
    }
10296
104
#line 10297 "MachineIndependent/glslang_tab.cpp"
10297
104
    break;
10298
10299
368
  case 414: /* type_specifier_nonarray: F16SAMPLER2DARRAY  */
10300
368
#line 2902 "MachineIndependent/glslang.y"
10301
368
                        {
10302
368
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10303
368
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10304
368
        (yyval.interm.type).basicType = EbtSampler;
10305
368
        (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
10306
368
    }
10307
368
#line 10308 "MachineIndependent/glslang_tab.cpp"
10308
368
    break;
10309
10310
88
  case 415: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW  */
10311
88
#line 2908 "MachineIndependent/glslang.y"
10312
88
                              {
10313
88
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10314
88
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10315
88
        (yyval.interm.type).basicType = EbtSampler;
10316
88
        (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
10317
88
    }
10318
88
#line 10319 "MachineIndependent/glslang_tab.cpp"
10319
88
    break;
10320
10321
116
  case 416: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW  */
10322
116
#line 2914 "MachineIndependent/glslang.y"
10323
116
                              {
10324
116
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10325
116
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10326
116
        (yyval.interm.type).basicType = EbtSampler;
10327
116
        (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
10328
116
    }
10329
116
#line 10330 "MachineIndependent/glslang_tab.cpp"
10330
116
    break;
10331
10332
148
  case 417: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY  */
10333
148
#line 2920 "MachineIndependent/glslang.y"
10334
148
                          {
10335
148
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10336
148
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10337
148
        (yyval.interm.type).basicType = EbtSampler;
10338
148
        (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
10339
148
    }
10340
148
#line 10341 "MachineIndependent/glslang_tab.cpp"
10341
148
    break;
10342
10343
64
  case 418: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW  */
10344
64
#line 2926 "MachineIndependent/glslang.y"
10345
64
                                {
10346
64
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10347
64
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10348
64
        (yyval.interm.type).basicType = EbtSampler;
10349
64
        (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
10350
64
    }
10351
64
#line 10352 "MachineIndependent/glslang_tab.cpp"
10352
64
    break;
10353
10354
108
  case 419: /* type_specifier_nonarray: ISAMPLER1D  */
10355
108
#line 2932 "MachineIndependent/glslang.y"
10356
108
                 {
10357
108
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10358
108
        (yyval.interm.type).basicType = EbtSampler;
10359
108
        (yyval.interm.type).sampler.set(EbtInt, Esd1D);
10360
108
    }
10361
108
#line 10362 "MachineIndependent/glslang_tab.cpp"
10362
108
    break;
10363
10364
272
  case 420: /* type_specifier_nonarray: ISAMPLER2D  */
10365
272
#line 2937 "MachineIndependent/glslang.y"
10366
272
                 {
10367
272
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10368
272
        (yyval.interm.type).basicType = EbtSampler;
10369
272
        (yyval.interm.type).sampler.set(EbtInt, Esd2D);
10370
272
    }
10371
272
#line 10372 "MachineIndependent/glslang_tab.cpp"
10372
272
    break;
10373
10374
126
  case 421: /* type_specifier_nonarray: ISAMPLER3D  */
10375
126
#line 2942 "MachineIndependent/glslang.y"
10376
126
                 {
10377
126
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10378
126
        (yyval.interm.type).basicType = EbtSampler;
10379
126
        (yyval.interm.type).sampler.set(EbtInt, Esd3D);
10380
126
    }
10381
126
#line 10382 "MachineIndependent/glslang_tab.cpp"
10382
126
    break;
10383
10384
82
  case 422: /* type_specifier_nonarray: ISAMPLERCUBE  */
10385
82
#line 2947 "MachineIndependent/glslang.y"
10386
82
                   {
10387
82
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10388
82
        (yyval.interm.type).basicType = EbtSampler;
10389
82
        (yyval.interm.type).sampler.set(EbtInt, EsdCube);
10390
82
    }
10391
82
#line 10392 "MachineIndependent/glslang_tab.cpp"
10392
82
    break;
10393
10394
224
  case 423: /* type_specifier_nonarray: ISAMPLER2DARRAY  */
10395
224
#line 2952 "MachineIndependent/glslang.y"
10396
224
                      {
10397
224
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10398
224
        (yyval.interm.type).basicType = EbtSampler;
10399
224
        (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
10400
224
    }
10401
224
#line 10402 "MachineIndependent/glslang_tab.cpp"
10402
224
    break;
10403
10404
272
  case 424: /* type_specifier_nonarray: USAMPLER2D  */
10405
272
#line 2957 "MachineIndependent/glslang.y"
10406
272
                 {
10407
272
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10408
272
        (yyval.interm.type).basicType = EbtSampler;
10409
272
        (yyval.interm.type).sampler.set(EbtUint, Esd2D);
10410
272
    }
10411
272
#line 10412 "MachineIndependent/glslang_tab.cpp"
10412
272
    break;
10413
10414
126
  case 425: /* type_specifier_nonarray: USAMPLER3D  */
10415
126
#line 2962 "MachineIndependent/glslang.y"
10416
126
                 {
10417
126
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10418
126
        (yyval.interm.type).basicType = EbtSampler;
10419
126
        (yyval.interm.type).sampler.set(EbtUint, Esd3D);
10420
126
    }
10421
126
#line 10422 "MachineIndependent/glslang_tab.cpp"
10422
126
    break;
10423
10424
82
  case 426: /* type_specifier_nonarray: USAMPLERCUBE  */
10425
82
#line 2967 "MachineIndependent/glslang.y"
10426
82
                   {
10427
82
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10428
82
        (yyval.interm.type).basicType = EbtSampler;
10429
82
        (yyval.interm.type).sampler.set(EbtUint, EsdCube);
10430
82
    }
10431
82
#line 10432 "MachineIndependent/glslang_tab.cpp"
10432
82
    break;
10433
10434
60
  case 427: /* type_specifier_nonarray: ISAMPLER1DARRAY  */
10435
60
#line 2972 "MachineIndependent/glslang.y"
10436
60
                      {
10437
60
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10438
60
        (yyval.interm.type).basicType = EbtSampler;
10439
60
        (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
10440
60
    }
10441
60
#line 10442 "MachineIndependent/glslang_tab.cpp"
10442
60
    break;
10443
10444
82
  case 428: /* type_specifier_nonarray: ISAMPLERCUBEARRAY  */
10445
82
#line 2977 "MachineIndependent/glslang.y"
10446
82
                        {
10447
82
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10448
82
        (yyval.interm.type).basicType = EbtSampler;
10449
82
        (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
10450
82
    }
10451
82
#line 10452 "MachineIndependent/glslang_tab.cpp"
10452
82
    break;
10453
10454
108
  case 429: /* type_specifier_nonarray: USAMPLER1D  */
10455
108
#line 2982 "MachineIndependent/glslang.y"
10456
108
                 {
10457
108
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10458
108
        (yyval.interm.type).basicType = EbtSampler;
10459
108
        (yyval.interm.type).sampler.set(EbtUint, Esd1D);
10460
108
    }
10461
108
#line 10462 "MachineIndependent/glslang_tab.cpp"
10462
108
    break;
10463
10464
60
  case 430: /* type_specifier_nonarray: USAMPLER1DARRAY  */
10465
60
#line 2987 "MachineIndependent/glslang.y"
10466
60
                      {
10467
60
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10468
60
        (yyval.interm.type).basicType = EbtSampler;
10469
60
        (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
10470
60
    }
10471
60
#line 10472 "MachineIndependent/glslang_tab.cpp"
10472
60
    break;
10473
10474
82
  case 431: /* type_specifier_nonarray: USAMPLERCUBEARRAY  */
10475
82
#line 2992 "MachineIndependent/glslang.y"
10476
82
                        {
10477
82
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10478
82
        (yyval.interm.type).basicType = EbtSampler;
10479
82
        (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
10480
82
    }
10481
82
#line 10482 "MachineIndependent/glslang_tab.cpp"
10482
82
    break;
10483
10484
2
  case 432: /* type_specifier_nonarray: TEXTURECUBEARRAY  */
10485
2
#line 2997 "MachineIndependent/glslang.y"
10486
2
                       {
10487
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10488
2
        (yyval.interm.type).basicType = EbtSampler;
10489
2
        (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
10490
2
    }
10491
2
#line 10492 "MachineIndependent/glslang_tab.cpp"
10492
2
    break;
10493
10494
2
  case 433: /* type_specifier_nonarray: ITEXTURECUBEARRAY  */
10495
2
#line 3002 "MachineIndependent/glslang.y"
10496
2
                        {
10497
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10498
2
        (yyval.interm.type).basicType = EbtSampler;
10499
2
        (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
10500
2
    }
10501
2
#line 10502 "MachineIndependent/glslang_tab.cpp"
10502
2
    break;
10503
10504
2
  case 434: /* type_specifier_nonarray: UTEXTURECUBEARRAY  */
10505
2
#line 3007 "MachineIndependent/glslang.y"
10506
2
                        {
10507
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10508
2
        (yyval.interm.type).basicType = EbtSampler;
10509
2
        (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
10510
2
    }
10511
2
#line 10512 "MachineIndependent/glslang_tab.cpp"
10512
2
    break;
10513
10514
224
  case 435: /* type_specifier_nonarray: USAMPLER2DARRAY  */
10515
224
#line 3012 "MachineIndependent/glslang.y"
10516
224
                      {
10517
224
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10518
224
        (yyval.interm.type).basicType = EbtSampler;
10519
224
        (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
10520
224
    }
10521
224
#line 10522 "MachineIndependent/glslang_tab.cpp"
10522
224
    break;
10523
10524
6
  case 436: /* type_specifier_nonarray: TEXTURE2D  */
10525
6
#line 3017 "MachineIndependent/glslang.y"
10526
6
                {
10527
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10528
6
        (yyval.interm.type).basicType = EbtSampler;
10529
6
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
10530
6
    }
10531
6
#line 10532 "MachineIndependent/glslang_tab.cpp"
10532
6
    break;
10533
10534
6
  case 437: /* type_specifier_nonarray: TEXTURE3D  */
10535
6
#line 3022 "MachineIndependent/glslang.y"
10536
6
                {
10537
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10538
6
        (yyval.interm.type).basicType = EbtSampler;
10539
6
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
10540
6
    }
10541
6
#line 10542 "MachineIndependent/glslang_tab.cpp"
10542
6
    break;
10543
10544
6
  case 438: /* type_specifier_nonarray: TEXTURE2DARRAY  */
10545
6
#line 3027 "MachineIndependent/glslang.y"
10546
6
                     {
10547
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10548
6
        (yyval.interm.type).basicType = EbtSampler;
10549
6
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
10550
6
    }
10551
6
#line 10552 "MachineIndependent/glslang_tab.cpp"
10552
6
    break;
10553
10554
2
  case 439: /* type_specifier_nonarray: TEXTURECUBE  */
10555
2
#line 3032 "MachineIndependent/glslang.y"
10556
2
                  {
10557
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10558
2
        (yyval.interm.type).basicType = EbtSampler;
10559
2
        (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
10560
2
    }
10561
2
#line 10562 "MachineIndependent/glslang_tab.cpp"
10562
2
    break;
10563
10564
6
  case 440: /* type_specifier_nonarray: ITEXTURE2D  */
10565
6
#line 3037 "MachineIndependent/glslang.y"
10566
6
                 {
10567
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10568
6
        (yyval.interm.type).basicType = EbtSampler;
10569
6
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
10570
6
    }
10571
6
#line 10572 "MachineIndependent/glslang_tab.cpp"
10572
6
    break;
10573
10574
6
  case 441: /* type_specifier_nonarray: ITEXTURE3D  */
10575
6
#line 3042 "MachineIndependent/glslang.y"
10576
6
                 {
10577
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10578
6
        (yyval.interm.type).basicType = EbtSampler;
10579
6
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
10580
6
    }
10581
6
#line 10582 "MachineIndependent/glslang_tab.cpp"
10582
6
    break;
10583
10584
2
  case 442: /* type_specifier_nonarray: ITEXTURECUBE  */
10585
2
#line 3047 "MachineIndependent/glslang.y"
10586
2
                   {
10587
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10588
2
        (yyval.interm.type).basicType = EbtSampler;
10589
2
        (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
10590
2
    }
10591
2
#line 10592 "MachineIndependent/glslang_tab.cpp"
10592
2
    break;
10593
10594
6
  case 443: /* type_specifier_nonarray: ITEXTURE2DARRAY  */
10595
6
#line 3052 "MachineIndependent/glslang.y"
10596
6
                      {
10597
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10598
6
        (yyval.interm.type).basicType = EbtSampler;
10599
6
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
10600
6
    }
10601
6
#line 10602 "MachineIndependent/glslang_tab.cpp"
10602
6
    break;
10603
10604
6
  case 444: /* type_specifier_nonarray: UTEXTURE2D  */
10605
6
#line 3057 "MachineIndependent/glslang.y"
10606
6
                 {
10607
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10608
6
        (yyval.interm.type).basicType = EbtSampler;
10609
6
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
10610
6
    }
10611
6
#line 10612 "MachineIndependent/glslang_tab.cpp"
10612
6
    break;
10613
10614
6
  case 445: /* type_specifier_nonarray: UTEXTURE3D  */
10615
6
#line 3062 "MachineIndependent/glslang.y"
10616
6
                 {
10617
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10618
6
        (yyval.interm.type).basicType = EbtSampler;
10619
6
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
10620
6
    }
10621
6
#line 10622 "MachineIndependent/glslang_tab.cpp"
10622
6
    break;
10623
10624
2
  case 446: /* type_specifier_nonarray: UTEXTURECUBE  */
10625
2
#line 3067 "MachineIndependent/glslang.y"
10626
2
                   {
10627
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10628
2
        (yyval.interm.type).basicType = EbtSampler;
10629
2
        (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
10630
2
    }
10631
2
#line 10632 "MachineIndependent/glslang_tab.cpp"
10632
2
    break;
10633
10634
6
  case 447: /* type_specifier_nonarray: UTEXTURE2DARRAY  */
10635
6
#line 3072 "MachineIndependent/glslang.y"
10636
6
                      {
10637
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10638
6
        (yyval.interm.type).basicType = EbtSampler;
10639
6
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
10640
6
    }
10641
6
#line 10642 "MachineIndependent/glslang_tab.cpp"
10642
6
    break;
10643
10644
0
  case 448: /* type_specifier_nonarray: SAMPLER  */
10645
0
#line 3077 "MachineIndependent/glslang.y"
10646
0
              {
10647
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10648
0
        (yyval.interm.type).basicType = EbtSampler;
10649
0
        (yyval.interm.type).sampler.setPureSampler(false);
10650
0
    }
10651
0
#line 10652 "MachineIndependent/glslang_tab.cpp"
10652
0
    break;
10653
10654
0
  case 449: /* type_specifier_nonarray: SAMPLERSHADOW  */
10655
0
#line 3082 "MachineIndependent/glslang.y"
10656
0
                    {
10657
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10658
0
        (yyval.interm.type).basicType = EbtSampler;
10659
0
        (yyval.interm.type).sampler.setPureSampler(true);
10660
0
    }
10661
0
#line 10662 "MachineIndependent/glslang_tab.cpp"
10662
0
    break;
10663
10664
106
  case 450: /* type_specifier_nonarray: SAMPLER2DRECT  */
10665
106
#line 3087 "MachineIndependent/glslang.y"
10666
106
                    {
10667
106
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10668
106
        (yyval.interm.type).basicType = EbtSampler;
10669
106
        (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
10670
106
    }
10671
106
#line 10672 "MachineIndependent/glslang_tab.cpp"
10672
106
    break;
10673
10674
58
  case 451: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW  */
10675
58
#line 3092 "MachineIndependent/glslang.y"
10676
58
                          {
10677
58
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10678
58
        (yyval.interm.type).basicType = EbtSampler;
10679
58
        (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
10680
58
    }
10681
58
#line 10682 "MachineIndependent/glslang_tab.cpp"
10682
58
    break;
10683
10684
210
  case 452: /* type_specifier_nonarray: F16SAMPLER2DRECT  */
10685
210
#line 3097 "MachineIndependent/glslang.y"
10686
210
                       {
10687
210
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10688
210
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10689
210
        (yyval.interm.type).basicType = EbtSampler;
10690
210
        (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
10691
210
    }
10692
210
#line 10693 "MachineIndependent/glslang_tab.cpp"
10693
210
    break;
10694
10695
114
  case 453: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW  */
10696
114
#line 3103 "MachineIndependent/glslang.y"
10697
114
                             {
10698
114
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10699
114
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10700
114
        (yyval.interm.type).basicType = EbtSampler;
10701
114
        (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
10702
114
    }
10703
114
#line 10704 "MachineIndependent/glslang_tab.cpp"
10704
114
    break;
10705
10706
106
  case 454: /* type_specifier_nonarray: ISAMPLER2DRECT  */
10707
106
#line 3109 "MachineIndependent/glslang.y"
10708
106
                     {
10709
106
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10710
106
        (yyval.interm.type).basicType = EbtSampler;
10711
106
        (yyval.interm.type).sampler.set(EbtInt, EsdRect);
10712
106
    }
10713
106
#line 10714 "MachineIndependent/glslang_tab.cpp"
10714
106
    break;
10715
10716
106
  case 455: /* type_specifier_nonarray: USAMPLER2DRECT  */
10717
106
#line 3114 "MachineIndependent/glslang.y"
10718
106
                     {
10719
106
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10720
106
        (yyval.interm.type).basicType = EbtSampler;
10721
106
        (yyval.interm.type).sampler.set(EbtUint, EsdRect);
10722
106
    }
10723
106
#line 10724 "MachineIndependent/glslang_tab.cpp"
10724
106
    break;
10725
10726
4
  case 456: /* type_specifier_nonarray: SAMPLERBUFFER  */
10727
4
#line 3119 "MachineIndependent/glslang.y"
10728
4
                    {
10729
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10730
4
        (yyval.interm.type).basicType = EbtSampler;
10731
4
        (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
10732
4
    }
10733
4
#line 10734 "MachineIndependent/glslang_tab.cpp"
10734
4
    break;
10735
10736
6
  case 457: /* type_specifier_nonarray: F16SAMPLERBUFFER  */
10737
6
#line 3124 "MachineIndependent/glslang.y"
10738
6
                       {
10739
6
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10740
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10741
6
        (yyval.interm.type).basicType = EbtSampler;
10742
6
        (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
10743
6
    }
10744
6
#line 10745 "MachineIndependent/glslang_tab.cpp"
10745
6
    break;
10746
10747
4
  case 458: /* type_specifier_nonarray: ISAMPLERBUFFER  */
10748
4
#line 3130 "MachineIndependent/glslang.y"
10749
4
                     {
10750
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10751
4
        (yyval.interm.type).basicType = EbtSampler;
10752
4
        (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
10753
4
    }
10754
4
#line 10755 "MachineIndependent/glslang_tab.cpp"
10755
4
    break;
10756
10757
4
  case 459: /* type_specifier_nonarray: USAMPLERBUFFER  */
10758
4
#line 3135 "MachineIndependent/glslang.y"
10759
4
                     {
10760
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10761
4
        (yyval.interm.type).basicType = EbtSampler;
10762
4
        (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
10763
4
    }
10764
4
#line 10765 "MachineIndependent/glslang_tab.cpp"
10765
4
    break;
10766
10767
12
  case 460: /* type_specifier_nonarray: SAMPLER2DMS  */
10768
12
#line 3140 "MachineIndependent/glslang.y"
10769
12
                  {
10770
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10771
12
        (yyval.interm.type).basicType = EbtSampler;
10772
12
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
10773
12
    }
10774
12
#line 10775 "MachineIndependent/glslang_tab.cpp"
10775
12
    break;
10776
10777
12
  case 461: /* type_specifier_nonarray: F16SAMPLER2DMS  */
10778
12
#line 3145 "MachineIndependent/glslang.y"
10779
12
                     {
10780
12
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10781
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10782
12
        (yyval.interm.type).basicType = EbtSampler;
10783
12
        (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
10784
12
    }
10785
12
#line 10786 "MachineIndependent/glslang_tab.cpp"
10786
12
    break;
10787
10788
12
  case 462: /* type_specifier_nonarray: ISAMPLER2DMS  */
10789
12
#line 3151 "MachineIndependent/glslang.y"
10790
12
                   {
10791
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10792
12
        (yyval.interm.type).basicType = EbtSampler;
10793
12
        (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
10794
12
    }
10795
12
#line 10796 "MachineIndependent/glslang_tab.cpp"
10796
12
    break;
10797
10798
12
  case 463: /* type_specifier_nonarray: USAMPLER2DMS  */
10799
12
#line 3156 "MachineIndependent/glslang.y"
10800
12
                   {
10801
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10802
12
        (yyval.interm.type).basicType = EbtSampler;
10803
12
        (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
10804
12
    }
10805
12
#line 10806 "MachineIndependent/glslang_tab.cpp"
10806
12
    break;
10807
10808
12
  case 464: /* type_specifier_nonarray: SAMPLER2DMSARRAY  */
10809
12
#line 3161 "MachineIndependent/glslang.y"
10810
12
                       {
10811
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10812
12
        (yyval.interm.type).basicType = EbtSampler;
10813
12
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
10814
12
    }
10815
12
#line 10816 "MachineIndependent/glslang_tab.cpp"
10816
12
    break;
10817
10818
12
  case 465: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY  */
10819
12
#line 3166 "MachineIndependent/glslang.y"
10820
12
                          {
10821
12
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
10822
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10823
12
        (yyval.interm.type).basicType = EbtSampler;
10824
12
        (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
10825
12
    }
10826
12
#line 10827 "MachineIndependent/glslang_tab.cpp"
10827
12
    break;
10828
10829
12
  case 466: /* type_specifier_nonarray: ISAMPLER2DMSARRAY  */
10830
12
#line 3172 "MachineIndependent/glslang.y"
10831
12
                        {
10832
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10833
12
        (yyval.interm.type).basicType = EbtSampler;
10834
12
        (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
10835
12
    }
10836
12
#line 10837 "MachineIndependent/glslang_tab.cpp"
10837
12
    break;
10838
10839
12
  case 467: /* type_specifier_nonarray: USAMPLER2DMSARRAY  */
10840
12
#line 3177 "MachineIndependent/glslang.y"
10841
12
                        {
10842
12
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10843
12
        (yyval.interm.type).basicType = EbtSampler;
10844
12
        (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
10845
12
    }
10846
12
#line 10847 "MachineIndependent/glslang_tab.cpp"
10847
12
    break;
10848
10849
4
  case 468: /* type_specifier_nonarray: TEXTURE1D  */
10850
4
#line 3182 "MachineIndependent/glslang.y"
10851
4
                {
10852
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10853
4
        (yyval.interm.type).basicType = EbtSampler;
10854
4
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
10855
4
    }
10856
4
#line 10857 "MachineIndependent/glslang_tab.cpp"
10857
4
    break;
10858
10859
6
  case 469: /* type_specifier_nonarray: F16TEXTURE1D  */
10860
6
#line 3187 "MachineIndependent/glslang.y"
10861
6
                   {
10862
6
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10863
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10864
6
        (yyval.interm.type).basicType = EbtSampler;
10865
6
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
10866
6
    }
10867
6
#line 10868 "MachineIndependent/glslang_tab.cpp"
10868
6
    break;
10869
10870
10
  case 470: /* type_specifier_nonarray: F16TEXTURE2D  */
10871
10
#line 3193 "MachineIndependent/glslang.y"
10872
10
                   {
10873
10
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10874
10
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10875
10
        (yyval.interm.type).basicType = EbtSampler;
10876
10
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
10877
10
    }
10878
10
#line 10879 "MachineIndependent/glslang_tab.cpp"
10879
10
    break;
10880
10881
10
  case 471: /* type_specifier_nonarray: F16TEXTURE3D  */
10882
10
#line 3199 "MachineIndependent/glslang.y"
10883
10
                   {
10884
10
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10885
10
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10886
10
        (yyval.interm.type).basicType = EbtSampler;
10887
10
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
10888
10
    }
10889
10
#line 10890 "MachineIndependent/glslang_tab.cpp"
10890
10
    break;
10891
10892
2
  case 472: /* type_specifier_nonarray: F16TEXTURECUBE  */
10893
2
#line 3205 "MachineIndependent/glslang.y"
10894
2
                     {
10895
2
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10896
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10897
2
        (yyval.interm.type).basicType = EbtSampler;
10898
2
        (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
10899
2
    }
10900
2
#line 10901 "MachineIndependent/glslang_tab.cpp"
10901
2
    break;
10902
10903
4
  case 473: /* type_specifier_nonarray: TEXTURE1DARRAY  */
10904
4
#line 3211 "MachineIndependent/glslang.y"
10905
4
                     {
10906
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10907
4
        (yyval.interm.type).basicType = EbtSampler;
10908
4
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
10909
4
    }
10910
4
#line 10911 "MachineIndependent/glslang_tab.cpp"
10911
4
    break;
10912
10913
6
  case 474: /* type_specifier_nonarray: F16TEXTURE1DARRAY  */
10914
6
#line 3216 "MachineIndependent/glslang.y"
10915
6
                        {
10916
6
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10917
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10918
6
        (yyval.interm.type).basicType = EbtSampler;
10919
6
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
10920
6
    }
10921
6
#line 10922 "MachineIndependent/glslang_tab.cpp"
10922
6
    break;
10923
10924
10
  case 475: /* type_specifier_nonarray: F16TEXTURE2DARRAY  */
10925
10
#line 3222 "MachineIndependent/glslang.y"
10926
10
                        {
10927
10
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10928
10
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10929
10
        (yyval.interm.type).basicType = EbtSampler;
10930
10
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
10931
10
    }
10932
10
#line 10933 "MachineIndependent/glslang_tab.cpp"
10933
10
    break;
10934
10935
2
  case 476: /* type_specifier_nonarray: F16TEXTURECUBEARRAY  */
10936
2
#line 3228 "MachineIndependent/glslang.y"
10937
2
                          {
10938
2
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
10939
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10940
2
        (yyval.interm.type).basicType = EbtSampler;
10941
2
        (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
10942
2
    }
10943
2
#line 10944 "MachineIndependent/glslang_tab.cpp"
10944
2
    break;
10945
10946
4
  case 477: /* type_specifier_nonarray: ITEXTURE1D  */
10947
4
#line 3234 "MachineIndependent/glslang.y"
10948
4
                 {
10949
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10950
4
        (yyval.interm.type).basicType = EbtSampler;
10951
4
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
10952
4
    }
10953
4
#line 10954 "MachineIndependent/glslang_tab.cpp"
10954
4
    break;
10955
10956
4
  case 478: /* type_specifier_nonarray: ITEXTURE1DARRAY  */
10957
4
#line 3239 "MachineIndependent/glslang.y"
10958
4
                      {
10959
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10960
4
        (yyval.interm.type).basicType = EbtSampler;
10961
4
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
10962
4
    }
10963
4
#line 10964 "MachineIndependent/glslang_tab.cpp"
10964
4
    break;
10965
10966
4
  case 479: /* type_specifier_nonarray: UTEXTURE1D  */
10967
4
#line 3244 "MachineIndependent/glslang.y"
10968
4
                 {
10969
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10970
4
        (yyval.interm.type).basicType = EbtSampler;
10971
4
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
10972
4
    }
10973
4
#line 10974 "MachineIndependent/glslang_tab.cpp"
10974
4
    break;
10975
10976
4
  case 480: /* type_specifier_nonarray: UTEXTURE1DARRAY  */
10977
4
#line 3249 "MachineIndependent/glslang.y"
10978
4
                      {
10979
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10980
4
        (yyval.interm.type).basicType = EbtSampler;
10981
4
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
10982
4
    }
10983
4
#line 10984 "MachineIndependent/glslang_tab.cpp"
10984
4
    break;
10985
10986
5
  case 481: /* type_specifier_nonarray: TEXTURE2DRECT  */
10987
5
#line 3254 "MachineIndependent/glslang.y"
10988
5
                    {
10989
5
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
10990
5
        (yyval.interm.type).basicType = EbtSampler;
10991
5
        (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
10992
5
    }
10993
5
#line 10994 "MachineIndependent/glslang_tab.cpp"
10994
5
    break;
10995
10996
9
  case 482: /* type_specifier_nonarray: F16TEXTURE2DRECT  */
10997
9
#line 3259 "MachineIndependent/glslang.y"
10998
9
                       {
10999
9
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
11000
9
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11001
9
        (yyval.interm.type).basicType = EbtSampler;
11002
9
        (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
11003
9
    }
11004
9
#line 11005 "MachineIndependent/glslang_tab.cpp"
11005
9
    break;
11006
11007
5
  case 483: /* type_specifier_nonarray: ITEXTURE2DRECT  */
11008
5
#line 3265 "MachineIndependent/glslang.y"
11009
5
                     {
11010
5
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11011
5
        (yyval.interm.type).basicType = EbtSampler;
11012
5
        (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
11013
5
    }
11014
5
#line 11015 "MachineIndependent/glslang_tab.cpp"
11015
5
    break;
11016
11017
5
  case 484: /* type_specifier_nonarray: UTEXTURE2DRECT  */
11018
5
#line 3270 "MachineIndependent/glslang.y"
11019
5
                     {
11020
5
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11021
5
        (yyval.interm.type).basicType = EbtSampler;
11022
5
        (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
11023
5
    }
11024
5
#line 11025 "MachineIndependent/glslang_tab.cpp"
11025
5
    break;
11026
11027
2
  case 485: /* type_specifier_nonarray: TEXTUREBUFFER  */
11028
2
#line 3275 "MachineIndependent/glslang.y"
11029
2
                    {
11030
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11031
2
        (yyval.interm.type).basicType = EbtSampler;
11032
2
        (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
11033
2
    }
11034
2
#line 11035 "MachineIndependent/glslang_tab.cpp"
11035
2
    break;
11036
11037
3
  case 486: /* type_specifier_nonarray: F16TEXTUREBUFFER  */
11038
3
#line 3280 "MachineIndependent/glslang.y"
11039
3
                       {
11040
3
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
11041
3
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11042
3
        (yyval.interm.type).basicType = EbtSampler;
11043
3
        (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
11044
3
    }
11045
3
#line 11046 "MachineIndependent/glslang_tab.cpp"
11046
3
    break;
11047
11048
2
  case 487: /* type_specifier_nonarray: ITEXTUREBUFFER  */
11049
2
#line 3286 "MachineIndependent/glslang.y"
11050
2
                     {
11051
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11052
2
        (yyval.interm.type).basicType = EbtSampler;
11053
2
        (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
11054
2
    }
11055
2
#line 11056 "MachineIndependent/glslang_tab.cpp"
11056
2
    break;
11057
11058
2
  case 488: /* type_specifier_nonarray: UTEXTUREBUFFER  */
11059
2
#line 3291 "MachineIndependent/glslang.y"
11060
2
                     {
11061
2
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11062
2
        (yyval.interm.type).basicType = EbtSampler;
11063
2
        (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
11064
2
    }
11065
2
#line 11066 "MachineIndependent/glslang_tab.cpp"
11066
2
    break;
11067
11068
4
  case 489: /* type_specifier_nonarray: TEXTURE2DMS  */
11069
4
#line 3296 "MachineIndependent/glslang.y"
11070
4
                  {
11071
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11072
4
        (yyval.interm.type).basicType = EbtSampler;
11073
4
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
11074
4
    }
11075
4
#line 11076 "MachineIndependent/glslang_tab.cpp"
11076
4
    break;
11077
11078
6
  case 490: /* type_specifier_nonarray: F16TEXTURE2DMS  */
11079
6
#line 3301 "MachineIndependent/glslang.y"
11080
6
                     {
11081
6
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
11082
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11083
6
        (yyval.interm.type).basicType = EbtSampler;
11084
6
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
11085
6
    }
11086
6
#line 11087 "MachineIndependent/glslang_tab.cpp"
11087
6
    break;
11088
11089
4
  case 491: /* type_specifier_nonarray: ITEXTURE2DMS  */
11090
4
#line 3307 "MachineIndependent/glslang.y"
11091
4
                   {
11092
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11093
4
        (yyval.interm.type).basicType = EbtSampler;
11094
4
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
11095
4
    }
11096
4
#line 11097 "MachineIndependent/glslang_tab.cpp"
11097
4
    break;
11098
11099
4
  case 492: /* type_specifier_nonarray: UTEXTURE2DMS  */
11100
4
#line 3312 "MachineIndependent/glslang.y"
11101
4
                   {
11102
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11103
4
        (yyval.interm.type).basicType = EbtSampler;
11104
4
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
11105
4
    }
11106
4
#line 11107 "MachineIndependent/glslang_tab.cpp"
11107
4
    break;
11108
11109
4
  case 493: /* type_specifier_nonarray: TEXTURE2DMSARRAY  */
11110
4
#line 3317 "MachineIndependent/glslang.y"
11111
4
                       {
11112
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11113
4
        (yyval.interm.type).basicType = EbtSampler;
11114
4
        (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
11115
4
    }
11116
4
#line 11117 "MachineIndependent/glslang_tab.cpp"
11117
4
    break;
11118
11119
6
  case 494: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY  */
11120
6
#line 3322 "MachineIndependent/glslang.y"
11121
6
                          {
11122
6
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
11123
6
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11124
6
        (yyval.interm.type).basicType = EbtSampler;
11125
6
        (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
11126
6
    }
11127
6
#line 11128 "MachineIndependent/glslang_tab.cpp"
11128
6
    break;
11129
11130
4
  case 495: /* type_specifier_nonarray: ITEXTURE2DMSARRAY  */
11131
4
#line 3328 "MachineIndependent/glslang.y"
11132
4
                        {
11133
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11134
4
        (yyval.interm.type).basicType = EbtSampler;
11135
4
        (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
11136
4
    }
11137
4
#line 11138 "MachineIndependent/glslang_tab.cpp"
11138
4
    break;
11139
11140
4
  case 496: /* type_specifier_nonarray: UTEXTURE2DMSARRAY  */
11141
4
#line 3333 "MachineIndependent/glslang.y"
11142
4
                        {
11143
4
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11144
4
        (yyval.interm.type).basicType = EbtSampler;
11145
4
        (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
11146
4
    }
11147
4
#line 11148 "MachineIndependent/glslang_tab.cpp"
11148
4
    break;
11149
11150
46
  case 497: /* type_specifier_nonarray: IMAGE1D  */
11151
46
#line 3338 "MachineIndependent/glslang.y"
11152
46
              {
11153
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11154
46
        (yyval.interm.type).basicType = EbtSampler;
11155
46
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
11156
46
    }
11157
46
#line 11158 "MachineIndependent/glslang_tab.cpp"
11158
46
    break;
11159
11160
46
  case 498: /* type_specifier_nonarray: F16IMAGE1D  */
11161
46
#line 3343 "MachineIndependent/glslang.y"
11162
46
                 {
11163
46
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11164
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11165
46
        (yyval.interm.type).basicType = EbtSampler;
11166
46
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
11167
46
    }
11168
46
#line 11169 "MachineIndependent/glslang_tab.cpp"
11169
46
    break;
11170
11171
46
  case 499: /* type_specifier_nonarray: IIMAGE1D  */
11172
46
#line 3349 "MachineIndependent/glslang.y"
11173
46
               {
11174
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11175
46
        (yyval.interm.type).basicType = EbtSampler;
11176
46
        (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
11177
46
    }
11178
46
#line 11179 "MachineIndependent/glslang_tab.cpp"
11179
46
    break;
11180
11181
46
  case 500: /* type_specifier_nonarray: UIMAGE1D  */
11182
46
#line 3354 "MachineIndependent/glslang.y"
11183
46
               {
11184
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11185
46
        (yyval.interm.type).basicType = EbtSampler;
11186
46
        (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
11187
46
    }
11188
46
#line 11189 "MachineIndependent/glslang_tab.cpp"
11189
46
    break;
11190
11191
50
  case 501: /* type_specifier_nonarray: IMAGE2D  */
11192
50
#line 3359 "MachineIndependent/glslang.y"
11193
50
              {
11194
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11195
50
        (yyval.interm.type).basicType = EbtSampler;
11196
50
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
11197
50
    }
11198
50
#line 11199 "MachineIndependent/glslang_tab.cpp"
11199
50
    break;
11200
11201
50
  case 502: /* type_specifier_nonarray: F16IMAGE2D  */
11202
50
#line 3364 "MachineIndependent/glslang.y"
11203
50
                 {
11204
50
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11205
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11206
50
        (yyval.interm.type).basicType = EbtSampler;
11207
50
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
11208
50
    }
11209
50
#line 11210 "MachineIndependent/glslang_tab.cpp"
11210
50
    break;
11211
11212
50
  case 503: /* type_specifier_nonarray: IIMAGE2D  */
11213
50
#line 3370 "MachineIndependent/glslang.y"
11214
50
               {
11215
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11216
50
        (yyval.interm.type).basicType = EbtSampler;
11217
50
        (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
11218
50
    }
11219
50
#line 11220 "MachineIndependent/glslang_tab.cpp"
11220
50
    break;
11221
11222
50
  case 504: /* type_specifier_nonarray: UIMAGE2D  */
11223
50
#line 3375 "MachineIndependent/glslang.y"
11224
50
               {
11225
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11226
50
        (yyval.interm.type).basicType = EbtSampler;
11227
50
        (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
11228
50
    }
11229
50
#line 11230 "MachineIndependent/glslang_tab.cpp"
11230
50
    break;
11231
11232
50
  case 505: /* type_specifier_nonarray: IMAGE3D  */
11233
50
#line 3380 "MachineIndependent/glslang.y"
11234
50
              {
11235
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11236
50
        (yyval.interm.type).basicType = EbtSampler;
11237
50
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
11238
50
    }
11239
50
#line 11240 "MachineIndependent/glslang_tab.cpp"
11240
50
    break;
11241
11242
50
  case 506: /* type_specifier_nonarray: F16IMAGE3D  */
11243
50
#line 3385 "MachineIndependent/glslang.y"
11244
50
                 {
11245
50
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11246
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11247
50
        (yyval.interm.type).basicType = EbtSampler;
11248
50
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
11249
50
    }
11250
50
#line 11251 "MachineIndependent/glslang_tab.cpp"
11251
50
    break;
11252
11253
50
  case 507: /* type_specifier_nonarray: IIMAGE3D  */
11254
50
#line 3391 "MachineIndependent/glslang.y"
11255
50
               {
11256
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11257
50
        (yyval.interm.type).basicType = EbtSampler;
11258
50
        (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
11259
50
    }
11260
50
#line 11261 "MachineIndependent/glslang_tab.cpp"
11261
50
    break;
11262
11263
50
  case 508: /* type_specifier_nonarray: UIMAGE3D  */
11264
50
#line 3396 "MachineIndependent/glslang.y"
11265
50
               {
11266
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11267
50
        (yyval.interm.type).basicType = EbtSampler;
11268
50
        (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
11269
50
    }
11270
50
#line 11271 "MachineIndependent/glslang_tab.cpp"
11271
50
    break;
11272
11273
44
  case 509: /* type_specifier_nonarray: IMAGE2DRECT  */
11274
44
#line 3401 "MachineIndependent/glslang.y"
11275
44
                  {
11276
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11277
44
        (yyval.interm.type).basicType = EbtSampler;
11278
44
        (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
11279
44
    }
11280
44
#line 11281 "MachineIndependent/glslang_tab.cpp"
11281
44
    break;
11282
11283
44
  case 510: /* type_specifier_nonarray: F16IMAGE2DRECT  */
11284
44
#line 3406 "MachineIndependent/glslang.y"
11285
44
                     {
11286
44
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11287
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11288
44
        (yyval.interm.type).basicType = EbtSampler;
11289
44
        (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
11290
44
    }
11291
44
#line 11292 "MachineIndependent/glslang_tab.cpp"
11292
44
    break;
11293
11294
44
  case 511: /* type_specifier_nonarray: IIMAGE2DRECT  */
11295
44
#line 3412 "MachineIndependent/glslang.y"
11296
44
                   {
11297
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11298
44
        (yyval.interm.type).basicType = EbtSampler;
11299
44
        (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
11300
44
    }
11301
44
#line 11302 "MachineIndependent/glslang_tab.cpp"
11302
44
    break;
11303
11304
44
  case 512: /* type_specifier_nonarray: UIMAGE2DRECT  */
11305
44
#line 3417 "MachineIndependent/glslang.y"
11306
44
                   {
11307
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11308
44
        (yyval.interm.type).basicType = EbtSampler;
11309
44
        (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
11310
44
    }
11311
44
#line 11312 "MachineIndependent/glslang_tab.cpp"
11312
44
    break;
11313
11314
50
  case 513: /* type_specifier_nonarray: IMAGECUBE  */
11315
50
#line 3422 "MachineIndependent/glslang.y"
11316
50
                {
11317
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11318
50
        (yyval.interm.type).basicType = EbtSampler;
11319
50
        (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
11320
50
    }
11321
50
#line 11322 "MachineIndependent/glslang_tab.cpp"
11322
50
    break;
11323
11324
50
  case 514: /* type_specifier_nonarray: F16IMAGECUBE  */
11325
50
#line 3427 "MachineIndependent/glslang.y"
11326
50
                   {
11327
50
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11328
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11329
50
        (yyval.interm.type).basicType = EbtSampler;
11330
50
        (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
11331
50
    }
11332
50
#line 11333 "MachineIndependent/glslang_tab.cpp"
11333
50
    break;
11334
11335
50
  case 515: /* type_specifier_nonarray: IIMAGECUBE  */
11336
50
#line 3433 "MachineIndependent/glslang.y"
11337
50
                 {
11338
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11339
50
        (yyval.interm.type).basicType = EbtSampler;
11340
50
        (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
11341
50
    }
11342
50
#line 11343 "MachineIndependent/glslang_tab.cpp"
11343
50
    break;
11344
11345
50
  case 516: /* type_specifier_nonarray: UIMAGECUBE  */
11346
50
#line 3438 "MachineIndependent/glslang.y"
11347
50
                 {
11348
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11349
50
        (yyval.interm.type).basicType = EbtSampler;
11350
50
        (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
11351
50
    }
11352
50
#line 11353 "MachineIndependent/glslang_tab.cpp"
11353
50
    break;
11354
11355
42
  case 517: /* type_specifier_nonarray: IMAGEBUFFER  */
11356
42
#line 3443 "MachineIndependent/glslang.y"
11357
42
                  {
11358
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11359
42
        (yyval.interm.type).basicType = EbtSampler;
11360
42
        (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
11361
42
    }
11362
42
#line 11363 "MachineIndependent/glslang_tab.cpp"
11363
42
    break;
11364
11365
42
  case 518: /* type_specifier_nonarray: F16IMAGEBUFFER  */
11366
42
#line 3448 "MachineIndependent/glslang.y"
11367
42
                     {
11368
42
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11369
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11370
42
        (yyval.interm.type).basicType = EbtSampler;
11371
42
        (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
11372
42
    }
11373
42
#line 11374 "MachineIndependent/glslang_tab.cpp"
11374
42
    break;
11375
11376
42
  case 519: /* type_specifier_nonarray: IIMAGEBUFFER  */
11377
42
#line 3454 "MachineIndependent/glslang.y"
11378
42
                   {
11379
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11380
42
        (yyval.interm.type).basicType = EbtSampler;
11381
42
        (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
11382
42
    }
11383
42
#line 11384 "MachineIndependent/glslang_tab.cpp"
11384
42
    break;
11385
11386
42
  case 520: /* type_specifier_nonarray: UIMAGEBUFFER  */
11387
42
#line 3459 "MachineIndependent/glslang.y"
11388
42
                   {
11389
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11390
42
        (yyval.interm.type).basicType = EbtSampler;
11391
42
        (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
11392
42
    }
11393
42
#line 11394 "MachineIndependent/glslang_tab.cpp"
11394
42
    break;
11395
11396
46
  case 521: /* type_specifier_nonarray: IMAGE1DARRAY  */
11397
46
#line 3464 "MachineIndependent/glslang.y"
11398
46
                   {
11399
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11400
46
        (yyval.interm.type).basicType = EbtSampler;
11401
46
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
11402
46
    }
11403
46
#line 11404 "MachineIndependent/glslang_tab.cpp"
11404
46
    break;
11405
11406
46
  case 522: /* type_specifier_nonarray: F16IMAGE1DARRAY  */
11407
46
#line 3469 "MachineIndependent/glslang.y"
11408
46
                      {
11409
46
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11410
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11411
46
        (yyval.interm.type).basicType = EbtSampler;
11412
46
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
11413
46
    }
11414
46
#line 11415 "MachineIndependent/glslang_tab.cpp"
11415
46
    break;
11416
11417
46
  case 523: /* type_specifier_nonarray: IIMAGE1DARRAY  */
11418
46
#line 3475 "MachineIndependent/glslang.y"
11419
46
                    {
11420
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11421
46
        (yyval.interm.type).basicType = EbtSampler;
11422
46
        (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
11423
46
    }
11424
46
#line 11425 "MachineIndependent/glslang_tab.cpp"
11425
46
    break;
11426
11427
46
  case 524: /* type_specifier_nonarray: UIMAGE1DARRAY  */
11428
46
#line 3480 "MachineIndependent/glslang.y"
11429
46
                    {
11430
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11431
46
        (yyval.interm.type).basicType = EbtSampler;
11432
46
        (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
11433
46
    }
11434
46
#line 11435 "MachineIndependent/glslang_tab.cpp"
11435
46
    break;
11436
11437
50
  case 525: /* type_specifier_nonarray: IMAGE2DARRAY  */
11438
50
#line 3485 "MachineIndependent/glslang.y"
11439
50
                   {
11440
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11441
50
        (yyval.interm.type).basicType = EbtSampler;
11442
50
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
11443
50
    }
11444
50
#line 11445 "MachineIndependent/glslang_tab.cpp"
11445
50
    break;
11446
11447
50
  case 526: /* type_specifier_nonarray: F16IMAGE2DARRAY  */
11448
50
#line 3490 "MachineIndependent/glslang.y"
11449
50
                      {
11450
50
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11451
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11452
50
        (yyval.interm.type).basicType = EbtSampler;
11453
50
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
11454
50
    }
11455
50
#line 11456 "MachineIndependent/glslang_tab.cpp"
11456
50
    break;
11457
11458
50
  case 527: /* type_specifier_nonarray: IIMAGE2DARRAY  */
11459
50
#line 3496 "MachineIndependent/glslang.y"
11460
50
                    {
11461
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11462
50
        (yyval.interm.type).basicType = EbtSampler;
11463
50
        (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
11464
50
    }
11465
50
#line 11466 "MachineIndependent/glslang_tab.cpp"
11466
50
    break;
11467
11468
50
  case 528: /* type_specifier_nonarray: UIMAGE2DARRAY  */
11469
50
#line 3501 "MachineIndependent/glslang.y"
11470
50
                    {
11471
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11472
50
        (yyval.interm.type).basicType = EbtSampler;
11473
50
        (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
11474
50
    }
11475
50
#line 11476 "MachineIndependent/glslang_tab.cpp"
11476
50
    break;
11477
11478
50
  case 529: /* type_specifier_nonarray: IMAGECUBEARRAY  */
11479
50
#line 3506 "MachineIndependent/glslang.y"
11480
50
                     {
11481
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11482
50
        (yyval.interm.type).basicType = EbtSampler;
11483
50
        (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
11484
50
    }
11485
50
#line 11486 "MachineIndependent/glslang_tab.cpp"
11486
50
    break;
11487
11488
50
  case 530: /* type_specifier_nonarray: F16IMAGECUBEARRAY  */
11489
50
#line 3511 "MachineIndependent/glslang.y"
11490
50
                        {
11491
50
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11492
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11493
50
        (yyval.interm.type).basicType = EbtSampler;
11494
50
        (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
11495
50
    }
11496
50
#line 11497 "MachineIndependent/glslang_tab.cpp"
11497
50
    break;
11498
11499
50
  case 531: /* type_specifier_nonarray: IIMAGECUBEARRAY  */
11500
50
#line 3517 "MachineIndependent/glslang.y"
11501
50
                      {
11502
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11503
50
        (yyval.interm.type).basicType = EbtSampler;
11504
50
        (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
11505
50
    }
11506
50
#line 11507 "MachineIndependent/glslang_tab.cpp"
11507
50
    break;
11508
11509
50
  case 532: /* type_specifier_nonarray: UIMAGECUBEARRAY  */
11510
50
#line 3522 "MachineIndependent/glslang.y"
11511
50
                      {
11512
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11513
50
        (yyval.interm.type).basicType = EbtSampler;
11514
50
        (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
11515
50
    }
11516
50
#line 11517 "MachineIndependent/glslang_tab.cpp"
11517
50
    break;
11518
11519
46
  case 533: /* type_specifier_nonarray: IMAGE2DMS  */
11520
46
#line 3527 "MachineIndependent/glslang.y"
11521
46
                {
11522
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11523
46
        (yyval.interm.type).basicType = EbtSampler;
11524
46
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
11525
46
    }
11526
46
#line 11527 "MachineIndependent/glslang_tab.cpp"
11527
46
    break;
11528
11529
46
  case 534: /* type_specifier_nonarray: F16IMAGE2DMS  */
11530
46
#line 3532 "MachineIndependent/glslang.y"
11531
46
                   {
11532
46
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11533
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11534
46
        (yyval.interm.type).basicType = EbtSampler;
11535
46
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
11536
46
    }
11537
46
#line 11538 "MachineIndependent/glslang_tab.cpp"
11538
46
    break;
11539
11540
46
  case 535: /* type_specifier_nonarray: IIMAGE2DMS  */
11541
46
#line 3538 "MachineIndependent/glslang.y"
11542
46
                 {
11543
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11544
46
        (yyval.interm.type).basicType = EbtSampler;
11545
46
        (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
11546
46
    }
11547
46
#line 11548 "MachineIndependent/glslang_tab.cpp"
11548
46
    break;
11549
11550
46
  case 536: /* type_specifier_nonarray: UIMAGE2DMS  */
11551
46
#line 3543 "MachineIndependent/glslang.y"
11552
46
                 {
11553
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11554
46
        (yyval.interm.type).basicType = EbtSampler;
11555
46
        (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
11556
46
    }
11557
46
#line 11558 "MachineIndependent/glslang_tab.cpp"
11558
46
    break;
11559
11560
46
  case 537: /* type_specifier_nonarray: IMAGE2DMSARRAY  */
11561
46
#line 3548 "MachineIndependent/glslang.y"
11562
46
                     {
11563
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11564
46
        (yyval.interm.type).basicType = EbtSampler;
11565
46
        (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
11566
46
    }
11567
46
#line 11568 "MachineIndependent/glslang_tab.cpp"
11568
46
    break;
11569
11570
46
  case 538: /* type_specifier_nonarray: F16IMAGE2DMSARRAY  */
11571
46
#line 3553 "MachineIndependent/glslang.y"
11572
46
                        {
11573
46
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
11574
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11575
46
        (yyval.interm.type).basicType = EbtSampler;
11576
46
        (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
11577
46
    }
11578
46
#line 11579 "MachineIndependent/glslang_tab.cpp"
11579
46
    break;
11580
11581
46
  case 539: /* type_specifier_nonarray: IIMAGE2DMSARRAY  */
11582
46
#line 3559 "MachineIndependent/glslang.y"
11583
46
                      {
11584
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11585
46
        (yyval.interm.type).basicType = EbtSampler;
11586
46
        (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
11587
46
    }
11588
46
#line 11589 "MachineIndependent/glslang_tab.cpp"
11589
46
    break;
11590
11591
46
  case 540: /* type_specifier_nonarray: UIMAGE2DMSARRAY  */
11592
46
#line 3564 "MachineIndependent/glslang.y"
11593
46
                      {
11594
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11595
46
        (yyval.interm.type).basicType = EbtSampler;
11596
46
        (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
11597
46
    }
11598
46
#line 11599 "MachineIndependent/glslang_tab.cpp"
11599
46
    break;
11600
11601
46
  case 541: /* type_specifier_nonarray: I64IMAGE1D  */
11602
46
#line 3569 "MachineIndependent/glslang.y"
11603
46
                 {
11604
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11605
46
        (yyval.interm.type).basicType = EbtSampler;
11606
46
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
11607
46
    }
11608
46
#line 11609 "MachineIndependent/glslang_tab.cpp"
11609
46
    break;
11610
11611
46
  case 542: /* type_specifier_nonarray: U64IMAGE1D  */
11612
46
#line 3574 "MachineIndependent/glslang.y"
11613
46
                 {
11614
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11615
46
        (yyval.interm.type).basicType = EbtSampler;
11616
46
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
11617
46
    }
11618
46
#line 11619 "MachineIndependent/glslang_tab.cpp"
11619
46
    break;
11620
11621
50
  case 543: /* type_specifier_nonarray: I64IMAGE2D  */
11622
50
#line 3579 "MachineIndependent/glslang.y"
11623
50
                 {
11624
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11625
50
        (yyval.interm.type).basicType = EbtSampler;
11626
50
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
11627
50
    }
11628
50
#line 11629 "MachineIndependent/glslang_tab.cpp"
11629
50
    break;
11630
11631
50
  case 544: /* type_specifier_nonarray: U64IMAGE2D  */
11632
50
#line 3584 "MachineIndependent/glslang.y"
11633
50
                 {
11634
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11635
50
        (yyval.interm.type).basicType = EbtSampler;
11636
50
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
11637
50
    }
11638
50
#line 11639 "MachineIndependent/glslang_tab.cpp"
11639
50
    break;
11640
11641
50
  case 545: /* type_specifier_nonarray: I64IMAGE3D  */
11642
50
#line 3589 "MachineIndependent/glslang.y"
11643
50
                 {
11644
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11645
50
        (yyval.interm.type).basicType = EbtSampler;
11646
50
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
11647
50
    }
11648
50
#line 11649 "MachineIndependent/glslang_tab.cpp"
11649
50
    break;
11650
11651
50
  case 546: /* type_specifier_nonarray: U64IMAGE3D  */
11652
50
#line 3594 "MachineIndependent/glslang.y"
11653
50
                 {
11654
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11655
50
        (yyval.interm.type).basicType = EbtSampler;
11656
50
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
11657
50
    }
11658
50
#line 11659 "MachineIndependent/glslang_tab.cpp"
11659
50
    break;
11660
11661
44
  case 547: /* type_specifier_nonarray: I64IMAGE2DRECT  */
11662
44
#line 3599 "MachineIndependent/glslang.y"
11663
44
                     {
11664
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11665
44
        (yyval.interm.type).basicType = EbtSampler;
11666
44
        (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
11667
44
    }
11668
44
#line 11669 "MachineIndependent/glslang_tab.cpp"
11669
44
    break;
11670
11671
44
  case 548: /* type_specifier_nonarray: U64IMAGE2DRECT  */
11672
44
#line 3604 "MachineIndependent/glslang.y"
11673
44
                     {
11674
44
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11675
44
        (yyval.interm.type).basicType = EbtSampler;
11676
44
        (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
11677
44
    }
11678
44
#line 11679 "MachineIndependent/glslang_tab.cpp"
11679
44
    break;
11680
11681
50
  case 549: /* type_specifier_nonarray: I64IMAGECUBE  */
11682
50
#line 3609 "MachineIndependent/glslang.y"
11683
50
                   {
11684
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11685
50
        (yyval.interm.type).basicType = EbtSampler;
11686
50
        (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
11687
50
    }
11688
50
#line 11689 "MachineIndependent/glslang_tab.cpp"
11689
50
    break;
11690
11691
50
  case 550: /* type_specifier_nonarray: U64IMAGECUBE  */
11692
50
#line 3614 "MachineIndependent/glslang.y"
11693
50
                   {
11694
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11695
50
        (yyval.interm.type).basicType = EbtSampler;
11696
50
        (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
11697
50
    }
11698
50
#line 11699 "MachineIndependent/glslang_tab.cpp"
11699
50
    break;
11700
11701
42
  case 551: /* type_specifier_nonarray: I64IMAGEBUFFER  */
11702
42
#line 3619 "MachineIndependent/glslang.y"
11703
42
                     {
11704
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11705
42
        (yyval.interm.type).basicType = EbtSampler;
11706
42
        (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
11707
42
    }
11708
42
#line 11709 "MachineIndependent/glslang_tab.cpp"
11709
42
    break;
11710
11711
42
  case 552: /* type_specifier_nonarray: U64IMAGEBUFFER  */
11712
42
#line 3624 "MachineIndependent/glslang.y"
11713
42
                     {
11714
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11715
42
        (yyval.interm.type).basicType = EbtSampler;
11716
42
        (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
11717
42
    }
11718
42
#line 11719 "MachineIndependent/glslang_tab.cpp"
11719
42
    break;
11720
11721
46
  case 553: /* type_specifier_nonarray: I64IMAGE1DARRAY  */
11722
46
#line 3629 "MachineIndependent/glslang.y"
11723
46
                      {
11724
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11725
46
        (yyval.interm.type).basicType = EbtSampler;
11726
46
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
11727
46
    }
11728
46
#line 11729 "MachineIndependent/glslang_tab.cpp"
11729
46
    break;
11730
11731
46
  case 554: /* type_specifier_nonarray: U64IMAGE1DARRAY  */
11732
46
#line 3634 "MachineIndependent/glslang.y"
11733
46
                      {
11734
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11735
46
        (yyval.interm.type).basicType = EbtSampler;
11736
46
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
11737
46
    }
11738
46
#line 11739 "MachineIndependent/glslang_tab.cpp"
11739
46
    break;
11740
11741
50
  case 555: /* type_specifier_nonarray: I64IMAGE2DARRAY  */
11742
50
#line 3639 "MachineIndependent/glslang.y"
11743
50
                      {
11744
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11745
50
        (yyval.interm.type).basicType = EbtSampler;
11746
50
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
11747
50
    }
11748
50
#line 11749 "MachineIndependent/glslang_tab.cpp"
11749
50
    break;
11750
11751
50
  case 556: /* type_specifier_nonarray: U64IMAGE2DARRAY  */
11752
50
#line 3644 "MachineIndependent/glslang.y"
11753
50
                      {
11754
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11755
50
        (yyval.interm.type).basicType = EbtSampler;
11756
50
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
11757
50
    }
11758
50
#line 11759 "MachineIndependent/glslang_tab.cpp"
11759
50
    break;
11760
11761
50
  case 557: /* type_specifier_nonarray: I64IMAGECUBEARRAY  */
11762
50
#line 3649 "MachineIndependent/glslang.y"
11763
50
                        {
11764
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11765
50
        (yyval.interm.type).basicType = EbtSampler;
11766
50
        (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
11767
50
    }
11768
50
#line 11769 "MachineIndependent/glslang_tab.cpp"
11769
50
    break;
11770
11771
50
  case 558: /* type_specifier_nonarray: U64IMAGECUBEARRAY  */
11772
50
#line 3654 "MachineIndependent/glslang.y"
11773
50
                        {
11774
50
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11775
50
        (yyval.interm.type).basicType = EbtSampler;
11776
50
        (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
11777
50
    }
11778
50
#line 11779 "MachineIndependent/glslang_tab.cpp"
11779
50
    break;
11780
11781
46
  case 559: /* type_specifier_nonarray: I64IMAGE2DMS  */
11782
46
#line 3659 "MachineIndependent/glslang.y"
11783
46
                   {
11784
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11785
46
        (yyval.interm.type).basicType = EbtSampler;
11786
46
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
11787
46
    }
11788
46
#line 11789 "MachineIndependent/glslang_tab.cpp"
11789
46
    break;
11790
11791
46
  case 560: /* type_specifier_nonarray: U64IMAGE2DMS  */
11792
46
#line 3664 "MachineIndependent/glslang.y"
11793
46
                   {
11794
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11795
46
        (yyval.interm.type).basicType = EbtSampler;
11796
46
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
11797
46
    }
11798
46
#line 11799 "MachineIndependent/glslang_tab.cpp"
11799
46
    break;
11800
11801
46
  case 561: /* type_specifier_nonarray: I64IMAGE2DMSARRAY  */
11802
46
#line 3669 "MachineIndependent/glslang.y"
11803
46
                        {
11804
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11805
46
        (yyval.interm.type).basicType = EbtSampler;
11806
46
        (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
11807
46
    }
11808
46
#line 11809 "MachineIndependent/glslang_tab.cpp"
11809
46
    break;
11810
11811
46
  case 562: /* type_specifier_nonarray: U64IMAGE2DMSARRAY  */
11812
46
#line 3674 "MachineIndependent/glslang.y"
11813
46
                        {
11814
46
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11815
46
        (yyval.interm.type).basicType = EbtSampler;
11816
46
        (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
11817
46
    }
11818
46
#line 11819 "MachineIndependent/glslang_tab.cpp"
11819
46
    break;
11820
11821
294
  case 563: /* type_specifier_nonarray: SAMPLEREXTERNALOES  */
11822
294
#line 3679 "MachineIndependent/glslang.y"
11823
294
                         {  // GL_OES_EGL_image_external
11824
294
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11825
294
        (yyval.interm.type).basicType = EbtSampler;
11826
294
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
11827
294
        (yyval.interm.type).sampler.external = true;
11828
294
    }
11829
294
#line 11830 "MachineIndependent/glslang_tab.cpp"
11830
294
    break;
11831
11832
784
  case 564: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT  */
11833
784
#line 3685 "MachineIndependent/glslang.y"
11834
784
                              { // GL_EXT_YUV_target
11835
784
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11836
784
        (yyval.interm.type).basicType = EbtSampler;
11837
784
        (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
11838
784
        (yyval.interm.type).sampler.yuv = true;
11839
784
    }
11840
784
#line 11841 "MachineIndependent/glslang_tab.cpp"
11841
784
    break;
11842
11843
0
  case 565: /* type_specifier_nonarray: ATTACHMENTEXT  */
11844
0
#line 3691 "MachineIndependent/glslang.y"
11845
0
                    {
11846
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
11847
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11848
0
        (yyval.interm.type).basicType = EbtSampler;
11849
0
        (yyval.interm.type).sampler.setAttachmentEXT(EbtFloat);
11850
0
    }
11851
0
#line 11852 "MachineIndependent/glslang_tab.cpp"
11852
0
    break;
11853
11854
0
  case 566: /* type_specifier_nonarray: IATTACHMENTEXT  */
11855
0
#line 3697 "MachineIndependent/glslang.y"
11856
0
                     {
11857
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
11858
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11859
0
        (yyval.interm.type).basicType = EbtSampler;
11860
0
        (yyval.interm.type).sampler.setAttachmentEXT(EbtInt);
11861
0
    }
11862
0
#line 11863 "MachineIndependent/glslang_tab.cpp"
11863
0
    break;
11864
11865
0
  case 567: /* type_specifier_nonarray: UATTACHMENTEXT  */
11866
0
#line 3703 "MachineIndependent/glslang.y"
11867
0
                     {
11868
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "attachmentEXT input");
11869
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11870
0
        (yyval.interm.type).basicType = EbtSampler;
11871
0
        (yyval.interm.type).sampler.setAttachmentEXT(EbtUint);
11872
0
    }
11873
0
#line 11874 "MachineIndependent/glslang_tab.cpp"
11874
0
    break;
11875
11876
0
  case 568: /* type_specifier_nonarray: SUBPASSINPUT  */
11877
0
#line 3709 "MachineIndependent/glslang.y"
11878
0
                   {
11879
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11880
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11881
0
        (yyval.interm.type).basicType = EbtSampler;
11882
0
        (yyval.interm.type).sampler.setSubpass(EbtFloat);
11883
0
    }
11884
0
#line 11885 "MachineIndependent/glslang_tab.cpp"
11885
0
    break;
11886
11887
0
  case 569: /* type_specifier_nonarray: SUBPASSINPUTMS  */
11888
0
#line 3715 "MachineIndependent/glslang.y"
11889
0
                     {
11890
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11891
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11892
0
        (yyval.interm.type).basicType = EbtSampler;
11893
0
        (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
11894
0
    }
11895
0
#line 11896 "MachineIndependent/glslang_tab.cpp"
11896
0
    break;
11897
11898
0
  case 570: /* type_specifier_nonarray: F16SUBPASSINPUT  */
11899
0
#line 3721 "MachineIndependent/glslang.y"
11900
0
                      {
11901
0
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
11902
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11903
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11904
0
        (yyval.interm.type).basicType = EbtSampler;
11905
0
        (yyval.interm.type).sampler.setSubpass(EbtFloat16);
11906
0
    }
11907
0
#line 11908 "MachineIndependent/glslang_tab.cpp"
11908
0
    break;
11909
11910
0
  case 571: /* type_specifier_nonarray: F16SUBPASSINPUTMS  */
11911
0
#line 3728 "MachineIndependent/glslang.y"
11912
0
                        {
11913
0
        parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
11914
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11915
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11916
0
        (yyval.interm.type).basicType = EbtSampler;
11917
0
        (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
11918
0
    }
11919
0
#line 11920 "MachineIndependent/glslang_tab.cpp"
11920
0
    break;
11921
11922
0
  case 572: /* type_specifier_nonarray: ISUBPASSINPUT  */
11923
0
#line 3735 "MachineIndependent/glslang.y"
11924
0
                    {
11925
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11926
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11927
0
        (yyval.interm.type).basicType = EbtSampler;
11928
0
        (yyval.interm.type).sampler.setSubpass(EbtInt);
11929
0
    }
11930
0
#line 11931 "MachineIndependent/glslang_tab.cpp"
11931
0
    break;
11932
11933
0
  case 573: /* type_specifier_nonarray: ISUBPASSINPUTMS  */
11934
0
#line 3741 "MachineIndependent/glslang.y"
11935
0
                      {
11936
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11937
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11938
0
        (yyval.interm.type).basicType = EbtSampler;
11939
0
        (yyval.interm.type).sampler.setSubpass(EbtInt, true);
11940
0
    }
11941
0
#line 11942 "MachineIndependent/glslang_tab.cpp"
11942
0
    break;
11943
11944
0
  case 574: /* type_specifier_nonarray: USUBPASSINPUT  */
11945
0
#line 3747 "MachineIndependent/glslang.y"
11946
0
                    {
11947
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11948
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11949
0
        (yyval.interm.type).basicType = EbtSampler;
11950
0
        (yyval.interm.type).sampler.setSubpass(EbtUint);
11951
0
    }
11952
0
#line 11953 "MachineIndependent/glslang_tab.cpp"
11953
0
    break;
11954
11955
0
  case 575: /* type_specifier_nonarray: USUBPASSINPUTMS  */
11956
0
#line 3753 "MachineIndependent/glslang.y"
11957
0
                      {
11958
0
        parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
11959
0
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11960
0
        (yyval.interm.type).basicType = EbtSampler;
11961
0
        (yyval.interm.type).sampler.setSubpass(EbtUint, true);
11962
0
    }
11963
0
#line 11964 "MachineIndependent/glslang_tab.cpp"
11964
0
    break;
11965
11966
42
  case 576: /* type_specifier_nonarray: FCOOPMATNV  */
11967
42
#line 3759 "MachineIndependent/glslang.y"
11968
42
                 {
11969
42
        parseContext.fcoopmatCheckNV((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
11970
42
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11971
42
        (yyval.interm.type).basicType = EbtFloat;
11972
42
        (yyval.interm.type).coopmatNV = true;
11973
42
        (yyval.interm.type).coopmatKHR = false;
11974
42
    }
11975
42
#line 11976 "MachineIndependent/glslang_tab.cpp"
11976
42
    break;
11977
11978
56
  case 577: /* type_specifier_nonarray: ICOOPMATNV  */
11979
56
#line 3766 "MachineIndependent/glslang.y"
11980
56
                 {
11981
56
        parseContext.intcoopmatCheckNV((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
11982
56
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11983
56
        (yyval.interm.type).basicType = EbtInt;
11984
56
        (yyval.interm.type).coopmatNV = true;
11985
56
        (yyval.interm.type).coopmatKHR = false;
11986
56
    }
11987
56
#line 11988 "MachineIndependent/glslang_tab.cpp"
11988
56
    break;
11989
11990
56
  case 578: /* type_specifier_nonarray: UCOOPMATNV  */
11991
56
#line 3773 "MachineIndependent/glslang.y"
11992
56
                 {
11993
56
        parseContext.intcoopmatCheckNV((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
11994
56
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
11995
56
        (yyval.interm.type).basicType = EbtUint;
11996
56
        (yyval.interm.type).coopmatNV = true;
11997
56
        (yyval.interm.type).coopmatKHR = false;
11998
56
    }
11999
56
#line 12000 "MachineIndependent/glslang_tab.cpp"
12000
56
    break;
12001
12002
434
  case 579: /* type_specifier_nonarray: COOPMAT  */
12003
434
#line 3780 "MachineIndependent/glslang.y"
12004
434
              {
12005
434
        parseContext.coopmatCheck((yyvsp[0].lex).loc, "coopmat", parseContext.symbolTable.atBuiltInLevel());
12006
434
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12007
434
        (yyval.interm.type).basicType = EbtCoopmat;
12008
434
        (yyval.interm.type).coopmatNV = false;
12009
434
        (yyval.interm.type).coopmatKHR = true;
12010
434
    }
12011
434
#line 12012 "MachineIndependent/glslang_tab.cpp"
12012
434
    break;
12013
12014
120
  case 580: /* type_specifier_nonarray: TENSORLAYOUTNV  */
12015
120
#line 3787 "MachineIndependent/glslang.y"
12016
120
                     {
12017
120
        parseContext.tensorLayoutViewCheck((yyvsp[0].lex).loc, "tensorLayoutNV", parseContext.symbolTable.atBuiltInLevel());
12018
120
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12019
120
        (yyval.interm.type).basicType = EbtTensorLayoutNV;
12020
120
    }
12021
120
#line 12022 "MachineIndependent/glslang_tab.cpp"
12022
120
    break;
12023
12024
74
  case 581: /* type_specifier_nonarray: TENSORVIEWNV  */
12025
74
#line 3792 "MachineIndependent/glslang.y"
12026
74
                   {
12027
74
        parseContext.tensorLayoutViewCheck((yyvsp[0].lex).loc, "tensorViewNV", parseContext.symbolTable.atBuiltInLevel());
12028
74
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12029
74
        (yyval.interm.type).basicType = EbtTensorViewNV;
12030
74
    }
12031
74
#line 12032 "MachineIndependent/glslang_tab.cpp"
12032
74
    break;
12033
12034
28
  case 582: /* type_specifier_nonarray: FUNCTION  */
12035
28
#line 3797 "MachineIndependent/glslang.y"
12036
28
               {
12037
28
        (yyval.interm.type).init((yyvsp[0].lex).loc);
12038
28
        (yyval.interm.type).basicType = EbtFunction;
12039
28
    }
12040
28
#line 12041 "MachineIndependent/glslang_tab.cpp"
12041
28
    break;
12042
12043
1.59k
  case 583: /* type_specifier_nonarray: COOPVECNV  */
12044
1.59k
#line 3801 "MachineIndependent/glslang.y"
12045
1.59k
                {
12046
1.59k
        parseContext.coopvecCheck((yyvsp[0].lex).loc, "coopvecNV", parseContext.symbolTable.atBuiltInLevel());
12047
1.59k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12048
1.59k
        (yyval.interm.type).basicType = EbtCoopvecNV;
12049
1.59k
        (yyval.interm.type).coopvecNV = true;
12050
1.59k
    }
12051
1.59k
#line 12052 "MachineIndependent/glslang_tab.cpp"
12052
1.59k
    break;
12053
12054
122
  case 584: /* type_specifier_nonarray: TENSORARM  */
12055
122
#line 3807 "MachineIndependent/glslang.y"
12056
122
                {
12057
122
        parseContext.tensorCheckARM((yyvsp[0].lex).loc, "tensorARM", parseContext.symbolTable.atBuiltInLevel());
12058
122
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12059
122
        (yyval.interm.type).tensorRankARM = 1; // placeholder value
12060
122
        (yyval.interm.type).basicType = EbtTensorARM;
12061
122
    }
12062
122
#line 12063 "MachineIndependent/glslang_tab.cpp"
12063
122
    break;
12064
12065
1.24k
  case 585: /* type_specifier_nonarray: VECTOR  */
12066
1.24k
#line 3813 "MachineIndependent/glslang.y"
12067
1.24k
             {
12068
1.24k
        parseContext.longVectorCheck((yyvsp[0].lex).loc, "vector", parseContext.symbolTable.atBuiltInLevel());
12069
1.24k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12070
1.24k
        (yyval.interm.type).basicType = EbtLongVector;
12071
1.24k
        (yyval.interm.type).longVector = true;
12072
1.24k
    }
12073
1.24k
#line 12074 "MachineIndependent/glslang_tab.cpp"
12074
1.24k
    break;
12075
12076
0
  case 586: /* type_specifier_nonarray: spirv_type_specifier  */
12077
0
#line 3819 "MachineIndependent/glslang.y"
12078
0
                           {
12079
0
        parseContext.requireExtensions((yyvsp[0].interm.type).loc, 1, &E_GL_EXT_spirv_intrinsics, "SPIR-V type specifier");
12080
0
        (yyval.interm.type) = (yyvsp[0].interm.type);
12081
0
    }
12082
0
#line 12083 "MachineIndependent/glslang_tab.cpp"
12083
0
    break;
12084
12085
0
  case 587: /* type_specifier_nonarray: HITOBJECTNV  */
12086
0
#line 3823 "MachineIndependent/glslang.y"
12087
0
                  {
12088
0
       (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12089
0
       (yyval.interm.type).basicType = EbtHitObjectNV;
12090
0
    }
12091
0
#line 12092 "MachineIndependent/glslang_tab.cpp"
12092
0
    break;
12093
12094
0
  case 588: /* type_specifier_nonarray: HITOBJECTEXT  */
12095
0
#line 3827 "MachineIndependent/glslang.y"
12096
0
                   {
12097
0
       (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12098
0
       (yyval.interm.type).basicType = EbtHitObjectEXT;
12099
0
    }
12100
0
#line 12101 "MachineIndependent/glslang_tab.cpp"
12101
0
    break;
12102
12103
104
  case 589: /* type_specifier_nonarray: struct_specifier  */
12104
104
#line 3831 "MachineIndependent/glslang.y"
12105
104
                       {
12106
104
        (yyval.interm.type) = (yyvsp[0].interm.type);
12107
104
        (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
12108
104
        parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
12109
104
    }
12110
104
#line 12111 "MachineIndependent/glslang_tab.cpp"
12111
104
    break;
12112
12113
124
  case 590: /* type_specifier_nonarray: TYPE_NAME  */
12114
124
#line 3836 "MachineIndependent/glslang.y"
12115
124
                {
12116
        //
12117
        // This is for user defined type names.  The lexical phase looked up the
12118
        // type.
12119
        //
12120
124
        if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
12121
124
            const TType& structure = variable->getType();
12122
124
            (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12123
124
            (yyval.interm.type).basicType = EbtStruct;
12124
124
            (yyval.interm.type).userDef = &structure;
12125
124
            if (structure.getQualifier().isBufferType())
12126
0
                (yyval.interm.type).qualifier = structure.getQualifier();
12127
124
        } else
12128
0
            parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
12129
124
    }
12130
124
#line 12131 "MachineIndependent/glslang_tab.cpp"
12131
124
    break;
12132
12133
4.57k
  case 591: /* precision_qualifier: HIGH_PRECISION  */
12134
4.57k
#line 3854 "MachineIndependent/glslang.y"
12135
4.57k
                     {
12136
4.57k
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
12137
4.57k
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12138
4.57k
        parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
12139
4.57k
    }
12140
4.57k
#line 12141 "MachineIndependent/glslang_tab.cpp"
12141
4.57k
    break;
12142
12143
706
  case 592: /* precision_qualifier: MEDIUM_PRECISION  */
12144
706
#line 3859 "MachineIndependent/glslang.y"
12145
706
                       {
12146
706
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
12147
706
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12148
706
        parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
12149
706
    }
12150
706
#line 12151 "MachineIndependent/glslang_tab.cpp"
12151
706
    break;
12152
12153
20
  case 593: /* precision_qualifier: LOW_PRECISION  */
12154
20
#line 3864 "MachineIndependent/glslang.y"
12155
20
                    {
12156
20
        parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
12157
20
        (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
12158
20
        parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
12159
20
    }
12160
20
#line 12161 "MachineIndependent/glslang_tab.cpp"
12161
20
    break;
12162
12163
104
  case 594: /* $@3: %empty  */
12164
104
#line 3872 "MachineIndependent/glslang.y"
12165
104
                                   { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
12166
104
#line 12167 "MachineIndependent/glslang_tab.cpp"
12167
104
    break;
12168
12169
104
  case 595: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE  */
12170
104
#line 3872 "MachineIndependent/glslang.y"
12171
104
                                                                                                                   {
12172
104
        TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
12173
104
        parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
12174
12175
104
        TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
12176
104
        if (! parseContext.symbolTable.insert(*userTypeDef))
12177
0
            parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
12178
104
        else if (parseContext.spvVersion.vulkanRelaxed
12179
0
                 && structure->containsOpaque())
12180
0
            parseContext.relaxedSymbols.push_back(structure->getTypeName());
12181
12182
104
        (yyval.interm.type).init((yyvsp[-5].lex).loc);
12183
104
        (yyval.interm.type).basicType = EbtStruct;
12184
104
        (yyval.interm.type).userDef = structure;
12185
104
        --parseContext.structNestingLevel;
12186
104
    }
12187
104
#line 12188 "MachineIndependent/glslang_tab.cpp"
12188
104
    break;
12189
12190
0
  case 596: /* $@4: %empty  */
12191
0
#line 3888 "MachineIndependent/glslang.y"
12192
0
                        { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
12193
0
#line 12194 "MachineIndependent/glslang_tab.cpp"
12194
0
    break;
12195
12196
0
  case 597: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE  */
12197
0
#line 3888 "MachineIndependent/glslang.y"
12198
0
                                                                                                        {
12199
0
        TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
12200
0
        (yyval.interm.type).init((yyvsp[-4].lex).loc);
12201
0
        (yyval.interm.type).basicType = EbtStruct;
12202
0
        (yyval.interm.type).userDef = structure;
12203
0
        --parseContext.structNestingLevel;
12204
0
    }
12205
0
#line 12206 "MachineIndependent/glslang_tab.cpp"
12206
0
    break;
12207
12208
122
  case 598: /* struct_declaration_list: struct_declaration  */
12209
122
#line 3898 "MachineIndependent/glslang.y"
12210
122
                         {
12211
122
        (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
12212
122
    }
12213
122
#line 12214 "MachineIndependent/glslang_tab.cpp"
12214
122
    break;
12215
12216
296
  case 599: /* struct_declaration_list: struct_declaration_list struct_declaration  */
12217
296
#line 3901 "MachineIndependent/glslang.y"
12218
296
                                                 {
12219
296
        (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
12220
592
        for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
12221
878
            for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
12222
582
                if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
12223
0
                    parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
12224
582
            }
12225
296
            (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
12226
296
        }
12227
296
    }
12228
296
#line 12229 "MachineIndependent/glslang_tab.cpp"
12229
296
    break;
12230
12231
418
  case 600: /* struct_declaration: struct_declaration_no_inline_block  */
12232
418
#line 3914 "MachineIndependent/glslang.y"
12233
418
                                         {
12234
418
        (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
12235
418
    }
12236
418
#line 12237 "MachineIndependent/glslang_tab.cpp"
12237
418
    break;
12238
12239
0
  case 601: /* struct_declaration: block_heap_inner_structure struct_declarator_list SEMICOLON  */
12240
0
#line 3917 "MachineIndependent/glslang.y"
12241
0
                                                                  {
12242
0
        (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
12243
0
        parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
12244
0
        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).hasTypeParameter());
12245
12246
0
        for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
12247
0
            TType type((yyvsp[-2].interm.type));
12248
0
            type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
12249
0
            type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
12250
0
            type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
12251
0
            parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
12252
0
            (*(yyval.interm.typeList))[i].type->shallowCopy(type);
12253
0
        }
12254
0
    }
12255
0
#line 12256 "MachineIndependent/glslang_tab.cpp"
12256
0
    break;
12257
12258
0
  case 602: /* $@5: %empty  */
12259
0
#line 3934 "MachineIndependent/glslang.y"
12260
0
                                { parseContext.nestedBlockCheck((yyvsp[-1].interm.type).loc, true); }
12261
0
#line 12262 "MachineIndependent/glslang_tab.cpp"
12262
0
    break;
12263
12264
0
  case 603: /* block_heap_inner_structure: type_qualifier LEFT_BRACE $@5 struct_declaration_no_inline_block_list RIGHT_BRACE  */
12265
0
#line 3934 "MachineIndependent/glslang.y"
12266
0
                                                                                                                                     {
12267
0
        --parseContext.blockNestingLevel;
12268
0
        parseContext.globalQualifierFixCheck((yyvsp[-4].interm.type).loc, (yyvsp[-4].interm.type).qualifier);
12269
0
        parseContext.checkNoShaderLayouts((yyvsp[-4].interm.type).loc, (yyvsp[-4].interm.type).shaderQualifiers);
12270
0
        (yyval.interm.type).init((yyvsp[-4].interm.type).loc);
12271
0
        TType* innerStructure = new TType((yyvsp[-1].interm.typeList), TString(""), (yyvsp[-4].interm.type).qualifier);
12272
0
        if (! (yyvsp[-4].interm.type).qualifier.hasBufferReference())
12273
0
            parseContext.error((yyvsp[-4].interm.type).loc, "only buffer_reference blocks can be declared inline inside a heap block", "", "");
12274
0
        TType* referenceType = new TType(EbtReference, *innerStructure, TString(""));
12275
0
        (yyval.interm.type).basicType = EbtReference;
12276
0
        (yyval.interm.type).userDef = referenceType;
12277
0
        (yyval.interm.type).qualifier.layoutDescriptorHeap = true;
12278
0
    }
12279
0
#line 12280 "MachineIndependent/glslang_tab.cpp"
12280
0
    break;
12281
12282
0
  case 604: /* struct_declaration_no_inline_block_list: struct_declaration_no_inline_block  */
12283
0
#line 3950 "MachineIndependent/glslang.y"
12284
0
                                         {
12285
0
        (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
12286
0
    }
12287
0
#line 12288 "MachineIndependent/glslang_tab.cpp"
12288
0
    break;
12289
12290
0
  case 605: /* struct_declaration_no_inline_block_list: struct_declaration_no_inline_block_list struct_declaration_no_inline_block  */
12291
0
#line 3953 "MachineIndependent/glslang.y"
12292
0
                                                                                 {
12293
0
        (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
12294
0
        for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
12295
0
            for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
12296
0
                if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
12297
0
                    parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
12298
0
            }
12299
0
            (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
12300
0
        }
12301
0
    }
12302
0
#line 12303 "MachineIndependent/glslang_tab.cpp"
12303
0
    break;
12304
12305
114
  case 606: /* struct_declaration_no_inline_block: type_specifier struct_declarator_list SEMICOLON  */
12306
114
#line 3966 "MachineIndependent/glslang.y"
12307
114
                                                      {
12308
114
        if ((yyvsp[-2].interm.type).arraySizes) {
12309
0
            parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
12310
0
            parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
12311
0
            if (parseContext.isEsProfile())
12312
0
                parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
12313
0
        }
12314
12315
114
        (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
12316
12317
114
        parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
12318
114
        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).hasTypeParameter());
12319
12320
228
        for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
12321
114
            TType type((yyvsp[-2].interm.type));
12322
114
            type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
12323
114
            type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
12324
114
            type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
12325
114
            parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
12326
114
            (*(yyval.interm.typeList))[i].type->shallowCopy(type);
12327
114
        }
12328
114
    }
12329
114
#line 12330 "MachineIndependent/glslang_tab.cpp"
12330
114
    break;
12331
12332
304
  case 607: /* struct_declaration_no_inline_block: type_qualifier type_specifier struct_declarator_list SEMICOLON  */
12333
304
#line 3988 "MachineIndependent/glslang.y"
12334
304
                                                                     {
12335
304
        if ((yyvsp[-2].interm.type).arraySizes) {
12336
0
            parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
12337
0
            parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
12338
0
            if (parseContext.isEsProfile())
12339
0
                parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
12340
0
        }
12341
12342
304
        (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
12343
12344
304
        parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
12345
304
        parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
12346
304
        parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
12347
304
        parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier, (yyvsp[-2].interm.type).hasTypeParameter());
12348
12349
608
        for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
12350
304
            TType type((yyvsp[-2].interm.type));
12351
304
            type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
12352
304
            type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
12353
304
            type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
12354
304
            parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
12355
304
            (*(yyval.interm.typeList))[i].type->shallowCopy(type);
12356
304
        }
12357
304
    }
12358
304
#line 12359 "MachineIndependent/glslang_tab.cpp"
12359
304
    break;
12360
12361
418
  case 608: /* struct_declarator_list: struct_declarator  */
12362
418
#line 4015 "MachineIndependent/glslang.y"
12363
418
                        {
12364
418
        (yyval.interm.typeList) = new TTypeList;
12365
418
        (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
12366
418
    }
12367
418
#line 12368 "MachineIndependent/glslang_tab.cpp"
12368
418
    break;
12369
12370
0
  case 609: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator  */
12371
0
#line 4019 "MachineIndependent/glslang.y"
12372
0
                                                     {
12373
0
        (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
12374
0
    }
12375
0
#line 12376 "MachineIndependent/glslang_tab.cpp"
12376
0
    break;
12377
12378
368
  case 610: /* struct_declarator: IDENTIFIER  */
12379
368
#line 4025 "MachineIndependent/glslang.y"
12380
368
                 {
12381
368
        (yyval.interm.typeLine).type = new TType(EbtVoid);
12382
368
        (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
12383
368
        (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
12384
368
    }
12385
368
#line 12386 "MachineIndependent/glslang_tab.cpp"
12386
368
    break;
12387
12388
50
  case 611: /* struct_declarator: IDENTIFIER array_specifier  */
12389
50
#line 4030 "MachineIndependent/glslang.y"
12390
50
                                 {
12391
50
        parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
12392
12393
50
        (yyval.interm.typeLine).type = new TType(EbtVoid);
12394
50
        (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
12395
50
        (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
12396
50
        (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
12397
50
    }
12398
50
#line 12399 "MachineIndependent/glslang_tab.cpp"
12399
50
    break;
12400
12401
874
  case 612: /* initializer: assignment_expression  */
12402
874
#line 4041 "MachineIndependent/glslang.y"
12403
874
                            {
12404
874
        (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
12405
874
    }
12406
874
#line 12407 "MachineIndependent/glslang_tab.cpp"
12407
874
    break;
12408
12409
0
  case 613: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE  */
12410
0
#line 4044 "MachineIndependent/glslang.y"
12411
0
                                              {
12412
0
        const char* initFeature = "{ } style initializers";
12413
0
        parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
12414
0
        parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
12415
0
        (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
12416
0
    }
12417
0
#line 12418 "MachineIndependent/glslang_tab.cpp"
12418
0
    break;
12419
12420
0
  case 614: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE  */
12421
0
#line 4050 "MachineIndependent/glslang.y"
12422
0
                                                    {
12423
0
        const char* initFeature = "{ } style initializers";
12424
0
        parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
12425
0
        parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
12426
0
        (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
12427
0
    }
12428
0
#line 12429 "MachineIndependent/glslang_tab.cpp"
12429
0
    break;
12430
12431
0
  case 615: /* initializer: LEFT_BRACE RIGHT_BRACE  */
12432
0
#line 4056 "MachineIndependent/glslang.y"
12433
0
                             {
12434
0
        const char* initFeature = "empty { } initializer";
12435
0
        parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
12436
0
        parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
12437
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
12438
0
    }
12439
0
#line 12440 "MachineIndependent/glslang_tab.cpp"
12440
0
    break;
12441
12442
0
  case 616: /* initializer_list: initializer  */
12443
0
#line 4065 "MachineIndependent/glslang.y"
12444
0
                  {
12445
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
12446
0
    }
12447
0
#line 12448 "MachineIndependent/glslang_tab.cpp"
12448
0
    break;
12449
12450
0
  case 617: /* initializer_list: initializer_list COMMA initializer  */
12451
0
#line 4068 "MachineIndependent/glslang.y"
12452
0
                                         {
12453
0
        (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
12454
0
    }
12455
0
#line 12456 "MachineIndependent/glslang_tab.cpp"
12456
0
    break;
12457
12458
0
  case 618: /* declaration_statement: declaration  */
12459
0
#line 4074 "MachineIndependent/glslang.y"
12460
0
                  { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12461
0
#line 12462 "MachineIndependent/glslang_tab.cpp"
12462
0
    break;
12463
12464
0
  case 619: /* statement: compound_statement  */
12465
0
#line 4078 "MachineIndependent/glslang.y"
12466
0
                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12467
0
#line 12468 "MachineIndependent/glslang_tab.cpp"
12468
0
    break;
12469
12470
0
  case 620: /* statement: simple_statement  */
12471
0
#line 4079 "MachineIndependent/glslang.y"
12472
0
                          { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12473
0
#line 12474 "MachineIndependent/glslang_tab.cpp"
12474
0
    break;
12475
12476
0
  case 621: /* simple_statement: declaration_statement  */
12477
0
#line 4085 "MachineIndependent/glslang.y"
12478
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12479
0
#line 12480 "MachineIndependent/glslang_tab.cpp"
12480
0
    break;
12481
12482
0
  case 622: /* simple_statement: expression_statement  */
12483
0
#line 4086 "MachineIndependent/glslang.y"
12484
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12485
0
#line 12486 "MachineIndependent/glslang_tab.cpp"
12486
0
    break;
12487
12488
0
  case 623: /* simple_statement: selection_statement  */
12489
0
#line 4087 "MachineIndependent/glslang.y"
12490
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12491
0
#line 12492 "MachineIndependent/glslang_tab.cpp"
12492
0
    break;
12493
12494
0
  case 624: /* simple_statement: switch_statement  */
12495
0
#line 4088 "MachineIndependent/glslang.y"
12496
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12497
0
#line 12498 "MachineIndependent/glslang_tab.cpp"
12498
0
    break;
12499
12500
0
  case 625: /* simple_statement: case_label  */
12501
0
#line 4089 "MachineIndependent/glslang.y"
12502
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12503
0
#line 12504 "MachineIndependent/glslang_tab.cpp"
12504
0
    break;
12505
12506
0
  case 626: /* simple_statement: iteration_statement  */
12507
0
#line 4090 "MachineIndependent/glslang.y"
12508
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12509
0
#line 12510 "MachineIndependent/glslang_tab.cpp"
12510
0
    break;
12511
12512
0
  case 627: /* simple_statement: jump_statement  */
12513
0
#line 4091 "MachineIndependent/glslang.y"
12514
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12515
0
#line 12516 "MachineIndependent/glslang_tab.cpp"
12516
0
    break;
12517
12518
0
  case 628: /* simple_statement: demote_statement  */
12519
0
#line 4092 "MachineIndependent/glslang.y"
12520
0
                            { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12521
0
#line 12522 "MachineIndependent/glslang_tab.cpp"
12522
0
    break;
12523
12524
0
  case 629: /* demote_statement: DEMOTE SEMICOLON  */
12525
0
#line 4096 "MachineIndependent/glslang.y"
12526
0
                       {
12527
0
        parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
12528
0
        parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
12529
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
12530
0
    }
12531
0
#line 12532 "MachineIndependent/glslang_tab.cpp"
12532
0
    break;
12533
12534
0
  case 630: /* compound_statement: LEFT_BRACE RIGHT_BRACE  */
12535
0
#line 4104 "MachineIndependent/glslang.y"
12536
0
                             { (yyval.interm.intermNode) = 0; }
12537
0
#line 12538 "MachineIndependent/glslang_tab.cpp"
12538
0
    break;
12539
12540
0
  case 631: /* $@6: %empty  */
12541
0
#line 4105 "MachineIndependent/glslang.y"
12542
0
                 {
12543
0
        parseContext.symbolTable.push();
12544
0
        ++parseContext.statementNestingLevel;
12545
0
    }
12546
0
#line 12547 "MachineIndependent/glslang_tab.cpp"
12547
0
    break;
12548
12549
0
  case 632: /* $@7: %empty  */
12550
0
#line 4109 "MachineIndependent/glslang.y"
12551
0
                     {
12552
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
12553
0
        --parseContext.statementNestingLevel;
12554
0
    }
12555
0
#line 12556 "MachineIndependent/glslang_tab.cpp"
12556
0
    break;
12557
12558
0
  case 633: /* compound_statement: LEFT_BRACE $@6 statement_list $@7 RIGHT_BRACE  */
12559
0
#line 4113 "MachineIndependent/glslang.y"
12560
0
                  {
12561
0
        if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) {
12562
0
            (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
12563
0
            (yyvsp[-2].interm.intermNode)->getAsAggregate()->setEndLoc((yyvsp[0].lex).loc);
12564
0
        }
12565
0
        (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
12566
0
    }
12567
0
#line 12568 "MachineIndependent/glslang_tab.cpp"
12568
0
    break;
12569
12570
0
  case 634: /* statement_no_new_scope: compound_statement_no_new_scope  */
12571
0
#line 4123 "MachineIndependent/glslang.y"
12572
0
                                      { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12573
0
#line 12574 "MachineIndependent/glslang_tab.cpp"
12574
0
    break;
12575
12576
0
  case 635: /* statement_no_new_scope: simple_statement  */
12577
0
#line 4124 "MachineIndependent/glslang.y"
12578
0
                                      { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
12579
0
#line 12580 "MachineIndependent/glslang_tab.cpp"
12580
0
    break;
12581
12582
0
  case 636: /* $@8: %empty  */
12583
0
#line 4128 "MachineIndependent/glslang.y"
12584
0
      {
12585
0
        ++parseContext.controlFlowNestingLevel;
12586
0
    }
12587
0
#line 12588 "MachineIndependent/glslang_tab.cpp"
12588
0
    break;
12589
12590
0
  case 637: /* statement_scoped: $@8 compound_statement  */
12591
0
#line 4131 "MachineIndependent/glslang.y"
12592
0
                          {
12593
0
        --parseContext.controlFlowNestingLevel;
12594
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12595
0
    }
12596
0
#line 12597 "MachineIndependent/glslang_tab.cpp"
12597
0
    break;
12598
12599
0
  case 638: /* $@9: %empty  */
12600
0
#line 4135 "MachineIndependent/glslang.y"
12601
0
      {
12602
0
        parseContext.symbolTable.push();
12603
0
        ++parseContext.statementNestingLevel;
12604
0
        ++parseContext.controlFlowNestingLevel;
12605
0
    }
12606
0
#line 12607 "MachineIndependent/glslang_tab.cpp"
12607
0
    break;
12608
12609
0
  case 639: /* statement_scoped: $@9 simple_statement  */
12610
0
#line 4140 "MachineIndependent/glslang.y"
12611
0
                       {
12612
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
12613
0
        --parseContext.statementNestingLevel;
12614
0
        --parseContext.controlFlowNestingLevel;
12615
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12616
0
    }
12617
0
#line 12618 "MachineIndependent/glslang_tab.cpp"
12618
0
    break;
12619
12620
0
  case 640: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE  */
12621
0
#line 4149 "MachineIndependent/glslang.y"
12622
0
                             {
12623
0
        (yyval.interm.intermNode) = 0;
12624
0
    }
12625
0
#line 12626 "MachineIndependent/glslang_tab.cpp"
12626
0
    break;
12627
12628
0
  case 641: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE  */
12629
0
#line 4152 "MachineIndependent/glslang.y"
12630
0
                                            {
12631
0
        if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) {
12632
0
            (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
12633
0
            (yyvsp[-1].interm.intermNode)->getAsAggregate()->setEndLoc((yyvsp[0].lex).loc);
12634
0
        }
12635
0
        (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
12636
0
    }
12637
0
#line 12638 "MachineIndependent/glslang_tab.cpp"
12638
0
    break;
12639
12640
0
  case 642: /* statement_list: statement  */
12641
0
#line 4162 "MachineIndependent/glslang.y"
12642
0
                {
12643
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
12644
0
        if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
12645
0
                                            (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
12646
0
            parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
12647
0
            (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
12648
0
        }
12649
0
    }
12650
0
#line 12651 "MachineIndependent/glslang_tab.cpp"
12651
0
    break;
12652
12653
0
  case 643: /* statement_list: statement_list statement  */
12654
0
#line 4170 "MachineIndependent/glslang.y"
12655
0
                               {
12656
0
        if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
12657
0
                                            (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
12658
0
            parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
12659
0
            (yyval.interm.intermNode) = 0;  // start a fresh subsequence for what's after this case
12660
0
        } else
12661
0
            (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
12662
0
    }
12663
0
#line 12664 "MachineIndependent/glslang_tab.cpp"
12664
0
    break;
12665
12666
0
  case 644: /* expression_statement: SEMICOLON  */
12667
0
#line 4181 "MachineIndependent/glslang.y"
12668
0
                 { (yyval.interm.intermNode) = 0; }
12669
0
#line 12670 "MachineIndependent/glslang_tab.cpp"
12670
0
    break;
12671
12672
0
  case 645: /* expression_statement: expression SEMICOLON  */
12673
0
#line 4182 "MachineIndependent/glslang.y"
12674
0
                            { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
12675
0
#line 12676 "MachineIndependent/glslang_tab.cpp"
12676
0
    break;
12677
12678
0
  case 646: /* selection_statement: selection_statement_nonattributed  */
12679
0
#line 4186 "MachineIndependent/glslang.y"
12680
0
                                        {
12681
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12682
0
    }
12683
0
#line 12684 "MachineIndependent/glslang_tab.cpp"
12684
0
    break;
12685
12686
0
  case 647: /* selection_statement: attribute selection_statement_nonattributed  */
12687
0
#line 4189 "MachineIndependent/glslang.y"
12688
0
                                                  {
12689
0
        parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
12690
0
        parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
12691
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12692
0
    }
12693
0
#line 12694 "MachineIndependent/glslang_tab.cpp"
12694
0
    break;
12695
12696
0
  case 648: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement  */
12697
0
#line 4196 "MachineIndependent/glslang.y"
12698
0
                                                                    {
12699
0
        parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
12700
0
        (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
12701
0
    }
12702
0
#line 12703 "MachineIndependent/glslang_tab.cpp"
12703
0
    break;
12704
12705
0
  case 649: /* selection_rest_statement: statement_scoped ELSE statement_scoped  */
12706
0
#line 4203 "MachineIndependent/glslang.y"
12707
0
                                             {
12708
0
        (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
12709
0
        (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
12710
0
    }
12711
0
#line 12712 "MachineIndependent/glslang_tab.cpp"
12712
0
    break;
12713
12714
0
  case 650: /* selection_rest_statement: statement_scoped  */
12715
0
#line 4207 "MachineIndependent/glslang.y"
12716
0
                       {
12717
0
        (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
12718
0
        (yyval.interm.nodePair).node2 = 0;
12719
0
    }
12720
0
#line 12721 "MachineIndependent/glslang_tab.cpp"
12721
0
    break;
12722
12723
0
  case 651: /* condition: expression  */
12724
0
#line 4215 "MachineIndependent/glslang.y"
12725
0
                 {
12726
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode);
12727
0
        parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
12728
0
    }
12729
0
#line 12730 "MachineIndependent/glslang_tab.cpp"
12730
0
    break;
12731
12732
0
  case 652: /* condition: fully_specified_type IDENTIFIER EQUAL initializer  */
12733
0
#line 4219 "MachineIndependent/glslang.y"
12734
0
                                                        {
12735
0
        parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
12736
12737
0
        TType type((yyvsp[-3].interm.type));
12738
0
        (yyval.interm.intermNode) = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
12739
0
    }
12740
0
#line 12741 "MachineIndependent/glslang_tab.cpp"
12741
0
    break;
12742
12743
0
  case 653: /* switch_statement: switch_statement_nonattributed  */
12744
0
#line 4228 "MachineIndependent/glslang.y"
12745
0
                                     {
12746
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12747
0
    }
12748
0
#line 12749 "MachineIndependent/glslang_tab.cpp"
12749
0
    break;
12750
12751
0
  case 654: /* switch_statement: attribute switch_statement_nonattributed  */
12752
0
#line 4231 "MachineIndependent/glslang.y"
12753
0
                                               {
12754
0
        parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 1, &E_GL_EXT_control_flow_attributes, "attribute");
12755
0
        parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
12756
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12757
0
    }
12758
0
#line 12759 "MachineIndependent/glslang_tab.cpp"
12759
0
    break;
12760
12761
0
  case 655: /* $@10: %empty  */
12762
0
#line 4238 "MachineIndependent/glslang.y"
12763
0
                                               {
12764
        // start new switch sequence on the switch stack
12765
0
        ++parseContext.controlFlowNestingLevel;
12766
0
        ++parseContext.statementNestingLevel;
12767
0
        parseContext.switchSequenceStack.push_back(new TIntermSequence);
12768
0
        parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
12769
0
        parseContext.symbolTable.push();
12770
0
    }
12771
0
#line 12772 "MachineIndependent/glslang_tab.cpp"
12772
0
    break;
12773
12774
0
  case 656: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@10 LEFT_BRACE switch_statement_list RIGHT_BRACE  */
12775
0
#line 4246 "MachineIndependent/glslang.y"
12776
0
                                                 {
12777
0
        (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
12778
0
        delete parseContext.switchSequenceStack.back();
12779
0
        parseContext.switchSequenceStack.pop_back();
12780
0
        parseContext.switchLevel.pop_back();
12781
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
12782
0
        --parseContext.statementNestingLevel;
12783
0
        --parseContext.controlFlowNestingLevel;
12784
0
    }
12785
0
#line 12786 "MachineIndependent/glslang_tab.cpp"
12786
0
    break;
12787
12788
0
  case 657: /* switch_statement_list: %empty  */
12789
0
#line 4258 "MachineIndependent/glslang.y"
12790
0
                    {
12791
0
        (yyval.interm.intermNode) = 0;
12792
0
    }
12793
0
#line 12794 "MachineIndependent/glslang_tab.cpp"
12794
0
    break;
12795
12796
0
  case 658: /* switch_statement_list: statement_list  */
12797
0
#line 4261 "MachineIndependent/glslang.y"
12798
0
                     {
12799
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12800
0
    }
12801
0
#line 12802 "MachineIndependent/glslang_tab.cpp"
12802
0
    break;
12803
12804
0
  case 659: /* case_label: CASE expression COLON  */
12805
0
#line 4267 "MachineIndependent/glslang.y"
12806
0
                            {
12807
0
        (yyval.interm.intermNode) = 0;
12808
0
        if (parseContext.switchLevel.size() == 0)
12809
0
            parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
12810
0
        else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
12811
0
            parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
12812
0
        else {
12813
0
            parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
12814
0
            parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
12815
0
            (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
12816
0
        }
12817
0
    }
12818
0
#line 12819 "MachineIndependent/glslang_tab.cpp"
12819
0
    break;
12820
12821
0
  case 660: /* case_label: DEFAULT COLON  */
12822
0
#line 4279 "MachineIndependent/glslang.y"
12823
0
                    {
12824
0
        (yyval.interm.intermNode) = 0;
12825
0
        if (parseContext.switchLevel.size() == 0)
12826
0
            parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
12827
0
        else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
12828
0
            parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
12829
0
        else
12830
0
            (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
12831
0
    }
12832
0
#line 12833 "MachineIndependent/glslang_tab.cpp"
12833
0
    break;
12834
12835
0
  case 661: /* iteration_statement: iteration_statement_nonattributed  */
12836
0
#line 4291 "MachineIndependent/glslang.y"
12837
0
                                        {
12838
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12839
0
    }
12840
0
#line 12841 "MachineIndependent/glslang_tab.cpp"
12841
0
    break;
12842
12843
0
  case 662: /* iteration_statement: attribute iteration_statement_nonattributed  */
12844
0
#line 4294 "MachineIndependent/glslang.y"
12845
0
                                                  {
12846
0
        const char * extensions[3] = { E_GL_EXT_control_flow_attributes, E_GL_EXT_control_flow_attributes2, E_GL_QCOM_multiple_wait_queues };
12847
0
        parseContext.requireExtensions((yyvsp[0].interm.intermNode)->getLoc(), 3, extensions, "attribute");
12848
0
        parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
12849
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12850
0
    }
12851
0
#line 12852 "MachineIndependent/glslang_tab.cpp"
12852
0
    break;
12853
12854
0
  case 663: /* $@11: %empty  */
12855
0
#line 4302 "MachineIndependent/glslang.y"
12856
0
                       {
12857
0
        if (! parseContext.limits.whileLoops)
12858
0
            parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
12859
0
        parseContext.symbolTable.push();
12860
0
        ++parseContext.loopNestingLevel;
12861
0
        ++parseContext.statementNestingLevel;
12862
0
        ++parseContext.controlFlowNestingLevel;
12863
0
    }
12864
0
#line 12865 "MachineIndependent/glslang_tab.cpp"
12865
0
    break;
12866
12867
0
  case 664: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@11 condition RIGHT_PAREN statement_no_new_scope  */
12868
0
#line 4310 "MachineIndependent/glslang.y"
12869
0
                                                   {
12870
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
12871
0
        (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermNode), 0, true, (yyvsp[-5].lex).loc);
12872
0
        if (parseContext.intermediate.getDebugInfo()) {
12873
0
            (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyval.interm.intermNode), (yyvsp[-5].lex).loc);
12874
0
            (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpScope);
12875
0
        }
12876
0
        --parseContext.loopNestingLevel;
12877
0
        --parseContext.statementNestingLevel;
12878
0
        --parseContext.controlFlowNestingLevel;
12879
0
    }
12880
0
#line 12881 "MachineIndependent/glslang_tab.cpp"
12881
0
    break;
12882
12883
0
  case 665: /* $@12: %empty  */
12884
0
#line 4321 "MachineIndependent/glslang.y"
12885
0
         {
12886
0
        parseContext.symbolTable.push();
12887
0
        ++parseContext.loopNestingLevel;
12888
0
        ++parseContext.statementNestingLevel;
12889
0
        ++parseContext.controlFlowNestingLevel;
12890
0
    }
12891
0
#line 12892 "MachineIndependent/glslang_tab.cpp"
12892
0
    break;
12893
12894
0
  case 666: /* iteration_statement_nonattributed: DO $@12 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON  */
12895
0
#line 4327 "MachineIndependent/glslang.y"
12896
0
                                                                  {
12897
0
        if (! parseContext.limits.whileLoops)
12898
0
            parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
12899
12900
0
        parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
12901
12902
0
        (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
12903
0
        if (parseContext.intermediate.getDebugInfo()) {
12904
0
            (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyval.interm.intermNode), (yyvsp[-4].lex).loc);
12905
0
            (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpScope);
12906
0
        }
12907
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
12908
0
        --parseContext.loopNestingLevel;
12909
0
        --parseContext.statementNestingLevel;
12910
0
        --parseContext.controlFlowNestingLevel;
12911
0
    }
12912
0
#line 12913 "MachineIndependent/glslang_tab.cpp"
12913
0
    break;
12914
12915
0
  case 667: /* $@13: %empty  */
12916
0
#line 4343 "MachineIndependent/glslang.y"
12917
0
                     {
12918
0
        parseContext.symbolTable.push();
12919
0
        ++parseContext.loopNestingLevel;
12920
0
        ++parseContext.statementNestingLevel;
12921
0
        ++parseContext.controlFlowNestingLevel;
12922
0
    }
12923
0
#line 12924 "MachineIndependent/glslang_tab.cpp"
12924
0
    break;
12925
12926
0
  case 668: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@13 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope  */
12927
0
#line 4349 "MachineIndependent/glslang.y"
12928
0
                                                                               {
12929
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
12930
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
12931
0
        TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
12932
0
        if (! parseContext.limits.nonInductiveForLoops)
12933
0
            parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
12934
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
12935
0
        (yyval.interm.intermNode)->getAsAggregate()->setOperator(parseContext.intermediate.getDebugInfo() ? EOpScope : EOpSequence);
12936
0
        --parseContext.loopNestingLevel;
12937
0
        --parseContext.statementNestingLevel;
12938
0
        --parseContext.controlFlowNestingLevel;
12939
0
    }
12940
0
#line 12941 "MachineIndependent/glslang_tab.cpp"
12941
0
    break;
12942
12943
0
  case 669: /* for_init_statement: expression_statement  */
12944
0
#line 4364 "MachineIndependent/glslang.y"
12945
0
                           {
12946
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12947
0
    }
12948
0
#line 12949 "MachineIndependent/glslang_tab.cpp"
12949
0
    break;
12950
12951
0
  case 670: /* for_init_statement: declaration_statement  */
12952
0
#line 4367 "MachineIndependent/glslang.y"
12953
0
                            {
12954
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12955
0
    }
12956
0
#line 12957 "MachineIndependent/glslang_tab.cpp"
12957
0
    break;
12958
12959
0
  case 671: /* conditionopt: condition  */
12960
0
#line 4373 "MachineIndependent/glslang.y"
12961
0
                {
12962
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
12963
0
    }
12964
0
#line 12965 "MachineIndependent/glslang_tab.cpp"
12965
0
    break;
12966
12967
0
  case 672: /* conditionopt: %empty  */
12968
0
#line 4376 "MachineIndependent/glslang.y"
12969
0
                        {
12970
0
        (yyval.interm.intermNode) = 0;
12971
0
    }
12972
0
#line 12973 "MachineIndependent/glslang_tab.cpp"
12973
0
    break;
12974
12975
0
  case 673: /* for_rest_statement: conditionopt SEMICOLON  */
12976
0
#line 4382 "MachineIndependent/glslang.y"
12977
0
                             {
12978
0
        (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermNode);
12979
0
        (yyval.interm.nodePair).node2 = 0;
12980
0
    }
12981
0
#line 12982 "MachineIndependent/glslang_tab.cpp"
12982
0
    break;
12983
12984
0
  case 674: /* for_rest_statement: conditionopt SEMICOLON expression  */
12985
0
#line 4386 "MachineIndependent/glslang.y"
12986
0
                                         {
12987
0
        (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
12988
0
        (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
12989
0
    }
12990
0
#line 12991 "MachineIndependent/glslang_tab.cpp"
12991
0
    break;
12992
12993
0
  case 675: /* jump_statement: CONTINUE SEMICOLON  */
12994
0
#line 4393 "MachineIndependent/glslang.y"
12995
0
                         {
12996
0
        if (parseContext.loopNestingLevel <= 0)
12997
0
            parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
12998
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
12999
0
    }
13000
0
#line 13001 "MachineIndependent/glslang_tab.cpp"
13001
0
    break;
13002
13003
0
  case 676: /* jump_statement: BREAK SEMICOLON  */
13004
0
#line 4398 "MachineIndependent/glslang.y"
13005
0
                      {
13006
0
        if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
13007
0
            parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
13008
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
13009
0
    }
13010
0
#line 13011 "MachineIndependent/glslang_tab.cpp"
13011
0
    break;
13012
13013
0
  case 677: /* jump_statement: RETURN SEMICOLON  */
13014
0
#line 4403 "MachineIndependent/glslang.y"
13015
0
                       {
13016
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
13017
0
        if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
13018
0
            parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
13019
0
        if (parseContext.inMain)
13020
0
            parseContext.postEntryPointReturn = true;
13021
0
    }
13022
0
#line 13023 "MachineIndependent/glslang_tab.cpp"
13023
0
    break;
13024
13025
0
  case 678: /* jump_statement: RETURN expression SEMICOLON  */
13026
0
#line 4410 "MachineIndependent/glslang.y"
13027
0
                                  {
13028
0
        (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
13029
0
    }
13030
0
#line 13031 "MachineIndependent/glslang_tab.cpp"
13031
0
    break;
13032
13033
0
  case 679: /* jump_statement: DISCARD SEMICOLON  */
13034
0
#line 4413 "MachineIndependent/glslang.y"
13035
0
                        {
13036
0
        parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
13037
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
13038
0
    }
13039
0
#line 13040 "MachineIndependent/glslang_tab.cpp"
13040
0
    break;
13041
13042
0
  case 680: /* jump_statement: TERMINATE_INVOCATION SEMICOLON  */
13043
0
#line 4417 "MachineIndependent/glslang.y"
13044
0
                                     {
13045
0
        parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
13046
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
13047
0
    }
13048
0
#line 13049 "MachineIndependent/glslang_tab.cpp"
13049
0
    break;
13050
13051
0
  case 681: /* jump_statement: TERMINATE_RAY SEMICOLON  */
13052
0
#line 4421 "MachineIndependent/glslang.y"
13053
0
                              {
13054
0
        parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
13055
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
13056
0
    }
13057
0
#line 13058 "MachineIndependent/glslang_tab.cpp"
13058
0
    break;
13059
13060
0
  case 682: /* jump_statement: IGNORE_INTERSECTION SEMICOLON  */
13061
0
#line 4425 "MachineIndependent/glslang.y"
13062
0
                                    {
13063
0
        parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
13064
0
        (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
13065
0
    }
13066
0
#line 13067 "MachineIndependent/glslang_tab.cpp"
13067
0
    break;
13068
13069
328
  case 683: /* translation_unit: external_declaration  */
13070
328
#line 4434 "MachineIndependent/glslang.y"
13071
328
                           {
13072
328
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
13073
328
        parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
13074
328
    }
13075
328
#line 13076 "MachineIndependent/glslang_tab.cpp"
13076
328
    break;
13077
13078
57.3k
  case 684: /* translation_unit: translation_unit external_declaration  */
13079
57.3k
#line 4438 "MachineIndependent/glslang.y"
13080
57.3k
                                            {
13081
57.3k
        if ((yyvsp[0].interm.intermNode) != nullptr) {
13082
0
            (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
13083
0
            parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
13084
0
        }
13085
57.3k
    }
13086
57.3k
#line 13087 "MachineIndependent/glslang_tab.cpp"
13087
57.3k
    break;
13088
13089
0
  case 685: /* external_declaration: function_definition  */
13090
0
#line 4447 "MachineIndependent/glslang.y"
13091
0
                          {
13092
0
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
13093
0
    }
13094
0
#line 13095 "MachineIndependent/glslang_tab.cpp"
13095
0
    break;
13096
13097
57.7k
  case 686: /* external_declaration: declaration  */
13098
57.7k
#line 4450 "MachineIndependent/glslang.y"
13099
57.7k
                  {
13100
57.7k
        (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
13101
57.7k
    }
13102
57.7k
#line 13103 "MachineIndependent/glslang_tab.cpp"
13103
57.7k
    break;
13104
13105
0
  case 687: /* external_declaration: SEMICOLON  */
13106
0
#line 4453 "MachineIndependent/glslang.y"
13107
0
                {
13108
0
        parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
13109
0
        parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
13110
0
        (yyval.interm.intermNode) = nullptr;
13111
0
    }
13112
0
#line 13113 "MachineIndependent/glslang_tab.cpp"
13113
0
    break;
13114
13115
0
  case 688: /* $@14: %empty  */
13116
0
#line 4461 "MachineIndependent/glslang.y"
13117
0
                         {
13118
0
        (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
13119
0
        (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
13120
13121
        // For ES 100 only, according to ES shading language 100 spec: A function
13122
        // body has a scope nested inside the function's definition.
13123
0
        if (parseContext.profile == EEsProfile && parseContext.version == 100)
13124
0
        {
13125
0
            parseContext.symbolTable.push();
13126
0
            ++parseContext.statementNestingLevel;
13127
0
        }
13128
0
    }
13129
0
#line 13130 "MachineIndependent/glslang_tab.cpp"
13130
0
    break;
13131
13132
0
  case 689: /* function_definition: function_prototype $@14 compound_statement_no_new_scope  */
13133
0
#line 4473 "MachineIndependent/glslang.y"
13134
0
                                    {
13135
        //   May be best done as post process phase on intermediate code
13136
0
        if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
13137
0
            parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
13138
0
        parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
13139
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
13140
0
        (yyval.interm.intermNode)->getAsAggregate()->setLinkType((yyvsp[-2].interm).function->getLinkType());
13141
0
        (yyval.interm.intermNode)->getAsAggregate()->setFunctionControl((yyvsp[-2].interm).function->getFunctionControl());
13142
0
        parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
13143
0
        (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
13144
13145
        // store the pragma information for debug and optimize and other vendor specific
13146
        // information. This information can be queried from the parse tree
13147
0
        (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
13148
0
        (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
13149
0
        (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
13150
13151
        // Set currentFunctionType to empty pointer when goes outside of the function
13152
0
        parseContext.currentFunctionType = nullptr;
13153
13154
        // For ES 100 only, according to ES shading language 100 spec: A function
13155
        // body has a scope nested inside the function's definition.
13156
0
        if (parseContext.profile == EEsProfile && parseContext.version == 100)
13157
0
        {
13158
0
            parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
13159
0
            --parseContext.statementNestingLevel;
13160
0
        }
13161
0
    }
13162
0
#line 13163 "MachineIndependent/glslang_tab.cpp"
13163
0
    break;
13164
13165
0
  case 690: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET  */
13166
0
#line 4504 "MachineIndependent/glslang.y"
13167
0
                                                                           {
13168
0
        (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
13169
0
    }
13170
0
#line 13171 "MachineIndependent/glslang_tab.cpp"
13171
0
    break;
13172
13173
0
  case 691: /* attribute_list: single_attribute  */
13174
0
#line 4509 "MachineIndependent/glslang.y"
13175
0
                       {
13176
0
        (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
13177
0
    }
13178
0
#line 13179 "MachineIndependent/glslang_tab.cpp"
13179
0
    break;
13180
13181
0
  case 692: /* attribute_list: attribute_list COMMA single_attribute  */
13182
0
#line 4512 "MachineIndependent/glslang.y"
13183
0
                                            {
13184
0
        (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
13185
0
    }
13186
0
#line 13187 "MachineIndependent/glslang_tab.cpp"
13187
0
    break;
13188
13189
0
  case 693: /* single_attribute: IDENTIFIER  */
13190
0
#line 4517 "MachineIndependent/glslang.y"
13191
0
                 {
13192
0
        (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
13193
0
    }
13194
0
#line 13195 "MachineIndependent/glslang_tab.cpp"
13195
0
    break;
13196
13197
0
  case 694: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN  */
13198
0
#line 4520 "MachineIndependent/glslang.y"
13199
0
                                                            {
13200
0
        (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
13201
0
    }
13202
0
#line 13203 "MachineIndependent/glslang_tab.cpp"
13203
0
    break;
13204
13205
0
  case 695: /* single_attribute: INLINE  */
13206
0
#line 4523 "MachineIndependent/glslang.y"
13207
0
             {
13208
0
        (yyval.interm.attributes) = parseContext.makeAttributes(TString("inline"));
13209
0
    }
13210
0
#line 13211 "MachineIndependent/glslang_tab.cpp"
13211
0
    break;
13212
13213
0
  case 696: /* single_attribute: NOINLINE  */
13214
0
#line 4526 "MachineIndependent/glslang.y"
13215
0
               {
13216
0
        (yyval.interm.attributes) = parseContext.makeAttributes(TString("noinline"));
13217
0
    }
13218
0
#line 13219 "MachineIndependent/glslang_tab.cpp"
13219
0
    break;
13220
13221
0
  case 697: /* spirv_requirements_list: spirv_requirements_parameter  */
13222
0
#line 4531 "MachineIndependent/glslang.y"
13223
0
                                   {
13224
0
        (yyval.interm.spirvReq) = (yyvsp[0].interm.spirvReq);
13225
0
    }
13226
0
#line 13227 "MachineIndependent/glslang_tab.cpp"
13227
0
    break;
13228
13229
0
  case 698: /* spirv_requirements_list: spirv_requirements_list COMMA spirv_requirements_parameter  */
13230
0
#line 4534 "MachineIndependent/glslang.y"
13231
0
                                                                 {
13232
0
        (yyval.interm.spirvReq) = parseContext.mergeSpirvRequirements((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvReq), (yyvsp[0].interm.spirvReq));
13233
0
    }
13234
0
#line 13235 "MachineIndependent/glslang_tab.cpp"
13235
0
    break;
13236
13237
0
  case 699: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_extension_list RIGHT_BRACKET  */
13238
0
#line 4539 "MachineIndependent/glslang.y"
13239
0
                                                                       {
13240
0
        (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, (yyvsp[-1].interm.intermNode)->getAsAggregate(), nullptr);
13241
0
    }
13242
0
#line 13243 "MachineIndependent/glslang_tab.cpp"
13243
0
    break;
13244
13245
0
  case 700: /* spirv_requirements_parameter: IDENTIFIER EQUAL LEFT_BRACKET spirv_capability_list RIGHT_BRACKET  */
13246
0
#line 4542 "MachineIndependent/glslang.y"
13247
0
                                                                        {
13248
0
        (yyval.interm.spirvReq) = parseContext.makeSpirvRequirement((yyvsp[-3].lex).loc, *(yyvsp[-4].lex).string, nullptr, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13249
0
    }
13250
0
#line 13251 "MachineIndependent/glslang_tab.cpp"
13251
0
    break;
13252
13253
0
  case 701: /* spirv_extension_list: STRING_LITERAL  */
13254
0
#line 4547 "MachineIndependent/glslang.y"
13255
0
                     {
13256
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
13257
0
    }
13258
0
#line 13259 "MachineIndependent/glslang_tab.cpp"
13259
0
    break;
13260
13261
0
  case 702: /* spirv_extension_list: spirv_extension_list COMMA STRING_LITERAL  */
13262
0
#line 4550 "MachineIndependent/glslang.y"
13263
0
                                                {
13264
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
13265
0
    }
13266
0
#line 13267 "MachineIndependent/glslang_tab.cpp"
13267
0
    break;
13268
13269
0
  case 703: /* spirv_capability_list: INTCONSTANT  */
13270
0
#line 4555 "MachineIndependent/glslang.y"
13271
0
                  {
13272
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
13273
0
    }
13274
0
#line 13275 "MachineIndependent/glslang_tab.cpp"
13275
0
    break;
13276
13277
0
  case 704: /* spirv_capability_list: spirv_capability_list COMMA INTCONSTANT  */
13278
0
#line 4558 "MachineIndependent/glslang.y"
13279
0
                                              {
13280
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true));
13281
0
    }
13282
0
#line 13283 "MachineIndependent/glslang_tab.cpp"
13283
0
    break;
13284
13285
0
  case 705: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
13286
0
#line 4563 "MachineIndependent/glslang.y"
13287
0
                                                              {
13288
0
        parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
13289
0
        (yyval.interm.intermNode) = 0;
13290
0
    }
13291
0
#line 13292 "MachineIndependent/glslang_tab.cpp"
13292
0
    break;
13293
13294
0
  case 706: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
13295
0
#line 4567 "MachineIndependent/glslang.y"
13296
0
                                                                                            {
13297
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
13298
0
        parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-1].lex).i);
13299
0
        (yyval.interm.intermNode) = 0;
13300
0
    }
13301
0
#line 13302 "MachineIndependent/glslang_tab.cpp"
13302
0
    break;
13303
13304
0
  case 707: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
13305
0
#line 4572 "MachineIndependent/glslang.y"
13306
0
                                                                                                        {
13307
0
        parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13308
0
        (yyval.interm.intermNode) = 0;
13309
0
    }
13310
0
#line 13311 "MachineIndependent/glslang_tab.cpp"
13311
0
    break;
13312
13313
0
  case 708: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_parameter_list RIGHT_PAREN  */
13314
0
#line 4576 "MachineIndependent/glslang.y"
13315
0
                                                                                                                                      {
13316
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
13317
0
        parseContext.intermediate.insertSpirvExecutionMode((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13318
0
        (yyval.interm.intermNode) = 0;
13319
0
    }
13320
0
#line 13321 "MachineIndependent/glslang_tab.cpp"
13321
0
    break;
13322
13323
0
  case 709: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
13324
0
#line 4581 "MachineIndependent/glslang.y"
13325
0
                                                                                                              {
13326
0
        parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13327
0
        (yyval.interm.intermNode) = 0;
13328
0
    }
13329
0
#line 13330 "MachineIndependent/glslang_tab.cpp"
13330
0
    break;
13331
13332
0
  case 710: /* spirv_execution_mode_qualifier: SPIRV_EXECUTION_MODE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_execution_mode_id_parameter_list RIGHT_PAREN  */
13333
0
#line 4585 "MachineIndependent/glslang.y"
13334
0
                                                                                                                                            {
13335
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
13336
0
        parseContext.intermediate.insertSpirvExecutionModeId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13337
0
        (yyval.interm.intermNode) = 0;
13338
0
    }
13339
0
#line 13340 "MachineIndependent/glslang_tab.cpp"
13340
0
    break;
13341
13342
0
  case 711: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter  */
13343
0
#line 4592 "MachineIndependent/glslang.y"
13344
0
                                     {
13345
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
13346
0
    }
13347
0
#line 13348 "MachineIndependent/glslang_tab.cpp"
13348
0
    break;
13349
13350
0
  case 712: /* spirv_execution_mode_parameter_list: spirv_execution_mode_parameter_list COMMA spirv_execution_mode_parameter  */
13351
0
#line 4595 "MachineIndependent/glslang.y"
13352
0
                                                                               {
13353
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
13354
0
    }
13355
0
#line 13356 "MachineIndependent/glslang_tab.cpp"
13356
0
    break;
13357
13358
0
  case 713: /* spirv_execution_mode_parameter: FLOATCONSTANT  */
13359
0
#line 4600 "MachineIndependent/glslang.y"
13360
0
                    {
13361
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
13362
0
    }
13363
0
#line 13364 "MachineIndependent/glslang_tab.cpp"
13364
0
    break;
13365
13366
0
  case 714: /* spirv_execution_mode_parameter: INTCONSTANT  */
13367
0
#line 4603 "MachineIndependent/glslang.y"
13368
0
                  {
13369
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
13370
0
    }
13371
0
#line 13372 "MachineIndependent/glslang_tab.cpp"
13372
0
    break;
13373
13374
0
  case 715: /* spirv_execution_mode_parameter: UINTCONSTANT  */
13375
0
#line 4606 "MachineIndependent/glslang.y"
13376
0
                   {
13377
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
13378
0
    }
13379
0
#line 13380 "MachineIndependent/glslang_tab.cpp"
13380
0
    break;
13381
13382
0
  case 716: /* spirv_execution_mode_parameter: BOOLCONSTANT  */
13383
0
#line 4609 "MachineIndependent/glslang.y"
13384
0
                   {
13385
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
13386
0
    }
13387
0
#line 13388 "MachineIndependent/glslang_tab.cpp"
13388
0
    break;
13389
13390
0
  case 717: /* spirv_execution_mode_parameter: STRING_LITERAL  */
13391
0
#line 4612 "MachineIndependent/glslang.y"
13392
0
                     {
13393
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
13394
0
    }
13395
0
#line 13396 "MachineIndependent/glslang_tab.cpp"
13396
0
    break;
13397
13398
0
  case 718: /* spirv_execution_mode_id_parameter_list: constant_expression  */
13399
0
#line 4617 "MachineIndependent/glslang.y"
13400
0
                          {
13401
0
        if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
13402
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
13403
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
13404
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
13405
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
13406
0
            parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
13407
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermTypedNode));
13408
0
    }
13409
0
#line 13410 "MachineIndependent/glslang_tab.cpp"
13410
0
    break;
13411
13412
0
  case 719: /* spirv_execution_mode_id_parameter_list: spirv_execution_mode_id_parameter_list COMMA constant_expression  */
13413
0
#line 4626 "MachineIndependent/glslang.y"
13414
0
                                                                       {
13415
0
        if ((yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtFloat &&
13416
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtInt &&
13417
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtUint &&
13418
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtBool &&
13419
0
            (yyvsp[0].interm.intermTypedNode)->getBasicType() != EbtString)
13420
0
            parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "this type not allowed", (yyvsp[0].interm.intermTypedNode)->getType().getBasicString(), "");
13421
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermTypedNode));
13422
0
    }
13423
0
#line 13424 "MachineIndependent/glslang_tab.cpp"
13424
0
    break;
13425
13426
0
  case 720: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
13427
0
#line 4637 "MachineIndependent/glslang.y"
13428
0
                                                             {
13429
0
        (yyval.interm.type).init((yyvsp[-3].lex).loc);
13430
0
        (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
13431
0
        (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
13432
0
    }
13433
0
#line 13434 "MachineIndependent/glslang_tab.cpp"
13434
0
    break;
13435
13436
0
  case 721: /* spirv_storage_class_qualifier: SPIRV_STORAGE_CLASS LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
13437
0
#line 4642 "MachineIndependent/glslang.y"
13438
0
                                                                                           {
13439
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc);
13440
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
13441
0
        (yyval.interm.type).qualifier.storage = EvqSpirvStorageClass;
13442
0
        (yyval.interm.type).qualifier.spirvStorageClass = (yyvsp[-1].lex).i;
13443
0
    }
13444
0
#line 13445 "MachineIndependent/glslang_tab.cpp"
13445
0
    break;
13446
13447
0
  case 722: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT RIGHT_PAREN  */
13448
0
#line 4650 "MachineIndependent/glslang.y"
13449
0
                                                       {
13450
0
        (yyval.interm.type).init((yyvsp[-3].lex).loc);
13451
0
        (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
13452
0
    }
13453
0
#line 13454 "MachineIndependent/glslang_tab.cpp"
13454
0
    break;
13455
13456
0
  case 723: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT RIGHT_PAREN  */
13457
0
#line 4654 "MachineIndependent/glslang.y"
13458
0
                                                                                     {
13459
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc);
13460
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
13461
0
        (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-1].lex).i);
13462
0
    }
13463
0
#line 13464 "MachineIndependent/glslang_tab.cpp"
13464
0
    break;
13465
13466
0
  case 724: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
13467
0
#line 4659 "MachineIndependent/glslang.y"
13468
0
                                                                                            {
13469
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc);
13470
0
        (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13471
0
    }
13472
0
#line 13473 "MachineIndependent/glslang_tab.cpp"
13473
0
    break;
13474
13475
0
  case 725: /* spirv_decorate_qualifier: SPIRV_DECORATE LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_parameter_list RIGHT_PAREN  */
13476
0
#line 4663 "MachineIndependent/glslang.y"
13477
0
                                                                                                                          {
13478
0
        (yyval.interm.type).init((yyvsp[-7].lex).loc);
13479
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
13480
0
        (yyval.interm.type).qualifier.setSpirvDecorate((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13481
0
    }
13482
0
#line 13483 "MachineIndependent/glslang_tab.cpp"
13483
0
    break;
13484
13485
0
  case 726: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
13486
0
#line 4668 "MachineIndependent/glslang.y"
13487
0
                                                                                                  {
13488
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc);
13489
0
        (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13490
0
    }
13491
0
#line 13492 "MachineIndependent/glslang_tab.cpp"
13492
0
    break;
13493
13494
0
  case 727: /* spirv_decorate_qualifier: SPIRV_DECORATE_ID LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_id_parameter_list RIGHT_PAREN  */
13495
0
#line 4672 "MachineIndependent/glslang.y"
13496
0
                                                                                                                                {
13497
0
        (yyval.interm.type).init((yyvsp[-7].lex).loc);
13498
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
13499
0
        (yyval.interm.type).qualifier.setSpirvDecorateId((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13500
0
    }
13501
0
#line 13502 "MachineIndependent/glslang_tab.cpp"
13502
0
    break;
13503
13504
0
  case 728: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
13505
0
#line 4677 "MachineIndependent/glslang.y"
13506
0
                                                                                                          {
13507
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc);
13508
0
        (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13509
0
    }
13510
0
#line 13511 "MachineIndependent/glslang_tab.cpp"
13511
0
    break;
13512
13513
0
  case 729: /* spirv_decorate_qualifier: SPIRV_DECORATE_STRING LEFT_PAREN spirv_requirements_list COMMA INTCONSTANT COMMA spirv_decorate_string_parameter_list RIGHT_PAREN  */
13514
0
#line 4681 "MachineIndependent/glslang.y"
13515
0
                                                                                                                                        {
13516
0
        (yyval.interm.type).init((yyvsp[-7].lex).loc);
13517
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
13518
0
        (yyval.interm.type).qualifier.setSpirvDecorateString((yyvsp[-3].lex).i, (yyvsp[-1].interm.intermNode)->getAsAggregate());
13519
0
    }
13520
0
#line 13521 "MachineIndependent/glslang_tab.cpp"
13521
0
    break;
13522
13523
0
  case 730: /* spirv_decorate_parameter_list: spirv_decorate_parameter  */
13524
0
#line 4688 "MachineIndependent/glslang.y"
13525
0
                               {
13526
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
13527
0
    }
13528
0
#line 13529 "MachineIndependent/glslang_tab.cpp"
13529
0
    break;
13530
13531
0
  case 731: /* spirv_decorate_parameter_list: spirv_decorate_parameter_list COMMA spirv_decorate_parameter  */
13532
0
#line 4691 "MachineIndependent/glslang.y"
13533
0
                                                                   {
13534
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
13535
0
    }
13536
0
#line 13537 "MachineIndependent/glslang_tab.cpp"
13537
0
    break;
13538
13539
0
  case 732: /* spirv_decorate_parameter: FLOATCONSTANT  */
13540
0
#line 4696 "MachineIndependent/glslang.y"
13541
0
                    {
13542
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
13543
0
    }
13544
0
#line 13545 "MachineIndependent/glslang_tab.cpp"
13545
0
    break;
13546
13547
0
  case 733: /* spirv_decorate_parameter: INTCONSTANT  */
13548
0
#line 4699 "MachineIndependent/glslang.y"
13549
0
                  {
13550
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
13551
0
    }
13552
0
#line 13553 "MachineIndependent/glslang_tab.cpp"
13553
0
    break;
13554
13555
0
  case 734: /* spirv_decorate_parameter: UINTCONSTANT  */
13556
0
#line 4702 "MachineIndependent/glslang.y"
13557
0
                   {
13558
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
13559
0
    }
13560
0
#line 13561 "MachineIndependent/glslang_tab.cpp"
13561
0
    break;
13562
13563
0
  case 735: /* spirv_decorate_parameter: BOOLCONSTANT  */
13564
0
#line 4705 "MachineIndependent/glslang.y"
13565
0
                   {
13566
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
13567
0
    }
13568
0
#line 13569 "MachineIndependent/glslang_tab.cpp"
13569
0
    break;
13570
13571
0
  case 736: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter  */
13572
0
#line 4710 "MachineIndependent/glslang.y"
13573
0
                                  {
13574
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
13575
0
    }
13576
0
#line 13577 "MachineIndependent/glslang_tab.cpp"
13577
0
    break;
13578
13579
0
  case 737: /* spirv_decorate_id_parameter_list: spirv_decorate_id_parameter_list COMMA spirv_decorate_id_parameter  */
13580
0
#line 4713 "MachineIndependent/glslang.y"
13581
0
                                                                         {
13582
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), (yyvsp[0].interm.intermNode));
13583
0
    }
13584
0
#line 13585 "MachineIndependent/glslang_tab.cpp"
13585
0
    break;
13586
13587
0
  case 738: /* spirv_decorate_id_parameter: variable_identifier  */
13588
0
#line 4718 "MachineIndependent/glslang.y"
13589
0
                          {
13590
0
        if ((yyvsp[0].interm.intermTypedNode)->getAsConstantUnion() || (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode())
13591
0
            (yyval.interm.intermNode) = (yyvsp[0].interm.intermTypedNode);
13592
0
        else
13593
0
            parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "only allow constants or variables which are not elements of a composite", "", "");
13594
0
    }
13595
0
#line 13596 "MachineIndependent/glslang_tab.cpp"
13596
0
    break;
13597
13598
0
  case 739: /* spirv_decorate_id_parameter: FLOATCONSTANT  */
13599
0
#line 4724 "MachineIndependent/glslang.y"
13600
0
                    {
13601
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
13602
0
    }
13603
0
#line 13604 "MachineIndependent/glslang_tab.cpp"
13604
0
    break;
13605
13606
0
  case 740: /* spirv_decorate_id_parameter: INTCONSTANT  */
13607
0
#line 4727 "MachineIndependent/glslang.y"
13608
0
                  {
13609
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
13610
0
    }
13611
0
#line 13612 "MachineIndependent/glslang_tab.cpp"
13612
0
    break;
13613
13614
0
  case 741: /* spirv_decorate_id_parameter: UINTCONSTANT  */
13615
0
#line 4730 "MachineIndependent/glslang.y"
13616
0
                   {
13617
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
13618
0
    }
13619
0
#line 13620 "MachineIndependent/glslang_tab.cpp"
13620
0
    break;
13621
13622
0
  case 742: /* spirv_decorate_id_parameter: BOOLCONSTANT  */
13623
0
#line 4733 "MachineIndependent/glslang.y"
13624
0
                   {
13625
0
        (yyval.interm.intermNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
13626
0
    }
13627
0
#line 13628 "MachineIndependent/glslang_tab.cpp"
13628
0
    break;
13629
13630
0
  case 743: /* spirv_decorate_string_parameter_list: STRING_LITERAL  */
13631
0
#line 4738 "MachineIndependent/glslang.y"
13632
0
                     {
13633
0
        (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate(
13634
0
            parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
13635
0
    }
13636
0
#line 13637 "MachineIndependent/glslang_tab.cpp"
13637
0
    break;
13638
13639
0
  case 744: /* spirv_decorate_string_parameter_list: spirv_decorate_string_parameter_list COMMA STRING_LITERAL  */
13640
0
#line 4742 "MachineIndependent/glslang.y"
13641
0
                                                                {
13642
0
        (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermNode), parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true));
13643
0
    }
13644
0
#line 13645 "MachineIndependent/glslang_tab.cpp"
13645
0
    break;
13646
13647
0
  case 745: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
13648
0
#line 4747 "MachineIndependent/glslang.y"
13649
0
                                                                                                         {
13650
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
13651
0
        (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
13652
0
    }
13653
0
#line 13654 "MachineIndependent/glslang_tab.cpp"
13654
0
    break;
13655
13656
0
  case 746: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list COMMA spirv_type_parameter_list RIGHT_PAREN  */
13657
0
#line 4751 "MachineIndependent/glslang.y"
13658
0
                                                                                                                                       {
13659
0
        (yyval.interm.type).init((yyvsp[-7].lex).loc, parseContext.symbolTable.atGlobalLevel());
13660
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-5].interm.spirvReq));
13661
0
        (yyval.interm.type).setSpirvType(*(yyvsp[-3].interm.spirvInst), (yyvsp[-1].interm.spirvTypeParams));
13662
0
    }
13663
0
#line 13664 "MachineIndependent/glslang_tab.cpp"
13664
0
    break;
13665
13666
0
  case 747: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
13667
0
#line 4756 "MachineIndependent/glslang.y"
13668
0
                                                                         {
13669
0
        (yyval.interm.type).init((yyvsp[-3].lex).loc, parseContext.symbolTable.atGlobalLevel());
13670
0
        (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
13671
0
    }
13672
0
#line 13673 "MachineIndependent/glslang_tab.cpp"
13673
0
    break;
13674
13675
0
  case 748: /* spirv_type_specifier: SPIRV_TYPE LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
13676
0
#line 4760 "MachineIndependent/glslang.y"
13677
0
                                                                                                       {
13678
0
        (yyval.interm.type).init((yyvsp[-5].lex).loc, parseContext.symbolTable.atGlobalLevel());
13679
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
13680
0
        (yyval.interm.type).setSpirvType(*(yyvsp[-1].interm.spirvInst));
13681
0
    }
13682
0
#line 13683 "MachineIndependent/glslang_tab.cpp"
13683
0
    break;
13684
13685
0
  case 749: /* spirv_type_parameter_list: spirv_type_parameter  */
13686
0
#line 4767 "MachineIndependent/glslang.y"
13687
0
                           {
13688
0
        (yyval.interm.spirvTypeParams) = (yyvsp[0].interm.spirvTypeParams);
13689
0
    }
13690
0
#line 13691 "MachineIndependent/glslang_tab.cpp"
13691
0
    break;
13692
13693
0
  case 750: /* spirv_type_parameter_list: spirv_type_parameter_list COMMA spirv_type_parameter  */
13694
0
#line 4770 "MachineIndependent/glslang.y"
13695
0
                                                           {
13696
0
        (yyval.interm.spirvTypeParams) = parseContext.mergeSpirvTypeParameters((yyvsp[-2].interm.spirvTypeParams), (yyvsp[0].interm.spirvTypeParams));
13697
0
    }
13698
0
#line 13699 "MachineIndependent/glslang_tab.cpp"
13699
0
    break;
13700
13701
0
  case 751: /* spirv_type_parameter: constant_expression  */
13702
0
#line 4775 "MachineIndependent/glslang.y"
13703
0
                          {
13704
0
        (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)->getAsConstantUnion());
13705
0
    }
13706
0
#line 13707 "MachineIndependent/glslang_tab.cpp"
13707
0
    break;
13708
13709
0
  case 752: /* spirv_type_parameter: type_specifier_nonarray  */
13710
0
#line 4778 "MachineIndependent/glslang.y"
13711
0
                              {
13712
0
        (yyval.interm.spirvTypeParams) = parseContext.makeSpirvTypeParameters((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
13713
0
    }
13714
0
#line 13715 "MachineIndependent/glslang_tab.cpp"
13715
0
    break;
13716
13717
0
  case 753: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_instruction_qualifier_list RIGHT_PAREN  */
13718
0
#line 4783 "MachineIndependent/glslang.y"
13719
0
                                                                                {
13720
0
        (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
13721
0
    }
13722
0
#line 13723 "MachineIndependent/glslang_tab.cpp"
13723
0
    break;
13724
13725
0
  case 754: /* spirv_instruction_qualifier: SPIRV_INSTRUCTION LEFT_PAREN spirv_requirements_list COMMA spirv_instruction_qualifier_list RIGHT_PAREN  */
13726
0
#line 4786 "MachineIndependent/glslang.y"
13727
0
                                                                                                              {
13728
0
        parseContext.intermediate.insertSpirvRequirement((yyvsp[-3].interm.spirvReq));
13729
0
        (yyval.interm.spirvInst) = (yyvsp[-1].interm.spirvInst);
13730
0
    }
13731
0
#line 13732 "MachineIndependent/glslang_tab.cpp"
13732
0
    break;
13733
13734
0
  case 755: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_id  */
13735
0
#line 4792 "MachineIndependent/glslang.y"
13736
0
                                     {
13737
0
        (yyval.interm.spirvInst) = (yyvsp[0].interm.spirvInst);
13738
0
    }
13739
0
#line 13740 "MachineIndependent/glslang_tab.cpp"
13740
0
    break;
13741
13742
0
  case 756: /* spirv_instruction_qualifier_list: spirv_instruction_qualifier_list COMMA spirv_instruction_qualifier_id  */
13743
0
#line 4795 "MachineIndependent/glslang.y"
13744
0
                                                                            {
13745
0
        (yyval.interm.spirvInst) = parseContext.mergeSpirvInstruction((yyvsp[-1].lex).loc, (yyvsp[-2].interm.spirvInst), (yyvsp[0].interm.spirvInst));
13746
0
    }
13747
0
#line 13748 "MachineIndependent/glslang_tab.cpp"
13748
0
    break;
13749
13750
0
  case 757: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL STRING_LITERAL  */
13751
0
#line 4800 "MachineIndependent/glslang.y"
13752
0
                                      {
13753
0
        (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, *(yyvsp[0].lex).string);
13754
0
    }
13755
0
#line 13756 "MachineIndependent/glslang_tab.cpp"
13756
0
    break;
13757
13758
0
  case 758: /* spirv_instruction_qualifier_id: IDENTIFIER EQUAL INTCONSTANT  */
13759
0
#line 4803 "MachineIndependent/glslang.y"
13760
0
                                   {
13761
0
        (yyval.interm.spirvInst) = parseContext.makeSpirvInstruction((yyvsp[-1].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[0].lex).i);
13762
0
    }
13763
0
#line 13764 "MachineIndependent/glslang_tab.cpp"
13764
0
    break;
13765
13766
13767
0
#line 13768 "MachineIndependent/glslang_tab.cpp"
13768
13769
0
      default: break;
13770
1.44M
    }
13771
  /* User semantic actions sometimes alter yychar, and that requires
13772
     that yytoken be updated with the new translation.  We take the
13773
     approach of translating immediately before every use of yytoken.
13774
     One alternative is translating here after every semantic action,
13775
     but that translation would be missed if the semantic action invokes
13776
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
13777
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
13778
     incorrect destructor might then be invoked immediately.  In the
13779
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
13780
     to an incorrect destructor call or verbose syntax error message
13781
     before the lookahead is translated.  */
13782
1.44M
  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
13783
13784
1.44M
  YYPOPSTACK (yylen);
13785
1.44M
  yylen = 0;
13786
13787
1.44M
  *++yyvsp = yyval;
13788
13789
  /* Now 'shift' the result of the reduction.  Determine what state
13790
     that goes to, based on the state we popped back to and the rule
13791
     number reduced by.  */
13792
1.44M
  {
13793
1.44M
    const int yylhs = yyr1[yyn] - YYNTOKENS;
13794
1.44M
    const int yyi = yypgoto[yylhs] + *yyssp;
13795
1.44M
    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
13796
1.44M
               ? yytable[yyi]
13797
1.44M
               : yydefgoto[yylhs]);
13798
1.44M
  }
13799
13800
1.44M
  goto yynewstate;
13801
13802
13803
/*--------------------------------------.
13804
| yyerrlab -- here on detecting error.  |
13805
`--------------------------------------*/
13806
90
yyerrlab:
13807
  /* Make sure we have latest lookahead translation.  See comments at
13808
     user semantic actions for why this is necessary.  */
13809
90
  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
13810
  /* If not already recovering from an error, report this error.  */
13811
90
  if (!yyerrstatus)
13812
90
    {
13813
90
      ++yynerrs;
13814
90
      {
13815
90
        yypcontext_t yyctx
13816
90
          = {yyssp, yytoken};
13817
90
        char const *yymsgp = YY_("syntax error");
13818
90
        int yysyntax_error_status;
13819
90
        yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
13820
90
        if (yysyntax_error_status == 0)
13821
90
          yymsgp = yymsg;
13822
0
        else if (yysyntax_error_status == -1)
13823
0
          {
13824
0
            if (yymsg != yymsgbuf)
13825
0
              YYSTACK_FREE (yymsg);
13826
0
            yymsg = YY_CAST (char *,
13827
0
                             YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
13828
0
            if (yymsg)
13829
0
              {
13830
0
                yysyntax_error_status
13831
0
                  = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
13832
0
                yymsgp = yymsg;
13833
0
              }
13834
0
            else
13835
0
              {
13836
0
                yymsg = yymsgbuf;
13837
0
                yymsg_alloc = sizeof yymsgbuf;
13838
0
                yysyntax_error_status = YYENOMEM;
13839
0
              }
13840
0
          }
13841
90
        yyerror (pParseContext, yymsgp);
13842
90
        if (yysyntax_error_status == YYENOMEM)
13843
0
          YYNOMEM;
13844
90
      }
13845
90
    }
13846
13847
90
  if (yyerrstatus == 3)
13848
0
    {
13849
      /* If just tried and failed to reuse lookahead token after an
13850
         error, discard it.  */
13851
13852
0
      if (yychar <= YYEOF)
13853
0
        {
13854
          /* Return failure if at end of input.  */
13855
0
          if (yychar == YYEOF)
13856
0
            YYABORT;
13857
0
        }
13858
0
      else
13859
0
        {
13860
0
          yydestruct ("Error: discarding",
13861
0
                      yytoken, &yylval, pParseContext);
13862
0
          yychar = YYEMPTY;
13863
0
        }
13864
0
    }
13865
13866
  /* Else will try to reuse lookahead token after shifting the error
13867
     token.  */
13868
90
  goto yyerrlab1;
13869
13870
13871
/*---------------------------------------------------.
13872
| yyerrorlab -- error raised explicitly by YYERROR.  |
13873
`---------------------------------------------------*/
13874
90
yyerrorlab:
13875
  /* Pacify compilers when the user code never invokes YYERROR and the
13876
     label yyerrorlab therefore never appears in user code.  */
13877
0
  if (0)
13878
0
    YYERROR;
13879
0
  ++yynerrs;
13880
13881
  /* Do not reclaim the symbols of the rule whose action triggered
13882
     this YYERROR.  */
13883
0
  YYPOPSTACK (yylen);
13884
0
  yylen = 0;
13885
0
  YY_STACK_PRINT (yyss, yyssp);
13886
0
  yystate = *yyssp;
13887
0
  goto yyerrlab1;
13888
13889
13890
/*-------------------------------------------------------------.
13891
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
13892
`-------------------------------------------------------------*/
13893
90
yyerrlab1:
13894
90
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
13895
13896
  /* Pop stack until we find a state that shifts the error token.  */
13897
90
  for (;;)
13898
182
    {
13899
182
      yyn = yypact[yystate];
13900
182
      if (!yypact_value_is_default (yyn))
13901
182
        {
13902
182
          yyn += YYSYMBOL_YYerror;
13903
182
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
13904
0
            {
13905
0
              yyn = yytable[yyn];
13906
0
              if (0 < yyn)
13907
0
                break;
13908
0
            }
13909
182
        }
13910
13911
      /* Pop the current state because it cannot handle the error token.  */
13912
182
      if (yyssp == yyss)
13913
90
        YYABORT;
13914
13915
13916
92
      yydestruct ("Error: popping",
13917
92
                  YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
13918
92
      YYPOPSTACK (1);
13919
92
      yystate = *yyssp;
13920
92
      YY_STACK_PRINT (yyss, yyssp);
13921
92
    }
13922
13923
0
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
13924
0
  *++yyvsp = yylval;
13925
0
  YY_IGNORE_MAYBE_UNINITIALIZED_END
13926
13927
13928
  /* Shift the error token.  */
13929
0
  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
13930
13931
0
  yystate = yyn;
13932
0
  goto yynewstate;
13933
13934
13935
/*-------------------------------------.
13936
| yyacceptlab -- YYACCEPT comes here.  |
13937
`-------------------------------------*/
13938
288
yyacceptlab:
13939
288
  yyresult = 0;
13940
288
  goto yyreturnlab;
13941
13942
13943
/*-----------------------------------.
13944
| yyabortlab -- YYABORT comes here.  |
13945
`-----------------------------------*/
13946
90
yyabortlab:
13947
90
  yyresult = 1;
13948
90
  goto yyreturnlab;
13949
13950
13951
/*-----------------------------------------------------------.
13952
| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
13953
`-----------------------------------------------------------*/
13954
0
yyexhaustedlab:
13955
0
  yyerror (pParseContext, YY_("memory exhausted"));
13956
0
  yyresult = 2;
13957
0
  goto yyreturnlab;
13958
13959
13960
/*----------------------------------------------------------.
13961
| yyreturnlab -- parsing is finished, clean up and return.  |
13962
`----------------------------------------------------------*/
13963
378
yyreturnlab:
13964
378
  if (yychar != YYEMPTY)
13965
90
    {
13966
      /* Make sure we have latest lookahead translation.  See comments at
13967
         user semantic actions for why this is necessary.  */
13968
90
      yytoken = YYTRANSLATE (yychar);
13969
90
      yydestruct ("Cleanup: discarding lookahead",
13970
90
                  yytoken, &yylval, pParseContext);
13971
90
    }
13972
  /* Do not reclaim the symbols of the rule whose action triggered
13973
     this YYABORT or YYACCEPT.  */
13974
378
  YYPOPSTACK (yylen);
13975
378
  YY_STACK_PRINT (yyss, yyssp);
13976
954
  while (yyssp != yyss)
13977
576
    {
13978
576
      yydestruct ("Cleanup: popping",
13979
576
                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
13980
576
      YYPOPSTACK (1);
13981
576
    }
13982
378
#ifndef yyoverflow
13983
378
  if (yyss != yyssa)
13984
0
    YYSTACK_FREE (yyss);
13985
378
#endif
13986
378
  if (yymsg != yymsgbuf)
13987
0
    YYSTACK_FREE (yymsg);
13988
378
  return yyresult;
13989
90
}
13990
13991
#line 4807 "MachineIndependent/glslang.y"
13992