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 /* Substitute the type names.  */
67 #define YYSTYPE         MQTT_STYPE
68 #define YYLTYPE         MQTT_LTYPE
69 /* Substitute the variable and function names.  */
70 #define yyparse         mqtt_parse
71 #define yylex           mqtt_lex
72 #define yyerror         mqtt_error
73 #define yydebug         mqtt_debug
74 #define yynerrs         mqtt_nerrs
75 
76 
77 # ifndef YY_CAST
78 #  ifdef __cplusplus
79 #   define YY_CAST(Type, Val) static_cast<Type> (Val)
80 #   define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
81 #  else
82 #   define YY_CAST(Type, Val) ((Type) (Val))
83 #   define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
84 #  endif
85 # endif
86 # ifndef YY_NULLPTR
87 #  if defined __cplusplus
88 #   if 201103L <= __cplusplus
89 #    define YY_NULLPTR nullptr
90 #   else
91 #    define YY_NULLPTR 0
92 #   endif
93 #  else
94 #   define YY_NULLPTR ((void*)0)
95 #  endif
96 # endif
97 
98 /* Use api.header.include to #include this header
99    instead of duplicating it here.  */
100 #ifndef YY_MQTT_MODULES_MQTT_MQTT_GRAMMAR_H_INCLUDED
101 # define YY_MQTT_MODULES_MQTT_MQTT_GRAMMAR_H_INCLUDED
102 /* Debug traces.  */
103 #ifndef MQTT_DEBUG
104 # if defined YYDEBUG
105 #if YYDEBUG
106 #   define MQTT_DEBUG 1
107 #  else
108 #   define MQTT_DEBUG 0
109 #  endif
110 # else /* ! defined YYDEBUG */
111 #  define MQTT_DEBUG 0
112 # endif /* ! defined YYDEBUG */
113 #endif  /* ! defined MQTT_DEBUG */
114 #if MQTT_DEBUG
115 extern int mqtt_debug;
116 #endif
117 /* "%code requires" blocks.  */
118 #line 24 "modules/mqtt/mqtt-grammar.y"
119 
120 
121 #include "mqtt-parser.h"
122 
123 
124 #line 125 "modules/mqtt/mqtt-grammar.c"
125 
126 /* Token kinds.  */
127 #ifndef MQTT_TOKENTYPE
128 # define MQTT_TOKENTYPE
129   enum mqtt_tokentype
130   {
131     MQTT_EMPTY = -2,
132     MQTT_EOF = 0,                  /* "end of file"  */
133     MQTT_error = 256,              /* error  */
134     MQTT_UNDEF = 10514,            /* "invalid token"  */
135     LL_CONTEXT_ROOT = 1,           /* LL_CONTEXT_ROOT  */
136     LL_CONTEXT_DESTINATION = 2,    /* LL_CONTEXT_DESTINATION  */
137     LL_CONTEXT_SOURCE = 3,         /* LL_CONTEXT_SOURCE  */
138     LL_CONTEXT_PARSER = 4,         /* LL_CONTEXT_PARSER  */
139     LL_CONTEXT_REWRITE = 5,        /* LL_CONTEXT_REWRITE  */
140     LL_CONTEXT_FILTER = 6,         /* LL_CONTEXT_FILTER  */
141     LL_CONTEXT_LOG = 7,            /* LL_CONTEXT_LOG  */
142     LL_CONTEXT_BLOCK_DEF = 8,      /* LL_CONTEXT_BLOCK_DEF  */
143     LL_CONTEXT_BLOCK_REF = 9,      /* LL_CONTEXT_BLOCK_REF  */
144     LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT  */
145     LL_CONTEXT_BLOCK_ARG = 11,     /* LL_CONTEXT_BLOCK_ARG  */
146     LL_CONTEXT_PRAGMA = 12,        /* LL_CONTEXT_PRAGMA  */
147     LL_CONTEXT_FORMAT = 13,        /* LL_CONTEXT_FORMAT  */
148     LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC  */
149     LL_CONTEXT_INNER_DEST = 15,    /* LL_CONTEXT_INNER_DEST  */
150     LL_CONTEXT_INNER_SRC = 16,     /* LL_CONTEXT_INNER_SRC  */
151     LL_CONTEXT_CLIENT_PROTO = 17,  /* LL_CONTEXT_CLIENT_PROTO  */
152     LL_CONTEXT_SERVER_PROTO = 18,  /* LL_CONTEXT_SERVER_PROTO  */
153     LL_CONTEXT_OPTIONS = 19,       /* LL_CONTEXT_OPTIONS  */
154     LL_CONTEXT_CONFIG = 20,        /* LL_CONTEXT_CONFIG  */
155     LL_CONTEXT_MAX = 21,           /* LL_CONTEXT_MAX  */
156     KW_SOURCE = 10000,             /* KW_SOURCE  */
157     KW_FILTER = 10001,             /* KW_FILTER  */
158     KW_PARSER = 10002,             /* KW_PARSER  */
159     KW_DESTINATION = 10003,        /* KW_DESTINATION  */
160     KW_LOG = 10004,                /* KW_LOG  */
161     KW_OPTIONS = 10005,            /* KW_OPTIONS  */
162     KW_INCLUDE = 10006,            /* KW_INCLUDE  */
163     KW_BLOCK = 10007,              /* KW_BLOCK  */
164     KW_JUNCTION = 10008,           /* KW_JUNCTION  */
165     KW_CHANNEL = 10009,            /* KW_CHANNEL  */
166     KW_IF = 10010,                 /* KW_IF  */
167     KW_ELSE = 10011,               /* KW_ELSE  */
168     KW_ELIF = 10012,               /* KW_ELIF  */
169     KW_INTERNAL = 10020,           /* KW_INTERNAL  */
170     KW_SYSLOG = 10060,             /* KW_SYSLOG  */
171     KW_MARK_FREQ = 10071,          /* KW_MARK_FREQ  */
172     KW_STATS_FREQ = 10072,         /* KW_STATS_FREQ  */
173     KW_STATS_LEVEL = 10073,        /* KW_STATS_LEVEL  */
174     KW_STATS_LIFETIME = 10074,     /* KW_STATS_LIFETIME  */
175     KW_FLUSH_LINES = 10075,        /* KW_FLUSH_LINES  */
176     KW_SUPPRESS = 10076,           /* KW_SUPPRESS  */
177     KW_FLUSH_TIMEOUT = 10077,      /* KW_FLUSH_TIMEOUT  */
178     KW_LOG_MSG_SIZE = 10078,       /* KW_LOG_MSG_SIZE  */
179     KW_FILE_TEMPLATE = 10079,      /* KW_FILE_TEMPLATE  */
180     KW_PROTO_TEMPLATE = 10080,     /* KW_PROTO_TEMPLATE  */
181     KW_MARK_MODE = 10081,          /* KW_MARK_MODE  */
182     KW_ENCODING = 10082,           /* KW_ENCODING  */
183     KW_TYPE = 10083,               /* KW_TYPE  */
184     KW_STATS_MAX_DYNAMIC = 10084,  /* KW_STATS_MAX_DYNAMIC  */
185     KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER  */
186     KW_WORKERS = 10086,            /* KW_WORKERS  */
187     KW_BATCH_LINES = 10087,        /* KW_BATCH_LINES  */
188     KW_BATCH_TIMEOUT = 10088,      /* KW_BATCH_TIMEOUT  */
189     KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES  */
190     KW_CHAIN_HOSTNAMES = 10090,    /* KW_CHAIN_HOSTNAMES  */
191     KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES  */
192     KW_KEEP_HOSTNAME = 10092,      /* KW_KEEP_HOSTNAME  */
193     KW_CHECK_HOSTNAME = 10093,     /* KW_CHECK_HOSTNAME  */
194     KW_BAD_HOSTNAME = 10094,       /* KW_BAD_HOSTNAME  */
195     KW_KEEP_TIMESTAMP = 10100,     /* KW_KEEP_TIMESTAMP  */
196     KW_USE_DNS = 10110,            /* KW_USE_DNS  */
197     KW_USE_FQDN = 10111,           /* KW_USE_FQDN  */
198     KW_CUSTOM_DOMAIN = 10112,      /* KW_CUSTOM_DOMAIN  */
199     KW_DNS_CACHE = 10120,          /* KW_DNS_CACHE  */
200     KW_DNS_CACHE_SIZE = 10121,     /* KW_DNS_CACHE_SIZE  */
201     KW_DNS_CACHE_EXPIRE = 10130,   /* KW_DNS_CACHE_EXPIRE  */
202     KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED  */
203     KW_DNS_CACHE_HOSTS = 10132,    /* KW_DNS_CACHE_HOSTS  */
204     KW_PERSIST_ONLY = 10140,       /* KW_PERSIST_ONLY  */
205     KW_USE_RCPTID = 10141,         /* KW_USE_RCPTID  */
206     KW_USE_UNIQID = 10142,         /* KW_USE_UNIQID  */
207     KW_TZ_CONVERT = 10150,         /* KW_TZ_CONVERT  */
208     KW_TS_FORMAT = 10151,          /* KW_TS_FORMAT  */
209     KW_FRAC_DIGITS = 10152,        /* KW_FRAC_DIGITS  */
210     KW_LOG_FIFO_SIZE = 10160,      /* KW_LOG_FIFO_SIZE  */
211     KW_LOG_FETCH_LIMIT = 10162,    /* KW_LOG_FETCH_LIMIT  */
212     KW_LOG_IW_SIZE = 10163,        /* KW_LOG_IW_SIZE  */
213     KW_LOG_PREFIX = 10164,         /* KW_LOG_PREFIX  */
214     KW_PROGRAM_OVERRIDE = 10165,   /* KW_PROGRAM_OVERRIDE  */
215     KW_HOST_OVERRIDE = 10166,      /* KW_HOST_OVERRIDE  */
216     KW_THROTTLE = 10170,           /* KW_THROTTLE  */
217     KW_THREADED = 10171,           /* KW_THREADED  */
218     KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS  */
219     KW_PERSIST_NAME = 10302,       /* KW_PERSIST_NAME  */
220     KW_READ_OLD_RECORDS = 10304,   /* KW_READ_OLD_RECORDS  */
221     KW_USE_SYSLOGNG_PID = 10305,   /* KW_USE_SYSLOGNG_PID  */
222     KW_FLAGS = 10190,              /* KW_FLAGS  */
223     KW_PAD_SIZE = 10200,           /* KW_PAD_SIZE  */
224     KW_TIME_ZONE = 10201,          /* KW_TIME_ZONE  */
225     KW_RECV_TIME_ZONE = 10202,     /* KW_RECV_TIME_ZONE  */
226     KW_SEND_TIME_ZONE = 10203,     /* KW_SEND_TIME_ZONE  */
227     KW_LOCAL_TIME_ZONE = 10204,    /* KW_LOCAL_TIME_ZONE  */
228     KW_FORMAT = 10205,             /* KW_FORMAT  */
229     KW_TRUNCATE_SIZE = 10206,      /* KW_TRUNCATE_SIZE  */
230     KW_TIME_REOPEN = 10210,        /* KW_TIME_REOPEN  */
231     KW_TIME_REAP = 10211,          /* KW_TIME_REAP  */
232     KW_TIME_SLEEP = 10212,         /* KW_TIME_SLEEP  */
233     KW_TMPL_ESCAPE = 10220,        /* KW_TMPL_ESCAPE  */
234     KW_OPTIONAL = 10230,           /* KW_OPTIONAL  */
235     KW_CREATE_DIRS = 10240,        /* KW_CREATE_DIRS  */
236     KW_OWNER = 10250,              /* KW_OWNER  */
237     KW_GROUP = 10251,              /* KW_GROUP  */
238     KW_PERM = 10252,               /* KW_PERM  */
239     KW_DIR_OWNER = 10260,          /* KW_DIR_OWNER  */
240     KW_DIR_GROUP = 10261,          /* KW_DIR_GROUP  */
241     KW_DIR_PERM = 10262,           /* KW_DIR_PERM  */
242     KW_TEMPLATE = 10270,           /* KW_TEMPLATE  */
243     KW_TEMPLATE_ESCAPE = 10271,    /* KW_TEMPLATE_ESCAPE  */
244     KW_TEMPLATE_FUNCTION = 10272,  /* KW_TEMPLATE_FUNCTION  */
245     KW_DEFAULT_FACILITY = 10300,   /* KW_DEFAULT_FACILITY  */
246     KW_DEFAULT_SEVERITY = 10301,   /* KW_DEFAULT_SEVERITY  */
247     KW_PORT = 10323,               /* KW_PORT  */
248     KW_USE_TIME_RECVD = 10340,     /* KW_USE_TIME_RECVD  */
249     KW_FACILITY = 10350,           /* KW_FACILITY  */
250     KW_SEVERITY = 10351,           /* KW_SEVERITY  */
251     KW_HOST = 10352,               /* KW_HOST  */
252     KW_MATCH = 10353,              /* KW_MATCH  */
253     KW_MESSAGE = 10354,            /* KW_MESSAGE  */
254     KW_NETMASK = 10355,            /* KW_NETMASK  */
255     KW_TAGS = 10356,               /* KW_TAGS  */
256     KW_NETMASK6 = 10357,           /* KW_NETMASK6  */
257     KW_REWRITE = 10370,            /* KW_REWRITE  */
258     KW_CONDITION = 10371,          /* KW_CONDITION  */
259     KW_VALUE = 10372,              /* KW_VALUE  */
260     KW_YES = 10380,                /* KW_YES  */
261     KW_NO = 10381,                 /* KW_NO  */
262     KW_IFDEF = 10410,              /* KW_IFDEF  */
263     KW_ENDIF = 10411,              /* KW_ENDIF  */
264     LL_DOTDOT = 10420,             /* LL_DOTDOT  */
265     LL_DOTDOTDOT = 10421,          /* LL_DOTDOTDOT  */
266     LL_PRAGMA = 10422,             /* LL_PRAGMA  */
267     LL_EOL = 10423,                /* LL_EOL  */
268     LL_ERROR = 10424,              /* LL_ERROR  */
269     LL_ARROW = 10425,              /* LL_ARROW  */
270     LL_IDENTIFIER = 10430,         /* LL_IDENTIFIER  */
271     LL_NUMBER = 10431,             /* LL_NUMBER  */
272     LL_FLOAT = 10432,              /* LL_FLOAT  */
273     LL_STRING = 10433,             /* LL_STRING  */
274     LL_TOKEN = 10434,              /* LL_TOKEN  */
275     LL_BLOCK = 10435,              /* LL_BLOCK  */
276     KW_VALUE_PAIRS = 10500,        /* KW_VALUE_PAIRS  */
277     KW_EXCLUDE = 10502,            /* KW_EXCLUDE  */
278     KW_PAIR = 10503,               /* KW_PAIR  */
279     KW_KEY = 10504,                /* KW_KEY  */
280     KW_SCOPE = 10505,              /* KW_SCOPE  */
281     KW_SHIFT = 10506,              /* KW_SHIFT  */
282     KW_SHIFT_LEVELS = 10507,       /* KW_SHIFT_LEVELS  */
283     KW_REKEY = 10508,              /* KW_REKEY  */
284     KW_ADD_PREFIX = 10509,         /* KW_ADD_PREFIX  */
285     KW_REPLACE_PREFIX = 10510,     /* KW_REPLACE_PREFIX  */
286     KW_ON_ERROR = 10511,           /* KW_ON_ERROR  */
287     KW_RETRIES = 10512,            /* KW_RETRIES  */
288     KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY  */
289     KW_MQTT = 10515,               /* KW_MQTT  */
290     KW_TOPIC = 10516,              /* KW_TOPIC  */
291     KW_FALLBACK_TOPIC = 10517,     /* KW_FALLBACK_TOPIC  */
292     KW_KEEPALIVE = 10518,          /* KW_KEEPALIVE  */
293     KW_ADDRESS = 10519,            /* KW_ADDRESS  */
294     KW_QOS = 10520,                /* KW_QOS  */
295     KW_CLIENT_ID = 10521,          /* KW_CLIENT_ID  */
296     KW_CLEANSESSION = 10522,       /* KW_CLEANSESSION  */
297     KW_MESSAGE_TEMPLATE = 10523,   /* KW_MESSAGE_TEMPLATE  */
298     KW_USERNAME = 10524,           /* KW_USERNAME  */
299     KW_PASSWORD = 10525,           /* KW_PASSWORD  */
300     KW_HTTP_PROXY = 10526,         /* KW_HTTP_PROXY  */
301     KW_TLS = 10527,                /* KW_TLS  */
302     KW_CA_DIR = 10528,             /* KW_CA_DIR  */
303     KW_CA_FILE = 10529,            /* KW_CA_FILE  */
304     KW_CERT_FILE = 10530,          /* KW_CERT_FILE  */
305     KW_KEY_FILE = 10531,           /* KW_KEY_FILE  */
306     KW_CIPHER_SUITE = 10532,       /* KW_CIPHER_SUITE  */
307     KW_USE_SYSTEM_CERT_STORE = 10533, /* KW_USE_SYSTEM_CERT_STORE  */
308     KW_SSL_VERSION = 10534,        /* KW_SSL_VERSION  */
309     KW_PEER_VERIFY = 10535         /* KW_PEER_VERIFY  */
310   };
311   typedef enum mqtt_tokentype mqtt_token_kind_t;
312 #endif
313 /* Token kinds.  */
314 #define MQTT_EMPTY -2
315 #define MQTT_EOF 0
316 #define MQTT_error 256
317 #define MQTT_UNDEF 10514
318 #define LL_CONTEXT_ROOT 1
319 #define LL_CONTEXT_DESTINATION 2
320 #define LL_CONTEXT_SOURCE 3
321 #define LL_CONTEXT_PARSER 4
322 #define LL_CONTEXT_REWRITE 5
323 #define LL_CONTEXT_FILTER 6
324 #define LL_CONTEXT_LOG 7
325 #define LL_CONTEXT_BLOCK_DEF 8
326 #define LL_CONTEXT_BLOCK_REF 9
327 #define LL_CONTEXT_BLOCK_CONTENT 10
328 #define LL_CONTEXT_BLOCK_ARG 11
329 #define LL_CONTEXT_PRAGMA 12
330 #define LL_CONTEXT_FORMAT 13
331 #define LL_CONTEXT_TEMPLATE_FUNC 14
332 #define LL_CONTEXT_INNER_DEST 15
333 #define LL_CONTEXT_INNER_SRC 16
334 #define LL_CONTEXT_CLIENT_PROTO 17
335 #define LL_CONTEXT_SERVER_PROTO 18
336 #define LL_CONTEXT_OPTIONS 19
337 #define LL_CONTEXT_CONFIG 20
338 #define LL_CONTEXT_MAX 21
339 #define KW_SOURCE 10000
340 #define KW_FILTER 10001
341 #define KW_PARSER 10002
342 #define KW_DESTINATION 10003
343 #define KW_LOG 10004
344 #define KW_OPTIONS 10005
345 #define KW_INCLUDE 10006
346 #define KW_BLOCK 10007
347 #define KW_JUNCTION 10008
348 #define KW_CHANNEL 10009
349 #define KW_IF 10010
350 #define KW_ELSE 10011
351 #define KW_ELIF 10012
352 #define KW_INTERNAL 10020
353 #define KW_SYSLOG 10060
354 #define KW_MARK_FREQ 10071
355 #define KW_STATS_FREQ 10072
356 #define KW_STATS_LEVEL 10073
357 #define KW_STATS_LIFETIME 10074
358 #define KW_FLUSH_LINES 10075
359 #define KW_SUPPRESS 10076
360 #define KW_FLUSH_TIMEOUT 10077
361 #define KW_LOG_MSG_SIZE 10078
362 #define KW_FILE_TEMPLATE 10079
363 #define KW_PROTO_TEMPLATE 10080
364 #define KW_MARK_MODE 10081
365 #define KW_ENCODING 10082
366 #define KW_TYPE 10083
367 #define KW_STATS_MAX_DYNAMIC 10084
368 #define KW_MIN_IW_SIZE_PER_READER 10085
369 #define KW_WORKERS 10086
370 #define KW_BATCH_LINES 10087
371 #define KW_BATCH_TIMEOUT 10088
372 #define KW_TRIM_LARGE_MESSAGES 10089
373 #define KW_CHAIN_HOSTNAMES 10090
374 #define KW_NORMALIZE_HOSTNAMES 10091
375 #define KW_KEEP_HOSTNAME 10092
376 #define KW_CHECK_HOSTNAME 10093
377 #define KW_BAD_HOSTNAME 10094
378 #define KW_KEEP_TIMESTAMP 10100
379 #define KW_USE_DNS 10110
380 #define KW_USE_FQDN 10111
381 #define KW_CUSTOM_DOMAIN 10112
382 #define KW_DNS_CACHE 10120
383 #define KW_DNS_CACHE_SIZE 10121
384 #define KW_DNS_CACHE_EXPIRE 10130
385 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
386 #define KW_DNS_CACHE_HOSTS 10132
387 #define KW_PERSIST_ONLY 10140
388 #define KW_USE_RCPTID 10141
389 #define KW_USE_UNIQID 10142
390 #define KW_TZ_CONVERT 10150
391 #define KW_TS_FORMAT 10151
392 #define KW_FRAC_DIGITS 10152
393 #define KW_LOG_FIFO_SIZE 10160
394 #define KW_LOG_FETCH_LIMIT 10162
395 #define KW_LOG_IW_SIZE 10163
396 #define KW_LOG_PREFIX 10164
397 #define KW_PROGRAM_OVERRIDE 10165
398 #define KW_HOST_OVERRIDE 10166
399 #define KW_THROTTLE 10170
400 #define KW_THREADED 10171
401 #define KW_PASS_UNIX_CREDENTIALS 10231
402 #define KW_PERSIST_NAME 10302
403 #define KW_READ_OLD_RECORDS 10304
404 #define KW_USE_SYSLOGNG_PID 10305
405 #define KW_FLAGS 10190
406 #define KW_PAD_SIZE 10200
407 #define KW_TIME_ZONE 10201
408 #define KW_RECV_TIME_ZONE 10202
409 #define KW_SEND_TIME_ZONE 10203
410 #define KW_LOCAL_TIME_ZONE 10204
411 #define KW_FORMAT 10205
412 #define KW_TRUNCATE_SIZE 10206
413 #define KW_TIME_REOPEN 10210
414 #define KW_TIME_REAP 10211
415 #define KW_TIME_SLEEP 10212
416 #define KW_TMPL_ESCAPE 10220
417 #define KW_OPTIONAL 10230
418 #define KW_CREATE_DIRS 10240
419 #define KW_OWNER 10250
420 #define KW_GROUP 10251
421 #define KW_PERM 10252
422 #define KW_DIR_OWNER 10260
423 #define KW_DIR_GROUP 10261
424 #define KW_DIR_PERM 10262
425 #define KW_TEMPLATE 10270
426 #define KW_TEMPLATE_ESCAPE 10271
427 #define KW_TEMPLATE_FUNCTION 10272
428 #define KW_DEFAULT_FACILITY 10300
429 #define KW_DEFAULT_SEVERITY 10301
430 #define KW_PORT 10323
431 #define KW_USE_TIME_RECVD 10340
432 #define KW_FACILITY 10350
433 #define KW_SEVERITY 10351
434 #define KW_HOST 10352
435 #define KW_MATCH 10353
436 #define KW_MESSAGE 10354
437 #define KW_NETMASK 10355
438 #define KW_TAGS 10356
439 #define KW_NETMASK6 10357
440 #define KW_REWRITE 10370
441 #define KW_CONDITION 10371
442 #define KW_VALUE 10372
443 #define KW_YES 10380
444 #define KW_NO 10381
445 #define KW_IFDEF 10410
446 #define KW_ENDIF 10411
447 #define LL_DOTDOT 10420
448 #define LL_DOTDOTDOT 10421
449 #define LL_PRAGMA 10422
450 #define LL_EOL 10423
451 #define LL_ERROR 10424
452 #define LL_ARROW 10425
453 #define LL_IDENTIFIER 10430
454 #define LL_NUMBER 10431
455 #define LL_FLOAT 10432
456 #define LL_STRING 10433
457 #define LL_TOKEN 10434
458 #define LL_BLOCK 10435
459 #define KW_VALUE_PAIRS 10500
460 #define KW_EXCLUDE 10502
461 #define KW_PAIR 10503
462 #define KW_KEY 10504
463 #define KW_SCOPE 10505
464 #define KW_SHIFT 10506
465 #define KW_SHIFT_LEVELS 10507
466 #define KW_REKEY 10508
467 #define KW_ADD_PREFIX 10509
468 #define KW_REPLACE_PREFIX 10510
469 #define KW_ON_ERROR 10511
470 #define KW_RETRIES 10512
471 #define KW_FETCH_NO_DATA_DELAY 10513
472 #define KW_MQTT 10515
473 #define KW_TOPIC 10516
474 #define KW_FALLBACK_TOPIC 10517
475 #define KW_KEEPALIVE 10518
476 #define KW_ADDRESS 10519
477 #define KW_QOS 10520
478 #define KW_CLIENT_ID 10521
479 #define KW_CLEANSESSION 10522
480 #define KW_MESSAGE_TEMPLATE 10523
481 #define KW_USERNAME 10524
482 #define KW_PASSWORD 10525
483 #define KW_HTTP_PROXY 10526
484 #define KW_TLS 10527
485 #define KW_CA_DIR 10528
486 #define KW_CA_FILE 10529
487 #define KW_CERT_FILE 10530
488 #define KW_KEY_FILE 10531
489 #define KW_CIPHER_SUITE 10532
490 #define KW_USE_SYSTEM_CERT_STORE 10533
491 #define KW_SSL_VERSION 10534
492 #define KW_PEER_VERIFY 10535
493 
494 /* Value type.  */
495 #if ! defined MQTT_STYPE && ! defined MQTT_STYPE_IS_DECLARED
496 typedef CFG_STYPE MQTT_STYPE;
497 # define MQTT_STYPE_IS_TRIVIAL 1
498 # define MQTT_STYPE_IS_DECLARED 1
499 #endif
500 
501 /* Location type.  */
502 typedef CFG_LTYPE MQTT_LTYPE;
503 
504 
505 
506 
507 int mqtt_parse (CfgLexer *lexer, LogDriver **instance, gpointer arg);
508 
509 
510 #endif /* !YY_MQTT_MODULES_MQTT_MQTT_GRAMMAR_H_INCLUDED  */
511 /* Symbol kind.  */
512 enum yysymbol_kind_t
513 {
514   YYSYMBOL_YYEMPTY = -2,
515   YYSYMBOL_YYEOF = 0,                      /* "end of file"  */
516   YYSYMBOL_YYerror = 1,                    /* error  */
517   YYSYMBOL_YYUNDEF = 2,                    /* "invalid token"  */
518   YYSYMBOL_LL_CONTEXT_ROOT = 3,            /* LL_CONTEXT_ROOT  */
519   YYSYMBOL_LL_CONTEXT_DESTINATION = 4,     /* LL_CONTEXT_DESTINATION  */
520   YYSYMBOL_LL_CONTEXT_SOURCE = 5,          /* LL_CONTEXT_SOURCE  */
521   YYSYMBOL_LL_CONTEXT_PARSER = 6,          /* LL_CONTEXT_PARSER  */
522   YYSYMBOL_LL_CONTEXT_REWRITE = 7,         /* LL_CONTEXT_REWRITE  */
523   YYSYMBOL_LL_CONTEXT_FILTER = 8,          /* LL_CONTEXT_FILTER  */
524   YYSYMBOL_LL_CONTEXT_LOG = 9,             /* LL_CONTEXT_LOG  */
525   YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10,      /* LL_CONTEXT_BLOCK_DEF  */
526   YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11,      /* LL_CONTEXT_BLOCK_REF  */
527   YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12,  /* LL_CONTEXT_BLOCK_CONTENT  */
528   YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13,      /* LL_CONTEXT_BLOCK_ARG  */
529   YYSYMBOL_LL_CONTEXT_PRAGMA = 14,         /* LL_CONTEXT_PRAGMA  */
530   YYSYMBOL_LL_CONTEXT_FORMAT = 15,         /* LL_CONTEXT_FORMAT  */
531   YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16,  /* LL_CONTEXT_TEMPLATE_FUNC  */
532   YYSYMBOL_LL_CONTEXT_INNER_DEST = 17,     /* LL_CONTEXT_INNER_DEST  */
533   YYSYMBOL_LL_CONTEXT_INNER_SRC = 18,      /* LL_CONTEXT_INNER_SRC  */
534   YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19,   /* LL_CONTEXT_CLIENT_PROTO  */
535   YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20,   /* LL_CONTEXT_SERVER_PROTO  */
536   YYSYMBOL_LL_CONTEXT_OPTIONS = 21,        /* LL_CONTEXT_OPTIONS  */
537   YYSYMBOL_LL_CONTEXT_CONFIG = 22,         /* LL_CONTEXT_CONFIG  */
538   YYSYMBOL_LL_CONTEXT_MAX = 23,            /* LL_CONTEXT_MAX  */
539   YYSYMBOL_KW_SOURCE = 24,                 /* KW_SOURCE  */
540   YYSYMBOL_KW_FILTER = 25,                 /* KW_FILTER  */
541   YYSYMBOL_KW_PARSER = 26,                 /* KW_PARSER  */
542   YYSYMBOL_KW_DESTINATION = 27,            /* KW_DESTINATION  */
543   YYSYMBOL_KW_LOG = 28,                    /* KW_LOG  */
544   YYSYMBOL_KW_OPTIONS = 29,                /* KW_OPTIONS  */
545   YYSYMBOL_KW_INCLUDE = 30,                /* KW_INCLUDE  */
546   YYSYMBOL_KW_BLOCK = 31,                  /* KW_BLOCK  */
547   YYSYMBOL_KW_JUNCTION = 32,               /* KW_JUNCTION  */
548   YYSYMBOL_KW_CHANNEL = 33,                /* KW_CHANNEL  */
549   YYSYMBOL_KW_IF = 34,                     /* KW_IF  */
550   YYSYMBOL_KW_ELSE = 35,                   /* KW_ELSE  */
551   YYSYMBOL_KW_ELIF = 36,                   /* KW_ELIF  */
552   YYSYMBOL_KW_INTERNAL = 37,               /* KW_INTERNAL  */
553   YYSYMBOL_KW_SYSLOG = 38,                 /* KW_SYSLOG  */
554   YYSYMBOL_KW_MARK_FREQ = 39,              /* KW_MARK_FREQ  */
555   YYSYMBOL_KW_STATS_FREQ = 40,             /* KW_STATS_FREQ  */
556   YYSYMBOL_KW_STATS_LEVEL = 41,            /* KW_STATS_LEVEL  */
557   YYSYMBOL_KW_STATS_LIFETIME = 42,         /* KW_STATS_LIFETIME  */
558   YYSYMBOL_KW_FLUSH_LINES = 43,            /* KW_FLUSH_LINES  */
559   YYSYMBOL_KW_SUPPRESS = 44,               /* KW_SUPPRESS  */
560   YYSYMBOL_KW_FLUSH_TIMEOUT = 45,          /* KW_FLUSH_TIMEOUT  */
561   YYSYMBOL_KW_LOG_MSG_SIZE = 46,           /* KW_LOG_MSG_SIZE  */
562   YYSYMBOL_KW_FILE_TEMPLATE = 47,          /* KW_FILE_TEMPLATE  */
563   YYSYMBOL_KW_PROTO_TEMPLATE = 48,         /* KW_PROTO_TEMPLATE  */
564   YYSYMBOL_KW_MARK_MODE = 49,              /* KW_MARK_MODE  */
565   YYSYMBOL_KW_ENCODING = 50,               /* KW_ENCODING  */
566   YYSYMBOL_KW_TYPE = 51,                   /* KW_TYPE  */
567   YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52,      /* KW_STATS_MAX_DYNAMIC  */
568   YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER  */
569   YYSYMBOL_KW_WORKERS = 54,                /* KW_WORKERS  */
570   YYSYMBOL_KW_BATCH_LINES = 55,            /* KW_BATCH_LINES  */
571   YYSYMBOL_KW_BATCH_TIMEOUT = 56,          /* KW_BATCH_TIMEOUT  */
572   YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57,    /* KW_TRIM_LARGE_MESSAGES  */
573   YYSYMBOL_KW_CHAIN_HOSTNAMES = 58,        /* KW_CHAIN_HOSTNAMES  */
574   YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59,    /* KW_NORMALIZE_HOSTNAMES  */
575   YYSYMBOL_KW_KEEP_HOSTNAME = 60,          /* KW_KEEP_HOSTNAME  */
576   YYSYMBOL_KW_CHECK_HOSTNAME = 61,         /* KW_CHECK_HOSTNAME  */
577   YYSYMBOL_KW_BAD_HOSTNAME = 62,           /* KW_BAD_HOSTNAME  */
578   YYSYMBOL_KW_KEEP_TIMESTAMP = 63,         /* KW_KEEP_TIMESTAMP  */
579   YYSYMBOL_KW_USE_DNS = 64,                /* KW_USE_DNS  */
580   YYSYMBOL_KW_USE_FQDN = 65,               /* KW_USE_FQDN  */
581   YYSYMBOL_KW_CUSTOM_DOMAIN = 66,          /* KW_CUSTOM_DOMAIN  */
582   YYSYMBOL_KW_DNS_CACHE = 67,              /* KW_DNS_CACHE  */
583   YYSYMBOL_KW_DNS_CACHE_SIZE = 68,         /* KW_DNS_CACHE_SIZE  */
584   YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69,       /* KW_DNS_CACHE_EXPIRE  */
585   YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED  */
586   YYSYMBOL_KW_DNS_CACHE_HOSTS = 71,        /* KW_DNS_CACHE_HOSTS  */
587   YYSYMBOL_KW_PERSIST_ONLY = 72,           /* KW_PERSIST_ONLY  */
588   YYSYMBOL_KW_USE_RCPTID = 73,             /* KW_USE_RCPTID  */
589   YYSYMBOL_KW_USE_UNIQID = 74,             /* KW_USE_UNIQID  */
590   YYSYMBOL_KW_TZ_CONVERT = 75,             /* KW_TZ_CONVERT  */
591   YYSYMBOL_KW_TS_FORMAT = 76,              /* KW_TS_FORMAT  */
592   YYSYMBOL_KW_FRAC_DIGITS = 77,            /* KW_FRAC_DIGITS  */
593   YYSYMBOL_KW_LOG_FIFO_SIZE = 78,          /* KW_LOG_FIFO_SIZE  */
594   YYSYMBOL_KW_LOG_FETCH_LIMIT = 79,        /* KW_LOG_FETCH_LIMIT  */
595   YYSYMBOL_KW_LOG_IW_SIZE = 80,            /* KW_LOG_IW_SIZE  */
596   YYSYMBOL_KW_LOG_PREFIX = 81,             /* KW_LOG_PREFIX  */
597   YYSYMBOL_KW_PROGRAM_OVERRIDE = 82,       /* KW_PROGRAM_OVERRIDE  */
598   YYSYMBOL_KW_HOST_OVERRIDE = 83,          /* KW_HOST_OVERRIDE  */
599   YYSYMBOL_KW_THROTTLE = 84,               /* KW_THROTTLE  */
600   YYSYMBOL_KW_THREADED = 85,               /* KW_THREADED  */
601   YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86,  /* KW_PASS_UNIX_CREDENTIALS  */
602   YYSYMBOL_KW_PERSIST_NAME = 87,           /* KW_PERSIST_NAME  */
603   YYSYMBOL_KW_READ_OLD_RECORDS = 88,       /* KW_READ_OLD_RECORDS  */
604   YYSYMBOL_KW_USE_SYSLOGNG_PID = 89,       /* KW_USE_SYSLOGNG_PID  */
605   YYSYMBOL_KW_FLAGS = 90,                  /* KW_FLAGS  */
606   YYSYMBOL_KW_PAD_SIZE = 91,               /* KW_PAD_SIZE  */
607   YYSYMBOL_KW_TIME_ZONE = 92,              /* KW_TIME_ZONE  */
608   YYSYMBOL_KW_RECV_TIME_ZONE = 93,         /* KW_RECV_TIME_ZONE  */
609   YYSYMBOL_KW_SEND_TIME_ZONE = 94,         /* KW_SEND_TIME_ZONE  */
610   YYSYMBOL_KW_LOCAL_TIME_ZONE = 95,        /* KW_LOCAL_TIME_ZONE  */
611   YYSYMBOL_KW_FORMAT = 96,                 /* KW_FORMAT  */
612   YYSYMBOL_KW_TRUNCATE_SIZE = 97,          /* KW_TRUNCATE_SIZE  */
613   YYSYMBOL_KW_TIME_REOPEN = 98,            /* KW_TIME_REOPEN  */
614   YYSYMBOL_KW_TIME_REAP = 99,              /* KW_TIME_REAP  */
615   YYSYMBOL_KW_TIME_SLEEP = 100,            /* KW_TIME_SLEEP  */
616   YYSYMBOL_KW_TMPL_ESCAPE = 101,           /* KW_TMPL_ESCAPE  */
617   YYSYMBOL_KW_OPTIONAL = 102,              /* KW_OPTIONAL  */
618   YYSYMBOL_KW_CREATE_DIRS = 103,           /* KW_CREATE_DIRS  */
619   YYSYMBOL_KW_OWNER = 104,                 /* KW_OWNER  */
620   YYSYMBOL_KW_GROUP = 105,                 /* KW_GROUP  */
621   YYSYMBOL_KW_PERM = 106,                  /* KW_PERM  */
622   YYSYMBOL_KW_DIR_OWNER = 107,             /* KW_DIR_OWNER  */
623   YYSYMBOL_KW_DIR_GROUP = 108,             /* KW_DIR_GROUP  */
624   YYSYMBOL_KW_DIR_PERM = 109,              /* KW_DIR_PERM  */
625   YYSYMBOL_KW_TEMPLATE = 110,              /* KW_TEMPLATE  */
626   YYSYMBOL_KW_TEMPLATE_ESCAPE = 111,       /* KW_TEMPLATE_ESCAPE  */
627   YYSYMBOL_KW_TEMPLATE_FUNCTION = 112,     /* KW_TEMPLATE_FUNCTION  */
628   YYSYMBOL_KW_DEFAULT_FACILITY = 113,      /* KW_DEFAULT_FACILITY  */
629   YYSYMBOL_KW_DEFAULT_SEVERITY = 114,      /* KW_DEFAULT_SEVERITY  */
630   YYSYMBOL_KW_PORT = 115,                  /* KW_PORT  */
631   YYSYMBOL_KW_USE_TIME_RECVD = 116,        /* KW_USE_TIME_RECVD  */
632   YYSYMBOL_KW_FACILITY = 117,              /* KW_FACILITY  */
633   YYSYMBOL_KW_SEVERITY = 118,              /* KW_SEVERITY  */
634   YYSYMBOL_KW_HOST = 119,                  /* KW_HOST  */
635   YYSYMBOL_KW_MATCH = 120,                 /* KW_MATCH  */
636   YYSYMBOL_KW_MESSAGE = 121,               /* KW_MESSAGE  */
637   YYSYMBOL_KW_NETMASK = 122,               /* KW_NETMASK  */
638   YYSYMBOL_KW_TAGS = 123,                  /* KW_TAGS  */
639   YYSYMBOL_KW_NETMASK6 = 124,              /* KW_NETMASK6  */
640   YYSYMBOL_KW_REWRITE = 125,               /* KW_REWRITE  */
641   YYSYMBOL_KW_CONDITION = 126,             /* KW_CONDITION  */
642   YYSYMBOL_KW_VALUE = 127,                 /* KW_VALUE  */
643   YYSYMBOL_KW_YES = 128,                   /* KW_YES  */
644   YYSYMBOL_KW_NO = 129,                    /* KW_NO  */
645   YYSYMBOL_KW_IFDEF = 130,                 /* KW_IFDEF  */
646   YYSYMBOL_KW_ENDIF = 131,                 /* KW_ENDIF  */
647   YYSYMBOL_LL_DOTDOT = 132,                /* LL_DOTDOT  */
648   YYSYMBOL_LL_DOTDOTDOT = 133,             /* LL_DOTDOTDOT  */
649   YYSYMBOL_LL_PRAGMA = 134,                /* LL_PRAGMA  */
650   YYSYMBOL_LL_EOL = 135,                   /* LL_EOL  */
651   YYSYMBOL_LL_ERROR = 136,                 /* LL_ERROR  */
652   YYSYMBOL_LL_ARROW = 137,                 /* LL_ARROW  */
653   YYSYMBOL_LL_IDENTIFIER = 138,            /* LL_IDENTIFIER  */
654   YYSYMBOL_LL_NUMBER = 139,                /* LL_NUMBER  */
655   YYSYMBOL_LL_FLOAT = 140,                 /* LL_FLOAT  */
656   YYSYMBOL_LL_STRING = 141,                /* LL_STRING  */
657   YYSYMBOL_LL_TOKEN = 142,                 /* LL_TOKEN  */
658   YYSYMBOL_LL_BLOCK = 143,                 /* LL_BLOCK  */
659   YYSYMBOL_KW_VALUE_PAIRS = 144,           /* KW_VALUE_PAIRS  */
660   YYSYMBOL_KW_EXCLUDE = 145,               /* KW_EXCLUDE  */
661   YYSYMBOL_KW_PAIR = 146,                  /* KW_PAIR  */
662   YYSYMBOL_KW_KEY = 147,                   /* KW_KEY  */
663   YYSYMBOL_KW_SCOPE = 148,                 /* KW_SCOPE  */
664   YYSYMBOL_KW_SHIFT = 149,                 /* KW_SHIFT  */
665   YYSYMBOL_KW_SHIFT_LEVELS = 150,          /* KW_SHIFT_LEVELS  */
666   YYSYMBOL_KW_REKEY = 151,                 /* KW_REKEY  */
667   YYSYMBOL_KW_ADD_PREFIX = 152,            /* KW_ADD_PREFIX  */
668   YYSYMBOL_KW_REPLACE_PREFIX = 153,        /* KW_REPLACE_PREFIX  */
669   YYSYMBOL_KW_ON_ERROR = 154,              /* KW_ON_ERROR  */
670   YYSYMBOL_KW_RETRIES = 155,               /* KW_RETRIES  */
671   YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156,   /* KW_FETCH_NO_DATA_DELAY  */
672   YYSYMBOL_KW_MQTT = 157,                  /* KW_MQTT  */
673   YYSYMBOL_KW_TOPIC = 158,                 /* KW_TOPIC  */
674   YYSYMBOL_KW_FALLBACK_TOPIC = 159,        /* KW_FALLBACK_TOPIC  */
675   YYSYMBOL_KW_KEEPALIVE = 160,             /* KW_KEEPALIVE  */
676   YYSYMBOL_KW_ADDRESS = 161,               /* KW_ADDRESS  */
677   YYSYMBOL_KW_QOS = 162,                   /* KW_QOS  */
678   YYSYMBOL_KW_CLIENT_ID = 163,             /* KW_CLIENT_ID  */
679   YYSYMBOL_KW_CLEANSESSION = 164,          /* KW_CLEANSESSION  */
680   YYSYMBOL_KW_MESSAGE_TEMPLATE = 165,      /* KW_MESSAGE_TEMPLATE  */
681   YYSYMBOL_KW_USERNAME = 166,              /* KW_USERNAME  */
682   YYSYMBOL_KW_PASSWORD = 167,              /* KW_PASSWORD  */
683   YYSYMBOL_KW_HTTP_PROXY = 168,            /* KW_HTTP_PROXY  */
684   YYSYMBOL_KW_TLS = 169,                   /* KW_TLS  */
685   YYSYMBOL_KW_CA_DIR = 170,                /* KW_CA_DIR  */
686   YYSYMBOL_KW_CA_FILE = 171,               /* KW_CA_FILE  */
687   YYSYMBOL_KW_CERT_FILE = 172,             /* KW_CERT_FILE  */
688   YYSYMBOL_KW_KEY_FILE = 173,              /* KW_KEY_FILE  */
689   YYSYMBOL_KW_CIPHER_SUITE = 174,          /* KW_CIPHER_SUITE  */
690   YYSYMBOL_KW_USE_SYSTEM_CERT_STORE = 175, /* KW_USE_SYSTEM_CERT_STORE  */
691   YYSYMBOL_KW_SSL_VERSION = 176,           /* KW_SSL_VERSION  */
692   YYSYMBOL_KW_PEER_VERIFY = 177,           /* KW_PEER_VERIFY  */
693   YYSYMBOL_178_ = 178,                     /* '('  */
694   YYSYMBOL_179_ = 179,                     /* ')'  */
695   YYSYMBOL_180_ = 180,                     /* '{'  */
696   YYSYMBOL_181_ = 181,                     /* '}'  */
697   YYSYMBOL_182_ = 182,                     /* ';'  */
698   YYSYMBOL_183_ = 183,                     /* ':'  */
699   YYSYMBOL_YYACCEPT = 184,                 /* $accept  */
700   YYSYMBOL_start = 185,                    /* start  */
701   YYSYMBOL_186_1 = 186,                    /* $@1  */
702   YYSYMBOL_187_2 = 187,                    /* $@2  */
703   YYSYMBOL_mqtt_destination_options = 188, /* mqtt_destination_options  */
704   YYSYMBOL_mqtt_destination_option = 189,  /* mqtt_destination_option  */
705   YYSYMBOL_190_3 = 190,                    /* $@3  */
706   YYSYMBOL_mqtt_source_options = 191,      /* mqtt_source_options  */
707   YYSYMBOL_mqtt_source_option = 192,       /* mqtt_source_option  */
708   YYSYMBOL_mqtt_option = 193,              /* mqtt_option  */
709   YYSYMBOL_mqtt_tls_options = 194,         /* mqtt_tls_options  */
710   YYSYMBOL_mqtt_tls_option = 195,          /* mqtt_tls_option  */
711   YYSYMBOL_template_content_inner = 196,   /* template_content_inner  */
712   YYSYMBOL_template_content = 197,         /* template_content  */
713   YYSYMBOL_198_9 = 198,                    /* $@9  */
714   YYSYMBOL_string = 199,                   /* string  */
715   YYSYMBOL_yesno = 200,                    /* yesno  */
716   YYSYMBOL_dnsmode = 201,                  /* dnsmode  */
717   YYSYMBOL_nonnegative_integer64 = 202,    /* nonnegative_integer64  */
718   YYSYMBOL_nonnegative_integer = 203,      /* nonnegative_integer  */
719   YYSYMBOL_positive_integer64 = 204,       /* positive_integer64  */
720   YYSYMBOL_positive_integer = 205,         /* positive_integer  */
721   YYSYMBOL_path = 206,                     /* path  */
722   YYSYMBOL_path_check = 207,               /* path_check  */
723   YYSYMBOL_path_secret = 208,              /* path_secret  */
724   YYSYMBOL_string_list = 209,              /* string_list  */
725   YYSYMBOL_string_list_build = 210,        /* string_list_build  */
726   YYSYMBOL_severity_string = 211,          /* severity_string  */
727   YYSYMBOL_facility_string = 212,          /* facility_string  */
728   YYSYMBOL_driver_option = 213,            /* driver_option  */
729   YYSYMBOL_inner_source = 214,             /* inner_source  */
730   YYSYMBOL_source_driver_option = 215,     /* source_driver_option  */
731   YYSYMBOL_inner_dest = 216,               /* inner_dest  */
732   YYSYMBOL_dest_driver_option = 217,       /* dest_driver_option  */
733   YYSYMBOL_threaded_dest_driver_general_option = 218, /* threaded_dest_driver_general_option  */
734   YYSYMBOL_threaded_source_driver_option = 219, /* threaded_source_driver_option  */
735   YYSYMBOL_220_10 = 220,                   /* $@10  */
736   YYSYMBOL_221_11 = 221,                   /* $@11  */
737   YYSYMBOL_threaded_source_driver_option_flags = 222, /* threaded_source_driver_option_flags  */
738   YYSYMBOL_source_option = 223,            /* source_option  */
739   YYSYMBOL_224_12 = 224,                   /* $@12  */
740   YYSYMBOL_host_resolve_option = 225,      /* host_resolve_option  */
741   YYSYMBOL_msg_format_option = 226,        /* msg_format_option  */
742   YYSYMBOL_template_option = 227           /* template_option  */
743 };
744 typedef enum yysymbol_kind_t yysymbol_kind_t;
745 
746 
747 
748 /* Unqualified %code blocks.  */
749 #line 30 "modules/mqtt/mqtt-grammar.y"
750 
751 
752 #include "mqtt-destination.h"
753 #include "mqtt-source.h"
754 #include "syslog-names.h"
755 
756 #include "cfg-grammar-internal.h"
757 #include "plugin.h"
758 #include "mqtt-options.h"
759 
760 MQTTClientOptions *last_options;
761 #line 57 "modules/mqtt/mqtt-grammar.y"
762 
763 
764 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
765   do {                                                                  \
766     if (N)                                                              \
767       {                                                                 \
768         (Current).level = YYRHSLOC(Rhs, 1).level;                       \
769         (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;          \
770         (Current).first_column = YYRHSLOC (Rhs, 1).first_column;        \
771         (Current).last_line    = YYRHSLOC (Rhs, N).last_line;           \
772         (Current).last_column  = YYRHSLOC (Rhs, N).last_column;         \
773       }                                                                 \
774     else                                                                \
775       {                                                                 \
776         (Current).level = YYRHSLOC(Rhs, 0).level;                       \
777         (Current).first_line   = (Current).last_line   =                \
778           YYRHSLOC (Rhs, 0).last_line;                                  \
779         (Current).first_column = (Current).last_column =                \
780           YYRHSLOC (Rhs, 0).last_column;                                \
781       }                                                                 \
782   } while (0)
783 
784 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do {                    \
785     if (!(val))                                                         \
786       {                                                                 \
787         YYERROR;                                                        \
788       }                                                                 \
789   } while (0)
790 
791 #define CHECK_ERROR(val, token, errorfmt, ...) do {                     \
792     if (!(val))                                                         \
793       {                                                                 \
794         if (errorfmt)                                                   \
795           {                                                             \
796             gchar __buf[256];                                           \
797             g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
798             yyerror(& (token), lexer, NULL, NULL, __buf);               \
799           }                                                             \
800         YYERROR;                                                        \
801       }                                                                 \
802   } while (0)
803 
804 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do {       \
805     if (!(val))                                                         \
806       {                                                                 \
807         if (errorfmt)                                                   \
808           {                                                             \
809             gchar __buf[256];                                           \
810             g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
811             yyerror(& (token), lexer, NULL, NULL, __buf);               \
812           }                                                             \
813         g_clear_error(&error);						\
814         YYERROR;                                                        \
815       }                                                                 \
816   } while (0)
817 
818 #define YYMAXDEPTH 20000
819 
820 
821 
822 #line 823 "modules/mqtt/mqtt-grammar.c"
823 
824 #ifdef short
825 # undef short
826 #endif
827 
828 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
829    <limits.h> and (if available) <stdint.h> are included
830    so that the code can choose integer types of a good width.  */
831 
832 #ifndef __PTRDIFF_MAX__
833 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
834 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
835 #  include <stdint.h> /* INFRINGES ON USER NAME SPACE */
836 #  define YY_STDINT_H
837 # endif
838 #endif
839 
840 /* Narrow types that promote to a signed type and that can represent a
841    signed or unsigned integer of at least N bits.  In tables they can
842    save space and decrease cache pressure.  Promoting to a signed type
843    helps avoid bugs in integer arithmetic.  */
844 
845 #ifdef __INT_LEAST8_MAX__
846 typedef __INT_LEAST8_TYPE__ yytype_int8;
847 #elif defined YY_STDINT_H
848 typedef int_least8_t yytype_int8;
849 #else
850 typedef signed char yytype_int8;
851 #endif
852 
853 #ifdef __INT_LEAST16_MAX__
854 typedef __INT_LEAST16_TYPE__ yytype_int16;
855 #elif defined YY_STDINT_H
856 typedef int_least16_t yytype_int16;
857 #else
858 typedef short yytype_int16;
859 #endif
860 
861 /* Work around bug in HP-UX 11.23, which defines these macros
862    incorrectly for preprocessor constants.  This workaround can likely
863    be removed in 2023, as HPE has promised support for HP-UX 11.23
864    (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
865    <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>.  */
866 #ifdef __hpux
867 # undef UINT_LEAST8_MAX
868 # undef UINT_LEAST16_MAX
869 # define UINT_LEAST8_MAX 255
870 # define UINT_LEAST16_MAX 65535
871 #endif
872 
873 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
874 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
875 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
876        && UINT_LEAST8_MAX <= INT_MAX)
877 typedef uint_least8_t yytype_uint8;
878 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
879 typedef unsigned char yytype_uint8;
880 #else
881 typedef short yytype_uint8;
882 #endif
883 
884 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
885 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
886 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
887        && UINT_LEAST16_MAX <= INT_MAX)
888 typedef uint_least16_t yytype_uint16;
889 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
890 typedef unsigned short yytype_uint16;
891 #else
892 typedef int yytype_uint16;
893 #endif
894 
895 #ifndef YYPTRDIFF_T
896 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
897 #  define YYPTRDIFF_T __PTRDIFF_TYPE__
898 #  define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
899 # elif defined PTRDIFF_MAX
900 #  ifndef ptrdiff_t
901 #   include <stddef.h> /* INFRINGES ON USER NAME SPACE */
902 #  endif
903 #  define YYPTRDIFF_T ptrdiff_t
904 #  define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
905 # else
906 #  define YYPTRDIFF_T long
907 #  define YYPTRDIFF_MAXIMUM LONG_MAX
908 # endif
909 #endif
910 
911 #ifndef YYSIZE_T
912 # ifdef __SIZE_TYPE__
913 #  define YYSIZE_T __SIZE_TYPE__
914 # elif defined size_t
915 #  define YYSIZE_T size_t
916 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
917 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
918 #  define YYSIZE_T size_t
919 # else
920 #  define YYSIZE_T unsigned
921 # endif
922 #endif
923 
924 #define YYSIZE_MAXIMUM                                  \
925   YY_CAST (YYPTRDIFF_T,                                 \
926            (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1)  \
927             ? YYPTRDIFF_MAXIMUM                         \
928             : YY_CAST (YYSIZE_T, -1)))
929 
930 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
931 
932 
933 /* Stored state numbers (used for stacks). */
934 typedef yytype_int16 yy_state_t;
935 
936 /* State numbers in computations.  */
937 typedef int yy_state_fast_t;
938 
939 #ifndef YY_
940 # if defined YYENABLE_NLS && YYENABLE_NLS
941 #  if ENABLE_NLS
942 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
943 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
944 #  endif
945 # endif
946 # ifndef YY_
947 #  define YY_(Msgid) Msgid
948 # endif
949 #endif
950 
951 
952 #ifndef YY_ATTRIBUTE_PURE
953 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
954 #  define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
955 # else
956 #  define YY_ATTRIBUTE_PURE
957 # endif
958 #endif
959 
960 #ifndef YY_ATTRIBUTE_UNUSED
961 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
962 #  define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
963 # else
964 #  define YY_ATTRIBUTE_UNUSED
965 # endif
966 #endif
967 
968 /* Suppress unused-variable warnings by "using" E.  */
969 #if ! defined lint || defined __GNUC__
970 # define YY_USE(E) ((void) (E))
971 #else
972 # define YY_USE(E) /* empty */
973 #endif
974 
975 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
976 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
977 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
978 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
979     _Pragma ("GCC diagnostic push")                                     \
980     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
981 # else
982 #  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
983     _Pragma ("GCC diagnostic push")                                     \
984     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
985     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
986 # endif
987 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
988     _Pragma ("GCC diagnostic pop")
989 #else
990 # define YY_INITIAL_VALUE(Value) Value
991 #endif
992 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
993 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
994 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
995 #endif
996 #ifndef YY_INITIAL_VALUE
997 # define YY_INITIAL_VALUE(Value) /* Nothing. */
998 #endif
999 
1000 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1001 # define YY_IGNORE_USELESS_CAST_BEGIN                          \
1002     _Pragma ("GCC diagnostic push")                            \
1003     _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1004 # define YY_IGNORE_USELESS_CAST_END            \
1005     _Pragma ("GCC diagnostic pop")
1006 #endif
1007 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1008 # define YY_IGNORE_USELESS_CAST_BEGIN
1009 # define YY_IGNORE_USELESS_CAST_END
1010 #endif
1011 
1012 
1013 #define YY_ASSERT(E) ((void) (0 && (E)))
1014 
1015 #if 1
1016 
1017 /* The parser invokes alloca or malloc; define the necessary symbols.  */
1018 
1019 # ifdef YYSTACK_USE_ALLOCA
1020 #  if YYSTACK_USE_ALLOCA
1021 #   ifdef __GNUC__
1022 #    define YYSTACK_ALLOC __builtin_alloca
1023 #   elif defined __BUILTIN_VA_ARG_INCR
1024 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1025 #   elif defined _AIX
1026 #    define YYSTACK_ALLOC __alloca
1027 #   elif defined _MSC_VER
1028 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1029 #    define alloca _alloca
1030 #   else
1031 #    define YYSTACK_ALLOC alloca
1032 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1033 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1034       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
1035 #     ifndef EXIT_SUCCESS
1036 #      define EXIT_SUCCESS 0
1037 #     endif
1038 #    endif
1039 #   endif
1040 #  endif
1041 # endif
1042 
1043 # ifdef YYSTACK_ALLOC
1044    /* Pacify GCC's 'empty if-body' warning.  */
1045 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1046 #  ifndef YYSTACK_ALLOC_MAXIMUM
1047     /* The OS might guarantee only one guard page at the bottom of the stack,
1048        and a page size can be as small as 4096 bytes.  So we cannot safely
1049        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
1050        to allow for a few compiler-allocated temporary stack slots.  */
1051 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1052 #  endif
1053 # else
1054 #  define YYSTACK_ALLOC YYMALLOC
1055 #  define YYSTACK_FREE YYFREE
1056 #  ifndef YYSTACK_ALLOC_MAXIMUM
1057 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1058 #  endif
1059 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1060        && ! ((defined YYMALLOC || defined malloc) \
1061              && (defined YYFREE || defined free)))
1062 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1063 #   ifndef EXIT_SUCCESS
1064 #    define EXIT_SUCCESS 0
1065 #   endif
1066 #  endif
1067 #  ifndef YYMALLOC
1068 #   define YYMALLOC malloc
1069 #   if ! defined malloc && ! defined EXIT_SUCCESS
1070 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1071 #   endif
1072 #  endif
1073 #  ifndef YYFREE
1074 #   define YYFREE free
1075 #   if ! defined free && ! defined EXIT_SUCCESS
1076 void free (void *); /* INFRINGES ON USER NAME SPACE */
1077 #   endif
1078 #  endif
1079 # endif
1080 #endif /* 1 */
1081 
1082 #if (! defined yyoverflow \
1083      && (! defined __cplusplus \
1084          || (defined MQTT_LTYPE_IS_TRIVIAL && MQTT_LTYPE_IS_TRIVIAL \
1085              && defined MQTT_STYPE_IS_TRIVIAL && MQTT_STYPE_IS_TRIVIAL)))
1086 
1087 /* A type that is properly aligned for any stack member.  */
1088 union yyalloc
1089 {
1090   yy_state_t yyss_alloc;
1091   YYSTYPE yyvs_alloc;
1092   YYLTYPE yyls_alloc;
1093 };
1094 
1095 /* The size of the maximum gap between one aligned stack and the next.  */
1096 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1097 
1098 /* The size of an array large to enough to hold all stacks, each with
1099    N elements.  */
1100 # define YYSTACK_BYTES(N) \
1101      ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1102              + YYSIZEOF (YYLTYPE)) \
1103       + 2 * YYSTACK_GAP_MAXIMUM)
1104 
1105 # define YYCOPY_NEEDED 1
1106 
1107 /* Relocate STACK from its old location to the new one.  The
1108    local variables YYSIZE and YYSTACKSIZE give the old and new number of
1109    elements in the stack, and YYPTR gives the new location of the
1110    stack.  Advance YYPTR to a properly aligned location for the next
1111    stack.  */
1112 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1113     do                                                                  \
1114       {                                                                 \
1115         YYPTRDIFF_T yynewbytes;                                         \
1116         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1117         Stack = &yyptr->Stack_alloc;                                    \
1118         yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1119         yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
1120       }                                                                 \
1121     while (0)
1122 
1123 #endif
1124 
1125 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1126 /* Copy COUNT objects from SRC to DST.  The source and destination do
1127    not overlap.  */
1128 # ifndef YYCOPY
1129 #  if defined __GNUC__ && 1 < __GNUC__
1130 #   define YYCOPY(Dst, Src, Count) \
1131       __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1132 #  else
1133 #   define YYCOPY(Dst, Src, Count)              \
1134       do                                        \
1135         {                                       \
1136           YYPTRDIFF_T yyi;                      \
1137           for (yyi = 0; yyi < (Count); yyi++)   \
1138             (Dst)[yyi] = (Src)[yyi];            \
1139         }                                       \
1140       while (0)
1141 #  endif
1142 # endif
1143 #endif /* !YYCOPY_NEEDED */
1144 
1145 /* YYFINAL -- State number of the termination state.  */
1146 #define YYFINAL  6
1147 /* YYLAST -- Last index in YYTABLE.  */
1148 #define YYLAST   256
1149 
1150 /* YYNTOKENS -- Number of terminals.  */
1151 #define YYNTOKENS  184
1152 /* YYNNTS -- Number of nonterminals.  */
1153 #define YYNNTS  44
1154 /* YYNRULES -- Number of rules.  */
1155 #define YYNRULES  108
1156 /* YYNSTATES -- Number of states.  */
1157 #define YYNSTATES  274
1158 
1159 /* YYMAXUTOK -- Last valid token kind.  */
1160 #define YYMAXUTOK   10535
1161 
1162 
1163 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1164    as returned by yylex, with out-of-bounds checking.  */
1165 #define YYTRANSLATE(YYX)                                \
1166   (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
1167    ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
1168    : YYSYMBOL_YYUNDEF)
1169 
1170 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1171    as returned by yylex.  */
1172 static const yytype_uint8 yytranslate[] =
1173 {
1174        0,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1175       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1176       22,    23,     2,     2,     2,     2,     2,     2,     2,     2,
1177        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1178      178,   179,     2,     2,     2,     2,     2,     2,     2,     2,
1179        2,     2,     2,     2,     2,     2,     2,     2,   183,   182,
1180        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1181        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1182        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1183        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1184        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1185        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1186        2,     2,     2,   180,     2,   181,     2,     2,     2,     2,
1187        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1188        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1189        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1190        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1191        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1192        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1193        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1194        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1195        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1196        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1197        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1198        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1199        2,     2,     2,     2,     2,     2,     1,     2,     2,     2,
1200        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1201        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1202        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1203        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1204        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1205        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1206        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1207        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1208        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1209        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1210        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1211        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1212        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1213        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1214        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1215        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1216        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1217        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1218        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1219        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1220        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1221        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1222        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1223        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1224        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1225        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1226        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1227        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1228        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1229        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1230        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1231        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1232        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1233        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1234        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1235        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1236        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1237        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1238        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1239        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1240        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1241        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1242        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1243        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1244        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1245        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1246        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1247        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1248        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1249        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1250        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1251        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1252        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1253        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1254        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1255        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1256        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1257        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1258        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1259        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1260        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1261        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1262        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1263        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1264        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1265        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1266        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1267        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1268        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1269        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1270        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1271        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1272        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1273        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1274        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1275        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1276        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1277        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1278        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1279        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1280        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1281        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1282        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1283        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1284        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1285        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1286        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1287        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1288        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1289        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1290        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1291        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1292        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1293        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1294        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1295        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1296        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1297        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1298        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1299        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1300        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1301        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1302        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1303        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1304        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1305        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1306        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1307        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1308        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1309        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1310        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1311        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1312        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1313        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1314        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1315        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1316        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1317        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1318        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1319        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1320        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1321        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1322        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1323        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1324        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1325        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1326        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1327        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1328        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1329        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1330        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1331        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1332        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1333        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1334        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1335        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1336        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1337        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1338        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1339        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1340        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1341        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1342        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1343        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1344        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1345        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1346        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1347        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1348        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1349        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1350        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1351        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1352        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1353        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1354        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1355        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1356        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1357        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1358        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1359        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1360        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1361        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1362        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1363        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1364        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1365        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1366        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1367        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1368        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1369        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1370        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1371        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1372        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1373        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1374        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1375        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1376        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1377        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1378        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1379        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1380        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1381        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1382        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1383        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1384        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1385        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1386        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1387        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1388        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1389        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1390        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1391        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1392        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1393        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1394        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1395        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1396        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1397        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1398        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1399        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1400        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1401        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1402        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1403        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1404        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1405        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1406        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1407        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1408        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1409        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1410        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1411        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1412        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1413        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1414        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1415        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1416        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1417        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1418        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1419        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1420        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1421        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1422        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1423        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1424        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1425        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1426        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1427        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1428        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1429        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1430        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1431        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1432        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1433        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1434        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1435        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1436        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1437        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1438        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1439        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1440        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1441        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1442        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1443        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1444        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1445        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1446        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1447        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1448        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1449        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1450        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1451        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1452        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1453        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1454        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1455        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1456        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1457        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1458        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1459        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1460        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1461        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1462        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1463        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1464        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1465        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1466        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1467        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1468        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1469        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1470        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1471        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1472        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1473        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1474        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1475        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1476        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1477        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1478        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1479        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1480        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1481        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1482        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1483        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1484        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1485        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1486        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1487        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1488        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1489        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1490        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1491        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1492        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1493        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1494        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1495        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1496        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1497        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1498        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1499        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1500        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1501        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1502        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1503        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1504        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1505        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1506        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1507        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1508        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1509        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1510        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1511        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1512        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1514        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1515        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1516        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1517        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1518        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1519        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1520        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1521        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1522        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1523        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1524        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1525        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1526        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1527        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1528        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1529        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1530        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1531        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1532        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1533        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1534        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1535        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1536        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1537        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1538        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1539        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1540        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1541        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1544        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1545        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1546        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1547        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1550        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1551        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1553        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1556        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1564        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1565        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1566        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1567        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1568        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1569        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1570        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1571        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1572        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1573        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1574        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1575        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1576        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1577        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1578        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1579        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1580        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1581        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1582        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1583        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1584        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1585        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1586        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1587        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1588        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1589        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1590        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1591        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1592        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1593        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1594        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1595        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1596        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1597        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1598        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1599        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1600        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1601        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1602        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1603        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1604        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1605        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1606        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1607        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1608        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1609        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1610        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1611        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1612        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1613        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1614        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1615        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1616        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1617        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1618        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1619        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1620        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1621        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1622        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1623        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1624        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1625        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1626        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1627        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1628        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1629        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1630        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1631        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1632        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1633        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1634        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1635        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1636        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1637        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1638        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1639        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1640        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1641        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1642        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1643        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1644        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1645        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1646        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1647        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1648        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1649        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1650        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1651        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1652        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1653        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1654        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1655        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1656        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1657        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1658        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1659        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1660        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1661        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1662        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1663        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1664        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1665        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1666        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1667        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1668        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1669        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1670        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1671        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1672        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1673        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1674        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1675        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1676        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1677        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1678        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1679        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1680        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1681        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1682        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1683        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1684        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1685        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1686        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1687        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1688        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1689        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1690        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1691        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1692        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1693        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1694        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1695        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1696        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1697        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1698        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1699        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1700        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1701        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1702        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1703        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1704        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1705        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1706        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1707        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1708        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1709        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1710        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1711        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1712        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1713        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1714        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1715        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1716        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1717        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1718        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1719        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1720        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1721        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1722        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1723        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1724        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1725        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1726        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1727        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1728        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1729        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1730        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1731        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1732        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1733        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1734        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1735        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1736        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1737        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1738        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1739        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1740        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1741        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1742        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1743        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1744        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1745        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1746        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1747        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1748        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1749        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1750        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1751        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1752        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1753        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1754        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1755        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1756        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1757        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1758        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1759        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1760        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1761        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1762        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1763        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1764        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1765        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1766        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1767        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1768        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1769        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1770        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1771        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1772        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1773        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1774        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1775        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1776        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1777        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1778        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1779        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1780        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1781        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1782        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1783        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1784        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1785        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1786        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1787        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1788        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1789        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1790        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1791        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1792        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1793        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1794        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1795        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1796        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1797        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1798        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1799        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1800        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1801        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1802        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1803        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1804        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1805        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1806        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1807        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1808        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1809        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1810        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1811        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1812        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1813        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1814        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1815        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1816        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1817        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1818        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1819        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1820        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1821        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1822        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1823        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1824        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1825        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1826        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1827        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1828        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1829        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1830        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1831        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1832        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1833        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1834        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1835        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1836        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1837        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1838        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1839        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1840        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1841        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1842        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1843        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1844        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1845        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1846        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1847        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1848        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1849        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1850        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1851        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1852        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1853        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1854        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1855        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1856        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1857        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1858        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1859        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1860        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1861        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1862        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1863        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1864        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1865        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1866        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1867        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1868        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1869        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1870        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1871        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1872        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1873        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1874        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1875        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1876        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1877        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1878        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1879        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1880        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1881        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1882        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1883        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1884        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1885        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1886        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1887        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1888        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1889        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1890        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1891        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1892        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1893        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1894        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1895        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1896        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1897        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1898        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1899        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1900        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1901        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1902        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1903        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1904        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1905        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1906        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1907        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1908        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1909        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1910        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1911        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1912        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1913        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1914        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1915        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1916        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1917        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1918        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1919        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1920        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1921        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1922        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1923        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1924        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1925        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1926        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1927        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1928        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1929        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1930        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1931        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1932        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1933        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1934        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1935        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1936        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1937        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1938        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1939        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1940        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1941        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1942        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1943        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1944        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1945        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1946        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1947        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1948        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1949        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1950        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1951        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1952        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1953        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1954        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1955        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1956        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1957        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1958        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1959        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1960        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1961        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1962        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1963        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1964        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1965        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1966        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1967        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1968        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1969        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1970        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1971        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1972        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1973        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1974        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1975        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1976        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1977        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1978        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1979        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1980        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1981        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1982        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1983        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1984        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1985        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1986        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1987        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1988        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1989        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1990        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1991        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1992        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1993        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1994        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1995        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1996        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1997        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1998        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1999        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2000        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2001        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2002        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2003        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2004        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2005        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2006        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2007        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2008        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2009        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2010        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2011        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2012        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2013        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2014        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2015        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2016        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2017        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2018        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2019        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2020        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2021        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2022        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2023        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2024        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2025        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2026        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2027        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2028        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2029        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2030        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2031        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2032        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2033        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2034        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2035        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2036        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2037        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2038        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2039        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2040        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2041        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2042        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2043        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2044        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2045        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2046        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2047        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2048        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2049        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2050        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2051        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2052        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2053        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2054        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2055        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2056        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2057        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2058        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2059        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2060        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2061        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2062        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2063        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2064        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2065        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2066        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2067        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2068        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2069        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2070        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2071        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2072        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2073        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2074        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2075        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2076        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2077        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2078        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2079        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2080        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2081        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2082        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2083        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2084        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2085        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2086        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2087        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2088        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2089        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2090        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2091        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2092        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2093        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2094        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2095        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2096        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2097        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2098        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2099        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2100        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2101        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2102        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2103        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2104        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2105        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2106        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2107        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2108        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2109        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2110        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2111        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2112        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2113        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2114        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2115        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2116        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2117        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2118        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2119        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2120        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2121        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2122        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2123        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2124        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2125        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2126        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2127        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2128        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2129        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2130        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2131        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2132        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2133        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2134        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2135        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2136        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2137        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2138        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2139        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2140        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2141        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2142        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2143        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2144        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2145        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2146        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2147        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2148        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2149        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2150        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2151        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2152        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2153        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2154        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2155        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2156        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2157        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2158        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2159        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2160        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2161        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2162        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2163        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2164        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2165        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2166        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2167        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2168        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2169        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2170        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2171        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2172        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2173        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2174       24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
2175       34,    35,    36,     2,     2,     2,     2,     2,     2,     2,
2176       37,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2177        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2178        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2179        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2180       38,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2181        2,    39,    40,    41,    42,    43,    44,    45,    46,    47,
2182       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
2183       58,    59,    60,    61,    62,     2,     2,     2,     2,     2,
2184       63,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2185       64,    65,    66,     2,     2,     2,     2,     2,     2,     2,
2186       67,    68,     2,     2,     2,     2,     2,     2,     2,     2,
2187       69,    70,    71,     2,     2,     2,     2,     2,     2,     2,
2188       72,    73,    74,     2,     2,     2,     2,     2,     2,     2,
2189       75,    76,    77,     2,     2,     2,     2,     2,     2,     2,
2190       78,     2,    79,    80,    81,    82,    83,     2,     2,     2,
2191       84,    85,     2,     2,     2,     2,     2,     2,     2,     2,
2192        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2193       90,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2194       91,    92,    93,    94,    95,    96,    97,     2,     2,     2,
2195       98,    99,   100,     2,     2,     2,     2,     2,     2,     2,
2196      101,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2197      102,    86,     2,     2,     2,     2,     2,     2,     2,     2,
2198      103,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2199      104,   105,   106,     2,     2,     2,     2,     2,     2,     2,
2200      107,   108,   109,     2,     2,     2,     2,     2,     2,     2,
2201      110,   111,   112,     2,     2,     2,     2,     2,     2,     2,
2202        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2203        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2204      113,   114,    87,     2,    88,    89,     2,     2,     2,     2,
2205        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2206        2,     2,     2,   115,     2,     2,     2,     2,     2,     2,
2207        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2208      116,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2209      117,   118,   119,   120,   121,   122,   123,   124,     2,     2,
2210        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2211      125,   126,   127,     2,     2,     2,     2,     2,     2,     2,
2212      128,   129,     2,     2,     2,     2,     2,     2,     2,     2,
2213        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2214        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2215      130,   131,     2,     2,     2,     2,     2,     2,     2,     2,
2216      132,   133,   134,   135,   136,   137,     2,     2,     2,     2,
2217      138,   139,   140,   141,   142,   143,     2,     2,     2,     2,
2218        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2219        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2220        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2221        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2222        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2223        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
2224      144,     2,   145,   146,   147,   148,   149,   150,   151,   152,
2225      153,   154,   155,   156,     2,   157,   158,   159,   160,   161,
2226      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
2227      172,   173,   174,   175,   176,   177
2228 };
2229 
2230 #if MQTT_DEBUG
2231 /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
2232 static const yytype_int16 yyrline[] =
2233 {
2234        0,   422,   422,   421,   428,   427,   436,   437,   441,   442,
2235      443,   444,   445,   446,   446,   450,   451,   452,   456,   457,
2236      458,   462,   463,   468,   473,   474,   475,   476,   477,   481,
2237      482,   486,   487,   488,   489,   490,   491,   494,   495,   731,
2238      738,   751,   751,   762,   763,   767,   768,   769,   773,   774,
2239      778,   785,   792,   799,   834,   844,   848,   860,   864,   865,
2240      874,   885,   893,   909,   913,   939,   940,   944,   972,   973,
2241      974,   975,   989,   993,   994,   999,  1000,  1001,  1001,  1002,
2242     1002,  1003,  1012,  1017,  1023,  1024,  1025,  1026,  1027,  1028,
2243     1029,  1030,  1031,  1032,  1033,  1033,  1069,  1070,  1071,  1072,
2244     1076,  1077,  1083,  1146,  1147,  1148,  1149,  1150,  1151
2245 };
2246 #endif
2247 
2248 /** Accessing symbol of state STATE.  */
2249 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2250 
2251 #if 1
2252 /* The user-facing name of the symbol whose (internal) number is
2253    YYSYMBOL.  No bounds checking.  */
2254 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2255 
2256 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2257    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
2258 static const char *const yytname[] =
2259 {
2260   "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2261   "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2262   "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2263   "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2264   "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2265   "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2266   "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2267   "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2268   "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2269   "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2270   "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2271   "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2272   "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2273   "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2274   "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2275   "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2276   "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2277   "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2278   "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2279   "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2280   "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2281   "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2282   "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2283   "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2284   "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2285   "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2286   "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2287   "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2288   "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2289   "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2290   "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2291   "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2292   "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2293   "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2294   "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2295   "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2296   "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2297   "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2298   "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2299   "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2300   "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2301   "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2302   "KW_FETCH_NO_DATA_DELAY", "KW_MQTT", "KW_TOPIC", "KW_FALLBACK_TOPIC",
2303   "KW_KEEPALIVE", "KW_ADDRESS", "KW_QOS", "KW_CLIENT_ID",
2304   "KW_CLEANSESSION", "KW_MESSAGE_TEMPLATE", "KW_USERNAME", "KW_PASSWORD",
2305   "KW_HTTP_PROXY", "KW_TLS", "KW_CA_DIR", "KW_CA_FILE", "KW_CERT_FILE",
2306   "KW_KEY_FILE", "KW_CIPHER_SUITE", "KW_USE_SYSTEM_CERT_STORE",
2307   "KW_SSL_VERSION", "KW_PEER_VERIFY", "'('", "')'", "'{'", "'}'", "';'",
2308   "':'", "$accept", "start", "$@1", "$@2", "mqtt_destination_options",
2309   "mqtt_destination_option", "$@3", "mqtt_source_options",
2310   "mqtt_source_option", "mqtt_option", "mqtt_tls_options",
2311   "mqtt_tls_option", "template_content_inner", "template_content", "$@9",
2312   "string", "yesno", "dnsmode", "nonnegative_integer64",
2313   "nonnegative_integer", "positive_integer64", "positive_integer", "path",
2314   "path_check", "path_secret", "string_list", "string_list_build",
2315   "severity_string", "facility_string", "driver_option", "inner_source",
2316   "source_driver_option", "inner_dest", "dest_driver_option",
2317   "threaded_dest_driver_general_option", "threaded_source_driver_option",
2318   "$@10", "$@11", "threaded_source_driver_option_flags", "source_option",
2319   "$@12", "host_resolve_option", "msg_format_option", "template_option", YY_NULLPTR
2320 };
2321 
2322 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2323 yysymbol_name (yysymbol_kind_t yysymbol)
2324 {
2325   return yytname[yysymbol];
2326 }
2327 #endif
2328 
2329 #define YYPACT_NINF (-154)
2330 
2331 #define yypact_value_is_default(Yyn) \
2332   ((Yyn) == YYPACT_NINF)
2333 
2334 #define YYTABLE_NINF (-78)
2335 
2336 #define yytable_value_is_error(Yyn) \
2337   0
2338 
2339 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2340    STATE-NUM.  */
2341 static const yytype_int16 yypact[] =
2342 {
2343        9,  -153,  -136,    30,  -154,  -154,  -154,  -147,  -129,   -50,
2344      -24,  -128,  -127,  -126,  -125,  -124,  -154,  -123,  -121,  -117,
2345     -116,  -114,  -111,  -108,  -107,  -104,  -103,  -102,  -101,   -50,
2346      -59,  -154,  -154,  -154,  -154,  -154,   -94,   -93,  -154,   -92,
2347      -91,   -85,   -24,  -154,  -154,  -154,  -154,  -154,   -72,    99,
2348      -74,   -43,  -119,   -74,  -154,   -74,  -154,  -119,   -74,  -119,
2349      -43,  -119,  -119,  -119,  -119,     1,  -154,  -154,   -81,   -76,
2350      -71,   -63,   -58,   -56,  -154,  -119,  -119,  -119,  -113,  -154,
2351     -154,   -54,   -53,   -48,  -154,   -46,   -29,   -28,   -27,   -22,
2352      -18,   -17,   -14,   -13,   -12,  -154,   -20,  -154,  -154,   -73,
2353     -154,  -154,   -51,  -154,  -154,   -44,   -38,   -21,   -95,   -11,
2354      -10,     4,     6,    10,    11,    12,    13,    14,    15,    17,
2355       18,    19,    20,    21,    22,    23,    24,    25,     1,  -119,
2356      -43,  -119,  -119,  -119,  -119,  -119,    26,    27,    28,  -154,
2357     -154,  -154,    29,  -119,   -37,  -119,  -113,  -113,  -113,   -74,
2358     -119,  -119,  -119,  -113,  -113,  -119,    31,    32,    33,    34,
2359     -154,  -154,  -154,  -154,  -154,  -154,    35,  -154,  -154,  -154,
2360     -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,  -119,
2361     -119,  -119,  -119,  -119,  -113,  -119,  -113,  -154,  -154,    36,
2362       37,    38,    44,    45,    46,  -154,  -154,  -154,  -154,  -154,
2363       47,  -154,  -154,    48,  -154,    49,    50,    51,    52,    53,
2364       54,    55,    56,    57,    58,  -119,    59,  -154,  -113,   -70,
2365     -113,  -113,  -119,    60,  -154,  -154,    61,    62,  -154,    63,
2366       64,    65,    66,    67,  -154,  -154,  -154,  -154,  -154,  -154,
2367     -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,
2368     -154,  -154,  -154,  -154,    68,  -154,  -154,    69,    70,    71,
2369       72,  -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,
2370     -154,  -154,  -154,  -154
2371 };
2372 
2373 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2374    Performed when YYTABLE does not specify something else to do.  Zero
2375    means the default is an error.  */
2376 static const yytype_int8 yydefact[] =
2377 {
2378        0,     0,     0,     0,     2,     4,     1,     0,     0,    13,
2379       79,     0,     0,     0,     0,     0,    67,     0,     0,     0,
2380        0,     0,     0,     0,     0,     0,     0,     0,     0,    13,
2381        0,     9,    71,    70,    74,     8,     0,     0,    64,     0,
2382        0,     0,    79,    19,    66,    65,    81,    18,     0,    94,
2383        0,     0,     0,     0,    41,     0,    41,     0,     0,     0,
2384        0,     0,     0,     0,     0,    30,     3,     6,     0,     0,
2385        0,     0,     0,     0,    14,    83,     0,     0,     0,     5,
2386       15,     0,     0,     0,    78,     0,     0,     0,     0,     0,
2387        0,     0,     0,     0,     0,    80,     0,    52,    53,     0,
2388       50,    51,     0,    43,    44,     0,     0,     0,     0,     0,
2389        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2390        0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
2391        0,     0,     0,     0,     0,    83,     0,     0,     0,    45,
2392       46,    47,     0,     0,     0,     0,     0,     0,     0,     0,
2393        0,     0,     0,     0,     0,    59,     0,     0,     0,     0,
2394       95,    68,    69,    63,    73,    12,    43,    42,    39,    72,
2395       10,    11,    21,    22,    23,    24,    25,    26,    27,     0,
2396        0,     0,     0,     0,     0,     0,     0,    28,    29,     0,
2397        0,     0,     0,     0,     0,    82,    76,    75,    20,    16,
2398        0,    62,    61,     0,    60,     0,     0,     0,     0,     0,
2399        0,     0,     0,     0,     0,    59,     0,    57,     0,     0,
2400        0,     0,     0,     0,    54,    55,     0,     0,    56,     0,
2401        0,     0,     0,     0,   103,   104,   105,   106,   107,   108,
2402      100,   102,   101,    85,    86,    90,    84,    89,    87,    88,
2403       91,    92,    58,    93,     0,    49,    48,     0,     0,     0,
2404        0,    31,    32,    33,    34,    35,    38,    36,    37,    99,
2405       97,    96,    98,    40
2406 };
2407 
2408 /* YYPGOTO[NTERM-NUM].  */
2409 static const yytype_int16 yypgoto[] =
2410 {
2411     -154,  -154,  -154,  -154,    92,  -154,  -154,    84,  -154,    -4,
2412       39,  -154,  -154,    96,  -154,   -52,     0,  -154,  -154,   -57,
2413     -154,   -26,    73,    75,  -154,  -154,    -1,  -154,  -154,    -2,
2414     -154,  -154,  -154,  -154,  -154,  -154,  -154,  -154,   117,  -154,
2415     -154,  -154,  -154,  -154
2416 };
2417 
2418 /* YYDEFGOTO[NTERM-NUM].  */
2419 static const yytype_int16 yydefgoto[] =
2420 {
2421        0,     3,     7,     8,    28,    29,    30,    41,    42,    31,
2422      127,   128,   167,   107,   108,   224,   142,   257,   101,   102,
2423       98,    99,   225,   226,   229,   216,   217,   205,   203,    32,
2424       45,    46,    33,    34,    35,    47,    48,    49,   136,    95,
2425       96,   160,    84,    74
2426 };
2427 
2428 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2429    positive, shift that token.  If negative, reduce the rule whose
2430    number is the opposite.  If YYTABLE_NINF, syntax error.  */
2431 static const yytype_int16 yytable[] =
2432 {
2433      105,   201,   255,   114,     4,   111,    43,   113,    44,   115,
2434      116,   117,   118,     1,     2,   139,   140,    68,    69,   103,
2435       81,     5,   104,   135,   137,   138,   141,   106,    11,   109,
2436        6,     9,   112,    70,    12,    71,    72,    13,    43,   156,
2437       44,    82,    83,   166,   157,   158,   104,   159,    14,    10,
2438       50,    51,    52,    53,    54,    55,   168,    56,   139,   140,
2439       15,    57,    58,    13,    59,    97,    36,    60,   -77,   141,
2440       61,    62,    37,   190,    63,    64,    65,   189,    66,   191,
2441      192,   193,   194,   135,    75,    76,    77,    78,    16,   -77,
2442      -77,   200,   202,   204,    79,    73,   100,   129,   210,   211,
2443      212,   103,   130,   215,   104,    17,   161,   131,    18,    19,
2444       20,    21,    22,    23,    38,   132,    24,    25,    26,    27,
2445      133,    67,   134,   209,   143,   144,    80,   223,   162,    -7,
2446      145,   230,   146,   232,    39,   163,    20,    21,    22,    23,
2447       40,   164,    24,    25,    26,    27,   206,   207,   208,   147,
2448      148,   149,   110,   213,   214,   -17,   150,    85,   165,    86,
2449      151,   152,    87,   215,   153,   154,   155,   188,   169,   170,
2450      260,   119,   120,   121,   122,   123,   124,   125,   126,    88,
2451       89,    90,    91,   171,   231,   172,   233,    92,    93,   173,
2452      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
2453      184,   185,   186,     0,   187,   196,   197,   198,   199,   218,
2454      219,   220,   221,   222,   252,   234,   235,   236,   254,   256,
2455      258,   259,    94,   237,   238,   239,   240,   241,   242,   243,
2456      244,   245,   246,   247,   248,   249,   250,   251,   253,   261,
2457      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
2458      272,   273,   195,     0,     0,   228,   227
2459 };
2460 
2461 static const yytype_int16 yycheck[] =
2462 {
2463       52,    38,    72,    60,   157,    57,    10,    59,    10,    61,
2464       62,    63,    64,     4,     5,   128,   129,    76,    77,   138,
2465       92,   157,   141,    75,    76,    77,   139,    53,    78,    55,
2466        0,   178,    58,    92,    84,    94,    95,    87,    42,    59,
2467       42,   113,   114,   138,    64,    65,   141,    67,    98,   178,
2468      178,   178,   178,   178,   178,   178,   108,   178,   128,   129,
2469      110,   178,   178,    87,   178,   139,    90,   178,    92,   139,
2470      178,   178,    96,   130,   178,   178,   178,   129,   179,   131,
2471      132,   133,   134,   135,   178,   178,   178,   178,   138,   113,
2472      114,   143,   144,   145,   179,   154,   139,   178,   150,   151,
2473      152,   138,   178,   155,   141,   155,   179,   178,   158,   159,
2474      160,   161,   162,   163,   138,   178,   166,   167,   168,   169,
2475      178,    29,   178,   149,   178,   178,    42,   179,   179,   179,
2476      178,   183,   178,   185,   158,   179,   160,   161,   162,   163,
2477      164,   179,   166,   167,   168,   169,   146,   147,   148,   178,
2478      178,   178,    56,   153,   154,   179,   178,    58,   179,    60,
2479      178,   178,    63,   215,   178,   178,   178,   128,   179,   179,
2480      222,   170,   171,   172,   173,   174,   175,   176,   177,    80,
2481       81,    82,    83,   179,   184,   179,   186,    88,    89,   179,
2482      179,   179,   179,   179,   179,   178,   178,   178,   178,   178,
2483      178,   178,   178,    -1,   179,   179,   179,   179,   179,   178,
2484      178,   178,   178,   178,   215,   179,   179,   179,   218,   219,
2485      220,   221,   123,   179,   179,   179,   179,   179,   179,   179,
2486      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
2487      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
2488      179,   179,   135,    -1,    -1,   182,   181
2489 };
2490 
2491 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2492    state STATE-NUM.  */
2493 static const yytype_uint8 yystos[] =
2494 {
2495        0,     4,     5,   185,   157,   157,     0,   186,   187,   178,
2496      178,    78,    84,    87,    98,   110,   138,   155,   158,   159,
2497      160,   161,   162,   163,   166,   167,   168,   169,   188,   189,
2498      190,   193,   213,   216,   217,   218,    90,    96,   138,   158,
2499      164,   191,   192,   193,   213,   214,   215,   219,   220,   221,
2500      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
2501      178,   178,   178,   178,   178,   178,   179,   188,    76,    77,
2502       92,    94,    95,   154,   227,   178,   178,   178,   178,   179,
2503      191,    92,   113,   114,   226,    58,    60,    63,    80,    81,
2504       82,    83,    88,    89,   123,   223,   224,   139,   204,   205,
2505      139,   202,   203,   138,   141,   199,   205,   197,   198,   205,
2506      197,   199,   205,   199,   203,   199,   199,   199,   199,   170,
2507      171,   172,   173,   174,   175,   176,   177,   194,   195,   178,
2508      178,   178,   178,   178,   178,   199,   222,   199,   199,   128,
2509      129,   139,   200,   178,   178,   178,   178,   178,   178,   178,
2510      178,   178,   178,   178,   178,   178,    59,    64,    65,    67,
2511      225,   179,   179,   179,   179,   179,   138,   196,   199,   179,
2512      179,   179,   179,   179,   179,   179,   179,   179,   179,   178,
2513      178,   178,   178,   178,   178,   178,   178,   179,   194,   199,
2514      203,   199,   199,   199,   199,   222,   179,   179,   179,   179,
2515      199,    38,   199,   212,   199,   211,   200,   200,   200,   205,
2516      199,   199,   199,   200,   200,   199,   209,   210,   178,   178,
2517      178,   178,   178,   199,   199,   206,   207,   207,   206,   208,
2518      199,   200,   199,   200,   179,   179,   179,   179,   179,   179,
2519      179,   179,   179,   179,   179,   179,   179,   179,   179,   179,
2520      179,   179,   210,   179,   200,    72,   200,   201,   200,   200,
2521      199,   179,   179,   179,   179,   179,   179,   179,   179,   179,
2522      179,   179,   179,   179
2523 };
2524 
2525 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
2526 static const yytype_uint8 yyr1[] =
2527 {
2528        0,   184,   186,   185,   187,   185,   188,   188,   189,   189,
2529      189,   189,   189,   190,   189,   191,   191,   191,   192,   192,
2530      192,   193,   193,   193,   193,   193,   193,   193,   193,   194,
2531      194,   195,   195,   195,   195,   195,   195,   195,   195,   196,
2532      196,   198,   197,   199,   199,   200,   200,   200,   201,   201,
2533      202,   203,   204,   205,   206,   207,   208,   209,   210,   210,
2534      211,   212,   212,   213,   214,   215,   215,   216,   217,   217,
2535      217,   217,   218,   218,   218,   219,   219,   220,   219,   221,
2536      219,   219,   222,   222,   223,   223,   223,   223,   223,   223,
2537      223,   223,   223,   223,   224,   223,   225,   225,   225,   225,
2538      226,   226,   226,   227,   227,   227,   227,   227,   227
2539 };
2540 
2541 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
2542 static const yytype_int8 yyr2[] =
2543 {
2544        0,     2,     0,     6,     0,     6,     2,     0,     1,     1,
2545        4,     4,     4,     0,     2,     2,     4,     0,     1,     1,
2546        4,     4,     4,     4,     4,     4,     4,     4,     4,     2,
2547        0,     4,     4,     4,     4,     4,     4,     4,     4,     1,
2548        4,     0,     2,     1,     1,     1,     1,     1,     1,     1,
2549        1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
2550        1,     1,     1,     4,     1,     1,     1,     1,     4,     4,
2551        1,     1,     4,     4,     1,     4,     4,     0,     2,     0,
2552        2,     1,     2,     0,     4,     4,     4,     4,     4,     4,
2553        4,     4,     4,     4,     0,     2,     4,     4,     4,     4,
2554        4,     4,     4,     4,     4,     4,     4,     4,     4
2555 };
2556 
2557 
2558 enum { YYENOMEM = -2 };
2559 
2560 #define yyerrok         (yyerrstatus = 0)
2561 #define yyclearin       (yychar = MQTT_EMPTY)
2562 
2563 #define YYACCEPT        goto yyacceptlab
2564 #define YYABORT         goto yyabortlab
2565 #define YYERROR         goto yyerrorlab
2566 #define YYNOMEM         goto yyexhaustedlab
2567 
2568 
2569 #define YYRECOVERING()  (!!yyerrstatus)
2570 
2571 #define YYBACKUP(Token, Value)                                    \
2572   do                                                              \
2573     if (yychar == MQTT_EMPTY)                                        \
2574       {                                                           \
2575         yychar = (Token);                                         \
2576         yylval = (Value);                                         \
2577         YYPOPSTACK (yylen);                                       \
2578         yystate = *yyssp;                                         \
2579         goto yybackup;                                            \
2580       }                                                           \
2581     else                                                          \
2582       {                                                           \
2583         yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2584         YYERROR;                                                  \
2585       }                                                           \
2586   while (0)
2587 
2588 /* Backward compatibility with an undocumented macro.
2589    Use MQTT_error or MQTT_UNDEF. */
2590 #define YYERRCODE MQTT_UNDEF
2591 
2592 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2593    If N is 0, then set CURRENT to the empty location which ends
2594    the previous symbol: RHS[0] (always defined).  */
2595 
2596 #ifndef YYLLOC_DEFAULT
2597 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2598     do                                                                  \
2599       if (N)                                                            \
2600         {                                                               \
2601           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2602           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2603           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2604           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2605         }                                                               \
2606       else                                                              \
2607         {                                                               \
2608           (Current).first_line   = (Current).last_line   =              \
2609             YYRHSLOC (Rhs, 0).last_line;                                \
2610           (Current).first_column = (Current).last_column =              \
2611             YYRHSLOC (Rhs, 0).last_column;                              \
2612         }                                                               \
2613     while (0)
2614 #endif
2615 
2616 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2617 
2618 
2619 /* Enable debugging if requested.  */
2620 #if MQTT_DEBUG
2621 
2622 # ifndef YYFPRINTF
2623 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2624 #  define YYFPRINTF fprintf
2625 # endif
2626 
2627 # define YYDPRINTF(Args)                        \
2628 do {                                            \
2629   if (yydebug)                                  \
2630     YYFPRINTF Args;                             \
2631 } while (0)
2632 
2633 
2634 /* YYLOCATION_PRINT -- Print the location on the stream.
2635    This macro was not mandated originally: define only if we know
2636    we won't break user code: when these are the locations we know.  */
2637 
2638 # ifndef YYLOCATION_PRINT
2639 
2640 #  if defined YY_LOCATION_PRINT
2641 
2642    /* Temporary convenience wrapper in case some people defined the
2643       undocumented and private YY_LOCATION_PRINT macros.  */
2644 #   define YYLOCATION_PRINT(File, Loc)  YY_LOCATION_PRINT(File, *(Loc))
2645 
2646 #  elif defined MQTT_LTYPE_IS_TRIVIAL && MQTT_LTYPE_IS_TRIVIAL
2647 
2648 /* Print *YYLOCP on YYO.  Private, do not rely on its existence. */
2649 
2650 YY_ATTRIBUTE_UNUSED
2651 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2652 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2653 {
2654   int res = 0;
2655   int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2656   if (0 <= yylocp->first_line)
2657     {
2658       res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2659       if (0 <= yylocp->first_column)
2660         res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2661     }
2662   if (0 <= yylocp->last_line)
2663     {
2664       if (yylocp->first_line < yylocp->last_line)
2665         {
2666           res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2667           if (0 <= end_col)
2668             res += YYFPRINTF (yyo, ".%d", end_col);
2669         }
2670       else if (0 <= end_col && yylocp->first_column < end_col)
2671         res += YYFPRINTF (yyo, "-%d", end_col);
2672     }
2673   return res;
2674 }
2675 
2676 #   define YYLOCATION_PRINT  yy_location_print_
2677 
2678     /* Temporary convenience wrapper in case some people defined the
2679        undocumented and private YY_LOCATION_PRINT macros.  */
2680 #   define YY_LOCATION_PRINT(File, Loc)  YYLOCATION_PRINT(File, &(Loc))
2681 
2682 #  else
2683 
2684 #   define YYLOCATION_PRINT(File, Loc) ((void) 0)
2685     /* Temporary convenience wrapper in case some people defined the
2686        undocumented and private YY_LOCATION_PRINT macros.  */
2687 #   define YY_LOCATION_PRINT  YYLOCATION_PRINT
2688 
2689 #  endif
2690 # endif /* !defined YYLOCATION_PRINT */
2691 
2692 
2693 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
2694 do {                                                                      \
2695   if (yydebug)                                                            \
2696     {                                                                     \
2697       YYFPRINTF (stderr, "%s ", Title);                                   \
2698       yy_symbol_print (stderr,                                            \
2699                   Kind, Value, Location, lexer, instance, arg); \
2700       YYFPRINTF (stderr, "\n");                                           \
2701     }                                                                     \
2702 } while (0)
2703 
2704 
2705 /*-----------------------------------.
2706 | Print this symbol's value on YYO.  |
2707 `-----------------------------------*/
2708 
2709 static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2710 yy_symbol_value_print (FILE *yyo,
2711                        yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2712 {
2713   FILE *yyoutput = yyo;
2714   YY_USE (yyoutput);
2715   YY_USE (yylocationp);
2716   YY_USE (lexer);
2717   YY_USE (instance);
2718   YY_USE (arg);
2719   if (!yyvaluep)
2720     return;
2721   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2722   YY_USE (yykind);
2723   YY_IGNORE_MAYBE_UNINITIALIZED_END
2724 }
2725 
2726 
2727 /*---------------------------.
2728 | Print this symbol on YYO.  |
2729 `---------------------------*/
2730 
2731 static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2732 yy_symbol_print (FILE *yyo,
2733                  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2734 {
2735   YYFPRINTF (yyo, "%s %s (",
2736              yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2737 
2738   YYLOCATION_PRINT (yyo, yylocationp);
2739   YYFPRINTF (yyo, ": ");
2740   yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2741   YYFPRINTF (yyo, ")");
2742 }
2743 
2744 /*------------------------------------------------------------------.
2745 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2746 | TOP (included).                                                   |
2747 `------------------------------------------------------------------*/
2748 
2749 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2750 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2751 {
2752   YYFPRINTF (stderr, "Stack now");
2753   for (; yybottom <= yytop; yybottom++)
2754     {
2755       int yybot = *yybottom;
2756       YYFPRINTF (stderr, " %d", yybot);
2757     }
2758   YYFPRINTF (stderr, "\n");
2759 }
2760 
2761 # define YY_STACK_PRINT(Bottom, Top)                            \
2762 do {                                                            \
2763   if (yydebug)                                                  \
2764     yy_stack_print ((Bottom), (Top));                           \
2765 } while (0)
2766 
2767 
2768 /*------------------------------------------------.
2769 | Report that the YYRULE is going to be reduced.  |
2770 `------------------------------------------------*/
2771 
2772 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogDriver ** instance,gpointer arg)2773 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2774                  int yyrule, CfgLexer *lexer, LogDriver **instance, gpointer arg)
2775 {
2776   int yylno = yyrline[yyrule];
2777   int yynrhs = yyr2[yyrule];
2778   int yyi;
2779   YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2780              yyrule - 1, yylno);
2781   /* The symbols being reduced.  */
2782   for (yyi = 0; yyi < yynrhs; yyi++)
2783     {
2784       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2785       yy_symbol_print (stderr,
2786                        YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2787                        &yyvsp[(yyi + 1) - (yynrhs)],
2788                        &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2789       YYFPRINTF (stderr, "\n");
2790     }
2791 }
2792 
2793 # define YY_REDUCE_PRINT(Rule)          \
2794 do {                                    \
2795   if (yydebug)                          \
2796     yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2797 } while (0)
2798 
2799 /* Nonzero means print parse trace.  It is left uninitialized so that
2800    multiple parsers can coexist.  */
2801 int yydebug;
2802 #else /* !MQTT_DEBUG */
2803 # define YYDPRINTF(Args) ((void) 0)
2804 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2805 # define YY_STACK_PRINT(Bottom, Top)
2806 # define YY_REDUCE_PRINT(Rule)
2807 #endif /* !MQTT_DEBUG */
2808 
2809 
2810 /* YYINITDEPTH -- initial size of the parser's stacks.  */
2811 #ifndef YYINITDEPTH
2812 # define YYINITDEPTH 200
2813 #endif
2814 
2815 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2816    if the built-in stack extension method is used).
2817 
2818    Do not make this value too large; the results are undefined if
2819    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2820    evaluated with infinite-precision integer arithmetic.  */
2821 
2822 #ifndef YYMAXDEPTH
2823 # define YYMAXDEPTH 10000
2824 #endif
2825 
2826 
2827 /* Context of a parse error.  */
2828 typedef struct
2829 {
2830   yy_state_t *yyssp;
2831   yysymbol_kind_t yytoken;
2832   YYLTYPE *yylloc;
2833 } yypcontext_t;
2834 
2835 /* Put in YYARG at most YYARGN of the expected tokens given the
2836    current YYCTX, and return the number of tokens stored in YYARG.  If
2837    YYARG is null, return the number of expected tokens (guaranteed to
2838    be less than YYNTOKENS).  Return YYENOMEM on memory exhaustion.
2839    Return 0 if there are more than YYARGN expected tokens, yet fill
2840    YYARG up to YYARGN. */
2841 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2842 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2843                             yysymbol_kind_t yyarg[], int yyargn)
2844 {
2845   /* Actual size of YYARG. */
2846   int yycount = 0;
2847   int yyn = yypact[+*yyctx->yyssp];
2848   if (!yypact_value_is_default (yyn))
2849     {
2850       /* Start YYX at -YYN if negative to avoid negative indexes in
2851          YYCHECK.  In other words, skip the first -YYN actions for
2852          this state because they are default actions.  */
2853       int yyxbegin = yyn < 0 ? -yyn : 0;
2854       /* Stay within bounds of both yycheck and yytname.  */
2855       int yychecklim = YYLAST - yyn + 1;
2856       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2857       int yyx;
2858       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2859         if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2860             && !yytable_value_is_error (yytable[yyx + yyn]))
2861           {
2862             if (!yyarg)
2863               ++yycount;
2864             else if (yycount == yyargn)
2865               return 0;
2866             else
2867               yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2868           }
2869     }
2870   if (yyarg && yycount == 0 && 0 < yyargn)
2871     yyarg[0] = YYSYMBOL_YYEMPTY;
2872   return yycount;
2873 }
2874 
2875 
2876 
2877 
2878 #ifndef yystrlen
2879 # if defined __GLIBC__ && defined _STRING_H
2880 #  define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2881 # else
2882 /* Return the length of YYSTR.  */
2883 static YYPTRDIFF_T
yystrlen(const char * yystr)2884 yystrlen (const char *yystr)
2885 {
2886   YYPTRDIFF_T yylen;
2887   for (yylen = 0; yystr[yylen]; yylen++)
2888     continue;
2889   return yylen;
2890 }
2891 # endif
2892 #endif
2893 
2894 #ifndef yystpcpy
2895 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2896 #  define yystpcpy stpcpy
2897 # else
2898 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2899    YYDEST.  */
2900 static char *
yystpcpy(char * yydest,const char * yysrc)2901 yystpcpy (char *yydest, const char *yysrc)
2902 {
2903   char *yyd = yydest;
2904   const char *yys = yysrc;
2905 
2906   while ((*yyd++ = *yys++) != '\0')
2907     continue;
2908 
2909   return yyd - 1;
2910 }
2911 # endif
2912 #endif
2913 
2914 #ifndef yytnamerr
2915 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2916    quotes and backslashes, so that it's suitable for yyerror.  The
2917    heuristic is that double-quoting is unnecessary unless the string
2918    contains an apostrophe, a comma, or backslash (other than
2919    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
2920    null, do not copy; instead, return the length of what the result
2921    would have been.  */
2922 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2923 yytnamerr (char *yyres, const char *yystr)
2924 {
2925   if (*yystr == '"')
2926     {
2927       YYPTRDIFF_T yyn = 0;
2928       char const *yyp = yystr;
2929       for (;;)
2930         switch (*++yyp)
2931           {
2932           case '\'':
2933           case ',':
2934             goto do_not_strip_quotes;
2935 
2936           case '\\':
2937             if (*++yyp != '\\')
2938               goto do_not_strip_quotes;
2939             else
2940               goto append;
2941 
2942           append:
2943           default:
2944             if (yyres)
2945               yyres[yyn] = *yyp;
2946             yyn++;
2947             break;
2948 
2949           case '"':
2950             if (yyres)
2951               yyres[yyn] = '\0';
2952             return yyn;
2953           }
2954     do_not_strip_quotes: ;
2955     }
2956 
2957   if (yyres)
2958     return yystpcpy (yyres, yystr) - yyres;
2959   else
2960     return yystrlen (yystr);
2961 }
2962 #endif
2963 
2964 
2965 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2966 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2967                            yysymbol_kind_t yyarg[], int yyargn)
2968 {
2969   /* Actual size of YYARG. */
2970   int yycount = 0;
2971   /* There are many possibilities here to consider:
2972      - If this state is a consistent state with a default action, then
2973        the only way this function was invoked is if the default action
2974        is an error action.  In that case, don't check for expected
2975        tokens because there are none.
2976      - The only way there can be no lookahead present (in yychar) is if
2977        this state is a consistent state with a default action.  Thus,
2978        detecting the absence of a lookahead is sufficient to determine
2979        that there is no unexpected or expected token to report.  In that
2980        case, just report a simple "syntax error".
2981      - Don't assume there isn't a lookahead just because this state is a
2982        consistent state with a default action.  There might have been a
2983        previous inconsistent state, consistent state with a non-default
2984        action, or user semantic action that manipulated yychar.
2985      - Of course, the expected token list depends on states to have
2986        correct lookahead information, and it depends on the parser not
2987        to perform extra reductions after fetching a lookahead from the
2988        scanner and before detecting a syntax error.  Thus, state merging
2989        (from LALR or IELR) and default reductions corrupt the expected
2990        token list.  However, the list is correct for canonical LR with
2991        one exception: it will still contain any token that will not be
2992        accepted due to an error action in a later state.
2993   */
2994   if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2995     {
2996       int yyn;
2997       if (yyarg)
2998         yyarg[yycount] = yyctx->yytoken;
2999       ++yycount;
3000       yyn = yypcontext_expected_tokens (yyctx,
3001                                         yyarg ? yyarg + 1 : yyarg, yyargn - 1);
3002       if (yyn == YYENOMEM)
3003         return YYENOMEM;
3004       else
3005         yycount += yyn;
3006     }
3007   return yycount;
3008 }
3009 
3010 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3011    about the unexpected token YYTOKEN for the state stack whose top is
3012    YYSSP.
3013 
3014    Return 0 if *YYMSG was successfully written.  Return -1 if *YYMSG is
3015    not large enough to hold the message.  In that case, also set
3016    *YYMSG_ALLOC to the required number of bytes.  Return YYENOMEM if the
3017    required number of bytes is too large to store.  */
3018 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)3019 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
3020                 const yypcontext_t *yyctx)
3021 {
3022   enum { YYARGS_MAX = 5 };
3023   /* Internationalized format string. */
3024   const char *yyformat = YY_NULLPTR;
3025   /* Arguments of yyformat: reported tokens (one for the "unexpected",
3026      one per "expected"). */
3027   yysymbol_kind_t yyarg[YYARGS_MAX];
3028   /* Cumulated lengths of YYARG.  */
3029   YYPTRDIFF_T yysize = 0;
3030 
3031   /* Actual size of YYARG. */
3032   int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
3033   if (yycount == YYENOMEM)
3034     return YYENOMEM;
3035 
3036   switch (yycount)
3037     {
3038 #define YYCASE_(N, S)                       \
3039       case N:                               \
3040         yyformat = S;                       \
3041         break
3042     default: /* Avoid compiler warnings. */
3043       YYCASE_(0, YY_("syntax error"));
3044       YYCASE_(1, YY_("syntax error, unexpected %s"));
3045       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3046       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3047       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3048       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3049 #undef YYCASE_
3050     }
3051 
3052   /* Compute error message size.  Don't count the "%s"s, but reserve
3053      room for the terminator.  */
3054   yysize = yystrlen (yyformat) - 2 * yycount + 1;
3055   {
3056     int yyi;
3057     for (yyi = 0; yyi < yycount; ++yyi)
3058       {
3059         YYPTRDIFF_T yysize1
3060           = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
3061         if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3062           yysize = yysize1;
3063         else
3064           return YYENOMEM;
3065       }
3066   }
3067 
3068   if (*yymsg_alloc < yysize)
3069     {
3070       *yymsg_alloc = 2 * yysize;
3071       if (! (yysize <= *yymsg_alloc
3072              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3073         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3074       return -1;
3075     }
3076 
3077   /* Avoid sprintf, as that infringes on the user's name space.
3078      Don't have undefined behavior even if the translation
3079      produced a string with the wrong number of "%s"s.  */
3080   {
3081     char *yyp = *yymsg;
3082     int yyi = 0;
3083     while ((*yyp = *yyformat) != '\0')
3084       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3085         {
3086           yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
3087           yyformat += 2;
3088         }
3089       else
3090         {
3091           ++yyp;
3092           ++yyformat;
3093         }
3094   }
3095   return 0;
3096 }
3097 
3098 
3099 /*-----------------------------------------------.
3100 | Release the memory associated to this symbol.  |
3101 `-----------------------------------------------*/
3102 
3103 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogDriver ** instance,gpointer arg)3104 yydestruct (const char *yymsg,
3105             yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogDriver **instance, gpointer arg)
3106 {
3107   YY_USE (yyvaluep);
3108   YY_USE (yylocationp);
3109   YY_USE (lexer);
3110   YY_USE (instance);
3111   YY_USE (arg);
3112   if (!yymsg)
3113     yymsg = "Deleting";
3114   YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
3115 
3116   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3117   switch (yykind)
3118     {
3119     case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER  */
3120 #line 315 "modules/mqtt/mqtt-grammar.y"
3121             { free(((*yyvaluep).cptr)); }
3122 #line 3123 "modules/mqtt/mqtt-grammar.c"
3123         break;
3124 
3125     case YYSYMBOL_LL_STRING: /* LL_STRING  */
3126 #line 315 "modules/mqtt/mqtt-grammar.y"
3127             { free(((*yyvaluep).cptr)); }
3128 #line 3129 "modules/mqtt/mqtt-grammar.c"
3129         break;
3130 
3131     case YYSYMBOL_LL_BLOCK: /* LL_BLOCK  */
3132 #line 315 "modules/mqtt/mqtt-grammar.y"
3133             { free(((*yyvaluep).cptr)); }
3134 #line 3135 "modules/mqtt/mqtt-grammar.c"
3135         break;
3136 
3137     case YYSYMBOL_string: /* string  */
3138 #line 315 "modules/mqtt/mqtt-grammar.y"
3139             { free(((*yyvaluep).cptr)); }
3140 #line 3141 "modules/mqtt/mqtt-grammar.c"
3141         break;
3142 
3143     case YYSYMBOL_path: /* path  */
3144 #line 315 "modules/mqtt/mqtt-grammar.y"
3145             { free(((*yyvaluep).cptr)); }
3146 #line 3147 "modules/mqtt/mqtt-grammar.c"
3147         break;
3148 
3149     case YYSYMBOL_path_check: /* path_check  */
3150 #line 315 "modules/mqtt/mqtt-grammar.y"
3151             { free(((*yyvaluep).cptr)); }
3152 #line 3153 "modules/mqtt/mqtt-grammar.c"
3153         break;
3154 
3155     case YYSYMBOL_path_secret: /* path_secret  */
3156 #line 315 "modules/mqtt/mqtt-grammar.y"
3157             { free(((*yyvaluep).cptr)); }
3158 #line 3159 "modules/mqtt/mqtt-grammar.c"
3159         break;
3160 
3161       default:
3162         break;
3163     }
3164   YY_IGNORE_MAYBE_UNINITIALIZED_END
3165 }
3166 
3167 
3168 
3169 
3170 
3171 
3172 /*----------.
3173 | yyparse.  |
3174 `----------*/
3175 
3176 int
yyparse(CfgLexer * lexer,LogDriver ** instance,gpointer arg)3177 yyparse (CfgLexer *lexer, LogDriver **instance, gpointer arg)
3178 {
3179 /* Lookahead token kind.  */
3180 int yychar;
3181 
3182 
3183 /* The semantic value of the lookahead symbol.  */
3184 /* Default value used for initialization, for pacifying older GCCs
3185    or non-GCC compilers.  */
3186 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3187 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3188 
3189 /* Location data for the lookahead symbol.  */
3190 static YYLTYPE yyloc_default
3191 # if defined MQTT_LTYPE_IS_TRIVIAL && MQTT_LTYPE_IS_TRIVIAL
3192   = { 1, 1, 1, 1 }
3193 # endif
3194 ;
3195 YYLTYPE yylloc = yyloc_default;
3196 
3197     /* Number of syntax errors so far.  */
3198     int yynerrs = 0;
3199 
3200     yy_state_fast_t yystate = 0;
3201     /* Number of tokens to shift before error messages enabled.  */
3202     int yyerrstatus = 0;
3203 
3204     /* Refer to the stacks through separate pointers, to allow yyoverflow
3205        to reallocate them elsewhere.  */
3206 
3207     /* Their size.  */
3208     YYPTRDIFF_T yystacksize = YYINITDEPTH;
3209 
3210     /* The state stack: array, bottom, top.  */
3211     yy_state_t yyssa[YYINITDEPTH];
3212     yy_state_t *yyss = yyssa;
3213     yy_state_t *yyssp = yyss;
3214 
3215     /* The semantic value stack: array, bottom, top.  */
3216     YYSTYPE yyvsa[YYINITDEPTH];
3217     YYSTYPE *yyvs = yyvsa;
3218     YYSTYPE *yyvsp = yyvs;
3219 
3220     /* The location stack: array, bottom, top.  */
3221     YYLTYPE yylsa[YYINITDEPTH];
3222     YYLTYPE *yyls = yylsa;
3223     YYLTYPE *yylsp = yyls;
3224 
3225   int yyn;
3226   /* The return value of yyparse.  */
3227   int yyresult;
3228   /* Lookahead symbol kind.  */
3229   yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
3230   /* The variables used to return semantic value and location from the
3231      action routines.  */
3232   YYSTYPE yyval;
3233   YYLTYPE yyloc;
3234 
3235   /* The locations where the error started and ended.  */
3236   YYLTYPE yyerror_range[3];
3237 
3238   /* Buffer for error messages, and its allocated size.  */
3239   char yymsgbuf[128];
3240   char *yymsg = yymsgbuf;
3241   YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
3242 
3243 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
3244 
3245   /* The number of symbols on the RHS of the reduced rule.
3246      Keep to zero when no symbol should be popped.  */
3247   int yylen = 0;
3248 
3249   YYDPRINTF ((stderr, "Starting parse\n"));
3250 
3251   yychar = MQTT_EMPTY; /* Cause a token to be read.  */
3252 
3253   yylsp[0] = yylloc;
3254   goto yysetstate;
3255 
3256 
3257 /*------------------------------------------------------------.
3258 | yynewstate -- push a new state, which is found in yystate.  |
3259 `------------------------------------------------------------*/
3260 yynewstate:
3261   /* In all cases, when you get here, the value and location stacks
3262      have just been pushed.  So pushing a state here evens the stacks.  */
3263   yyssp++;
3264 
3265 
3266 /*--------------------------------------------------------------------.
3267 | yysetstate -- set current state (the top of the stack) to yystate.  |
3268 `--------------------------------------------------------------------*/
3269 yysetstate:
3270   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3271   YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3272   YY_IGNORE_USELESS_CAST_BEGIN
3273   *yyssp = YY_CAST (yy_state_t, yystate);
3274   YY_IGNORE_USELESS_CAST_END
3275   YY_STACK_PRINT (yyss, yyssp);
3276 
3277   if (yyss + yystacksize - 1 <= yyssp)
3278 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3279     YYNOMEM;
3280 #else
3281     {
3282       /* Get the current used size of the three stacks, in elements.  */
3283       YYPTRDIFF_T yysize = yyssp - yyss + 1;
3284 
3285 # if defined yyoverflow
3286       {
3287         /* Give user a chance to reallocate the stack.  Use copies of
3288            these so that the &'s don't force the real ones into
3289            memory.  */
3290         yy_state_t *yyss1 = yyss;
3291         YYSTYPE *yyvs1 = yyvs;
3292         YYLTYPE *yyls1 = yyls;
3293 
3294         /* Each stack pointer address is followed by the size of the
3295            data in use in that stack, in bytes.  This used to be a
3296            conditional around just the two extra args, but that might
3297            be undefined if yyoverflow is a macro.  */
3298         yyoverflow (YY_("memory exhausted"),
3299                     &yyss1, yysize * YYSIZEOF (*yyssp),
3300                     &yyvs1, yysize * YYSIZEOF (*yyvsp),
3301                     &yyls1, yysize * YYSIZEOF (*yylsp),
3302                     &yystacksize);
3303         yyss = yyss1;
3304         yyvs = yyvs1;
3305         yyls = yyls1;
3306       }
3307 # else /* defined YYSTACK_RELOCATE */
3308       /* Extend the stack our own way.  */
3309       if (YYMAXDEPTH <= yystacksize)
3310         YYNOMEM;
3311       yystacksize *= 2;
3312       if (YYMAXDEPTH < yystacksize)
3313         yystacksize = YYMAXDEPTH;
3314 
3315       {
3316         yy_state_t *yyss1 = yyss;
3317         union yyalloc *yyptr =
3318           YY_CAST (union yyalloc *,
3319                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3320         if (! yyptr)
3321           YYNOMEM;
3322         YYSTACK_RELOCATE (yyss_alloc, yyss);
3323         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3324         YYSTACK_RELOCATE (yyls_alloc, yyls);
3325 #  undef YYSTACK_RELOCATE
3326         if (yyss1 != yyssa)
3327           YYSTACK_FREE (yyss1);
3328       }
3329 # endif
3330 
3331       yyssp = yyss + yysize - 1;
3332       yyvsp = yyvs + yysize - 1;
3333       yylsp = yyls + yysize - 1;
3334 
3335       YY_IGNORE_USELESS_CAST_BEGIN
3336       YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3337                   YY_CAST (long, yystacksize)));
3338       YY_IGNORE_USELESS_CAST_END
3339 
3340       if (yyss + yystacksize - 1 <= yyssp)
3341         YYABORT;
3342     }
3343 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3344 
3345 
3346   if (yystate == YYFINAL)
3347     YYACCEPT;
3348 
3349   goto yybackup;
3350 
3351 
3352 /*-----------.
3353 | yybackup.  |
3354 `-----------*/
3355 yybackup:
3356   /* Do appropriate processing given the current state.  Read a
3357      lookahead token if we need one and don't already have one.  */
3358 
3359   /* First try to decide what to do without reference to lookahead token.  */
3360   yyn = yypact[yystate];
3361   if (yypact_value_is_default (yyn))
3362     goto yydefault;
3363 
3364   /* Not known => get a lookahead token if don't already have one.  */
3365 
3366   /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
3367   if (yychar == MQTT_EMPTY)
3368     {
3369       YYDPRINTF ((stderr, "Reading a token\n"));
3370       yychar = yylex (&yylval, &yylloc, lexer);
3371     }
3372 
3373   if (yychar <= MQTT_EOF)
3374     {
3375       yychar = MQTT_EOF;
3376       yytoken = YYSYMBOL_YYEOF;
3377       YYDPRINTF ((stderr, "Now at end of input.\n"));
3378     }
3379   else if (yychar == MQTT_error)
3380     {
3381       /* The scanner already issued an error message, process directly
3382          to error recovery.  But do not keep the error token as
3383          lookahead, it is too special and may lead us to an endless
3384          loop in error recovery. */
3385       yychar = MQTT_UNDEF;
3386       yytoken = YYSYMBOL_YYerror;
3387       yyerror_range[1] = yylloc;
3388       goto yyerrlab1;
3389     }
3390   else
3391     {
3392       yytoken = YYTRANSLATE (yychar);
3393       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3394     }
3395 
3396   /* If the proper action on seeing token YYTOKEN is to reduce or to
3397      detect an error, take that action.  */
3398   yyn += yytoken;
3399   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3400     goto yydefault;
3401   yyn = yytable[yyn];
3402   if (yyn <= 0)
3403     {
3404       if (yytable_value_is_error (yyn))
3405         goto yyerrlab;
3406       yyn = -yyn;
3407       goto yyreduce;
3408     }
3409 
3410   /* Count tokens shifted since error; after three, turn off error
3411      status.  */
3412   if (yyerrstatus)
3413     yyerrstatus--;
3414 
3415   /* Shift the lookahead token.  */
3416   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3417   yystate = yyn;
3418   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3419   *++yyvsp = yylval;
3420   YY_IGNORE_MAYBE_UNINITIALIZED_END
3421   *++yylsp = yylloc;
3422 
3423   /* Discard the shifted token.  */
3424   yychar = MQTT_EMPTY;
3425   goto yynewstate;
3426 
3427 
3428 /*-----------------------------------------------------------.
3429 | yydefault -- do the default action for the current state.  |
3430 `-----------------------------------------------------------*/
3431 yydefault:
3432   yyn = yydefact[yystate];
3433   if (yyn == 0)
3434     goto yyerrlab;
3435   goto yyreduce;
3436 
3437 
3438 /*-----------------------------.
3439 | yyreduce -- do a reduction.  |
3440 `-----------------------------*/
3441 yyreduce:
3442   /* yyn is the number of a rule to reduce with.  */
3443   yylen = yyr2[yyn];
3444 
3445   /* If YYLEN is nonzero, implement the default value of the action:
3446      '$$ = $1'.
3447 
3448      Otherwise, the following line sets YYVAL to garbage.
3449      This behavior is undocumented and Bison
3450      users should not rely upon it.  Assigning to YYVAL
3451      unconditionally makes the parser a bit smaller, and it avoids a
3452      GCC warning that YYVAL may be used uninitialized.  */
3453   yyval = yyvsp[1-yylen];
3454 
3455   /* Default location. */
3456   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3457   yyerror_range[1] = yyloc;
3458   YY_REDUCE_PRINT (yyn);
3459   switch (yyn)
3460     {
3461   case 2: /* $@1: %empty  */
3462 #line 422 "modules/mqtt/mqtt-grammar.y"
3463           {
3464             last_driver = *instance = mqtt_dd_new(configuration);
3465             last_options = mqtt_dd_get_options(last_driver);
3466           }
3467 #line 3468 "modules/mqtt/mqtt-grammar.c"
3468     break;
3469 
3470   case 3: /* start: LL_CONTEXT_DESTINATION KW_MQTT $@1 '(' mqtt_destination_options ')'  */
3471 #line 426 "modules/mqtt/mqtt-grammar.y"
3472                                            { YYACCEPT; }
3473 #line 3474 "modules/mqtt/mqtt-grammar.c"
3474     break;
3475 
3476   case 4: /* $@2: %empty  */
3477 #line 428 "modules/mqtt/mqtt-grammar.y"
3478           {
3479             last_driver = *instance = mqtt_sd_new(configuration);
3480             last_options = mqtt_sd_get_options(last_driver);
3481           }
3482 #line 3483 "modules/mqtt/mqtt-grammar.c"
3483     break;
3484 
3485   case 5: /* start: LL_CONTEXT_SOURCE KW_MQTT $@2 '(' mqtt_source_options ')'  */
3486 #line 432 "modules/mqtt/mqtt-grammar.y"
3487                                       { YYACCEPT; }
3488 #line 3489 "modules/mqtt/mqtt-grammar.c"
3489     break;
3490 
3491   case 10: /* mqtt_destination_option: KW_TOPIC '(' template_content ')'  */
3492 #line 443 "modules/mqtt/mqtt-grammar.y"
3493                                                 { mqtt_dd_set_topic_template(last_driver, (yyvsp[-1].ptr));  }
3494 #line 3495 "modules/mqtt/mqtt-grammar.c"
3495     break;
3496 
3497   case 11: /* mqtt_destination_option: KW_FALLBACK_TOPIC '(' string ')'  */
3498 #line 444 "modules/mqtt/mqtt-grammar.y"
3499                                                 { mqtt_dd_set_fallback_topic(last_driver, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3500 #line 3501 "modules/mqtt/mqtt-grammar.c"
3501     break;
3502 
3503   case 12: /* mqtt_destination_option: KW_TEMPLATE '(' template_content ')'  */
3504 #line 445 "modules/mqtt/mqtt-grammar.y"
3505                                                  { mqtt_dd_set_message_template_ref(last_driver, (yyvsp[-1].ptr)); }
3506 #line 3507 "modules/mqtt/mqtt-grammar.c"
3507     break;
3508 
3509   case 13: /* $@3: %empty  */
3510 #line 446 "modules/mqtt/mqtt-grammar.y"
3511           { last_template_options = mqtt_dd_get_template_options(last_driver); }
3512 #line 3513 "modules/mqtt/mqtt-grammar.c"
3513     break;
3514 
3515   case 16: /* mqtt_source_options: KW_CLEANSESSION '(' yesno ')'  */
3516 #line 451 "modules/mqtt/mqtt-grammar.y"
3517                                                  { mqtt_client_options_set_cleansession(last_options, (yyvsp[-1].num)); }
3518 #line 3519 "modules/mqtt/mqtt-grammar.c"
3519     break;
3520 
3521   case 20: /* mqtt_source_option: KW_TOPIC '(' string ')'  */
3522 #line 458 "modules/mqtt/mqtt-grammar.y"
3523                                   { mqtt_sd_set_topic(last_driver, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3524 #line 3525 "modules/mqtt/mqtt-grammar.c"
3525     break;
3526 
3527   case 21: /* mqtt_option: KW_KEEPALIVE '(' positive_integer ')'  */
3528 #line 462 "modules/mqtt/mqtt-grammar.y"
3529                                                 { mqtt_client_options_set_keepalive(last_options, (yyvsp[-1].num));       }
3530 #line 3531 "modules/mqtt/mqtt-grammar.c"
3531     break;
3532 
3533   case 22: /* mqtt_option: KW_ADDRESS '(' string ')'  */
3534 #line 464 "modules/mqtt/mqtt-grammar.y"
3535           {
3536             CHECK_ERROR(mqtt_client_options_set_address(last_options, (yyvsp[-1].cptr)), (yylsp[-3]), "Invalid address");
3537             free((yyvsp[-1].cptr));
3538           }
3539 #line 3540 "modules/mqtt/mqtt-grammar.c"
3540     break;
3541 
3542   case 23: /* mqtt_option: KW_QOS '(' nonnegative_integer ')'  */
3543 #line 469 "modules/mqtt/mqtt-grammar.y"
3544           {
3545             CHECK_ERROR(0 <= (yyvsp[-1].num) && (yyvsp[-1].num) <= 2, (yylsp[-3]), "Allowed QOS values: 0, 1, 2");
3546             mqtt_client_options_set_qos(last_options, (yyvsp[-1].num));
3547           }
3548 #line 3549 "modules/mqtt/mqtt-grammar.c"
3549     break;
3550 
3551   case 24: /* mqtt_option: KW_CLIENT_ID '(' string ')'  */
3552 #line 473 "modules/mqtt/mqtt-grammar.y"
3553                                                  { CHECK_ERROR(mqtt_client_options_set_client_id(last_options, (yyvsp[-1].cptr)), (yylsp[-1]), "mqtt: client_id can't be empty"); free((yyvsp[-1].cptr)); }
3554 #line 3555 "modules/mqtt/mqtt-grammar.c"
3555     break;
3556 
3557   case 25: /* mqtt_option: KW_USERNAME '(' string ')'  */
3558 #line 474 "modules/mqtt/mqtt-grammar.y"
3559                                                  { mqtt_client_options_set_username(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3560 #line 3561 "modules/mqtt/mqtt-grammar.c"
3561     break;
3562 
3563   case 26: /* mqtt_option: KW_PASSWORD '(' string ')'  */
3564 #line 475 "modules/mqtt/mqtt-grammar.y"
3565                                                  { mqtt_client_options_set_password(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3566 #line 3567 "modules/mqtt/mqtt-grammar.c"
3567     break;
3568 
3569   case 27: /* mqtt_option: KW_HTTP_PROXY '(' string ')'  */
3570 #line 476 "modules/mqtt/mqtt-grammar.y"
3571                                                  { mqtt_client_options_set_http_proxy(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3572 #line 3573 "modules/mqtt/mqtt-grammar.c"
3573     break;
3574 
3575   case 31: /* mqtt_tls_option: KW_CA_DIR '(' string ')'  */
3576 #line 486 "modules/mqtt/mqtt-grammar.y"
3577                                               { mqtt_client_options_set_ca_dir(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3578 #line 3579 "modules/mqtt/mqtt-grammar.c"
3579     break;
3580 
3581   case 32: /* mqtt_tls_option: KW_CA_FILE '(' path_check ')'  */
3582 #line 487 "modules/mqtt/mqtt-grammar.y"
3583                                               { mqtt_client_options_set_ca_file(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3584 #line 3585 "modules/mqtt/mqtt-grammar.c"
3585     break;
3586 
3587   case 33: /* mqtt_tls_option: KW_CERT_FILE '(' path_check ')'  */
3588 #line 488 "modules/mqtt/mqtt-grammar.y"
3589                                               { mqtt_client_options_set_cert_file(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3590 #line 3591 "modules/mqtt/mqtt-grammar.c"
3591     break;
3592 
3593   case 34: /* mqtt_tls_option: KW_KEY_FILE '(' path_secret ')'  */
3594 #line 489 "modules/mqtt/mqtt-grammar.y"
3595                                               { mqtt_client_options_set_key_file(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3596 #line 3597 "modules/mqtt/mqtt-grammar.c"
3597     break;
3598 
3599   case 35: /* mqtt_tls_option: KW_CIPHER_SUITE '(' string ')'  */
3600 #line 490 "modules/mqtt/mqtt-grammar.y"
3601                                               { mqtt_client_options_set_cipher_suite(last_options, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3602 #line 3603 "modules/mqtt/mqtt-grammar.c"
3603     break;
3604 
3605   case 36: /* mqtt_tls_option: KW_SSL_VERSION '(' string ')'  */
3606 #line 491 "modules/mqtt/mqtt-grammar.y"
3607                                               { CHECK_ERROR(mqtt_client_options_set_ssl_version(last_options, (yyvsp[-1].cptr)), (yylsp[-1]),
3608                                                             "mqtt: unsupported SSL version: %s", (yyvsp[-1].cptr));
3609                                                 free((yyvsp[-1].cptr)); }
3610 #line 3611 "modules/mqtt/mqtt-grammar.c"
3611     break;
3612 
3613   case 37: /* mqtt_tls_option: KW_PEER_VERIFY '(' yesno ')'  */
3614 #line 494 "modules/mqtt/mqtt-grammar.y"
3615                                               { mqtt_client_options_set_peer_verify(last_options, (yyvsp[-1].num)); }
3616 #line 3617 "modules/mqtt/mqtt-grammar.c"
3617     break;
3618 
3619   case 38: /* mqtt_tls_option: KW_USE_SYSTEM_CERT_STORE '(' yesno ')'  */
3620 #line 495 "modules/mqtt/mqtt-grammar.y"
3621                                               { mqtt_client_options_use_system_cert_store(last_options, (yyvsp[-1].num)); }
3622 #line 3623 "modules/mqtt/mqtt-grammar.c"
3623     break;
3624 
3625   case 39: /* template_content_inner: string  */
3626 #line 732 "modules/mqtt/mqtt-grammar.y"
3627         {
3628           GError *error = NULL;
3629 
3630           CHECK_ERROR_GERROR(log_template_compile(last_template, (yyvsp[0].cptr), &error), (yylsp[0]), error, "Error compiling template");
3631           free((yyvsp[0].cptr));
3632         }
3633 #line 3634 "modules/mqtt/mqtt-grammar.c"
3634     break;
3635 
3636   case 40: /* template_content_inner: LL_IDENTIFIER '(' string ')'  */
3637 #line 739 "modules/mqtt/mqtt-grammar.y"
3638         {
3639           GError *error = NULL;
3640 
3641           CHECK_ERROR_GERROR(log_template_compile(last_template, (yyvsp[-1].cptr), &error), (yylsp[-1]), error, "Error compiling template");
3642           free((yyvsp[-1].cptr));
3643 
3644           CHECK_ERROR_GERROR(log_template_set_type_hint(last_template, (yyvsp[-3].cptr), &error), (yylsp[-3]), error, "Error setting the template type-hint \"%s\"", (yyvsp[-3].cptr));
3645           free((yyvsp[-3].cptr));
3646         }
3647 #line 3648 "modules/mqtt/mqtt-grammar.c"
3648     break;
3649 
3650   case 41: /* $@9: %empty  */
3651 #line 751 "modules/mqtt/mqtt-grammar.y"
3652           { last_template = log_template_new(configuration, NULL); }
3653 #line 3654 "modules/mqtt/mqtt-grammar.c"
3654     break;
3655 
3656   case 42: /* template_content: $@9 template_content_inner  */
3657 #line 751 "modules/mqtt/mqtt-grammar.y"
3658                                                                                                 { (yyval.ptr) = last_template; }
3659 #line 3660 "modules/mqtt/mqtt-grammar.c"
3660     break;
3661 
3662   case 45: /* yesno: KW_YES  */
3663 #line 767 "modules/mqtt/mqtt-grammar.y"
3664                                                 { (yyval.num) = 1; }
3665 #line 3666 "modules/mqtt/mqtt-grammar.c"
3666     break;
3667 
3668   case 46: /* yesno: KW_NO  */
3669 #line 768 "modules/mqtt/mqtt-grammar.y"
3670                                                 { (yyval.num) = 0; }
3671 #line 3672 "modules/mqtt/mqtt-grammar.c"
3672     break;
3673 
3674   case 47: /* yesno: LL_NUMBER  */
3675 #line 769 "modules/mqtt/mqtt-grammar.y"
3676                                                 { (yyval.num) = (yyvsp[0].num); }
3677 #line 3678 "modules/mqtt/mqtt-grammar.c"
3678     break;
3679 
3680   case 48: /* dnsmode: yesno  */
3681 #line 773 "modules/mqtt/mqtt-grammar.y"
3682                                                 { (yyval.num) = (yyvsp[0].num); }
3683 #line 3684 "modules/mqtt/mqtt-grammar.c"
3684     break;
3685 
3686   case 49: /* dnsmode: KW_PERSIST_ONLY  */
3687 #line 774 "modules/mqtt/mqtt-grammar.y"
3688                                                 { (yyval.num) = 2; }
3689 #line 3690 "modules/mqtt/mqtt-grammar.c"
3690     break;
3691 
3692   case 50: /* nonnegative_integer64: LL_NUMBER  */
3693 #line 779 "modules/mqtt/mqtt-grammar.y"
3694           {
3695             CHECK_ERROR(((yyvsp[0].num) >= 0), (yylsp[0]), "It cannot be negative");
3696           }
3697 #line 3698 "modules/mqtt/mqtt-grammar.c"
3698     break;
3699 
3700   case 51: /* nonnegative_integer: nonnegative_integer64  */
3701 #line 786 "modules/mqtt/mqtt-grammar.y"
3702           {
3703             CHECK_ERROR(((yyvsp[0].num) <= G_MAXINT32), (yylsp[0]), "Must be smaller than 2^31");
3704           }
3705 #line 3706 "modules/mqtt/mqtt-grammar.c"
3706     break;
3707 
3708   case 52: /* positive_integer64: LL_NUMBER  */
3709 #line 793 "modules/mqtt/mqtt-grammar.y"
3710           {
3711             CHECK_ERROR(((yyvsp[0].num) > 0), (yylsp[0]), "Must be positive");
3712           }
3713 #line 3714 "modules/mqtt/mqtt-grammar.c"
3714     break;
3715 
3716   case 53: /* positive_integer: positive_integer64  */
3717 #line 800 "modules/mqtt/mqtt-grammar.y"
3718           {
3719             CHECK_ERROR(((yyvsp[0].num) <= G_MAXINT32), (yylsp[0]), "Must be smaller than 2^31");
3720           }
3721 #line 3722 "modules/mqtt/mqtt-grammar.c"
3722     break;
3723 
3724   case 54: /* path: string  */
3725 #line 835 "modules/mqtt/mqtt-grammar.y"
3726           {
3727             struct stat buffer;
3728             int ret = stat((yyvsp[0].cptr), &buffer);
3729             CHECK_ERROR((ret == 0), (yylsp[0]), "File \"%s\" not found: %s", (yyvsp[0].cptr), strerror(errno));
3730             (yyval.cptr) = (yyvsp[0].cptr);
3731 	  }
3732 #line 3733 "modules/mqtt/mqtt-grammar.c"
3733     break;
3734 
3735   case 55: /* path_check: path  */
3736 #line 844 "modules/mqtt/mqtt-grammar.y"
3737            { cfg_path_track_file(configuration, (yyvsp[0].cptr), "path_check"); }
3738 #line 3739 "modules/mqtt/mqtt-grammar.c"
3739     break;
3740 
3741   case 56: /* path_secret: path  */
3742 #line 848 "modules/mqtt/mqtt-grammar.y"
3743            { cfg_path_track_file(configuration, (yyvsp[0].cptr), "path_secret"); }
3744 #line 3745 "modules/mqtt/mqtt-grammar.c"
3745     break;
3746 
3747   case 57: /* string_list: string_list_build  */
3748 #line 860 "modules/mqtt/mqtt-grammar.y"
3749                                                 { (yyval.ptr) = (yyvsp[0].ptr); }
3750 #line 3751 "modules/mqtt/mqtt-grammar.c"
3751     break;
3752 
3753   case 58: /* string_list_build: string string_list_build  */
3754 #line 864 "modules/mqtt/mqtt-grammar.y"
3755                                                 { (yyval.ptr) = g_list_prepend((yyvsp[0].ptr), g_strdup((yyvsp[-1].cptr))); free((yyvsp[-1].cptr)); }
3756 #line 3757 "modules/mqtt/mqtt-grammar.c"
3757     break;
3758 
3759   case 59: /* string_list_build: %empty  */
3760 #line 865 "modules/mqtt/mqtt-grammar.y"
3761                                                 { (yyval.ptr) = NULL; }
3762 #line 3763 "modules/mqtt/mqtt-grammar.c"
3763     break;
3764 
3765   case 60: /* severity_string: string  */
3766 #line 875 "modules/mqtt/mqtt-grammar.y"
3767           {
3768 	    /* return the numeric value of the "level" */
3769 	    int n = syslog_name_lookup_severity_by_name((yyvsp[0].cptr));
3770 	    CHECK_ERROR((n != -1), (yylsp[0]), "Unknown priority level\"%s\"", (yyvsp[0].cptr));
3771 	    free((yyvsp[0].cptr));
3772             (yyval.num) = n;
3773 	  }
3774 #line 3775 "modules/mqtt/mqtt-grammar.c"
3775     break;
3776 
3777   case 61: /* facility_string: string  */
3778 #line 886 "modules/mqtt/mqtt-grammar.y"
3779           {
3780             /* return the numeric value of facility */
3781 	    int n = syslog_name_lookup_facility_by_name((yyvsp[0].cptr));
3782 	    CHECK_ERROR((n != -1), (yylsp[0]), "Unknown facility \"%s\"", (yyvsp[0].cptr));
3783 	    free((yyvsp[0].cptr));
3784 	    (yyval.num) = n;
3785 	  }
3786 #line 3787 "modules/mqtt/mqtt-grammar.c"
3787     break;
3788 
3789   case 62: /* facility_string: KW_SYSLOG  */
3790 #line 893 "modules/mqtt/mqtt-grammar.y"
3791                                                 { (yyval.num) = LOG_SYSLOG; }
3792 #line 3793 "modules/mqtt/mqtt-grammar.c"
3793     break;
3794 
3795   case 63: /* driver_option: KW_PERSIST_NAME '(' string ')'  */
3796 #line 909 "modules/mqtt/mqtt-grammar.y"
3797                                          { log_pipe_set_persist_name(&last_driver->super, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3798 #line 3799 "modules/mqtt/mqtt-grammar.c"
3799     break;
3800 
3801   case 64: /* inner_source: LL_IDENTIFIER  */
3802 #line 914 "modules/mqtt/mqtt-grammar.y"
3803           {
3804             Plugin *p;
3805             gint context = LL_CONTEXT_INNER_SRC;
3806             gpointer value;
3807 
3808             p = cfg_find_plugin(configuration, context, (yyvsp[0].cptr));
3809             CHECK_ERROR(p, (yylsp[0]), "%s plugin %s not found", cfg_lexer_lookup_context_name_by_type(context), (yyvsp[0].cptr));
3810 
3811             value = cfg_parse_plugin(configuration, p, &(yylsp[0]), last_driver);
3812 
3813             free((yyvsp[0].cptr));
3814             if (!value)
3815               {
3816                 YYERROR;
3817               }
3818             if (!log_driver_add_plugin(last_driver, (LogDriverPlugin *) value))
3819               {
3820                 log_driver_plugin_free(value);
3821                 CHECK_ERROR(TRUE, (yylsp[0]), "Error while registering the plugin %s in this destination", (yyvsp[0].cptr));
3822               }
3823           }
3824 #line 3825 "modules/mqtt/mqtt-grammar.c"
3825     break;
3826 
3827   case 67: /* inner_dest: LL_IDENTIFIER  */
3828 #line 945 "modules/mqtt/mqtt-grammar.y"
3829           {
3830             Plugin *p;
3831             gint context = LL_CONTEXT_INNER_DEST;
3832             gpointer value;
3833 
3834             p = cfg_find_plugin(configuration, context, (yyvsp[0].cptr));
3835             CHECK_ERROR(p, (yylsp[0]), "%s plugin %s not found", cfg_lexer_lookup_context_name_by_type(context), (yyvsp[0].cptr));
3836 
3837             value = cfg_parse_plugin(configuration, p, &(yylsp[0]), last_driver);
3838 
3839             free((yyvsp[0].cptr));
3840             if (!value)
3841               {
3842                 YYERROR;
3843               }
3844             if (!log_driver_add_plugin(last_driver, (LogDriverPlugin *) value))
3845               {
3846                 log_driver_plugin_free(value);
3847                 CHECK_ERROR(TRUE, (yylsp[0]), "Error while registering the plugin %s in this destination", (yyvsp[0].cptr));
3848               }
3849           }
3850 #line 3851 "modules/mqtt/mqtt-grammar.c"
3851     break;
3852 
3853   case 68: /* dest_driver_option: KW_LOG_FIFO_SIZE '(' positive_integer ')'  */
3854 #line 972 "modules/mqtt/mqtt-grammar.y"
3855                                                         { ((LogDestDriver *) last_driver)->log_fifo_size = (yyvsp[-1].num); }
3856 #line 3857 "modules/mqtt/mqtt-grammar.c"
3857     break;
3858 
3859   case 69: /* dest_driver_option: KW_THROTTLE '(' nonnegative_integer ')'  */
3860 #line 973 "modules/mqtt/mqtt-grammar.y"
3861                                                           { ((LogDestDriver *) last_driver)->throttle = (yyvsp[-1].num); }
3862 #line 3863 "modules/mqtt/mqtt-grammar.c"
3863     break;
3864 
3865   case 72: /* threaded_dest_driver_general_option: KW_RETRIES '(' positive_integer ')'  */
3866 #line 990 "modules/mqtt/mqtt-grammar.y"
3867         {
3868           log_threaded_dest_driver_set_max_retries_on_error(last_driver, (yyvsp[-1].num));
3869         }
3870 #line 3871 "modules/mqtt/mqtt-grammar.c"
3871     break;
3872 
3873   case 73: /* threaded_dest_driver_general_option: KW_TIME_REOPEN '(' positive_integer ')'  */
3874 #line 993 "modules/mqtt/mqtt-grammar.y"
3875                                                   { log_threaded_dest_driver_set_time_reopen(last_driver, (yyvsp[-1].num)); }
3876 #line 3877 "modules/mqtt/mqtt-grammar.c"
3877     break;
3878 
3879   case 75: /* threaded_source_driver_option: KW_FORMAT '(' string ')'  */
3880 #line 999 "modules/mqtt/mqtt-grammar.y"
3881                                    { log_threaded_source_driver_get_parse_options(last_driver)->format = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3882 #line 3883 "modules/mqtt/mqtt-grammar.c"
3883     break;
3884 
3885   case 77: /* $@10: %empty  */
3886 #line 1001 "modules/mqtt/mqtt-grammar.y"
3887           { last_msg_format_options = log_threaded_source_driver_get_parse_options(last_driver); }
3888 #line 3889 "modules/mqtt/mqtt-grammar.c"
3889     break;
3890 
3891   case 79: /* $@11: %empty  */
3892 #line 1002 "modules/mqtt/mqtt-grammar.y"
3893           { last_source_options = log_threaded_source_driver_get_source_options(last_driver); }
3894 #line 3895 "modules/mqtt/mqtt-grammar.c"
3895     break;
3896 
3897   case 82: /* threaded_source_driver_option_flags: string threaded_source_driver_option_flags  */
3898 #line 1013 "modules/mqtt/mqtt-grammar.y"
3899         {
3900           CHECK_ERROR(msg_format_options_process_flag(log_threaded_source_driver_get_parse_options(last_driver), (yyvsp[-1].cptr)), (yylsp[-1]), "Unknown flag \"%s\"", (yyvsp[-1].cptr));
3901           free((yyvsp[-1].cptr));
3902         }
3903 #line 3904 "modules/mqtt/mqtt-grammar.c"
3904     break;
3905 
3906   case 84: /* source_option: KW_LOG_IW_SIZE '(' positive_integer ')'  */
3907 #line 1023 "modules/mqtt/mqtt-grammar.y"
3908                                                         { last_source_options->init_window_size = (yyvsp[-1].num); }
3909 #line 3910 "modules/mqtt/mqtt-grammar.c"
3910     break;
3911 
3912   case 85: /* source_option: KW_CHAIN_HOSTNAMES '(' yesno ')'  */
3913 #line 1024 "modules/mqtt/mqtt-grammar.y"
3914                                                 { last_source_options->chain_hostnames = (yyvsp[-1].num); }
3915 #line 3916 "modules/mqtt/mqtt-grammar.c"
3916     break;
3917 
3918   case 86: /* source_option: KW_KEEP_HOSTNAME '(' yesno ')'  */
3919 #line 1025 "modules/mqtt/mqtt-grammar.y"
3920                                                 { last_source_options->keep_hostname = (yyvsp[-1].num); }
3921 #line 3922 "modules/mqtt/mqtt-grammar.c"
3922     break;
3923 
3924   case 87: /* source_option: KW_PROGRAM_OVERRIDE '(' string ')'  */
3925 #line 1026 "modules/mqtt/mqtt-grammar.y"
3926                                                 { last_source_options->program_override = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3927 #line 3928 "modules/mqtt/mqtt-grammar.c"
3928     break;
3929 
3930   case 88: /* source_option: KW_HOST_OVERRIDE '(' string ')'  */
3931 #line 1027 "modules/mqtt/mqtt-grammar.y"
3932                                                 { last_source_options->host_override = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3933 #line 3934 "modules/mqtt/mqtt-grammar.c"
3934     break;
3935 
3936   case 89: /* source_option: KW_LOG_PREFIX '(' string ')'  */
3937 #line 1028 "modules/mqtt/mqtt-grammar.y"
3938                                                 { gchar *p = strrchr((yyvsp[-1].cptr), ':'); if (p) *p = 0; last_source_options->program_override = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3939 #line 3940 "modules/mqtt/mqtt-grammar.c"
3940     break;
3941 
3942   case 90: /* source_option: KW_KEEP_TIMESTAMP '(' yesno ')'  */
3943 #line 1029 "modules/mqtt/mqtt-grammar.y"
3944                                                 { last_source_options->keep_timestamp = (yyvsp[-1].num); }
3945 #line 3946 "modules/mqtt/mqtt-grammar.c"
3946     break;
3947 
3948   case 91: /* source_option: KW_READ_OLD_RECORDS '(' yesno ')'  */
3949 #line 1030 "modules/mqtt/mqtt-grammar.y"
3950                                                 { last_source_options->read_old_records = (yyvsp[-1].num); }
3951 #line 3952 "modules/mqtt/mqtt-grammar.c"
3952     break;
3953 
3954   case 92: /* source_option: KW_USE_SYSLOGNG_PID '(' yesno ')'  */
3955 #line 1031 "modules/mqtt/mqtt-grammar.y"
3956                                                 { last_source_options->use_syslogng_pid = (yyvsp[-1].num); }
3957 #line 3958 "modules/mqtt/mqtt-grammar.c"
3958     break;
3959 
3960   case 93: /* source_option: KW_TAGS '(' string_list ')'  */
3961 #line 1032 "modules/mqtt/mqtt-grammar.y"
3962                                                 { log_source_options_set_tags(last_source_options, (yyvsp[-1].ptr)); }
3963 #line 3964 "modules/mqtt/mqtt-grammar.c"
3964     break;
3965 
3966   case 94: /* $@12: %empty  */
3967 #line 1033 "modules/mqtt/mqtt-grammar.y"
3968           { last_host_resolve_options = &last_source_options->host_resolve_options; }
3969 #line 3970 "modules/mqtt/mqtt-grammar.c"
3970     break;
3971 
3972   case 96: /* host_resolve_option: KW_USE_FQDN '(' yesno ')'  */
3973 #line 1069 "modules/mqtt/mqtt-grammar.y"
3974                                                 { last_host_resolve_options->use_fqdn = (yyvsp[-1].num); }
3975 #line 3976 "modules/mqtt/mqtt-grammar.c"
3976     break;
3977 
3978   case 97: /* host_resolve_option: KW_USE_DNS '(' dnsmode ')'  */
3979 #line 1070 "modules/mqtt/mqtt-grammar.y"
3980                                                 { last_host_resolve_options->use_dns = (yyvsp[-1].num); }
3981 #line 3982 "modules/mqtt/mqtt-grammar.c"
3982     break;
3983 
3984   case 98: /* host_resolve_option: KW_DNS_CACHE '(' yesno ')'  */
3985 #line 1071 "modules/mqtt/mqtt-grammar.y"
3986                                                 { last_host_resolve_options->use_dns_cache = (yyvsp[-1].num); }
3987 #line 3988 "modules/mqtt/mqtt-grammar.c"
3988     break;
3989 
3990   case 99: /* host_resolve_option: KW_NORMALIZE_HOSTNAMES '(' yesno ')'  */
3991 #line 1072 "modules/mqtt/mqtt-grammar.y"
3992                                                 { last_host_resolve_options->normalize_hostnames = (yyvsp[-1].num); }
3993 #line 3994 "modules/mqtt/mqtt-grammar.c"
3994     break;
3995 
3996   case 100: /* msg_format_option: KW_TIME_ZONE '(' string ')'  */
3997 #line 1076 "modules/mqtt/mqtt-grammar.y"
3998                                                 { last_msg_format_options->recv_time_zone = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3999 #line 4000 "modules/mqtt/mqtt-grammar.c"
4000     break;
4001 
4002   case 101: /* msg_format_option: KW_DEFAULT_SEVERITY '(' severity_string ')'  */
4003 #line 1078 "modules/mqtt/mqtt-grammar.y"
4004           {
4005 	    if (last_msg_format_options->default_pri == 0xFFFF)
4006 	      last_msg_format_options->default_pri = LOG_USER;
4007 	    last_msg_format_options->default_pri = (last_msg_format_options->default_pri & ~LOG_PRIMASK) | (yyvsp[-1].num);
4008           }
4009 #line 4010 "modules/mqtt/mqtt-grammar.c"
4010     break;
4011 
4012   case 102: /* msg_format_option: KW_DEFAULT_FACILITY '(' facility_string ')'  */
4013 #line 1084 "modules/mqtt/mqtt-grammar.y"
4014           {
4015 	    if (last_msg_format_options->default_pri == 0xFFFF)
4016 	      last_msg_format_options->default_pri = LOG_NOTICE;
4017 	    last_msg_format_options->default_pri = (last_msg_format_options->default_pri & LOG_PRIMASK) | (yyvsp[-1].num);
4018           }
4019 #line 4020 "modules/mqtt/mqtt-grammar.c"
4020     break;
4021 
4022   case 103: /* template_option: KW_TS_FORMAT '(' string ')'  */
4023 #line 1146 "modules/mqtt/mqtt-grammar.y"
4024                                                 { last_template_options->ts_format = cfg_ts_format_value((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
4025 #line 4026 "modules/mqtt/mqtt-grammar.c"
4026     break;
4027 
4028   case 104: /* template_option: KW_FRAC_DIGITS '(' nonnegative_integer ')'  */
4029 #line 1147 "modules/mqtt/mqtt-grammar.y"
4030                                                         { last_template_options->frac_digits = (yyvsp[-1].num); }
4031 #line 4032 "modules/mqtt/mqtt-grammar.c"
4032     break;
4033 
4034   case 105: /* template_option: KW_TIME_ZONE '(' string ')'  */
4035 #line 1148 "modules/mqtt/mqtt-grammar.y"
4036                                                 { last_template_options->time_zone[LTZ_SEND] = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
4037 #line 4038 "modules/mqtt/mqtt-grammar.c"
4038     break;
4039 
4040   case 106: /* template_option: KW_SEND_TIME_ZONE '(' string ')'  */
4041 #line 1149 "modules/mqtt/mqtt-grammar.y"
4042                                                 { last_template_options->time_zone[LTZ_SEND] = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
4043 #line 4044 "modules/mqtt/mqtt-grammar.c"
4044     break;
4045 
4046   case 107: /* template_option: KW_LOCAL_TIME_ZONE '(' string ')'  */
4047 #line 1150 "modules/mqtt/mqtt-grammar.y"
4048                                                 { last_template_options->time_zone[LTZ_LOCAL] = g_strdup((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
4049 #line 4050 "modules/mqtt/mqtt-grammar.c"
4050     break;
4051 
4052   case 108: /* template_option: KW_ON_ERROR '(' string ')'  */
4053 #line 1152 "modules/mqtt/mqtt-grammar.y"
4054         {
4055           gint on_error;
4056 
4057           CHECK_ERROR(log_template_on_error_parse((yyvsp[-1].cptr), &on_error), (yylsp[-1]), "Invalid on-error() setting \"%s\"", (yyvsp[-1].cptr));
4058           free((yyvsp[-1].cptr));
4059 
4060           log_template_options_set_on_error(last_template_options, on_error);
4061         }
4062 #line 4063 "modules/mqtt/mqtt-grammar.c"
4063     break;
4064 
4065 
4066 #line 4067 "modules/mqtt/mqtt-grammar.c"
4067 
4068       default: break;
4069     }
4070   /* User semantic actions sometimes alter yychar, and that requires
4071      that yytoken be updated with the new translation.  We take the
4072      approach of translating immediately before every use of yytoken.
4073      One alternative is translating here after every semantic action,
4074      but that translation would be missed if the semantic action invokes
4075      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4076      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
4077      incorrect destructor might then be invoked immediately.  In the
4078      case of YYERROR or YYBACKUP, subsequent parser actions might lead
4079      to an incorrect destructor call or verbose syntax error message
4080      before the lookahead is translated.  */
4081   YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
4082 
4083   YYPOPSTACK (yylen);
4084   yylen = 0;
4085 
4086   *++yyvsp = yyval;
4087   *++yylsp = yyloc;
4088 
4089   /* Now 'shift' the result of the reduction.  Determine what state
4090      that goes to, based on the state we popped back to and the rule
4091      number reduced by.  */
4092   {
4093     const int yylhs = yyr1[yyn] - YYNTOKENS;
4094     const int yyi = yypgoto[yylhs] + *yyssp;
4095     yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
4096                ? yytable[yyi]
4097                : yydefgoto[yylhs]);
4098   }
4099 
4100   goto yynewstate;
4101 
4102 
4103 /*--------------------------------------.
4104 | yyerrlab -- here on detecting error.  |
4105 `--------------------------------------*/
4106 yyerrlab:
4107   /* Make sure we have latest lookahead translation.  See comments at
4108      user semantic actions for why this is necessary.  */
4109   yytoken = yychar == MQTT_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
4110   /* If not already recovering from an error, report this error.  */
4111   if (!yyerrstatus)
4112     {
4113       ++yynerrs;
4114       {
4115         yypcontext_t yyctx
4116           = {yyssp, yytoken, &yylloc};
4117         char const *yymsgp = YY_("syntax error");
4118         int yysyntax_error_status;
4119         yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
4120         if (yysyntax_error_status == 0)
4121           yymsgp = yymsg;
4122         else if (yysyntax_error_status == -1)
4123           {
4124             if (yymsg != yymsgbuf)
4125               YYSTACK_FREE (yymsg);
4126             yymsg = YY_CAST (char *,
4127                              YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
4128             if (yymsg)
4129               {
4130                 yysyntax_error_status
4131                   = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
4132                 yymsgp = yymsg;
4133               }
4134             else
4135               {
4136                 yymsg = yymsgbuf;
4137                 yymsg_alloc = sizeof yymsgbuf;
4138                 yysyntax_error_status = YYENOMEM;
4139               }
4140           }
4141         yyerror (&yylloc, lexer, instance, arg, yymsgp);
4142         if (yysyntax_error_status == YYENOMEM)
4143           YYNOMEM;
4144       }
4145     }
4146 
4147   yyerror_range[1] = yylloc;
4148   if (yyerrstatus == 3)
4149     {
4150       /* If just tried and failed to reuse lookahead token after an
4151          error, discard it.  */
4152 
4153       if (yychar <= MQTT_EOF)
4154         {
4155           /* Return failure if at end of input.  */
4156           if (yychar == MQTT_EOF)
4157             YYABORT;
4158         }
4159       else
4160         {
4161           yydestruct ("Error: discarding",
4162                       yytoken, &yylval, &yylloc, lexer, instance, arg);
4163           yychar = MQTT_EMPTY;
4164         }
4165     }
4166 
4167   /* Else will try to reuse lookahead token after shifting the error
4168      token.  */
4169   goto yyerrlab1;
4170 
4171 
4172 /*---------------------------------------------------.
4173 | yyerrorlab -- error raised explicitly by YYERROR.  |
4174 `---------------------------------------------------*/
4175 yyerrorlab:
4176   /* Pacify compilers when the user code never invokes YYERROR and the
4177      label yyerrorlab therefore never appears in user code.  */
4178   if (0)
4179     YYERROR;
4180   ++yynerrs;
4181 
4182   /* Do not reclaim the symbols of the rule whose action triggered
4183      this YYERROR.  */
4184   YYPOPSTACK (yylen);
4185   yylen = 0;
4186   YY_STACK_PRINT (yyss, yyssp);
4187   yystate = *yyssp;
4188   goto yyerrlab1;
4189 
4190 
4191 /*-------------------------------------------------------------.
4192 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
4193 `-------------------------------------------------------------*/
4194 yyerrlab1:
4195   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
4196 
4197   /* Pop stack until we find a state that shifts the error token.  */
4198   for (;;)
4199     {
4200       yyn = yypact[yystate];
4201       if (!yypact_value_is_default (yyn))
4202         {
4203           yyn += YYSYMBOL_YYerror;
4204           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
4205             {
4206               yyn = yytable[yyn];
4207               if (0 < yyn)
4208                 break;
4209             }
4210         }
4211 
4212       /* Pop the current state because it cannot handle the error token.  */
4213       if (yyssp == yyss)
4214         YYABORT;
4215 
4216       yyerror_range[1] = *yylsp;
4217       yydestruct ("Error: popping",
4218                   YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
4219       YYPOPSTACK (1);
4220       yystate = *yyssp;
4221       YY_STACK_PRINT (yyss, yyssp);
4222     }
4223 
4224   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4225   *++yyvsp = yylval;
4226   YY_IGNORE_MAYBE_UNINITIALIZED_END
4227 
4228   yyerror_range[2] = yylloc;
4229   ++yylsp;
4230   YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
4231 
4232   /* Shift the error token.  */
4233   YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
4234 
4235   yystate = yyn;
4236   goto yynewstate;
4237 
4238 
4239 /*-------------------------------------.
4240 | yyacceptlab -- YYACCEPT comes here.  |
4241 `-------------------------------------*/
4242 yyacceptlab:
4243   yyresult = 0;
4244   goto yyreturnlab;
4245 
4246 
4247 /*-----------------------------------.
4248 | yyabortlab -- YYABORT comes here.  |
4249 `-----------------------------------*/
4250 yyabortlab:
4251   yyresult = 1;
4252   goto yyreturnlab;
4253 
4254 
4255 /*-----------------------------------------------------------.
4256 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
4257 `-----------------------------------------------------------*/
4258 yyexhaustedlab:
4259   yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
4260   yyresult = 2;
4261   goto yyreturnlab;
4262 
4263 
4264 /*----------------------------------------------------------.
4265 | yyreturnlab -- parsing is finished, clean up and return.  |
4266 `----------------------------------------------------------*/
4267 yyreturnlab:
4268   if (yychar != MQTT_EMPTY)
4269     {
4270       /* Make sure we have latest lookahead translation.  See comments at
4271          user semantic actions for why this is necessary.  */
4272       yytoken = YYTRANSLATE (yychar);
4273       yydestruct ("Cleanup: discarding lookahead",
4274                   yytoken, &yylval, &yylloc, lexer, instance, arg);
4275     }
4276   /* Do not reclaim the symbols of the rule whose action triggered
4277      this YYABORT or YYACCEPT.  */
4278   YYPOPSTACK (yylen);
4279   YY_STACK_PRINT (yyss, yyssp);
4280   while (yyssp != yyss)
4281     {
4282       yydestruct ("Cleanup: popping",
4283                   YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
4284       YYPOPSTACK (1);
4285     }
4286 #ifndef yyoverflow
4287   if (yyss != yyssa)
4288     YYSTACK_FREE (yyss);
4289 #endif
4290   if (yymsg != yymsgbuf)
4291     YYSTACK_FREE (yymsg);
4292   return yyresult;
4293 }
4294 
4295 #line 1263 "modules/mqtt/mqtt-grammar.y"
4296 
4297