ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.2.x/src/conf_parser.c
(Generate patch)

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 4120 by michael, Tue Jul 1 16:59:39 2014 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.  */
1 > /* A Bison parser, made by GNU Bison 3.0.2.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6 <  
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 >
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 26 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.6.2"
47 > #define YYBISON_VERSION "3.0.2"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 62 | Line 62
62  
63  
64   /* Copy the first part of user declarations.  */
65 < /* Line 336 of yacc.c  */
66 < #line 25 "conf_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68   #define YY_NO_UNPUT
# Line 75 | Line 74
74   #include "ircd.h"
75   #include "list.h"
76   #include "conf.h"
77 + #include "conf_class.h"
78   #include "event.h"
79   #include "log.h"
80   #include "client.h"     /* for UMODE_ALL only */
81   #include "irc_string.h"
82 #include "sprintf_irc.h"
82   #include "memory.h"
83   #include "modules.h"
84 < #include "s_serv.h"
84 > #include "server.h"
85   #include "hostmask.h"
86   #include "send.h"
87   #include "listener.h"
88   #include "resv.h"
89   #include "numeric.h"
90 < #include "s_user.h"
90 > #include "user.h"
91 > #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
94   #include <openssl/rsa.h>
# Line 97 | Line 97
97   #include <openssl/dh.h>
98   #endif
99  
100 < int yylex(void);
100 > #include "rsa.h"
101  
102 < static char *class_name = NULL;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static unsigned int listener_flags = 0;
111 < static unsigned int regex_ban = 0;
112 < static char userbuf[IRCD_BUFSIZE];
113 < static char hostbuf[IRCD_BUFSIZE];
114 < static char reasonbuf[REASONLEN + 1];
115 < static char gecos_name[REALLEN * 4];
116 < static char lfile[IRCD_BUFSIZE];
117 < static unsigned int ltype = 0;
118 < static unsigned int lsize = 0;
119 < static char *resv_reason = NULL;
120 < static char *listener_address = NULL;
102 > int yylex(void);
103  
104 < struct CollectItem
104 > static struct
105   {
106 <  dlink_node node;
107 <  char *name;
108 <  char *user;
109 <  char *host;
110 <  char *passwd;
111 <  int  port;
112 <  int  flags;
113 < #ifdef HAVE_LIBCRYPTO
114 <  char *rsa_public_key_file;
115 <  RSA *rsa_public_key;
116 < #endif
117 < };
106 >  struct
107 >  {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct
114 >  {
115 >    char buf[IRCD_BUFSIZE];
116 >  } name,
117 >    user,
118 >    host,
119 >    addr,
120 >    bind,
121 >    file,
122 >    ciph,
123 >    cert,
124 >    rpass,
125 >    spass,
126 >    class;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip,
139 >    con_freq,
140 >    min_idle,
141 >    max_idle,
142 >    max_total,
143 >    max_global,
144 >    max_local,
145 >    max_ident,
146 >    max_sendq,
147 >    max_recvq,
148 >    max_channels,
149 >    cidr_bitlen_ipv4,
150 >    cidr_bitlen_ipv6,
151 >    number_per_cidr;
152 > } block_state;
153  
154   static void
155 < free_collect_item(struct CollectItem *item)
155 > reset_block_state(void)
156   {
157 <  MyFree(item->name);
158 <  MyFree(item->user);
159 <  MyFree(item->host);
160 <  MyFree(item->passwd);
161 < #ifdef HAVE_LIBCRYPTO
162 <  MyFree(item->rsa_public_key_file);
163 < #endif
164 <  MyFree(item);
157 >  dlink_node *ptr = NULL, *ptr_next = NULL;
158 >
159 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
160 >  {
161 >    MyFree(ptr->data);
162 >    dlinkDelete(ptr, &block_state.mask.list);
163 >    free_dlink_node(ptr);
164 >  }
165 >
166 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
167 >  {
168 >    MyFree(ptr->data);
169 >    dlinkDelete(ptr, &block_state.leaf.list);
170 >    free_dlink_node(ptr);
171 >  }
172 >
173 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
174 >  {
175 >    MyFree(ptr->data);
176 >    dlinkDelete(ptr, &block_state.hub.list);
177 >    free_dlink_node(ptr);
178 >  }
179 >
180 >  memset(&block_state, 0, sizeof(block_state));
181   }
182  
183  
184 < /* Line 336 of yacc.c  */
152 < #line 153 "conf_parser.c"
184 > #line 185 "conf_parser.c" /* yacc.c:339  */
185  
186 < # ifndef YY_NULL
186 > # ifndef YY_NULLPTR
187   #  if defined __cplusplus && 201103L <= __cplusplus
188 < #   define YY_NULL nullptr
188 > #   define YY_NULLPTR nullptr
189   #  else
190 < #   define YY_NULL 0
190 > #   define YY_NULLPTR 0
191   #  endif
192   # endif
193  
# Line 169 | Line 201 | free_collect_item(struct CollectItem *it
201  
202   /* In a future release of Bison, this section will be replaced
203     by #include "y.tab.h".  */
204 < #ifndef YY_Y_TAB_H
205 < # define YY_Y_TAB_H
206 < /* Enabling traces.  */
204 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
205 > # define YY_YY_CONF_PARSER_H_INCLUDED
206 > /* Debug traces.  */
207   #ifndef YYDEBUG
208   # define YYDEBUG 0
209   #endif
# Line 179 | Line 211 | free_collect_item(struct CollectItem *it
211   extern int yydebug;
212   #endif
213  
214 < /* Tokens.  */
214 > /* Token type.  */
215   #ifndef YYTOKENTYPE
216   # define YYTOKENTYPE
217 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
218 <      know about them.  */
219 <   enum yytokentype {
220 <     ACCEPT_PASSWORD = 258,
221 <     ADMIN = 259,
222 <     AFTYPE = 260,
223 <     ANTI_NICK_FLOOD = 261,
224 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
225 <     AUTOCONN = 263,
226 <     BYTES = 264,
227 <     KBYTES = 265,
228 <     MBYTES = 266,
229 <     CALLER_ID_WAIT = 267,
230 <     CAN_FLOOD = 268,
231 <     CHANNEL = 269,
232 <     CIDR_BITLEN_IPV4 = 270,
233 <     CIDR_BITLEN_IPV6 = 271,
234 <     CLASS = 272,
235 <     CONNECT = 273,
236 <     CONNECTFREQ = 274,
237 <     DEFAULT_FLOODCOUNT = 275,
238 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
239 <     DEFAULT_SPLIT_USER_COUNT = 277,
240 <     DENY = 278,
241 <     DESCRIPTION = 279,
242 <     DIE = 280,
243 <     DISABLE_AUTH = 281,
244 <     DISABLE_FAKE_CHANNELS = 282,
245 <     DISABLE_REMOTE_COMMANDS = 283,
246 <     DOTS_IN_IDENT = 284,
247 <     EGDPOOL_PATH = 285,
248 <     EMAIL = 286,
249 <     ENCRYPTED = 287,
250 <     EXCEED_LIMIT = 288,
251 <     EXEMPT = 289,
252 <     FAILED_OPER_NOTICE = 290,
253 <     IRCD_FLAGS = 291,
254 <     FLATTEN_LINKS = 292,
255 <     GECOS = 293,
256 <     GENERAL = 294,
257 <     GLINE = 295,
258 <     GLINE_DURATION = 296,
259 <     GLINE_ENABLE = 297,
260 <     GLINE_EXEMPT = 298,
261 <     GLINE_REQUEST_DURATION = 299,
262 <     GLINE_MIN_CIDR = 300,
263 <     GLINE_MIN_CIDR6 = 301,
264 <     GLOBAL_KILL = 302,
265 <     IRCD_AUTH = 303,
266 <     NEED_IDENT = 304,
267 <     HAVENT_READ_CONF = 305,
268 <     HIDDEN = 306,
269 <     HIDDEN_NAME = 307,
270 <     HIDE_SERVER_IPS = 308,
271 <     HIDE_SERVERS = 309,
272 <     HIDE_SPOOF_IPS = 310,
273 <     HOST = 311,
274 <     HUB = 312,
275 <     HUB_MASK = 313,
276 <     IGNORE_BOGUS_TS = 314,
277 <     INVISIBLE_ON_CONNECT = 315,
278 <     IP = 316,
279 <     KILL = 317,
280 <     KILL_CHASE_TIME_LIMIT = 318,
281 <     KLINE = 319,
282 <     KLINE_EXEMPT = 320,
283 <     KNOCK_DELAY = 321,
284 <     KNOCK_DELAY_CHANNEL = 322,
285 <     LEAF_MASK = 323,
286 <     LINKS_DELAY = 324,
287 <     LISTEN = 325,
288 <     T_LOG = 326,
289 <     MAX_ACCEPT = 327,
290 <     MAX_BANS = 328,
291 <     MAX_CHANS_PER_OPER = 329,
292 <     MAX_CHANS_PER_USER = 330,
293 <     MAX_GLOBAL = 331,
294 <     MAX_IDENT = 332,
295 <     MAX_LOCAL = 333,
296 <     MAX_NICK_CHANGES = 334,
297 <     MAX_NICK_TIME = 335,
298 <     MAX_NUMBER = 336,
299 <     MAX_TARGETS = 337,
300 <     MAX_WATCH = 338,
301 <     MESSAGE_LOCALE = 339,
302 <     MIN_NONWILDCARD = 340,
303 <     MIN_NONWILDCARD_SIMPLE = 341,
304 <     MODULE = 342,
305 <     MODULES = 343,
306 <     NAME = 344,
307 <     NEED_PASSWORD = 345,
308 <     NETWORK_DESC = 346,
309 <     NETWORK_NAME = 347,
310 <     NICK = 348,
311 <     NICK_CHANGES = 349,
312 <     NO_CREATE_ON_SPLIT = 350,
313 <     NO_JOIN_ON_SPLIT = 351,
314 <     NO_OPER_FLOOD = 352,
315 <     NO_TILDE = 353,
316 <     NUMBER = 354,
317 <     NUMBER_PER_CIDR = 355,
318 <     NUMBER_PER_IP = 356,
319 <     OPERATOR = 357,
320 <     OPERS_BYPASS_CALLERID = 358,
321 <     OPER_ONLY_UMODES = 359,
322 <     OPER_PASS_RESV = 360,
323 <     OPER_SPY_T = 361,
324 <     OPER_UMODES = 362,
325 <     JOIN_FLOOD_COUNT = 363,
326 <     JOIN_FLOOD_TIME = 364,
327 <     PACE_WAIT = 365,
328 <     PACE_WAIT_SIMPLE = 366,
329 <     PASSWORD = 367,
330 <     PATH = 368,
331 <     PING_COOKIE = 369,
332 <     PING_TIME = 370,
333 <     PING_WARNING = 371,
334 <     PORT = 372,
335 <     QSTRING = 373,
336 <     QUIET_ON_BAN = 374,
337 <     REASON = 375,
338 <     REDIRPORT = 376,
339 <     REDIRSERV = 377,
340 <     REGEX_T = 378,
341 <     REHASH = 379,
342 <     REMOTE = 380,
343 <     REMOTEBAN = 381,
344 <     RESTRICT_CHANNELS = 382,
345 <     RSA_PRIVATE_KEY_FILE = 383,
346 <     RSA_PUBLIC_KEY_FILE = 384,
347 <     SSL_CERTIFICATE_FILE = 385,
348 <     SSL_DH_PARAM_FILE = 386,
349 <     T_SSL_CLIENT_METHOD = 387,
350 <     T_SSL_SERVER_METHOD = 388,
351 <     T_SSLV3 = 389,
352 <     T_TLSV1 = 390,
353 <     RESV = 391,
354 <     RESV_EXEMPT = 392,
355 <     SECONDS = 393,
356 <     MINUTES = 394,
357 <     HOURS = 395,
358 <     DAYS = 396,
359 <     WEEKS = 397,
360 <     SENDQ = 398,
361 <     SEND_PASSWORD = 399,
362 <     SERVERHIDE = 400,
363 <     SERVERINFO = 401,
364 <     IRCD_SID = 402,
365 <     TKLINE_EXPIRE_NOTICES = 403,
366 <     T_SHARED = 404,
367 <     T_CLUSTER = 405,
368 <     TYPE = 406,
369 <     SHORT_MOTD = 407,
370 <     SPOOF = 408,
371 <     SPOOF_NOTICE = 409,
372 <     STATS_E_DISABLED = 410,
373 <     STATS_I_OPER_ONLY = 411,
374 <     STATS_K_OPER_ONLY = 412,
375 <     STATS_O_OPER_ONLY = 413,
376 <     STATS_P_OPER_ONLY = 414,
377 <     TBOOL = 415,
378 <     TMASKED = 416,
379 <     TS_MAX_DELTA = 417,
380 <     TS_WARN_DELTA = 418,
381 <     TWODOTS = 419,
382 <     T_ALL = 420,
383 <     T_BOTS = 421,
384 <     T_SOFTCALLERID = 422,
385 <     T_CALLERID = 423,
386 <     T_CCONN = 424,
387 <     T_CCONN_FULL = 425,
388 <     T_SSL_CIPHER_LIST = 426,
389 <     T_DEAF = 427,
390 <     T_DEBUG = 428,
391 <     T_DLINE = 429,
392 <     T_EXTERNAL = 430,
393 <     T_FULL = 431,
394 <     T_INVISIBLE = 432,
395 <     T_IPV4 = 433,
396 <     T_IPV6 = 434,
397 <     T_LOCOPS = 435,
398 <     T_MAX_CLIENTS = 436,
399 <     T_NCHANGE = 437,
400 <     T_OPERWALL = 438,
401 <     T_RECVQ = 439,
402 <     T_REJ = 440,
403 <     T_SERVER = 441,
404 <     T_SERVNOTICE = 442,
405 <     T_SET = 443,
406 <     T_SKILL = 444,
407 <     T_SPY = 445,
408 <     T_SSL = 446,
409 <     T_UMODES = 447,
410 <     T_UNAUTH = 448,
411 <     T_UNDLINE = 449,
412 <     T_UNLIMITED = 450,
413 <     T_UNRESV = 451,
414 <     T_UNXLINE = 452,
415 <     T_GLOBOPS = 453,
416 <     T_WALLOP = 454,
417 <     T_RESTART = 455,
418 <     T_SERVICE = 456,
419 <     T_SERVICES_NAME = 457,
420 <     THROTTLE_TIME = 458,
421 <     TRUE_NO_OPER_FLOOD = 459,
422 <     UNKLINE = 460,
423 <     USER = 461,
424 <     USE_EGD = 462,
425 <     USE_LOGGING = 463,
426 <     VHOST = 464,
427 <     VHOST6 = 465,
428 <     XLINE = 466,
429 <     WARN_NO_NLINE = 467,
430 <     T_SIZE = 468,
431 <     T_FILE = 469
432 <   };
217 >  enum yytokentype
218 >  {
219 >    ACCEPT_PASSWORD = 258,
220 >    ADMIN = 259,
221 >    AFTYPE = 260,
222 >    ANTI_NICK_FLOOD = 261,
223 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 >    AUTOCONN = 263,
225 >    BYTES = 264,
226 >    KBYTES = 265,
227 >    MBYTES = 266,
228 >    CALLER_ID_WAIT = 267,
229 >    CAN_FLOOD = 268,
230 >    CHANNEL = 269,
231 >    CIDR_BITLEN_IPV4 = 270,
232 >    CIDR_BITLEN_IPV6 = 271,
233 >    CLASS = 272,
234 >    CONNECT = 273,
235 >    CONNECTFREQ = 274,
236 >    CYCLE_ON_HOST_CHANGE = 275,
237 >    DEFAULT_FLOODCOUNT = 276,
238 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
239 >    DEFAULT_SPLIT_USER_COUNT = 278,
240 >    DENY = 279,
241 >    DESCRIPTION = 280,
242 >    DIE = 281,
243 >    DISABLE_AUTH = 282,
244 >    DISABLE_FAKE_CHANNELS = 283,
245 >    DISABLE_REMOTE_COMMANDS = 284,
246 >    DOTS_IN_IDENT = 285,
247 >    EGDPOOL_PATH = 286,
248 >    EMAIL = 287,
249 >    ENCRYPTED = 288,
250 >    EXCEED_LIMIT = 289,
251 >    EXEMPT = 290,
252 >    FAILED_OPER_NOTICE = 291,
253 >    FLATTEN_LINKS = 292,
254 >    GECOS = 293,
255 >    GENERAL = 294,
256 >    GLINE = 295,
257 >    GLINE_DURATION = 296,
258 >    GLINE_ENABLE = 297,
259 >    GLINE_EXEMPT = 298,
260 >    GLINE_MIN_CIDR = 299,
261 >    GLINE_MIN_CIDR6 = 300,
262 >    GLINE_REQUEST_DURATION = 301,
263 >    GLOBAL_KILL = 302,
264 >    HAVENT_READ_CONF = 303,
265 >    HIDDEN = 304,
266 >    HIDDEN_NAME = 305,
267 >    HIDE_CHANS = 306,
268 >    HIDE_IDLE = 307,
269 >    HIDE_IDLE_FROM_OPERS = 308,
270 >    HIDE_SERVER_IPS = 309,
271 >    HIDE_SERVERS = 310,
272 >    HIDE_SERVICES = 311,
273 >    HIDE_SPOOF_IPS = 312,
274 >    HOST = 313,
275 >    HUB = 314,
276 >    HUB_MASK = 315,
277 >    IGNORE_BOGUS_TS = 316,
278 >    INVISIBLE_ON_CONNECT = 317,
279 >    INVITE_CLIENT_COUNT = 318,
280 >    INVITE_CLIENT_TIME = 319,
281 >    IP = 320,
282 >    IRCD_AUTH = 321,
283 >    IRCD_FLAGS = 322,
284 >    IRCD_SID = 323,
285 >    JOIN_FLOOD_COUNT = 324,
286 >    JOIN_FLOOD_TIME = 325,
287 >    KILL = 326,
288 >    KILL_CHASE_TIME_LIMIT = 327,
289 >    KLINE = 328,
290 >    KLINE_EXEMPT = 329,
291 >    KNOCK_CLIENT_COUNT = 330,
292 >    KNOCK_CLIENT_TIME = 331,
293 >    KNOCK_DELAY_CHANNEL = 332,
294 >    LEAF_MASK = 333,
295 >    LINKS_DELAY = 334,
296 >    LISTEN = 335,
297 >    MASK = 336,
298 >    MAX_ACCEPT = 337,
299 >    MAX_BANS = 338,
300 >    MAX_CHANNELS = 339,
301 >    MAX_GLOBAL = 340,
302 >    MAX_IDENT = 341,
303 >    MAX_IDLE = 342,
304 >    MAX_LOCAL = 343,
305 >    MAX_NICK_CHANGES = 344,
306 >    MAX_NICK_LENGTH = 345,
307 >    MAX_NICK_TIME = 346,
308 >    MAX_NUMBER = 347,
309 >    MAX_TARGETS = 348,
310 >    MAX_TOPIC_LENGTH = 349,
311 >    MAX_WATCH = 350,
312 >    MIN_IDLE = 351,
313 >    MIN_NONWILDCARD = 352,
314 >    MIN_NONWILDCARD_SIMPLE = 353,
315 >    MODULE = 354,
316 >    MODULES = 355,
317 >    MOTD = 356,
318 >    NAME = 357,
319 >    NEED_IDENT = 358,
320 >    NEED_PASSWORD = 359,
321 >    NETWORK_DESC = 360,
322 >    NETWORK_NAME = 361,
323 >    NICK = 362,
324 >    NO_CREATE_ON_SPLIT = 363,
325 >    NO_JOIN_ON_SPLIT = 364,
326 >    NO_OPER_FLOOD = 365,
327 >    NO_TILDE = 366,
328 >    NUMBER = 367,
329 >    NUMBER_PER_CIDR = 368,
330 >    NUMBER_PER_IP = 369,
331 >    OPER_ONLY_UMODES = 370,
332 >    OPER_PASS_RESV = 371,
333 >    OPER_UMODES = 372,
334 >    OPERATOR = 373,
335 >    OPERS_BYPASS_CALLERID = 374,
336 >    PACE_WAIT = 375,
337 >    PACE_WAIT_SIMPLE = 376,
338 >    PASSWORD = 377,
339 >    PATH = 378,
340 >    PING_COOKIE = 379,
341 >    PING_TIME = 380,
342 >    PORT = 381,
343 >    QSTRING = 382,
344 >    RANDOM_IDLE = 383,
345 >    REASON = 384,
346 >    REDIRPORT = 385,
347 >    REDIRSERV = 386,
348 >    REHASH = 387,
349 >    REMOTE = 388,
350 >    REMOTEBAN = 389,
351 >    RESV = 390,
352 >    RESV_EXEMPT = 391,
353 >    RSA_PRIVATE_KEY_FILE = 392,
354 >    RSA_PUBLIC_KEY_FILE = 393,
355 >    SECONDS = 394,
356 >    MINUTES = 395,
357 >    HOURS = 396,
358 >    DAYS = 397,
359 >    WEEKS = 398,
360 >    MONTHS = 399,
361 >    YEARS = 400,
362 >    SEND_PASSWORD = 401,
363 >    SENDQ = 402,
364 >    SERVERHIDE = 403,
365 >    SERVERINFO = 404,
366 >    SHORT_MOTD = 405,
367 >    SPOOF = 406,
368 >    SPOOF_NOTICE = 407,
369 >    SQUIT = 408,
370 >    SSL_CERTIFICATE_FILE = 409,
371 >    SSL_CERTIFICATE_FINGERPRINT = 410,
372 >    SSL_CONNECTION_REQUIRED = 411,
373 >    SSL_DH_ELLIPTIC_CURVE = 412,
374 >    SSL_DH_PARAM_FILE = 413,
375 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
376 >    STATS_E_DISABLED = 415,
377 >    STATS_I_OPER_ONLY = 416,
378 >    STATS_K_OPER_ONLY = 417,
379 >    STATS_O_OPER_ONLY = 418,
380 >    STATS_P_OPER_ONLY = 419,
381 >    STATS_U_OPER_ONLY = 420,
382 >    T_ALL = 421,
383 >    T_BOTS = 422,
384 >    T_CALLERID = 423,
385 >    T_CCONN = 424,
386 >    T_CLUSTER = 425,
387 >    T_DEAF = 426,
388 >    T_DEBUG = 427,
389 >    T_DLINE = 428,
390 >    T_EXTERNAL = 429,
391 >    T_FARCONNECT = 430,
392 >    T_FILE = 431,
393 >    T_FULL = 432,
394 >    T_GLOBOPS = 433,
395 >    T_INVISIBLE = 434,
396 >    T_IPV4 = 435,
397 >    T_IPV6 = 436,
398 >    T_LOCOPS = 437,
399 >    T_LOG = 438,
400 >    T_MAX_CLIENTS = 439,
401 >    T_NCHANGE = 440,
402 >    T_NONONREG = 441,
403 >    T_RECVQ = 442,
404 >    T_REJ = 443,
405 >    T_RESTART = 444,
406 >    T_SERVER = 445,
407 >    T_SERVICE = 446,
408 >    T_SERVICES_NAME = 447,
409 >    T_SERVNOTICE = 448,
410 >    T_SET = 449,
411 >    T_SHARED = 450,
412 >    T_SIZE = 451,
413 >    T_SKILL = 452,
414 >    T_SOFTCALLERID = 453,
415 >    T_SPY = 454,
416 >    T_SSL = 455,
417 >    T_SSL_CIPHER_LIST = 456,
418 >    T_SSL_CLIENT_METHOD = 457,
419 >    T_SSL_SERVER_METHOD = 458,
420 >    T_SSLV3 = 459,
421 >    T_TLSV1 = 460,
422 >    T_UMODES = 461,
423 >    T_UNAUTH = 462,
424 >    T_UNDLINE = 463,
425 >    T_UNLIMITED = 464,
426 >    T_UNRESV = 465,
427 >    T_UNXLINE = 466,
428 >    T_WALLOP = 467,
429 >    T_WALLOPS = 468,
430 >    T_WEBIRC = 469,
431 >    TBOOL = 470,
432 >    THROTTLE_COUNT = 471,
433 >    THROTTLE_TIME = 472,
434 >    TKLINE_EXPIRE_NOTICES = 473,
435 >    TMASKED = 474,
436 >    TRUE_NO_OPER_FLOOD = 475,
437 >    TS_MAX_DELTA = 476,
438 >    TS_WARN_DELTA = 477,
439 >    TWODOTS = 478,
440 >    TYPE = 479,
441 >    UNKLINE = 480,
442 >    USE_EGD = 481,
443 >    USE_LOGGING = 482,
444 >    USER = 483,
445 >    VHOST = 484,
446 >    VHOST6 = 485,
447 >    WARN_NO_CONNECT_BLOCK = 486,
448 >    XLINE = 487
449 >  };
450   #endif
451   /* Tokens.  */
452   #define ACCEPT_PASSWORD 258
# Line 417 | Line 466 | extern int yydebug;
466   #define CLASS 272
467   #define CONNECT 273
468   #define CONNECTFREQ 274
469 < #define DEFAULT_FLOODCOUNT 275
470 < #define DEFAULT_SPLIT_SERVER_COUNT 276
471 < #define DEFAULT_SPLIT_USER_COUNT 277
472 < #define DENY 278
473 < #define DESCRIPTION 279
474 < #define DIE 280
475 < #define DISABLE_AUTH 281
476 < #define DISABLE_FAKE_CHANNELS 282
477 < #define DISABLE_REMOTE_COMMANDS 283
478 < #define DOTS_IN_IDENT 284
479 < #define EGDPOOL_PATH 285
480 < #define EMAIL 286
481 < #define ENCRYPTED 287
482 < #define EXCEED_LIMIT 288
483 < #define EXEMPT 289
484 < #define FAILED_OPER_NOTICE 290
485 < #define IRCD_FLAGS 291
469 > #define CYCLE_ON_HOST_CHANGE 275
470 > #define DEFAULT_FLOODCOUNT 276
471 > #define DEFAULT_SPLIT_SERVER_COUNT 277
472 > #define DEFAULT_SPLIT_USER_COUNT 278
473 > #define DENY 279
474 > #define DESCRIPTION 280
475 > #define DIE 281
476 > #define DISABLE_AUTH 282
477 > #define DISABLE_FAKE_CHANNELS 283
478 > #define DISABLE_REMOTE_COMMANDS 284
479 > #define DOTS_IN_IDENT 285
480 > #define EGDPOOL_PATH 286
481 > #define EMAIL 287
482 > #define ENCRYPTED 288
483 > #define EXCEED_LIMIT 289
484 > #define EXEMPT 290
485 > #define FAILED_OPER_NOTICE 291
486   #define FLATTEN_LINKS 292
487   #define GECOS 293
488   #define GENERAL 294
# Line 441 | Line 490 | extern int yydebug;
490   #define GLINE_DURATION 296
491   #define GLINE_ENABLE 297
492   #define GLINE_EXEMPT 298
493 < #define GLINE_REQUEST_DURATION 299
494 < #define GLINE_MIN_CIDR 300
495 < #define GLINE_MIN_CIDR6 301
493 > #define GLINE_MIN_CIDR 299
494 > #define GLINE_MIN_CIDR6 300
495 > #define GLINE_REQUEST_DURATION 301
496   #define GLOBAL_KILL 302
497 < #define IRCD_AUTH 303
498 < #define NEED_IDENT 304
499 < #define HAVENT_READ_CONF 305
500 < #define HIDDEN 306
501 < #define HIDDEN_NAME 307
502 < #define HIDE_SERVER_IPS 308
503 < #define HIDE_SERVERS 309
504 < #define HIDE_SPOOF_IPS 310
505 < #define HOST 311
506 < #define HUB 312
507 < #define HUB_MASK 313
508 < #define IGNORE_BOGUS_TS 314
509 < #define INVISIBLE_ON_CONNECT 315
510 < #define IP 316
511 < #define KILL 317
512 < #define KILL_CHASE_TIME_LIMIT 318
513 < #define KLINE 319
514 < #define KLINE_EXEMPT 320
515 < #define KNOCK_DELAY 321
516 < #define KNOCK_DELAY_CHANNEL 322
517 < #define LEAF_MASK 323
518 < #define LINKS_DELAY 324
519 < #define LISTEN 325
520 < #define T_LOG 326
521 < #define MAX_ACCEPT 327
522 < #define MAX_BANS 328
523 < #define MAX_CHANS_PER_OPER 329
524 < #define MAX_CHANS_PER_USER 330
525 < #define MAX_GLOBAL 331
526 < #define MAX_IDENT 332
527 < #define MAX_LOCAL 333
528 < #define MAX_NICK_CHANGES 334
529 < #define MAX_NICK_TIME 335
530 < #define MAX_NUMBER 336
531 < #define MAX_TARGETS 337
532 < #define MAX_WATCH 338
533 < #define MESSAGE_LOCALE 339
534 < #define MIN_NONWILDCARD 340
535 < #define MIN_NONWILDCARD_SIMPLE 341
536 < #define MODULE 342
537 < #define MODULES 343
538 < #define NAME 344
539 < #define NEED_PASSWORD 345
540 < #define NETWORK_DESC 346
541 < #define NETWORK_NAME 347
542 < #define NICK 348
543 < #define NICK_CHANGES 349
544 < #define NO_CREATE_ON_SPLIT 350
545 < #define NO_JOIN_ON_SPLIT 351
546 < #define NO_OPER_FLOOD 352
547 < #define NO_TILDE 353
548 < #define NUMBER 354
549 < #define NUMBER_PER_CIDR 355
550 < #define NUMBER_PER_IP 356
551 < #define OPERATOR 357
552 < #define OPERS_BYPASS_CALLERID 358
553 < #define OPER_ONLY_UMODES 359
554 < #define OPER_PASS_RESV 360
555 < #define OPER_SPY_T 361
556 < #define OPER_UMODES 362
557 < #define JOIN_FLOOD_COUNT 363
558 < #define JOIN_FLOOD_TIME 364
559 < #define PACE_WAIT 365
560 < #define PACE_WAIT_SIMPLE 366
561 < #define PASSWORD 367
562 < #define PATH 368
563 < #define PING_COOKIE 369
564 < #define PING_TIME 370
565 < #define PING_WARNING 371
566 < #define PORT 372
567 < #define QSTRING 373
568 < #define QUIET_ON_BAN 374
569 < #define REASON 375
570 < #define REDIRPORT 376
571 < #define REDIRSERV 377
572 < #define REGEX_T 378
573 < #define REHASH 379
574 < #define REMOTE 380
575 < #define REMOTEBAN 381
576 < #define RESTRICT_CHANNELS 382
577 < #define RSA_PRIVATE_KEY_FILE 383
578 < #define RSA_PUBLIC_KEY_FILE 384
579 < #define SSL_CERTIFICATE_FILE 385
580 < #define SSL_DH_PARAM_FILE 386
581 < #define T_SSL_CLIENT_METHOD 387
582 < #define T_SSL_SERVER_METHOD 388
583 < #define T_SSLV3 389
584 < #define T_TLSV1 390
585 < #define RESV 391
586 < #define RESV_EXEMPT 392
587 < #define SECONDS 393
588 < #define MINUTES 394
589 < #define HOURS 395
590 < #define DAYS 396
591 < #define WEEKS 397
592 < #define SENDQ 398
593 < #define SEND_PASSWORD 399
594 < #define SERVERHIDE 400
595 < #define SERVERINFO 401
596 < #define IRCD_SID 402
597 < #define TKLINE_EXPIRE_NOTICES 403
598 < #define T_SHARED 404
599 < #define T_CLUSTER 405
600 < #define TYPE 406
601 < #define SHORT_MOTD 407
602 < #define SPOOF 408
603 < #define SPOOF_NOTICE 409
604 < #define STATS_E_DISABLED 410
605 < #define STATS_I_OPER_ONLY 411
606 < #define STATS_K_OPER_ONLY 412
607 < #define STATS_O_OPER_ONLY 413
608 < #define STATS_P_OPER_ONLY 414
609 < #define TBOOL 415
610 < #define TMASKED 416
611 < #define TS_MAX_DELTA 417
612 < #define TS_WARN_DELTA 418
613 < #define TWODOTS 419
614 < #define T_ALL 420
615 < #define T_BOTS 421
616 < #define T_SOFTCALLERID 422
497 > #define HAVENT_READ_CONF 303
498 > #define HIDDEN 304
499 > #define HIDDEN_NAME 305
500 > #define HIDE_CHANS 306
501 > #define HIDE_IDLE 307
502 > #define HIDE_IDLE_FROM_OPERS 308
503 > #define HIDE_SERVER_IPS 309
504 > #define HIDE_SERVERS 310
505 > #define HIDE_SERVICES 311
506 > #define HIDE_SPOOF_IPS 312
507 > #define HOST 313
508 > #define HUB 314
509 > #define HUB_MASK 315
510 > #define IGNORE_BOGUS_TS 316
511 > #define INVISIBLE_ON_CONNECT 317
512 > #define INVITE_CLIENT_COUNT 318
513 > #define INVITE_CLIENT_TIME 319
514 > #define IP 320
515 > #define IRCD_AUTH 321
516 > #define IRCD_FLAGS 322
517 > #define IRCD_SID 323
518 > #define JOIN_FLOOD_COUNT 324
519 > #define JOIN_FLOOD_TIME 325
520 > #define KILL 326
521 > #define KILL_CHASE_TIME_LIMIT 327
522 > #define KLINE 328
523 > #define KLINE_EXEMPT 329
524 > #define KNOCK_CLIENT_COUNT 330
525 > #define KNOCK_CLIENT_TIME 331
526 > #define KNOCK_DELAY_CHANNEL 332
527 > #define LEAF_MASK 333
528 > #define LINKS_DELAY 334
529 > #define LISTEN 335
530 > #define MASK 336
531 > #define MAX_ACCEPT 337
532 > #define MAX_BANS 338
533 > #define MAX_CHANNELS 339
534 > #define MAX_GLOBAL 340
535 > #define MAX_IDENT 341
536 > #define MAX_IDLE 342
537 > #define MAX_LOCAL 343
538 > #define MAX_NICK_CHANGES 344
539 > #define MAX_NICK_LENGTH 345
540 > #define MAX_NICK_TIME 346
541 > #define MAX_NUMBER 347
542 > #define MAX_TARGETS 348
543 > #define MAX_TOPIC_LENGTH 349
544 > #define MAX_WATCH 350
545 > #define MIN_IDLE 351
546 > #define MIN_NONWILDCARD 352
547 > #define MIN_NONWILDCARD_SIMPLE 353
548 > #define MODULE 354
549 > #define MODULES 355
550 > #define MOTD 356
551 > #define NAME 357
552 > #define NEED_IDENT 358
553 > #define NEED_PASSWORD 359
554 > #define NETWORK_DESC 360
555 > #define NETWORK_NAME 361
556 > #define NICK 362
557 > #define NO_CREATE_ON_SPLIT 363
558 > #define NO_JOIN_ON_SPLIT 364
559 > #define NO_OPER_FLOOD 365
560 > #define NO_TILDE 366
561 > #define NUMBER 367
562 > #define NUMBER_PER_CIDR 368
563 > #define NUMBER_PER_IP 369
564 > #define OPER_ONLY_UMODES 370
565 > #define OPER_PASS_RESV 371
566 > #define OPER_UMODES 372
567 > #define OPERATOR 373
568 > #define OPERS_BYPASS_CALLERID 374
569 > #define PACE_WAIT 375
570 > #define PACE_WAIT_SIMPLE 376
571 > #define PASSWORD 377
572 > #define PATH 378
573 > #define PING_COOKIE 379
574 > #define PING_TIME 380
575 > #define PORT 381
576 > #define QSTRING 382
577 > #define RANDOM_IDLE 383
578 > #define REASON 384
579 > #define REDIRPORT 385
580 > #define REDIRSERV 386
581 > #define REHASH 387
582 > #define REMOTE 388
583 > #define REMOTEBAN 389
584 > #define RESV 390
585 > #define RESV_EXEMPT 391
586 > #define RSA_PRIVATE_KEY_FILE 392
587 > #define RSA_PUBLIC_KEY_FILE 393
588 > #define SECONDS 394
589 > #define MINUTES 395
590 > #define HOURS 396
591 > #define DAYS 397
592 > #define WEEKS 398
593 > #define MONTHS 399
594 > #define YEARS 400
595 > #define SEND_PASSWORD 401
596 > #define SENDQ 402
597 > #define SERVERHIDE 403
598 > #define SERVERINFO 404
599 > #define SHORT_MOTD 405
600 > #define SPOOF 406
601 > #define SPOOF_NOTICE 407
602 > #define SQUIT 408
603 > #define SSL_CERTIFICATE_FILE 409
604 > #define SSL_CERTIFICATE_FINGERPRINT 410
605 > #define SSL_CONNECTION_REQUIRED 411
606 > #define SSL_DH_ELLIPTIC_CURVE 412
607 > #define SSL_DH_PARAM_FILE 413
608 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
609 > #define STATS_E_DISABLED 415
610 > #define STATS_I_OPER_ONLY 416
611 > #define STATS_K_OPER_ONLY 417
612 > #define STATS_O_OPER_ONLY 418
613 > #define STATS_P_OPER_ONLY 419
614 > #define STATS_U_OPER_ONLY 420
615 > #define T_ALL 421
616 > #define T_BOTS 422
617   #define T_CALLERID 423
618   #define T_CCONN 424
619 < #define T_CCONN_FULL 425
620 < #define T_SSL_CIPHER_LIST 426
621 < #define T_DEAF 427
622 < #define T_DEBUG 428
623 < #define T_DLINE 429
624 < #define T_EXTERNAL 430
625 < #define T_FULL 431
626 < #define T_INVISIBLE 432
627 < #define T_IPV4 433
628 < #define T_IPV6 434
629 < #define T_LOCOPS 435
630 < #define T_MAX_CLIENTS 436
631 < #define T_NCHANGE 437
632 < #define T_OPERWALL 438
633 < #define T_RECVQ 439
634 < #define T_REJ 440
635 < #define T_SERVER 441
636 < #define T_SERVNOTICE 442
637 < #define T_SET 443
638 < #define T_SKILL 444
639 < #define T_SPY 445
640 < #define T_SSL 446
641 < #define T_UMODES 447
642 < #define T_UNAUTH 448
643 < #define T_UNDLINE 449
644 < #define T_UNLIMITED 450
645 < #define T_UNRESV 451
646 < #define T_UNXLINE 452
647 < #define T_GLOBOPS 453
648 < #define T_WALLOP 454
649 < #define T_RESTART 455
650 < #define T_SERVICE 456
651 < #define T_SERVICES_NAME 457
652 < #define THROTTLE_TIME 458
653 < #define TRUE_NO_OPER_FLOOD 459
654 < #define UNKLINE 460
655 < #define USER 461
656 < #define USE_EGD 462
657 < #define USE_LOGGING 463
658 < #define VHOST 464
659 < #define VHOST6 465
660 < #define XLINE 466
661 < #define WARN_NO_NLINE 467
662 < #define T_SIZE 468
663 < #define T_FILE 469
664 <
665 <
619 > #define T_CLUSTER 425
620 > #define T_DEAF 426
621 > #define T_DEBUG 427
622 > #define T_DLINE 428
623 > #define T_EXTERNAL 429
624 > #define T_FARCONNECT 430
625 > #define T_FILE 431
626 > #define T_FULL 432
627 > #define T_GLOBOPS 433
628 > #define T_INVISIBLE 434
629 > #define T_IPV4 435
630 > #define T_IPV6 436
631 > #define T_LOCOPS 437
632 > #define T_LOG 438
633 > #define T_MAX_CLIENTS 439
634 > #define T_NCHANGE 440
635 > #define T_NONONREG 441
636 > #define T_RECVQ 442
637 > #define T_REJ 443
638 > #define T_RESTART 444
639 > #define T_SERVER 445
640 > #define T_SERVICE 446
641 > #define T_SERVICES_NAME 447
642 > #define T_SERVNOTICE 448
643 > #define T_SET 449
644 > #define T_SHARED 450
645 > #define T_SIZE 451
646 > #define T_SKILL 452
647 > #define T_SOFTCALLERID 453
648 > #define T_SPY 454
649 > #define T_SSL 455
650 > #define T_SSL_CIPHER_LIST 456
651 > #define T_SSL_CLIENT_METHOD 457
652 > #define T_SSL_SERVER_METHOD 458
653 > #define T_SSLV3 459
654 > #define T_TLSV1 460
655 > #define T_UMODES 461
656 > #define T_UNAUTH 462
657 > #define T_UNDLINE 463
658 > #define T_UNLIMITED 464
659 > #define T_UNRESV 465
660 > #define T_UNXLINE 466
661 > #define T_WALLOP 467
662 > #define T_WALLOPS 468
663 > #define T_WEBIRC 469
664 > #define TBOOL 470
665 > #define THROTTLE_COUNT 471
666 > #define THROTTLE_TIME 472
667 > #define TKLINE_EXPIRE_NOTICES 473
668 > #define TMASKED 474
669 > #define TRUE_NO_OPER_FLOOD 475
670 > #define TS_MAX_DELTA 476
671 > #define TS_WARN_DELTA 477
672 > #define TWODOTS 478
673 > #define TYPE 479
674 > #define UNKLINE 480
675 > #define USE_EGD 481
676 > #define USE_LOGGING 482
677 > #define USER 483
678 > #define VHOST 484
679 > #define VHOST6 485
680 > #define WARN_NO_CONNECT_BLOCK 486
681 > #define XLINE 487
682  
683 + /* Value type.  */
684   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
685 < typedef union YYSTYPE
685 > typedef union YYSTYPE YYSTYPE;
686 > union YYSTYPE
687   {
688 < /* Line 350 of yacc.c  */
622 < #line 110 "conf_parser.y"
688 > #line 147 "conf_parser.y" /* yacc.c:355  */
689  
690    int number;
691    char *string;
692  
693 <
694 < /* Line 350 of yacc.c  */
629 < #line 630 "conf_parser.c"
630 < } YYSTYPE;
693 > #line 694 "conf_parser.c" /* yacc.c:355  */
694 > };
695   # define YYSTYPE_IS_TRIVIAL 1
632 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
696   # define YYSTYPE_IS_DECLARED 1
697   #endif
698  
699 +
700   extern YYSTYPE yylval;
701  
638 #ifdef YYPARSE_PARAM
639 #if defined __STDC__ || defined __cplusplus
640 int yyparse (void *YYPARSE_PARAM);
641 #else
642 int yyparse ();
643 #endif
644 #else /* ! YYPARSE_PARAM */
645 #if defined __STDC__ || defined __cplusplus
702   int yyparse (void);
647 #else
648 int yyparse ();
649 #endif
650 #endif /* ! YYPARSE_PARAM */
703  
704 < #endif /* !YY_Y_TAB_H  */
704 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
705  
706   /* Copy the second part of user declarations.  */
707  
708 < /* Line 353 of yacc.c  */
657 < #line 658 "conf_parser.c"
708 > #line 709 "conf_parser.c" /* yacc.c:358  */
709  
710   #ifdef short
711   # undef short
# Line 668 | Line 719 | typedef unsigned char yytype_uint8;
719  
720   #ifdef YYTYPE_INT8
721   typedef YYTYPE_INT8 yytype_int8;
671 #elif (defined __STDC__ || defined __C99__FUNC__ \
672     || defined __cplusplus || defined _MSC_VER)
673 typedef signed char yytype_int8;
722   #else
723 < typedef short int yytype_int8;
723 > typedef signed char yytype_int8;
724   #endif
725  
726   #ifdef YYTYPE_UINT16
# Line 692 | Line 740 | typedef short int yytype_int16;
740   #  define YYSIZE_T __SIZE_TYPE__
741   # elif defined size_t
742   #  define YYSIZE_T size_t
743 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
696 <     || defined __cplusplus || defined _MSC_VER)
743 > # elif ! defined YYSIZE_T
744   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
745   #  define YYSIZE_T size_t
746   # else
# Line 707 | Line 754 | typedef short int yytype_int16;
754   # if defined YYENABLE_NLS && YYENABLE_NLS
755   #  if ENABLE_NLS
756   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
757 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
757 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
758   #  endif
759   # endif
760   # ifndef YY_
761 < #  define YY_(msgid) msgid
761 > #  define YY_(Msgid) Msgid
762 > # endif
763 > #endif
764 >
765 > #ifndef YY_ATTRIBUTE
766 > # if (defined __GNUC__                                               \
767 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
768 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
769 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
770 > # else
771 > #  define YY_ATTRIBUTE(Spec) /* empty */
772 > # endif
773 > #endif
774 >
775 > #ifndef YY_ATTRIBUTE_PURE
776 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
777 > #endif
778 >
779 > #ifndef YY_ATTRIBUTE_UNUSED
780 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
781 > #endif
782 >
783 > #if !defined _Noreturn \
784 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
785 > # if defined _MSC_VER && 1200 <= _MSC_VER
786 > #  define _Noreturn __declspec (noreturn)
787 > # else
788 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
789   # endif
790   #endif
791  
792   /* Suppress unused-variable warnings by "using" E.  */
793   #if ! defined lint || defined __GNUC__
794 < # define YYUSE(e) ((void) (e))
794 > # define YYUSE(E) ((void) (E))
795   #else
796 < # define YYUSE(e) /* empty */
796 > # define YYUSE(E) /* empty */
797   #endif
798  
799 < /* Identity function, used to suppress warnings about constant conditions.  */
800 < #ifndef lint
801 < # define YYID(n) (n)
799 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
800 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
801 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
802 >    _Pragma ("GCC diagnostic push") \
803 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
804 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
805 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
806 >    _Pragma ("GCC diagnostic pop")
807   #else
808 < #if (defined __STDC__ || defined __C99__FUNC__ \
730 <     || defined __cplusplus || defined _MSC_VER)
731 < static int
732 < YYID (int yyi)
733 < #else
734 < static int
735 < YYID (yyi)
736 <    int yyi;
808 > # define YY_INITIAL_VALUE(Value) Value
809   #endif
810 < {
811 <  return yyi;
812 < }
810 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
811 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
812 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
813 > #endif
814 > #ifndef YY_INITIAL_VALUE
815 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
816   #endif
817  
818 +
819   #if ! defined yyoverflow || YYERROR_VERBOSE
820  
821   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 757 | Line 833 | YYID (yyi)
833   #    define alloca _alloca
834   #   else
835   #    define YYSTACK_ALLOC alloca
836 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
761 <     || defined __cplusplus || defined _MSC_VER)
836 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
837   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
838        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
839   #     ifndef EXIT_SUCCESS
# Line 770 | Line 845 | YYID (yyi)
845   # endif
846  
847   # ifdef YYSTACK_ALLOC
848 <   /* Pacify GCC's `empty if-body' warning.  */
849 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
848 >   /* Pacify GCC's 'empty if-body' warning.  */
849 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
850   #  ifndef YYSTACK_ALLOC_MAXIMUM
851      /* The OS might guarantee only one guard page at the bottom of the stack,
852         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 787 | Line 862 | YYID (yyi)
862   #  endif
863   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
864         && ! ((defined YYMALLOC || defined malloc) \
865 <             && (defined YYFREE || defined free)))
865 >             && (defined YYFREE || defined free)))
866   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
867   #   ifndef EXIT_SUCCESS
868   #    define EXIT_SUCCESS 0
# Line 795 | Line 870 | YYID (yyi)
870   #  endif
871   #  ifndef YYMALLOC
872   #   define YYMALLOC malloc
873 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
873 > #   if ! defined malloc && ! defined EXIT_SUCCESS
874   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
875   #   endif
876   #  endif
877   #  ifndef YYFREE
878   #   define YYFREE free
879 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
806 <     || defined __cplusplus || defined _MSC_VER)
879 > #   if ! defined free && ! defined EXIT_SUCCESS
880   void free (void *); /* INFRINGES ON USER NAME SPACE */
881   #   endif
882   #  endif
# Line 813 | Line 886 | void free (void *); /* INFRINGES ON USER
886  
887   #if (! defined yyoverflow \
888       && (! defined __cplusplus \
889 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
889 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
890  
891   /* A type that is properly aligned for any stack member.  */
892   union yyalloc
# Line 838 | Line 911 | union yyalloc
911     elements in the stack, and YYPTR gives the new location of the
912     stack.  Advance YYPTR to a properly aligned location for the next
913     stack.  */
914 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 <    do                                                                  \
916 <      {                                                                 \
917 <        YYSIZE_T yynewbytes;                                            \
918 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 <        Stack = &yyptr->Stack_alloc;                                    \
920 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 <      }                                                                 \
923 <    while (YYID (0))
914 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 >    do                                                                  \
916 >      {                                                                 \
917 >        YYSIZE_T yynewbytes;                                            \
918 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 >        Stack = &yyptr->Stack_alloc;                                    \
920 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 >      }                                                                 \
923 >    while (0)
924  
925   #endif
926  
# Line 866 | Line 939 | union yyalloc
939            for (yyi = 0; yyi < (Count); yyi++)   \
940              (Dst)[yyi] = (Src)[yyi];            \
941          }                                       \
942 <      while (YYID (0))
942 >      while (0)
943   #  endif
944   # endif
945   #endif /* !YYCOPY_NEEDED */
# Line 874 | Line 947 | union yyalloc
947   /* YYFINAL -- State number of the termination state.  */
948   #define YYFINAL  2
949   /* YYLAST -- Last index in YYTABLE.  */
950 < #define YYLAST   1206
950 > #define YYLAST   1377
951  
952   /* YYNTOKENS -- Number of terminals.  */
953 < #define YYNTOKENS  220
953 > #define YYNTOKENS  239
954   /* YYNNTS -- Number of nonterminals.  */
955 < #define YYNNTS  283
955 > #define YYNNTS  297
956   /* YYNRULES -- Number of rules.  */
957 < #define YYNRULES  627
958 < /* YYNRULES -- Number of states.  */
959 < #define YYNSTATES  1228
957 > #define YYNRULES  669
958 > /* YYNSTATES -- Number of states.  */
959 > #define YYNSTATES  1318
960  
961 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
961 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
962 >   by yylex, with out-of-bounds checking.  */
963   #define YYUNDEFTOK  2
964 < #define YYMAXUTOK   469
964 > #define YYMAXUTOK   487
965  
966 < #define YYTRANSLATE(YYX)                                                \
966 > #define YYTRANSLATE(YYX)                                                \
967    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
968  
969 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
969 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
970 >   as returned by yylex, without out-of-bounds checking.  */
971   static const yytype_uint8 yytranslate[] =
972   {
973         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
978 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
979 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
977 >       2,     2,     2,     2,   237,     2,     2,     2,     2,     2,
978 >       2,     2,     2,     2,     2,     2,     2,     2,   238,   233,
979 >       2,   236,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
985 >       2,     2,     2,   235,     2,   234,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
987         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
988         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 1016 | static const yytype_uint8 yytranslate[]
1016       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1017       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1018       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1019 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
1019 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1020 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1021 >     225,   226,   227,   228,   229,   230,   231,   232
1022   };
1023  
1024   #if YYDEBUG
1025 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
949 <   YYRHS.  */
950 < static const yytype_uint16 yyprhs[] =
951 < {
952 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
953 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
954 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
955 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
956 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
957 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
958 <     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
959 <     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
960 <     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
961 <     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
962 <     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
963 <     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
964 <     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
965 <     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
966 <     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
967 <     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
968 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
969 <     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
970 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
971 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
972 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
973 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
974 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
975 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
976 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
977 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
978 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
979 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
980 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
981 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
982 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
983 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
984 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
985 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
986 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
987 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
988 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
989 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
990 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
991 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
992 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
993 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
994 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
995 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
996 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
997 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
998 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
999 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1000 <    1386,  1388,  1390,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1001 <    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1002 <    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1003 <    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1004 <    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1622,
1005 <    1623,  1629,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
1006 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1007 <    1669,  1671,  1673,  1675,  1676,  1682,  1686,  1688,  1690,  1692,
1008 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1009 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1733,  1738,
1010 <    1743,  1749,  1752,  1754,  1756,  1758,  1760,  1762,  1764,  1766,
1011 <    1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,  1784,  1789,
1012 <    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1013 <    1844,  1849,  1854,  1860,  1863,  1865,  1867,  1869,  1871,  1873,
1014 <    1875,  1877,  1879,  1884,  1889,  1894,  1899,  1904
1015 < };
1016 <
1017 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1018 < static const yytype_int16 yyrhs[] =
1019 < {
1020 <     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1021 <      -1,   274,    -1,   477,    -1,   292,    -1,   310,    -1,   324,
1022 <      -1,   232,    -1,   494,    -1,   339,    -1,   346,    -1,   350,
1023 <      -1,   360,    -1,   369,    -1,   389,    -1,   399,    -1,   405,
1024 <      -1,   419,    -1,   409,    -1,   227,    -1,     1,   215,    -1,
1025 <       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1026 <     138,   223,    -1,    99,   139,   223,    -1,    99,   140,   223,
1027 <      -1,    99,   141,   223,    -1,    99,   142,   223,    -1,    -1,
1028 <     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1029 <      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1030 <     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1031 <     231,    -1,     1,   215,    -1,    87,   218,   118,   215,    -1,
1032 <     113,   218,   118,   215,    -1,   146,   217,   233,   216,   215,
1033 <      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1034 <     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1035 <     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1036 <     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   132,
1037 <     218,   237,   215,    -1,   133,   218,   239,   215,    -1,   237,
1038 <     219,   238,    -1,   238,    -1,   134,    -1,   135,    -1,   239,
1039 <     219,   240,    -1,   240,    -1,   134,    -1,   135,    -1,   130,
1040 <     218,   118,   215,    -1,   128,   218,   118,   215,    -1,   131,
1041 <     218,   118,   215,    -1,   171,   218,   118,   215,    -1,    89,
1042 <     218,   118,   215,    -1,   147,   218,   118,   215,    -1,    24,
1043 <     218,   118,   215,    -1,    92,   218,   118,   215,    -1,    91,
1044 <     218,   118,   215,    -1,   209,   218,   118,   215,    -1,   210,
1045 <     218,   118,   215,    -1,   181,   218,    99,   215,    -1,    57,
1046 <     218,   160,   215,    -1,     4,   217,   255,   216,   215,    -1,
1047 <     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1048 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,    31,
1049 <     218,   118,   215,    -1,    24,   218,   118,   215,    -1,    71,
1050 <     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1051 <     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   160,
1052 <     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1053 <     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1054 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,   213,
1055 <     218,   226,   215,    -1,   213,   218,   195,   215,    -1,    -1,
1056 <     151,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1057 <     273,    -1,   206,    -1,   102,    -1,    40,    -1,   174,    -1,
1058 <      64,    -1,    62,    -1,   173,    -1,    -1,   102,   275,   217,
1059 <     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1060 <      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1061 <      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1062 <     118,   215,    -1,   206,   218,   118,   215,    -1,   112,   218,
1063 <     118,   215,    -1,    32,   218,   160,   215,    -1,   129,   218,
1064 <     118,   215,    -1,    17,   218,   118,   215,    -1,    -1,   192,
1065 <     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1066 <      -1,   166,    -1,   169,    -1,   170,    -1,   172,    -1,   173,
1067 <      -1,   176,    -1,    51,    -1,   189,    -1,   182,    -1,   185,
1068 <      -1,   193,    -1,   190,    -1,   175,    -1,   183,    -1,   187,
1069 <      -1,   177,    -1,   199,    -1,   167,    -1,   168,    -1,   180,
1070 <      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1071 <     291,    -1,   291,    -1,    47,    -1,   125,    -1,    64,    -1,
1072 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,    40,    -1,
1073 <      25,    -1,   200,    -1,   124,    -1,     4,    -1,    94,    -1,
1074 <     183,    -1,   198,    -1,   106,    -1,   126,    -1,   188,    -1,
1075 <      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1076 <     294,   295,    -1,   295,    -1,   296,    -1,   307,    -1,   308,
1077 <      -1,   297,    -1,   298,    -1,   309,    -1,   299,    -1,   300,
1078 <      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1079 <      -1,   306,    -1,     1,   215,    -1,    89,   218,   118,   215,
1080 <      -1,   115,   218,   224,   215,    -1,   116,   218,   224,   215,
1081 <      -1,   101,   218,    99,   215,    -1,    19,   218,   224,   215,
1082 <      -1,    81,   218,    99,   215,    -1,    76,   218,    99,   215,
1083 <      -1,    78,   218,    99,   215,    -1,    77,   218,    99,   215,
1084 <      -1,   143,   218,   226,   215,    -1,   184,   218,   226,   215,
1085 <      -1,    15,   218,    99,   215,    -1,    16,   218,    99,   215,
1086 <      -1,   100,   218,    99,   215,    -1,    -1,    70,   311,   217,
1087 <     316,   216,   215,    -1,    -1,    36,   313,   218,   314,   215,
1088 <      -1,   314,   219,   315,    -1,   315,    -1,   191,    -1,    51,
1089 <      -1,   186,    -1,   316,   317,    -1,   317,    -1,   318,    -1,
1090 <     312,    -1,   322,    -1,   323,    -1,     1,   215,    -1,    -1,
1091 <     117,   218,   320,   319,   215,    -1,   320,   219,   321,    -1,
1092 <     321,    -1,    99,    -1,    99,   164,    99,    -1,    61,   218,
1093 <     118,   215,    -1,    56,   218,   118,   215,    -1,    -1,    48,
1094 <     325,   217,   326,   216,   215,    -1,   326,   327,    -1,   327,
1095 <      -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,   336,
1096 <      -1,   337,    -1,   338,    -1,   331,    -1,     1,   215,    -1,
1097 <     206,   218,   118,   215,    -1,   112,   218,   118,   215,    -1,
1098 <      17,   218,   118,   215,    -1,    32,   218,   160,   215,    -1,
1099 <      -1,    36,   333,   218,   334,   215,    -1,   334,   219,   335,
1100 <      -1,   335,    -1,   154,    -1,    33,    -1,    65,    -1,    49,
1101 <      -1,    13,    -1,    98,    -1,    43,    -1,   137,    -1,    90,
1102 <      -1,   153,   218,   118,   215,    -1,   122,   218,   118,   215,
1103 <      -1,   121,   218,    99,   215,    -1,    -1,   136,   340,   217,
1104 <     341,   216,   215,    -1,   341,   342,    -1,   342,    -1,   343,
1105 <      -1,   344,    -1,   345,    -1,     1,   215,    -1,   120,   218,
1106 <     118,   215,    -1,    14,   218,   118,   215,    -1,    93,   218,
1107 <     118,   215,    -1,   201,   217,   347,   216,   215,    -1,   347,
1108 <     348,    -1,   348,    -1,   349,    -1,     1,    -1,    89,   218,
1109 <     118,   215,    -1,    -1,   149,   351,   217,   352,   216,   215,
1110 <      -1,   352,   353,    -1,   353,    -1,   354,    -1,   355,    -1,
1111 <     356,    -1,     1,   215,    -1,    89,   218,   118,   215,    -1,
1112 <     206,   218,   118,   215,    -1,    -1,   151,   357,   218,   358,
1113 <     215,    -1,   358,   219,   359,    -1,   359,    -1,    64,    -1,
1114 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,   197,    -1,
1115 <     136,    -1,   196,    -1,   180,    -1,   165,    -1,    -1,   150,
1116 <     361,   217,   362,   216,   215,    -1,   362,   363,    -1,   363,
1117 <      -1,   364,    -1,   365,    -1,     1,   215,    -1,    89,   218,
1118 <     118,   215,    -1,    -1,   151,   366,   218,   367,   215,    -1,
1119 <     367,   219,   368,    -1,   368,    -1,    64,    -1,   205,    -1,
1120 <     174,    -1,   194,    -1,   211,    -1,   197,    -1,   136,    -1,
1121 <     196,    -1,   180,    -1,   165,    -1,    -1,    18,   370,   217,
1122 <     371,   216,   215,    -1,   371,   372,    -1,   372,    -1,   373,
1123 <      -1,   374,    -1,   375,    -1,   376,    -1,   377,    -1,   379,
1124 <      -1,   378,    -1,   388,    -1,   380,    -1,   385,    -1,   386,
1125 <      -1,   387,    -1,   384,    -1,     1,   215,    -1,    89,   218,
1126 <     118,   215,    -1,    56,   218,   118,   215,    -1,   209,   218,
1127 <     118,   215,    -1,   144,   218,   118,   215,    -1,     3,   218,
1128 <     118,   215,    -1,   117,   218,    99,   215,    -1,     5,   218,
1129 <     178,   215,    -1,     5,   218,   179,   215,    -1,    -1,    36,
1130 <     381,   218,   382,   215,    -1,   382,   219,   383,    -1,   383,
1131 <      -1,     8,    -1,   191,    -1,    32,   218,   160,   215,    -1,
1132 <      58,   218,   118,   215,    -1,    68,   218,   118,   215,    -1,
1133 <      17,   218,   118,   215,    -1,   171,   218,   118,   215,    -1,
1134 <      -1,    62,   390,   217,   395,   216,   215,    -1,    -1,   151,
1135 <     392,   218,   393,   215,    -1,   393,   219,   394,    -1,   394,
1136 <      -1,   123,    -1,   395,   396,    -1,   396,    -1,   397,    -1,
1137 <     398,    -1,   391,    -1,     1,    -1,   206,   218,   118,   215,
1138 <      -1,   120,   218,   118,   215,    -1,    -1,    23,   400,   217,
1139 <     401,   216,   215,    -1,   401,   402,    -1,   402,    -1,   403,
1140 <      -1,   404,    -1,     1,    -1,    61,   218,   118,   215,    -1,
1141 <     120,   218,   118,   215,    -1,    34,   217,   406,   216,   215,
1142 <      -1,   406,   407,    -1,   407,    -1,   408,    -1,     1,    -1,
1143 <      61,   218,   118,   215,    -1,    -1,    38,   410,   217,   415,
1144 <     216,   215,    -1,    -1,   151,   412,   218,   413,   215,    -1,
1145 <     413,   219,   414,    -1,   414,    -1,   123,    -1,   415,   416,
1146 <      -1,   416,    -1,   417,    -1,   418,    -1,   411,    -1,     1,
1147 <      -1,    89,   218,   118,   215,    -1,   120,   218,   118,   215,
1148 <      -1,    39,   217,   420,   216,   215,    -1,   420,   421,    -1,
1149 <     421,    -1,   430,    -1,   431,    -1,   433,    -1,   434,    -1,
1150 <     435,    -1,   436,    -1,   437,    -1,   438,    -1,   439,    -1,
1151 <     440,    -1,   429,    -1,   442,    -1,   443,    -1,   458,    -1,
1152 <     445,    -1,   447,    -1,   449,    -1,   448,    -1,   452,    -1,
1153 <     446,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1154 <     457,    -1,   470,    -1,   459,    -1,   460,    -1,   461,    -1,
1155 <     466,    -1,   450,    -1,   451,    -1,   476,    -1,   474,    -1,
1156 <     475,    -1,   432,    -1,   465,    -1,   441,    -1,   463,    -1,
1157 <     464,    -1,   428,    -1,   423,    -1,   424,    -1,   425,    -1,
1158 <     426,    -1,   427,    -1,   444,    -1,   422,    -1,   462,    -1,
1159 <       1,    -1,    83,   218,    99,   215,    -1,    42,   218,   160,
1160 <     215,    -1,    41,   218,   224,   215,    -1,    44,   218,   224,
1161 <     215,    -1,    45,   218,    99,   215,    -1,    46,   218,    99,
1162 <     215,    -1,   148,   218,   160,   215,    -1,    63,   218,   224,
1163 <     215,    -1,    55,   218,   160,   215,    -1,    59,   218,   160,
1164 <     215,    -1,    28,   218,   160,   215,    -1,    35,   218,   160,
1165 <     215,    -1,     6,   218,   160,   215,    -1,    80,   218,   224,
1166 <     215,    -1,    79,   218,    99,   215,    -1,    72,   218,    99,
1167 <     215,    -1,     7,   218,   224,   215,    -1,   163,   218,   224,
1168 <     215,    -1,   162,   218,   224,   215,    -1,    50,   218,    99,
1169 <     215,    -1,    60,   218,   160,   215,    -1,   212,   218,   160,
1170 <     215,    -1,   155,   218,   160,   215,    -1,   158,   218,   160,
1171 <     215,    -1,   159,   218,   160,   215,    -1,   157,   218,   160,
1172 <     215,    -1,   157,   218,   161,   215,    -1,   156,   218,   160,
1173 <     215,    -1,   156,   218,   161,   215,    -1,   110,   218,   224,
1174 <     215,    -1,    12,   218,   224,   215,    -1,   103,   218,   160,
1175 <     215,    -1,   111,   218,   224,   215,    -1,   152,   218,   160,
1176 <     215,    -1,    97,   218,   160,   215,    -1,   204,   218,   160,
1177 <     215,    -1,   105,   218,   160,   215,    -1,    84,   218,   118,
1178 <     215,    -1,    29,   218,    99,   215,    -1,    82,   218,    99,
1179 <     215,    -1,   207,   218,   160,   215,    -1,    30,   218,   118,
1180 <     215,    -1,   202,   218,   118,   215,    -1,   114,   218,   160,
1181 <     215,    -1,    26,   218,   160,   215,    -1,   203,   218,   224,
1182 <     215,    -1,    -1,   107,   467,   218,   468,   215,    -1,   468,
1183 <     219,   469,    -1,   469,    -1,   166,    -1,   169,    -1,   170,
1184 <      -1,   172,    -1,   173,    -1,   176,    -1,    51,    -1,   189,
1185 <      -1,   182,    -1,   185,    -1,   193,    -1,   190,    -1,   175,
1186 <      -1,   183,    -1,   187,    -1,   177,    -1,   199,    -1,   167,
1187 <      -1,   168,    -1,   180,    -1,    -1,   104,   471,   218,   472,
1188 <     215,    -1,   472,   219,   473,    -1,   473,    -1,   166,    -1,
1189 <     169,    -1,   170,    -1,   172,    -1,   173,    -1,   176,    -1,
1190 <     189,    -1,    51,    -1,   182,    -1,   185,    -1,   193,    -1,
1191 <     190,    -1,   175,    -1,   183,    -1,   187,    -1,   177,    -1,
1192 <     199,    -1,   167,    -1,   168,    -1,   180,    -1,    85,   218,
1193 <      99,   215,    -1,    86,   218,    99,   215,    -1,    20,   218,
1194 <      99,   215,    -1,    14,   217,   478,   216,   215,    -1,   478,
1195 <     479,    -1,   479,    -1,   487,    -1,   482,    -1,   483,    -1,
1196 <     484,    -1,   485,    -1,   486,    -1,   488,    -1,   489,    -1,
1197 <     490,    -1,   481,    -1,   491,    -1,   492,    -1,   493,    -1,
1198 <     480,    -1,     1,    -1,    27,   218,   160,   215,    -1,   127,
1199 <     218,   160,   215,    -1,    66,   218,   224,   215,    -1,    67,
1200 <     218,   224,   215,    -1,    75,   218,    99,   215,    -1,    74,
1201 <     218,    99,   215,    -1,   119,   218,   160,   215,    -1,    73,
1202 <     218,    99,   215,    -1,    22,   218,    99,   215,    -1,    21,
1203 <     218,    99,   215,    -1,    95,   218,   160,   215,    -1,    96,
1204 <     218,   160,   215,    -1,   108,   218,    99,   215,    -1,   109,
1205 <     218,   224,   215,    -1,   145,   217,   495,   216,   215,    -1,
1206 <     495,   496,    -1,   496,    -1,   497,    -1,   498,    -1,   500,
1207 <      -1,   501,    -1,   499,    -1,   502,    -1,     1,    -1,    37,
1208 <     218,   160,   215,    -1,    54,   218,   160,   215,    -1,    52,
1209 <     218,   118,   215,    -1,    69,   218,   224,   215,    -1,    51,
1210 <     218,   160,   215,    -1,    53,   218,   160,   215,    -1
1211 < };
1212 <
1213 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1025 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1026   static const yytype_uint16 yyrline[] =
1027   {
1028 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1029 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1030 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1031 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1032 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1033 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1034 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1035 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1036 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1037 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1038 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1039 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1040 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1041 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1042 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1043 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1044 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1045 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1046 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1047 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1048 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1049 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1050 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1051 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1052 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1053 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1054 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1055 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1056 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1057 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1058 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1059 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1060 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1061 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1062 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1063 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1064 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1065 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1066 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2306,  2305,  2309,
1067 <    2309,  2310,  2316,  2316,  2317,  2317,  2317,  2317,  2319,  2338,
1068 <    2348,  2347,  2372,  2372,  2373,  2373,  2373,  2375,  2381,  2390,
1069 <    2392,  2392,  2393,  2393,  2395,  2414,  2413,  2461,  2460,  2464,
1070 <    2464,  2465,  2471,  2471,  2472,  2472,  2472,  2472,  2474,  2480,
1071 <    2489,  2492,  2492,  2493,  2493,  2494,  2494,  2495,  2495,  2496,
1072 <    2496,  2497,  2497,  2498,  2499,  2500,  2500,  2501,  2501,  2502,
1073 <    2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,  2507,  2507,
1074 <    2508,  2508,  2509,  2509,  2510,  2510,  2511,  2511,  2512,  2513,
1075 <    2513,  2514,  2515,  2516,  2516,  2517,  2517,  2518,  2519,  2520,
1076 <    2521,  2521,  2522,  2525,  2530,  2536,  2542,  2548,  2553,  2558,
1077 <    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1078 <    2613,  2618,  2624,  2635,  2640,  2645,  2650,  2655,  2660,  2663,
1079 <    2668,  2671,  2676,  2681,  2686,  2691,  2696,  2701,  2706,  2711,
1080 <    2716,  2727,  2732,  2737,  2742,  2751,  2760,  2765,  2770,  2776,
1081 <    2775,  2780,  2780,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1082 <    2802,  2805,  2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,
1083 <    2832,  2835,  2838,  2844,  2843,  2848,  2848,  2849,  2852,  2855,
1084 <    2858,  2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,
1085 <    2888,  2891,  2894,  2897,  2900,  2903,  2906,  2911,  2916,  2921,
1086 <    2930,  2933,  2933,  2934,  2935,  2935,  2936,  2936,  2937,  2937,
1087 <    2938,  2939,  2939,  2940,  2941,  2941,  2942,  2942,  2944,  2949,
1088 <    2954,  2959,  2964,  2969,  2974,  2979,  2984,  2989,  2994,  2999,
1089 <    3004,  3009,  3017,  3020,  3020,  3021,  3021,  3022,  3023,  3023,
1090 <    3024,  3025,  3027,  3033,  3039,  3048,  3062,  3068
1028 >       0,   383,   383,   384,   387,   388,   389,   390,   391,   392,
1029 >     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
1030 >     403,   404,   405,   406,   407,   408,   409,   413,   413,   414,
1031 >     415,   416,   417,   418,   419,   420,   421,   424,   424,   425,
1032 >     426,   427,   428,   435,   438,   438,   439,   439,   439,   441,
1033 >     447,   454,   456,   456,   457,   458,   459,   460,   461,   462,
1034 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1035 >     473,   474,   475,   476,   479,   480,   482,   482,   483,   489,
1036 >     497,   497,   498,   504,   512,   554,   612,   640,   648,   662,
1037 >     690,   705,   720,   729,   743,   752,   780,   810,   835,   857,
1038 >     879,   888,   890,   890,   891,   892,   893,   894,   896,   905,
1039 >     914,   927,   926,   944,   944,   945,   945,   945,   947,   953,
1040 >     962,   963,   963,   965,   965,   966,   968,   975,   975,   988,
1041 >     989,   991,   991,   992,   992,   994,  1002,  1005,  1011,  1010,
1042 >    1016,  1016,  1017,  1021,  1025,  1029,  1033,  1037,  1041,  1045,
1043 >    1049,  1060,  1059,  1139,  1139,  1140,  1141,  1142,  1143,  1144,
1044 >    1145,  1146,  1147,  1148,  1149,  1150,  1152,  1158,  1164,  1170,
1045 >    1181,  1187,  1193,  1204,  1211,  1210,  1216,  1216,  1217,  1221,
1046 >    1225,  1229,  1233,  1237,  1241,  1245,  1249,  1253,  1257,  1261,
1047 >    1265,  1269,  1273,  1277,  1281,  1285,  1289,  1293,  1297,  1301,
1048 >    1308,  1307,  1313,  1313,  1314,  1318,  1322,  1326,  1330,  1334,
1049 >    1338,  1342,  1346,  1350,  1354,  1358,  1362,  1366,  1370,  1374,
1050 >    1378,  1382,  1386,  1390,  1394,  1398,  1402,  1413,  1412,  1474,
1051 >    1474,  1475,  1476,  1477,  1478,  1479,  1480,  1481,  1482,  1483,
1052 >    1484,  1485,  1486,  1487,  1487,  1488,  1489,  1490,  1491,  1493,
1053 >    1499,  1505,  1511,  1517,  1523,  1529,  1535,  1541,  1547,  1553,
1054 >    1560,  1566,  1572,  1578,  1587,  1597,  1596,  1602,  1602,  1603,
1055 >    1607,  1618,  1617,  1624,  1623,  1628,  1628,  1629,  1633,  1637,
1056 >    1643,  1643,  1644,  1644,  1644,  1644,  1644,  1646,  1646,  1648,
1057 >    1648,  1650,  1664,  1682,  1688,  1698,  1697,  1739,  1739,  1740,
1058 >    1741,  1742,  1743,  1744,  1745,  1746,  1747,  1748,  1750,  1756,
1059 >    1762,  1768,  1780,  1779,  1785,  1785,  1786,  1790,  1794,  1798,
1060 >    1802,  1806,  1810,  1814,  1818,  1822,  1828,  1842,  1851,  1865,
1061 >    1864,  1879,  1879,  1880,  1880,  1880,  1880,  1882,  1888,  1894,
1062 >    1904,  1906,  1906,  1907,  1907,  1909,  1925,  1924,  1949,  1949,
1063 >    1950,  1950,  1950,  1950,  1952,  1958,  1978,  1977,  1983,  1983,
1064 >    1984,  1988,  1992,  1996,  2000,  2004,  2008,  2012,  2016,  2020,
1065 >    2030,  2029,  2050,  2050,  2051,  2051,  2051,  2053,  2060,  2059,
1066 >    2065,  2065,  2066,  2070,  2074,  2078,  2082,  2086,  2090,  2094,
1067 >    2098,  2102,  2112,  2111,  2183,  2183,  2184,  2185,  2186,  2187,
1068 >    2188,  2189,  2190,  2191,  2192,  2193,  2194,  2195,  2196,  2197,
1069 >    2198,  2200,  2206,  2212,  2218,  2231,  2244,  2250,  2256,  2260,
1070 >    2269,  2268,  2273,  2273,  2274,  2278,  2284,  2295,  2301,  2307,
1071 >    2313,  2329,  2328,  2354,  2354,  2355,  2355,  2355,  2357,  2377,
1072 >    2387,  2386,  2413,  2413,  2414,  2414,  2414,  2416,  2422,  2431,
1073 >    2433,  2433,  2434,  2434,  2436,  2454,  2453,  2476,  2476,  2477,
1074 >    2477,  2477,  2479,  2485,  2494,  2497,  2497,  2498,  2499,  2500,
1075 >    2501,  2502,  2503,  2504,  2505,  2506,  2507,  2508,  2509,  2510,
1076 >    2511,  2512,  2513,  2514,  2515,  2516,  2517,  2518,  2519,  2520,
1077 >    2521,  2522,  2523,  2524,  2525,  2526,  2527,  2528,  2529,  2530,
1078 >    2531,  2532,  2533,  2534,  2535,  2536,  2537,  2538,  2539,  2540,
1079 >    2541,  2542,  2543,  2544,  2545,  2546,  2547,  2548,  2551,  2556,
1080 >    2562,  2568,  2574,  2580,  2585,  2590,  2595,  2600,  2605,  2610,
1081 >    2615,  2620,  2625,  2630,  2635,  2640,  2645,  2651,  2662,  2667,
1082 >    2672,  2677,  2682,  2687,  2692,  2695,  2700,  2703,  2708,  2713,
1083 >    2718,  2723,  2728,  2733,  2738,  2743,  2748,  2753,  2758,  2763,
1084 >    2772,  2781,  2786,  2791,  2796,  2802,  2801,  2806,  2806,  2807,
1085 >    2810,  2813,  2816,  2819,  2822,  2825,  2828,  2831,  2834,  2837,
1086 >    2840,  2843,  2846,  2849,  2852,  2855,  2858,  2861,  2864,  2867,
1087 >    2870,  2876,  2875,  2880,  2880,  2881,  2884,  2887,  2890,  2893,
1088 >    2896,  2899,  2902,  2905,  2908,  2911,  2914,  2917,  2920,  2923,
1089 >    2926,  2929,  2932,  2935,  2938,  2943,  2948,  2953,  2962,  2965,
1090 >    2965,  2966,  2967,  2968,  2969,  2970,  2971,  2972,  2973,  2974,
1091 >    2975,  2976,  2977,  2978,  2979,  2980,  2982,  2987,  2992,  2997,
1092 >    3002,  3007,  3012,  3017,  3022,  3027,  3032,  3037,  3042,  3047,
1093 >    3055,  3058,  3058,  3059,  3060,  3061,  3062,  3063,  3064,  3065,
1094 >    3066,  3067,  3069,  3075,  3081,  3087,  3093,  3102,  3117,  3123
1095   };
1096   #endif
1097  
# Line 1288 | Line 1104 | static const char *const yytname[] =
1104    "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1105    "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1106    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1107 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1108 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1109 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1110 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1111 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1112 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1113 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1114 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1115 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1107 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1108 >  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1109 >  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1110 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1111 >  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1112 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1113 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1114 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1115 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1116 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1117    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1118 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1119 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1120 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1121 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1122 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1123 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1124 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1125 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1118 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1119 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1120 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1121 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1122 >  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1123 >  "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1124 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1125 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1126 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1127 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1128    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1129 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1130 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1312 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1129 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1130 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1131    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1132 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1133 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1134 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1135 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1136 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1137 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1138 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1139 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1140 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1141 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1142 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1143 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1144 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1145 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1146 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1147 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1148 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1149 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1150 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1151 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1152 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1153 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1154 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1155 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1156 <  "serverinfo_item", "serverinfo_ssl_client_method",
1132 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1133 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1134 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1135 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1136 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1137 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1138 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1139 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1140 >  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1141 >  "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1142 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1143 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1144 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1145 >  "T_NONONREG", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE",
1146 >  "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED", "T_SIZE",
1147 >  "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL", "T_SSL_CIPHER_LIST",
1148 >  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1149 >  "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1150 >  "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1151 >  "THROTTLE_COUNT", "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1152 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1153 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1154 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1155 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1156 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1157 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1158 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1159    "serverinfo_ssl_server_method", "client_method_types",
1160    "client_method_type_item", "server_method_types",
1161    "server_method_type_item", "serverinfo_ssl_certificate_file",
1162    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1163 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1163 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1164 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1165    "serverinfo_description", "serverinfo_network_name",
1166    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1167 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1168 <  "admin_item", "admin_name", "admin_email", "admin_description",
1169 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1170 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1171 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1172 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1167 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1168 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1169 >  "admin_items", "admin_item", "admin_name", "admin_email",
1170 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1171 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1172 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1173 >  "logging_file_items", "logging_file_item", "logging_file_name",
1174 >  "logging_file_size", "logging_file_type", "$@3",
1175 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1176    "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1177 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1178 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1179 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1180 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1181 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1182 <  "class_connectfreq", "class_max_number", "class_max_global",
1183 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1184 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1185 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1186 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1187 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1188 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1189 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1190 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1191 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1192 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1193 <  "service_entry", "service_items", "service_item", "service_name",
1194 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1195 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1196 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1197 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1198 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1177 >  "oper_encrypted", "oper_rsa_public_key_file",
1178 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1179 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1180 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1181 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1182 >  "class_name", "class_ping_time", "class_number_per_ip",
1183 >  "class_connectfreq", "class_max_channels", "class_max_number",
1184 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1185 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1186 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1187 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1188 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1189 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1190 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1191 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1192 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1193 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1194 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1195 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1196 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1197 >  "shared_items", "shared_item", "shared_name", "shared_user",
1198 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1199 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1200 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1201 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1202    "connect_host", "connect_vhost", "connect_send_password",
1203 <  "connect_accept_password", "connect_port", "connect_aftype",
1204 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1205 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1206 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1207 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1208 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1203 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1204 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1205 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1206 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1207 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1208 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1209    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1210 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1384 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1210 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1211    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1212    "general_entry", "general_items", "general_item", "general_max_watch",
1213 <  "general_gline_enable", "general_gline_duration",
1214 <  "general_gline_request_duration", "general_gline_min_cidr",
1215 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1216 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1217 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1213 >  "general_cycle_on_host_change", "general_gline_enable",
1214 >  "general_gline_duration", "general_gline_request_duration",
1215 >  "general_gline_min_cidr", "general_gline_min_cidr6",
1216 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1217 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1218    "general_failed_oper_notice", "general_anti_nick_flood",
1219    "general_max_nick_time", "general_max_nick_changes",
1220    "general_max_accept", "general_anti_spam_exit_message_time",
1221    "general_ts_warn_delta", "general_ts_max_delta",
1222    "general_havent_read_conf", "general_invisible_on_connect",
1223 <  "general_warn_no_nline", "general_stats_e_disabled",
1223 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1224    "general_stats_o_oper_only", "general_stats_P_oper_only",
1225 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1226 <  "general_pace_wait", "general_caller_id_wait",
1227 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1228 <  "general_short_motd", "general_no_oper_flood",
1229 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1230 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1225 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1226 >  "general_stats_i_oper_only", "general_pace_wait",
1227 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1228 >  "general_pace_wait_simple", "general_short_motd",
1229 >  "general_no_oper_flood", "general_true_no_oper_flood",
1230 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1231    "general_use_egd", "general_egdpool_path", "general_services_name",
1232 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1233 <  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1234 <  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1235 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1236 <  "general_default_floodcount", "channel_entry", "channel_items",
1237 <  "channel_item", "channel_disable_fake_channels",
1238 <  "channel_restrict_channels", "channel_knock_delay",
1239 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1240 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1232 >  "general_ping_cookie", "general_disable_auth", "general_throttle_count",
1233 >  "general_throttle_time", "general_oper_umodes", "$@24", "umode_oitems",
1234 >  "umode_oitem", "general_oper_only_umodes", "$@25", "umode_items",
1235 >  "umode_item", "general_min_nonwildcard",
1236 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1237 >  "channel_entry", "channel_items", "channel_item",
1238 >  "channel_disable_fake_channels", "channel_invite_client_count",
1239 >  "channel_invite_client_time", "channel_knock_client_count",
1240 >  "channel_knock_client_time", "channel_knock_delay_channel",
1241 >  "channel_max_channels", "channel_max_bans",
1242    "channel_default_split_user_count", "channel_default_split_server_count",
1243    "channel_no_create_on_split", "channel_no_join_on_split",
1244    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1245    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1246 <  "serverhide_hide_servers", "serverhide_hidden_name",
1246 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1247 >  "serverhide_hide_services", "serverhide_hidden_name",
1248    "serverhide_links_delay", "serverhide_hidden",
1249 <  "serverhide_hide_server_ips", YY_NULL
1249 >  "serverhide_hide_server_ips", YY_NULLPTR
1250   };
1251   #endif
1252  
1253   # ifdef YYPRINT
1254 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1255 <   token YYLEX-NUM.  */
1254 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1255 >   (internal) symbol number NUM (which must be that of a token).  */
1256   static const yytype_uint16 yytoknum[] =
1257   {
1258         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1448 | Line 1276 | static const yytype_uint16 yytoknum[] =
1276       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1277       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1278       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1279 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1279 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1280 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1281 >     485,   486,   487,    59,   125,   123,    61,    44,    58
1282   };
1283   # endif
1284  
1285 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1456 < static const yytype_uint16 yyr1[] =
1457 < {
1458 <       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1459 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1460 <     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1461 <     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1462 <     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1463 <     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1464 <     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1465 <     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1466 <     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1467 <     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1468 <     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1469 <     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1470 <     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1471 <     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1472 <     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1473 <     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1474 <     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1475 <     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1476 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1477 <     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1478 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1479 <     295,   295,   295,   295,   296,   297,   298,   299,   300,   301,
1480 <     302,   303,   304,   305,   306,   307,   308,   309,   311,   310,
1481 <     313,   312,   314,   314,   315,   315,   315,   316,   316,   317,
1482 <     317,   317,   317,   317,   319,   318,   320,   320,   321,   321,
1483 <     322,   323,   325,   324,   326,   326,   327,   327,   327,   327,
1484 <     327,   327,   327,   327,   327,   328,   329,   330,   331,   333,
1485 <     332,   334,   334,   335,   335,   335,   335,   335,   335,   335,
1486 <     335,   335,   336,   337,   338,   340,   339,   341,   341,   342,
1487 <     342,   342,   342,   343,   344,   345,   346,   347,   347,   348,
1488 <     348,   349,   351,   350,   352,   352,   353,   353,   353,   353,
1489 <     354,   355,   357,   356,   358,   358,   359,   359,   359,   359,
1490 <     359,   359,   359,   359,   359,   359,   361,   360,   362,   362,
1491 <     363,   363,   363,   364,   366,   365,   367,   367,   368,   368,
1492 <     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
1493 <     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1494 <     372,   372,   372,   372,   372,   372,   373,   374,   375,   376,
1495 <     377,   378,   379,   379,   381,   380,   382,   382,   383,   383,
1496 <     384,   385,   386,   387,   388,   390,   389,   392,   391,   393,
1497 <     393,   394,   395,   395,   396,   396,   396,   396,   397,   398,
1498 <     400,   399,   401,   401,   402,   402,   402,   403,   404,   405,
1499 <     406,   406,   407,   407,   408,   410,   409,   412,   411,   413,
1500 <     413,   414,   415,   415,   416,   416,   416,   416,   417,   418,
1501 <     419,   420,   420,   421,   421,   421,   421,   421,   421,   421,
1502 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1503 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1504 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1505 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1506 <     421,   421,   421,   422,   423,   424,   425,   426,   427,   428,
1507 <     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1508 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   447,
1509 <     448,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1510 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   467,
1511 <     466,   468,   468,   469,   469,   469,   469,   469,   469,   469,
1512 <     469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
1513 <     469,   469,   469,   471,   470,   472,   472,   473,   473,   473,
1514 <     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1515 <     473,   473,   473,   473,   473,   473,   473,   474,   475,   476,
1516 <     477,   478,   478,   479,   479,   479,   479,   479,   479,   479,
1517 <     479,   479,   479,   479,   479,   479,   479,   479,   480,   481,
1518 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1519 <     492,   493,   494,   495,   495,   496,   496,   496,   496,   496,
1520 <     496,   496,   497,   498,   499,   500,   501,   502
1521 < };
1285 > #define YYPACT_NINF -789
1286  
1287 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1288 < static const yytype_uint8 yyr2[] =
1287 > #define yypact_value_is_default(Yystate) \
1288 >  (!!((Yystate) == (-789)))
1289 >
1290 > #define YYTABLE_NINF -128
1291 >
1292 > #define yytable_value_is_error(Yytable_value) \
1293 >  0
1294 >
1295 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1296 >     STATE-NUM.  */
1297 > static const yytype_int16 yypact[] =
1298   {
1299 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1300 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1302 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1303 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1304 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1305 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1306 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1307 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1308 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1309 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1310 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1311 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1312 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1313 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1314 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1315 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1316 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1318 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1319 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1320 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1321 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1322 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1323 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1324 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1325 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1326 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1327 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1328 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1329 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1330 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1332 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1334 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1335 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1336 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1337 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1338 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1339 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1340 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1341 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1342 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1343 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1344 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1346 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1347 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1348 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1349 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1350 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1351 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1352 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1353 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1354 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1355 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1356 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1357 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1358 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1359 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1360 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1361 <       1,     1,     4,     4,     4,     4,     4,     4
1299 >    -789,   656,  -789,   -59,  -226,  -220,  -789,  -789,  -789,  -217,
1300 >    -789,  -198,  -789,  -789,  -789,  -195,  -789,  -789,  -789,  -192,
1301 >    -189,  -789,  -181,  -171,  -789,  -789,  -789,  -789,  -789,  -789,
1302 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1303 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   307,
1304 >     925,  -169,  -160,  -158,    22,  -155,   387,  -136,  -121,  -119,
1305 >      50,  -116,  -114,   -97,   761,   433,   -84,    34,     2,   -82,
1306 >     -73,   -47,   -34,   -27,     9,  -789,  -789,  -789,  -789,  -789,
1307 >     -22,    -7,    -1,    44,    68,    79,    82,    84,    88,    92,
1308 >      98,   102,   104,   112,   266,  -789,  -789,  -789,  -789,  -789,
1309 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1310 >     681,   563,    19,  -789,   115,    21,  -789,  -789,    26,  -789,
1311 >     119,   129,   131,   141,   143,   145,   147,   148,   150,   154,
1312 >     155,   156,   159,   160,   164,   167,   175,   176,   177,   179,
1313 >     180,   183,   184,   186,   188,   189,   190,  -789,   194,  -789,
1314 >     207,   209,   210,   211,   215,   216,   217,   218,   220,   221,
1315 >     224,   225,   226,   227,   228,   230,   231,   232,   234,   235,
1316 >      61,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1317 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1318 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1319 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1320 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1321 >    -789,  -789,   343,    69,   301,   -70,   236,   239,    16,  -789,
1322 >    -789,  -789,   125,   388,   275,  -789,   241,   243,   251,   252,
1323 >     253,   255,   257,   259,   308,  -789,  -789,  -789,  -789,  -789,
1324 >    -789,  -789,  -789,  -789,   -29,   260,   263,   269,   273,   285,
1325 >     286,   288,   293,   294,   295,   296,   297,   300,   304,   305,
1326 >     310,   317,   319,   320,   168,  -789,  -789,  -789,  -789,  -789,
1327 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1328 >    -789,  -789,  -789,  -789,  -789,    25,    53,   321,    10,  -789,
1329 >    -789,  -789,    89,  -789,   322,    97,  -789,  -789,    93,  -789,
1330 >     258,   398,   432,    73,  -789,   249,   270,   345,   449,   450,
1331 >     451,   450,   457,   450,   450,   460,   461,   359,   361,   344,
1332 >    -789,   348,   342,   349,   350,  -789,   352,   353,   362,   364,
1333 >     365,   366,   370,   375,   376,   378,   383,   384,   386,   146,
1334 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1335 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   377,   389,
1336 >     391,   393,   395,   396,   397,  -789,   401,   403,   404,   407,
1337 >     412,   414,   415,    11,  -789,  -789,  -789,  -789,  -789,  -789,
1338 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1339 >     417,   418,     7,  -789,  -789,  -789,   468,   413,  -789,  -789,
1340 >     419,   422,    38,  -789,  -789,  -789,   382,   450,   450,   409,
1341 >     547,   446,   552,   539,   453,   450,   454,   559,   566,   450,
1342 >     567,   466,   469,   470,   450,   574,   575,   450,   578,   580,
1343 >     586,   587,   486,   439,   488,   472,   489,   450,   450,   491,
1344 >     495,   497,  -190,  -183,   498,   499,   500,   589,   605,   450,
1345 >     505,   506,   450,   450,   508,   509,   492,  -789,   496,   502,
1346 >     507,  -789,   510,   511,   514,   515,   516,    57,  -789,  -789,
1347 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   517,   518,
1348 >      41,  -789,  -789,  -789,   501,   523,   524,  -789,   525,  -789,
1349 >      18,  -789,  -789,  -789,  -789,  -789,   601,   603,   512,  -789,
1350 >     530,   534,   535,    29,  -789,  -789,  -789,   542,   536,   540,
1351 >    -789,   544,   549,   553,   557,   560,  -789,   561,    62,  -789,
1352 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1353 >     545,   564,   571,   573,    12,  -789,  -789,  -789,  -789,   520,
1354 >     526,   529,   604,   584,   588,   597,   450,   555,  -789,  -789,
1355 >     606,   599,   675,   620,   706,   692,   693,   695,   696,   697,
1356 >     698,   700,   702,   718,   704,   142,   149,   705,   707,   600,
1357 >    -789,   602,   607,  -789,    30,  -789,  -789,  -789,  -789,   621,
1358 >     608,  -789,   609,   710,   612,  -789,   613,   614,  -789,   616,
1359 >      23,  -789,  -789,  -789,  -789,   615,   625,   628,  -789,   631,
1360 >     633,   636,   638,   374,   639,   642,   644,   645,   646,   647,
1361 >     649,   651,   655,   657,  -789,  -789,   726,   737,   450,   617,
1362 >     742,   777,   779,   450,   780,   781,   450,   715,   782,   784,
1363 >     450,   791,   791,   673,  -789,  -789,   783,   192,   786,   709,
1364 >     790,   792,   672,   793,   795,   799,   798,   807,   813,   817,
1365 >     712,  -789,   824,   827,   722,  -789,   727,  -789,   837,   838,
1366 >     733,  -789,   734,   735,   736,   739,   741,   744,   745,   746,
1367 >     749,   750,   751,   752,   753,   754,   757,   758,   759,   760,
1368 >     763,   765,   766,   770,   771,   772,   773,   774,   778,   764,
1369 >     785,   688,   787,   788,   789,   794,   796,   797,   802,   803,
1370 >     804,   805,   806,   808,   809,   810,   811,   812,   814,   815,
1371 >     816,   818,   819,   820,  -789,  -789,   843,   800,   776,   848,
1372 >     869,   870,   883,   886,   821,  -789,   887,   889,   822,  -789,
1373 >    -789,   890,   892,   823,   911,   825,  -789,   828,   829,  -789,
1374 >    -789,   897,   898,   830,  -789,  -789,   899,   831,   832,   901,
1375 >     904,   905,   913,   835,   833,   929,   834,  -789,  -789,   930,
1376 >     933,   937,   839,  -789,   840,   841,   842,   844,   845,   846,
1377 >     847,   849,  -789,   850,   851,   852,   853,   854,   855,   856,
1378 >     857,   858,   859,   860,   861,   862,   863,   864,  -789,  -789,
1379 >    -188,  -789,  -789,  -789,  -185,  -789,   865,   866,  -789,  -789,
1380 >     938,   867,   868,  -789,   871,  -789,   182,   872,  -789,  -789,
1381 >     939,   873,   943,   874,  -789,  -789,  -789,  -789,  -789,  -789,
1382 >    -789,  -789,   450,   450,   450,   450,   450,   450,   450,  -789,
1383 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1384 >    -789,   875,   877,   878,   -32,   879,   880,   881,   882,   884,
1385 >     885,   888,   891,   893,   894,   895,   289,   896,   900,  -789,
1386 >     902,   903,   906,   907,   908,   909,   910,    -3,   912,   914,
1387 >     915,   916,   917,   918,   919,  -789,   920,   921,  -789,  -789,
1388 >     922,   923,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1389 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1390 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1391 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1392 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1393 >    -180,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1394 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1395 >    -789,  -789,  -789,  -789,  -789,  -178,  -789,  -789,  -789,  -789,
1396 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1397 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   924,
1398 >     926,   541,   927,   928,   931,   932,   934,  -789,   935,   936,
1399 >    -789,   940,   941,     1,   947,   942,  -789,  -789,  -789,  -789,
1400 >     944,   945,  -789,   948,   949,   494,   950,   951,   952,   953,
1401 >     954,   730,   955,  -789,   956,   957,   958,  -789,  -789,  -789,
1402 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1403 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1404 >    -789,  -789,   142,  -789,   149,  -789,  -789,   959,   576,  -789,
1405 >    -789,   960,   961,   962,  -789,    32,  -789,  -789,  -789,  -789,
1406 >    -789,   963,   748,   966,  -789,  -789,  -789,  -789,  -789,  -789,
1407 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -177,  -789,  -789,
1408 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1409 >     791,   791,   791,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1410 >    -789,  -789,  -789,  -789,  -789,  -789,  -172,  -789,  -789,  -789,
1411 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1412 >     764,  -789,   688,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1413 >    -789,  -789,  -789,  -789,  -789,   -65,  -789,  -789,  -789,  -789,
1414 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   -43,
1415 >    -789,   964,   911,   967,  -789,  -789,  -789,  -789,  -789,   965,
1416 >    -789,  -789,   968,  -789,  -789,  -789,  -789,   969,  -789,  -789,
1417 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   -41,  -789,
1418 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1419 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1420 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,   -30,  -789,  -789,
1421 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1422 >    -789,  -789,  -789,  -789,  -789,  -789,   -18,  -789,  -789,   973,
1423 >     -74,   972,   971,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1424 >    -789,  -789,  -789,  -789,  -789,   -17,  -789,  -789,  -789,   -32,
1425 >    -789,  -789,  -789,  -789,    -3,  -789,  -789,  -789,   541,  -789,
1426 >       1,  -789,  -789,  -789,   983,   986,   987,  -789,   494,  -789,
1427 >     730,  -789,   576,   976,   977,   978,   410,  -789,  -789,   748,
1428 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1429 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1430 >    -789,  -789,    70,  -789,  -789,  -789,   410,  -789
1431   };
1432  
1433 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1434 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1435 <   means the default is an error.  */
1433 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1434 >     Performed when YYTABLE does not specify something else to do.  Zero
1435 >     means the default is an error.  */
1436   static const yytype_uint16 yydefact[] =
1437   {
1438 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1439 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1440 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1441 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1442 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1438 >       2,     0,     1,     0,     0,     0,   227,   392,   440,     0,
1439 >     455,     0,   295,   431,   271,     0,   111,   151,   329,     0,
1440 >       0,   370,     0,     0,   346,     3,    23,    11,     4,    24,
1441 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1442 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1443         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1444         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445 <       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1445 >       0,     0,     0,     0,     0,   103,   104,   106,   105,   635,
1446         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1448 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1449 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1447 >       0,     0,     0,     0,     0,   620,   634,   622,   623,   624,
1448 >     625,   626,   627,   621,   628,   629,   630,   631,   632,   633,
1449 >       0,     0,     0,   453,     0,     0,   451,   452,     0,   517,
1450         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1452 >       0,     0,     0,     0,     0,     0,     0,   591,     0,   565,
1453         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1612       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1613     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1614     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1615     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1616     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1617     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1618       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1619       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1620       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1621     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1622       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1623      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1624      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1625     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1455 <       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1456 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1457 <     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1458 <     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1459 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1460 <     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1461 <     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1462 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1463 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1455 >       0,   466,   514,   516,   508,   509,   510,   511,   512,   507,
1456 >     477,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1457 >     476,   504,   478,   479,   513,   481,   486,   487,   482,   484,
1458 >     483,   497,   498,   485,   488,   489,   490,   491,   480,   493,
1459 >     494,   495,   515,   505,   506,   502,   503,   496,   492,   500,
1460 >     501,   499,     0,     0,     0,     0,     0,     0,     0,    45,
1461 >      46,    47,     0,     0,     0,   661,     0,     0,     0,     0,
1462 >       0,     0,     0,     0,     0,   652,   653,   654,   655,   656,
1463 >     659,   657,   658,   660,     0,     0,     0,     0,     0,     0,
1464         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 +       0,     0,     0,     0,     0,    53,    69,    70,    68,    65,
1466 +      63,    71,    72,    64,    54,    67,    57,    58,    59,    55,
1467 +      66,    60,    61,    62,    56,     0,     0,     0,     0,   122,
1468 +     123,   124,     0,   344,     0,     0,   342,   343,     0,   107,
1469 +       0,     0,     0,     0,   102,     0,     0,     0,     0,     0,
1470         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1471 +     619,     0,     0,     0,     0,   265,     0,     0,     0,     0,
1472         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1473 +     230,   231,   234,   236,   237,   238,   239,   240,   241,   242,
1474 +     243,   244,   232,   233,   235,   245,   246,   247,     0,     0,
1475 +       0,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1476 +       0,     0,     0,     0,   395,   396,   397,   398,   399,   400,
1477 +     401,   403,   402,   405,   409,   406,   407,   408,   404,   446,
1478 +       0,     0,     0,   443,   444,   445,     0,     0,   450,   461,
1479 +       0,     0,     0,   458,   459,   460,     0,     0,     0,     0,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1640       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1641       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1642     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1643     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1644     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1645       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1646       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1647     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1648       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1481         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1650       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1651       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1652     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1653       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1654       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1482         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1656       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1657       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1658       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1483         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484 +       0,     0,     0,     0,     0,     0,     0,   465,     0,     0,
1485 +       0,   312,     0,     0,     0,     0,     0,     0,   298,   299,
1486 +     300,   301,   306,   302,   303,   304,   305,   437,     0,     0,
1487 +       0,   434,   435,   436,     0,     0,     0,   273,     0,   283,
1488 +       0,   281,   282,   284,   285,    48,     0,     0,     0,    44,
1489 +       0,     0,     0,     0,   114,   115,   116,     0,     0,     0,
1490 +     200,     0,     0,     0,     0,     0,   174,     0,     0,   154,
1491 +     155,   156,   157,   160,   161,   162,   163,   159,   158,   164,
1492 +       0,     0,     0,     0,     0,   332,   333,   334,   335,     0,
1493 +       0,     0,     0,     0,     0,     0,     0,     0,   651,    73,
1494         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 +      52,     0,     0,   378,     0,   373,   374,   375,   125,     0,
1497 +       0,   121,     0,     0,     0,   341,     0,     0,   356,     0,
1498 +       0,   349,   350,   351,   352,     0,     0,     0,   101,     0,
1499 +       0,     0,     0,    27,     0,     0,     0,     0,     0,     0,
1500 +       0,     0,     0,     0,   618,   248,     0,     0,     0,     0,
1501         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1502 +       0,     0,     0,     0,   229,   410,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1505 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1666 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1667 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1669 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1670 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1671 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1672 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1673 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1674 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1675 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1504 >       0,   394,     0,     0,     0,   442,     0,   449,     0,     0,
1505 >       0,   457,     0,     0,     0,     0,     0,     0,     0,     0,
1506         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1508 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1509 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1510 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1511 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1512 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1513 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1514 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1515 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1516 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1517 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1518 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1519 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1520 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1521 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1522 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1523 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1524 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1525 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1526 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1527 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1528 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1529 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1530 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1531 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1532 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1533 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1534 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1535 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1536 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1537 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1538 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1539 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1540 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1541 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1542 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1543 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1544 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1545 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1546 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1547 <     116,   174,   150,   314,   336,   119,     0,   120
1548 < };
1549 <
1550 < /* YYDEFGOTO[NTERM-NUM].  */
1551 < static const yytype_int16 yydefgoto[] =
1552 < {
1553 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1554 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1555 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1556 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1557 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1558 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1559 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1560 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1561 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1562 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1563 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1564 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1565 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1566 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1567 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1568 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1569 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1741 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1742 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1743 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1744 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1745 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1746 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1747 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1748 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1749 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1750 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1751 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1752 <     248,   249,   250
1507 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1508 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1509 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1510 >       0,     0,     0,     0,   464,   307,     0,     0,     0,     0,
1511 >       0,     0,     0,     0,     0,   297,     0,     0,     0,   433,
1512 >     286,     0,     0,     0,     0,     0,   280,     0,     0,    43,
1513 >     117,     0,     0,     0,   113,   165,     0,     0,     0,     0,
1514 >       0,     0,     0,     0,     0,     0,     0,   153,   336,     0,
1515 >       0,     0,     0,   331,     0,     0,     0,     0,     0,     0,
1516 >       0,     0,   650,     0,     0,     0,     0,     0,     0,     0,
1517 >       0,     0,     0,     0,     0,     0,     0,     0,    78,    79,
1518 >       0,    77,    82,    83,     0,    81,     0,     0,    51,   376,
1519 >       0,     0,     0,   372,     0,   120,     0,     0,   340,   353,
1520 >       0,     0,     0,     0,   348,   110,   109,   108,   645,   644,
1521 >     636,   637,    27,    27,    27,    27,    27,    27,    27,    29,
1522 >      28,   638,   648,   649,   639,   640,   641,   643,   642,   646,
1523 >     647,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524 >       0,     0,     0,     0,     0,     0,    37,     0,     0,   228,
1525 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1526 >       0,     0,     0,     0,     0,   393,     0,     0,   441,   454,
1527 >       0,     0,   456,   530,   534,   549,   519,   617,   562,   556,
1528 >     559,   529,   521,   520,   523,   524,   522,   537,   527,   528,
1529 >     538,   526,   533,   532,   531,   557,   518,   615,   616,   553,
1530 >     601,   595,   611,   596,   597,   598,   606,   614,   599,   608,
1531 >     612,   602,   613,   603,   607,   600,   610,   605,   604,   609,
1532 >       0,   594,   555,   574,   575,   576,   569,   587,   570,   571,
1533 >     572,   582,   590,   573,   584,   588,   578,   589,   579,   583,
1534 >     577,   586,   581,   580,   585,     0,   568,   550,   548,   551,
1535 >     561,   552,   540,   546,   547,   544,   545,   541,   542,   543,
1536 >     560,   563,   564,   525,   554,   536,   535,   558,   539,     0,
1537 >       0,     0,     0,     0,     0,     0,     0,   296,     0,     0,
1538 >     432,     0,     0,     0,   291,   287,   290,   272,    49,    50,
1539 >       0,     0,   112,     0,     0,     0,     0,     0,     0,     0,
1540 >       0,     0,     0,   152,     0,     0,     0,   330,   663,   662,
1541 >     668,   666,   669,   664,   665,   667,    92,   100,    91,    98,
1542 >      99,    90,    94,    93,    85,    84,    89,    86,    88,    97,
1543 >      87,    74,     0,    75,     0,    95,    96,     0,     0,   371,
1544 >     126,     0,     0,     0,   138,     0,   130,   131,   133,   132,
1545 >     345,     0,     0,     0,   347,    30,    31,    32,    33,    34,
1546 >      35,    36,   260,   261,   252,   270,   269,     0,   268,   253,
1547 >     255,   257,   264,   256,   254,   263,   249,   262,   251,   250,
1548 >      37,    37,    37,    39,    38,   258,   259,   415,   418,   419,
1549 >     429,   426,   412,   427,   424,   425,     0,   423,   428,   411,
1550 >     417,   414,   416,   430,   413,   447,   448,   462,   463,   592,
1551 >       0,   566,     0,   310,   311,   320,   317,   322,   318,   319,
1552 >     325,   321,   323,   316,   324,     0,   315,   309,   328,   327,
1553 >     326,   308,   439,   438,   294,   293,   278,   279,   277,     0,
1554 >     276,     0,     0,     0,   118,   119,   173,   169,   220,   207,
1555 >     217,   216,   205,   210,   226,   219,   224,   209,   212,   221,
1556 >     223,   218,   225,   213,   215,   222,   211,   214,     0,   203,
1557 >     166,   168,   170,   171,   172,   183,   184,   185,   178,   196,
1558 >     179,   180,   181,   191,   199,   182,   193,   197,   187,   198,
1559 >     188,   192,   186,   195,   190,   189,   194,     0,   177,   167,
1560 >     339,   337,   338,    76,    80,   377,   382,   388,   391,   384,
1561 >     390,   385,   389,   387,   383,   386,     0,   381,   134,     0,
1562 >       0,     0,     0,   129,   354,   360,   366,   369,   362,   368,
1563 >     363,   367,   365,   361,   364,     0,   359,   355,   266,     0,
1564 >      40,    41,    42,   421,     0,   593,   567,   313,     0,   274,
1565 >       0,   292,   289,   288,     0,     0,     0,   201,     0,   175,
1566 >       0,   379,     0,     0,     0,     0,     0,   128,   357,     0,
1567 >     267,   422,   314,   275,   206,   204,   208,   202,   176,   380,
1568 >     135,   137,   136,   144,   149,   148,   143,   146,   150,   147,
1569 >     142,   145,     0,   141,   358,   139,     0,   140
1570   };
1571  
1572 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1573 <   STATE-NUM.  */
1757 < #define YYPACT_NINF -744
1758 < static const yytype_int16 yypact[] =
1572 >  /* YYPGOTO[NTERM-NUM].  */
1573 > static const yytype_int16 yypgoto[] =
1574   {
1575 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1576 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1577 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1578 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1579 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1580 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1581 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1582 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1583 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1584 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1585 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1586 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1587 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1588 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1589 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1590 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1591 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1592 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1593 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1594 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1595 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1596 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1597 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1598 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1599 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1600 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1601 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1602 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1603 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1604 <    -744,  -744,   107,   254,   359,   165,  -744,   385,   396,   367,
1790 <     454,   454,   455,   457,   461,   399,   401,   464,   454,   404,
1791 <     405,   351,  -744,   358,   356,   360,   361,   362,   364,   365,
1792 <     369,   374,   375,   379,   383,   386,   388,   395,   232,  -744,
1793 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1794 <    -744,  -744,  -744,  -744,   384,   397,   400,   403,   408,  -744,
1795 <     411,   412,   420,   423,   424,   427,   433,   434,   260,  -744,
1796 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1797 <    -744,  -744,  -744,  -744,   435,   437,     8,  -744,  -744,  -744,
1798 <     458,   407,  -744,  -744,   441,   442,  -744,  -744,    36,  -744,
1799 <    -744,  -744,   417,   454,   454,   501,   443,   459,   524,   543,
1800 <     502,   454,   503,   454,   565,   567,   568,   508,   509,   513,
1801 <     454,   577,   578,   454,   580,   583,   566,   584,   587,   527,
1802 <     528,   475,   535,   478,   454,   454,   537,   540,   541,   542,
1803 <    -146,  -133,   544,   546,   454,   454,   585,   454,   550,   553,
1804 <     554,   510,  -744,   515,   514,   517,  -744,   519,   521,   525,
1805 <     529,   530,    58,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1806 <    -744,  -744,  -744,   533,  -744,   534,  -744,    10,  -744,  -744,
1807 <    -744,   538,  -744,   536,   539,   545,  -744,   115,  -744,  -744,
1808 <    -744,  -744,  -744,   582,   547,  -744,   532,  -744,   640,   643,
1809 <     549,  -744,   555,   559,   560,  -744,   562,   569,   572,  -744,
1810 <     573,    70,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1811 <    -744,   558,   588,   595,   597,   146,  -744,  -744,  -744,  -744,
1812 <     623,   625,   687,   658,   659,   454,   606,  -744,  -744,   704,
1813 <     663,   706,   707,   709,   713,   714,   715,    79,   159,   717,
1814 <     718,   646,   719,   720,   626,  -744,   628,   622,  -744,   624,
1815 <     128,  -744,  -744,  -744,  -744,   629,   630,  -744,    22,  -744,
1816 <    -744,  -744,   728,   632,  -744,   634,   635,   636,  -744,   637,
1817 <     639,   641,   430,   642,   645,   648,   649,   650,   651,   652,
1818 <     653,   654,   656,   657,  -744,  -744,   754,   756,   454,   759,
1819 <     776,   778,   779,   761,   784,   785,   454,   454,   786,   786,
1820 <     671,  -744,  -744,   769,   122,   770,   729,   672,   773,   774,
1821 <     775,   777,   795,   780,   781,   782,   681,  -744,   783,   787,
1822 <     682,  -744,   689,  -744,   788,   789,   690,   694,  -744,   695,
1823 <     696,   697,   698,   699,   702,   703,   705,   708,   710,   712,
1824 <     716,   721,   722,   723,   724,   725,   726,   727,   730,   731,
1825 <     732,   733,   734,   735,   736,   737,   738,   739,   551,   740,
1826 <     599,   741,   742,   743,   744,   745,   746,   747,   748,   749,
1827 <     750,   751,   752,   753,   755,   757,   758,   760,   762,   763,
1828 <    -744,  -744,   801,   764,   711,   803,   823,   810,   812,   814,
1829 <     765,  -744,   815,   766,   817,   767,  -744,  -744,   768,   825,
1830 <     826,   870,   772,  -744,   790,  -744,   184,   791,   792,  -744,
1831 <    -744,   853,   816,   771,   856,   861,   863,   793,   865,   794,
1832 <    -744,  -744,   867,   872,   873,   797,  -744,   798,   799,   800,
1833 <     802,   804,   805,  -744,   806,   808,   809,   811,   813,   818,
1834 <     819,   820,  -744,  -744,  -195,  -744,  -744,  -744,  -172,  -744,
1835 <     821,   822,   824,   827,   828,  -744,  -744,   874,   829,   875,
1836 <     830,  -744,  -744,   876,   831,   833,  -744,   835,  -744,  -744,
1837 <    -744,  -744,  -744,  -744,  -744,   454,   454,   454,   454,   454,
1838 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1839 <    -744,  -744,  -744,   836,   837,   838,   839,   840,   841,   842,
1840 <     843,   844,   845,   846,   847,   314,   848,   849,  -744,   850,
1841 <     851,   852,   854,   855,    13,   857,   858,   859,   860,   862,
1842 <     864,   866,   868,  -744,   869,   871,  -744,  -744,   877,   878,
1843 <     879,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1844 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1845 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1846 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1847 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1848 <    -744,  -167,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1849 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1850 <    -744,  -744,  -744,  -744,  -154,  -744,  -744,  -744,  -744,  -744,
1851 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1852 <    -744,  -744,  -744,  -744,  -744,   880,   881,   309,   882,   883,
1853 <     884,   885,   886,  -744,   887,   893,   888,  -744,   -33,   889,
1854 <     890,   832,   891,  -744,  -744,  -744,   892,   894,  -744,   895,
1855 <     154,  -744,  -744,  -744,  -744,  -744,  -744,   896,   899,   511,
1856 <     900,   901,   902,   627,   903,  -744,   904,   905,   906,  -744,
1857 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1858 <    -744,  -744,  -744,  -744,  -744,    79,  -744,   159,  -744,  -744,
1859 <    -744,  -744,  -744,   907,   460,   908,  -744,   909,   665,  -744,
1860 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1861 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,   786,   786,
1862 <     786,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1863 <    -744,  -744,  -145,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1864 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   -50,  -744,  -744,
1865 <     551,  -744,   599,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1866 <    -744,  -744,  -744,  -744,   -41,  -744,  -744,  -744,  -744,  -744,
1867 <    -744,  -744,  -744,   -27,  -744,  -744,  -744,  -744,  -744,   -17,
1868 <    -744,  -744,  -744,   898,   870,   910,  -744,   911,   912,   -86,
1869 <     913,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1870 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1871 <    -744,  -744,  -744,    34,  -744,  -744,  -744,  -744,  -744,  -744,
1872 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1873 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    40,  -744,
1874 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1875 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    53,  -744,  -744,
1876 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1877 <    -744,    63,  -744,  -744,  -744,  -744,  -744,    13,  -744,   879,
1878 <    -744,  -744,  -744,   309,  -744,   893,  -744,   -33,  -744,  -744,
1879 <    -744,   914,   277,   916,   917,  -744,  -744,   511,  -744,   627,
1880 <    -744,   460,  -744,   665,  -744,  -744,  -744,  -744,  -744,  -744,
1881 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    68,  -744,  -744,
1882 <    -744,  -744,  -744,  -744,  -744,  -744,   277,  -744
1575 >    -789,  -789,  -789,  -396,  -317,  -788,  -641,  -789,  -789,   974,
1576 >    -789,  -789,  -789,  -789,   946,  -789,  -789,  -789,    54,  -789,
1577 >      17,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1578 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1579 >    1007,  -789,  -789,  -789,  -789,  -789,  -789,   610,  -789,  -789,
1580 >    -789,  -789,   836,  -789,  -789,  -789,  -789,    37,  -789,  -789,
1581 >    -789,  -789,  -789,  -194,  -789,  -789,  -789,   618,  -789,  -789,
1582 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -150,
1583 >    -789,  -789,  -789,  -153,  -789,  -789,  -789,   826,  -789,  -789,
1584 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1585 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -128,  -789,  -789,
1586 >    -789,  -789,  -789,  -138,  -789,   637,  -789,  -789,  -789,   -24,
1587 >    -789,  -789,  -789,  -789,  -789,   667,  -789,  -789,  -789,  -789,
1588 >    -789,  -789,  -789,  -110,  -789,  -789,  -789,  -789,  -789,  -789,
1589 >     619,  -789,  -789,  -789,  -789,  -789,   970,  -789,  -789,  -789,
1590 >    -789,   562,  -789,  -789,  -789,  -789,  -789,  -123,  -789,  -789,
1591 >    -789,   592,  -789,  -789,  -789,  -789,  -111,  -789,  -789,  -789,
1592 >     876,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1593 >    -789,  -789,   -92,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1594 >    -789,   690,  -789,  -789,  -789,  -789,  -789,   975,  -789,  -789,
1595 >    -789,  -789,  1079,  -789,  -789,  -789,  -789,   801,  -789,  -789,
1596 >    -789,  -789,  1025,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1597 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1598 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1599 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1600 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1601 >    -789,    80,  -789,  -789,  -789,    71,  -789,  -789,  -789,  -789,
1602 >    -789,  1111,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1603 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   979,  -789,
1604 >    -789,  -789,  -789,  -789,  -789,  -789,  -789
1605   };
1606  
1607 < /* YYPGOTO[NTERM-NUM].  */
1608 < static const yytype_int16 yypgoto[] =
1607 >  /* YYDEFGOTO[NTERM-NUM].  */
1608 > static const yytype_int16 yydefgoto[] =
1609   {
1610 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1611 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1612 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1613 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1614 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1615 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1616 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1617 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1618 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1619 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1620 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1621 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1622 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1623 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1624 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1625 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1626 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1627 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1628 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1629 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1630 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1631 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1632 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1633 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1634 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1635 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1636 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1637 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1638 <    -744,  -744,  -744
1610 >      -1,     1,    25,   839,   840,  1103,  1104,    26,   228,   229,
1611 >     230,   231,    27,   274,   275,   276,   277,   800,   801,   804,
1612 >     805,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1613 >     287,   288,   289,   290,   291,   292,   293,   294,    28,    74,
1614 >      75,    76,    77,    78,    29,    61,   513,   514,   515,   516,
1615 >      30,   298,   299,   300,   301,   302,  1065,  1066,  1067,  1068,
1616 >    1069,  1241,  1312,  1313,    31,    62,   528,   529,   530,   531,
1617 >     532,   533,   534,   535,   536,   537,   538,   764,  1217,  1218,
1618 >     539,   758,  1188,  1189,    32,    51,   349,   350,   351,   352,
1619 >     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1620 >     363,   364,   365,   366,   367,   629,  1087,  1088,    33,    59,
1621 >     499,   743,  1159,  1160,   500,   501,   502,  1163,  1005,  1006,
1622 >     503,   504,    34,    57,   477,   478,   479,   480,   481,   482,
1623 >     483,   728,  1145,  1146,   484,   485,   486,    35,    63,   544,
1624 >     545,   546,   547,   548,    36,   305,   306,   307,    37,    69,
1625 >     600,   601,   602,   603,   604,   821,  1255,  1256,    38,    66,
1626 >     584,   585,   586,   587,   811,  1236,  1237,    39,    52,   383,
1627 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1628 >     652,  1116,  1117,   394,   395,   396,   397,   398,    40,    58,
1629 >     490,   491,   492,   493,    41,    53,   402,   403,   404,   405,
1630 >      42,   115,   116,   117,    43,    55,   412,   413,   414,   415,
1631 >      44,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1632 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1633 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1634 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1635 >     209,   210,   211,   212,   213,   214,   215,   216,   217,   445,
1636 >     965,   966,   218,   443,   940,   941,   219,   220,   221,    45,
1637 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1638 >     104,   105,   106,   107,   108,   109,    46,   244,   245,   246,
1639 >     247,   248,   249,   250,   251,   252,   253
1640   };
1641  
1642 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1643 <   positive, shift that token.  If negative, reduce the rule which
1644 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1922 < #define YYTABLE_NINF -108
1642 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1643 >     positive, shift that token.  If negative, reduce the rule whose
1644 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1645   static const yytype_int16 yytable[] =
1646   {
1647 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1648 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1649 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1650 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1651 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1652 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1653 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1654 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1655 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1656 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1657 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1658 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1659 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1660 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1661 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1662 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1663 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1664 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1665 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1666 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1667 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1668 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1669 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1670 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1671 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1672 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1673 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1674 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1675 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1676 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1677 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1678 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1679 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1680 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1681 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1682 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1683 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1684 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1685 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1686 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
1687 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
1688 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
1689 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
1690 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
1691 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
1692 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
1693 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
1694 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
1695 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
1696 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
1697 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
1698 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
1699 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
1700 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
1701 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
1702 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
1703 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
1704 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
1705 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
1706 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
1707 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
1708 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
1709 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
1710 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
1711 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
1712 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
1713 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
1714 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
1715 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
1716 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
1717 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
1718 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
1719 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
1720 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
1721 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
1722 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
1723 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
1724 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
1725 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
1726 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
1727 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
1728 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
1729 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
1730 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
1731 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
1732 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
1733 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
1734 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
1735 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
1736 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
1737 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
1738 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
1739 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
1740 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
1741 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
1742 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
1743 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
1744 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
1745 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
1746 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
1747 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
1748 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
1749 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
1750 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
1751 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
1752 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
1753 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
1754 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
1755 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
1756 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
1757 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
1758 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
1759 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
1760 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
1647 >     867,   868,   614,   303,   616,  1114,   618,   619,   399,    49,
1648 >      70,   296,   368,   540,   369,    50,   370,   225,    54,   494,
1649 >     399,  1085,   113,   113,   596,   708,   581,   409,   371,   709,
1650 >     510,   581,   710,  1061,    71,   296,   711,    56,   866,   409,
1651 >      60,    72,   487,    64,   372,  1051,    65,   541,  1053,  1052,
1652 >    1156,   225,  1054,  1129,    67,  1131,  1258,  1130,   468,  1132,
1653 >    1259,  1263,   119,   517,    68,  1264,   110,   120,   121,   373,
1654 >     487,   374,   400,   122,   469,   111,   495,   112,   375,   518,
1655 >     118,   123,   124,   496,   400,   497,   114,   114,   125,   376,
1656 >     470,   126,   127,   542,   596,   519,  1086,   128,   303,   222,
1657 >     673,   674,   129,   130,   304,   131,   132,   133,   681,   134,
1658 >     511,    73,   685,   377,   223,   226,   224,   690,   135,   232,
1659 >     693,   233,   136,   137,   471,   597,   510,   582,   410,   520,
1660 >     703,   704,   582,   138,  1062,  1284,   401,   378,   234,   227,
1661 >     410,   543,   717,   139,   498,   720,   721,   331,   401,   226,
1662 >     140,   295,   141,   308,   142,   411,   143,   379,   144,   145,
1663 >     309,   332,   333,   505,   521,   334,   380,   411,  1267,   254,
1664 >     488,   146,  1268,   227,    47,    48,   147,   148,   149,   472,
1665 >     150,   151,   152,  1061,   522,   153,  -127,   473,   474,   310,
1666 >    1269,  1157,  1277,   255,  1270,   597,  1278,  1115,   488,   304,
1667 >     523,  1158,   311,  1279,   559,   512,   511,  1280,   475,   312,
1668 >    -127,   154,   381,   335,   315,  1281,  1288,   524,   525,  1282,
1669 >    1289,   155,   156,   157,   158,   159,   160,   256,  1063,   316,
1670 >     336,   337,   338,   339,   340,   317,   257,   297,   341,   781,
1671 >     382,   664,   342,   313,   590,   660,   772,   598,   343,   583,
1672 >     508,   599,   745,   161,   583,   407,  1064,   823,   258,   344,
1673 >     345,   297,   259,   753,   812,   592,  1242,    79,   526,   489,
1674 >     260,   346,   670,   261,   262,   738,   540,   162,   163,   164,
1675 >     318,   165,   166,   167,  1062,   476,   588,   168,    80,    81,
1676 >     527,   734,   169,   347,    82,   466,   766,   489,  1100,  1101,
1677 >    1102,   512,   494,  1315,   319,   263,   608,  1316,    70,   235,
1678 >     541,   853,  1260,  1261,  1262,   320,   858,   598,   321,   861,
1679 >     322,   599,   264,   865,   323,   265,   266,   267,   324,    83,
1680 >      84,   594,    71,   348,   325,    85,    86,   236,   326,    72,
1681 >     327,    87,    88,    89,   468,   237,   798,   799,   328,    90,
1682 >      91,   406,   268,   802,   803,   416,   542,   238,   239,   495,
1683 >     469,   609,   240,   241,   242,   417,   496,   418,   497,   269,
1684 >     270,   271,   871,   872,    92,    93,   470,   419,  1063,   420,
1685 >     643,   421,   610,   422,   423,   605,   424,   243,   119,   517,
1686 >     425,   426,   427,   120,   121,   428,   429,   272,   273,   122,
1687 >     430,   866,   579,   431,   543,   518,  1064,   123,   124,    73,
1688 >     471,   432,   433,   434,   125,   435,   436,   126,   127,   437,
1689 >     438,   519,   439,   128,   440,   441,   442,   498,   129,   130,
1690 >     444,   131,   132,   133,   254,   134,  1075,  1076,  1077,  1078,
1691 >    1079,  1080,  1081,   446,   135,   447,   448,   449,   136,   137,
1692 >    1303,   450,   451,   452,   453,   520,   454,   455,   255,   138,
1693 >     456,   457,   458,   459,   460,   472,   461,   462,   463,   139,
1694 >     464,   465,   506,   473,   474,   507,   140,   549,   141,   550,
1695 >     142,  1304,   143,  1305,   144,   145,   613,   551,   552,   553,
1696 >     521,   554,   256,   555,   475,   556,   560,   146,  1168,   561,
1697 >     329,   257,   147,   148,   149,   562,   150,   151,   152,   563,
1698 >     522,   153,  1169,   832,   833,   834,   835,   836,   837,   838,
1699 >    1170,   564,   565,   258,   566,   606,   523,   259,  1306,   567,
1700 >     568,   569,   570,   571,  1171,   260,   572,   154,   261,   262,
1701 >     573,   574,   557,   524,   525,  1307,   575,   155,   156,   157,
1702 >     158,   159,   160,   576,  1135,   577,   578,   589,   593,   607,
1703 >     611,   612,   613,   615,   368,  1172,   369,  1173,   370,   617,
1704 >     263,   476,   620,   621,   622,  1136,   623,   624,   626,   161,
1705 >     371,   625,  1308,  1309,  1137,   627,   628,   264,   630,   631,
1706 >     265,   266,   267,  1174,   526,   666,   372,   672,   632,  1285,
1707 >     633,   634,   635,   162,   163,   164,   636,   165,   166,   167,
1708 >     645,   637,   638,   168,   639,  1138,   527,   268,   169,   640,
1709 >     641,   373,   642,   374,   675,   646,  1175,   647,  1176,   648,
1710 >     375,   649,   650,   651,   269,   270,   271,   653,  1310,   654,
1711 >     655,   376,  1311,   656,  1139,  1140,   667,  1177,   657,  1226,
1712 >     658,   659,  1141,   662,   663,   668,     2,     3,   669,   676,
1713 >       4,   677,   272,   273,   678,   377,   679,  1178,   680,   682,
1714 >       5,   683,  1179,     6,     7,   699,  1180,  1142,   684,   686,
1715 >       8,   687,   331,  1181,   688,   689,   691,   692,  1182,   378,
1716 >     694,     9,   695,  1143,    10,    11,   332,   333,   696,   697,
1717 >     334,   698,  1183,   700,   702,  1184,   705,  1185,   701,   379,
1718 >     706,  1227,   707,   712,   713,   714,   715,   716,   380,  1186,
1719 >     718,   719,    12,   722,   723,   724,  1187,    13,   747,   725,
1720 >     748,   777,   786,   783,   740,   774,    14,   943,   726,   944,
1721 >     945,   775,  1228,   727,   776,   749,   729,   730,   335,  1229,
1722 >     731,   732,   733,   736,   737,  1144,    15,    16,  1230,   741,
1723 >     742,   744,   235,   750,   381,   336,   337,   338,   339,   340,
1724 >     751,   752,   756,   341,    17,   755,   757,   342,   768,  1195,
1725 >     759,  1196,  1197,   343,  1231,   760,  1232,  1233,   782,   761,
1726 >     236,    18,   382,   762,   344,   345,   763,   765,   237,   778,
1727 >     769,  1234,   785,   779,    19,    20,   346,   770,  1235,   771,
1728 >     238,   239,   780,   920,   784,   240,   241,   242,   787,   788,
1729 >     789,  1245,   790,   791,   792,   793,    21,   794,   347,   795,
1730 >     796,   797,   806,   808,   807,   809,   814,   817,   851,    22,
1731 >     243,   815,   862,   810,   816,   818,   819,    23,   825,   852,
1732 >     820,    24,   822,   854,   855,   946,   947,   948,   826,   949,
1733 >     950,   827,   951,   952,   828,   953,   829,   954,   348,   830,
1734 >     955,   831,   841,   956,   957,   842,   958,   843,   844,   845,
1735 >     846,   959,   847,  1246,   848,   960,   961,   962,   849,   856,
1736 >     850,   857,   859,   860,   863,   963,   864,  1198,  1199,  1200,
1737 >     964,  1201,  1202,   866,  1203,  1204,   869,  1205,   877,  1206,
1738 >     870,   880,  1207,   873,  1247,  1208,  1209,   875,  1210,   876,
1739 >     878,  1248,   879,  1211,   874,   881,    79,  1212,  1213,  1214,
1740 >    1249,   921,   922,   923,   882,   924,   925,  1215,   926,   927,
1741 >     883,   928,  1216,   929,   884,   885,   930,    80,    81,   931,
1742 >     932,   886,   933,    82,   887,   888,  1250,   934,  1251,  1252,
1743 >     889,   935,   936,   937,   890,   891,   892,   893,   894,   895,
1744 >     989,   938,   896,  1253,   897,   992,   939,   898,   899,   900,
1745 >    1254,   993,   901,   902,   903,   904,   905,   906,    83,    84,
1746 >     907,   908,   909,   910,    85,    86,   911,   994,   912,   913,
1747 >      87,    88,    89,   914,   915,   916,   917,   918,    90,    91,
1748 >     995,   919,   991,   996,   998,   990,   999,  1001,   942,  1002,
1749 >     967,   968,   969,  1004,  1010,  1011,  1013,   970,  1016,   971,
1750 >     972,  1017,  1018,    92,    93,   973,   974,   975,   976,   977,
1751 >    1019,   978,   979,   980,   981,   982,  1014,   983,   984,   985,
1752 >    1020,   986,   987,   988,   997,  1000,  1022,  1024,  1007,  1003,
1753 >    1025,  1008,  1009,  1012,  1026,  1057,  1071,  1023,  1015,  1021,
1754 >    1073,  1224,  1027,  1028,  1029,  1030,  1271,  1031,  1032,  1033,
1755 >    1034,   314,  1035,  1036,  1037,  1038,  1039,  1040,  1041,  1042,
1756 >    1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1055,  1056,
1757 >    1283,  1059,  1243,  1058,  1060,  1070,  1223,  1074,  1082,  1072,
1758 >    1083,  1084,  1089,  1090,  1091,  1092,  1294,  1093,  1094,  1295,
1759 >    1296,  1095,  1317,   754,  1096,  1297,  1097,  1098,  1099,  1105,
1760 >    1298,  1290,  1293,  1106,   591,  1107,  1108,   746,  1272,  1109,
1761 >    1110,  1111,  1112,  1113,   735,  1118,   767,  1119,  1120,  1121,
1762 >    1122,  1123,  1124,  1125,  1126,  1127,  1128,  1133,  1292,  1134,
1763 >    1147,  1148,   824,   773,  1149,  1150,  1314,  1151,  1152,  1153,
1764 >    1161,  1299,  1291,  1154,  1155,   644,   813,  1164,  1165,  1162,
1765 >     739,  1166,  1167,  1190,  1191,  1192,  1193,  1194,  1219,  1220,
1766 >    1221,  1222,  1225,  1238,   408,   467,  1244,  1239,  1240,  1257,
1767 >    1273,  1265,   509,  1274,  1287,   330,  1275,  1276,  1286,  1300,
1768 >    1301,  1302,  1266,   671,     0,     0,     0,     0,     0,     0,
1769 >     580,     0,     0,   558,     0,     0,     0,     0,     0,     0,
1770 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1771         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   661,
1773         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774 <       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1774 >       0,     0,     0,     0,     0,   595,     0,     0,     0,     0,
1775         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
1776         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777 <       0,     0,     0,     0,     0,     0,   564
1777 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784 >       0,     0,     0,     0,     0,     0,     0,   665
1785   };
1786  
2048 #define yypact_value_is_default(yystate) \
2049  ((yystate) == (-744))
2050
2051 #define yytable_value_is_error(yytable_value) \
2052  YYID (0)
2053
1787   static const yytype_int16 yycheck[] =
1788   {
1789 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
1790 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
1791 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
1792 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
1793 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
1794 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
1795 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
1796 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
1797 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
1798 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
1799 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
1800 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
1801 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
1802 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
1803 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
1804 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
1805 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
1806 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
1807 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
1808 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
1809 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
1810 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
1811 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
1812 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
1813 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
1814 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
1815 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
1816 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
1817 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
1818 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
1819 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
1820 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
1821 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
1822 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
1823 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
1824 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
1825 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
1826 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
1827 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
1828 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
1829 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
1830 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
1831 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
1832 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
1833 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
1834 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
1835 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
1836 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
1837 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
1838 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
1839 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
1840 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
1841 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
1842 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
1843 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
1844 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
1845 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
1846 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
1847 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
1848 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
1849 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
1850 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
1851 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
1852 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
1853 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
1854 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
1855 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
1856 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
1857 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
1858 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
1859 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
1860 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
1861 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
1862 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
1863 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
1864 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
1865 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
1866 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
1867 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
1868 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
1869 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
1870 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
1871 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
1872 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
1873 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
1874 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
1875 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
1876 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
1877 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
1878 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
1879 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
1880 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
1881 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
1882 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
1883 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
1884 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1885 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
1886 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
1887 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
1888 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
1889 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
1890 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
1891 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
1892 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
1893 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
1894 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1895 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
1896 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
1897 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
1898 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
1899 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
1900 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
1901 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
1902 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1789 >     641,   642,   319,     1,   321,     8,   323,   324,     1,   235,
1790 >       1,     1,     1,     1,     3,   235,     5,     1,   235,     1,
1791 >       1,    53,     1,     1,     1,   215,     1,     1,    17,   219,
1792 >       1,     1,   215,     1,    25,     1,   219,   235,   112,     1,
1793 >     235,    32,     1,   235,    33,   233,   235,    35,   233,   237,
1794 >      49,     1,   237,   233,   235,   233,   233,   237,     1,   237,
1795 >     237,   233,     1,     1,   235,   237,   235,     6,     7,    58,
1796 >       1,    60,    65,    12,    17,   235,    58,   235,    67,    17,
1797 >     235,    20,    21,    65,    65,    67,    65,    65,    27,    78,
1798 >      33,    30,    31,    81,     1,    33,   128,    36,     1,   235,
1799 >     417,   418,    41,    42,   102,    44,    45,    46,   425,    48,
1800 >      81,   102,   429,   102,   235,    99,   235,   434,    57,   235,
1801 >     437,   235,    61,    62,    67,   102,     1,   102,   102,    67,
1802 >     447,   448,   102,    72,   102,   209,   129,   126,   235,   123,
1803 >     102,   129,   459,    82,   126,   462,   463,     1,   129,    99,
1804 >      89,   235,    91,   235,    93,   129,    95,   146,    97,    98,
1805 >     233,    15,    16,   233,   102,    19,   155,   129,   233,     1,
1806 >     129,   110,   237,   123,   233,   234,   115,   116,   117,   122,
1807 >     119,   120,   121,     1,   122,   124,   176,   130,   131,   236,
1808 >     233,   190,   233,    25,   237,   102,   237,   200,   129,   102,
1809 >     138,   200,   236,   233,   233,   176,    81,   237,   151,   236,
1810 >     176,   150,   201,    67,   236,   233,   233,   155,   156,   237,
1811 >     237,   160,   161,   162,   163,   164,   165,    59,   196,   236,
1812 >      84,    85,    86,    87,    88,   236,    68,   227,    92,   556,
1813 >     229,   234,    96,   234,   234,   234,   234,   224,   102,   224,
1814 >     234,   228,   234,   192,   224,   234,   224,   234,    90,   113,
1815 >     114,   227,    94,   234,   234,   176,   234,     1,   206,   228,
1816 >     102,   125,   234,   105,   106,   234,     1,   216,   217,   218,
1817 >     236,   220,   221,   222,   102,   228,   233,   226,    22,    23,
1818 >     228,   234,   231,   147,    28,   234,   234,   228,     9,    10,
1819 >      11,   176,     1,   233,   236,   137,   233,   237,     1,     1,
1820 >      35,   628,  1100,  1101,  1102,   236,   633,   224,   236,   636,
1821 >     236,   228,   154,   640,   236,   157,   158,   159,   236,    63,
1822 >      64,   234,    25,   187,   236,    69,    70,    29,   236,    32,
1823 >     236,    75,    76,    77,     1,    37,   204,   205,   236,    83,
1824 >      84,   236,   184,   204,   205,   236,    81,    49,    50,    58,
1825 >      17,   112,    54,    55,    56,   236,    65,   236,    67,   201,
1826 >     202,   203,   180,   181,   108,   109,    33,   236,   196,   236,
1827 >     234,   236,   112,   236,   236,   127,   236,    79,     1,     1,
1828 >     236,   236,   236,     6,     7,   236,   236,   229,   230,    12,
1829 >     236,   112,   234,   236,   129,    17,   224,    20,    21,   102,
1830 >      67,   236,   236,   236,    27,   236,   236,    30,    31,   236,
1831 >     236,    33,   236,    36,   236,   236,   236,   126,    41,    42,
1832 >     236,    44,    45,    46,     1,    48,   832,   833,   834,   835,
1833 >     836,   837,   838,   236,    57,   236,   236,   236,    61,    62,
1834 >      40,   236,   236,   236,   236,    67,   236,   236,    25,    72,
1835 >     236,   236,   236,   236,   236,   122,   236,   236,   236,    82,
1836 >     236,   236,   236,   130,   131,   236,    89,   236,    91,   236,
1837 >      93,    71,    95,    73,    97,    98,   112,   236,   236,   236,
1838 >     102,   236,    59,   236,   151,   236,   236,   110,     4,   236,
1839 >     234,    68,   115,   116,   117,   236,   119,   120,   121,   236,
1840 >     122,   124,    18,   139,   140,   141,   142,   143,   144,   145,
1841 >      26,   236,   236,    90,   236,   127,   138,    94,   118,   236,
1842 >     236,   236,   236,   236,    40,   102,   236,   150,   105,   106,
1843 >     236,   236,   234,   155,   156,   135,   236,   160,   161,   162,
1844 >     163,   164,   165,   236,    13,   236,   236,   236,   236,   127,
1845 >     215,   112,   112,   112,     1,    71,     3,    73,     5,   112,
1846 >     137,   228,   112,   112,   215,    34,   215,   233,   236,   192,
1847 >      17,   233,   172,   173,    43,   236,   236,   154,   236,   236,
1848 >     157,   158,   159,    99,   206,   127,    33,   215,   236,  1240,
1849 >     236,   236,   236,   216,   217,   218,   236,   220,   221,   222,
1850 >     233,   236,   236,   226,   236,    74,   228,   184,   231,   236,
1851 >     236,    58,   236,    60,   215,   236,   132,   236,   134,   236,
1852 >      67,   236,   236,   236,   201,   202,   203,   236,   228,   236,
1853 >     236,    78,   232,   236,   103,   104,   233,   153,   236,    73,
1854 >     236,   236,   111,   236,   236,   236,     0,     1,   236,   112,
1855 >       4,   215,   229,   230,   112,   102,   127,   173,   215,   215,
1856 >      14,   112,   178,    17,    18,   236,   182,   136,   112,   112,
1857 >      24,   215,     1,   189,   215,   215,   112,   112,   194,   126,
1858 >     112,    35,   112,   152,    38,    39,    15,    16,   112,   112,
1859 >      19,   215,   208,   215,   215,   211,   215,   213,   236,   146,
1860 >     215,   135,   215,   215,   215,   215,   127,   112,   155,   225,
1861 >     215,   215,    66,   215,   215,   233,   232,    71,   127,   233,
1862 >     127,   127,   112,   127,   233,   215,    80,    49,   236,    51,
1863 >      52,   215,   166,   236,   215,   233,   236,   236,    67,   173,
1864 >     236,   236,   236,   236,   236,   214,   100,   101,   182,   236,
1865 >     236,   236,     1,   233,   201,    84,    85,    86,    87,    88,
1866 >     236,   236,   236,    92,   118,   233,   236,    96,   233,    49,
1867 >     236,    51,    52,   102,   208,   236,   210,   211,   233,   236,
1868 >      29,   135,   229,   236,   113,   114,   236,   236,    37,   215,
1869 >     236,   225,   127,   215,   148,   149,   125,   236,   232,   236,
1870 >      49,    50,   215,    49,   215,    54,    55,    56,   112,   127,
1871 >     127,    73,   127,   127,   127,   127,   170,   127,   147,   127,
1872 >     112,   127,   127,   233,   127,   233,   215,   127,   112,   183,
1873 >      79,   233,   127,   236,   235,   233,   233,   191,   233,   112,
1874 >     236,   195,   236,   236,   112,   167,   168,   169,   233,   171,
1875 >     172,   233,   174,   175,   233,   177,   233,   179,   187,   233,
1876 >     182,   233,   233,   185,   186,   233,   188,   233,   233,   233,
1877 >     233,   193,   233,   135,   233,   197,   198,   199,   233,   112,
1878 >     233,   112,   112,   112,   112,   207,   112,   167,   168,   169,
1879 >     212,   171,   172,   112,   174,   175,   233,   177,   236,   179,
1880 >     127,   112,   182,   127,   166,   185,   186,   127,   188,   127,
1881 >     127,   173,   127,   193,   215,   127,     1,   197,   198,   199,
1882 >     182,   167,   168,   169,   127,   171,   172,   207,   174,   175,
1883 >     127,   177,   212,   179,   127,   233,   182,    22,    23,   185,
1884 >     186,   127,   188,    28,   127,   233,   208,   193,   210,   211,
1885 >     233,   197,   198,   199,   127,   127,   233,   233,   233,   233,
1886 >     127,   207,   233,   225,   233,   127,   212,   233,   233,   233,
1887 >     232,   112,   233,   233,   233,   233,   233,   233,    63,    64,
1888 >     233,   233,   233,   233,    69,    70,   233,   127,   233,   233,
1889 >      75,    76,    77,   233,   233,   233,   233,   233,    83,    84,
1890 >     127,   233,   236,   127,   127,   215,   127,   127,   233,   127,
1891 >     233,   233,   233,   112,   127,   127,   127,   233,   127,   233,
1892 >     233,   127,   127,   108,   109,   233,   233,   233,   233,   233,
1893 >     127,   233,   233,   233,   233,   233,   215,   233,   233,   233,
1894 >     215,   233,   233,   233,   233,   233,   127,   127,   233,   236,
1895 >     127,   233,   233,   233,   127,   127,   127,   233,   236,   236,
1896 >     127,  1054,   233,   233,   233,   233,   112,   233,   233,   233,
1897 >     233,    74,   233,   233,   233,   233,   233,   233,   233,   233,
1898 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1899 >     127,   233,  1065,   236,   233,   233,  1052,   233,   233,   236,
1900 >     233,   233,   233,   233,   233,   233,   133,   233,   233,   133,
1901 >     133,   233,  1316,   513,   233,  1278,   233,   233,   233,   233,
1902 >    1280,  1259,  1270,   233,   298,   233,   233,   500,  1162,   233,
1903 >     233,   233,   233,   233,   477,   233,   528,   233,   233,   233,
1904 >     233,   233,   233,   233,   233,   233,   233,   233,  1268,   233,
1905 >     233,   233,   600,   544,   233,   233,  1289,   233,   233,   233,
1906 >     223,  1282,  1264,   233,   233,   349,   584,   233,   233,   237,
1907 >     490,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1908 >     233,   233,   233,   233,   115,   170,   233,   236,   236,   233,
1909 >     233,  1130,   228,   238,   233,    94,   238,   238,   236,   233,
1910 >     233,   233,  1132,   412,    -1,    -1,    -1,    -1,    -1,    -1,
1911 >     274,    -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,
1912 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1914 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   383,
1915        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1916 <      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
1916 >      -1,    -1,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
1917        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1919 <      -1,    -1,    -1,    -1,    -1,    -1,   288
1919 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1920 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1921 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1926 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   402
1927   };
1928  
1929 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1930 <   symbol of state STATE-NUM.  */
1929 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1930 >     symbol of state STATE-NUM.  */
1931   static const yytype_uint16 yystos[] =
1932   {
1933 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
1934 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
1935 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
1936 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
1937 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
1938 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
1939 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
1940 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
1941 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
1942 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1943 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
1944 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
1945 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1946 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
1947 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
1948 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
1949 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
1950 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1951 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1952 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1933 >       0,   240,     0,     1,     4,    14,    17,    18,    24,    35,
1934 >      38,    39,    66,    71,    80,   100,   101,   118,   135,   148,
1935 >     149,   170,   183,   191,   195,   241,   246,   251,   277,   283,
1936 >     289,   303,   323,   347,   361,   376,   383,   387,   397,   406,
1937 >     427,   433,   439,   443,   449,   508,   525,   233,   234,   235,
1938 >     235,   324,   407,   434,   235,   444,   235,   362,   428,   348,
1939 >     235,   284,   304,   377,   235,   235,   398,   235,   235,   388,
1940 >       1,    25,    32,   102,   278,   279,   280,   281,   282,     1,
1941 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    77,
1942 >      83,    84,   108,   109,   509,   510,   511,   512,   513,   514,
1943 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1944 >     235,   235,   235,     1,    65,   440,   441,   442,   235,     1,
1945 >       6,     7,    12,    20,    21,    27,    30,    31,    36,    41,
1946 >      42,    44,    45,    46,    48,    57,    61,    62,    72,    82,
1947 >      89,    91,    93,    95,    97,    98,   110,   115,   116,   117,
1948 >     119,   120,   121,   124,   150,   160,   161,   162,   163,   164,
1949 >     165,   192,   216,   217,   218,   220,   221,   222,   226,   231,
1950 >     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
1951 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1952 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
1953 >     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1954 >     490,   491,   492,   493,   494,   495,   496,   497,   501,   505,
1955 >     506,   507,   235,   235,   235,     1,    99,   123,   247,   248,
1956 >     249,   250,   235,   235,   235,     1,    29,    37,    49,    50,
1957 >      54,    55,    56,    79,   526,   527,   528,   529,   530,   531,
1958 >     532,   533,   534,   535,     1,    25,    59,    68,    90,    94,
1959 >     102,   105,   106,   137,   154,   157,   158,   159,   184,   201,
1960 >     202,   203,   229,   230,   252,   253,   254,   255,   260,   261,
1961 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1962 >     272,   273,   274,   275,   276,   235,     1,   227,   290,   291,
1963 >     292,   293,   294,     1,   102,   384,   385,   386,   235,   233,
1964 >     236,   236,   236,   234,   279,   236,   236,   236,   236,   236,
1965 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   234,
1966 >     510,     1,    15,    16,    19,    67,    84,    85,    86,    87,
1967 >      88,    92,    96,   102,   113,   114,   125,   147,   187,   325,
1968 >     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1969 >     336,   337,   338,   339,   340,   341,   342,   343,     1,     3,
1970 >       5,    17,    33,    58,    60,    67,    78,   102,   126,   146,
1971 >     155,   201,   229,   408,   409,   410,   411,   412,   413,   414,
1972 >     415,   416,   417,   418,   422,   423,   424,   425,   426,     1,
1973 >      65,   129,   435,   436,   437,   438,   236,   234,   441,     1,
1974 >     102,   129,   445,   446,   447,   448,   236,   236,   236,   236,
1975 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1976 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1977 >     236,   236,   236,   502,   236,   498,   236,   236,   236,   236,
1978 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1979 >     236,   236,   236,   236,   236,   236,   234,   451,     1,    17,
1980 >      33,    67,   122,   130,   131,   151,   228,   363,   364,   365,
1981 >     366,   367,   368,   369,   373,   374,   375,     1,   129,   228,
1982 >     429,   430,   431,   432,     1,    58,    65,    67,   126,   349,
1983 >     353,   354,   355,   359,   360,   233,   236,   236,   234,   248,
1984 >       1,    81,   176,   285,   286,   287,   288,     1,    17,    33,
1985 >      67,   102,   122,   138,   155,   156,   206,   228,   305,   306,
1986 >     307,   308,   309,   310,   311,   312,   313,   314,   315,   319,
1987 >       1,    35,    81,   129,   378,   379,   380,   381,   382,   236,
1988 >     236,   236,   236,   236,   236,   236,   236,   234,   527,   233,
1989 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1990 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   234,
1991 >     253,     1,   102,   224,   399,   400,   401,   402,   233,   236,
1992 >     234,   291,   176,   236,   234,   385,     1,   102,   224,   228,
1993 >     389,   390,   391,   392,   393,   127,   127,   127,   233,   112,
1994 >     112,   215,   112,   112,   243,   112,   243,   112,   243,   243,
1995 >     112,   112,   215,   215,   233,   233,   236,   236,   236,   344,
1996 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1997 >     236,   236,   236,   234,   326,   233,   236,   236,   236,   236,
1998 >     236,   236,   419,   236,   236,   236,   236,   236,   236,   236,
1999 >     234,   409,   236,   236,   234,   436,   127,   233,   236,   236,
2000 >     234,   446,   215,   243,   243,   215,   112,   215,   112,   127,
2001 >     215,   243,   215,   112,   112,   243,   112,   215,   215,   215,
2002 >     243,   112,   112,   243,   112,   112,   112,   112,   215,   236,
2003 >     215,   236,   215,   243,   243,   215,   215,   215,   215,   219,
2004 >     215,   219,   215,   215,   215,   127,   112,   243,   215,   215,
2005 >     243,   243,   215,   215,   233,   233,   236,   236,   370,   236,
2006 >     236,   236,   236,   236,   234,   364,   236,   236,   234,   430,
2007 >     233,   236,   236,   350,   236,   234,   354,   127,   127,   233,
2008 >     233,   236,   236,   234,   286,   233,   236,   236,   320,   236,
2009 >     236,   236,   236,   236,   316,   236,   234,   306,   233,   236,
2010 >     236,   236,   234,   379,   215,   215,   215,   127,   215,   215,
2011 >     215,   243,   233,   127,   215,   127,   112,   112,   127,   127,
2012 >     127,   127,   127,   127,   127,   127,   112,   127,   204,   205,
2013 >     256,   257,   204,   205,   258,   259,   127,   127,   233,   233,
2014 >     236,   403,   234,   400,   215,   233,   235,   127,   233,   233,
2015 >     236,   394,   236,   234,   390,   233,   233,   233,   233,   233,
2016 >     233,   233,   139,   140,   141,   142,   143,   144,   145,   242,
2017 >     243,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2018 >     233,   112,   112,   243,   236,   112,   112,   112,   243,   112,
2019 >     112,   243,   127,   112,   112,   243,   112,   245,   245,   233,
2020 >     127,   180,   181,   127,   215,   127,   127,   236,   127,   127,
2021 >     112,   127,   127,   127,   127,   233,   127,   127,   233,   233,
2022 >     127,   127,   233,   233,   233,   233,   233,   233,   233,   233,
2023 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2024 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2025 >      49,   167,   168,   169,   171,   172,   174,   175,   177,   179,
2026 >     182,   185,   186,   188,   193,   197,   198,   199,   207,   212,
2027 >     503,   504,   233,    49,    51,    52,   167,   168,   169,   171,
2028 >     172,   174,   175,   177,   179,   182,   185,   186,   188,   193,
2029 >     197,   198,   199,   207,   212,   499,   500,   233,   233,   233,
2030 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2031 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   127,
2032 >     215,   236,   127,   112,   127,   127,   127,   233,   127,   127,
2033 >     233,   127,   127,   236,   112,   357,   358,   233,   233,   233,
2034 >     127,   127,   233,   127,   215,   236,   127,   127,   127,   127,
2035 >     215,   236,   127,   233,   127,   127,   127,   233,   233,   233,
2036 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2037 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2038 >     233,   233,   237,   233,   237,   233,   233,   127,   236,   233,
2039 >     233,     1,   102,   196,   224,   295,   296,   297,   298,   299,
2040 >     233,   127,   236,   127,   233,   242,   242,   242,   242,   242,
2041 >     242,   242,   233,   233,   233,    53,   128,   345,   346,   233,
2042 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2043 >       9,    10,    11,   244,   245,   233,   233,   233,   233,   233,
2044 >     233,   233,   233,   233,     8,   200,   420,   421,   233,   233,
2045 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2046 >     237,   233,   237,   233,   233,    13,    34,    43,    74,   103,
2047 >     104,   111,   136,   152,   214,   371,   372,   233,   233,   233,
2048 >     233,   233,   233,   233,   233,   233,    49,   190,   200,   351,
2049 >     352,   223,   237,   356,   233,   233,   233,   233,     4,    18,
2050 >      26,    40,    71,    73,    99,   132,   134,   153,   173,   178,
2051 >     182,   189,   194,   208,   211,   213,   225,   232,   321,   322,
2052 >     233,   233,   233,   233,   233,    49,    51,    52,   167,   168,
2053 >     169,   171,   172,   174,   175,   177,   179,   182,   185,   186,
2054 >     188,   193,   197,   198,   199,   207,   212,   317,   318,   233,
2055 >     233,   233,   233,   257,   259,   233,    73,   135,   166,   173,
2056 >     182,   208,   210,   211,   225,   232,   404,   405,   233,   236,
2057 >     236,   300,   234,   296,   233,    73,   135,   166,   173,   182,
2058 >     208,   210,   211,   225,   232,   395,   396,   233,   233,   237,
2059 >     244,   244,   244,   233,   237,   504,   500,   233,   237,   233,
2060 >     237,   112,   358,   233,   238,   238,   238,   233,   237,   233,
2061 >     237,   233,   237,   127,   209,   245,   236,   233,   233,   237,
2062 >     346,   421,   372,   352,   133,   133,   133,   322,   318,   405,
2063 >     233,   233,   233,    40,    71,    73,   118,   135,   172,   173,
2064 >     228,   232,   301,   302,   396,   233,   237,   302
2065 > };
2066 >
2067 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2068 > static const yytype_uint16 yyr1[] =
2069 > {
2070 >       0,   239,   240,   240,   241,   241,   241,   241,   241,   241,
2071 >     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2072 >     241,   241,   241,   241,   241,   241,   241,   242,   242,   243,
2073 >     243,   243,   243,   243,   243,   243,   243,   244,   244,   245,
2074 >     245,   245,   245,   246,   247,   247,   248,   248,   248,   249,
2075 >     250,   251,   252,   252,   253,   253,   253,   253,   253,   253,
2076 >     253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
2077 >     253,   253,   253,   253,   254,   255,   256,   256,   257,   257,
2078 >     258,   258,   259,   259,   260,   261,   262,   263,   264,   265,
2079 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2080 >     276,   277,   278,   278,   279,   279,   279,   279,   280,   281,
2081 >     282,   284,   283,   285,   285,   286,   286,   286,   287,   288,
2082 >     289,   290,   290,   291,   291,   291,   292,   294,   293,   295,
2083 >     295,   296,   296,   296,   296,   297,   298,   298,   300,   299,
2084 >     301,   301,   302,   302,   302,   302,   302,   302,   302,   302,
2085 >     302,   304,   303,   305,   305,   306,   306,   306,   306,   306,
2086 >     306,   306,   306,   306,   306,   306,   307,   308,   309,   310,
2087 >     311,   312,   313,   314,   316,   315,   317,   317,   318,   318,
2088 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2089 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2090 >     320,   319,   321,   321,   322,   322,   322,   322,   322,   322,
2091 >     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
2092 >     322,   322,   322,   322,   322,   322,   322,   324,   323,   325,
2093 >     325,   326,   326,   326,   326,   326,   326,   326,   326,   326,
2094 >     326,   326,   326,   326,   326,   326,   326,   326,   326,   327,
2095 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2096 >     338,   339,   340,   341,   342,   344,   343,   345,   345,   346,
2097 >     346,   348,   347,   350,   349,   351,   351,   352,   352,   352,
2098 >     353,   353,   354,   354,   354,   354,   354,   356,   355,   357,
2099 >     357,   358,   358,   359,   360,   362,   361,   363,   363,   364,
2100 >     364,   364,   364,   364,   364,   364,   364,   364,   365,   366,
2101 >     367,   368,   370,   369,   371,   371,   372,   372,   372,   372,
2102 >     372,   372,   372,   372,   372,   372,   373,   374,   375,   377,
2103 >     376,   378,   378,   379,   379,   379,   379,   380,   381,   382,
2104 >     383,   384,   384,   385,   385,   386,   388,   387,   389,   389,
2105 >     390,   390,   390,   390,   391,   392,   394,   393,   395,   395,
2106 >     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
2107 >     398,   397,   399,   399,   400,   400,   400,   401,   403,   402,
2108 >     404,   404,   405,   405,   405,   405,   405,   405,   405,   405,
2109 >     405,   405,   407,   406,   408,   408,   409,   409,   409,   409,
2110 >     409,   409,   409,   409,   409,   409,   409,   409,   409,   409,
2111 >     409,   410,   411,   412,   413,   414,   415,   416,   417,   417,
2112 >     419,   418,   420,   420,   421,   421,   422,   423,   424,   425,
2113 >     426,   428,   427,   429,   429,   430,   430,   430,   431,   432,
2114 >     434,   433,   435,   435,   436,   436,   436,   437,   438,   439,
2115 >     440,   440,   441,   441,   442,   444,   443,   445,   445,   446,
2116 >     446,   446,   447,   448,   449,   450,   450,   451,   451,   451,
2117 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2118 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2119 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2120 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2121 >     451,   451,   451,   451,   451,   451,   451,   451,   452,   453,
2122       454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2123 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
2124 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2125 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2126 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
2127 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
2128 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
2129 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2130 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
2131 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2132 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2133 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
2134 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
2135 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2136 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
2137 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
2138 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
2139 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
2140 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
2141 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
2142 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2143 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2144 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
2145 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2146 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
2147 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
2148 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
2149 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
2150 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
2151 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
2152 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
2153 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
2154 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
2155 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2156 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
2157 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
2158 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
2159 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
2160 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
2161 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2162 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
2163 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
2164 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
2165 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
2166 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
2167 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
2168 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
2169 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
2170 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
2171 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
2172 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
2173 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
2174 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
2175 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
2176 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
2177 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
2178 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
2179 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
2180 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
2181 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
2182 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
2183 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
2184 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
2185 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2186 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2187 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2188 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
2189 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
2190 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
2191 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
2192 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2193 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2194 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2195 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2196 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2197 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2198 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2199 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2200 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2201 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2202 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2203 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2204 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2205 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2206 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2207 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2208 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2290 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2291 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2292 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2293 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2294 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2295 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2296 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2297 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2298 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2299 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2300 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2301 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2302 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2303 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2304 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2305 <     215,   291,   287,   359,   368,   215,   219,   273
2123 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2124 >     474,   475,   476,   477,   478,   478,   479,   479,   480,   481,
2125 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
2126 >     492,   493,   494,   495,   496,   498,   497,   499,   499,   500,
2127 >     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
2128 >     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
2129 >     500,   502,   501,   503,   503,   504,   504,   504,   504,   504,
2130 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2131 >     504,   504,   504,   504,   504,   505,   506,   507,   508,   509,
2132 >     509,   510,   510,   510,   510,   510,   510,   510,   510,   510,
2133 >     510,   510,   510,   510,   510,   510,   511,   512,   513,   514,
2134 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
2135 >     525,   526,   526,   527,   527,   527,   527,   527,   527,   527,
2136 >     527,   527,   528,   529,   530,   531,   532,   533,   534,   535
2137 > };
2138 >
2139 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2140 > static const yytype_uint8 yyr2[] =
2141 > {
2142 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2144 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2145 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2146 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2147 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     2,     4,     4,     3,     1,     1,     1,
2150 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2151 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2152 >       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
2153 >       4,     0,     6,     2,     1,     1,     1,     2,     4,     4,
2154 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
2155 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
2156 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2157 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2158 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2159 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2160 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 >       0,     5,     3,     1,     3,     1,     3,     1,     3,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2165 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2167 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2168 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2169 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2170 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2171 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2173 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2175 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2176 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2177 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2178 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2179 >       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2180 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2181 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2182 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2183 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2184 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
2185 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2186 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2187 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
2188 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
2189 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2190 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2191 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2192 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2193 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2194 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2195 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2196 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2197 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2198 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2199 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2200 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2201 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2202 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2203 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
2204 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2205 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2206 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2207 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2208 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4
2209   };
2210  
2211 < #define yyerrok         (yyerrstatus = 0)
2212 < #define yyclearin       (yychar = YYEMPTY)
2213 < #define YYEMPTY         (-2)
2214 < #define YYEOF           0
2215 <
2216 < #define YYACCEPT        goto yyacceptlab
2217 < #define YYABORT         goto yyabortlab
2218 < #define YYERROR         goto yyerrorlab
2219 <
2220 <
2318 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2319 <   to ease the transition to the new meaning of YYERROR, for GCC.
2320 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2321 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2322 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2323 <   discussed.  */
2324 <
2325 < #define YYFAIL          goto yyerrlab
2326 < #if defined YYFAIL
2327 <  /* This is here to suppress warnings from the GCC cpp's
2328 <     -Wunused-macros.  Normally we don't worry about that warning, but
2329 <     some users do, and we want to make it easy for users to remove
2330 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2331 < #endif
2211 >
2212 > #define yyerrok         (yyerrstatus = 0)
2213 > #define yyclearin       (yychar = YYEMPTY)
2214 > #define YYEMPTY         (-2)
2215 > #define YYEOF           0
2216 >
2217 > #define YYACCEPT        goto yyacceptlab
2218 > #define YYABORT         goto yyabortlab
2219 > #define YYERROR         goto yyerrorlab
2220 >
2221  
2222   #define YYRECOVERING()  (!!yyerrstatus)
2223  
# Line 2345 | Line 2234 | do
2234    else                                                          \
2235      {                                                           \
2236        yyerror (YY_("syntax error: cannot back up")); \
2237 <      YYERROR;                                                  \
2238 <    }                                                           \
2239 < while (YYID (0))
2351 <
2237 >      YYERROR;                                                  \
2238 >    }                                                           \
2239 > while (0)
2240  
2241 < #define YYTERROR        1
2242 < #define YYERRCODE       256
2241 > /* Error token number */
2242 > #define YYTERROR        1
2243 > #define YYERRCODE       256
2244  
2356 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2357   If N is 0, then set CURRENT to the empty location which ends
2358   the previous symbol: RHS[0] (always defined).  */
2245  
2360 #ifndef YYLLOC_DEFAULT
2361 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2362    do                                                                  \
2363      if (YYID (N))                                                     \
2364        {                                                               \
2365          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2366          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2367          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2368          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2369        }                                                               \
2370      else                                                              \
2371        {                                                               \
2372          (Current).first_line   = (Current).last_line   =              \
2373            YYRHSLOC (Rhs, 0).last_line;                                \
2374          (Current).first_column = (Current).last_column =              \
2375            YYRHSLOC (Rhs, 0).last_column;                              \
2376        }                                                               \
2377    while (YYID (0))
2378 #endif
2246  
2247 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2247 > /* Enable debugging if requested.  */
2248 > #if YYDEBUG
2249  
2250 + # ifndef YYFPRINTF
2251 + #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2252 + #  define YYFPRINTF fprintf
2253 + # endif
2254  
2255 + # define YYDPRINTF(Args)                        \
2256 + do {                                            \
2257 +  if (yydebug)                                  \
2258 +    YYFPRINTF Args;                             \
2259 + } while (0)
2260  
2261   /* This macro is provided for backward compatibility. */
2385
2262   #ifndef YY_LOCATION_PRINT
2263   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2264   #endif
2265  
2266  
2267 < /* YYLEX -- calling `yylex' with the right arguments.  */
2268 <
2269 < #ifdef YYLEX_PARAM
2270 < # define YYLEX yylex (YYLEX_PARAM)
2271 < #else
2272 < # define YYLEX yylex ()
2273 < #endif
2274 <
2275 < /* Enable debugging if requested.  */
2276 < #if YYDEBUG
2401 <
2402 < # ifndef YYFPRINTF
2403 < #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2404 < #  define YYFPRINTF fprintf
2405 < # endif
2406 <
2407 < # define YYDPRINTF(Args)                        \
2408 < do {                                            \
2409 <  if (yydebug)                                  \
2410 <    YYFPRINTF Args;                             \
2411 < } while (YYID (0))
2412 <
2413 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2414 < do {                                                                      \
2415 <  if (yydebug)                                                            \
2416 <    {                                                                     \
2417 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2418 <      yy_symbol_print (stderr,                                            \
2419 <                  Type, Value); \
2420 <      YYFPRINTF (stderr, "\n");                                           \
2421 <    }                                                                     \
2422 < } while (YYID (0))
2267 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2268 > do {                                                                      \
2269 >  if (yydebug)                                                            \
2270 >    {                                                                     \
2271 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2272 >      yy_symbol_print (stderr,                                            \
2273 >                  Type, Value); \
2274 >      YYFPRINTF (stderr, "\n");                                           \
2275 >    }                                                                     \
2276 > } while (0)
2277  
2278  
2279 < /*--------------------------------.
2280 < | Print this symbol on YYOUTPUT.  |
2281 < `--------------------------------*/
2279 > /*----------------------------------------.
2280 > | Print this symbol's value on YYOUTPUT.  |
2281 > `----------------------------------------*/
2282  
2429 /*ARGSUSED*/
2430 #if (defined __STDC__ || defined __C99__FUNC__ \
2431     || defined __cplusplus || defined _MSC_VER)
2283   static void
2284   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2434 #else
2435 static void
2436 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2437    FILE *yyoutput;
2438    int yytype;
2439    YYSTYPE const * const yyvaluep;
2440 #endif
2285   {
2286    FILE *yyo = yyoutput;
2287    YYUSE (yyo);
# Line 2446 | Line 2290 | yy_symbol_value_print (yyoutput, yytype,
2290   # ifdef YYPRINT
2291    if (yytype < YYNTOKENS)
2292      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2449 # else
2450  YYUSE (yyoutput);
2293   # endif
2294 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2294 >  YYUSE (yytype);
2295   }
2296  
2297  
# Line 2461 | Line 2299 | yy_symbol_value_print (yyoutput, yytype,
2299   | Print this symbol on YYOUTPUT.  |
2300   `--------------------------------*/
2301  
2464 #if (defined __STDC__ || defined __C99__FUNC__ \
2465     || defined __cplusplus || defined _MSC_VER)
2302   static void
2303   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2468 #else
2469 static void
2470 yy_symbol_print (yyoutput, yytype, yyvaluep)
2471    FILE *yyoutput;
2472    int yytype;
2473    YYSTYPE const * const yyvaluep;
2474 #endif
2304   {
2305 <  if (yytype < YYNTOKENS)
2306 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2478 <  else
2479 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2305 >  YYFPRINTF (yyoutput, "%s %s (",
2306 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2307  
2308    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2309    YYFPRINTF (yyoutput, ")");
# Line 2487 | Line 2314 | yy_symbol_print (yyoutput, yytype, yyval
2314   | TOP (included).                                                   |
2315   `------------------------------------------------------------------*/
2316  
2490 #if (defined __STDC__ || defined __C99__FUNC__ \
2491     || defined __cplusplus || defined _MSC_VER)
2317   static void
2318   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2494 #else
2495 static void
2496 yy_stack_print (yybottom, yytop)
2497    yytype_int16 *yybottom;
2498    yytype_int16 *yytop;
2499 #endif
2319   {
2320    YYFPRINTF (stderr, "Stack now");
2321    for (; yybottom <= yytop; yybottom++)
# Line 2507 | Line 2326 | yy_stack_print (yybottom, yytop)
2326    YYFPRINTF (stderr, "\n");
2327   }
2328  
2329 < # define YY_STACK_PRINT(Bottom, Top)                            \
2330 < do {                                                            \
2331 <  if (yydebug)                                                  \
2332 <    yy_stack_print ((Bottom), (Top));                           \
2333 < } while (YYID (0))
2329 > # define YY_STACK_PRINT(Bottom, Top)                            \
2330 > do {                                                            \
2331 >  if (yydebug)                                                  \
2332 >    yy_stack_print ((Bottom), (Top));                           \
2333 > } while (0)
2334  
2335  
2336   /*------------------------------------------------.
2337   | Report that the YYRULE is going to be reduced.  |
2338   `------------------------------------------------*/
2339  
2521 #if (defined __STDC__ || defined __C99__FUNC__ \
2522     || defined __cplusplus || defined _MSC_VER)
2340   static void
2341 < yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2525 < #else
2526 < static void
2527 < yy_reduce_print (yyvsp, yyrule)
2528 <    YYSTYPE *yyvsp;
2529 <    int yyrule;
2530 < #endif
2341 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2342   {
2343 +  unsigned long int yylno = yyrline[yyrule];
2344    int yynrhs = yyr2[yyrule];
2345    int yyi;
2534  unsigned long int yylno = yyrline[yyrule];
2346    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2347 <             yyrule - 1, yylno);
2347 >             yyrule - 1, yylno);
2348    /* The symbols being reduced.  */
2349    for (yyi = 0; yyi < yynrhs; yyi++)
2350      {
2351        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2352 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2353 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2354 <                                       );
2352 >      yy_symbol_print (stderr,
2353 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2354 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2355 >                                              );
2356        YYFPRINTF (stderr, "\n");
2357      }
2358   }
2359  
2360 < # define YY_REDUCE_PRINT(Rule)          \
2361 < do {                                    \
2362 <  if (yydebug)                          \
2363 <    yy_reduce_print (yyvsp, Rule); \
2364 < } while (YYID (0))
2360 > # define YY_REDUCE_PRINT(Rule)          \
2361 > do {                                    \
2362 >  if (yydebug)                          \
2363 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2364 > } while (0)
2365  
2366   /* Nonzero means print parse trace.  It is left uninitialized so that
2367     multiple parsers can coexist.  */
# Line 2563 | Line 2375 | int yydebug;
2375  
2376  
2377   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2378 < #ifndef YYINITDEPTH
2378 > #ifndef YYINITDEPTH
2379   # define YYINITDEPTH 200
2380   #endif
2381  
# Line 2586 | Line 2398 | int yydebug;
2398   #   define yystrlen strlen
2399   #  else
2400   /* Return the length of YYSTR.  */
2589 #if (defined __STDC__ || defined __C99__FUNC__ \
2590     || defined __cplusplus || defined _MSC_VER)
2401   static YYSIZE_T
2402   yystrlen (const char *yystr)
2593 #else
2594 static YYSIZE_T
2595 yystrlen (yystr)
2596    const char *yystr;
2597 #endif
2403   {
2404    YYSIZE_T yylen;
2405    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2610 | Line 2415 | yystrlen (yystr)
2415   #  else
2416   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2417     YYDEST.  */
2613 #if (defined __STDC__ || defined __C99__FUNC__ \
2614     || defined __cplusplus || defined _MSC_VER)
2418   static char *
2419   yystpcpy (char *yydest, const char *yysrc)
2617 #else
2618 static char *
2619 yystpcpy (yydest, yysrc)
2620    char *yydest;
2621    const char *yysrc;
2622 #endif
2420   {
2421    char *yyd = yydest;
2422    const char *yys = yysrc;
# Line 2649 | Line 2446 | yytnamerr (char *yyres, const char *yyst
2446        char const *yyp = yystr;
2447  
2448        for (;;)
2449 <        switch (*++yyp)
2450 <          {
2451 <          case '\'':
2452 <          case ',':
2453 <            goto do_not_strip_quotes;
2454 <
2455 <          case '\\':
2456 <            if (*++yyp != '\\')
2457 <              goto do_not_strip_quotes;
2458 <            /* Fall through.  */
2459 <          default:
2460 <            if (yyres)
2461 <              yyres[yyn] = *yyp;
2462 <            yyn++;
2463 <            break;
2464 <
2465 <          case '"':
2466 <            if (yyres)
2467 <              yyres[yyn] = '\0';
2468 <            return yyn;
2469 <          }
2449 >        switch (*++yyp)
2450 >          {
2451 >          case '\'':
2452 >          case ',':
2453 >            goto do_not_strip_quotes;
2454 >
2455 >          case '\\':
2456 >            if (*++yyp != '\\')
2457 >              goto do_not_strip_quotes;
2458 >            /* Fall through.  */
2459 >          default:
2460 >            if (yyres)
2461 >              yyres[yyn] = *yyp;
2462 >            yyn++;
2463 >            break;
2464 >
2465 >          case '"':
2466 >            if (yyres)
2467 >              yyres[yyn] = '\0';
2468 >            return yyn;
2469 >          }
2470      do_not_strip_quotes: ;
2471      }
2472  
# Line 2692 | Line 2489 | static int
2489   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2490                  yytype_int16 *yyssp, int yytoken)
2491   {
2492 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2492 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2493    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2494    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2495    /* Internationalized format string. */
2496 <  const char *yyformat = YY_NULL;
2496 >  const char *yyformat = YY_NULLPTR;
2497    /* Arguments of yyformat. */
2498    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2499    /* Number of reported tokens (one for the "unexpected", one per
# Line 2705 | Line 2501 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2501    int yycount = 0;
2502  
2503    /* There are many possibilities here to consider:
2708     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2709       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2710       for details.  YYERROR is fine as it does not invoke this
2711       function.
2504       - If this state is a consistent state with a default action, then
2505         the only way this function was invoked is if the default action
2506         is an error action.  In that case, don't check for expected
# Line 2757 | Line 2549 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2549                      break;
2550                    }
2551                  yyarg[yycount++] = yytname[yyx];
2552 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2553 <                if (! (yysize <= yysize1
2554 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2555 <                  return 2;
2556 <                yysize = yysize1;
2552 >                {
2553 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2554 >                  if (! (yysize <= yysize1
2555 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2556 >                    return 2;
2557 >                  yysize = yysize1;
2558 >                }
2559                }
2560          }
2561      }
# Line 2781 | Line 2575 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2575   # undef YYCASE_
2576      }
2577  
2578 <  yysize1 = yysize + yystrlen (yyformat);
2579 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2580 <    return 2;
2581 <  yysize = yysize1;
2578 >  {
2579 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2580 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2581 >      return 2;
2582 >    yysize = yysize1;
2583 >  }
2584  
2585    if (*yymsg_alloc < yysize)
2586      {
# Line 2821 | Line 2617 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2617   | Release the memory associated to this symbol.  |
2618   `-----------------------------------------------*/
2619  
2824 /*ARGSUSED*/
2825 #if (defined __STDC__ || defined __C99__FUNC__ \
2826     || defined __cplusplus || defined _MSC_VER)
2620   static void
2621   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2829 #else
2830 static void
2831 yydestruct (yymsg, yytype, yyvaluep)
2832    const char *yymsg;
2833    int yytype;
2834    YYSTYPE *yyvaluep;
2835 #endif
2622   {
2623    YYUSE (yyvaluep);
2838
2624    if (!yymsg)
2625      yymsg = "Deleting";
2626    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2627  
2628 <  switch (yytype)
2629 <    {
2630 <
2846 <      default:
2847 <        break;
2848 <    }
2628 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2629 >  YYUSE (yytype);
2630 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2631   }
2632  
2633  
# Line 2856 | Line 2638 | int yychar;
2638  
2639   /* The semantic value of the lookahead symbol.  */
2640   YYSTYPE yylval;
2859
2641   /* Number of syntax errors so far.  */
2642   int yynerrs;
2643  
# Line 2865 | Line 2646 | int yynerrs;
2646   | yyparse.  |
2647   `----------*/
2648  
2868 #ifdef YYPARSE_PARAM
2869 #if (defined __STDC__ || defined __C99__FUNC__ \
2870     || defined __cplusplus || defined _MSC_VER)
2871 int
2872 yyparse (void *YYPARSE_PARAM)
2873 #else
2874 int
2875 yyparse (YYPARSE_PARAM)
2876    void *YYPARSE_PARAM;
2877 #endif
2878 #else /* ! YYPARSE_PARAM */
2879 #if (defined __STDC__ || defined __C99__FUNC__ \
2880     || defined __cplusplus || defined _MSC_VER)
2649   int
2650   yyparse (void)
2883 #else
2884 int
2885 yyparse ()
2886
2887 #endif
2888 #endif
2651   {
2652      int yystate;
2653      /* Number of tokens to shift before error messages enabled.  */
2654      int yyerrstatus;
2655  
2656      /* The stacks and their tools:
2657 <       `yyss': related to states.
2658 <       `yyvs': related to semantic values.
2657 >       'yyss': related to states.
2658 >       'yyvs': related to semantic values.
2659  
2660         Refer to the stacks through separate pointers, to allow yyoverflow
2661         to reallocate them elsewhere.  */
# Line 2913 | Line 2675 | yyparse ()
2675    int yyn;
2676    int yyresult;
2677    /* Lookahead token as an internal (translated) token number.  */
2678 <  int yytoken;
2678 >  int yytoken = 0;
2679    /* The variables used to return semantic value and location from the
2680       action routines.  */
2681    YYSTYPE yyval;
# Line 2931 | Line 2693 | yyparse ()
2693       Keep to zero when no symbol should be popped.  */
2694    int yylen = 0;
2695  
2696 <  yytoken = 0;
2697 <  yyss = yyssa;
2936 <  yyvs = yyvsa;
2696 >  yyssp = yyss = yyssa;
2697 >  yyvsp = yyvs = yyvsa;
2698    yystacksize = YYINITDEPTH;
2699  
2700    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2942 | Line 2703 | yyparse ()
2703    yyerrstatus = 0;
2704    yynerrs = 0;
2705    yychar = YYEMPTY; /* Cause a token to be read.  */
2945
2946  /* Initialize stack pointers.
2947     Waste one element of value and location stack
2948     so that they stay on the same level as the state stack.
2949     The wasted elements are never initialized.  */
2950  yyssp = yyss;
2951  yyvsp = yyvs;
2706    goto yysetstate;
2707  
2708   /*------------------------------------------------------------.
# Line 2969 | Line 2723 | yyparse ()
2723  
2724   #ifdef yyoverflow
2725        {
2726 <        /* Give user a chance to reallocate the stack.  Use copies of
2727 <           these so that the &'s don't force the real ones into
2728 <           memory.  */
2729 <        YYSTYPE *yyvs1 = yyvs;
2730 <        yytype_int16 *yyss1 = yyss;
2731 <
2732 <        /* Each stack pointer address is followed by the size of the
2733 <           data in use in that stack, in bytes.  This used to be a
2734 <           conditional around just the two extra args, but that might
2735 <           be undefined if yyoverflow is a macro.  */
2736 <        yyoverflow (YY_("memory exhausted"),
2737 <                    &yyss1, yysize * sizeof (*yyssp),
2738 <                    &yyvs1, yysize * sizeof (*yyvsp),
2739 <                    &yystacksize);
2726 >        /* Give user a chance to reallocate the stack.  Use copies of
2727 >           these so that the &'s don't force the real ones into
2728 >           memory.  */
2729 >        YYSTYPE *yyvs1 = yyvs;
2730 >        yytype_int16 *yyss1 = yyss;
2731 >
2732 >        /* Each stack pointer address is followed by the size of the
2733 >           data in use in that stack, in bytes.  This used to be a
2734 >           conditional around just the two extra args, but that might
2735 >           be undefined if yyoverflow is a macro.  */
2736 >        yyoverflow (YY_("memory exhausted"),
2737 >                    &yyss1, yysize * sizeof (*yyssp),
2738 >                    &yyvs1, yysize * sizeof (*yyvsp),
2739 >                    &yystacksize);
2740  
2741 <        yyss = yyss1;
2742 <        yyvs = yyvs1;
2741 >        yyss = yyss1;
2742 >        yyvs = yyvs1;
2743        }
2744   #else /* no yyoverflow */
2745   # ifndef YYSTACK_RELOCATE
# Line 2993 | Line 2747 | yyparse ()
2747   # else
2748        /* Extend the stack our own way.  */
2749        if (YYMAXDEPTH <= yystacksize)
2750 <        goto yyexhaustedlab;
2750 >        goto yyexhaustedlab;
2751        yystacksize *= 2;
2752        if (YYMAXDEPTH < yystacksize)
2753 <        yystacksize = YYMAXDEPTH;
2753 >        yystacksize = YYMAXDEPTH;
2754  
2755        {
2756 <        yytype_int16 *yyss1 = yyss;
2757 <        union yyalloc *yyptr =
2758 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 <        if (! yyptr)
2760 <          goto yyexhaustedlab;
2761 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2756 >        yytype_int16 *yyss1 = yyss;
2757 >        union yyalloc *yyptr =
2758 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 >        if (! yyptr)
2760 >          goto yyexhaustedlab;
2761 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2763   #  undef YYSTACK_RELOCATE
2764 <        if (yyss1 != yyssa)
2765 <          YYSTACK_FREE (yyss1);
2764 >        if (yyss1 != yyssa)
2765 >          YYSTACK_FREE (yyss1);
2766        }
2767   # endif
2768   #endif /* no yyoverflow */
# Line 3017 | Line 2771 | yyparse ()
2771        yyvsp = yyvs + yysize - 1;
2772  
2773        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2774 <                  (unsigned long int) yystacksize));
2774 >                  (unsigned long int) yystacksize));
2775  
2776        if (yyss + yystacksize - 1 <= yyssp)
2777 <        YYABORT;
2777 >        YYABORT;
2778      }
2779  
2780    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3049 | Line 2803 | yybackup:
2803    if (yychar == YYEMPTY)
2804      {
2805        YYDPRINTF ((stderr, "Reading a token: "));
2806 <      yychar = YYLEX;
2806 >      yychar = yylex ();
2807      }
2808  
2809    if (yychar <= YYEOF)
# Line 3089 | Line 2843 | yybackup:
2843    yychar = YYEMPTY;
2844  
2845    yystate = yyn;
2846 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2847    *++yyvsp = yylval;
2848 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2849  
2850    goto yynewstate;
2851  
# Line 3112 | Line 2868 | yyreduce:
2868    yylen = yyr2[yyn];
2869  
2870    /* If YYLEN is nonzero, implement the default value of the action:
2871 <     `$$ = $1'.
2871 >     '$$ = $1'.
2872  
2873       Otherwise, the following line sets YYVAL to garbage.
2874       This behavior is undocumented and Bison
# Line 3125 | Line 2881 | yyreduce:
2881    YY_REDUCE_PRINT (yyn);
2882    switch (yyn)
2883      {
2884 <        case 26:
2885 < /* Line 1787 of yacc.c  */
3130 < #line 359 "conf_parser.y"
2884 >        case 27:
2885 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2886      { (yyval.number) = 0; }
2887 <    break;
3133 <
3134 <  case 28:
3135 < /* Line 1787 of yacc.c  */
3136 < #line 361 "conf_parser.y"
3137 <    {
3138 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3139 <                }
2887 > #line 2888 "conf_parser.c" /* yacc.c:1646  */
2888      break;
2889  
2890    case 29:
2891 < /* Line 1787 of yacc.c  */
2892 < #line 365 "conf_parser.y"
2893 <    {
3146 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3147 <                }
2891 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2892 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2893 > #line 2894 "conf_parser.c" /* yacc.c:1646  */
2894      break;
2895  
2896    case 30:
2897 < /* Line 1787 of yacc.c  */
2898 < #line 369 "conf_parser.y"
2899 <    {
3154 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3155 <                }
2897 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2898 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2899 > #line 2900 "conf_parser.c" /* yacc.c:1646  */
2900      break;
2901  
2902    case 31:
2903 < /* Line 1787 of yacc.c  */
2904 < #line 373 "conf_parser.y"
2905 <    {
3162 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3163 <                }
2903 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2904 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2905 > #line 2906 "conf_parser.c" /* yacc.c:1646  */
2906      break;
2907  
2908    case 32:
2909 < /* Line 1787 of yacc.c  */
2910 < #line 377 "conf_parser.y"
2911 <    {
3170 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3171 <                }
2909 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2910 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2911 > #line 2912 "conf_parser.c" /* yacc.c:1646  */
2912      break;
2913  
2914    case 33:
2915 < /* Line 1787 of yacc.c  */
2916 < #line 381 "conf_parser.y"
2917 <    {
3178 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3179 <                }
2915 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2916 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2917 > #line 2918 "conf_parser.c" /* yacc.c:1646  */
2918      break;
2919  
2920    case 34:
2921 < /* Line 1787 of yacc.c  */
2922 < #line 386 "conf_parser.y"
2923 <    { (yyval.number) = 0; }
2921 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2922 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2923 > #line 2924 "conf_parser.c" /* yacc.c:1646  */
2924 >    break;
2925 >
2926 >  case 35:
2927 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2928 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2929 > #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932    case 36:
2933 < /* Line 1787 of yacc.c  */
2934 < #line 387 "conf_parser.y"
2935 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2933 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2934 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938    case 37:
2939 < /* Line 1787 of yacc.c  */
2940 < #line 388 "conf_parser.y"
2941 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2939 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2940 >    { (yyval.number) = 0; }
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942 >    break;
2943 >
2944 >  case 39:
2945 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2946 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2947 > #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948      break;
2949  
2950 <  case 38:
2951 < /* Line 1787 of yacc.c  */
2952 < #line 389 "conf_parser.y"
2953 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2950 >  case 40:
2951 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2952 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2953 > #line 2954 "conf_parser.c" /* yacc.c:1646  */
2954      break;
2955  
2956 <  case 39:
2957 < /* Line 1787 of yacc.c  */
2958 < #line 390 "conf_parser.y"
2959 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2956 >  case 41:
2957 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2958 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2959 > #line 2960 "conf_parser.c" /* yacc.c:1646  */
2960 >    break;
2961 >
2962 >  case 42:
2963 > #line 428 "conf_parser.y" /* yacc.c:1646  */
2964 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2965 > #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966      break;
2967  
2968 <  case 46:
2969 < /* Line 1787 of yacc.c  */
3214 < #line 404 "conf_parser.y"
2968 >  case 49:
2969 > #line 442 "conf_parser.y" /* yacc.c:1646  */
2970      {
2971    if (conf_parser_ctx.pass == 2)
2972      add_conf_module(libio_basename(yylval.string));
2973   }
2974 + #line 2975 "conf_parser.c" /* yacc.c:1646  */
2975      break;
2976  
2977 <  case 47:
2978 < /* Line 1787 of yacc.c  */
3223 < #line 410 "conf_parser.y"
2977 >  case 50:
2978 > #line 448 "conf_parser.y" /* yacc.c:1646  */
2979      {
2980    if (conf_parser_ctx.pass == 2)
2981      mod_add_path(yylval.string);
2982   }
2983 + #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 71:
2987 < /* Line 1787 of yacc.c  */
3232 < #line 435 "conf_parser.y"
2986 >  case 78:
2987 > #line 484 "conf_parser.y" /* yacc.c:1646  */
2988      {
2989   #ifdef HAVE_LIBCRYPTO
2990    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2991      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2992   #endif
2993   }
2994 + #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995      break;
2996  
2997 <  case 72:
2998 < /* Line 1787 of yacc.c  */
3243 < #line 441 "conf_parser.y"
2997 >  case 79:
2998 > #line 490 "conf_parser.y" /* yacc.c:1646  */
2999      {
3000   #ifdef HAVE_LIBCRYPTO
3001    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3002      SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3003   #endif
3004   }
3005 + #line 3006 "conf_parser.c" /* yacc.c:1646  */
3006      break;
3007  
3008 <  case 75:
3009 < /* Line 1787 of yacc.c  */
3254 < #line 450 "conf_parser.y"
3008 >  case 82:
3009 > #line 499 "conf_parser.y" /* yacc.c:1646  */
3010      {
3011   #ifdef HAVE_LIBCRYPTO
3012    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3013      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3014   #endif
3015   }
3016 + #line 3017 "conf_parser.c" /* yacc.c:1646  */
3017      break;
3018  
3019 <  case 76:
3020 < /* Line 1787 of yacc.c  */
3265 < #line 456 "conf_parser.y"
3019 >  case 83:
3020 > #line 505 "conf_parser.y" /* yacc.c:1646  */
3021      {
3022   #ifdef HAVE_LIBCRYPTO
3023    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3024      SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3025   #endif
3026   }
3027 + #line 3028 "conf_parser.c" /* yacc.c:1646  */
3028      break;
3029  
3030 <  case 77:
3031 < /* Line 1787 of yacc.c  */
3276 < #line 464 "conf_parser.y"
3030 >  case 84:
3031 > #line 513 "conf_parser.y" /* yacc.c:1646  */
3032      {
3033   #ifdef HAVE_LIBCRYPTO
3034 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3034 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3035    {
3036      if (!ServerInfo.rsa_private_key_file)
3037      {
3038 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3038 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3039        break;
3040      }
3041  
# Line 3289 | Line 3044 | yyreduce:
3044          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3045                                       SSL_FILETYPE_PEM) <= 0)
3046      {
3047 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3047 >      report_crypto_errors();
3048 >      conf_error_report("Could not open/read certificate file");
3049        break;
3050      }
3051  
# Line 3298 | Line 3054 | yyreduce:
3054          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3055                                      SSL_FILETYPE_PEM) <= 0)
3056      {
3057 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3057 >      report_crypto_errors();
3058 >      conf_error_report("Could not read RSA private key");
3059        break;
3060      }
3061  
3062      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3063          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3064      {
3065 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3065 >      report_crypto_errors();
3066 >      conf_error_report("Could not read RSA private key");
3067        break;
3068      }
3069    }
3070   #endif
3071   }
3072 + #line 3073 "conf_parser.c" /* yacc.c:1646  */
3073      break;
3074  
3075 <  case 78:
3076 < /* Line 1787 of yacc.c  */
3318 < #line 503 "conf_parser.y"
3075 >  case 85:
3076 > #line 555 "conf_parser.y" /* yacc.c:1646  */
3077      {
3078   #ifdef HAVE_LIBCRYPTO
3079 <  if (conf_parser_ctx.pass == 1)
3322 <  {
3323 <    BIO *file;
3079 >  BIO *file = NULL;
3080  
3081 <    if (ServerInfo.rsa_private_key)
3082 <    {
3327 <      RSA_free(ServerInfo.rsa_private_key);
3328 <      ServerInfo.rsa_private_key = NULL;
3329 <    }
3081 >  if (conf_parser_ctx.pass != 1)
3082 >    break;
3083  
3084 <    if (ServerInfo.rsa_private_key_file)
3085 <    {
3086 <      MyFree(ServerInfo.rsa_private_key_file);
3087 <      ServerInfo.rsa_private_key_file = NULL;
3088 <    }
3084 >  if (ServerInfo.rsa_private_key)
3085 >  {
3086 >    RSA_free(ServerInfo.rsa_private_key);
3087 >    ServerInfo.rsa_private_key = NULL;
3088 >  }
3089  
3090 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3090 >  if (ServerInfo.rsa_private_key_file)
3091 >  {
3092 >    MyFree(ServerInfo.rsa_private_key_file);
3093 >    ServerInfo.rsa_private_key_file = NULL;
3094 >  }
3095  
3096 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3340 <    {
3341 <      yyerror("File open failed, ignoring");
3342 <      break;
3343 <    }
3096 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3097  
3098 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3098 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3099 >  {
3100 >    conf_error_report("File open failed, ignoring");
3101 >    break;
3102 >  }
3103  
3104 <    BIO_set_close(file, BIO_CLOSE);
3348 <    BIO_free(file);
3104 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3105  
3106 <    if (ServerInfo.rsa_private_key == NULL)
3107 <    {
3352 <      yyerror("Couldn't extract key, ignoring");
3353 <      break;
3354 <    }
3106 >  BIO_set_close(file, BIO_CLOSE);
3107 >  BIO_free(file);
3108  
3109 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3110 <    {
3111 <      RSA_free(ServerInfo.rsa_private_key);
3112 <      ServerInfo.rsa_private_key = NULL;
3109 >  if (ServerInfo.rsa_private_key == NULL)
3110 >  {
3111 >    conf_error_report("Couldn't extract key, ignoring");
3112 >    break;
3113 >  }
3114  
3115 <      yyerror("Invalid key, ignoring");
3116 <      break;
3117 <    }
3115 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3116 >  {
3117 >    RSA_free(ServerInfo.rsa_private_key);
3118 >    ServerInfo.rsa_private_key = NULL;
3119  
3120 <    /* require 2048 bit (256 byte) key */
3121 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3122 <    {
3368 <      RSA_free(ServerInfo.rsa_private_key);
3369 <      ServerInfo.rsa_private_key = NULL;
3120 >    conf_error_report("Invalid key, ignoring");
3121 >    break;
3122 >  }
3123  
3124 <      yyerror("Not a 2048 bit key, ignoring");
3125 <    }
3124 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3125 >  {
3126 >    RSA_free(ServerInfo.rsa_private_key);
3127 >    ServerInfo.rsa_private_key = NULL;
3128 >
3129 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3130    }
3131   #endif
3132   }
3133 + #line 3134 "conf_parser.c" /* yacc.c:1646  */
3134      break;
3135  
3136 <  case 79:
3137 < /* Line 1787 of yacc.c  */
3380 < #line 562 "conf_parser.y"
3136 >  case 86:
3137 > #line 613 "conf_parser.y" /* yacc.c:1646  */
3138      {
3139   /* TBD - XXX: error reporting */
3140   #ifdef HAVE_LIBCRYPTO
# Line 3394 | Line 3151 | yyreduce:
3151        if (dh)
3152        {
3153          if (DH_size(dh) < 128)
3154 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3154 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3155          else
3156            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3157  
# Line 3404 | Line 3161 | yyreduce:
3161    }
3162   #endif
3163   }
3164 + #line 3165 "conf_parser.c" /* yacc.c:1646  */
3165      break;
3166  
3167 <  case 80:
3168 < /* Line 1787 of yacc.c  */
3411 < #line 590 "conf_parser.y"
3167 >  case 87:
3168 > #line 641 "conf_parser.y" /* yacc.c:1646  */
3169      {
3170   #ifdef HAVE_LIBCRYPTO
3171    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3172      SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3173   #endif
3174   }
3175 + #line 3176 "conf_parser.c" /* yacc.c:1646  */
3176 +    break;
3177 +
3178 +  case 88:
3179 + #line 649 "conf_parser.y" /* yacc.c:1646  */
3180 +    {
3181 + #ifdef HAVE_LIBCRYPTO
3182 +  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3183 +  {
3184 +    if ((ServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3185 +    {
3186 +      ServerInfo.message_digest_algorithm = EVP_sha256();
3187 +      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3188 +    }
3189 +  }
3190 + #endif
3191 + }
3192 + #line 3193 "conf_parser.c" /* yacc.c:1646  */
3193 +    break;
3194 +
3195 +  case 89:
3196 + #line 663 "conf_parser.y" /* yacc.c:1646  */
3197 +    {
3198 + #ifdef HAVE_LIBCRYPTO
3199 + #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
3200 +  int nid = 0;
3201 +  EC_KEY *key = NULL;
3202 +
3203 +  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3204 +  {
3205 +    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3206 +    {
3207 +        conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- unknown curve name");
3208 +        break;
3209 +    }
3210 +
3211 +    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3212 +    {
3213 +      conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- could not create curve");
3214 +      break;
3215 +    }
3216 +
3217 +    SSL_CTX_set_tmp_ecdh(ServerInfo.server_ctx, key);
3218 +    EC_KEY_free(key);
3219 + }
3220 + #endif
3221 + #endif
3222 + }
3223 + #line 3224 "conf_parser.c" /* yacc.c:1646  */
3224      break;
3225  
3226 <  case 81:
3227 < /* Line 1787 of yacc.c  */
3422 < #line 598 "conf_parser.y"
3226 >  case 90:
3227 > #line 691 "conf_parser.y" /* yacc.c:1646  */
3228      {
3229    /* this isn't rehashable */
3230    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3231    {
3232      if (valid_servname(yylval.string))
3233 <      DupString(ServerInfo.name, yylval.string);
3233 >      ServerInfo.name = xstrdup(yylval.string);
3234      else
3235      {
3236 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3236 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3237        exit(0);
3238      }
3239    }
3240   }
3241 + #line 3242 "conf_parser.c" /* yacc.c:1646  */
3242      break;
3243  
3244 <  case 82:
3245 < /* Line 1787 of yacc.c  */
3440 < #line 613 "conf_parser.y"
3244 >  case 91:
3245 > #line 706 "conf_parser.y" /* yacc.c:1646  */
3246      {
3247    /* this isn't rehashable */
3248    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3249    {
3250      if (valid_sid(yylval.string))
3251 <      DupString(ServerInfo.sid, yylval.string);
3251 >      ServerInfo.sid = xstrdup(yylval.string);
3252      else
3253      {
3254 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3254 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3255        exit(0);
3256      }
3257    }
3258   }
3259 + #line 3260 "conf_parser.c" /* yacc.c:1646  */
3260      break;
3261  
3262 <  case 83:
3263 < /* Line 1787 of yacc.c  */
3458 < #line 628 "conf_parser.y"
3262 >  case 92:
3263 > #line 721 "conf_parser.y" /* yacc.c:1646  */
3264      {
3265    if (conf_parser_ctx.pass == 2)
3266    {
3267      MyFree(ServerInfo.description);
3268 <    DupString(ServerInfo.description,yylval.string);
3268 >    ServerInfo.description = xstrdup(yylval.string);
3269    }
3270   }
3271 + #line 3272 "conf_parser.c" /* yacc.c:1646  */
3272      break;
3273  
3274 <  case 84:
3275 < /* Line 1787 of yacc.c  */
3470 < #line 637 "conf_parser.y"
3274 >  case 93:
3275 > #line 730 "conf_parser.y" /* yacc.c:1646  */
3276      {
3277    if (conf_parser_ctx.pass == 2)
3278    {
3279      char *p;
3280  
3281 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3282 <      p = '\0';
3281 >    if ((p = strchr(yylval.string, ' ')))
3282 >      *p = '\0';
3283  
3284      MyFree(ServerInfo.network_name);
3285 <    DupString(ServerInfo.network_name, yylval.string);
3285 >    ServerInfo.network_name = xstrdup(yylval.string);
3286    }
3287   }
3288 + #line 3289 "conf_parser.c" /* yacc.c:1646  */
3289      break;
3290  
3291 <  case 85:
3292 < /* Line 1787 of yacc.c  */
3487 < #line 651 "conf_parser.y"
3291 >  case 94:
3292 > #line 744 "conf_parser.y" /* yacc.c:1646  */
3293      {
3294 <  if (conf_parser_ctx.pass == 2)
3295 <  {
3296 <    MyFree(ServerInfo.network_desc);
3297 <    DupString(ServerInfo.network_desc, yylval.string);
3298 <  }
3294 >  if (conf_parser_ctx.pass != 2)
3295 >    break;
3296 >
3297 >  MyFree(ServerInfo.network_desc);
3298 >  ServerInfo.network_desc = xstrdup(yylval.string);
3299   }
3300 + #line 3301 "conf_parser.c" /* yacc.c:1646  */
3301      break;
3302  
3303 <  case 86:
3304 < /* Line 1787 of yacc.c  */
3499 < #line 660 "conf_parser.y"
3303 >  case 95:
3304 > #line 753 "conf_parser.y" /* yacc.c:1646  */
3305      {
3306    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3307    {
# Line 3512 | Line 3317 | yyreduce:
3317        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3318      else
3319      {
3320 <      assert(res != NULL);
3320 >      assert(res);
3321  
3322        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3323        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3523 | Line 3328 | yyreduce:
3328      }
3329    }
3330   }
3331 + #line 3332 "conf_parser.c" /* yacc.c:1646  */
3332      break;
3333  
3334 <  case 87:
3335 < /* Line 1787 of yacc.c  */
3530 < #line 688 "conf_parser.y"
3334 >  case 96:
3335 > #line 781 "conf_parser.y" /* yacc.c:1646  */
3336      {
3337   #ifdef IPV6
3338    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3544 | Line 3349 | yyreduce:
3349        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3350      else
3351      {
3352 <      assert(res != NULL);
3352 >      assert(res);
3353  
3354        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3355        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3556 | Line 3361 | yyreduce:
3361    }
3362   #endif
3363   }
3364 + #line 3365 "conf_parser.c" /* yacc.c:1646  */
3365      break;
3366  
3367 <  case 88:
3368 < /* Line 1787 of yacc.c  */
3563 < #line 718 "conf_parser.y"
3367 >  case 97:
3368 > #line 811 "conf_parser.y" /* yacc.c:1646  */
3369      {
3370 <  if (conf_parser_ctx.pass == 2)
3370 >  if (conf_parser_ctx.pass != 2)
3371 >    break;
3372 >
3373 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3374    {
3375 <    recalc_fdlimit(NULL);
3375 >    char buf[IRCD_BUFSIZE] = "";
3376  
3377 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3377 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3378 >    conf_error_report(buf);
3379 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3380 >  }
3381 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3382 >  {
3383 >    char buf[IRCD_BUFSIZE] = "";
3384 >
3385 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3386 >    conf_error_report(buf);
3387 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3388 >  }
3389 >  else
3390 >    ServerInfo.max_clients = (yyvsp[-1].number);
3391 > }
3392 > #line 3393 "conf_parser.c" /* yacc.c:1646  */
3393 >    break;
3394 >
3395 >  case 98:
3396 > #line 836 "conf_parser.y" /* yacc.c:1646  */
3397      {
3398 <      char buf[IRCD_BUFSIZE];
3399 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3400 <      yyerror(buf);
3401 <    }
3402 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3398 >  if (conf_parser_ctx.pass != 2)
3399 >    break;
3400 >
3401 >  if ((yyvsp[-1].number) < 9)
3402 >  {
3403 >    conf_error_report("max_nick_length too low, setting to 9");
3404 >    ServerInfo.max_nick_length = 9;
3405 >  }
3406 >  else if ((yyvsp[-1].number) > NICKLEN)
3407 >  {
3408 >    char buf[IRCD_BUFSIZE] = "";
3409 >
3410 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3411 >    conf_error_report(buf);
3412 >    ServerInfo.max_nick_length = NICKLEN;
3413 >  }
3414 >  else
3415 >    ServerInfo.max_nick_length = (yyvsp[-1].number);
3416 > }
3417 > #line 3418 "conf_parser.c" /* yacc.c:1646  */
3418 >    break;
3419 >
3420 >  case 99:
3421 > #line 858 "conf_parser.y" /* yacc.c:1646  */
3422      {
3423 <      char buf[IRCD_BUFSIZE];
3424 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3425 <      yyerror(buf);
3426 <    }
3427 <    else
3428 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3423 >  if (conf_parser_ctx.pass != 2)
3424 >    break;
3425 >
3426 >  if ((yyvsp[-1].number) < 80)
3427 >  {
3428 >    conf_error_report("max_topic_length too low, setting to 80");
3429 >    ServerInfo.max_topic_length = 80;
3430 >  }
3431 >  else if ((yyvsp[-1].number) > TOPICLEN)
3432 >  {
3433 >    char buf[IRCD_BUFSIZE] = "";
3434 >
3435 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3436 >    conf_error_report(buf);
3437 >    ServerInfo.max_topic_length = TOPICLEN;
3438    }
3439 +  else
3440 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3441   }
3442 + #line 3443 "conf_parser.c" /* yacc.c:1646  */
3443      break;
3444  
3445 <  case 89:
3446 < /* Line 1787 of yacc.c  */
3589 < #line 741 "conf_parser.y"
3445 >  case 100:
3446 > #line 880 "conf_parser.y" /* yacc.c:1646  */
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449      ServerInfo.hub = yylval.number;
3450   }
3451 + #line 3452 "conf_parser.c" /* yacc.c:1646  */
3452      break;
3453  
3454 <  case 97:
3455 < /* Line 1787 of yacc.c  */
3456 < #line 756 "conf_parser.y"
3454 >  case 108:
3455 > #line 897 "conf_parser.y" /* yacc.c:1646  */
3456 >    {
3457 >  if (conf_parser_ctx.pass != 2)
3458 >    break;
3459 >
3460 >  MyFree(AdminInfo.name);
3461 >  AdminInfo.name = xstrdup(yylval.string);
3462 > }
3463 > #line 3464 "conf_parser.c" /* yacc.c:1646  */
3464 >    break;
3465 >
3466 >  case 109:
3467 > #line 906 "conf_parser.y" /* yacc.c:1646  */
3468 >    {
3469 >  if (conf_parser_ctx.pass != 2)
3470 >    break;
3471 >
3472 >  MyFree(AdminInfo.email);
3473 >  AdminInfo.email = xstrdup(yylval.string);
3474 > }
3475 > #line 3476 "conf_parser.c" /* yacc.c:1646  */
3476 >    break;
3477 >
3478 >  case 110:
3479 > #line 915 "conf_parser.y" /* yacc.c:1646  */
3480 >    {
3481 >  if (conf_parser_ctx.pass != 2)
3482 >    break;
3483 >
3484 >  MyFree(AdminInfo.description);
3485 >  AdminInfo.description = xstrdup(yylval.string);
3486 > }
3487 > #line 3488 "conf_parser.c" /* yacc.c:1646  */
3488 >    break;
3489 >
3490 >  case 111:
3491 > #line 927 "conf_parser.y" /* yacc.c:1646  */
3492      {
3493    if (conf_parser_ctx.pass == 2)
3494 <  {
3602 <    MyFree(AdminInfo.name);
3603 <    DupString(AdminInfo.name, yylval.string);
3604 <  }
3494 >    reset_block_state();
3495   }
3496 + #line 3497 "conf_parser.c" /* yacc.c:1646  */
3497      break;
3498  
3499 <  case 98:
3500 < /* Line 1787 of yacc.c  */
3501 < #line 765 "conf_parser.y"
3499 >  case 112:
3500 > #line 931 "conf_parser.y" /* yacc.c:1646  */
3501 >    {
3502 >  dlink_node *ptr = NULL;
3503 >
3504 >  if (conf_parser_ctx.pass != 2)
3505 >    break;
3506 >
3507 >  if (!block_state.file.buf[0])
3508 >    break;
3509 >
3510 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3511 >    motd_add(ptr->data, block_state.file.buf);
3512 > }
3513 > #line 3514 "conf_parser.c" /* yacc.c:1646  */
3514 >    break;
3515 >
3516 >  case 118:
3517 > #line 948 "conf_parser.y" /* yacc.c:1646  */
3518      {
3519    if (conf_parser_ctx.pass == 2)
3520 <  {
3614 <    MyFree(AdminInfo.email);
3615 <    DupString(AdminInfo.email, yylval.string);
3616 <  }
3520 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3521   }
3522 + #line 3523 "conf_parser.c" /* yacc.c:1646  */
3523      break;
3524  
3525 <  case 99:
3526 < /* Line 1787 of yacc.c  */
3622 < #line 774 "conf_parser.y"
3525 >  case 119:
3526 > #line 954 "conf_parser.y" /* yacc.c:1646  */
3527      {
3528    if (conf_parser_ctx.pass == 2)
3529 <  {
3626 <    MyFree(AdminInfo.description);
3627 <    DupString(AdminInfo.description, yylval.string);
3628 <  }
3529 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3530   }
3531 + #line 3532 "conf_parser.c" /* yacc.c:1646  */
3532      break;
3533  
3534 <  case 106:
3535 < /* Line 1787 of yacc.c  */
3634 < #line 792 "conf_parser.y"
3534 >  case 126:
3535 > #line 969 "conf_parser.y" /* yacc.c:1646  */
3536      {
3537    if (conf_parser_ctx.pass == 2)
3538      ConfigLoggingEntry.use_logging = yylval.number;
3539   }
3540 + #line 3541 "conf_parser.c" /* yacc.c:1646  */
3541      break;
3542  
3543 <  case 107:
3544 < /* Line 1787 of yacc.c  */
3545 < #line 798 "conf_parser.y"
3546 <    {
3547 <  lfile[0] = '\0';
3646 <  ltype = 0;
3647 <  lsize = 0;
3543 >  case 127:
3544 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3545 >    {
3546 >  if (conf_parser_ctx.pass == 2)
3547 >    reset_block_state();
3548   }
3549 + #line 3550 "conf_parser.c" /* yacc.c:1646  */
3550      break;
3551  
3552 <  case 108:
3553 < /* Line 1787 of yacc.c  */
3653 < #line 803 "conf_parser.y"
3552 >  case 128:
3553 > #line 979 "conf_parser.y" /* yacc.c:1646  */
3554      {
3555 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3556 <    log_add_file(ltype, lsize, lfile);
3555 >  if (conf_parser_ctx.pass != 2)
3556 >    break;
3557 >
3558 >  if (block_state.type.value && block_state.file.buf[0])
3559 >    log_set_file(block_state.type.value, block_state.size.value,
3560 >                 block_state.file.buf);
3561   }
3562 + #line 3563 "conf_parser.c" /* yacc.c:1646  */
3563      break;
3564  
3565 <  case 115:
3566 < /* Line 1787 of yacc.c  */
3662 < #line 815 "conf_parser.y"
3565 >  case 135:
3566 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3567      {
3568 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3568 >  if (conf_parser_ctx.pass != 2)
3569 >    break;
3570 >
3571 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3572   }
3573 + #line 3574 "conf_parser.c" /* yacc.c:1646  */
3574      break;
3575  
3576 <  case 116:
3577 < /* Line 1787 of yacc.c  */
3670 < #line 820 "conf_parser.y"
3576 >  case 136:
3577 > #line 1003 "conf_parser.y" /* yacc.c:1646  */
3578      {
3579 <  lsize = (yyvsp[(3) - (4)].number);
3579 >  block_state.size.value = (yyvsp[-1].number);
3580   }
3581 + #line 3582 "conf_parser.c" /* yacc.c:1646  */
3582      break;
3583  
3584 <  case 117:
3585 < /* Line 1787 of yacc.c  */
3678 < #line 823 "conf_parser.y"
3584 >  case 137:
3585 > #line 1006 "conf_parser.y" /* yacc.c:1646  */
3586      {
3587 <  lsize = 0;
3587 >  block_state.size.value = 0;
3588   }
3589 + #line 3590 "conf_parser.c" /* yacc.c:1646  */
3590      break;
3591  
3592 <  case 118:
3593 < /* Line 1787 of yacc.c  */
3686 < #line 828 "conf_parser.y"
3592 >  case 138:
3593 > #line 1011 "conf_parser.y" /* yacc.c:1646  */
3594      {
3595    if (conf_parser_ctx.pass == 2)
3596 <    ltype = 0;
3596 >    block_state.type.value = 0;
3597   }
3598 + #line 3599 "conf_parser.c" /* yacc.c:1646  */
3599      break;
3600  
3601 <  case 122:
3602 < /* Line 1787 of yacc.c  */
3695 < #line 835 "conf_parser.y"
3601 >  case 142:
3602 > #line 1018 "conf_parser.y" /* yacc.c:1646  */
3603      {
3604    if (conf_parser_ctx.pass == 2)
3605 <    ltype = LOG_TYPE_USER;
3605 >    block_state.type.value = LOG_TYPE_USER;
3606   }
3607 + #line 3608 "conf_parser.c" /* yacc.c:1646  */
3608      break;
3609  
3610 <  case 123:
3611 < /* Line 1787 of yacc.c  */
3704 < #line 839 "conf_parser.y"
3610 >  case 143:
3611 > #line 1022 "conf_parser.y" /* yacc.c:1646  */
3612      {
3613    if (conf_parser_ctx.pass == 2)
3614 <    ltype = LOG_TYPE_OPER;
3614 >    block_state.type.value = LOG_TYPE_OPER;
3615   }
3616 + #line 3617 "conf_parser.c" /* yacc.c:1646  */
3617      break;
3618  
3619 <  case 124:
3620 < /* Line 1787 of yacc.c  */
3713 < #line 843 "conf_parser.y"
3619 >  case 144:
3620 > #line 1026 "conf_parser.y" /* yacc.c:1646  */
3621      {
3622    if (conf_parser_ctx.pass == 2)
3623 <    ltype = LOG_TYPE_GLINE;
3623 >    block_state.type.value = LOG_TYPE_GLINE;
3624   }
3625 + #line 3626 "conf_parser.c" /* yacc.c:1646  */
3626      break;
3627  
3628 <  case 125:
3629 < /* Line 1787 of yacc.c  */
3722 < #line 847 "conf_parser.y"
3628 >  case 145:
3629 > #line 1030 "conf_parser.y" /* yacc.c:1646  */
3630      {
3631    if (conf_parser_ctx.pass == 2)
3632 <    ltype = LOG_TYPE_DLINE;
3632 >    block_state.type.value = LOG_TYPE_XLINE;
3633   }
3634 + #line 3635 "conf_parser.c" /* yacc.c:1646  */
3635      break;
3636  
3637 <  case 126:
3638 < /* Line 1787 of yacc.c  */
3731 < #line 851 "conf_parser.y"
3637 >  case 146:
3638 > #line 1034 "conf_parser.y" /* yacc.c:1646  */
3639      {
3640    if (conf_parser_ctx.pass == 2)
3641 <    ltype = LOG_TYPE_KLINE;
3641 >    block_state.type.value = LOG_TYPE_RESV;
3642   }
3643 + #line 3644 "conf_parser.c" /* yacc.c:1646  */
3644      break;
3645  
3646 <  case 127:
3647 < /* Line 1787 of yacc.c  */
3740 < #line 855 "conf_parser.y"
3646 >  case 147:
3647 > #line 1038 "conf_parser.y" /* yacc.c:1646  */
3648      {
3649    if (conf_parser_ctx.pass == 2)
3650 <    ltype = LOG_TYPE_KILL;
3650 >    block_state.type.value = LOG_TYPE_DLINE;
3651   }
3652 + #line 3653 "conf_parser.c" /* yacc.c:1646  */
3653      break;
3654  
3655 <  case 128:
3656 < /* Line 1787 of yacc.c  */
3749 < #line 859 "conf_parser.y"
3655 >  case 148:
3656 > #line 1042 "conf_parser.y" /* yacc.c:1646  */
3657      {
3658    if (conf_parser_ctx.pass == 2)
3659 <    ltype = LOG_TYPE_DEBUG;
3659 >    block_state.type.value = LOG_TYPE_KLINE;
3660   }
3661 + #line 3662 "conf_parser.c" /* yacc.c:1646  */
3662      break;
3663  
3664 <  case 129:
3665 < /* Line 1787 of yacc.c  */
3758 < #line 869 "conf_parser.y"
3664 >  case 149:
3665 > #line 1046 "conf_parser.y" /* yacc.c:1646  */
3666      {
3667    if (conf_parser_ctx.pass == 2)
3668 <  {
3762 <    yy_conf = make_conf_item(OPER_TYPE);
3763 <    yy_aconf = map_to_conf(yy_conf);
3764 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3765 <  }
3766 <  else
3767 <  {
3768 <    MyFree(class_name);
3769 <    class_name = NULL;
3770 <  }
3668 >    block_state.type.value = LOG_TYPE_KILL;
3669   }
3670 + #line 3671 "conf_parser.c" /* yacc.c:1646  */
3671      break;
3672  
3673 <  case 130:
3674 < /* Line 1787 of yacc.c  */
3776 < #line 882 "conf_parser.y"
3673 >  case 150:
3674 > #line 1050 "conf_parser.y" /* yacc.c:1646  */
3675      {
3676    if (conf_parser_ctx.pass == 2)
3677 <  {
3678 <    struct CollectItem *yy_tmp;
3679 <    dlink_node *ptr;
3680 <    dlink_node *next_ptr;
3783 <
3784 <    conf_add_class_to_conf(yy_conf, class_name);
3785 <
3786 <    /* Now, make sure there is a copy of the "base" given oper
3787 <     * block in each of the collected copies
3788 <     */
3677 >    block_state.type.value = LOG_TYPE_DEBUG;
3678 > }
3679 > #line 3680 "conf_parser.c" /* yacc.c:1646  */
3680 >    break;
3681  
3682 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3682 >  case 151:
3683 > #line 1060 "conf_parser.y" /* yacc.c:1646  */
3684      {
3685 <      struct AccessItem *new_aconf;
3686 <      struct ConfItem *new_conf;
3794 <      yy_tmp = ptr->data;
3685 >  if (conf_parser_ctx.pass != 2)
3686 >    break;
3687  
3688 <      new_conf = make_conf_item(OPER_TYPE);
3689 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3688 >  reset_block_state();
3689 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3690 > }
3691 > #line 3692 "conf_parser.c" /* yacc.c:1646  */
3692 >    break;
3693  
3694 <      new_aconf->flags = yy_aconf->flags;
3694 >  case 152:
3695 > #line 1067 "conf_parser.y" /* yacc.c:1646  */
3696 >    {
3697 >  dlink_node *ptr = NULL;
3698  
3699 <      if (yy_conf->name != NULL)
3700 <        DupString(new_conf->name, yy_conf->name);
3803 <      if (yy_tmp->user != NULL)
3804 <        DupString(new_aconf->user, yy_tmp->user);
3805 <      else
3806 <        DupString(new_aconf->user, "*");
3807 <      if (yy_tmp->host != NULL)
3808 <        DupString(new_aconf->host, yy_tmp->host);
3809 <      else
3810 <        DupString(new_aconf->host, "*");
3699 >  if (conf_parser_ctx.pass != 2)
3700 >    break;
3701  
3702 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3703 <                                     &new_aconf->bits);
3702 >  if (!block_state.name.buf[0])
3703 >    break;
3704 > #ifdef HAVE_LIBCRYPTO
3705 >  if (!block_state.file.buf[0] &&
3706 >      !block_state.rpass.buf[0])
3707 >    break;
3708 > #else
3709 >  if (!block_state.rpass.buf[0])
3710 >    break;
3711 > #endif
3712  
3713 <      conf_add_class_to_conf(new_conf, class_name);
3714 <      if (yy_aconf->passwd != NULL)
3715 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3713 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3714 >  {
3715 >    struct MaskItem *conf = NULL;
3716 >    struct split_nuh_item nuh;
3717  
3718 <      new_aconf->port = yy_aconf->port;
3719 < #ifdef HAVE_LIBCRYPTO
3720 <      if (yy_aconf->rsa_public_key_file != NULL)
3721 <      {
3722 <        BIO *file;
3718 >    nuh.nuhmask  = ptr->data;
3719 >    nuh.nickptr  = NULL;
3720 >    nuh.userptr  = block_state.user.buf;
3721 >    nuh.hostptr  = block_state.host.buf;
3722 >    nuh.nicksize = 0;
3723 >    nuh.usersize = sizeof(block_state.user.buf);
3724 >    nuh.hostsize = sizeof(block_state.host.buf);
3725 >    split_nuh(&nuh);
3726  
3727 <        DupString(new_aconf->rsa_public_key_file,
3728 <                  yy_aconf->rsa_public_key_file);
3727 >    conf         = conf_make(CONF_OPER);
3728 >    conf->name   = xstrdup(block_state.name.buf);
3729 >    conf->user   = xstrdup(block_state.user.buf);
3730 >    conf->host   = xstrdup(block_state.host.buf);
3731 >
3732 >    if (block_state.cert.buf[0])
3733 >      conf->certfp = xstrdup(block_state.cert.buf);
3734 >
3735 >    if (block_state.rpass.buf[0])
3736 >      conf->passwd = xstrdup(block_state.rpass.buf);
3737 >
3738 >    conf->flags = block_state.flags.value;
3739 >    conf->modes = block_state.modes.value;
3740 >    conf->port  = block_state.port.value;
3741 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3742  
3743 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3829 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3830 <                                                           NULL, 0, NULL);
3831 <        BIO_set_close(file, BIO_CLOSE);
3832 <        BIO_free(file);
3833 <      }
3834 < #endif
3743 >    conf_add_class_to_conf(conf, block_state.class.buf);
3744  
3745   #ifdef HAVE_LIBCRYPTO
3746 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3747 <          && yy_tmp->host)
3748 < #else
3749 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3750 < #endif
3746 >    if (block_state.file.buf[0])
3747 >    {
3748 >      BIO *file = NULL;
3749 >      RSA *pkey = NULL;
3750 >
3751 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3752        {
3753 <        conf_add_class_to_conf(new_conf, class_name);
3754 <        if (yy_tmp->name != NULL)
3845 <          DupString(new_conf->name, yy_tmp->name);
3753 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3754 >        break;
3755        }
3756  
3757 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3758 <      free_collect_item(yy_tmp);
3850 <    }
3757 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3758 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3759  
3760 <    yy_conf = NULL;
3761 <    yy_aconf = NULL;
3762 <
3763 <
3764 <    MyFree(class_name);
3857 <    class_name = NULL;
3760 >      conf->rsa_public_key = pkey;
3761 >      BIO_set_close(file, BIO_CLOSE);
3762 >      BIO_free(file);
3763 >    }
3764 > #endif /* HAVE_LIBCRYPTO */
3765    }
3766   }
3767 + #line 3768 "conf_parser.c" /* yacc.c:1646  */
3768      break;
3769  
3770 <  case 142:
3771 < /* Line 1787 of yacc.c  */
3864 < #line 972 "conf_parser.y"
3770 >  case 166:
3771 > #line 1153 "conf_parser.y" /* yacc.c:1646  */
3772      {
3773    if (conf_parser_ctx.pass == 2)
3774 <  {
3868 <    MyFree(yy_conf->name);
3869 <    DupString(yy_conf->name, yylval.string);
3870 <  }
3774 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3775   }
3776 + #line 3777 "conf_parser.c" /* yacc.c:1646  */
3777      break;
3778  
3779 <  case 143:
3780 < /* Line 1787 of yacc.c  */
3876 < #line 981 "conf_parser.y"
3779 >  case 167:
3780 > #line 1159 "conf_parser.y" /* yacc.c:1646  */
3781      {
3782    if (conf_parser_ctx.pass == 2)
3783 <  {
3784 <    struct split_nuh_item nuh;
3785 <
3786 <    nuh.nuhmask  = yylval.string;
3883 <    nuh.nickptr  = NULL;
3884 <    nuh.userptr  = userbuf;
3885 <    nuh.hostptr  = hostbuf;
3886 <
3887 <    nuh.nicksize = 0;
3888 <    nuh.usersize = sizeof(userbuf);
3889 <    nuh.hostsize = sizeof(hostbuf);
3890 <
3891 <    split_nuh(&nuh);
3783 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3784 > }
3785 > #line 3786 "conf_parser.c" /* yacc.c:1646  */
3786 >    break;
3787  
3788 <    if (yy_aconf->user == NULL)
3788 >  case 168:
3789 > #line 1165 "conf_parser.y" /* yacc.c:1646  */
3790      {
3791 <      DupString(yy_aconf->user, userbuf);
3792 <      DupString(yy_aconf->host, hostbuf);
3791 >  if (conf_parser_ctx.pass == 2)
3792 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3793 > }
3794 > #line 3795 "conf_parser.c" /* yacc.c:1646  */
3795 >    break;
3796  
3797 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3798 <                                    &yy_aconf->bits);
3900 <    }
3901 <    else
3797 >  case 169:
3798 > #line 1171 "conf_parser.y" /* yacc.c:1646  */
3799      {
3800 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3800 >  if (conf_parser_ctx.pass != 2)
3801 >    break;
3802  
3803 <      DupString(yy_tmp->user, userbuf);
3804 <      DupString(yy_tmp->host, hostbuf);
3803 >  if (yylval.number)
3804 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3805 >  else
3806 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3807 > }
3808 > #line 3809 "conf_parser.c" /* yacc.c:1646  */
3809 >    break;
3810  
3811 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3812 <    }
3813 <  }
3811 >  case 170:
3812 > #line 1182 "conf_parser.y" /* yacc.c:1646  */
3813 >    {
3814 >  if (conf_parser_ctx.pass == 2)
3815 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3816   }
3817 + #line 3818 "conf_parser.c" /* yacc.c:1646  */
3818      break;
3819  
3820 <  case 144:
3821 < /* Line 1787 of yacc.c  */
3916 < #line 1018 "conf_parser.y"
3820 >  case 171:
3821 > #line 1188 "conf_parser.y" /* yacc.c:1646  */
3822      {
3823    if (conf_parser_ctx.pass == 2)
3824 <  {
3825 <    if (yy_aconf->passwd != NULL)
3826 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3824 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3825 > }
3826 > #line 3827 "conf_parser.c" /* yacc.c:1646  */
3827 >    break;
3828  
3829 <    MyFree(yy_aconf->passwd);
3830 <    DupString(yy_aconf->passwd, yylval.string);
3831 <  }
3829 >  case 172:
3830 > #line 1194 "conf_parser.y" /* yacc.c:1646  */
3831 >    {
3832 >  if (conf_parser_ctx.pass != 2)
3833 >    break;
3834 >
3835 >  if (yylval.number)
3836 >    block_state.flags.value |= CONF_FLAGS_SSL;
3837 >  else
3838 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3839   }
3840 + #line 3841 "conf_parser.c" /* yacc.c:1646  */
3841      break;
3842  
3843 <  case 145:
3844 < /* Line 1787 of yacc.c  */
3931 < #line 1030 "conf_parser.y"
3843 >  case 173:
3844 > #line 1205 "conf_parser.y" /* yacc.c:1646  */
3845      {
3846    if (conf_parser_ctx.pass == 2)
3847 <  {
3935 <    if (yylval.number)
3936 <      SetConfEncrypted(yy_aconf);
3937 <    else
3938 <      ClearConfEncrypted(yy_aconf);
3939 <  }
3847 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3848   }
3849 + #line 3850 "conf_parser.c" /* yacc.c:1646  */
3850      break;
3851  
3852 <  case 146:
3853 < /* Line 1787 of yacc.c  */
3945 < #line 1041 "conf_parser.y"
3852 >  case 174:
3853 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3854      {
3947 #ifdef HAVE_LIBCRYPTO
3855    if (conf_parser_ctx.pass == 2)
3856 <  {
3857 <    BIO *file;
3856 >    block_state.modes.value = 0;
3857 > }
3858 > #line 3859 "conf_parser.c" /* yacc.c:1646  */
3859 >    break;
3860  
3861 <    if (yy_aconf->rsa_public_key != NULL)
3861 >  case 178:
3862 > #line 1218 "conf_parser.y" /* yacc.c:1646  */
3863      {
3864 <      RSA_free(yy_aconf->rsa_public_key);
3865 <      yy_aconf->rsa_public_key = NULL;
3866 <    }
3864 >  if (conf_parser_ctx.pass == 2)
3865 >    block_state.modes.value |= UMODE_BOTS;
3866 > }
3867 > #line 3868 "conf_parser.c" /* yacc.c:1646  */
3868 >    break;
3869  
3870 <    if (yy_aconf->rsa_public_key_file != NULL)
3870 >  case 179:
3871 > #line 1222 "conf_parser.y" /* yacc.c:1646  */
3872      {
3873 <      MyFree(yy_aconf->rsa_public_key_file);
3874 <      yy_aconf->rsa_public_key_file = NULL;
3875 <    }
3876 <
3877 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3965 <    file = BIO_new_file(yylval.string, "r");
3873 >  if (conf_parser_ctx.pass == 2)
3874 >    block_state.modes.value |= UMODE_CCONN;
3875 > }
3876 > #line 3877 "conf_parser.c" /* yacc.c:1646  */
3877 >    break;
3878  
3879 <    if (file == NULL)
3879 >  case 180:
3880 > #line 1226 "conf_parser.y" /* yacc.c:1646  */
3881      {
3882 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3883 <      break;
3884 <    }
3885 <
3886 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3882 >  if (conf_parser_ctx.pass == 2)
3883 >    block_state.modes.value |= UMODE_DEAF;
3884 > }
3885 > #line 3886 "conf_parser.c" /* yacc.c:1646  */
3886 >    break;
3887  
3888 <    if (yy_aconf->rsa_public_key == NULL)
3888 >  case 181:
3889 > #line 1230 "conf_parser.y" /* yacc.c:1646  */
3890      {
3891 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3892 <      break;
3979 <    }
3980 <
3981 <    BIO_set_close(file, BIO_CLOSE);
3982 <    BIO_free(file);
3983 <  }
3984 < #endif /* HAVE_LIBCRYPTO */
3891 >  if (conf_parser_ctx.pass == 2)
3892 >    block_state.modes.value |= UMODE_DEBUG;
3893   }
3894 + #line 3895 "conf_parser.c" /* yacc.c:1646  */
3895      break;
3896  
3897 <  case 147:
3898 < /* Line 1787 of yacc.c  */
3990 < #line 1083 "conf_parser.y"
3897 >  case 182:
3898 > #line 1234 "conf_parser.y" /* yacc.c:1646  */
3899      {
3900    if (conf_parser_ctx.pass == 2)
3901 <  {
3994 <    MyFree(class_name);
3995 <    DupString(class_name, yylval.string);
3996 <  }
3901 >    block_state.modes.value |= UMODE_FULL;
3902   }
3903 + #line 3904 "conf_parser.c" /* yacc.c:1646  */
3904      break;
3905  
3906 <  case 148:
3907 < /* Line 1787 of yacc.c  */
4002 < #line 1092 "conf_parser.y"
3906 >  case 183:
3907 > #line 1238 "conf_parser.y" /* yacc.c:1646  */
3908      {
3909    if (conf_parser_ctx.pass == 2)
3910 <    yy_aconf->modes = 0;
3910 >    block_state.modes.value |= UMODE_HIDDEN;
3911   }
3912 + #line 3913 "conf_parser.c" /* yacc.c:1646  */
3913      break;
3914  
3915 <  case 152:
3916 < /* Line 1787 of yacc.c  */
4011 < #line 1099 "conf_parser.y"
3915 >  case 184:
3916 > #line 1242 "conf_parser.y" /* yacc.c:1646  */
3917      {
3918    if (conf_parser_ctx.pass == 2)
3919 <    yy_aconf->modes |= UMODE_BOTS;
3919 >    block_state.modes.value |= UMODE_HIDECHANS;
3920   }
3921 + #line 3922 "conf_parser.c" /* yacc.c:1646  */
3922      break;
3923  
3924 <  case 153:
3925 < /* Line 1787 of yacc.c  */
4020 < #line 1103 "conf_parser.y"
3924 >  case 185:
3925 > #line 1246 "conf_parser.y" /* yacc.c:1646  */
3926      {
3927    if (conf_parser_ctx.pass == 2)
3928 <    yy_aconf->modes |= UMODE_CCONN;
3928 >    block_state.modes.value |= UMODE_HIDEIDLE;
3929   }
3930 + #line 3931 "conf_parser.c" /* yacc.c:1646  */
3931      break;
3932  
3933 <  case 154:
3934 < /* Line 1787 of yacc.c  */
4029 < #line 1107 "conf_parser.y"
3933 >  case 186:
3934 > #line 1250 "conf_parser.y" /* yacc.c:1646  */
3935      {
3936    if (conf_parser_ctx.pass == 2)
3937 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3937 >    block_state.modes.value |= UMODE_SKILL;
3938   }
3939 + #line 3940 "conf_parser.c" /* yacc.c:1646  */
3940      break;
3941  
3942 <  case 155:
3943 < /* Line 1787 of yacc.c  */
4038 < #line 1111 "conf_parser.y"
3942 >  case 187:
3943 > #line 1254 "conf_parser.y" /* yacc.c:1646  */
3944      {
3945    if (conf_parser_ctx.pass == 2)
3946 <    yy_aconf->modes |= UMODE_DEAF;
3946 >    block_state.modes.value |= UMODE_NCHANGE;
3947   }
3948 + #line 3949 "conf_parser.c" /* yacc.c:1646  */
3949      break;
3950  
3951 <  case 156:
3952 < /* Line 1787 of yacc.c  */
4047 < #line 1115 "conf_parser.y"
3951 >  case 188:
3952 > #line 1258 "conf_parser.y" /* yacc.c:1646  */
3953      {
3954    if (conf_parser_ctx.pass == 2)
3955 <    yy_aconf->modes |= UMODE_DEBUG;
3955 >    block_state.modes.value |= UMODE_REJ;
3956   }
3957 + #line 3958 "conf_parser.c" /* yacc.c:1646  */
3958      break;
3959  
3960 <  case 157:
3961 < /* Line 1787 of yacc.c  */
4056 < #line 1119 "conf_parser.y"
3960 >  case 189:
3961 > #line 1262 "conf_parser.y" /* yacc.c:1646  */
3962      {
3963    if (conf_parser_ctx.pass == 2)
3964 <    yy_aconf->modes |= UMODE_FULL;
3964 >    block_state.modes.value |= UMODE_UNAUTH;
3965   }
3966 + #line 3967 "conf_parser.c" /* yacc.c:1646  */
3967      break;
3968  
3969 <  case 158:
3970 < /* Line 1787 of yacc.c  */
4065 < #line 1123 "conf_parser.y"
3969 >  case 190:
3970 > #line 1266 "conf_parser.y" /* yacc.c:1646  */
3971      {
3972    if (conf_parser_ctx.pass == 2)
3973 <    yy_aconf->modes |= UMODE_HIDDEN;
3973 >    block_state.modes.value |= UMODE_SPY;
3974   }
3975 + #line 3976 "conf_parser.c" /* yacc.c:1646  */
3976      break;
3977  
3978 <  case 159:
3979 < /* Line 1787 of yacc.c  */
4074 < #line 1127 "conf_parser.y"
3978 >  case 191:
3979 > #line 1270 "conf_parser.y" /* yacc.c:1646  */
3980      {
3981    if (conf_parser_ctx.pass == 2)
3982 <    yy_aconf->modes |= UMODE_SKILL;
3982 >    block_state.modes.value |= UMODE_EXTERNAL;
3983   }
3984 + #line 3985 "conf_parser.c" /* yacc.c:1646  */
3985      break;
3986  
3987 <  case 160:
3988 < /* Line 1787 of yacc.c  */
4083 < #line 1131 "conf_parser.y"
3987 >  case 192:
3988 > #line 1274 "conf_parser.y" /* yacc.c:1646  */
3989      {
3990    if (conf_parser_ctx.pass == 2)
3991 <    yy_aconf->modes |= UMODE_NCHANGE;
3991 >    block_state.modes.value |= UMODE_SERVNOTICE;
3992   }
3993 + #line 3994 "conf_parser.c" /* yacc.c:1646  */
3994      break;
3995  
3996 <  case 161:
3997 < /* Line 1787 of yacc.c  */
4092 < #line 1135 "conf_parser.y"
3996 >  case 193:
3997 > #line 1278 "conf_parser.y" /* yacc.c:1646  */
3998      {
3999    if (conf_parser_ctx.pass == 2)
4000 <    yy_aconf->modes |= UMODE_REJ;
4000 >    block_state.modes.value |= UMODE_INVISIBLE;
4001   }
4002 + #line 4003 "conf_parser.c" /* yacc.c:1646  */
4003      break;
4004  
4005 <  case 162:
4006 < /* Line 1787 of yacc.c  */
4101 < #line 1139 "conf_parser.y"
4005 >  case 194:
4006 > #line 1282 "conf_parser.y" /* yacc.c:1646  */
4007      {
4008    if (conf_parser_ctx.pass == 2)
4009 <    yy_aconf->modes |= UMODE_UNAUTH;
4009 >    block_state.modes.value |= UMODE_WALLOP;
4010   }
4011 + #line 4012 "conf_parser.c" /* yacc.c:1646  */
4012      break;
4013  
4014 <  case 163:
4015 < /* Line 1787 of yacc.c  */
4110 < #line 1143 "conf_parser.y"
4014 >  case 195:
4015 > #line 1286 "conf_parser.y" /* yacc.c:1646  */
4016      {
4017    if (conf_parser_ctx.pass == 2)
4018 <    yy_aconf->modes |= UMODE_SPY;
4018 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4019   }
4020 + #line 4021 "conf_parser.c" /* yacc.c:1646  */
4021      break;
4022  
4023 <  case 164:
4024 < /* Line 1787 of yacc.c  */
4119 < #line 1147 "conf_parser.y"
4023 >  case 196:
4024 > #line 1290 "conf_parser.y" /* yacc.c:1646  */
4025      {
4026    if (conf_parser_ctx.pass == 2)
4027 <    yy_aconf->modes |= UMODE_EXTERNAL;
4027 >    block_state.modes.value |= UMODE_CALLERID;
4028   }
4029 + #line 4030 "conf_parser.c" /* yacc.c:1646  */
4030      break;
4031  
4032 <  case 165:
4033 < /* Line 1787 of yacc.c  */
4128 < #line 1151 "conf_parser.y"
4032 >  case 197:
4033 > #line 1294 "conf_parser.y" /* yacc.c:1646  */
4034      {
4035    if (conf_parser_ctx.pass == 2)
4036 <    yy_aconf->modes |= UMODE_OPERWALL;
4036 >    block_state.modes.value |= UMODE_LOCOPS;
4037   }
4038 + #line 4039 "conf_parser.c" /* yacc.c:1646  */
4039      break;
4040  
4041 <  case 166:
4042 < /* Line 1787 of yacc.c  */
4137 < #line 1155 "conf_parser.y"
4041 >  case 198:
4042 > #line 1298 "conf_parser.y" /* yacc.c:1646  */
4043      {
4044    if (conf_parser_ctx.pass == 2)
4045 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4045 >    block_state.modes.value |= UMODE_REGONLY;
4046   }
4047 + #line 4048 "conf_parser.c" /* yacc.c:1646  */
4048      break;
4049  
4050 <  case 167:
4051 < /* Line 1787 of yacc.c  */
4146 < #line 1159 "conf_parser.y"
4050 >  case 199:
4051 > #line 1302 "conf_parser.y" /* yacc.c:1646  */
4052      {
4053    if (conf_parser_ctx.pass == 2)
4054 <    yy_aconf->modes |= UMODE_INVISIBLE;
4054 >    block_state.modes.value |= UMODE_FARCONNECT;
4055   }
4056 + #line 4057 "conf_parser.c" /* yacc.c:1646  */
4057      break;
4058  
4059 <  case 168:
4060 < /* Line 1787 of yacc.c  */
4155 < #line 1163 "conf_parser.y"
4059 >  case 200:
4060 > #line 1308 "conf_parser.y" /* yacc.c:1646  */
4061      {
4062    if (conf_parser_ctx.pass == 2)
4063 <    yy_aconf->modes |= UMODE_WALLOP;
4063 >    block_state.port.value = 0;
4064   }
4065 + #line 4066 "conf_parser.c" /* yacc.c:1646  */
4066      break;
4067  
4068 <  case 169:
4069 < /* Line 1787 of yacc.c  */
4164 < #line 1167 "conf_parser.y"
4068 >  case 204:
4069 > #line 1315 "conf_parser.y" /* yacc.c:1646  */
4070      {
4071    if (conf_parser_ctx.pass == 2)
4072 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4072 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4073   }
4074 + #line 4075 "conf_parser.c" /* yacc.c:1646  */
4075      break;
4076  
4077 <  case 170:
4078 < /* Line 1787 of yacc.c  */
4173 < #line 1171 "conf_parser.y"
4077 >  case 205:
4078 > #line 1319 "conf_parser.y" /* yacc.c:1646  */
4079      {
4080    if (conf_parser_ctx.pass == 2)
4081 <    yy_aconf->modes |= UMODE_CALLERID;
4081 >    block_state.port.value |= OPER_FLAG_KILL;
4082   }
4083 + #line 4084 "conf_parser.c" /* yacc.c:1646  */
4084      break;
4085  
4086 <  case 171:
4087 < /* Line 1787 of yacc.c  */
4182 < #line 1175 "conf_parser.y"
4086 >  case 206:
4087 > #line 1323 "conf_parser.y" /* yacc.c:1646  */
4088      {
4089    if (conf_parser_ctx.pass == 2)
4090 <    yy_aconf->modes |= UMODE_LOCOPS;
4090 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4091   }
4092 + #line 4093 "conf_parser.c" /* yacc.c:1646  */
4093      break;
4094  
4095 <  case 172:
4096 < /* Line 1787 of yacc.c  */
4191 < #line 1181 "conf_parser.y"
4095 >  case 207:
4096 > #line 1327 "conf_parser.y" /* yacc.c:1646  */
4097      {
4098    if (conf_parser_ctx.pass == 2)
4099 <    yy_aconf->port = 0;
4099 >    block_state.port.value |= OPER_FLAG_CONNECT;
4100   }
4101 + #line 4102 "conf_parser.c" /* yacc.c:1646  */
4102      break;
4103  
4104 <  case 176:
4105 < /* Line 1787 of yacc.c  */
4200 < #line 1188 "conf_parser.y"
4104 >  case 208:
4105 > #line 1331 "conf_parser.y" /* yacc.c:1646  */
4106      {
4107    if (conf_parser_ctx.pass == 2)
4108 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4108 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4109   }
4110 + #line 4111 "conf_parser.c" /* yacc.c:1646  */
4111      break;
4112  
4113 <  case 177:
4114 < /* Line 1787 of yacc.c  */
4209 < #line 1192 "conf_parser.y"
4113 >  case 209:
4114 > #line 1335 "conf_parser.y" /* yacc.c:1646  */
4115      {
4116    if (conf_parser_ctx.pass == 2)
4117 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4117 >    block_state.port.value |= OPER_FLAG_SQUIT;
4118   }
4119 + #line 4120 "conf_parser.c" /* yacc.c:1646  */
4120      break;
4121  
4122 <  case 178:
4123 < /* Line 1787 of yacc.c  */
4218 < #line 1196 "conf_parser.y"
4122 >  case 210:
4123 > #line 1339 "conf_parser.y" /* yacc.c:1646  */
4124      {
4125    if (conf_parser_ctx.pass == 2)
4126 <    yy_aconf->port |= OPER_FLAG_K;
4126 >    block_state.port.value |= OPER_FLAG_KLINE;
4127   }
4128 + #line 4129 "conf_parser.c" /* yacc.c:1646  */
4129      break;
4130  
4131 <  case 179:
4132 < /* Line 1787 of yacc.c  */
4227 < #line 1200 "conf_parser.y"
4131 >  case 211:
4132 > #line 1343 "conf_parser.y" /* yacc.c:1646  */
4133      {
4134    if (conf_parser_ctx.pass == 2)
4135 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4135 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4136   }
4137 + #line 4138 "conf_parser.c" /* yacc.c:1646  */
4138      break;
4139  
4140 <  case 180:
4141 < /* Line 1787 of yacc.c  */
4236 < #line 1204 "conf_parser.y"
4140 >  case 212:
4141 > #line 1347 "conf_parser.y" /* yacc.c:1646  */
4142      {
4143    if (conf_parser_ctx.pass == 2)
4144 <    yy_aconf->port |= OPER_FLAG_DLINE;
4144 >    block_state.port.value |= OPER_FLAG_DLINE;
4145   }
4146 + #line 4147 "conf_parser.c" /* yacc.c:1646  */
4147      break;
4148  
4149 <  case 181:
4150 < /* Line 1787 of yacc.c  */
4245 < #line 1208 "conf_parser.y"
4149 >  case 213:
4150 > #line 1351 "conf_parser.y" /* yacc.c:1646  */
4151      {
4152    if (conf_parser_ctx.pass == 2)
4153 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4153 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4154   }
4155 + #line 4156 "conf_parser.c" /* yacc.c:1646  */
4156      break;
4157  
4158 <  case 182:
4159 < /* Line 1787 of yacc.c  */
4254 < #line 1212 "conf_parser.y"
4158 >  case 214:
4159 > #line 1355 "conf_parser.y" /* yacc.c:1646  */
4160      {
4161    if (conf_parser_ctx.pass == 2)
4162 <    yy_aconf->port |= OPER_FLAG_X;
4162 >    block_state.port.value |= OPER_FLAG_XLINE;
4163   }
4164 + #line 4165 "conf_parser.c" /* yacc.c:1646  */
4165      break;
4166  
4167 <  case 183:
4168 < /* Line 1787 of yacc.c  */
4263 < #line 1216 "conf_parser.y"
4167 >  case 215:
4168 > #line 1359 "conf_parser.y" /* yacc.c:1646  */
4169      {
4170    if (conf_parser_ctx.pass == 2)
4171 <    yy_aconf->port |= OPER_FLAG_GLINE;
4171 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4172   }
4173 + #line 4174 "conf_parser.c" /* yacc.c:1646  */
4174      break;
4175  
4176 <  case 184:
4177 < /* Line 1787 of yacc.c  */
4272 < #line 1220 "conf_parser.y"
4176 >  case 216:
4177 > #line 1363 "conf_parser.y" /* yacc.c:1646  */
4178      {
4179    if (conf_parser_ctx.pass == 2)
4180 <    yy_aconf->port |= OPER_FLAG_DIE;
4180 >    block_state.port.value |= OPER_FLAG_GLINE;
4181   }
4182 + #line 4183 "conf_parser.c" /* yacc.c:1646  */
4183      break;
4184  
4185 <  case 185:
4186 < /* Line 1787 of yacc.c  */
4281 < #line 1224 "conf_parser.y"
4185 >  case 217:
4186 > #line 1367 "conf_parser.y" /* yacc.c:1646  */
4187      {
4188    if (conf_parser_ctx.pass == 2)
4189 <    yy_aconf->port |= OPER_FLAG_RESTART;
4189 >    block_state.port.value |= OPER_FLAG_DIE;
4190   }
4191 + #line 4192 "conf_parser.c" /* yacc.c:1646  */
4192      break;
4193  
4194 <  case 186:
4195 < /* Line 1787 of yacc.c  */
4290 < #line 1228 "conf_parser.y"
4194 >  case 218:
4195 > #line 1371 "conf_parser.y" /* yacc.c:1646  */
4196      {
4197    if (conf_parser_ctx.pass == 2)
4198 <    yy_aconf->port |= OPER_FLAG_REHASH;
4198 >    block_state.port.value |= OPER_FLAG_RESTART;
4199   }
4200 + #line 4201 "conf_parser.c" /* yacc.c:1646  */
4201      break;
4202  
4203 <  case 187:
4204 < /* Line 1787 of yacc.c  */
4299 < #line 1232 "conf_parser.y"
4203 >  case 219:
4204 > #line 1375 "conf_parser.y" /* yacc.c:1646  */
4205      {
4206    if (conf_parser_ctx.pass == 2)
4207 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4207 >    block_state.port.value |= OPER_FLAG_REHASH;
4208   }
4209 + #line 4210 "conf_parser.c" /* yacc.c:1646  */
4210      break;
4211  
4212 <  case 188:
4213 < /* Line 1787 of yacc.c  */
4308 < #line 1236 "conf_parser.y"
4212 >  case 220:
4213 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4214      {
4215    if (conf_parser_ctx.pass == 2)
4216 <    yy_aconf->port |= OPER_FLAG_N;
4216 >    block_state.port.value |= OPER_FLAG_ADMIN;
4217   }
4218 + #line 4219 "conf_parser.c" /* yacc.c:1646  */
4219      break;
4220  
4221 <  case 189:
4222 < /* Line 1787 of yacc.c  */
4317 < #line 1240 "conf_parser.y"
4221 >  case 221:
4222 > #line 1383 "conf_parser.y" /* yacc.c:1646  */
4223      {
4224    if (conf_parser_ctx.pass == 2)
4225 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4225 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4226   }
4227 + #line 4228 "conf_parser.c" /* yacc.c:1646  */
4228      break;
4229  
4230 <  case 190:
4231 < /* Line 1787 of yacc.c  */
4326 < #line 1244 "conf_parser.y"
4230 >  case 222:
4231 > #line 1387 "conf_parser.y" /* yacc.c:1646  */
4232      {
4233    if (conf_parser_ctx.pass == 2)
4234 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4234 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4235   }
4236 + #line 4237 "conf_parser.c" /* yacc.c:1646  */
4237      break;
4238  
4239 <  case 191:
4240 < /* Line 1787 of yacc.c  */
4335 < #line 1248 "conf_parser.y"
4239 >  case 223:
4240 > #line 1391 "conf_parser.y" /* yacc.c:1646  */
4241      {
4242    if (conf_parser_ctx.pass == 2)
4243 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4243 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4244   }
4245 + #line 4246 "conf_parser.c" /* yacc.c:1646  */
4246      break;
4247  
4248 <  case 192:
4249 < /* Line 1787 of yacc.c  */
4344 < #line 1252 "conf_parser.y"
4248 >  case 224:
4249 > #line 1395 "conf_parser.y" /* yacc.c:1646  */
4250      {
4251    if (conf_parser_ctx.pass == 2)
4252 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4252 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4253   }
4254 + #line 4255 "conf_parser.c" /* yacc.c:1646  */
4255      break;
4256  
4257 <  case 193:
4258 < /* Line 1787 of yacc.c  */
4353 < #line 1256 "conf_parser.y"
4257 >  case 225:
4258 > #line 1399 "conf_parser.y" /* yacc.c:1646  */
4259      {
4260    if (conf_parser_ctx.pass == 2)
4261 <    yy_aconf->port |= OPER_FLAG_SET;
4261 >    block_state.port.value |= OPER_FLAG_SET;
4262   }
4263 + #line 4264 "conf_parser.c" /* yacc.c:1646  */
4264      break;
4265  
4266 <  case 194:
4267 < /* Line 1787 of yacc.c  */
4362 < #line 1260 "conf_parser.y"
4266 >  case 226:
4267 > #line 1403 "conf_parser.y" /* yacc.c:1646  */
4268      {
4269    if (conf_parser_ctx.pass == 2)
4270 <    yy_aconf->port |= OPER_FLAG_MODULE;
4270 >    block_state.port.value |= OPER_FLAG_MODULE;
4271   }
4272 + #line 4273 "conf_parser.c" /* yacc.c:1646  */
4273      break;
4274  
4275 <  case 195:
4276 < /* Line 1787 of yacc.c  */
4371 < #line 1270 "conf_parser.y"
4275 >  case 227:
4276 > #line 1413 "conf_parser.y" /* yacc.c:1646  */
4277      {
4278 <  if (conf_parser_ctx.pass == 1)
4279 <  {
4280 <    yy_conf = make_conf_item(CLASS_TYPE);
4281 <    yy_class = map_to_conf(yy_conf);
4282 <  }
4278 >  if (conf_parser_ctx.pass != 1)
4279 >    break;
4280 >
4281 >  reset_block_state();
4282 >
4283 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4284 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4285 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4286 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4287 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4288   }
4289 + #line 4290 "conf_parser.c" /* yacc.c:1646  */
4290      break;
4291  
4292 <  case 196:
4293 < /* Line 1787 of yacc.c  */
4383 < #line 1277 "conf_parser.y"
4292 >  case 228:
4293 > #line 1425 "conf_parser.y" /* yacc.c:1646  */
4294      {
4295 <  if (conf_parser_ctx.pass == 1)
4386 <  {
4387 <    struct ConfItem *cconf = NULL;
4388 <    struct ClassItem *class = NULL;
4295 >  struct ClassItem *class = NULL;
4296  
4297 <    if (yy_class_name == NULL)
4298 <      delete_conf_item(yy_conf);
4392 <    else
4393 <    {
4394 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4297 >  if (conf_parser_ctx.pass != 1)
4298 >    break;
4299  
4300 <      if (cconf != NULL)                /* The class existed already */
4301 <      {
4398 <        int user_count = 0;
4300 >  if (!block_state.class.buf[0])
4301 >    break;
4302  
4303 <        rebuild_cidr_class(cconf, yy_class);
4303 >  if (!(class = class_find(block_state.class.buf, 0)))
4304 >    class = class_make();
4305  
4306 <        class = map_to_conf(cconf);
4306 >  class->active = 1;
4307 >  MyFree(class->name);
4308 >  class->name = xstrdup(block_state.class.buf);
4309 >  class->ping_freq = block_state.ping_freq.value;
4310 >  class->max_perip = block_state.max_perip.value;
4311 >  class->con_freq = block_state.con_freq.value;
4312 >  class->max_total = block_state.max_total.value;
4313 >  class->max_global = block_state.max_global.value;
4314 >  class->max_local = block_state.max_local.value;
4315 >  class->max_ident = block_state.max_ident.value;
4316 >  class->max_sendq = block_state.max_sendq.value;
4317 >  class->max_recvq = block_state.max_recvq.value;
4318 >  class->max_channels = block_state.max_channels.value;
4319  
4320 <        user_count = class->curr_user_count;
4321 <        memcpy(class, yy_class, sizeof(*class));
4322 <        class->curr_user_count = user_count;
4323 <        class->active = 1;
4320 >  if (block_state.min_idle.value > block_state.max_idle.value)
4321 >  {
4322 >    block_state.min_idle.value = 0;
4323 >    block_state.max_idle.value = 0;
4324 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4325 >  }
4326  
4327 <        delete_conf_item(yy_conf);
4327 >  class->flags = block_state.flags.value;
4328 >  class->min_idle = block_state.min_idle.value;
4329 >  class->max_idle = block_state.max_idle.value;
4330  
4331 <        MyFree(cconf->name);            /* Allows case change of class name */
4332 <        cconf->name = yy_class_name;
4333 <      }
4334 <      else      /* Brand new class */
4335 <      {
4336 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4417 <        yy_conf->name = yy_class_name;
4418 <        yy_class->active = 1;
4419 <      }
4420 <    }
4331 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4332 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4333 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4334 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4335 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4336 >        rebuild_cidr_list(class);
4337  
4338 <    yy_class_name = NULL;
4339 <  }
4338 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4339 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4340 >  class->number_per_cidr = block_state.number_per_cidr.value;
4341   }
4342 + #line 4343 "conf_parser.c" /* yacc.c:1646  */
4343      break;
4344  
4345 <  case 214:
4346 < /* Line 1787 of yacc.c  */
4429 < #line 1335 "conf_parser.y"
4345 >  case 249:
4346 > #line 1494 "conf_parser.y" /* yacc.c:1646  */
4347      {
4348    if (conf_parser_ctx.pass == 1)
4349 <  {
4433 <    MyFree(yy_class_name);
4434 <    DupString(yy_class_name, yylval.string);
4435 <  }
4349 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4350   }
4351 + #line 4352 "conf_parser.c" /* yacc.c:1646  */
4352      break;
4353  
4354 <  case 215:
4355 < /* Line 1787 of yacc.c  */
4441 < #line 1344 "conf_parser.y"
4354 >  case 250:
4355 > #line 1500 "conf_parser.y" /* yacc.c:1646  */
4356      {
4357    if (conf_parser_ctx.pass == 1)
4358 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4358 >    block_state.ping_freq.value = (yyvsp[-1].number);
4359   }
4360 + #line 4361 "conf_parser.c" /* yacc.c:1646  */
4361      break;
4362  
4363 <  case 216:
4364 < /* Line 1787 of yacc.c  */
4450 < #line 1350 "conf_parser.y"
4363 >  case 251:
4364 > #line 1506 "conf_parser.y" /* yacc.c:1646  */
4365      {
4366    if (conf_parser_ctx.pass == 1)
4367 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4367 >    block_state.max_perip.value = (yyvsp[-1].number);
4368   }
4369 + #line 4370 "conf_parser.c" /* yacc.c:1646  */
4370      break;
4371  
4372 <  case 217:
4373 < /* Line 1787 of yacc.c  */
4459 < #line 1356 "conf_parser.y"
4372 >  case 252:
4373 > #line 1512 "conf_parser.y" /* yacc.c:1646  */
4374      {
4375    if (conf_parser_ctx.pass == 1)
4376 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4376 >    block_state.con_freq.value = (yyvsp[-1].number);
4377   }
4378 + #line 4379 "conf_parser.c" /* yacc.c:1646  */
4379      break;
4380  
4381 <  case 218:
4382 < /* Line 1787 of yacc.c  */
4468 < #line 1362 "conf_parser.y"
4381 >  case 253:
4382 > #line 1518 "conf_parser.y" /* yacc.c:1646  */
4383      {
4384    if (conf_parser_ctx.pass == 1)
4385 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4385 >    block_state.max_channels.value = (yyvsp[-1].number);
4386   }
4387 + #line 4388 "conf_parser.c" /* yacc.c:1646  */
4388      break;
4389  
4390 <  case 219:
4391 < /* Line 1787 of yacc.c  */
4477 < #line 1368 "conf_parser.y"
4390 >  case 254:
4391 > #line 1524 "conf_parser.y" /* yacc.c:1646  */
4392      {
4393    if (conf_parser_ctx.pass == 1)
4394 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4394 >    block_state.max_total.value = (yyvsp[-1].number);
4395   }
4396 + #line 4397 "conf_parser.c" /* yacc.c:1646  */
4397      break;
4398  
4399 <  case 220:
4400 < /* Line 1787 of yacc.c  */
4486 < #line 1374 "conf_parser.y"
4399 >  case 255:
4400 > #line 1530 "conf_parser.y" /* yacc.c:1646  */
4401      {
4402    if (conf_parser_ctx.pass == 1)
4403 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4403 >    block_state.max_global.value = (yyvsp[-1].number);
4404   }
4405 + #line 4406 "conf_parser.c" /* yacc.c:1646  */
4406      break;
4407  
4408 <  case 221:
4409 < /* Line 1787 of yacc.c  */
4495 < #line 1380 "conf_parser.y"
4408 >  case 256:
4409 > #line 1536 "conf_parser.y" /* yacc.c:1646  */
4410      {
4411    if (conf_parser_ctx.pass == 1)
4412 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4412 >    block_state.max_local.value = (yyvsp[-1].number);
4413   }
4414 + #line 4415 "conf_parser.c" /* yacc.c:1646  */
4415      break;
4416  
4417 <  case 222:
4418 < /* Line 1787 of yacc.c  */
4504 < #line 1386 "conf_parser.y"
4417 >  case 257:
4418 > #line 1542 "conf_parser.y" /* yacc.c:1646  */
4419      {
4420    if (conf_parser_ctx.pass == 1)
4421 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4421 >    block_state.max_ident.value = (yyvsp[-1].number);
4422   }
4423 + #line 4424 "conf_parser.c" /* yacc.c:1646  */
4424      break;
4425  
4426 <  case 223:
4427 < /* Line 1787 of yacc.c  */
4513 < #line 1392 "conf_parser.y"
4426 >  case 258:
4427 > #line 1548 "conf_parser.y" /* yacc.c:1646  */
4428      {
4429    if (conf_parser_ctx.pass == 1)
4430 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4430 >    block_state.max_sendq.value = (yyvsp[-1].number);
4431   }
4432 + #line 4433 "conf_parser.c" /* yacc.c:1646  */
4433      break;
4434  
4435 <  case 224:
4436 < /* Line 1787 of yacc.c  */
4522 < #line 1398 "conf_parser.y"
4435 >  case 259:
4436 > #line 1554 "conf_parser.y" /* yacc.c:1646  */
4437      {
4438    if (conf_parser_ctx.pass == 1)
4439 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4440 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4439 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4440 >      block_state.max_recvq.value = (yyvsp[-1].number);
4441   }
4442 + #line 4443 "conf_parser.c" /* yacc.c:1646  */
4443      break;
4444  
4445 <  case 225:
4446 < /* Line 1787 of yacc.c  */
4532 < #line 1405 "conf_parser.y"
4445 >  case 260:
4446 > #line 1561 "conf_parser.y" /* yacc.c:1646  */
4447      {
4448    if (conf_parser_ctx.pass == 1)
4449 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4449 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4450   }
4451 + #line 4452 "conf_parser.c" /* yacc.c:1646  */
4452      break;
4453  
4454 <  case 226:
4455 < /* Line 1787 of yacc.c  */
4541 < #line 1411 "conf_parser.y"
4454 >  case 261:
4455 > #line 1567 "conf_parser.y" /* yacc.c:1646  */
4456      {
4457    if (conf_parser_ctx.pass == 1)
4458 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4458 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4459   }
4460 + #line 4461 "conf_parser.c" /* yacc.c:1646  */
4461      break;
4462  
4463 <  case 227:
4464 < /* Line 1787 of yacc.c  */
4550 < #line 1417 "conf_parser.y"
4463 >  case 262:
4464 > #line 1573 "conf_parser.y" /* yacc.c:1646  */
4465      {
4466    if (conf_parser_ctx.pass == 1)
4467 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4467 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4468   }
4469 + #line 4470 "conf_parser.c" /* yacc.c:1646  */
4470      break;
4471  
4472 <  case 228:
4473 < /* Line 1787 of yacc.c  */
4559 < #line 1426 "conf_parser.y"
4472 >  case 263:
4473 > #line 1579 "conf_parser.y" /* yacc.c:1646  */
4474      {
4475 <  if (conf_parser_ctx.pass == 2)
4476 <  {
4477 <    listener_address = NULL;
4478 <    listener_flags = 0;
4479 <  }
4475 >  if (conf_parser_ctx.pass != 1)
4476 >    break;
4477 >
4478 >  block_state.min_idle.value = (yyvsp[-1].number);
4479 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4480   }
4481 + #line 4482 "conf_parser.c" /* yacc.c:1646  */
4482      break;
4483  
4484 <  case 229:
4485 < /* Line 1787 of yacc.c  */
4486 < #line 1433 "conf_parser.y"
4484 >  case 264:
4485 > #line 1588 "conf_parser.y" /* yacc.c:1646  */
4486 >    {
4487 >  if (conf_parser_ctx.pass != 1)
4488 >    break;
4489 >
4490 >  block_state.max_idle.value = (yyvsp[-1].number);
4491 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4492 > }
4493 > #line 4494 "conf_parser.c" /* yacc.c:1646  */
4494 >    break;
4495 >
4496 >  case 265:
4497 > #line 1597 "conf_parser.y" /* yacc.c:1646  */
4498 >    {
4499 >  if (conf_parser_ctx.pass == 1)
4500 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4501 > }
4502 > #line 4503 "conf_parser.c" /* yacc.c:1646  */
4503 >    break;
4504 >
4505 >  case 269:
4506 > #line 1604 "conf_parser.y" /* yacc.c:1646  */
4507 >    {
4508 >  if (conf_parser_ctx.pass == 1)
4509 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4510 > }
4511 > #line 4512 "conf_parser.c" /* yacc.c:1646  */
4512 >    break;
4513 >
4514 >  case 270:
4515 > #line 1608 "conf_parser.y" /* yacc.c:1646  */
4516 >    {
4517 >  if (conf_parser_ctx.pass == 1)
4518 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4519 > }
4520 > #line 4521 "conf_parser.c" /* yacc.c:1646  */
4521 >    break;
4522 >
4523 >  case 271:
4524 > #line 1618 "conf_parser.y" /* yacc.c:1646  */
4525      {
4526    if (conf_parser_ctx.pass == 2)
4527 <  {
4575 <    MyFree(listener_address);
4576 <    listener_address = NULL;
4577 <  }
4527 >    reset_block_state();
4528   }
4529 + #line 4530 "conf_parser.c" /* yacc.c:1646  */
4530      break;
4531  
4532 <  case 230:
4533 < /* Line 1787 of yacc.c  */
4583 < #line 1442 "conf_parser.y"
4532 >  case 273:
4533 > #line 1624 "conf_parser.y" /* yacc.c:1646  */
4534      {
4535 <  listener_flags = 0;
4535 >  block_state.flags.value = 0;
4536   }
4537 + #line 4538 "conf_parser.c" /* yacc.c:1646  */
4538      break;
4539  
4540 <  case 234:
4541 < /* Line 1787 of yacc.c  */
4591 < #line 1448 "conf_parser.y"
4540 >  case 277:
4541 > #line 1630 "conf_parser.y" /* yacc.c:1646  */
4542      {
4543    if (conf_parser_ctx.pass == 2)
4544 <    listener_flags |= LISTENER_SSL;
4544 >    block_state.flags.value |= LISTENER_SSL;
4545   }
4546 + #line 4547 "conf_parser.c" /* yacc.c:1646  */
4547      break;
4548  
4549 <  case 235:
4550 < /* Line 1787 of yacc.c  */
4600 < #line 1452 "conf_parser.y"
4549 >  case 278:
4550 > #line 1634 "conf_parser.y" /* yacc.c:1646  */
4551      {
4552    if (conf_parser_ctx.pass == 2)
4553 <    listener_flags |= LISTENER_HIDDEN;
4553 >    block_state.flags.value |= LISTENER_HIDDEN;
4554   }
4555 + #line 4556 "conf_parser.c" /* yacc.c:1646  */
4556      break;
4557  
4558 <  case 236:
4559 < /* Line 1787 of yacc.c  */
4609 < #line 1456 "conf_parser.y"
4558 >  case 279:
4559 > #line 1638 "conf_parser.y" /* yacc.c:1646  */
4560      {
4561    if (conf_parser_ctx.pass == 2)
4562 <    listener_flags |= LISTENER_SERVER;
4562 >   block_state.flags.value |= LISTENER_SERVER;
4563   }
4564 + #line 4565 "conf_parser.c" /* yacc.c:1646  */
4565      break;
4566  
4567 <  case 244:
4568 < /* Line 1787 of yacc.c  */
4569 < #line 1466 "conf_parser.y"
4570 <    { listener_flags = 0; }
4567 >  case 287:
4568 > #line 1646 "conf_parser.y" /* yacc.c:1646  */
4569 >    { block_state.flags.value = 0; }
4570 > #line 4571 "conf_parser.c" /* yacc.c:1646  */
4571      break;
4572  
4573 <  case 248:
4574 < /* Line 1787 of yacc.c  */
4624 < #line 1471 "conf_parser.y"
4573 >  case 291:
4574 > #line 1651 "conf_parser.y" /* yacc.c:1646  */
4575      {
4576    if (conf_parser_ctx.pass == 2)
4577    {
4578 <    if ((listener_flags & LISTENER_SSL))
4578 >    if (block_state.flags.value & LISTENER_SSL)
4579   #ifdef HAVE_LIBCRYPTO
4580        if (!ServerInfo.server_ctx)
4581   #endif
4582        {
4583 <        yyerror("SSL not available - port closed");
4584 <        break;
4583 >        conf_error_report("SSL not available - port closed");
4584 >        break;
4585        }
4586 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4586 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4587    }
4588   }
4589 + #line 4590 "conf_parser.c" /* yacc.c:1646  */
4590      break;
4591  
4592 <  case 249:
4593 < /* Line 1787 of yacc.c  */
4643 < #line 1485 "conf_parser.y"
4592 >  case 292:
4593 > #line 1665 "conf_parser.y" /* yacc.c:1646  */
4594      {
4595    if (conf_parser_ctx.pass == 2)
4596    {
4597 <    int i;
4648 <
4649 <    if ((listener_flags & LISTENER_SSL))
4597 >    if (block_state.flags.value & LISTENER_SSL)
4598   #ifdef HAVE_LIBCRYPTO
4599        if (!ServerInfo.server_ctx)
4600   #endif
4601        {
4602 <        yyerror("SSL not available - port closed");
4603 <        break;
4602 >        conf_error_report("SSL not available - port closed");
4603 >        break;
4604        }
4605  
4606 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4607 <      add_listener(i, listener_address, listener_flags);
4606 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4607 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4608    }
4609   }
4610 + #line 4611 "conf_parser.c" /* yacc.c:1646  */
4611      break;
4612  
4613 <  case 250:
4614 < /* Line 1787 of yacc.c  */
4666 < #line 1505 "conf_parser.y"
4613 >  case 293:
4614 > #line 1683 "conf_parser.y" /* yacc.c:1646  */
4615      {
4616    if (conf_parser_ctx.pass == 2)
4617 <  {
4670 <    MyFree(listener_address);
4671 <    DupString(listener_address, yylval.string);
4672 <  }
4617 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4618   }
4619 + #line 4620 "conf_parser.c" /* yacc.c:1646  */
4620      break;
4621  
4622 <  case 251:
4623 < /* Line 1787 of yacc.c  */
4678 < #line 1514 "conf_parser.y"
4622 >  case 294:
4623 > #line 1689 "conf_parser.y" /* yacc.c:1646  */
4624      {
4625    if (conf_parser_ctx.pass == 2)
4626 <  {
4682 <    MyFree(listener_address);
4683 <    DupString(listener_address, yylval.string);
4684 <  }
4626 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4627   }
4628 + #line 4629 "conf_parser.c" /* yacc.c:1646  */
4629      break;
4630  
4631 <  case 252:
4632 < /* Line 1787 of yacc.c  */
4690 < #line 1526 "conf_parser.y"
4631 >  case 295:
4632 > #line 1698 "conf_parser.y" /* yacc.c:1646  */
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635 <  {
4694 <    yy_conf = make_conf_item(CLIENT_TYPE);
4695 <    yy_aconf = map_to_conf(yy_conf);
4696 <  }
4697 <  else
4698 <  {
4699 <    MyFree(class_name);
4700 <    class_name = NULL;
4701 <  }
4635 >    reset_block_state();
4636   }
4637 + #line 4638 "conf_parser.c" /* yacc.c:1646  */
4638      break;
4639  
4640 <  case 253:
4641 < /* Line 1787 of yacc.c  */
4707 < #line 1538 "conf_parser.y"
4708 <    {
4709 <  if (conf_parser_ctx.pass == 2)
4710 <  {
4711 <    struct CollectItem *yy_tmp = NULL;
4712 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4713 <
4714 <    if (yy_aconf->user && yy_aconf->host)
4715 <    {
4716 <      conf_add_class_to_conf(yy_conf, class_name);
4717 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4718 <    }
4719 <    else
4720 <      delete_conf_item(yy_conf);
4721 <
4722 <    /* copy over settings from first struct */
4723 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4640 >  case 296:
4641 > #line 1702 "conf_parser.y" /* yacc.c:1646  */
4642      {
4643 <      struct AccessItem *new_aconf;
4726 <      struct ConfItem *new_conf;
4727 <
4728 <      new_conf = make_conf_item(CLIENT_TYPE);
4729 <      new_aconf = map_to_conf(new_conf);
4730 <
4731 <      yy_tmp = ptr->data;
4732 <
4733 <      assert(yy_tmp->user && yy_tmp->host);
4734 <
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4737 <      if (yy_conf->name != NULL)
4738 <        DupString(new_conf->name, yy_conf->name);
4739 <      if (yy_aconf->passwd != NULL)
4740 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4741 <
4742 <      new_aconf->flags = yy_aconf->flags;
4743 <      new_aconf->port  = yy_aconf->port;
4744 <
4745 <      DupString(new_aconf->user, yy_tmp->user);
4746 <      collapse(new_aconf->user);
4747 <
4748 <      DupString(new_aconf->host, yy_tmp->host);
4749 <      collapse(new_aconf->host);
4643 >  dlink_node *ptr = NULL;
4644  
4645 <      conf_add_class_to_conf(new_conf, class_name);
4752 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4753 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4754 <      free_collect_item(yy_tmp);
4755 <    }
4756 <
4757 <    MyFree(class_name);
4758 <    class_name = NULL;
4759 <    yy_conf = NULL;
4760 <    yy_aconf = NULL;
4761 <  }
4762 < }
4645 >  if (conf_parser_ctx.pass != 2)
4646      break;
4647  
4648 <  case 265:
4766 < /* Line 1787 of yacc.c  */
4767 < #line 1600 "conf_parser.y"
4768 <    {
4769 <  if (conf_parser_ctx.pass == 2)
4648 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4649    {
4650 <    struct CollectItem *yy_tmp = NULL;
4650 >    struct MaskItem *conf = NULL;
4651      struct split_nuh_item nuh;
4652  
4653 <    nuh.nuhmask  = yylval.string;
4653 >    nuh.nuhmask  = ptr->data;
4654      nuh.nickptr  = NULL;
4655 <    nuh.userptr  = userbuf;
4656 <    nuh.hostptr  = hostbuf;
4778 <
4655 >    nuh.userptr  = block_state.user.buf;
4656 >    nuh.hostptr  = block_state.host.buf;
4657      nuh.nicksize = 0;
4658 <    nuh.usersize = sizeof(userbuf);
4659 <    nuh.hostsize = sizeof(hostbuf);
4782 <
4658 >    nuh.usersize = sizeof(block_state.user.buf);
4659 >    nuh.hostsize = sizeof(block_state.host.buf);
4660      split_nuh(&nuh);
4661  
4662 <    if (yy_aconf->user == NULL)
4663 <    {
4664 <      DupString(yy_aconf->user, userbuf);
4788 <      DupString(yy_aconf->host, hostbuf);
4789 <    }
4790 <    else
4791 <    {
4792 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4662 >    conf        = conf_make(CONF_CLIENT);
4663 >    conf->user  = xstrdup(block_state.user.buf);
4664 >    conf->host  = xstrdup(block_state.host.buf);
4665  
4666 <      DupString(yy_tmp->user, userbuf);
4667 <      DupString(yy_tmp->host, hostbuf);
4666 >    if (block_state.rpass.buf[0])
4667 >      conf->passwd = xstrdup(block_state.rpass.buf);
4668 >    if (block_state.name.buf[0])
4669 >      conf->name = xstrdup(block_state.name.buf);
4670  
4671 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4672 <    }
4671 >    conf->flags = block_state.flags.value;
4672 >    conf->port  = block_state.port.value;
4673 >
4674 >    conf_add_class_to_conf(conf, block_state.class.buf);
4675 >    add_conf_by_address(CONF_CLIENT, conf);
4676    }
4677   }
4678 + #line 4679 "conf_parser.c" /* yacc.c:1646  */
4679      break;
4680  
4681 <  case 266:
4682 < /* Line 1787 of yacc.c  */
4805 < #line 1635 "conf_parser.y"
4681 >  case 308:
4682 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4683      {
4684    if (conf_parser_ctx.pass == 2)
4685 <  {
4686 <    /* be paranoid */
4687 <    if (yy_aconf->passwd != NULL)
4688 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4685 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4686 > }
4687 > #line 4688 "conf_parser.c" /* yacc.c:1646  */
4688 >    break;
4689  
4690 <    MyFree(yy_aconf->passwd);
4691 <    DupString(yy_aconf->passwd, yylval.string);
4692 <  }
4690 >  case 309:
4691 > #line 1757 "conf_parser.y" /* yacc.c:1646  */
4692 >    {
4693 >  if (conf_parser_ctx.pass == 2)
4694 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4695   }
4696 + #line 4697 "conf_parser.c" /* yacc.c:1646  */
4697      break;
4698  
4699 <  case 267:
4700 < /* Line 1787 of yacc.c  */
4821 < #line 1648 "conf_parser.y"
4699 >  case 310:
4700 > #line 1763 "conf_parser.y" /* yacc.c:1646  */
4701      {
4702    if (conf_parser_ctx.pass == 2)
4703 <  {
4825 <    MyFree(class_name);
4826 <    DupString(class_name, yylval.string);
4827 <  }
4703 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4704   }
4705 + #line 4706 "conf_parser.c" /* yacc.c:1646  */
4706      break;
4707  
4708 <  case 268:
4709 < /* Line 1787 of yacc.c  */
4833 < #line 1657 "conf_parser.y"
4708 >  case 311:
4709 > #line 1769 "conf_parser.y" /* yacc.c:1646  */
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712    {
4713      if (yylval.number)
4714 <      SetConfEncrypted(yy_aconf);
4714 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4715      else
4716 <      ClearConfEncrypted(yy_aconf);
4716 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4717    }
4718   }
4719 + #line 4720 "conf_parser.c" /* yacc.c:1646  */
4720      break;
4721  
4722 <  case 269:
4723 < /* Line 1787 of yacc.c  */
4847 < #line 1668 "conf_parser.y"
4722 >  case 312:
4723 > #line 1780 "conf_parser.y" /* yacc.c:1646  */
4724      {
4725 +  if (conf_parser_ctx.pass == 2)
4726 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4727   }
4728 + #line 4729 "conf_parser.c" /* yacc.c:1646  */
4729      break;
4730  
4731 <  case 273:
4732 < /* Line 1787 of yacc.c  */
4854 < #line 1673 "conf_parser.y"
4731 >  case 316:
4732 > #line 1787 "conf_parser.y" /* yacc.c:1646  */
4733      {
4734    if (conf_parser_ctx.pass == 2)
4735 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4735 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4736   }
4737 + #line 4738 "conf_parser.c" /* yacc.c:1646  */
4738      break;
4739  
4740 <  case 274:
4741 < /* Line 1787 of yacc.c  */
4863 < #line 1677 "conf_parser.y"
4740 >  case 317:
4741 > #line 1791 "conf_parser.y" /* yacc.c:1646  */
4742      {
4743    if (conf_parser_ctx.pass == 2)
4744 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4744 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4745   }
4746 + #line 4747 "conf_parser.c" /* yacc.c:1646  */
4747      break;
4748  
4749 <  case 275:
4750 < /* Line 1787 of yacc.c  */
4872 < #line 1681 "conf_parser.y"
4749 >  case 318:
4750 > #line 1795 "conf_parser.y" /* yacc.c:1646  */
4751      {
4752    if (conf_parser_ctx.pass == 2)
4753 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4753 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4754   }
4755 + #line 4756 "conf_parser.c" /* yacc.c:1646  */
4756      break;
4757  
4758 <  case 276:
4759 < /* Line 1787 of yacc.c  */
4881 < #line 1685 "conf_parser.y"
4758 >  case 319:
4759 > #line 1799 "conf_parser.y" /* yacc.c:1646  */
4760      {
4761    if (conf_parser_ctx.pass == 2)
4762 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4762 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4763   }
4764 + #line 4765 "conf_parser.c" /* yacc.c:1646  */
4765      break;
4766  
4767 <  case 277:
4768 < /* Line 1787 of yacc.c  */
4890 < #line 1689 "conf_parser.y"
4767 >  case 320:
4768 > #line 1803 "conf_parser.y" /* yacc.c:1646  */
4769      {
4770    if (conf_parser_ctx.pass == 2)
4771 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4771 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4772   }
4773 + #line 4774 "conf_parser.c" /* yacc.c:1646  */
4774      break;
4775  
4776 <  case 278:
4777 < /* Line 1787 of yacc.c  */
4899 < #line 1693 "conf_parser.y"
4776 >  case 321:
4777 > #line 1807 "conf_parser.y" /* yacc.c:1646  */
4778      {
4779    if (conf_parser_ctx.pass == 2)
4780 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4780 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4781   }
4782 + #line 4783 "conf_parser.c" /* yacc.c:1646  */
4783      break;
4784  
4785 <  case 279:
4786 < /* Line 1787 of yacc.c  */
4908 < #line 1697 "conf_parser.y"
4785 >  case 322:
4786 > #line 1811 "conf_parser.y" /* yacc.c:1646  */
4787      {
4788    if (conf_parser_ctx.pass == 2)
4789 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4789 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4790   }
4791 + #line 4792 "conf_parser.c" /* yacc.c:1646  */
4792      break;
4793  
4794 <  case 280:
4795 < /* Line 1787 of yacc.c  */
4917 < #line 1701 "conf_parser.y"
4794 >  case 323:
4795 > #line 1815 "conf_parser.y" /* yacc.c:1646  */
4796      {
4797    if (conf_parser_ctx.pass == 2)
4798 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4798 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4799   }
4800 + #line 4801 "conf_parser.c" /* yacc.c:1646  */
4801      break;
4802  
4803 <  case 281:
4804 < /* Line 1787 of yacc.c  */
4926 < #line 1705 "conf_parser.y"
4803 >  case 324:
4804 > #line 1819 "conf_parser.y" /* yacc.c:1646  */
4805      {
4806    if (conf_parser_ctx.pass == 2)
4807 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4807 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4808   }
4809 + #line 4810 "conf_parser.c" /* yacc.c:1646  */
4810      break;
4811  
4812 <  case 282:
4813 < /* Line 1787 of yacc.c  */
4935 < #line 1711 "conf_parser.y"
4812 >  case 325:
4813 > #line 1823 "conf_parser.y" /* yacc.c:1646  */
4814      {
4815    if (conf_parser_ctx.pass == 2)
4816 <  {
4817 <    MyFree(yy_conf->name);
4816 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4817 > }
4818 > #line 4819 "conf_parser.c" /* yacc.c:1646  */
4819 >    break;
4820  
4821 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4822 <    {    
4943 <      DupString(yy_conf->name, yylval.string);
4944 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4945 <    }
4946 <    else
4821 >  case 326:
4822 > #line 1829 "conf_parser.y" /* yacc.c:1646  */
4823      {
4824 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4825 <      yy_conf->name = NULL;
4826 <    }
4824 >  if (conf_parser_ctx.pass != 2)
4825 >    break;
4826 >
4827 >  if (valid_hostname(yylval.string))
4828 >  {
4829 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4830 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4831    }
4832 +  else
4833 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4834   }
4835 + #line 4836 "conf_parser.c" /* yacc.c:1646  */
4836      break;
4837  
4838 <  case 283:
4839 < /* Line 1787 of yacc.c  */
4957 < #line 1730 "conf_parser.y"
4838 >  case 327:
4839 > #line 1843 "conf_parser.y" /* yacc.c:1646  */
4840      {
4841 <  if (conf_parser_ctx.pass == 2)
4842 <  {
4843 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4844 <    MyFree(yy_conf->name);
4845 <    DupString(yy_conf->name, yylval.string);
4964 <  }
4841 >  if (conf_parser_ctx.pass != 2)
4842 >    break;
4843 >
4844 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4845 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4846   }
4847 + #line 4848 "conf_parser.c" /* yacc.c:1646  */
4848      break;
4849  
4850 <  case 284:
4851 < /* Line 1787 of yacc.c  */
4970 < #line 1740 "conf_parser.y"
4850 >  case 328:
4851 > #line 1852 "conf_parser.y" /* yacc.c:1646  */
4852      {
4853 <  if (conf_parser_ctx.pass == 2)
4854 <  {
4855 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4856 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4857 <  }
4853 >  if (conf_parser_ctx.pass != 2)
4854 >    break;
4855 >
4856 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4857 >  block_state.port.value = (yyvsp[-1].number);
4858   }
4859 + #line 4860 "conf_parser.c" /* yacc.c:1646  */
4860      break;
4861  
4862 <  case 285:
4863 < /* Line 1787 of yacc.c  */
4982 < #line 1753 "conf_parser.y"
4862 >  case 329:
4863 > #line 1865 "conf_parser.y" /* yacc.c:1646  */
4864      {
4865 <  if (conf_parser_ctx.pass == 2)
4866 <  {
4867 <    MyFree(resv_reason);
4868 <    resv_reason = NULL;
4869 <  }
4865 >  if (conf_parser_ctx.pass != 2)
4866 >    break;
4867 >
4868 >  reset_block_state();
4869 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4870   }
4871 + #line 4872 "conf_parser.c" /* yacc.c:1646  */
4872      break;
4873  
4874 <  case 286:
4875 < /* Line 1787 of yacc.c  */
4994 < #line 1760 "conf_parser.y"
4874 >  case 330:
4875 > #line 1872 "conf_parser.y" /* yacc.c:1646  */
4876      {
4877 <  if (conf_parser_ctx.pass == 2)
4878 <  {
4879 <    MyFree(resv_reason);
4880 <    resv_reason = NULL;
5000 <  }
4877 >  if (conf_parser_ctx.pass != 2)
4878 >    break;
4879 >
4880 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4881   }
4882 + #line 4883 "conf_parser.c" /* yacc.c:1646  */
4883      break;
4884  
4885 <  case 293:
4886 < /* Line 1787 of yacc.c  */
5006 < #line 1772 "conf_parser.y"
4885 >  case 337:
4886 > #line 1883 "conf_parser.y" /* yacc.c:1646  */
4887      {
4888    if (conf_parser_ctx.pass == 2)
4889 <  {
5010 <    MyFree(resv_reason);
5011 <    DupString(resv_reason, yylval.string);
5012 <  }
4889 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4890   }
4891 + #line 4892 "conf_parser.c" /* yacc.c:1646  */
4892      break;
4893  
4894 <  case 294:
4895 < /* Line 1787 of yacc.c  */
5018 < #line 1781 "conf_parser.y"
4894 >  case 338:
4895 > #line 1889 "conf_parser.y" /* yacc.c:1646  */
4896      {
4897    if (conf_parser_ctx.pass == 2)
4898 <  {
5022 <    if (IsChanPrefix(*yylval.string))
5023 <    {
5024 <      char def_reason[] = "No reason";
5025 <
5026 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5027 <    }
5028 <  }
5029 <  /* ignore it for now.. but we really should make a warning if
5030 <   * its an erroneous name --fl_ */
4898 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4899   }
4900 + #line 4901 "conf_parser.c" /* yacc.c:1646  */
4901      break;
4902  
4903 <  case 295:
4904 < /* Line 1787 of yacc.c  */
5036 < #line 1796 "conf_parser.y"
4903 >  case 339:
4904 > #line 1895 "conf_parser.y" /* yacc.c:1646  */
4905      {
4906    if (conf_parser_ctx.pass == 2)
4907 <  {
5040 <    char def_reason[] = "No reason";
5041 <
5042 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5043 <  }
4907 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4908   }
4909 + #line 4910 "conf_parser.c" /* yacc.c:1646  */
4910      break;
4911  
4912 <  case 301:
4913 < /* Line 1787 of yacc.c  */
5049 < #line 1814 "conf_parser.y"
4912 >  case 345:
4913 > #line 1910 "conf_parser.y" /* yacc.c:1646  */
4914      {
4915 <  if (conf_parser_ctx.pass == 2)
4915 >  if (conf_parser_ctx.pass != 2)
4916 >    break;
4917 >
4918 >  if (valid_servname(yylval.string))
4919    {
4920 <    if (valid_servname(yylval.string))
4921 <    {
5055 <      yy_conf = make_conf_item(SERVICE_TYPE);
5056 <      DupString(yy_conf->name, yylval.string);
5057 <    }
4920 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4921 >    conf->name = xstrdup(yylval.string);
4922    }
4923   }
4924 + #line 4925 "conf_parser.c" /* yacc.c:1646  */
4925      break;
4926  
4927 <  case 302:
4928 < /* Line 1787 of yacc.c  */
5064 < #line 1829 "conf_parser.y"
4927 >  case 346:
4928 > #line 1925 "conf_parser.y" /* yacc.c:1646  */
4929      {
4930 <  if (conf_parser_ctx.pass == 2)
4931 <  {
4932 <    yy_conf = make_conf_item(ULINE_TYPE);
4933 <    yy_match_item = map_to_conf(yy_conf);
4934 <    yy_match_item->action = SHARED_ALL;
4935 <  }
4930 >  if (conf_parser_ctx.pass != 2)
4931 >    break;
4932 >
4933 >  reset_block_state();
4934 >
4935 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4936 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4937 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4938 >  block_state.flags.value = SHARED_ALL;
4939   }
4940 + #line 4941 "conf_parser.c" /* yacc.c:1646  */
4941      break;
4942  
4943 <  case 303:
4944 < /* Line 1787 of yacc.c  */
5077 < #line 1837 "conf_parser.y"
4943 >  case 347:
4944 > #line 1936 "conf_parser.y" /* yacc.c:1646  */
4945      {
4946 <  if (conf_parser_ctx.pass == 2)
4947 <  {
4948 <    yy_conf = NULL;
4949 <  }
4946 >  struct MaskItem *conf = NULL;
4947 >
4948 >  if (conf_parser_ctx.pass != 2)
4949 >    break;
4950 >
4951 >  conf = conf_make(CONF_ULINE);
4952 >  conf->flags = block_state.flags.value;
4953 >  conf->name = xstrdup(block_state.name.buf);
4954 >  conf->user = xstrdup(block_state.user.buf);
4955 >  conf->host = xstrdup(block_state.host.buf);
4956   }
4957 + #line 4958 "conf_parser.c" /* yacc.c:1646  */
4958      break;
4959  
4960 <  case 310:
4961 < /* Line 1787 of yacc.c  */
5088 < #line 1848 "conf_parser.y"
4960 >  case 354:
4961 > #line 1953 "conf_parser.y" /* yacc.c:1646  */
4962      {
4963    if (conf_parser_ctx.pass == 2)
4964 <  {
5092 <    MyFree(yy_conf->name);
5093 <    DupString(yy_conf->name, yylval.string);
5094 <  }
4964 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4965   }
4966 + #line 4967 "conf_parser.c" /* yacc.c:1646  */
4967      break;
4968  
4969 <  case 311:
4970 < /* Line 1787 of yacc.c  */
5100 < #line 1857 "conf_parser.y"
4969 >  case 355:
4970 > #line 1959 "conf_parser.y" /* yacc.c:1646  */
4971      {
4972    if (conf_parser_ctx.pass == 2)
4973    {
# Line 5105 | Line 4975 | yyreduce:
4975  
4976      nuh.nuhmask  = yylval.string;
4977      nuh.nickptr  = NULL;
4978 <    nuh.userptr  = userbuf;
4979 <    nuh.hostptr  = hostbuf;
4978 >    nuh.userptr  = block_state.user.buf;
4979 >    nuh.hostptr  = block_state.host.buf;
4980  
4981      nuh.nicksize = 0;
4982 <    nuh.usersize = sizeof(userbuf);
4983 <    nuh.hostsize = sizeof(hostbuf);
4982 >    nuh.usersize = sizeof(block_state.user.buf);
4983 >    nuh.hostsize = sizeof(block_state.host.buf);
4984  
4985      split_nuh(&nuh);
5116
5117    DupString(yy_match_item->user, userbuf);
5118    DupString(yy_match_item->host, hostbuf);
4986    }
4987   }
4988 + #line 4989 "conf_parser.c" /* yacc.c:1646  */
4989      break;
4990  
4991 <  case 312:
4992 < /* Line 1787 of yacc.c  */
5125 < #line 1879 "conf_parser.y"
4991 >  case 356:
4992 > #line 1978 "conf_parser.y" /* yacc.c:1646  */
4993      {
4994    if (conf_parser_ctx.pass == 2)
4995 <    yy_match_item->action = 0;
4995 >    block_state.flags.value = 0;
4996   }
4997 + #line 4998 "conf_parser.c" /* yacc.c:1646  */
4998      break;
4999  
5000 <  case 316:
5001 < /* Line 1787 of yacc.c  */
5134 < #line 1886 "conf_parser.y"
5000 >  case 360:
5001 > #line 1985 "conf_parser.y" /* yacc.c:1646  */
5002      {
5003    if (conf_parser_ctx.pass == 2)
5004 <    yy_match_item->action |= SHARED_KLINE;
5004 >    block_state.flags.value |= SHARED_KLINE;
5005   }
5006 + #line 5007 "conf_parser.c" /* yacc.c:1646  */
5007      break;
5008  
5009 <  case 317:
5010 < /* Line 1787 of yacc.c  */
5143 < #line 1890 "conf_parser.y"
5009 >  case 361:
5010 > #line 1989 "conf_parser.y" /* yacc.c:1646  */
5011      {
5012    if (conf_parser_ctx.pass == 2)
5013 <    yy_match_item->action |= SHARED_UNKLINE;
5013 >    block_state.flags.value |= SHARED_UNKLINE;
5014   }
5015 + #line 5016 "conf_parser.c" /* yacc.c:1646  */
5016      break;
5017  
5018 <  case 318:
5019 < /* Line 1787 of yacc.c  */
5152 < #line 1894 "conf_parser.y"
5018 >  case 362:
5019 > #line 1993 "conf_parser.y" /* yacc.c:1646  */
5020      {
5021    if (conf_parser_ctx.pass == 2)
5022 <    yy_match_item->action |= SHARED_DLINE;
5022 >    block_state.flags.value |= SHARED_DLINE;
5023   }
5024 + #line 5025 "conf_parser.c" /* yacc.c:1646  */
5025      break;
5026  
5027 <  case 319:
5028 < /* Line 1787 of yacc.c  */
5161 < #line 1898 "conf_parser.y"
5027 >  case 363:
5028 > #line 1997 "conf_parser.y" /* yacc.c:1646  */
5029      {
5030    if (conf_parser_ctx.pass == 2)
5031 <    yy_match_item->action |= SHARED_UNDLINE;
5031 >    block_state.flags.value |= SHARED_UNDLINE;
5032   }
5033 + #line 5034 "conf_parser.c" /* yacc.c:1646  */
5034      break;
5035  
5036 <  case 320:
5037 < /* Line 1787 of yacc.c  */
5170 < #line 1902 "conf_parser.y"
5036 >  case 364:
5037 > #line 2001 "conf_parser.y" /* yacc.c:1646  */
5038      {
5039    if (conf_parser_ctx.pass == 2)
5040 <    yy_match_item->action |= SHARED_XLINE;
5040 >    block_state.flags.value |= SHARED_XLINE;
5041   }
5042 + #line 5043 "conf_parser.c" /* yacc.c:1646  */
5043      break;
5044  
5045 <  case 321:
5046 < /* Line 1787 of yacc.c  */
5179 < #line 1906 "conf_parser.y"
5045 >  case 365:
5046 > #line 2005 "conf_parser.y" /* yacc.c:1646  */
5047      {
5048    if (conf_parser_ctx.pass == 2)
5049 <    yy_match_item->action |= SHARED_UNXLINE;
5049 >    block_state.flags.value |= SHARED_UNXLINE;
5050   }
5051 + #line 5052 "conf_parser.c" /* yacc.c:1646  */
5052      break;
5053  
5054 <  case 322:
5055 < /* Line 1787 of yacc.c  */
5188 < #line 1910 "conf_parser.y"
5054 >  case 366:
5055 > #line 2009 "conf_parser.y" /* yacc.c:1646  */
5056      {
5057    if (conf_parser_ctx.pass == 2)
5058 <    yy_match_item->action |= SHARED_RESV;
5058 >    block_state.flags.value |= SHARED_RESV;
5059   }
5060 + #line 5061 "conf_parser.c" /* yacc.c:1646  */
5061      break;
5062  
5063 <  case 323:
5064 < /* Line 1787 of yacc.c  */
5197 < #line 1914 "conf_parser.y"
5063 >  case 367:
5064 > #line 2013 "conf_parser.y" /* yacc.c:1646  */
5065      {
5066    if (conf_parser_ctx.pass == 2)
5067 <    yy_match_item->action |= SHARED_UNRESV;
5067 >    block_state.flags.value |= SHARED_UNRESV;
5068   }
5069 + #line 5070 "conf_parser.c" /* yacc.c:1646  */
5070      break;
5071  
5072 <  case 324:
5073 < /* Line 1787 of yacc.c  */
5206 < #line 1918 "conf_parser.y"
5072 >  case 368:
5073 > #line 2017 "conf_parser.y" /* yacc.c:1646  */
5074      {
5075    if (conf_parser_ctx.pass == 2)
5076 <    yy_match_item->action |= SHARED_LOCOPS;
5076 >    block_state.flags.value |= SHARED_LOCOPS;
5077   }
5078 + #line 5079 "conf_parser.c" /* yacc.c:1646  */
5079      break;
5080  
5081 <  case 325:
5082 < /* Line 1787 of yacc.c  */
5215 < #line 1922 "conf_parser.y"
5081 >  case 369:
5082 > #line 2021 "conf_parser.y" /* yacc.c:1646  */
5083      {
5084    if (conf_parser_ctx.pass == 2)
5085 <    yy_match_item->action = SHARED_ALL;
5085 >    block_state.flags.value = SHARED_ALL;
5086   }
5087 + #line 5088 "conf_parser.c" /* yacc.c:1646  */
5088      break;
5089  
5090 <  case 326:
5091 < /* Line 1787 of yacc.c  */
5224 < #line 1931 "conf_parser.y"
5090 >  case 370:
5091 > #line 2030 "conf_parser.y" /* yacc.c:1646  */
5092      {
5093 <  if (conf_parser_ctx.pass == 2)
5094 <  {
5095 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5096 <    yy_conf->flags = SHARED_ALL;
5097 <  }
5093 >  if (conf_parser_ctx.pass != 2)
5094 >    break;
5095 >
5096 >  reset_block_state();
5097 >
5098 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5099 >  block_state.flags.value = SHARED_ALL;
5100   }
5101 + #line 5102 "conf_parser.c" /* yacc.c:1646  */
5102      break;
5103  
5104 <  case 327:
5105 < /* Line 1787 of yacc.c  */
5236 < #line 1938 "conf_parser.y"
5104 >  case 371:
5105 > #line 2039 "conf_parser.y" /* yacc.c:1646  */
5106      {
5107 <  if (conf_parser_ctx.pass == 2)
5108 <  {
5109 <    if (yy_conf->name == NULL)
5110 <      DupString(yy_conf->name, "*");
5111 <    yy_conf = NULL;
5112 <  }
5107 >  struct MaskItem *conf = NULL;
5108 >
5109 >  if (conf_parser_ctx.pass != 2)
5110 >    break;
5111 >
5112 >  conf = conf_make(CONF_CLUSTER);
5113 >  conf->flags = block_state.flags.value;
5114 >  conf->name = xstrdup(block_state.name.buf);
5115   }
5116 + #line 5117 "conf_parser.c" /* yacc.c:1646  */
5117      break;
5118  
5119 <  case 333:
5120 < /* Line 1787 of yacc.c  */
5249 < #line 1951 "conf_parser.y"
5119 >  case 377:
5120 > #line 2054 "conf_parser.y" /* yacc.c:1646  */
5121      {
5122    if (conf_parser_ctx.pass == 2)
5123 <    DupString(yy_conf->name, yylval.string);
5123 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5124   }
5125 + #line 5126 "conf_parser.c" /* yacc.c:1646  */
5126      break;
5127  
5128 <  case 334:
5129 < /* Line 1787 of yacc.c  */
5258 < #line 1957 "conf_parser.y"
5128 >  case 378:
5129 > #line 2060 "conf_parser.y" /* yacc.c:1646  */
5130      {
5131    if (conf_parser_ctx.pass == 2)
5132 <    yy_conf->flags = 0;
5132 >    block_state.flags.value = 0;
5133   }
5134 + #line 5135 "conf_parser.c" /* yacc.c:1646  */
5135      break;
5136  
5137 <  case 338:
5138 < /* Line 1787 of yacc.c  */
5267 < #line 1964 "conf_parser.y"
5137 >  case 382:
5138 > #line 2067 "conf_parser.y" /* yacc.c:1646  */
5139      {
5140    if (conf_parser_ctx.pass == 2)
5141 <    yy_conf->flags |= SHARED_KLINE;
5141 >    block_state.flags.value |= SHARED_KLINE;
5142   }
5143 + #line 5144 "conf_parser.c" /* yacc.c:1646  */
5144      break;
5145  
5146 <  case 339:
5147 < /* Line 1787 of yacc.c  */
5276 < #line 1968 "conf_parser.y"
5146 >  case 383:
5147 > #line 2071 "conf_parser.y" /* yacc.c:1646  */
5148      {
5149    if (conf_parser_ctx.pass == 2)
5150 <    yy_conf->flags |= SHARED_UNKLINE;
5150 >    block_state.flags.value |= SHARED_UNKLINE;
5151   }
5152 + #line 5153 "conf_parser.c" /* yacc.c:1646  */
5153      break;
5154  
5155 <  case 340:
5156 < /* Line 1787 of yacc.c  */
5285 < #line 1972 "conf_parser.y"
5155 >  case 384:
5156 > #line 2075 "conf_parser.y" /* yacc.c:1646  */
5157      {
5158    if (conf_parser_ctx.pass == 2)
5159 <    yy_conf->flags |= SHARED_DLINE;
5159 >    block_state.flags.value |= SHARED_DLINE;
5160   }
5161 + #line 5162 "conf_parser.c" /* yacc.c:1646  */
5162      break;
5163  
5164 <  case 341:
5165 < /* Line 1787 of yacc.c  */
5294 < #line 1976 "conf_parser.y"
5164 >  case 385:
5165 > #line 2079 "conf_parser.y" /* yacc.c:1646  */
5166      {
5167    if (conf_parser_ctx.pass == 2)
5168 <    yy_conf->flags |= SHARED_UNDLINE;
5168 >    block_state.flags.value |= SHARED_UNDLINE;
5169   }
5170 + #line 5171 "conf_parser.c" /* yacc.c:1646  */
5171      break;
5172  
5173 <  case 342:
5174 < /* Line 1787 of yacc.c  */
5303 < #line 1980 "conf_parser.y"
5173 >  case 386:
5174 > #line 2083 "conf_parser.y" /* yacc.c:1646  */
5175      {
5176    if (conf_parser_ctx.pass == 2)
5177 <    yy_conf->flags |= SHARED_XLINE;
5177 >    block_state.flags.value |= SHARED_XLINE;
5178   }
5179 + #line 5180 "conf_parser.c" /* yacc.c:1646  */
5180      break;
5181  
5182 <  case 343:
5183 < /* Line 1787 of yacc.c  */
5312 < #line 1984 "conf_parser.y"
5182 >  case 387:
5183 > #line 2087 "conf_parser.y" /* yacc.c:1646  */
5184      {
5185    if (conf_parser_ctx.pass == 2)
5186 <    yy_conf->flags |= SHARED_UNXLINE;
5186 >    block_state.flags.value |= SHARED_UNXLINE;
5187   }
5188 + #line 5189 "conf_parser.c" /* yacc.c:1646  */
5189      break;
5190  
5191 <  case 344:
5192 < /* Line 1787 of yacc.c  */
5321 < #line 1988 "conf_parser.y"
5191 >  case 388:
5192 > #line 2091 "conf_parser.y" /* yacc.c:1646  */
5193      {
5194    if (conf_parser_ctx.pass == 2)
5195 <    yy_conf->flags |= SHARED_RESV;
5195 >    block_state.flags.value |= SHARED_RESV;
5196   }
5197 + #line 5198 "conf_parser.c" /* yacc.c:1646  */
5198      break;
5199  
5200 <  case 345:
5201 < /* Line 1787 of yacc.c  */
5330 < #line 1992 "conf_parser.y"
5200 >  case 389:
5201 > #line 2095 "conf_parser.y" /* yacc.c:1646  */
5202      {
5203    if (conf_parser_ctx.pass == 2)
5204 <    yy_conf->flags |= SHARED_UNRESV;
5204 >    block_state.flags.value |= SHARED_UNRESV;
5205   }
5206 + #line 5207 "conf_parser.c" /* yacc.c:1646  */
5207      break;
5208  
5209 <  case 346:
5210 < /* Line 1787 of yacc.c  */
5339 < #line 1996 "conf_parser.y"
5209 >  case 390:
5210 > #line 2099 "conf_parser.y" /* yacc.c:1646  */
5211      {
5212    if (conf_parser_ctx.pass == 2)
5213 <    yy_conf->flags |= SHARED_LOCOPS;
5213 >    block_state.flags.value |= SHARED_LOCOPS;
5214   }
5215 + #line 5216 "conf_parser.c" /* yacc.c:1646  */
5216      break;
5217  
5218 <  case 347:
5219 < /* Line 1787 of yacc.c  */
5348 < #line 2000 "conf_parser.y"
5218 >  case 391:
5219 > #line 2103 "conf_parser.y" /* yacc.c:1646  */
5220      {
5221    if (conf_parser_ctx.pass == 2)
5222 <    yy_conf->flags = SHARED_ALL;
5222 >    block_state.flags.value = SHARED_ALL;
5223   }
5224 + #line 5225 "conf_parser.c" /* yacc.c:1646  */
5225      break;
5226  
5227 <  case 348:
5228 < /* Line 1787 of yacc.c  */
5357 < #line 2009 "conf_parser.y"
5227 >  case 392:
5228 > #line 2112 "conf_parser.y" /* yacc.c:1646  */
5229      {
5359  if (conf_parser_ctx.pass == 2)
5360  {
5361    yy_conf = make_conf_item(SERVER_TYPE);
5362    yy_aconf = map_to_conf(yy_conf);
5230  
5231 <    /* defaults */
5232 <    yy_aconf->port = PORTNUM;
5233 <  }
5234 <  else
5235 <  {
5236 <    MyFree(class_name);
5370 <    class_name = NULL;
5371 <  }
5231 >  if (conf_parser_ctx.pass != 2)
5232 >    break;
5233 >
5234 >  reset_block_state();
5235 >  block_state.aftype.value = AF_INET;
5236 >  block_state.port.value = PORTNUM;
5237   }
5238 + #line 5239 "conf_parser.c" /* yacc.c:1646  */
5239      break;
5240  
5241 <  case 349:
5242 < /* Line 1787 of yacc.c  */
5377 < #line 2024 "conf_parser.y"
5241 >  case 393:
5242 > #line 2121 "conf_parser.y" /* yacc.c:1646  */
5243      {
5244 <  if (conf_parser_ctx.pass == 2)
5244 >  struct MaskItem *conf = NULL;
5245 >  struct addrinfo hints, *res;
5246 >
5247 >  if (conf_parser_ctx.pass != 2)
5248 >    break;
5249 >
5250 >  if (!block_state.name.buf[0] ||
5251 >      !block_state.host.buf[0])
5252 >    break;
5253 >
5254 >  if (!block_state.rpass.buf[0] ||
5255 >      !block_state.spass.buf[0])
5256 >    break;
5257 >
5258 >  if (has_wildcards(block_state.name.buf) ||
5259 >      has_wildcards(block_state.host.buf))
5260 >    break;
5261 >
5262 >  conf = conf_make(CONF_SERVER);
5263 >  conf->port = block_state.port.value;
5264 >  conf->flags = block_state.flags.value;
5265 >  conf->aftype = block_state.aftype.value;
5266 >  conf->host = xstrdup(block_state.host.buf);
5267 >  conf->name = xstrdup(block_state.name.buf);
5268 >  conf->passwd = xstrdup(block_state.rpass.buf);
5269 >  conf->spasswd = xstrdup(block_state.spass.buf);
5270 >
5271 >  if (block_state.cert.buf[0])
5272 >    conf->certfp = xstrdup(block_state.cert.buf);
5273 >
5274 >  if (block_state.ciph.buf[0])
5275 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5276 >
5277 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5278 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5279 >
5280 >  if (block_state.bind.buf[0])
5281    {
5282 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5283 <    {
5284 <      if (conf_add_server(yy_conf, class_name) == -1)
5285 <        delete_conf_item(yy_conf);
5286 <    }
5282 >    memset(&hints, 0, sizeof(hints));
5283 >
5284 >    hints.ai_family   = AF_UNSPEC;
5285 >    hints.ai_socktype = SOCK_STREAM;
5286 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5287 >
5288 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5289 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5290      else
5291      {
5292 <      if (yy_conf->name != NULL)
5389 <      {
5390 <        if (yy_aconf->host == NULL)
5391 <          yyerror("Ignoring connect block -- missing host");
5392 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5393 <          yyerror("Ignoring connect block -- missing password");
5394 <      }
5292 >      assert(res);
5293  
5294 <      /* XXX
5295 <       * This fixes a try_connections() core (caused by invalid class_ptr
5296 <       * pointers) reported by metalrock. That's an ugly fix, but there
5297 <       * is currently no better way. The entire config subsystem needs an
5400 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5401 <       * a doubly linked list immediately without any sanity checks!  -Michael
5402 <       */
5403 <      delete_conf_item(yy_conf);
5294 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5295 >      conf->bind.ss.ss_family = res->ai_family;
5296 >      conf->bind.ss_len = res->ai_addrlen;
5297 >      freeaddrinfo(res);
5298      }
5405
5406    MyFree(class_name);
5407    class_name = NULL;
5408    yy_conf = NULL;
5409    yy_aconf = NULL;
5299    }
5300 +
5301 +  conf_add_class_to_conf(conf, block_state.class.buf);
5302 +  lookup_confhost(conf);
5303   }
5304 + #line 5305 "conf_parser.c" /* yacc.c:1646  */
5305      break;
5306  
5307 <  case 366:
5308 < /* Line 1787 of yacc.c  */
5416 < #line 2068 "conf_parser.y"
5307 >  case 411:
5308 > #line 2201 "conf_parser.y" /* yacc.c:1646  */
5309      {
5310    if (conf_parser_ctx.pass == 2)
5311 <  {
5420 <    MyFree(yy_conf->name);
5421 <    DupString(yy_conf->name, yylval.string);
5422 <  }
5311 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5312   }
5313 + #line 5314 "conf_parser.c" /* yacc.c:1646  */
5314      break;
5315  
5316 <  case 367:
5317 < /* Line 1787 of yacc.c  */
5428 < #line 2077 "conf_parser.y"
5316 >  case 412:
5317 > #line 2207 "conf_parser.y" /* yacc.c:1646  */
5318      {
5319    if (conf_parser_ctx.pass == 2)
5320 <  {
5432 <    MyFree(yy_aconf->host);
5433 <    DupString(yy_aconf->host, yylval.string);
5434 <  }
5320 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5321   }
5322 + #line 5323 "conf_parser.c" /* yacc.c:1646  */
5323      break;
5324  
5325 <  case 368:
5326 < /* Line 1787 of yacc.c  */
5440 < #line 2086 "conf_parser.y"
5325 >  case 413:
5326 > #line 2213 "conf_parser.y" /* yacc.c:1646  */
5327      {
5328    if (conf_parser_ctx.pass == 2)
5329 <  {
5330 <    struct addrinfo hints, *res;
5331 <
5332 <    memset(&hints, 0, sizeof(hints));
5447 <
5448 <    hints.ai_family   = AF_UNSPEC;
5449 <    hints.ai_socktype = SOCK_STREAM;
5450 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5329 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5330 > }
5331 > #line 5332 "conf_parser.c" /* yacc.c:1646  */
5332 >    break;
5333  
5334 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5335 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5454 <    else
5334 >  case 414:
5335 > #line 2219 "conf_parser.y" /* yacc.c:1646  */
5336      {
5337 <      assert(res != NULL);
5337 >  if (conf_parser_ctx.pass != 2)
5338 >    break;
5339  
5340 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5341 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5342 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5343 <      freeaddrinfo(res);
5344 <    }
5345 <  }
5340 >  if ((yyvsp[-1].string)[0] == ':')
5341 >    conf_error_report("Server passwords cannot begin with a colon");
5342 >  else if (strchr((yyvsp[-1].string), ' '))
5343 >    conf_error_report("Server passwords cannot contain spaces");
5344 >  else
5345 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5346   }
5347 + #line 5348 "conf_parser.c" /* yacc.c:1646  */
5348      break;
5349  
5350 <  case 369:
5351 < /* Line 1787 of yacc.c  */
5469 < #line 2112 "conf_parser.y"
5350 >  case 415:
5351 > #line 2232 "conf_parser.y" /* yacc.c:1646  */
5352      {
5353 <  if (conf_parser_ctx.pass == 2)
5354 <  {
5473 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5474 <      yyerror("Server passwords cannot begin with a colon");
5475 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5476 <      yyerror("Server passwords cannot contain spaces");
5477 <    else {
5478 <      if (yy_aconf->spasswd != NULL)
5479 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5353 >  if (conf_parser_ctx.pass != 2)
5354 >    break;
5355  
5356 <      MyFree(yy_aconf->spasswd);
5357 <      DupString(yy_aconf->spasswd, yylval.string);
5358 <    }
5359 <  }
5356 >  if ((yyvsp[-1].string)[0] == ':')
5357 >    conf_error_report("Server passwords cannot begin with a colon");
5358 >  else if (strchr((yyvsp[-1].string), ' '))
5359 >    conf_error_report("Server passwords cannot contain spaces");
5360 >  else
5361 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5362   }
5363 + #line 5364 "conf_parser.c" /* yacc.c:1646  */
5364      break;
5365  
5366 <  case 370:
5367 < /* Line 1787 of yacc.c  */
5490 < #line 2130 "conf_parser.y"
5366 >  case 416:
5367 > #line 2245 "conf_parser.y" /* yacc.c:1646  */
5368      {
5369    if (conf_parser_ctx.pass == 2)
5370 <  {
5494 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5495 <      yyerror("Server passwords cannot begin with a colon");
5496 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5497 <      yyerror("Server passwords cannot contain spaces");
5498 <    else {
5499 <      if (yy_aconf->passwd != NULL)
5500 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5501 <
5502 <      MyFree(yy_aconf->passwd);
5503 <      DupString(yy_aconf->passwd, yylval.string);
5504 <    }
5505 <  }
5370 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5371   }
5372 + #line 5373 "conf_parser.c" /* yacc.c:1646  */
5373      break;
5374  
5375 <  case 371:
5376 < /* Line 1787 of yacc.c  */
5511 < #line 2148 "conf_parser.y"
5375 >  case 417:
5376 > #line 2251 "conf_parser.y" /* yacc.c:1646  */
5377      {
5378    if (conf_parser_ctx.pass == 2)
5379 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5379 >    block_state.port.value = (yyvsp[-1].number);
5380   }
5381 + #line 5382 "conf_parser.c" /* yacc.c:1646  */
5382      break;
5383  
5384 <  case 372:
5385 < /* Line 1787 of yacc.c  */
5520 < #line 2154 "conf_parser.y"
5384 >  case 418:
5385 > #line 2257 "conf_parser.y" /* yacc.c:1646  */
5386      {
5387    if (conf_parser_ctx.pass == 2)
5388 <    yy_aconf->aftype = AF_INET;
5388 >    block_state.aftype.value = AF_INET;
5389   }
5390 + #line 5391 "conf_parser.c" /* yacc.c:1646  */
5391      break;
5392  
5393 <  case 373:
5394 < /* Line 1787 of yacc.c  */
5529 < #line 2158 "conf_parser.y"
5393 >  case 419:
5394 > #line 2261 "conf_parser.y" /* yacc.c:1646  */
5395      {
5396   #ifdef IPV6
5397    if (conf_parser_ctx.pass == 2)
5398 <    yy_aconf->aftype = AF_INET6;
5398 >    block_state.aftype.value = AF_INET6;
5399   #endif
5400   }
5401 + #line 5402 "conf_parser.c" /* yacc.c:1646  */
5402      break;
5403  
5404 <  case 374:
5405 < /* Line 1787 of yacc.c  */
5540 < #line 2166 "conf_parser.y"
5404 >  case 420:
5405 > #line 2269 "conf_parser.y" /* yacc.c:1646  */
5406      {
5407 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5408   }
5409 + #line 5410 "conf_parser.c" /* yacc.c:1646  */
5410      break;
5411  
5412 <  case 378:
5413 < /* Line 1787 of yacc.c  */
5547 < #line 2171 "conf_parser.y"
5412 >  case 424:
5413 > #line 2275 "conf_parser.y" /* yacc.c:1646  */
5414      {
5415    if (conf_parser_ctx.pass == 2)
5416 <    SetConfAllowAutoConn(yy_aconf);
5416 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5417   }
5418 + #line 5419 "conf_parser.c" /* yacc.c:1646  */
5419      break;
5420  
5421 <  case 379:
5422 < /* Line 1787 of yacc.c  */
5556 < #line 2175 "conf_parser.y"
5421 >  case 425:
5422 > #line 2279 "conf_parser.y" /* yacc.c:1646  */
5423      {
5424    if (conf_parser_ctx.pass == 2)
5425 <    SetConfSSL(yy_aconf);
5425 >    block_state.flags.value |= CONF_FLAGS_SSL;
5426   }
5427 + #line 5428 "conf_parser.c" /* yacc.c:1646  */
5428      break;
5429  
5430 <  case 380:
5431 < /* Line 1787 of yacc.c  */
5565 < #line 2181 "conf_parser.y"
5430 >  case 426:
5431 > #line 2285 "conf_parser.y" /* yacc.c:1646  */
5432      {
5433    if (conf_parser_ctx.pass == 2)
5434    {
5435      if (yylval.number)
5436 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5436 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5437      else
5438 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5438 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5439    }
5440   }
5441 + #line 5442 "conf_parser.c" /* yacc.c:1646  */
5442      break;
5443  
5444 <  case 381:
5445 < /* Line 1787 of yacc.c  */
5579 < #line 2192 "conf_parser.y"
5444 >  case 427:
5445 > #line 2296 "conf_parser.y" /* yacc.c:1646  */
5446      {
5447    if (conf_parser_ctx.pass == 2)
5448 <  {
5583 <    char *mask;
5584 <
5585 <    DupString(mask, yylval.string);
5586 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5587 <  }
5448 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5449   }
5450 + #line 5451 "conf_parser.c" /* yacc.c:1646  */
5451      break;
5452  
5453 <  case 382:
5454 < /* Line 1787 of yacc.c  */
5593 < #line 2203 "conf_parser.y"
5453 >  case 428:
5454 > #line 2302 "conf_parser.y" /* yacc.c:1646  */
5455      {
5456    if (conf_parser_ctx.pass == 2)
5457 <  {
5597 <    char *mask;
5598 <
5599 <    DupString(mask, yylval.string);
5600 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5601 <  }
5457 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5458   }
5459 + #line 5460 "conf_parser.c" /* yacc.c:1646  */
5460      break;
5461  
5462 <  case 383:
5463 < /* Line 1787 of yacc.c  */
5607 < #line 2214 "conf_parser.y"
5462 >  case 429:
5463 > #line 2308 "conf_parser.y" /* yacc.c:1646  */
5464      {
5465    if (conf_parser_ctx.pass == 2)
5466 <  {
5611 <    MyFree(class_name);
5612 <    DupString(class_name, yylval.string);
5613 <  }
5466 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5467   }
5468 + #line 5469 "conf_parser.c" /* yacc.c:1646  */
5469      break;
5470  
5471 <  case 384:
5472 < /* Line 1787 of yacc.c  */
5619 < #line 2223 "conf_parser.y"
5471 >  case 430:
5472 > #line 2314 "conf_parser.y" /* yacc.c:1646  */
5473      {
5474   #ifdef HAVE_LIBCRYPTO
5475    if (conf_parser_ctx.pass == 2)
5476 <  {
5624 <    MyFree(yy_aconf->cipher_list);
5625 <    DupString(yy_aconf->cipher_list, yylval.string);
5626 <  }
5476 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5477   #else
5478    if (conf_parser_ctx.pass == 2)
5479 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5479 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5480   #endif
5481   }
5482 + #line 5483 "conf_parser.c" /* yacc.c:1646  */
5483      break;
5484  
5485 <  case 385:
5486 < /* Line 1787 of yacc.c  */
5636 < #line 2241 "conf_parser.y"
5485 >  case 431:
5486 > #line 2329 "conf_parser.y" /* yacc.c:1646  */
5487      {
5488    if (conf_parser_ctx.pass == 2)
5489 <  {
5640 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5641 <    regex_ban = 0;
5642 <  }
5489 >    reset_block_state();
5490   }
5491 + #line 5492 "conf_parser.c" /* yacc.c:1646  */
5492      break;
5493  
5494 <  case 386:
5495 < /* Line 1787 of yacc.c  */
5648 < #line 2248 "conf_parser.y"
5494 >  case 432:
5495 > #line 2333 "conf_parser.y" /* yacc.c:1646  */
5496      {
5497 <  if (conf_parser_ctx.pass == 2)
5651 <  {
5652 <    if (userbuf[0] && hostbuf[0])
5653 <    {
5654 <      if (regex_ban)
5655 <      {
5656 < #ifdef HAVE_LIBPCRE
5657 <        void *exp_user = NULL;
5658 <        void *exp_host = NULL;
5659 <        const char *errptr = NULL;
5497 >  struct MaskItem *conf = NULL;
5498  
5499 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5662 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5663 <        {
5664 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5665 <               errptr);
5666 <          break;
5667 <        }
5668 <
5669 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5670 <        yy_aconf->regexuser = exp_user;
5671 <        yy_aconf->regexhost = exp_host;
5672 <
5673 <        DupString(yy_aconf->user, userbuf);
5674 <        DupString(yy_aconf->host, hostbuf);
5675 <
5676 <        if (reasonbuf[0])
5677 <          DupString(yy_aconf->reason, reasonbuf);
5678 <        else
5679 <          DupString(yy_aconf->reason, "No reason");
5680 < #else
5681 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5682 <        break;
5683 < #endif
5684 <      }
5685 <      else
5686 <      {
5687 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5688 <
5689 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5690 <
5691 <        DupString(yy_aconf->user, userbuf);
5692 <        DupString(yy_aconf->host, hostbuf);
5693 <
5694 <        if (reasonbuf[0])
5695 <          DupString(yy_aconf->reason, reasonbuf);
5696 <        else
5697 <          DupString(yy_aconf->reason, "No reason");
5698 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5699 <      }
5700 <    }
5701 <
5702 <    yy_aconf = NULL;
5703 <  }
5704 < }
5499 >  if (conf_parser_ctx.pass != 2)
5500      break;
5501  
5502 <  case 387:
5503 < /* Line 1787 of yacc.c  */
5709 < #line 2306 "conf_parser.y"
5710 <    {
5711 < }
5502 >  if (!block_state.user.buf[0] ||
5503 >      !block_state.host.buf[0])
5504      break;
5505  
5506 <  case 391:
5507 < /* Line 1787 of yacc.c  */
5508 < #line 2311 "conf_parser.y"
5509 <    {
5510 <  if (conf_parser_ctx.pass == 2)
5511 <    regex_ban = 1;
5506 >  conf = conf_make(CONF_KLINE);
5507 >  conf->user = xstrdup(block_state.user.buf);
5508 >  conf->host = xstrdup(block_state.host.buf);
5509 >
5510 >  if (block_state.rpass.buf[0])
5511 >    conf->reason = xstrdup(block_state.rpass.buf);
5512 >  else
5513 >    conf->reason = xstrdup(CONF_NOREASON);
5514 >  add_conf_by_address(CONF_KLINE, conf);
5515   }
5516 + #line 5517 "conf_parser.c" /* yacc.c:1646  */
5517      break;
5518  
5519 <  case 398:
5520 < /* Line 1787 of yacc.c  */
5725 < #line 2320 "conf_parser.y"
5519 >  case 438:
5520 > #line 2358 "conf_parser.y" /* yacc.c:1646  */
5521      {
5522 +
5523    if (conf_parser_ctx.pass == 2)
5524    {
5525      struct split_nuh_item nuh;
5526  
5527      nuh.nuhmask  = yylval.string;
5528      nuh.nickptr  = NULL;
5529 <    nuh.userptr  = userbuf;
5530 <    nuh.hostptr  = hostbuf;
5529 >    nuh.userptr  = block_state.user.buf;
5530 >    nuh.hostptr  = block_state.host.buf;
5531  
5532      nuh.nicksize = 0;
5533 <    nuh.usersize = sizeof(userbuf);
5534 <    nuh.hostsize = sizeof(hostbuf);
5533 >    nuh.usersize = sizeof(block_state.user.buf);
5534 >    nuh.hostsize = sizeof(block_state.host.buf);
5535  
5536      split_nuh(&nuh);
5537    }
5538   }
5539 + #line 5540 "conf_parser.c" /* yacc.c:1646  */
5540      break;
5541  
5542 <  case 399:
5543 < /* Line 1787 of yacc.c  */
5747 < #line 2339 "conf_parser.y"
5542 >  case 439:
5543 > #line 2378 "conf_parser.y" /* yacc.c:1646  */
5544      {
5545    if (conf_parser_ctx.pass == 2)
5546 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5546 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5547   }
5548 + #line 5549 "conf_parser.c" /* yacc.c:1646  */
5549      break;
5550  
5551 <  case 400:
5552 < /* Line 1787 of yacc.c  */
5756 < #line 2348 "conf_parser.y"
5551 >  case 440:
5552 > #line 2387 "conf_parser.y" /* yacc.c:1646  */
5553      {
5554    if (conf_parser_ctx.pass == 2)
5555 <    hostbuf[0] = reasonbuf[0] = '\0';
5555 >    reset_block_state();
5556   }
5557 + #line 5558 "conf_parser.c" /* yacc.c:1646  */
5558      break;
5559  
5560 <  case 401:
5561 < /* Line 1787 of yacc.c  */
5765 < #line 2352 "conf_parser.y"
5766 <    {
5767 <  if (conf_parser_ctx.pass == 2)
5768 <  {
5769 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5560 >  case 441:
5561 > #line 2391 "conf_parser.y" /* yacc.c:1646  */
5562      {
5563 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5563 >  struct MaskItem *conf = NULL;
5564  
5565 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5566 <      DupString(yy_aconf->host, hostbuf);
5565 >  if (conf_parser_ctx.pass != 2)
5566 >    break;
5567  
5568 <      if (reasonbuf[0])
5569 <        DupString(yy_aconf->reason, reasonbuf);
5570 <      else
5571 <        DupString(yy_aconf->reason, "No reason");
5572 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5573 <      yy_aconf = NULL;
5574 <    }
5568 >  if (!block_state.addr.buf[0])
5569 >    break;
5570 >
5571 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5572 >  {
5573 >    conf = conf_make(CONF_DLINE);
5574 >    conf->host = xstrdup(block_state.addr.buf);
5575 >
5576 >    if (block_state.rpass.buf[0])
5577 >      conf->reason = xstrdup(block_state.rpass.buf);
5578 >    else
5579 >      conf->reason = xstrdup(CONF_NOREASON);
5580 >    add_conf_by_address(CONF_DLINE, conf);
5581    }
5582   }
5583 + #line 5584 "conf_parser.c" /* yacc.c:1646  */
5584      break;
5585  
5586 <  case 407:
5587 < /* Line 1787 of yacc.c  */
5789 < #line 2376 "conf_parser.y"
5586 >  case 447:
5587 > #line 2417 "conf_parser.y" /* yacc.c:1646  */
5588      {
5589    if (conf_parser_ctx.pass == 2)
5590 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5590 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5591   }
5592 + #line 5593 "conf_parser.c" /* yacc.c:1646  */
5593      break;
5594  
5595 <  case 408:
5596 < /* Line 1787 of yacc.c  */
5798 < #line 2382 "conf_parser.y"
5595 >  case 448:
5596 > #line 2423 "conf_parser.y" /* yacc.c:1646  */
5597      {
5598    if (conf_parser_ctx.pass == 2)
5599 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5599 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5600   }
5601 + #line 5602 "conf_parser.c" /* yacc.c:1646  */
5602      break;
5603  
5604 <  case 414:
5605 < /* Line 1787 of yacc.c  */
5807 < #line 2396 "conf_parser.y"
5604 >  case 454:
5605 > #line 2437 "conf_parser.y" /* yacc.c:1646  */
5606      {
5607    if (conf_parser_ctx.pass == 2)
5608    {
5609      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5610      {
5611 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5612 <      DupString(yy_aconf->host, yylval.string);
5611 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5612 >      conf->host = xstrdup(yylval.string);
5613  
5614 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5817 <      yy_aconf = NULL;
5614 >      add_conf_by_address(CONF_EXEMPT, conf);
5615      }
5616    }
5617   }
5618 + #line 5619 "conf_parser.c" /* yacc.c:1646  */
5619      break;
5620  
5621 <  case 415:
5622 < /* Line 1787 of yacc.c  */
5825 < #line 2414 "conf_parser.y"
5621 >  case 455:
5622 > #line 2454 "conf_parser.y" /* yacc.c:1646  */
5623      {
5624    if (conf_parser_ctx.pass == 2)
5625 <  {
5829 <    regex_ban = 0;
5830 <    reasonbuf[0] = gecos_name[0] = '\0';
5831 <  }
5625 >    reset_block_state();
5626   }
5627 + #line 5628 "conf_parser.c" /* yacc.c:1646  */
5628      break;
5629  
5630 <  case 416:
5631 < /* Line 1787 of yacc.c  */
5837 < #line 2421 "conf_parser.y"
5630 >  case 456:
5631 > #line 2458 "conf_parser.y" /* yacc.c:1646  */
5632      {
5633 <  if (conf_parser_ctx.pass == 2)
5840 <  {
5841 <    if (gecos_name[0])
5842 <    {
5843 <      if (regex_ban)
5844 <      {
5845 < #ifdef HAVE_LIBPCRE
5846 <        void *exp_p = NULL;
5847 <        const char *errptr = NULL;
5848 <
5849 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5850 <        {
5851 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5852 <               errptr);
5853 <          break;
5854 <        }
5855 <
5856 <        yy_conf = make_conf_item(RXLINE_TYPE);
5857 <        yy_conf->regexpname = exp_p;
5858 < #else
5859 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5860 <        break;
5861 < #endif
5862 <      }
5863 <      else
5864 <        yy_conf = make_conf_item(XLINE_TYPE);
5633 >  struct MaskItem *conf = NULL;
5634  
5635 <      yy_match_item = map_to_conf(yy_conf);
5636 <      DupString(yy_conf->name, gecos_name);
5635 >  if (conf_parser_ctx.pass != 2)
5636 >    break;
5637  
5638 <      if (reasonbuf[0])
5870 <        DupString(yy_match_item->reason, reasonbuf);
5871 <      else
5872 <        DupString(yy_match_item->reason, "No reason");
5873 <    }
5874 <  }
5875 < }
5638 >  if (!block_state.name.buf[0])
5639      break;
5640  
5641 <  case 417:
5642 < /* Line 1787 of yacc.c  */
5643 < #line 2461 "conf_parser.y"
5644 <    {
5641 >  conf = conf_make(CONF_XLINE);
5642 >  conf->name = xstrdup(block_state.name.buf);
5643 >
5644 >  if (block_state.rpass.buf[0])
5645 >    conf->reason = xstrdup(block_state.rpass.buf);
5646 >  else
5647 >    conf->reason = xstrdup(CONF_NOREASON);
5648   }
5649 + #line 5650 "conf_parser.c" /* yacc.c:1646  */
5650      break;
5651  
5652 <  case 421:
5653 < /* Line 1787 of yacc.c  */
5887 < #line 2466 "conf_parser.y"
5652 >  case 462:
5653 > #line 2480 "conf_parser.y" /* yacc.c:1646  */
5654      {
5655    if (conf_parser_ctx.pass == 2)
5656 <    regex_ban = 1;
5656 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5657   }
5658 + #line 5659 "conf_parser.c" /* yacc.c:1646  */
5659      break;
5660  
5661 <  case 428:
5662 < /* Line 1787 of yacc.c  */
5896 < #line 2475 "conf_parser.y"
5661 >  case 463:
5662 > #line 2486 "conf_parser.y" /* yacc.c:1646  */
5663      {
5664    if (conf_parser_ctx.pass == 2)
5665 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5665 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5666   }
5667 + #line 5668 "conf_parser.c" /* yacc.c:1646  */
5668      break;
5669  
5670 <  case 429:
5671 < /* Line 1787 of yacc.c  */
5905 < #line 2481 "conf_parser.y"
5670 >  case 518:
5671 > #line 2552 "conf_parser.y" /* yacc.c:1646  */
5672      {
5673 <  if (conf_parser_ctx.pass == 2)
5908 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5673 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5674   }
5675 + #line 5676 "conf_parser.c" /* yacc.c:1646  */
5676      break;
5677  
5678 <  case 483:
5679 < /* Line 1787 of yacc.c  */
5914 < #line 2526 "conf_parser.y"
5678 >  case 519:
5679 > #line 2557 "conf_parser.y" /* yacc.c:1646  */
5680      {
5681 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5681 >  if (conf_parser_ctx.pass == 2)
5682 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5683   }
5684 + #line 5685 "conf_parser.c" /* yacc.c:1646  */
5685      break;
5686  
5687 <  case 484:
5688 < /* Line 1787 of yacc.c  */
5922 < #line 2531 "conf_parser.y"
5687 >  case 520:
5688 > #line 2563 "conf_parser.y" /* yacc.c:1646  */
5689      {
5690    if (conf_parser_ctx.pass == 2)
5691      ConfigFileEntry.glines = yylval.number;
5692   }
5693 + #line 5694 "conf_parser.c" /* yacc.c:1646  */
5694      break;
5695  
5696 <  case 485:
5697 < /* Line 1787 of yacc.c  */
5931 < #line 2537 "conf_parser.y"
5696 >  case 521:
5697 > #line 2569 "conf_parser.y" /* yacc.c:1646  */
5698      {
5699    if (conf_parser_ctx.pass == 2)
5700 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5700 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5701   }
5702 + #line 5703 "conf_parser.c" /* yacc.c:1646  */
5703      break;
5704  
5705 <  case 486:
5706 < /* Line 1787 of yacc.c  */
5940 < #line 2543 "conf_parser.y"
5705 >  case 522:
5706 > #line 2575 "conf_parser.y" /* yacc.c:1646  */
5707      {
5708    if (conf_parser_ctx.pass == 2)
5709 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5709 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5710   }
5711 + #line 5712 "conf_parser.c" /* yacc.c:1646  */
5712      break;
5713  
5714 <  case 487:
5715 < /* Line 1787 of yacc.c  */
5949 < #line 2549 "conf_parser.y"
5714 >  case 523:
5715 > #line 2581 "conf_parser.y" /* yacc.c:1646  */
5716      {
5717 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5717 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5718   }
5719 + #line 5720 "conf_parser.c" /* yacc.c:1646  */
5720      break;
5721  
5722 <  case 488:
5723 < /* Line 1787 of yacc.c  */
5957 < #line 2554 "conf_parser.y"
5722 >  case 524:
5723 > #line 2586 "conf_parser.y" /* yacc.c:1646  */
5724      {
5725 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5725 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5726   }
5727 + #line 5728 "conf_parser.c" /* yacc.c:1646  */
5728      break;
5729  
5730 <  case 489:
5731 < /* Line 1787 of yacc.c  */
5965 < #line 2559 "conf_parser.y"
5730 >  case 525:
5731 > #line 2591 "conf_parser.y" /* yacc.c:1646  */
5732      {
5733    ConfigFileEntry.tkline_expire_notices = yylval.number;
5734   }
5735 + #line 5736 "conf_parser.c" /* yacc.c:1646  */
5736      break;
5737  
5738 <  case 490:
5739 < /* Line 1787 of yacc.c  */
5973 < #line 2564 "conf_parser.y"
5738 >  case 526:
5739 > #line 2596 "conf_parser.y" /* yacc.c:1646  */
5740      {
5741 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5741 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5742   }
5743 + #line 5744 "conf_parser.c" /* yacc.c:1646  */
5744      break;
5745  
5746 <  case 491:
5747 < /* Line 1787 of yacc.c  */
5981 < #line 2569 "conf_parser.y"
5746 >  case 527:
5747 > #line 2601 "conf_parser.y" /* yacc.c:1646  */
5748      {
5749    ConfigFileEntry.hide_spoof_ips = yylval.number;
5750   }
5751 + #line 5752 "conf_parser.c" /* yacc.c:1646  */
5752      break;
5753  
5754 <  case 492:
5755 < /* Line 1787 of yacc.c  */
5989 < #line 2574 "conf_parser.y"
5754 >  case 528:
5755 > #line 2606 "conf_parser.y" /* yacc.c:1646  */
5756      {
5757    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5758   }
5759 + #line 5760 "conf_parser.c" /* yacc.c:1646  */
5760      break;
5761  
5762 <  case 493:
5763 < /* Line 1787 of yacc.c  */
5997 < #line 2579 "conf_parser.y"
5998 <    {
5999 <  ConfigFileEntry.disable_remote = yylval.number;
6000 < }
6001 <    break;
6002 <
6003 <  case 494:
6004 < /* Line 1787 of yacc.c  */
6005 < #line 2584 "conf_parser.y"
5762 >  case 529:
5763 > #line 2611 "conf_parser.y" /* yacc.c:1646  */
5764      {
5765    ConfigFileEntry.failed_oper_notice = yylval.number;
5766   }
5767 + #line 5768 "conf_parser.c" /* yacc.c:1646  */
5768      break;
5769  
5770 <  case 495:
5771 < /* Line 1787 of yacc.c  */
6013 < #line 2589 "conf_parser.y"
5770 >  case 530:
5771 > #line 2616 "conf_parser.y" /* yacc.c:1646  */
5772      {
5773    ConfigFileEntry.anti_nick_flood = yylval.number;
5774   }
5775 + #line 5776 "conf_parser.c" /* yacc.c:1646  */
5776      break;
5777  
5778 <  case 496:
5779 < /* Line 1787 of yacc.c  */
6021 < #line 2594 "conf_parser.y"
5778 >  case 531:
5779 > #line 2621 "conf_parser.y" /* yacc.c:1646  */
5780      {
5781 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5781 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5782   }
5783 + #line 5784 "conf_parser.c" /* yacc.c:1646  */
5784      break;
5785  
5786 <  case 497:
5787 < /* Line 1787 of yacc.c  */
6029 < #line 2599 "conf_parser.y"
5786 >  case 532:
5787 > #line 2626 "conf_parser.y" /* yacc.c:1646  */
5788      {
5789 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5789 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5790   }
5791 + #line 5792 "conf_parser.c" /* yacc.c:1646  */
5792      break;
5793  
5794 <  case 498:
5795 < /* Line 1787 of yacc.c  */
6037 < #line 2604 "conf_parser.y"
5794 >  case 533:
5795 > #line 2631 "conf_parser.y" /* yacc.c:1646  */
5796      {
5797 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5797 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5798   }
5799 + #line 5800 "conf_parser.c" /* yacc.c:1646  */
5800      break;
5801  
5802 <  case 499:
5803 < /* Line 1787 of yacc.c  */
6045 < #line 2609 "conf_parser.y"
5802 >  case 534:
5803 > #line 2636 "conf_parser.y" /* yacc.c:1646  */
5804      {
5805 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5805 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5806   }
5807 + #line 5808 "conf_parser.c" /* yacc.c:1646  */
5808      break;
5809  
5810 <  case 500:
5811 < /* Line 1787 of yacc.c  */
6053 < #line 2614 "conf_parser.y"
5810 >  case 535:
5811 > #line 2641 "conf_parser.y" /* yacc.c:1646  */
5812      {
5813 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5813 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5814   }
5815 + #line 5816 "conf_parser.c" /* yacc.c:1646  */
5816      break;
5817  
5818 <  case 501:
5819 < /* Line 1787 of yacc.c  */
6061 < #line 2619 "conf_parser.y"
5818 >  case 536:
5819 > #line 2646 "conf_parser.y" /* yacc.c:1646  */
5820      {
5821    if (conf_parser_ctx.pass == 2)
5822 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5822 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5823   }
5824 + #line 5825 "conf_parser.c" /* yacc.c:1646  */
5825      break;
5826  
5827 <  case 502:
5828 < /* Line 1787 of yacc.c  */
6070 < #line 2625 "conf_parser.y"
5827 >  case 537:
5828 > #line 2652 "conf_parser.y" /* yacc.c:1646  */
5829      {
5830 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5830 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5831    {
5832      ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5833      ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
# Line 6077 | Line 5835 | yyreduce:
5835      exit(0);
5836    }
5837   }
5838 + #line 5839 "conf_parser.c" /* yacc.c:1646  */
5839      break;
5840  
5841 <  case 503:
5842 < /* Line 1787 of yacc.c  */
6084 < #line 2636 "conf_parser.y"
5841 >  case 538:
5842 > #line 2663 "conf_parser.y" /* yacc.c:1646  */
5843      {
5844    ConfigFileEntry.invisible_on_connect = yylval.number;
5845   }
5846 + #line 5847 "conf_parser.c" /* yacc.c:1646  */
5847      break;
5848  
5849 <  case 504:
5850 < /* Line 1787 of yacc.c  */
6092 < #line 2641 "conf_parser.y"
5849 >  case 539:
5850 > #line 2668 "conf_parser.y" /* yacc.c:1646  */
5851      {
5852 <  ConfigFileEntry.warn_no_nline = yylval.number;
5852 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5853   }
5854 + #line 5855 "conf_parser.c" /* yacc.c:1646  */
5855      break;
5856  
5857 <  case 505:
5858 < /* Line 1787 of yacc.c  */
6100 < #line 2646 "conf_parser.y"
5857 >  case 540:
5858 > #line 2673 "conf_parser.y" /* yacc.c:1646  */
5859      {
5860    ConfigFileEntry.stats_e_disabled = yylval.number;
5861   }
5862 + #line 5863 "conf_parser.c" /* yacc.c:1646  */
5863      break;
5864  
5865 <  case 506:
5866 < /* Line 1787 of yacc.c  */
6108 < #line 2651 "conf_parser.y"
5865 >  case 541:
5866 > #line 2678 "conf_parser.y" /* yacc.c:1646  */
5867      {
5868    ConfigFileEntry.stats_o_oper_only = yylval.number;
5869   }
5870 + #line 5871 "conf_parser.c" /* yacc.c:1646  */
5871      break;
5872  
5873 <  case 507:
5874 < /* Line 1787 of yacc.c  */
6116 < #line 2656 "conf_parser.y"
5873 >  case 542:
5874 > #line 2683 "conf_parser.y" /* yacc.c:1646  */
5875      {
5876    ConfigFileEntry.stats_P_oper_only = yylval.number;
5877   }
5878 + #line 5879 "conf_parser.c" /* yacc.c:1646  */
5879 +    break;
5880 +
5881 +  case 543:
5882 + #line 2688 "conf_parser.y" /* yacc.c:1646  */
5883 +    {
5884 +  ConfigFileEntry.stats_u_oper_only = yylval.number;
5885 + }
5886 + #line 5887 "conf_parser.c" /* yacc.c:1646  */
5887      break;
5888  
5889 <  case 508:
5890 < /* Line 1787 of yacc.c  */
6124 < #line 2661 "conf_parser.y"
5889 >  case 544:
5890 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
5891      {
5892    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5893   }
5894 + #line 5895 "conf_parser.c" /* yacc.c:1646  */
5895      break;
5896  
5897 <  case 509:
5898 < /* Line 1787 of yacc.c  */
6132 < #line 2664 "conf_parser.y"
5897 >  case 545:
5898 > #line 2696 "conf_parser.y" /* yacc.c:1646  */
5899      {
5900    ConfigFileEntry.stats_k_oper_only = 1;
5901   }
5902 + #line 5903 "conf_parser.c" /* yacc.c:1646  */
5903      break;
5904  
5905 <  case 510:
5906 < /* Line 1787 of yacc.c  */
6140 < #line 2669 "conf_parser.y"
5905 >  case 546:
5906 > #line 2701 "conf_parser.y" /* yacc.c:1646  */
5907      {
5908    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5909   }
5910 + #line 5911 "conf_parser.c" /* yacc.c:1646  */
5911      break;
5912  
5913 <  case 511:
5914 < /* Line 1787 of yacc.c  */
6148 < #line 2672 "conf_parser.y"
5913 >  case 547:
5914 > #line 2704 "conf_parser.y" /* yacc.c:1646  */
5915      {
5916    ConfigFileEntry.stats_i_oper_only = 1;
5917   }
5918 + #line 5919 "conf_parser.c" /* yacc.c:1646  */
5919      break;
5920  
5921 <  case 512:
5922 < /* Line 1787 of yacc.c  */
6156 < #line 2677 "conf_parser.y"
5921 >  case 548:
5922 > #line 2709 "conf_parser.y" /* yacc.c:1646  */
5923      {
5924 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5924 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5925   }
5926 + #line 5927 "conf_parser.c" /* yacc.c:1646  */
5927      break;
5928  
5929 <  case 513:
5930 < /* Line 1787 of yacc.c  */
6164 < #line 2682 "conf_parser.y"
5929 >  case 549:
5930 > #line 2714 "conf_parser.y" /* yacc.c:1646  */
5931      {
5932 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5932 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5933   }
5934 + #line 5935 "conf_parser.c" /* yacc.c:1646  */
5935      break;
5936  
5937 <  case 514:
5938 < /* Line 1787 of yacc.c  */
6172 < #line 2687 "conf_parser.y"
5937 >  case 550:
5938 > #line 2719 "conf_parser.y" /* yacc.c:1646  */
5939      {
5940    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5941   }
5942 + #line 5943 "conf_parser.c" /* yacc.c:1646  */
5943      break;
5944  
5945 <  case 515:
5946 < /* Line 1787 of yacc.c  */
6180 < #line 2692 "conf_parser.y"
5945 >  case 551:
5946 > #line 2724 "conf_parser.y" /* yacc.c:1646  */
5947      {
5948 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5948 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5949   }
5950 + #line 5951 "conf_parser.c" /* yacc.c:1646  */
5951      break;
5952  
5953 <  case 516:
5954 < /* Line 1787 of yacc.c  */
6188 < #line 2697 "conf_parser.y"
5953 >  case 552:
5954 > #line 2729 "conf_parser.y" /* yacc.c:1646  */
5955      {
5956    ConfigFileEntry.short_motd = yylval.number;
5957   }
5958 + #line 5959 "conf_parser.c" /* yacc.c:1646  */
5959      break;
5960  
5961 <  case 517:
5962 < /* Line 1787 of yacc.c  */
6196 < #line 2702 "conf_parser.y"
5961 >  case 553:
5962 > #line 2734 "conf_parser.y" /* yacc.c:1646  */
5963      {
5964    ConfigFileEntry.no_oper_flood = yylval.number;
5965   }
5966 + #line 5967 "conf_parser.c" /* yacc.c:1646  */
5967      break;
5968  
5969 <  case 518:
5970 < /* Line 1787 of yacc.c  */
6204 < #line 2707 "conf_parser.y"
5969 >  case 554:
5970 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
5971      {
5972    ConfigFileEntry.true_no_oper_flood = yylval.number;
5973   }
5974 + #line 5975 "conf_parser.c" /* yacc.c:1646  */
5975      break;
5976  
5977 <  case 519:
5978 < /* Line 1787 of yacc.c  */
6212 < #line 2712 "conf_parser.y"
5977 >  case 555:
5978 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
5979      {
5980    ConfigFileEntry.oper_pass_resv = yylval.number;
5981   }
5982 + #line 5983 "conf_parser.c" /* yacc.c:1646  */
5983      break;
5984  
5985 <  case 520:
5986 < /* Line 1787 of yacc.c  */
6220 < #line 2717 "conf_parser.y"
5985 >  case 556:
5986 > #line 2749 "conf_parser.y" /* yacc.c:1646  */
5987      {
5988 <  if (conf_parser_ctx.pass == 2)
6223 <  {
6224 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6225 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6226 <
6227 <    set_locale(yylval.string);
6228 <  }
5988 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5989   }
5990 + #line 5991 "conf_parser.c" /* yacc.c:1646  */
5991      break;
5992  
5993 <  case 521:
5994 < /* Line 1787 of yacc.c  */
6234 < #line 2728 "conf_parser.y"
6235 <    {
6236 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6237 < }
6238 <    break;
6239 <
6240 <  case 522:
6241 < /* Line 1787 of yacc.c  */
6242 < #line 2733 "conf_parser.y"
5993 >  case 557:
5994 > #line 2754 "conf_parser.y" /* yacc.c:1646  */
5995      {
5996 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5996 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5997   }
5998 + #line 5999 "conf_parser.c" /* yacc.c:1646  */
5999      break;
6000  
6001 <  case 523:
6002 < /* Line 1787 of yacc.c  */
6250 < #line 2738 "conf_parser.y"
6001 >  case 558:
6002 > #line 2759 "conf_parser.y" /* yacc.c:1646  */
6003      {
6004    ConfigFileEntry.use_egd = yylval.number;
6005   }
6006 + #line 6007 "conf_parser.c" /* yacc.c:1646  */
6007      break;
6008  
6009 <  case 524:
6010 < /* Line 1787 of yacc.c  */
6258 < #line 2743 "conf_parser.y"
6009 >  case 559:
6010 > #line 2764 "conf_parser.y" /* yacc.c:1646  */
6011      {
6012    if (conf_parser_ctx.pass == 2)
6013    {
6014      MyFree(ConfigFileEntry.egdpool_path);
6015 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6015 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6016    }
6017   }
6018 + #line 6019 "conf_parser.c" /* yacc.c:1646  */
6019      break;
6020  
6021 <  case 525:
6022 < /* Line 1787 of yacc.c  */
6270 < #line 2752 "conf_parser.y"
6021 >  case 560:
6022 > #line 2773 "conf_parser.y" /* yacc.c:1646  */
6023      {
6024    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6025    {
6026      MyFree(ConfigFileEntry.service_name);
6027 <    DupString(ConfigFileEntry.service_name, yylval.string);
6027 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6028    }
6029   }
6030 + #line 6031 "conf_parser.c" /* yacc.c:1646  */
6031      break;
6032  
6033 <  case 526:
6034 < /* Line 1787 of yacc.c  */
6282 < #line 2761 "conf_parser.y"
6033 >  case 561:
6034 > #line 2782 "conf_parser.y" /* yacc.c:1646  */
6035      {
6036    ConfigFileEntry.ping_cookie = yylval.number;
6037   }
6038 + #line 6039 "conf_parser.c" /* yacc.c:1646  */
6039      break;
6040  
6041 <  case 527:
6042 < /* Line 1787 of yacc.c  */
6290 < #line 2766 "conf_parser.y"
6041 >  case 562:
6042 > #line 2787 "conf_parser.y" /* yacc.c:1646  */
6043      {
6044    ConfigFileEntry.disable_auth = yylval.number;
6045   }
6046 + #line 6047 "conf_parser.c" /* yacc.c:1646  */
6047      break;
6048  
6049 <  case 528:
6050 < /* Line 1787 of yacc.c  */
6298 < #line 2771 "conf_parser.y"
6049 >  case 563:
6050 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6051      {
6052 <  ConfigFileEntry.throttle_time = yylval.number;
6052 >  ConfigFileEntry.throttle_count = (yyvsp[-1].number);
6053   }
6054 + #line 6055 "conf_parser.c" /* yacc.c:1646  */
6055      break;
6056  
6057 <  case 529:
6058 < /* Line 1787 of yacc.c  */
6306 < #line 2776 "conf_parser.y"
6057 >  case 564:
6058 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6059      {
6060 <  ConfigFileEntry.oper_umodes = 0;
6060 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
6061   }
6062 + #line 6063 "conf_parser.c" /* yacc.c:1646  */
6063      break;
6064  
6065 <  case 533:
6066 < /* Line 1787 of yacc.c  */
6314 < #line 2782 "conf_parser.y"
6065 >  case 565:
6066 > #line 2802 "conf_parser.y" /* yacc.c:1646  */
6067      {
6068 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6068 >  ConfigFileEntry.oper_umodes = 0;
6069   }
6070 + #line 6071 "conf_parser.c" /* yacc.c:1646  */
6071      break;
6072  
6073 <  case 534:
6074 < /* Line 1787 of yacc.c  */
6322 < #line 2785 "conf_parser.y"
6073 >  case 569:
6074 > #line 2808 "conf_parser.y" /* yacc.c:1646  */
6075      {
6076 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6076 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6077   }
6078 + #line 6079 "conf_parser.c" /* yacc.c:1646  */
6079      break;
6080  
6081 <  case 535:
6082 < /* Line 1787 of yacc.c  */
6330 < #line 2788 "conf_parser.y"
6081 >  case 570:
6082 > #line 2811 "conf_parser.y" /* yacc.c:1646  */
6083      {
6084 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6084 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6085   }
6086 + #line 6087 "conf_parser.c" /* yacc.c:1646  */
6087      break;
6088  
6089 <  case 536:
6090 < /* Line 1787 of yacc.c  */
6338 < #line 2791 "conf_parser.y"
6089 >  case 571:
6090 > #line 2814 "conf_parser.y" /* yacc.c:1646  */
6091      {
6092    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6093   }
6094 + #line 6095 "conf_parser.c" /* yacc.c:1646  */
6095      break;
6096  
6097 <  case 537:
6098 < /* Line 1787 of yacc.c  */
6346 < #line 2794 "conf_parser.y"
6097 >  case 572:
6098 > #line 2817 "conf_parser.y" /* yacc.c:1646  */
6099      {
6100    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6101   }
6102 + #line 6103 "conf_parser.c" /* yacc.c:1646  */
6103      break;
6104  
6105 <  case 538:
6106 < /* Line 1787 of yacc.c  */
6354 < #line 2797 "conf_parser.y"
6105 >  case 573:
6106 > #line 2820 "conf_parser.y" /* yacc.c:1646  */
6107      {
6108    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6109   }
6110 + #line 6111 "conf_parser.c" /* yacc.c:1646  */
6111      break;
6112  
6113 <  case 539:
6114 < /* Line 1787 of yacc.c  */
6362 < #line 2800 "conf_parser.y"
6113 >  case 574:
6114 > #line 2823 "conf_parser.y" /* yacc.c:1646  */
6115      {
6116    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6117   }
6118 + #line 6119 "conf_parser.c" /* yacc.c:1646  */
6119      break;
6120  
6121 <  case 540:
6122 < /* Line 1787 of yacc.c  */
6123 < #line 2803 "conf_parser.y"
6121 >  case 575:
6122 > #line 2826 "conf_parser.y" /* yacc.c:1646  */
6123 >    {
6124 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6125 > }
6126 > #line 6127 "conf_parser.c" /* yacc.c:1646  */
6127 >    break;
6128 >
6129 >  case 576:
6130 > #line 2829 "conf_parser.y" /* yacc.c:1646  */
6131 >    {
6132 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6133 > }
6134 > #line 6135 "conf_parser.c" /* yacc.c:1646  */
6135 >    break;
6136 >
6137 >  case 577:
6138 > #line 2832 "conf_parser.y" /* yacc.c:1646  */
6139      {
6140    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6141   }
6142 + #line 6143 "conf_parser.c" /* yacc.c:1646  */
6143      break;
6144  
6145 <  case 541:
6146 < /* Line 1787 of yacc.c  */
6378 < #line 2806 "conf_parser.y"
6145 >  case 578:
6146 > #line 2835 "conf_parser.y" /* yacc.c:1646  */
6147      {
6148    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6149   }
6150 + #line 6151 "conf_parser.c" /* yacc.c:1646  */
6151      break;
6152  
6153 <  case 542:
6154 < /* Line 1787 of yacc.c  */
6386 < #line 2809 "conf_parser.y"
6153 >  case 579:
6154 > #line 2838 "conf_parser.y" /* yacc.c:1646  */
6155      {
6156    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6157   }
6158 + #line 6159 "conf_parser.c" /* yacc.c:1646  */
6159      break;
6160  
6161 <  case 543:
6162 < /* Line 1787 of yacc.c  */
6394 < #line 2812 "conf_parser.y"
6161 >  case 580:
6162 > #line 2841 "conf_parser.y" /* yacc.c:1646  */
6163      {
6164    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6165   }
6166 + #line 6167 "conf_parser.c" /* yacc.c:1646  */
6167      break;
6168  
6169 <  case 544:
6170 < /* Line 1787 of yacc.c  */
6402 < #line 2815 "conf_parser.y"
6169 >  case 581:
6170 > #line 2844 "conf_parser.y" /* yacc.c:1646  */
6171      {
6172    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6173   }
6174 + #line 6175 "conf_parser.c" /* yacc.c:1646  */
6175      break;
6176  
6177 <  case 545:
6178 < /* Line 1787 of yacc.c  */
6410 < #line 2818 "conf_parser.y"
6177 >  case 582:
6178 > #line 2847 "conf_parser.y" /* yacc.c:1646  */
6179      {
6180    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6181   }
6182 + #line 6183 "conf_parser.c" /* yacc.c:1646  */
6183      break;
6184  
6185 <  case 546:
6186 < /* Line 1787 of yacc.c  */
6418 < #line 2821 "conf_parser.y"
6419 <    {
6420 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6421 < }
6422 <    break;
6423 <
6424 <  case 547:
6425 < /* Line 1787 of yacc.c  */
6426 < #line 2824 "conf_parser.y"
6185 >  case 583:
6186 > #line 2850 "conf_parser.y" /* yacc.c:1646  */
6187      {
6188    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6189   }
6190 + #line 6191 "conf_parser.c" /* yacc.c:1646  */
6191      break;
6192  
6193 <  case 548:
6194 < /* Line 1787 of yacc.c  */
6434 < #line 2827 "conf_parser.y"
6193 >  case 584:
6194 > #line 2853 "conf_parser.y" /* yacc.c:1646  */
6195      {
6196    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6197   }
6198 + #line 6199 "conf_parser.c" /* yacc.c:1646  */
6199      break;
6200  
6201 <  case 549:
6202 < /* Line 1787 of yacc.c  */
6442 < #line 2830 "conf_parser.y"
6201 >  case 585:
6202 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6203      {
6204    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6205   }
6206 + #line 6207 "conf_parser.c" /* yacc.c:1646  */
6207      break;
6208  
6209 <  case 550:
6210 < /* Line 1787 of yacc.c  */
6450 < #line 2833 "conf_parser.y"
6209 >  case 586:
6210 > #line 2859 "conf_parser.y" /* yacc.c:1646  */
6211      {
6212    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6213   }
6214 + #line 6215 "conf_parser.c" /* yacc.c:1646  */
6215      break;
6216  
6217 <  case 551:
6218 < /* Line 1787 of yacc.c  */
6458 < #line 2836 "conf_parser.y"
6217 >  case 587:
6218 > #line 2862 "conf_parser.y" /* yacc.c:1646  */
6219      {
6220    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6221   }
6222 + #line 6223 "conf_parser.c" /* yacc.c:1646  */
6223      break;
6224  
6225 <  case 552:
6226 < /* Line 1787 of yacc.c  */
6466 < #line 2839 "conf_parser.y"
6225 >  case 588:
6226 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6227      {
6228    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6229   }
6230 + #line 6231 "conf_parser.c" /* yacc.c:1646  */
6231      break;
6232  
6233 <  case 553:
6234 < /* Line 1787 of yacc.c  */
6474 < #line 2844 "conf_parser.y"
6233 >  case 589:
6234 > #line 2868 "conf_parser.y" /* yacc.c:1646  */
6235      {
6236 <  ConfigFileEntry.oper_only_umodes = 0;
6236 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6237   }
6238 + #line 6239 "conf_parser.c" /* yacc.c:1646  */
6239      break;
6240  
6241 <  case 557:
6242 < /* Line 1787 of yacc.c  */
6482 < #line 2850 "conf_parser.y"
6241 >  case 590:
6242 > #line 2871 "conf_parser.y" /* yacc.c:1646  */
6243      {
6244 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6244 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6245   }
6246 + #line 6247 "conf_parser.c" /* yacc.c:1646  */
6247      break;
6248  
6249 <  case 558:
6250 < /* Line 1787 of yacc.c  */
6490 < #line 2853 "conf_parser.y"
6249 >  case 591:
6250 > #line 2876 "conf_parser.y" /* yacc.c:1646  */
6251      {
6252 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6252 >  ConfigFileEntry.oper_only_umodes = 0;
6253   }
6254 + #line 6255 "conf_parser.c" /* yacc.c:1646  */
6255      break;
6256  
6257 <  case 559:
6258 < /* Line 1787 of yacc.c  */
6498 < #line 2856 "conf_parser.y"
6257 >  case 595:
6258 > #line 2882 "conf_parser.y" /* yacc.c:1646  */
6259      {
6260 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6260 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6261   }
6262 + #line 6263 "conf_parser.c" /* yacc.c:1646  */
6263      break;
6264  
6265 <  case 560:
6266 < /* Line 1787 of yacc.c  */
6267 < #line 2859 "conf_parser.y"
6265 >  case 596:
6266 > #line 2885 "conf_parser.y" /* yacc.c:1646  */
6267 >    {
6268 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6269 > }
6270 > #line 6271 "conf_parser.c" /* yacc.c:1646  */
6271 >    break;
6272 >
6273 >  case 597:
6274 > #line 2888 "conf_parser.y" /* yacc.c:1646  */
6275      {
6276    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6277   }
6278 + #line 6279 "conf_parser.c" /* yacc.c:1646  */
6279      break;
6280  
6281 <  case 561:
6282 < /* Line 1787 of yacc.c  */
6514 < #line 2862 "conf_parser.y"
6281 >  case 598:
6282 > #line 2891 "conf_parser.y" /* yacc.c:1646  */
6283      {
6284    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6285   }
6286 + #line 6287 "conf_parser.c" /* yacc.c:1646  */
6287      break;
6288  
6289 <  case 562:
6290 < /* Line 1787 of yacc.c  */
6291 < #line 2865 "conf_parser.y"
6523 <    {
6289 >  case 599:
6290 > #line 2894 "conf_parser.y" /* yacc.c:1646  */
6291 >    {
6292    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6293   }
6294 + #line 6295 "conf_parser.c" /* yacc.c:1646  */
6295      break;
6296  
6297 <  case 563:
6298 < /* Line 1787 of yacc.c  */
6530 < #line 2868 "conf_parser.y"
6297 >  case 600:
6298 > #line 2897 "conf_parser.y" /* yacc.c:1646  */
6299      {
6300    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6301   }
6302 + #line 6303 "conf_parser.c" /* yacc.c:1646  */
6303      break;
6304  
6305 <  case 564:
6306 < /* Line 1787 of yacc.c  */
6538 < #line 2871 "conf_parser.y"
6305 >  case 601:
6306 > #line 2900 "conf_parser.y" /* yacc.c:1646  */
6307      {
6308    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6309   }
6310 + #line 6311 "conf_parser.c" /* yacc.c:1646  */
6311      break;
6312  
6313 <  case 565:
6314 < /* Line 1787 of yacc.c  */
6546 < #line 2874 "conf_parser.y"
6313 >  case 602:
6314 > #line 2903 "conf_parser.y" /* yacc.c:1646  */
6315      {
6316    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6317   }
6318 + #line 6319 "conf_parser.c" /* yacc.c:1646  */
6319      break;
6320  
6321 <  case 566:
6322 < /* Line 1787 of yacc.c  */
6554 < #line 2877 "conf_parser.y"
6321 >  case 603:
6322 > #line 2906 "conf_parser.y" /* yacc.c:1646  */
6323      {
6324    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6325   }
6326 + #line 6327 "conf_parser.c" /* yacc.c:1646  */
6327      break;
6328  
6329 <  case 567:
6330 < /* Line 1787 of yacc.c  */
6562 < #line 2880 "conf_parser.y"
6329 >  case 604:
6330 > #line 2909 "conf_parser.y" /* yacc.c:1646  */
6331      {
6332    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6333   }
6334 + #line 6335 "conf_parser.c" /* yacc.c:1646  */
6335      break;
6336  
6337 <  case 568:
6338 < /* Line 1787 of yacc.c  */
6570 < #line 2883 "conf_parser.y"
6337 >  case 605:
6338 > #line 2912 "conf_parser.y" /* yacc.c:1646  */
6339      {
6340    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6341   }
6342 + #line 6343 "conf_parser.c" /* yacc.c:1646  */
6343      break;
6344  
6345 <  case 569:
6346 < /* Line 1787 of yacc.c  */
6578 < #line 2886 "conf_parser.y"
6345 >  case 606:
6346 > #line 2915 "conf_parser.y" /* yacc.c:1646  */
6347      {
6348    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6349   }
6350 + #line 6351 "conf_parser.c" /* yacc.c:1646  */
6351      break;
6352  
6353 <  case 570:
6354 < /* Line 1787 of yacc.c  */
6586 < #line 2889 "conf_parser.y"
6587 <    {
6588 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6589 < }
6590 <    break;
6591 <
6592 <  case 571:
6593 < /* Line 1787 of yacc.c  */
6594 < #line 2892 "conf_parser.y"
6353 >  case 607:
6354 > #line 2918 "conf_parser.y" /* yacc.c:1646  */
6355      {
6356    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6357   }
6358 + #line 6359 "conf_parser.c" /* yacc.c:1646  */
6359      break;
6360  
6361 <  case 572:
6362 < /* Line 1787 of yacc.c  */
6602 < #line 2895 "conf_parser.y"
6361 >  case 608:
6362 > #line 2921 "conf_parser.y" /* yacc.c:1646  */
6363      {
6364    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6365   }
6366 + #line 6367 "conf_parser.c" /* yacc.c:1646  */
6367      break;
6368  
6369 <  case 573:
6370 < /* Line 1787 of yacc.c  */
6610 < #line 2898 "conf_parser.y"
6369 >  case 609:
6370 > #line 2924 "conf_parser.y" /* yacc.c:1646  */
6371      {
6372    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6373   }
6374 + #line 6375 "conf_parser.c" /* yacc.c:1646  */
6375      break;
6376  
6377 <  case 574:
6378 < /* Line 1787 of yacc.c  */
6618 < #line 2901 "conf_parser.y"
6377 >  case 610:
6378 > #line 2927 "conf_parser.y" /* yacc.c:1646  */
6379      {
6380    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6381   }
6382 + #line 6383 "conf_parser.c" /* yacc.c:1646  */
6383      break;
6384  
6385 <  case 575:
6386 < /* Line 1787 of yacc.c  */
6626 < #line 2904 "conf_parser.y"
6385 >  case 611:
6386 > #line 2930 "conf_parser.y" /* yacc.c:1646  */
6387      {
6388    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6389   }
6390 + #line 6391 "conf_parser.c" /* yacc.c:1646  */
6391      break;
6392  
6393 <  case 576:
6394 < /* Line 1787 of yacc.c  */
6634 < #line 2907 "conf_parser.y"
6393 >  case 612:
6394 > #line 2933 "conf_parser.y" /* yacc.c:1646  */
6395      {
6396    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6397   }
6398 + #line 6399 "conf_parser.c" /* yacc.c:1646  */
6399      break;
6400  
6401 <  case 577:
6402 < /* Line 1787 of yacc.c  */
6642 < #line 2912 "conf_parser.y"
6401 >  case 613:
6402 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6403      {
6404 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6404 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6405   }
6406 + #line 6407 "conf_parser.c" /* yacc.c:1646  */
6407      break;
6408  
6409 <  case 578:
6410 < /* Line 1787 of yacc.c  */
6650 < #line 2917 "conf_parser.y"
6409 >  case 614:
6410 > #line 2939 "conf_parser.y" /* yacc.c:1646  */
6411      {
6412 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6412 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6413   }
6414 + #line 6415 "conf_parser.c" /* yacc.c:1646  */
6415      break;
6416  
6417 <  case 579:
6418 < /* Line 1787 of yacc.c  */
6658 < #line 2922 "conf_parser.y"
6417 >  case 615:
6418 > #line 2944 "conf_parser.y" /* yacc.c:1646  */
6419      {
6420 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6420 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6421   }
6422 + #line 6423 "conf_parser.c" /* yacc.c:1646  */
6423      break;
6424  
6425 <  case 598:
6426 < /* Line 1787 of yacc.c  */
6427 < #line 2945 "conf_parser.y"
6425 >  case 616:
6426 > #line 2949 "conf_parser.y" /* yacc.c:1646  */
6427 >    {
6428 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6429 > }
6430 > #line 6431 "conf_parser.c" /* yacc.c:1646  */
6431 >    break;
6432 >
6433 >  case 617:
6434 > #line 2954 "conf_parser.y" /* yacc.c:1646  */
6435 >    {
6436 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6437 > }
6438 > #line 6439 "conf_parser.c" /* yacc.c:1646  */
6439 >    break;
6440 >
6441 >  case 636:
6442 > #line 2983 "conf_parser.y" /* yacc.c:1646  */
6443      {
6444    ConfigChannel.disable_fake_channels = yylval.number;
6445   }
6446 + #line 6447 "conf_parser.c" /* yacc.c:1646  */
6447      break;
6448  
6449 <  case 599:
6450 < /* Line 1787 of yacc.c  */
6674 < #line 2950 "conf_parser.y"
6449 >  case 637:
6450 > #line 2988 "conf_parser.y" /* yacc.c:1646  */
6451      {
6452 <  ConfigChannel.restrict_channels = yylval.number;
6452 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6453   }
6454 + #line 6455 "conf_parser.c" /* yacc.c:1646  */
6455      break;
6456  
6457 <  case 600:
6458 < /* Line 1787 of yacc.c  */
6682 < #line 2955 "conf_parser.y"
6457 >  case 638:
6458 > #line 2993 "conf_parser.y" /* yacc.c:1646  */
6459      {
6460 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6460 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6461   }
6462 + #line 6463 "conf_parser.c" /* yacc.c:1646  */
6463      break;
6464  
6465 <  case 601:
6466 < /* Line 1787 of yacc.c  */
6690 < #line 2960 "conf_parser.y"
6465 >  case 639:
6466 > #line 2998 "conf_parser.y" /* yacc.c:1646  */
6467      {
6468 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6468 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6469   }
6470 + #line 6471 "conf_parser.c" /* yacc.c:1646  */
6471      break;
6472  
6473 <  case 602:
6474 < /* Line 1787 of yacc.c  */
6698 < #line 2965 "conf_parser.y"
6473 >  case 640:
6474 > #line 3003 "conf_parser.y" /* yacc.c:1646  */
6475      {
6476 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6476 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6477   }
6478 + #line 6479 "conf_parser.c" /* yacc.c:1646  */
6479      break;
6480  
6481 <  case 603:
6482 < /* Line 1787 of yacc.c  */
6706 < #line 2970 "conf_parser.y"
6481 >  case 641:
6482 > #line 3008 "conf_parser.y" /* yacc.c:1646  */
6483      {
6484 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6484 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6485   }
6486 + #line 6487 "conf_parser.c" /* yacc.c:1646  */
6487      break;
6488  
6489 <  case 604:
6490 < /* Line 1787 of yacc.c  */
6714 < #line 2975 "conf_parser.y"
6489 >  case 642:
6490 > #line 3013 "conf_parser.y" /* yacc.c:1646  */
6491      {
6492 <  ConfigChannel.quiet_on_ban = yylval.number;
6492 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6493   }
6494 + #line 6495 "conf_parser.c" /* yacc.c:1646  */
6495      break;
6496  
6497 <  case 605:
6498 < /* Line 1787 of yacc.c  */
6722 < #line 2980 "conf_parser.y"
6497 >  case 643:
6498 > #line 3018 "conf_parser.y" /* yacc.c:1646  */
6499      {
6500 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6500 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6501   }
6502 + #line 6503 "conf_parser.c" /* yacc.c:1646  */
6503      break;
6504  
6505 <  case 606:
6506 < /* Line 1787 of yacc.c  */
6730 < #line 2985 "conf_parser.y"
6505 >  case 644:
6506 > #line 3023 "conf_parser.y" /* yacc.c:1646  */
6507      {
6508 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6508 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6509   }
6510 + #line 6511 "conf_parser.c" /* yacc.c:1646  */
6511      break;
6512  
6513 <  case 607:
6514 < /* Line 1787 of yacc.c  */
6738 < #line 2990 "conf_parser.y"
6513 >  case 645:
6514 > #line 3028 "conf_parser.y" /* yacc.c:1646  */
6515      {
6516 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6516 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6517   }
6518 + #line 6519 "conf_parser.c" /* yacc.c:1646  */
6519      break;
6520  
6521 <  case 608:
6522 < /* Line 1787 of yacc.c  */
6746 < #line 2995 "conf_parser.y"
6521 >  case 646:
6522 > #line 3033 "conf_parser.y" /* yacc.c:1646  */
6523      {
6524    ConfigChannel.no_create_on_split = yylval.number;
6525   }
6526 + #line 6527 "conf_parser.c" /* yacc.c:1646  */
6527      break;
6528  
6529 <  case 609:
6530 < /* Line 1787 of yacc.c  */
6754 < #line 3000 "conf_parser.y"
6529 >  case 647:
6530 > #line 3038 "conf_parser.y" /* yacc.c:1646  */
6531      {
6532    ConfigChannel.no_join_on_split = yylval.number;
6533   }
6534 + #line 6535 "conf_parser.c" /* yacc.c:1646  */
6535      break;
6536  
6537 <  case 610:
6538 < /* Line 1787 of yacc.c  */
6762 < #line 3005 "conf_parser.y"
6537 >  case 648:
6538 > #line 3043 "conf_parser.y" /* yacc.c:1646  */
6539      {
6540    GlobalSetOptions.joinfloodcount = yylval.number;
6541   }
6542 + #line 6543 "conf_parser.c" /* yacc.c:1646  */
6543      break;
6544  
6545 <  case 611:
6546 < /* Line 1787 of yacc.c  */
6770 < #line 3010 "conf_parser.y"
6545 >  case 649:
6546 > #line 3048 "conf_parser.y" /* yacc.c:1646  */
6547      {
6548 <  GlobalSetOptions.joinfloodtime = yylval.number;
6548 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6549   }
6550 + #line 6551 "conf_parser.c" /* yacc.c:1646  */
6551      break;
6552  
6553 <  case 622:
6554 < /* Line 1787 of yacc.c  */
6778 < #line 3028 "conf_parser.y"
6553 >  case 662:
6554 > #line 3070 "conf_parser.y" /* yacc.c:1646  */
6555      {
6556    if (conf_parser_ctx.pass == 2)
6557      ConfigServerHide.flatten_links = yylval.number;
6558   }
6559 + #line 6560 "conf_parser.c" /* yacc.c:1646  */
6560 +    break;
6561 +
6562 +  case 663:
6563 + #line 3076 "conf_parser.y" /* yacc.c:1646  */
6564 +    {
6565 +  if (conf_parser_ctx.pass == 2)
6566 +    ConfigServerHide.disable_remote_commands = yylval.number;
6567 + }
6568 + #line 6569 "conf_parser.c" /* yacc.c:1646  */
6569      break;
6570  
6571 <  case 623:
6572 < /* Line 1787 of yacc.c  */
6787 < #line 3034 "conf_parser.y"
6571 >  case 664:
6572 > #line 3082 "conf_parser.y" /* yacc.c:1646  */
6573      {
6574    if (conf_parser_ctx.pass == 2)
6575      ConfigServerHide.hide_servers = yylval.number;
6576   }
6577 + #line 6578 "conf_parser.c" /* yacc.c:1646  */
6578 +    break;
6579 +
6580 +  case 665:
6581 + #line 3088 "conf_parser.y" /* yacc.c:1646  */
6582 +    {
6583 +  if (conf_parser_ctx.pass == 2)
6584 +    ConfigServerHide.hide_services = yylval.number;
6585 + }
6586 + #line 6587 "conf_parser.c" /* yacc.c:1646  */
6587      break;
6588  
6589 <  case 624:
6590 < /* Line 1787 of yacc.c  */
6796 < #line 3040 "conf_parser.y"
6589 >  case 666:
6590 > #line 3094 "conf_parser.y" /* yacc.c:1646  */
6591      {
6592    if (conf_parser_ctx.pass == 2)
6593    {
6594      MyFree(ConfigServerHide.hidden_name);
6595 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6595 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6596    }
6597   }
6598 + #line 6599 "conf_parser.c" /* yacc.c:1646  */
6599      break;
6600  
6601 <  case 625:
6602 < /* Line 1787 of yacc.c  */
6808 < #line 3049 "conf_parser.y"
6601 >  case 667:
6602 > #line 3103 "conf_parser.y" /* yacc.c:1646  */
6603      {
6604    if (conf_parser_ctx.pass == 2)
6605    {
6606 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6606 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6607      {
6608 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6608 >      event_write_links_file.when = (yyvsp[-1].number);
6609 >      event_addish(&event_write_links_file, NULL);
6610        ConfigServerHide.links_disabled = 0;
6611      }
6612  
6613 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6613 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6614    }
6615   }
6616 + #line 6617 "conf_parser.c" /* yacc.c:1646  */
6617      break;
6618  
6619 <  case 626:
6620 < /* Line 1787 of yacc.c  */
6825 < #line 3063 "conf_parser.y"
6619 >  case 668:
6620 > #line 3118 "conf_parser.y" /* yacc.c:1646  */
6621      {
6622    if (conf_parser_ctx.pass == 2)
6623      ConfigServerHide.hidden = yylval.number;
6624   }
6625 + #line 6626 "conf_parser.c" /* yacc.c:1646  */
6626      break;
6627  
6628 <  case 627:
6629 < /* Line 1787 of yacc.c  */
6834 < #line 3069 "conf_parser.y"
6628 >  case 669:
6629 > #line 3124 "conf_parser.y" /* yacc.c:1646  */
6630      {
6631    if (conf_parser_ctx.pass == 2)
6632      ConfigServerHide.hide_server_ips = yylval.number;
6633   }
6634 + #line 6635 "conf_parser.c" /* yacc.c:1646  */
6635      break;
6636  
6637  
6638 < /* Line 1787 of yacc.c  */
6843 < #line 6844 "conf_parser.c"
6638 > #line 6639 "conf_parser.c" /* yacc.c:1646  */
6639        default: break;
6640      }
6641    /* User semantic actions sometimes alter yychar, and that requires
# Line 6862 | Line 6657 | yyreduce:
6657  
6658    *++yyvsp = yyval;
6659  
6660 <  /* Now `shift' the result of the reduction.  Determine what state
6660 >  /* Now 'shift' the result of the reduction.  Determine what state
6661       that goes to, based on the state we popped back to and the rule
6662       number reduced by.  */
6663  
# Line 6877 | Line 6672 | yyreduce:
6672    goto yynewstate;
6673  
6674  
6675 < /*------------------------------------.
6676 < | yyerrlab -- here on detecting error |
6677 < `------------------------------------*/
6675 > /*--------------------------------------.
6676 > | yyerrlab -- here on detecting error.  |
6677 > `--------------------------------------*/
6678   yyerrlab:
6679    /* Make sure we have latest lookahead translation.  See comments at
6680       user semantic actions for why this is necessary.  */
# Line 6930 | Line 6725 | yyerrlab:
6725    if (yyerrstatus == 3)
6726      {
6727        /* If just tried and failed to reuse lookahead token after an
6728 <         error, discard it.  */
6728 >         error, discard it.  */
6729  
6730        if (yychar <= YYEOF)
6731 <        {
6732 <          /* Return failure if at end of input.  */
6733 <          if (yychar == YYEOF)
6734 <            YYABORT;
6735 <        }
6731 >        {
6732 >          /* Return failure if at end of input.  */
6733 >          if (yychar == YYEOF)
6734 >            YYABORT;
6735 >        }
6736        else
6737 <        {
6738 <          yydestruct ("Error: discarding",
6739 <                      yytoken, &yylval);
6740 <          yychar = YYEMPTY;
6741 <        }
6737 >        {
6738 >          yydestruct ("Error: discarding",
6739 >                      yytoken, &yylval);
6740 >          yychar = YYEMPTY;
6741 >        }
6742      }
6743  
6744    /* Else will try to reuse lookahead token after shifting the error
# Line 6962 | Line 6757 | yyerrorlab:
6757    if (/*CONSTCOND*/ 0)
6758       goto yyerrorlab;
6759  
6760 <  /* Do not reclaim the symbols of the rule which action triggered
6760 >  /* Do not reclaim the symbols of the rule whose action triggered
6761       this YYERROR.  */
6762    YYPOPSTACK (yylen);
6763    yylen = 0;
# Line 6975 | Line 6770 | yyerrorlab:
6770   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6771   `-------------------------------------------------------------*/
6772   yyerrlab1:
6773 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6773 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6774  
6775    for (;;)
6776      {
6777        yyn = yypact[yystate];
6778        if (!yypact_value_is_default (yyn))
6779 <        {
6780 <          yyn += YYTERROR;
6781 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6782 <            {
6783 <              yyn = yytable[yyn];
6784 <              if (0 < yyn)
6785 <                break;
6786 <            }
6787 <        }
6779 >        {
6780 >          yyn += YYTERROR;
6781 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6782 >            {
6783 >              yyn = yytable[yyn];
6784 >              if (0 < yyn)
6785 >                break;
6786 >            }
6787 >        }
6788  
6789        /* Pop the current state because it cannot handle the error token.  */
6790        if (yyssp == yyss)
6791 <        YYABORT;
6791 >        YYABORT;
6792  
6793  
6794        yydestruct ("Error: popping",
6795 <                  yystos[yystate], yyvsp);
6795 >                  yystos[yystate], yyvsp);
6796        YYPOPSTACK (1);
6797        yystate = *yyssp;
6798        YY_STACK_PRINT (yyss, yyssp);
6799      }
6800  
6801 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6802    *++yyvsp = yylval;
6803 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6804  
6805  
6806    /* Shift the error token.  */
# Line 7046 | Line 6843 | yyreturn:
6843        yydestruct ("Cleanup: discarding lookahead",
6844                    yytoken, &yylval);
6845      }
6846 <  /* Do not reclaim the symbols of the rule which action triggered
6846 >  /* Do not reclaim the symbols of the rule whose action triggered
6847       this YYABORT or YYACCEPT.  */
6848    YYPOPSTACK (yylen);
6849    YY_STACK_PRINT (yyss, yyssp);
6850    while (yyssp != yyss)
6851      {
6852        yydestruct ("Cleanup: popping",
6853 <                  yystos[*yyssp], yyvsp);
6853 >                  yystos[*yyssp], yyvsp);
6854        YYPOPSTACK (1);
6855      }
6856   #ifndef yyoverflow
# Line 7064 | Line 6861 | yyreturn:
6861    if (yymsg != yymsgbuf)
6862      YYSTACK_FREE (yymsg);
6863   #endif
6864 <  /* Make sure YYID is used.  */
7068 <  return YYID (yyresult);
6864 >  return yyresult;
6865   }
7070
7071

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (property svn:keywords), Revision 4120 by michael, Tue Jul 1 16:59:39 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)