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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1366 by michael, Tue Apr 24 18:35:34 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 2.7.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
5 >      Copyright (C) 1984, 1989-1990, 2000-2012 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
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "2.7"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
68 < /* Line 268 of yacc.c  */
65 > /* Line 371 of yacc.c  */
66   #line 25 "conf_parser.y"
67  
68  
# Line 78 | Line 75
75   #include "ircd.h"
76   #include "list.h"
77   #include "conf.h"
78 + #include "conf_class.h"
79   #include "event.h"
80   #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
# Line 102 | Line 100
100  
101   int yylex(void);
102  
103 < static char *class_name = NULL;
106 < static struct ConfItem *yy_conf = NULL;
107 < static struct AccessItem *yy_aconf = NULL;
108 < static struct MatchItem *yy_match_item = NULL;
109 < static struct ClassItem *yy_class = NULL;
110 < static char *yy_class_name = NULL;
111 <
112 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
113 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
114 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
115 < static unsigned int listener_flags = 0;
116 < static unsigned int regex_ban = 0;
117 < static char userbuf[IRCD_BUFSIZE];
118 < static char hostbuf[IRCD_BUFSIZE];
119 < static char reasonbuf[REASONLEN + 1];
120 < static char gecos_name[REALLEN * 4];
121 < static char lfile[IRCD_BUFSIZE];
122 < static unsigned int ltype = 0;
123 < static unsigned int lsize = 0;
124 < static char *resv_reason = NULL;
125 < static char *listener_address = NULL;
126 <
127 < struct CollectItem
103 > static struct
104   {
105 <  dlink_node node;
106 <  char *name;
107 <  char *user;
108 <  char *host;
109 <  char *passwd;
110 <  int  port;
111 <  int  flags;
112 < #ifdef HAVE_LIBCRYPTO
113 <  char *rsa_public_key_file;
114 <  RSA *rsa_public_key;
115 < #endif
116 < };
105 >  struct {
106 >    dlink_list list;
107 >  } mask,
108 >    leaf,
109 >    hub;
110 >
111 >  struct {
112 >    char buf[IRCD_BUFSIZE];
113 >  } name,
114 >    user,
115 >    host,
116 >    addr,
117 >    bind,
118 >    file,
119 >    ciph,
120 >    rpass,
121 >    spass,
122 >    class;
123 >
124 >  struct {
125 >    unsigned int value;
126 >  } flags,
127 >    modes,
128 >    size,
129 >    type,
130 >    port,
131 >    aftype,
132 >    ping_freq,
133 >    max_perip,
134 >    con_freq,
135 >    max_total,
136 >    max_global,
137 >    max_local,
138 >    max_ident,
139 >    max_sendq,
140 >    max_recvq,
141 >    cidr_bitlen_ipv4,
142 >    cidr_bitlen_ipv6,
143 >    number_per_cidr;
144 > } block_state;
145  
146   static void
147 < free_collect_item(struct CollectItem *item)
147 > reset_block_state(void)
148   {
149 <  MyFree(item->name);
146 <  MyFree(item->user);
147 <  MyFree(item->host);
148 <  MyFree(item->passwd);
149 < #ifdef HAVE_LIBCRYPTO
150 <  MyFree(item->rsa_public_key_file);
151 < #endif
152 <  MyFree(item);
153 < }
149 >  dlink_node *ptr = NULL, *ptr_next = NULL;
150  
151 < static void
152 < unhook_hub_leaf_confs(void)
153 < {
154 <  dlink_node *ptr;
155 <  dlink_node *next_ptr;
156 <  struct CollectItem *yy_hconf;
161 <  struct CollectItem *yy_lconf;
151 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
152 >  {
153 >    MyFree(ptr->data);
154 >    dlinkDelete(ptr, &block_state.mask.list);
155 >    free_dlink_node(ptr);
156 >  }
157  
158 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
158 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
159    {
160 <    yy_hconf = ptr->data;
161 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
162 <    free_collect_item(yy_hconf);
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.leaf.list);
162 >    free_dlink_node(ptr);
163    }
164  
165 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
165 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
166    {
167 <    yy_lconf = ptr->data;
168 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
169 <    free_collect_item(yy_lconf);
167 >    MyFree(ptr->data);
168 >    dlinkDelete(ptr, &block_state.hub.list);
169 >    free_dlink_node(ptr);
170    }
176 }
171  
172 +  memset(&block_state, 0, sizeof(block_state));
173 + }
174  
175  
176 < /* Line 268 of yacc.c  */
177 < #line 182 "conf_parser.c"
176 > /* Line 371 of yacc.c  */
177 > #line 178 "conf_parser.c"
178  
179 < /* Enabling traces.  */
180 < #ifndef YYDEBUG
181 < # define YYDEBUG 0
182 < #endif
179 > # ifndef YY_NULL
180 > #  if defined __cplusplus && 201103L <= __cplusplus
181 > #   define YY_NULL nullptr
182 > #  else
183 > #   define YY_NULL 0
184 > #  endif
185 > # endif
186  
187   /* Enabling verbose error messages.  */
188   #ifdef YYERROR_VERBOSE
# Line 193 | Line 192 | unhook_hub_leaf_confs(void)
192   # define YYERROR_VERBOSE 0
193   #endif
194  
195 < /* Enabling the token table.  */
196 < #ifndef YYTOKEN_TABLE
197 < # define YYTOKEN_TABLE 0
195 > /* In a future release of Bison, this section will be replaced
196 >   by #include "y.tab.h".  */
197 > #ifndef YY_YY_Y_TAB_H_INCLUDED
198 > # define YY_YY_Y_TAB_H_INCLUDED
199 > /* Enabling traces.  */
200 > #ifndef YYDEBUG
201 > # define YYDEBUG 0
202 > #endif
203 > #if YYDEBUG
204 > extern int yydebug;
205   #endif
200
206  
207   /* Tokens.  */
208   #ifndef YYTOKENTYPE
# Line 206 | Line 211 | unhook_hub_leaf_confs(void)
211        know about them.  */
212     enum yytokentype {
213       ACCEPT_PASSWORD = 258,
214 <     ACTION = 259,
215 <     ADMIN = 260,
216 <     AFTYPE = 261,
217 <     T_ALLOW = 262,
218 <     ANTI_NICK_FLOOD = 263,
219 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
220 <     AUTOCONN = 265,
221 <     T_BLOCK = 266,
222 <     BURST_AWAY = 267,
223 <     BURST_TOPICWHO = 268,
224 <     BYTES = 269,
225 <     KBYTES = 270,
226 <     MBYTES = 271,
227 <     GBYTES = 272,
228 <     TBYTES = 273,
229 <     CALLER_ID_WAIT = 274,
230 <     CAN_FLOOD = 275,
231 <     CHANNEL = 276,
232 <     CIDR_BITLEN_IPV4 = 277,
233 <     CIDR_BITLEN_IPV6 = 278,
234 <     CLASS = 279,
235 <     CONNECT = 280,
236 <     CONNECTFREQ = 281,
237 <     DEFAULT_FLOODCOUNT = 282,
238 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
239 <     DEFAULT_SPLIT_USER_COUNT = 284,
240 <     DENY = 285,
241 <     DESCRIPTION = 286,
242 <     DIE = 287,
243 <     DISABLE_AUTH = 288,
244 <     DISABLE_FAKE_CHANNELS = 289,
245 <     DISABLE_HIDDEN = 290,
246 <     DISABLE_LOCAL_CHANNELS = 291,
247 <     DISABLE_REMOTE_COMMANDS = 292,
248 <     DOTS_IN_IDENT = 293,
249 <     DURATION = 294,
250 <     EGDPOOL_PATH = 295,
251 <     EMAIL = 296,
252 <     ENABLE = 297,
253 <     ENCRYPTED = 298,
254 <     EXCEED_LIMIT = 299,
255 <     EXEMPT = 300,
256 <     FAILED_OPER_NOTICE = 301,
257 <     IRCD_FLAGS = 302,
258 <     FLATTEN_LINKS = 303,
259 <     GECOS = 304,
260 <     GENERAL = 305,
261 <     GLINE = 306,
262 <     GLINES = 307,
263 <     GLINE_EXEMPT = 308,
264 <     GLINE_TIME = 309,
265 <     GLINE_MIN_CIDR = 310,
266 <     GLINE_MIN_CIDR6 = 311,
267 <     GLOBAL_KILL = 312,
268 <     IRCD_AUTH = 313,
269 <     NEED_IDENT = 314,
270 <     HAVENT_READ_CONF = 315,
271 <     HIDDEN = 316,
272 <     HIDDEN_NAME = 317,
273 <     HIDE_SERVER_IPS = 318,
274 <     HIDE_SERVERS = 319,
275 <     HIDE_SPOOF_IPS = 320,
276 <     HOST = 321,
277 <     HUB = 322,
278 <     HUB_MASK = 323,
279 <     IGNORE_BOGUS_TS = 324,
280 <     INVISIBLE_ON_CONNECT = 325,
281 <     IP = 326,
282 <     KILL = 327,
283 <     KILL_CHASE_TIME_LIMIT = 328,
284 <     KLINE = 329,
285 <     KLINE_EXEMPT = 330,
286 <     KLINE_REASON = 331,
287 <     KLINE_WITH_REASON = 332,
288 <     KNOCK_DELAY = 333,
289 <     KNOCK_DELAY_CHANNEL = 334,
290 <     LEAF_MASK = 335,
291 <     LINKS_DELAY = 336,
292 <     LISTEN = 337,
293 <     T_LOG = 338,
294 <     MAX_ACCEPT = 339,
295 <     MAX_BANS = 340,
296 <     MAX_CHANS_PER_USER = 341,
297 <     MAX_GLOBAL = 342,
298 <     MAX_IDENT = 343,
299 <     MAX_LOCAL = 344,
300 <     MAX_NICK_CHANGES = 345,
301 <     MAX_NICK_TIME = 346,
302 <     MAX_NUMBER = 347,
303 <     MAX_TARGETS = 348,
304 <     MAX_WATCH = 349,
305 <     MESSAGE_LOCALE = 350,
306 <     MIN_NONWILDCARD = 351,
307 <     MIN_NONWILDCARD_SIMPLE = 352,
308 <     MODULE = 353,
309 <     MODULES = 354,
310 <     NAME = 355,
311 <     NEED_PASSWORD = 356,
312 <     NETWORK_DESC = 357,
313 <     NETWORK_NAME = 358,
314 <     NICK = 359,
315 <     NICK_CHANGES = 360,
316 <     NO_CREATE_ON_SPLIT = 361,
317 <     NO_JOIN_ON_SPLIT = 362,
318 <     NO_OPER_FLOOD = 363,
319 <     NO_TILDE = 364,
320 <     NUMBER = 365,
321 <     NUMBER_PER_IDENT = 366,
322 <     NUMBER_PER_CIDR = 367,
323 <     NUMBER_PER_IP = 368,
324 <     NUMBER_PER_IP_GLOBAL = 369,
325 <     OPERATOR = 370,
326 <     OPERS_BYPASS_CALLERID = 371,
327 <     OPER_ONLY_UMODES = 372,
328 <     OPER_PASS_RESV = 373,
329 <     OPER_SPY_T = 374,
330 <     OPER_UMODES = 375,
331 <     JOIN_FLOOD_COUNT = 376,
332 <     JOIN_FLOOD_TIME = 377,
333 <     PACE_WAIT = 378,
334 <     PACE_WAIT_SIMPLE = 379,
335 <     PASSWORD = 380,
336 <     PATH = 381,
337 <     PING_COOKIE = 382,
338 <     PING_TIME = 383,
339 <     PING_WARNING = 384,
340 <     PORT = 385,
341 <     QSTRING = 386,
342 <     QUIET_ON_BAN = 387,
343 <     REASON = 388,
344 <     REDIRPORT = 389,
345 <     REDIRSERV = 390,
346 <     REGEX_T = 391,
347 <     REHASH = 392,
348 <     TREJECT_HOLD_TIME = 393,
349 <     REMOTE = 394,
350 <     REMOTEBAN = 395,
351 <     RESTRICT_CHANNELS = 396,
352 <     RESTRICTED = 397,
353 <     RSA_PRIVATE_KEY_FILE = 398,
354 <     RSA_PUBLIC_KEY_FILE = 399,
355 <     SSL_CERTIFICATE_FILE = 400,
356 <     SSL_DH_PARAM_FILE = 401,
357 <     T_SSL_CLIENT_METHOD = 402,
358 <     T_SSL_SERVER_METHOD = 403,
359 <     T_SSLV3 = 404,
360 <     T_TLSV1 = 405,
361 <     RESV = 406,
362 <     RESV_EXEMPT = 407,
363 <     SECONDS = 408,
364 <     MINUTES = 409,
365 <     HOURS = 410,
366 <     DAYS = 411,
367 <     WEEKS = 412,
368 <     SENDQ = 413,
369 <     SEND_PASSWORD = 414,
370 <     SERVERHIDE = 415,
371 <     SERVERINFO = 416,
372 <     IRCD_SID = 417,
373 <     TKLINE_EXPIRE_NOTICES = 418,
374 <     T_SHARED = 419,
375 <     T_CLUSTER = 420,
376 <     TYPE = 421,
377 <     SHORT_MOTD = 422,
378 <     SILENT = 423,
379 <     SPOOF = 424,
380 <     SPOOF_NOTICE = 425,
381 <     STATS_E_DISABLED = 426,
382 <     STATS_I_OPER_ONLY = 427,
383 <     STATS_K_OPER_ONLY = 428,
384 <     STATS_O_OPER_ONLY = 429,
385 <     STATS_P_OPER_ONLY = 430,
386 <     TBOOL = 431,
387 <     TMASKED = 432,
388 <     T_REJECT = 433,
389 <     TS_MAX_DELTA = 434,
390 <     TS_WARN_DELTA = 435,
391 <     TWODOTS = 436,
392 <     T_ALL = 437,
393 <     T_BOTS = 438,
394 <     T_SOFTCALLERID = 439,
395 <     T_CALLERID = 440,
396 <     T_CCONN = 441,
397 <     T_CCONN_FULL = 442,
398 <     T_SSL_CIPHER_LIST = 443,
399 <     T_CLIENT_FLOOD = 444,
400 <     T_DEAF = 445,
401 <     T_DEBUG = 446,
402 <     T_DLINE = 447,
403 <     T_DRONE = 448,
404 <     T_EXTERNAL = 449,
405 <     T_FULL = 450,
406 <     T_INVISIBLE = 451,
407 <     T_IPV4 = 452,
408 <     T_IPV6 = 453,
409 <     T_LOCOPS = 454,
410 <     T_MAX_CLIENTS = 455,
411 <     T_NCHANGE = 456,
412 <     T_OPERWALL = 457,
413 <     T_REJ = 458,
414 <     T_SERVER = 459,
415 <     T_SERVNOTICE = 460,
416 <     T_SKILL = 461,
417 <     T_SPY = 462,
418 <     T_SSL = 463,
419 <     T_UMODES = 464,
420 <     T_UNAUTH = 465,
421 <     T_UNDLINE = 466,
422 <     T_UNLIMITED = 467,
423 <     T_UNRESV = 468,
424 <     T_UNXLINE = 469,
420 <     T_GLOBOPS = 470,
421 <     T_WALLOP = 471,
422 <     T_RESTART = 472,
423 <     T_SERVICE = 473,
424 <     T_SERVICES_NAME = 474,
425 <     THROTTLE_TIME = 475,
426 <     TOPICBURST = 476,
427 <     TRUE_NO_OPER_FLOOD = 477,
428 <     TKLINE = 478,
429 <     TXLINE = 479,
430 <     TRESV = 480,
431 <     UNKLINE = 481,
432 <     USER = 482,
433 <     USE_EGD = 483,
434 <     USE_EXCEPT = 484,
435 <     USE_INVEX = 485,
436 <     USE_KNOCK = 486,
437 <     USE_LOGGING = 487,
438 <     USE_WHOIS_ACTUALLY = 488,
439 <     VHOST = 489,
440 <     VHOST6 = 490,
441 <     XLINE = 491,
442 <     WARN = 492,
443 <     WARN_NO_NLINE = 493,
444 <     T_SIZE = 494,
445 <     T_FILE = 495
214 >     ADMIN = 259,
215 >     AFTYPE = 260,
216 >     ANTI_NICK_FLOOD = 261,
217 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >     AUTOCONN = 263,
219 >     BYTES = 264,
220 >     KBYTES = 265,
221 >     MBYTES = 266,
222 >     CALLER_ID_WAIT = 267,
223 >     CAN_FLOOD = 268,
224 >     CHANNEL = 269,
225 >     CIDR_BITLEN_IPV4 = 270,
226 >     CIDR_BITLEN_IPV6 = 271,
227 >     CLASS = 272,
228 >     CONNECT = 273,
229 >     CONNECTFREQ = 274,
230 >     DEFAULT_FLOODCOUNT = 275,
231 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
232 >     DEFAULT_SPLIT_USER_COUNT = 277,
233 >     DENY = 278,
234 >     DESCRIPTION = 279,
235 >     DIE = 280,
236 >     DISABLE_AUTH = 281,
237 >     DISABLE_FAKE_CHANNELS = 282,
238 >     DISABLE_REMOTE_COMMANDS = 283,
239 >     DOTS_IN_IDENT = 284,
240 >     EGDPOOL_PATH = 285,
241 >     EMAIL = 286,
242 >     ENCRYPTED = 287,
243 >     EXCEED_LIMIT = 288,
244 >     EXEMPT = 289,
245 >     FAILED_OPER_NOTICE = 290,
246 >     IRCD_FLAGS = 291,
247 >     FLATTEN_LINKS = 292,
248 >     GECOS = 293,
249 >     GENERAL = 294,
250 >     GLINE = 295,
251 >     GLINE_DURATION = 296,
252 >     GLINE_ENABLE = 297,
253 >     GLINE_EXEMPT = 298,
254 >     GLINE_REQUEST_DURATION = 299,
255 >     GLINE_MIN_CIDR = 300,
256 >     GLINE_MIN_CIDR6 = 301,
257 >     GLOBAL_KILL = 302,
258 >     IRCD_AUTH = 303,
259 >     NEED_IDENT = 304,
260 >     HAVENT_READ_CONF = 305,
261 >     HIDDEN = 306,
262 >     HIDDEN_NAME = 307,
263 >     HIDE_SERVER_IPS = 308,
264 >     HIDE_SERVERS = 309,
265 >     HIDE_SPOOF_IPS = 310,
266 >     HOST = 311,
267 >     HUB = 312,
268 >     HUB_MASK = 313,
269 >     IGNORE_BOGUS_TS = 314,
270 >     INVISIBLE_ON_CONNECT = 315,
271 >     IP = 316,
272 >     KILL = 317,
273 >     KILL_CHASE_TIME_LIMIT = 318,
274 >     KLINE = 319,
275 >     KLINE_EXEMPT = 320,
276 >     KNOCK_DELAY = 321,
277 >     KNOCK_DELAY_CHANNEL = 322,
278 >     LEAF_MASK = 323,
279 >     LINKS_DELAY = 324,
280 >     LISTEN = 325,
281 >     T_LOG = 326,
282 >     MAX_ACCEPT = 327,
283 >     MAX_BANS = 328,
284 >     MAX_CHANS_PER_OPER = 329,
285 >     MAX_CHANS_PER_USER = 330,
286 >     MAX_GLOBAL = 331,
287 >     MAX_IDENT = 332,
288 >     MAX_LOCAL = 333,
289 >     MAX_NICK_CHANGES = 334,
290 >     MAX_NICK_TIME = 335,
291 >     MAX_NUMBER = 336,
292 >     MAX_TARGETS = 337,
293 >     MAX_WATCH = 338,
294 >     MESSAGE_LOCALE = 339,
295 >     MIN_NONWILDCARD = 340,
296 >     MIN_NONWILDCARD_SIMPLE = 341,
297 >     MODULE = 342,
298 >     MODULES = 343,
299 >     NAME = 344,
300 >     NEED_PASSWORD = 345,
301 >     NETWORK_DESC = 346,
302 >     NETWORK_NAME = 347,
303 >     NICK = 348,
304 >     NICK_CHANGES = 349,
305 >     NO_CREATE_ON_SPLIT = 350,
306 >     NO_JOIN_ON_SPLIT = 351,
307 >     NO_OPER_FLOOD = 352,
308 >     NO_TILDE = 353,
309 >     NUMBER = 354,
310 >     NUMBER_PER_CIDR = 355,
311 >     NUMBER_PER_IP = 356,
312 >     OPERATOR = 357,
313 >     OPERS_BYPASS_CALLERID = 358,
314 >     OPER_ONLY_UMODES = 359,
315 >     OPER_PASS_RESV = 360,
316 >     OPER_SPY_T = 361,
317 >     OPER_UMODES = 362,
318 >     JOIN_FLOOD_COUNT = 363,
319 >     JOIN_FLOOD_TIME = 364,
320 >     PACE_WAIT = 365,
321 >     PACE_WAIT_SIMPLE = 366,
322 >     PASSWORD = 367,
323 >     PATH = 368,
324 >     PING_COOKIE = 369,
325 >     PING_TIME = 370,
326 >     PORT = 371,
327 >     QSTRING = 372,
328 >     QUIET_ON_BAN = 373,
329 >     REASON = 374,
330 >     REDIRPORT = 375,
331 >     REDIRSERV = 376,
332 >     REGEX_T = 377,
333 >     REHASH = 378,
334 >     REMOTE = 379,
335 >     REMOTEBAN = 380,
336 >     RESTRICT_CHANNELS = 381,
337 >     RSA_PRIVATE_KEY_FILE = 382,
338 >     RSA_PUBLIC_KEY_FILE = 383,
339 >     SSL_CERTIFICATE_FILE = 384,
340 >     SSL_DH_PARAM_FILE = 385,
341 >     T_SSL_CLIENT_METHOD = 386,
342 >     T_SSL_SERVER_METHOD = 387,
343 >     T_SSLV3 = 388,
344 >     T_TLSV1 = 389,
345 >     RESV = 390,
346 >     RESV_EXEMPT = 391,
347 >     SECONDS = 392,
348 >     MINUTES = 393,
349 >     HOURS = 394,
350 >     DAYS = 395,
351 >     WEEKS = 396,
352 >     SENDQ = 397,
353 >     SEND_PASSWORD = 398,
354 >     SERVERHIDE = 399,
355 >     SERVERINFO = 400,
356 >     IRCD_SID = 401,
357 >     TKLINE_EXPIRE_NOTICES = 402,
358 >     T_SHARED = 403,
359 >     T_CLUSTER = 404,
360 >     TYPE = 405,
361 >     SHORT_MOTD = 406,
362 >     SPOOF = 407,
363 >     SPOOF_NOTICE = 408,
364 >     STATS_E_DISABLED = 409,
365 >     STATS_I_OPER_ONLY = 410,
366 >     STATS_K_OPER_ONLY = 411,
367 >     STATS_O_OPER_ONLY = 412,
368 >     STATS_P_OPER_ONLY = 413,
369 >     TBOOL = 414,
370 >     TMASKED = 415,
371 >     TS_MAX_DELTA = 416,
372 >     TS_WARN_DELTA = 417,
373 >     TWODOTS = 418,
374 >     T_ALL = 419,
375 >     T_BOTS = 420,
376 >     T_SOFTCALLERID = 421,
377 >     T_CALLERID = 422,
378 >     T_CCONN = 423,
379 >     T_CCONN_FULL = 424,
380 >     T_SSL_CIPHER_LIST = 425,
381 >     T_DEAF = 426,
382 >     T_DEBUG = 427,
383 >     T_DLINE = 428,
384 >     T_EXTERNAL = 429,
385 >     T_FULL = 430,
386 >     T_INVISIBLE = 431,
387 >     T_IPV4 = 432,
388 >     T_IPV6 = 433,
389 >     T_LOCOPS = 434,
390 >     T_MAX_CLIENTS = 435,
391 >     T_NCHANGE = 436,
392 >     T_OPERWALL = 437,
393 >     T_RECVQ = 438,
394 >     T_REJ = 439,
395 >     T_SERVER = 440,
396 >     T_SERVNOTICE = 441,
397 >     T_SET = 442,
398 >     T_SKILL = 443,
399 >     T_SPY = 444,
400 >     T_SSL = 445,
401 >     T_UMODES = 446,
402 >     T_UNAUTH = 447,
403 >     T_UNDLINE = 448,
404 >     T_UNLIMITED = 449,
405 >     T_UNRESV = 450,
406 >     T_UNXLINE = 451,
407 >     T_GLOBOPS = 452,
408 >     T_WALLOP = 453,
409 >     T_WEBIRC = 454,
410 >     T_RESTART = 455,
411 >     T_SERVICE = 456,
412 >     T_SERVICES_NAME = 457,
413 >     THROTTLE_TIME = 458,
414 >     TRUE_NO_OPER_FLOOD = 459,
415 >     UNKLINE = 460,
416 >     USER = 461,
417 >     USE_EGD = 462,
418 >     USE_LOGGING = 463,
419 >     VHOST = 464,
420 >     VHOST6 = 465,
421 >     XLINE = 466,
422 >     WARN_NO_NLINE = 467,
423 >     T_SIZE = 468,
424 >     T_FILE = 469
425     };
426   #endif
427   /* Tokens.  */
428   #define ACCEPT_PASSWORD 258
429 < #define ACTION 259
430 < #define ADMIN 260
431 < #define AFTYPE 261
432 < #define T_ALLOW 262
433 < #define ANTI_NICK_FLOOD 263
434 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
435 < #define AUTOCONN 265
436 < #define T_BLOCK 266
437 < #define BURST_AWAY 267
438 < #define BURST_TOPICWHO 268
439 < #define BYTES 269
440 < #define KBYTES 270
441 < #define MBYTES 271
442 < #define GBYTES 272
443 < #define TBYTES 273
444 < #define CALLER_ID_WAIT 274
445 < #define CAN_FLOOD 275
446 < #define CHANNEL 276
447 < #define CIDR_BITLEN_IPV4 277
448 < #define CIDR_BITLEN_IPV6 278
449 < #define CLASS 279
450 < #define CONNECT 280
451 < #define CONNECTFREQ 281
452 < #define DEFAULT_FLOODCOUNT 282
453 < #define DEFAULT_SPLIT_SERVER_COUNT 283
454 < #define DEFAULT_SPLIT_USER_COUNT 284
455 < #define DENY 285
456 < #define DESCRIPTION 286
457 < #define DIE 287
458 < #define DISABLE_AUTH 288
459 < #define DISABLE_FAKE_CHANNELS 289
460 < #define DISABLE_HIDDEN 290
461 < #define DISABLE_LOCAL_CHANNELS 291
462 < #define DISABLE_REMOTE_COMMANDS 292
463 < #define DOTS_IN_IDENT 293
464 < #define DURATION 294
465 < #define EGDPOOL_PATH 295
466 < #define EMAIL 296
467 < #define ENABLE 297
468 < #define ENCRYPTED 298
469 < #define EXCEED_LIMIT 299
470 < #define EXEMPT 300
471 < #define FAILED_OPER_NOTICE 301
472 < #define IRCD_FLAGS 302
473 < #define FLATTEN_LINKS 303
474 < #define GECOS 304
475 < #define GENERAL 305
476 < #define GLINE 306
477 < #define GLINES 307
478 < #define GLINE_EXEMPT 308
479 < #define GLINE_TIME 309
480 < #define GLINE_MIN_CIDR 310
481 < #define GLINE_MIN_CIDR6 311
482 < #define GLOBAL_KILL 312
483 < #define IRCD_AUTH 313
484 < #define NEED_IDENT 314
485 < #define HAVENT_READ_CONF 315
486 < #define HIDDEN 316
487 < #define HIDDEN_NAME 317
488 < #define HIDE_SERVER_IPS 318
489 < #define HIDE_SERVERS 319
490 < #define HIDE_SPOOF_IPS 320
491 < #define HOST 321
492 < #define HUB 322
493 < #define HUB_MASK 323
494 < #define IGNORE_BOGUS_TS 324
495 < #define INVISIBLE_ON_CONNECT 325
496 < #define IP 326
497 < #define KILL 327
498 < #define KILL_CHASE_TIME_LIMIT 328
499 < #define KLINE 329
500 < #define KLINE_EXEMPT 330
501 < #define KLINE_REASON 331
502 < #define KLINE_WITH_REASON 332
503 < #define KNOCK_DELAY 333
504 < #define KNOCK_DELAY_CHANNEL 334
505 < #define LEAF_MASK 335
506 < #define LINKS_DELAY 336
507 < #define LISTEN 337
508 < #define T_LOG 338
509 < #define MAX_ACCEPT 339
510 < #define MAX_BANS 340
511 < #define MAX_CHANS_PER_USER 341
512 < #define MAX_GLOBAL 342
513 < #define MAX_IDENT 343
514 < #define MAX_LOCAL 344
515 < #define MAX_NICK_CHANGES 345
516 < #define MAX_NICK_TIME 346
517 < #define MAX_NUMBER 347
518 < #define MAX_TARGETS 348
519 < #define MAX_WATCH 349
520 < #define MESSAGE_LOCALE 350
521 < #define MIN_NONWILDCARD 351
522 < #define MIN_NONWILDCARD_SIMPLE 352
523 < #define MODULE 353
524 < #define MODULES 354
525 < #define NAME 355
526 < #define NEED_PASSWORD 356
527 < #define NETWORK_DESC 357
528 < #define NETWORK_NAME 358
529 < #define NICK 359
530 < #define NICK_CHANGES 360
531 < #define NO_CREATE_ON_SPLIT 361
532 < #define NO_JOIN_ON_SPLIT 362
533 < #define NO_OPER_FLOOD 363
534 < #define NO_TILDE 364
535 < #define NUMBER 365
536 < #define NUMBER_PER_IDENT 366
537 < #define NUMBER_PER_CIDR 367
538 < #define NUMBER_PER_IP 368
539 < #define NUMBER_PER_IP_GLOBAL 369
540 < #define OPERATOR 370
541 < #define OPERS_BYPASS_CALLERID 371
542 < #define OPER_ONLY_UMODES 372
543 < #define OPER_PASS_RESV 373
544 < #define OPER_SPY_T 374
545 < #define OPER_UMODES 375
546 < #define JOIN_FLOOD_COUNT 376
547 < #define JOIN_FLOOD_TIME 377
548 < #define PACE_WAIT 378
549 < #define PACE_WAIT_SIMPLE 379
550 < #define PASSWORD 380
551 < #define PATH 381
552 < #define PING_COOKIE 382
553 < #define PING_TIME 383
554 < #define PING_WARNING 384
555 < #define PORT 385
556 < #define QSTRING 386
557 < #define QUIET_ON_BAN 387
558 < #define REASON 388
559 < #define REDIRPORT 389
560 < #define REDIRSERV 390
561 < #define REGEX_T 391
562 < #define REHASH 392
563 < #define TREJECT_HOLD_TIME 393
564 < #define REMOTE 394
565 < #define REMOTEBAN 395
566 < #define RESTRICT_CHANNELS 396
567 < #define RESTRICTED 397
568 < #define RSA_PRIVATE_KEY_FILE 398
569 < #define RSA_PUBLIC_KEY_FILE 399
570 < #define SSL_CERTIFICATE_FILE 400
571 < #define SSL_DH_PARAM_FILE 401
572 < #define T_SSL_CLIENT_METHOD 402
573 < #define T_SSL_SERVER_METHOD 403
574 < #define T_SSLV3 404
575 < #define T_TLSV1 405
576 < #define RESV 406
577 < #define RESV_EXEMPT 407
578 < #define SECONDS 408
579 < #define MINUTES 409
580 < #define HOURS 410
581 < #define DAYS 411
582 < #define WEEKS 412
583 < #define SENDQ 413
584 < #define SEND_PASSWORD 414
585 < #define SERVERHIDE 415
586 < #define SERVERINFO 416
587 < #define IRCD_SID 417
588 < #define TKLINE_EXPIRE_NOTICES 418
589 < #define T_SHARED 419
590 < #define T_CLUSTER 420
591 < #define TYPE 421
592 < #define SHORT_MOTD 422
593 < #define SILENT 423
594 < #define SPOOF 424
595 < #define SPOOF_NOTICE 425
596 < #define STATS_E_DISABLED 426
597 < #define STATS_I_OPER_ONLY 427
598 < #define STATS_K_OPER_ONLY 428
599 < #define STATS_O_OPER_ONLY 429
600 < #define STATS_P_OPER_ONLY 430
601 < #define TBOOL 431
602 < #define TMASKED 432
603 < #define T_REJECT 433
604 < #define TS_MAX_DELTA 434
605 < #define TS_WARN_DELTA 435
606 < #define TWODOTS 436
607 < #define T_ALL 437
608 < #define T_BOTS 438
609 < #define T_SOFTCALLERID 439
610 < #define T_CALLERID 440
611 < #define T_CCONN 441
612 < #define T_CCONN_FULL 442
613 < #define T_SSL_CIPHER_LIST 443
614 < #define T_CLIENT_FLOOD 444
615 < #define T_DEAF 445
616 < #define T_DEBUG 446
617 < #define T_DLINE 447
618 < #define T_DRONE 448
619 < #define T_EXTERNAL 449
620 < #define T_FULL 450
621 < #define T_INVISIBLE 451
622 < #define T_IPV4 452
623 < #define T_IPV6 453
624 < #define T_LOCOPS 454
625 < #define T_MAX_CLIENTS 455
626 < #define T_NCHANGE 456
627 < #define T_OPERWALL 457
628 < #define T_REJ 458
629 < #define T_SERVER 459
630 < #define T_SERVNOTICE 460
631 < #define T_SKILL 461
632 < #define T_SPY 462
633 < #define T_SSL 463
634 < #define T_UMODES 464
635 < #define T_UNAUTH 465
636 < #define T_UNDLINE 466
637 < #define T_UNLIMITED 467
638 < #define T_UNRESV 468
639 < #define T_UNXLINE 469
661 < #define T_GLOBOPS 470
662 < #define T_WALLOP 471
663 < #define T_RESTART 472
664 < #define T_SERVICE 473
665 < #define T_SERVICES_NAME 474
666 < #define THROTTLE_TIME 475
667 < #define TOPICBURST 476
668 < #define TRUE_NO_OPER_FLOOD 477
669 < #define TKLINE 478
670 < #define TXLINE 479
671 < #define TRESV 480
672 < #define UNKLINE 481
673 < #define USER 482
674 < #define USE_EGD 483
675 < #define USE_EXCEPT 484
676 < #define USE_INVEX 485
677 < #define USE_KNOCK 486
678 < #define USE_LOGGING 487
679 < #define USE_WHOIS_ACTUALLY 488
680 < #define VHOST 489
681 < #define VHOST6 490
682 < #define XLINE 491
683 < #define WARN 492
684 < #define WARN_NO_NLINE 493
685 < #define T_SIZE 494
686 < #define T_FILE 495
687 <
429 > #define ADMIN 259
430 > #define AFTYPE 260
431 > #define ANTI_NICK_FLOOD 261
432 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
433 > #define AUTOCONN 263
434 > #define BYTES 264
435 > #define KBYTES 265
436 > #define MBYTES 266
437 > #define CALLER_ID_WAIT 267
438 > #define CAN_FLOOD 268
439 > #define CHANNEL 269
440 > #define CIDR_BITLEN_IPV4 270
441 > #define CIDR_BITLEN_IPV6 271
442 > #define CLASS 272
443 > #define CONNECT 273
444 > #define CONNECTFREQ 274
445 > #define DEFAULT_FLOODCOUNT 275
446 > #define DEFAULT_SPLIT_SERVER_COUNT 276
447 > #define DEFAULT_SPLIT_USER_COUNT 277
448 > #define DENY 278
449 > #define DESCRIPTION 279
450 > #define DIE 280
451 > #define DISABLE_AUTH 281
452 > #define DISABLE_FAKE_CHANNELS 282
453 > #define DISABLE_REMOTE_COMMANDS 283
454 > #define DOTS_IN_IDENT 284
455 > #define EGDPOOL_PATH 285
456 > #define EMAIL 286
457 > #define ENCRYPTED 287
458 > #define EXCEED_LIMIT 288
459 > #define EXEMPT 289
460 > #define FAILED_OPER_NOTICE 290
461 > #define IRCD_FLAGS 291
462 > #define FLATTEN_LINKS 292
463 > #define GECOS 293
464 > #define GENERAL 294
465 > #define GLINE 295
466 > #define GLINE_DURATION 296
467 > #define GLINE_ENABLE 297
468 > #define GLINE_EXEMPT 298
469 > #define GLINE_REQUEST_DURATION 299
470 > #define GLINE_MIN_CIDR 300
471 > #define GLINE_MIN_CIDR6 301
472 > #define GLOBAL_KILL 302
473 > #define IRCD_AUTH 303
474 > #define NEED_IDENT 304
475 > #define HAVENT_READ_CONF 305
476 > #define HIDDEN 306
477 > #define HIDDEN_NAME 307
478 > #define HIDE_SERVER_IPS 308
479 > #define HIDE_SERVERS 309
480 > #define HIDE_SPOOF_IPS 310
481 > #define HOST 311
482 > #define HUB 312
483 > #define HUB_MASK 313
484 > #define IGNORE_BOGUS_TS 314
485 > #define INVISIBLE_ON_CONNECT 315
486 > #define IP 316
487 > #define KILL 317
488 > #define KILL_CHASE_TIME_LIMIT 318
489 > #define KLINE 319
490 > #define KLINE_EXEMPT 320
491 > #define KNOCK_DELAY 321
492 > #define KNOCK_DELAY_CHANNEL 322
493 > #define LEAF_MASK 323
494 > #define LINKS_DELAY 324
495 > #define LISTEN 325
496 > #define T_LOG 326
497 > #define MAX_ACCEPT 327
498 > #define MAX_BANS 328
499 > #define MAX_CHANS_PER_OPER 329
500 > #define MAX_CHANS_PER_USER 330
501 > #define MAX_GLOBAL 331
502 > #define MAX_IDENT 332
503 > #define MAX_LOCAL 333
504 > #define MAX_NICK_CHANGES 334
505 > #define MAX_NICK_TIME 335
506 > #define MAX_NUMBER 336
507 > #define MAX_TARGETS 337
508 > #define MAX_WATCH 338
509 > #define MESSAGE_LOCALE 339
510 > #define MIN_NONWILDCARD 340
511 > #define MIN_NONWILDCARD_SIMPLE 341
512 > #define MODULE 342
513 > #define MODULES 343
514 > #define NAME 344
515 > #define NEED_PASSWORD 345
516 > #define NETWORK_DESC 346
517 > #define NETWORK_NAME 347
518 > #define NICK 348
519 > #define NICK_CHANGES 349
520 > #define NO_CREATE_ON_SPLIT 350
521 > #define NO_JOIN_ON_SPLIT 351
522 > #define NO_OPER_FLOOD 352
523 > #define NO_TILDE 353
524 > #define NUMBER 354
525 > #define NUMBER_PER_CIDR 355
526 > #define NUMBER_PER_IP 356
527 > #define OPERATOR 357
528 > #define OPERS_BYPASS_CALLERID 358
529 > #define OPER_ONLY_UMODES 359
530 > #define OPER_PASS_RESV 360
531 > #define OPER_SPY_T 361
532 > #define OPER_UMODES 362
533 > #define JOIN_FLOOD_COUNT 363
534 > #define JOIN_FLOOD_TIME 364
535 > #define PACE_WAIT 365
536 > #define PACE_WAIT_SIMPLE 366
537 > #define PASSWORD 367
538 > #define PATH 368
539 > #define PING_COOKIE 369
540 > #define PING_TIME 370
541 > #define PORT 371
542 > #define QSTRING 372
543 > #define QUIET_ON_BAN 373
544 > #define REASON 374
545 > #define REDIRPORT 375
546 > #define REDIRSERV 376
547 > #define REGEX_T 377
548 > #define REHASH 378
549 > #define REMOTE 379
550 > #define REMOTEBAN 380
551 > #define RESTRICT_CHANNELS 381
552 > #define RSA_PRIVATE_KEY_FILE 382
553 > #define RSA_PUBLIC_KEY_FILE 383
554 > #define SSL_CERTIFICATE_FILE 384
555 > #define SSL_DH_PARAM_FILE 385
556 > #define T_SSL_CLIENT_METHOD 386
557 > #define T_SSL_SERVER_METHOD 387
558 > #define T_SSLV3 388
559 > #define T_TLSV1 389
560 > #define RESV 390
561 > #define RESV_EXEMPT 391
562 > #define SECONDS 392
563 > #define MINUTES 393
564 > #define HOURS 394
565 > #define DAYS 395
566 > #define WEEKS 396
567 > #define SENDQ 397
568 > #define SEND_PASSWORD 398
569 > #define SERVERHIDE 399
570 > #define SERVERINFO 400
571 > #define IRCD_SID 401
572 > #define TKLINE_EXPIRE_NOTICES 402
573 > #define T_SHARED 403
574 > #define T_CLUSTER 404
575 > #define TYPE 405
576 > #define SHORT_MOTD 406
577 > #define SPOOF 407
578 > #define SPOOF_NOTICE 408
579 > #define STATS_E_DISABLED 409
580 > #define STATS_I_OPER_ONLY 410
581 > #define STATS_K_OPER_ONLY 411
582 > #define STATS_O_OPER_ONLY 412
583 > #define STATS_P_OPER_ONLY 413
584 > #define TBOOL 414
585 > #define TMASKED 415
586 > #define TS_MAX_DELTA 416
587 > #define TS_WARN_DELTA 417
588 > #define TWODOTS 418
589 > #define T_ALL 419
590 > #define T_BOTS 420
591 > #define T_SOFTCALLERID 421
592 > #define T_CALLERID 422
593 > #define T_CCONN 423
594 > #define T_CCONN_FULL 424
595 > #define T_SSL_CIPHER_LIST 425
596 > #define T_DEAF 426
597 > #define T_DEBUG 427
598 > #define T_DLINE 428
599 > #define T_EXTERNAL 429
600 > #define T_FULL 430
601 > #define T_INVISIBLE 431
602 > #define T_IPV4 432
603 > #define T_IPV6 433
604 > #define T_LOCOPS 434
605 > #define T_MAX_CLIENTS 435
606 > #define T_NCHANGE 436
607 > #define T_OPERWALL 437
608 > #define T_RECVQ 438
609 > #define T_REJ 439
610 > #define T_SERVER 440
611 > #define T_SERVNOTICE 441
612 > #define T_SET 442
613 > #define T_SKILL 443
614 > #define T_SPY 444
615 > #define T_SSL 445
616 > #define T_UMODES 446
617 > #define T_UNAUTH 447
618 > #define T_UNDLINE 448
619 > #define T_UNLIMITED 449
620 > #define T_UNRESV 450
621 > #define T_UNXLINE 451
622 > #define T_GLOBOPS 452
623 > #define T_WALLOP 453
624 > #define T_WEBIRC 454
625 > #define T_RESTART 455
626 > #define T_SERVICE 456
627 > #define T_SERVICES_NAME 457
628 > #define THROTTLE_TIME 458
629 > #define TRUE_NO_OPER_FLOOD 459
630 > #define UNKLINE 460
631 > #define USER 461
632 > #define USE_EGD 462
633 > #define USE_LOGGING 463
634 > #define VHOST 464
635 > #define VHOST6 465
636 > #define XLINE 466
637 > #define WARN_NO_NLINE 467
638 > #define T_SIZE 468
639 > #define T_FILE 469
640  
641  
642  
643   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
644   typedef union YYSTYPE
645   {
646 <
695 < /* Line 293 of yacc.c  */
646 > /* Line 387 of yacc.c  */
647   #line 135 "conf_parser.y"
648  
649    int number;
650    char *string;
651  
652  
653 <
654 < /* Line 293 of yacc.c  */
704 < #line 705 "conf_parser.c"
653 > /* Line 387 of yacc.c  */
654 > #line 655 "conf_parser.c"
655   } YYSTYPE;
656   # define YYSTYPE_IS_TRIVIAL 1
657   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
658   # define YYSTYPE_IS_DECLARED 1
659   #endif
660  
661 + extern YYSTYPE yylval;
662  
663 < /* Copy the second part of user declarations.  */
663 > #ifdef YYPARSE_PARAM
664 > #if defined __STDC__ || defined __cplusplus
665 > int yyparse (void *YYPARSE_PARAM);
666 > #else
667 > int yyparse ();
668 > #endif
669 > #else /* ! YYPARSE_PARAM */
670 > #if defined __STDC__ || defined __cplusplus
671 > int yyparse (void);
672 > #else
673 > int yyparse ();
674 > #endif
675 > #endif /* ! YYPARSE_PARAM */
676 >
677 > #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
678  
679 + /* Copy the second part of user declarations.  */
680  
681 < /* Line 343 of yacc.c  */
682 < #line 717 "conf_parser.c"
681 > /* Line 390 of yacc.c  */
682 > #line 683 "conf_parser.c"
683  
684   #ifdef short
685   # undef short
# Line 766 | Line 732 | typedef short int yytype_int16;
732   # if defined YYENABLE_NLS && YYENABLE_NLS
733   #  if ENABLE_NLS
734   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
735 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
735 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
736   #  endif
737   # endif
738   # ifndef YY_
739 < #  define YY_(msgid) msgid
739 > #  define YY_(Msgid) Msgid
740   # endif
741   #endif
742  
743   /* Suppress unused-variable warnings by "using" E.  */
744   #if ! defined lint || defined __GNUC__
745 < # define YYUSE(e) ((void) (e))
745 > # define YYUSE(E) ((void) (E))
746   #else
747 < # define YYUSE(e) /* empty */
747 > # define YYUSE(E) /* empty */
748   #endif
749  
750   /* Identity function, used to suppress warnings about constant conditions.  */
751   #ifndef lint
752 < # define YYID(n) (n)
752 > # define YYID(N) (N)
753   #else
754   #if (defined __STDC__ || defined __C99__FUNC__ \
755       || defined __cplusplus || defined _MSC_VER)
# Line 819 | Line 785 | YYID (yyi)
785   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
786       || defined __cplusplus || defined _MSC_VER)
787   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
788 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
789   #     ifndef EXIT_SUCCESS
790   #      define EXIT_SUCCESS 0
791   #     endif
# Line 910 | Line 877 | union yyalloc
877   #endif
878  
879   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
880 < /* Copy COUNT objects from FROM to TO.  The source and destination do
880 > /* Copy COUNT objects from SRC to DST.  The source and destination do
881     not overlap.  */
882   # ifndef YYCOPY
883   #  if defined __GNUC__ && 1 < __GNUC__
884 < #   define YYCOPY(To, From, Count) \
885 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
884 > #   define YYCOPY(Dst, Src, Count) \
885 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
886   #  else
887 < #   define YYCOPY(To, From, Count)              \
888 <      do                                        \
889 <        {                                       \
890 <          YYSIZE_T yyi;                         \
891 <          for (yyi = 0; yyi < (Count); yyi++)   \
892 <            (To)[yyi] = (From)[yyi];            \
893 <        }                                       \
887 > #   define YYCOPY(Dst, Src, Count)              \
888 >      do                                        \
889 >        {                                       \
890 >          YYSIZE_T yyi;                         \
891 >          for (yyi = 0; yyi < (Count); yyi++)   \
892 >            (Dst)[yyi] = (Src)[yyi];            \
893 >        }                                       \
894        while (YYID (0))
895   #  endif
896   # endif
# Line 932 | Line 899 | union yyalloc
899   /* YYFINAL -- State number of the termination state.  */
900   #define YYFINAL  2
901   /* YYLAST -- Last index in YYTABLE.  */
902 < #define YYLAST   1267
902 > #define YYLAST   1132
903  
904   /* YYNTOKENS -- Number of terminals.  */
905 < #define YYNTOKENS  246
905 > #define YYNTOKENS  220
906   /* YYNNTS -- Number of nonterminals.  */
907 < #define YYNNTS  305
907 > #define YYNNTS  282
908   /* YYNRULES -- Number of rules.  */
909 < #define YYNRULES  668
909 > #define YYNRULES  626
910   /* YYNRULES -- Number of states.  */
911 < #define YYNSTATES  1311
911 > #define YYNSTATES  1224
912  
913   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
914   #define YYUNDEFTOK  2
915 < #define YYMAXUTOK   495
915 > #define YYMAXUTOK   469
916  
917   #define YYTRANSLATE(YYX)                                                \
918    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 957 | Line 924 | static const yytype_uint8 yytranslate[]
924         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
925         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
926         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
927 <       2,     2,     2,     2,   245,     2,     2,     2,     2,     2,
928 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
929 <       2,   244,     2,     2,     2,     2,     2,     2,     2,     2,
927 >       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
928 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
929 >       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
930         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
931         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
932         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
933         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935 <       2,     2,     2,   243,     2,   242,     2,     2,     2,     2,
935 >       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
937         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
938         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 999 | Line 966 | static const yytype_uint8 yytranslate[]
966       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
967       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
968       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
969 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1003 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1004 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1005 <     235,   236,   237,   238,   239,   240
969 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
970   };
971  
972   #if YYDEBUG
# Line 1012 | Line 976 | static const yytype_uint16 yyprhs[] =
976   {
977         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
978        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
979 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
980 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
981 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
982 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 <     154,   156,   158,   160,   162,   164,   166,   168,   171,   176,
984 <     181,   185,   187,   189,   191,   195,   197,   199,   201,   206,
985 <     211,   216,   221,   226,   231,   236,   241,   246,   251,   256,
986 <     261,   266,   272,   275,   277,   279,   281,   283,   286,   291,
987 <     296,   301,   307,   310,   312,   314,   316,   319,   324,   325,
988 <     332,   335,   337,   339,   341,   343,   346,   351,   356,   361,
989 <     362,   368,   372,   374,   376,   378,   380,   382,   384,   386,
990 <     388,   389,   396,   399,   401,   403,   405,   407,   409,   411,
991 <     413,   415,   417,   420,   425,   430,   435,   440,   445,   450,
992 <     451,   457,   461,   463,   465,   467,   469,   471,   473,   475,
979 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
980 >      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
981 >      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
982 >     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
983 >     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
984 >     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
985 >     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
986 >     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
987 >     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
988 >     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
989 >     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
990 >     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
991 >     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
992 >     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
993       477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
994 <     497,   499,   501,   503,   504,   510,   514,   516,   518,   520,
994 >     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
995       522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
996       542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
997       567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
# Line 1038 | Line 1002 | static const yytype_uint16 yyprhs[] =
1002       731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1003       756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1004       794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1005 <     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1006 <     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1007 <     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1008 <     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1009 <     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1010 <     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1011 <     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1005 >     814,   816,   821,   826,   831,   832,   839,   842,   844,   846,
1006 >     848,   850,   853,   858,   863,   868,   874,   877,   879,   881,
1007 >     883,   888,   889,   896,   899,   901,   903,   905,   907,   910,
1008 >     915,   920,   921,   927,   931,   933,   935,   937,   939,   941,
1009 >     943,   945,   947,   949,   951,   953,   954,   961,   964,   966,
1010 >     968,   970,   973,   978,   979,   985,   989,   991,   993,   995,
1011 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1011,  1012,  1019,
1012      1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1013 <    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1014 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1015 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1016 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1017 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1018 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1019 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1020 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1013 >    1042,  1044,  1046,  1048,  1050,  1053,  1058,  1063,  1068,  1073,
1014 >    1078,  1083,  1088,  1093,  1094,  1100,  1104,  1106,  1108,  1110,
1015 >    1115,  1120,  1125,  1130,  1135,  1136,  1143,  1144,  1150,  1154,
1016 >    1156,  1158,  1161,  1163,  1165,  1167,  1169,  1171,  1176,  1181,
1017 >    1182,  1189,  1192,  1194,  1196,  1198,  1200,  1205,  1210,  1216,
1018 >    1219,  1221,  1223,  1225,  1230,  1231,  1238,  1239,  1245,  1249,
1019 >    1251,  1253,  1256,  1258,  1260,  1262,  1264,  1266,  1271,  1276,
1020 >    1282,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1021      1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1022      1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1023      1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1024      1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1025 <    1383,  1385,  1387,  1389,  1391,  1393,  1398,  1403,  1408,  1413,
1026 <    1418,  1423,  1428,  1433,  1438,  1443,  1448,  1453,  1458,  1463,
1027 <    1468,  1473,  1478,  1483,  1488,  1493,  1498,  1503,  1508,  1513,
1028 <    1518,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
1029 <    1568,  1573,  1578,  1583,  1588,  1593,  1598,  1603,  1608,  1613,
1030 <    1618,  1623,  1628,  1629,  1635,  1639,  1641,  1643,  1645,  1647,
1031 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1032 <    1669,  1671,  1673,  1675,  1677,  1679,  1681,  1682,  1688,  1692,
1033 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1034 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,
1035 <    1734,  1739,  1744,  1749,  1754,  1755,  1762,  1765,  1767,  1769,
1036 <    1771,  1773,  1775,  1777,  1779,  1781,  1786,  1791,  1792,  1798,
1037 <    1802,  1804,  1806,  1808,  1813,  1818,  1819,  1825,  1829,  1831,
1038 <    1833,  1835,  1841,  1844,  1846,  1848,  1850,  1852,  1854,  1856,
1039 <    1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,
1076 <    1878,  1880,  1882,  1884,  1889,  1894,  1899,  1904,  1909,  1914,
1077 <    1919,  1924,  1929,  1934,  1939,  1944,  1949,  1954,  1959,  1964,
1078 <    1969,  1974,  1980,  1983,  1985,  1987,  1989,  1991,  1993,  1995,
1079 <    1997,  1999,  2001,  2006,  2011,  2016,  2021,  2026,  2031
1025 >    1383,  1385,  1387,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1026 >    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1027 >    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1028 >    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1029 >    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1618,
1030 >    1624,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1031 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1032 >    1666,  1668,  1670,  1671,  1677,  1681,  1683,  1685,  1687,  1689,
1033 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1034 >    1711,  1713,  1715,  1717,  1719,  1721,  1723,  1728,  1733,  1738,
1035 >    1744,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1036 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1779,  1784,  1789,
1037 >    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1038 >    1844,  1849,  1855,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1039 >    1872,  1874,  1879,  1884,  1889,  1894,  1899
1040   };
1041  
1042   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1043   static const yytype_int16 yyrhs[] =
1044   {
1045 <     247,     0,    -1,    -1,   247,   248,    -1,   280,    -1,   286,
1046 <      -1,   300,    -1,   520,    -1,   318,    -1,   335,    -1,   349,
1047 <      -1,   258,    -1,   541,    -1,   364,    -1,   371,    -1,   375,
1048 <      -1,   385,    -1,   394,    -1,   414,    -1,   424,    -1,   430,
1049 <      -1,   444,    -1,   504,    -1,   434,    -1,   253,    -1,     1,
1050 <     241,    -1,     1,   242,    -1,    -1,   250,    -1,   110,   249,
1051 <      -1,   110,   153,   249,    -1,   110,   154,   249,    -1,   110,
1052 <     155,   249,    -1,   110,   156,   249,    -1,   110,   157,   249,
1053 <      -1,    -1,   252,    -1,   110,   251,    -1,   110,    14,   251,
1054 <      -1,   110,    15,   251,    -1,   110,    16,   251,    -1,    99,
1055 <     243,   254,   242,   241,    -1,   254,   255,    -1,   255,    -1,
1056 <     256,    -1,   257,    -1,     1,   241,    -1,    98,   244,   131,
1057 <     241,    -1,   126,   244,   131,   241,    -1,   161,   243,   259,
1058 <     242,   241,    -1,   259,   260,    -1,   260,    -1,   271,    -1,
1059 <     276,    -1,   279,    -1,   273,    -1,   274,    -1,   275,    -1,
1060 <     278,    -1,   269,    -1,   268,    -1,   277,    -1,   272,    -1,
1061 <     267,    -1,   261,    -1,   262,    -1,   270,    -1,     1,   241,
1062 <      -1,   147,   244,   263,   241,    -1,   148,   244,   265,   241,
1063 <      -1,   263,   245,   264,    -1,   264,    -1,   149,    -1,   150,
1064 <      -1,   265,   245,   266,    -1,   266,    -1,   149,    -1,   150,
1065 <      -1,   145,   244,   131,   241,    -1,   143,   244,   131,   241,
1066 <      -1,   146,   244,   131,   241,    -1,   188,   244,   131,   241,
1067 <      -1,   100,   244,   131,   241,    -1,   162,   244,   131,   241,
1068 <      -1,    31,   244,   131,   241,    -1,   103,   244,   131,   241,
1069 <      -1,   102,   244,   131,   241,    -1,   234,   244,   131,   241,
1070 <      -1,   235,   244,   131,   241,    -1,   200,   244,   110,   241,
1071 <      -1,    67,   244,   176,   241,    -1,     5,   243,   281,   242,
1072 <     241,    -1,   281,   282,    -1,   282,    -1,   283,    -1,   285,
1073 <      -1,   284,    -1,     1,   241,    -1,   100,   244,   131,   241,
1074 <      -1,    41,   244,   131,   241,    -1,    31,   244,   131,   241,
1075 <      -1,    83,   243,   287,   242,   241,    -1,   287,   288,    -1,
1076 <     288,    -1,   289,    -1,   290,    -1,     1,   241,    -1,   232,
1077 <     244,   176,   241,    -1,    -1,   291,   240,   243,   292,   242,
1078 <     241,    -1,   292,   293,    -1,   293,    -1,   294,    -1,   296,
1079 <      -1,   295,    -1,     1,   241,    -1,   100,   244,   131,   241,
1080 <      -1,   239,   244,   252,   241,    -1,   239,   244,   212,   241,
1081 <      -1,    -1,   166,   297,   244,   298,   241,    -1,   298,   245,
1082 <     299,    -1,   299,    -1,   227,    -1,   115,    -1,    51,    -1,
1083 <     192,    -1,    74,    -1,    72,    -1,   191,    -1,    -1,   115,
1084 <     301,   243,   302,   242,   241,    -1,   302,   303,    -1,   303,
1085 <      -1,   304,    -1,   305,    -1,   306,    -1,   310,    -1,   309,
1086 <      -1,   307,    -1,   308,    -1,   314,    -1,     1,   241,    -1,
1087 <     100,   244,   131,   241,    -1,   227,   244,   131,   241,    -1,
1088 <     125,   244,   131,   241,    -1,    43,   244,   176,   241,    -1,
1089 <     144,   244,   131,   241,    -1,    24,   244,   131,   241,    -1,
1090 <      -1,   209,   311,   244,   312,   241,    -1,   312,   245,   313,
1091 <      -1,   313,    -1,   183,    -1,   186,    -1,   187,    -1,   190,
1092 <      -1,   191,    -1,   195,    -1,    61,    -1,   206,    -1,   201,
1093 <      -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,   202,
1094 <      -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,   185,
1095 <      -1,   199,    -1,    -1,    47,   315,   244,   316,   241,    -1,
1096 <     316,   245,   317,    -1,   317,    -1,    57,    -1,   139,    -1,
1097 <      74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,
1098 <      51,    -1,    32,    -1,   217,    -1,   137,    -1,     5,    -1,
1099 <     105,    -1,   202,    -1,   215,    -1,   119,    -1,   140,    -1,
1100 <      98,    -1,    -1,    24,   319,   243,   320,   242,   241,    -1,
1101 <     320,   321,    -1,   321,    -1,   322,    -1,   332,    -1,   333,
1102 <      -1,   323,    -1,   324,    -1,   334,    -1,   325,    -1,   326,
1103 <      -1,   327,    -1,   328,    -1,   329,    -1,   330,    -1,   331,
1104 <      -1,     1,   241,    -1,   100,   244,   131,   241,    -1,   128,
1105 <     244,   250,   241,    -1,   129,   244,   250,   241,    -1,   113,
1106 <     244,   110,   241,    -1,    26,   244,   250,   241,    -1,    92,
1107 <     244,   110,   241,    -1,    87,   244,   110,   241,    -1,    89,
1108 <     244,   110,   241,    -1,    88,   244,   110,   241,    -1,   158,
1109 <     244,   252,   241,    -1,    22,   244,   110,   241,    -1,    23,
1110 <     244,   110,   241,    -1,   112,   244,   110,   241,    -1,    -1,
1111 <      82,   336,   243,   341,   242,   241,    -1,    -1,    47,   338,
1112 <     244,   339,   241,    -1,   339,   245,   340,    -1,   340,    -1,
1113 <     208,    -1,    61,    -1,   204,    -1,   341,   342,    -1,   342,
1114 <      -1,   343,    -1,   337,    -1,   347,    -1,   348,    -1,     1,
1115 <     241,    -1,    -1,   130,   244,   345,   344,   241,    -1,   345,
1116 <     245,   346,    -1,   346,    -1,   110,    -1,   110,   181,   110,
1117 <      -1,    71,   244,   131,   241,    -1,    66,   244,   131,   241,
1118 <      -1,    -1,    58,   350,   243,   351,   242,   241,    -1,   351,
1119 <     352,    -1,   352,    -1,   353,    -1,   354,    -1,   355,    -1,
1120 <     357,    -1,   361,    -1,   362,    -1,   363,    -1,   356,    -1,
1121 <       1,   241,    -1,   227,   244,   131,   241,    -1,   125,   244,
1122 <     131,   241,    -1,    24,   244,   131,   241,    -1,    43,   244,
1123 <     176,   241,    -1,    -1,    47,   358,   244,   359,   241,    -1,
1124 <     359,   245,   360,    -1,   360,    -1,   170,    -1,    44,    -1,
1125 <      75,    -1,    59,    -1,    20,    -1,   109,    -1,    53,    -1,
1126 <     152,    -1,   101,    -1,   169,   244,   131,   241,    -1,   135,
1127 <     244,   131,   241,    -1,   134,   244,   110,   241,    -1,    -1,
1128 <     151,   365,   243,   366,   242,   241,    -1,   366,   367,    -1,
1129 <     367,    -1,   368,    -1,   369,    -1,   370,    -1,     1,   241,
1130 <      -1,   133,   244,   131,   241,    -1,    21,   244,   131,   241,
1131 <      -1,   104,   244,   131,   241,    -1,   218,   243,   372,   242,
1132 <     241,    -1,   372,   373,    -1,   373,    -1,   374,    -1,     1,
1133 <      -1,   100,   244,   131,   241,    -1,    -1,   164,   376,   243,
1134 <     377,   242,   241,    -1,   377,   378,    -1,   378,    -1,   379,
1135 <      -1,   380,    -1,   381,    -1,     1,   241,    -1,   100,   244,
1136 <     131,   241,    -1,   227,   244,   131,   241,    -1,    -1,   166,
1137 <     382,   244,   383,   241,    -1,   383,   245,   384,    -1,   384,
1138 <      -1,    74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,
1139 <      -1,   214,    -1,   151,    -1,   213,    -1,   199,    -1,   182,
1140 <      -1,    -1,   165,   386,   243,   387,   242,   241,    -1,   387,
1141 <     388,    -1,   388,    -1,   389,    -1,   390,    -1,     1,   241,
1142 <      -1,   100,   244,   131,   241,    -1,    -1,   166,   391,   244,
1143 <     392,   241,    -1,   392,   245,   393,    -1,   393,    -1,    74,
1144 <      -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,   214,
1145 <      -1,   151,    -1,   213,    -1,   199,    -1,   182,    -1,    -1,
1146 <      25,   395,   243,   396,   242,   241,    -1,   396,   397,    -1,
1147 <     397,    -1,   398,    -1,   399,    -1,   400,    -1,   401,    -1,
1148 <     402,    -1,   404,    -1,   403,    -1,   413,    -1,   405,    -1,
1149 <     410,    -1,   411,    -1,   412,    -1,   409,    -1,     1,   241,
1150 <      -1,   100,   244,   131,   241,    -1,    66,   244,   131,   241,
1151 <      -1,   234,   244,   131,   241,    -1,   159,   244,   131,   241,
1152 <      -1,     3,   244,   131,   241,    -1,   130,   244,   110,   241,
1153 <      -1,     6,   244,   197,   241,    -1,     6,   244,   198,   241,
1154 <      -1,    -1,    47,   406,   244,   407,   241,    -1,   407,   245,
1155 <     408,    -1,   408,    -1,    10,    -1,    12,    -1,   221,    -1,
1156 <     208,    -1,    43,   244,   176,   241,    -1,    68,   244,   131,
1157 <     241,    -1,    80,   244,   131,   241,    -1,    24,   244,   131,
1158 <     241,    -1,   188,   244,   131,   241,    -1,    -1,    72,   415,
1159 <     243,   420,   242,   241,    -1,    -1,   166,   417,   244,   418,
1160 <     241,    -1,   418,   245,   419,    -1,   419,    -1,   136,    -1,
1161 <     420,   421,    -1,   421,    -1,   422,    -1,   423,    -1,   416,
1162 <      -1,     1,    -1,   227,   244,   131,   241,    -1,   133,   244,
1163 <     131,   241,    -1,    -1,    30,   425,   243,   426,   242,   241,
1164 <      -1,   426,   427,    -1,   427,    -1,   428,    -1,   429,    -1,
1165 <       1,    -1,    71,   244,   131,   241,    -1,   133,   244,   131,
1166 <     241,    -1,    45,   243,   431,   242,   241,    -1,   431,   432,
1167 <      -1,   432,    -1,   433,    -1,     1,    -1,    71,   244,   131,
1168 <     241,    -1,    -1,    49,   435,   243,   440,   242,   241,    -1,
1169 <      -1,   166,   437,   244,   438,   241,    -1,   438,   245,   439,
1170 <      -1,   439,    -1,   136,    -1,   440,   441,    -1,   441,    -1,
1171 <     442,    -1,   443,    -1,   436,    -1,     1,    -1,   100,   244,
1172 <     131,   241,    -1,   133,   244,   131,   241,    -1,    50,   243,
1173 <     445,   242,   241,    -1,   445,   446,    -1,   446,    -1,   454,
1174 <      -1,   455,    -1,   457,    -1,   458,    -1,   459,    -1,   460,
1175 <      -1,   461,    -1,   462,    -1,   463,    -1,   464,    -1,   453,
1176 <      -1,   466,    -1,   467,    -1,   468,    -1,   469,    -1,   484,
1177 <      -1,   471,    -1,   473,    -1,   475,    -1,   474,    -1,   478,
1178 <      -1,   472,    -1,   479,    -1,   480,    -1,   481,    -1,   482,
1179 <      -1,   483,    -1,   496,    -1,   485,    -1,   486,    -1,   487,
1180 <      -1,   492,    -1,   476,    -1,   477,    -1,   502,    -1,   500,
1181 <      -1,   501,    -1,   456,    -1,   503,    -1,   491,    -1,   465,
1182 <      -1,   489,    -1,   490,    -1,   452,    -1,   448,    -1,   449,
1183 <      -1,   450,    -1,   451,    -1,   470,    -1,   447,    -1,   488,
1184 <      -1,     1,    -1,    94,   244,   110,   241,    -1,    55,   244,
1185 <     110,   241,    -1,    56,   244,   110,   241,    -1,   233,   244,
1186 <     176,   241,    -1,   138,   244,   250,   241,    -1,   163,   244,
1187 <     176,   241,    -1,    73,   244,   250,   241,    -1,    65,   244,
1188 <     176,   241,    -1,    69,   244,   176,   241,    -1,    37,   244,
1189 <     176,   241,    -1,    46,   244,   176,   241,    -1,     8,   244,
1190 <     176,   241,    -1,    91,   244,   250,   241,    -1,    90,   244,
1191 <     110,   241,    -1,    84,   244,   110,   241,    -1,     9,   244,
1192 <     250,   241,    -1,   180,   244,   250,   241,    -1,   179,   244,
1193 <     250,   241,    -1,    60,   244,   110,   241,    -1,    77,   244,
1194 <     176,   241,    -1,    76,   244,   131,   241,    -1,    70,   244,
1195 <     176,   241,    -1,   238,   244,   176,   241,    -1,   171,   244,
1196 <     176,   241,    -1,   174,   244,   176,   241,    -1,   175,   244,
1197 <     176,   241,    -1,   173,   244,   176,   241,    -1,   173,   244,
1198 <     177,   241,    -1,   172,   244,   176,   241,    -1,   172,   244,
1199 <     177,   241,    -1,   123,   244,   250,   241,    -1,    19,   244,
1200 <     250,   241,    -1,   116,   244,   176,   241,    -1,   124,   244,
1201 <     250,   241,    -1,   167,   244,   176,   241,    -1,   108,   244,
1202 <     176,   241,    -1,   222,   244,   176,   241,    -1,   118,   244,
1203 <     176,   241,    -1,    95,   244,   131,   241,    -1,    38,   244,
1204 <     110,   241,    -1,    93,   244,   110,   241,    -1,   228,   244,
1205 <     176,   241,    -1,    40,   244,   131,   241,    -1,   219,   244,
1206 <     131,   241,    -1,   127,   244,   176,   241,    -1,    33,   244,
1207 <     176,   241,    -1,   220,   244,   250,   241,    -1,    -1,   120,
1208 <     493,   244,   494,   241,    -1,   494,   245,   495,    -1,   495,
1209 <      -1,   183,    -1,   186,    -1,   187,    -1,   190,    -1,   191,
1210 <      -1,   195,    -1,    61,    -1,   206,    -1,   201,    -1,   203,
1211 <      -1,   210,    -1,   207,    -1,   194,    -1,   202,    -1,   205,
1212 <      -1,   196,    -1,   216,    -1,   184,    -1,   185,    -1,   199,
1213 <      -1,    -1,   117,   497,   244,   498,   241,    -1,   498,   245,
1214 <     499,    -1,   499,    -1,   183,    -1,   186,    -1,   187,    -1,
1215 <     190,    -1,   191,    -1,   195,    -1,   206,    -1,    61,    -1,
1216 <     201,    -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,
1217 <     202,    -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,
1218 <     185,    -1,   199,    -1,    96,   244,   110,   241,    -1,    97,
1219 <     244,   110,   241,    -1,    27,   244,   110,   241,    -1,   189,
1220 <     244,   252,   241,    -1,    -1,    52,   505,   243,   506,   242,
1221 <     241,    -1,   506,   507,    -1,   507,    -1,   508,    -1,   509,
1222 <      -1,   510,    -1,   514,    -1,   515,    -1,   516,    -1,     1,
1223 <      -1,    42,   244,   176,   241,    -1,    39,   244,   250,   241,
1224 <      -1,    -1,    83,   511,   244,   512,   241,    -1,   512,   245,
1225 <     513,    -1,   513,    -1,   178,    -1,    11,    -1,   227,   244,
1226 <     131,   241,    -1,   100,   244,   131,   241,    -1,    -1,     4,
1227 <     517,   244,   518,   241,    -1,   518,   245,   519,    -1,   519,
1228 <      -1,   178,    -1,    11,    -1,    21,   243,   521,   242,   241,
1229 <      -1,   521,   522,    -1,   522,    -1,   525,    -1,   526,    -1,
1230 <     527,    -1,   528,    -1,   533,    -1,   529,    -1,   530,    -1,
1231 <     531,    -1,   532,    -1,   534,    -1,   535,    -1,   536,    -1,
1232 <     524,    -1,   537,    -1,   538,    -1,   539,    -1,   540,    -1,
1233 <     523,    -1,     1,    -1,    34,   244,   176,   241,    -1,   141,
1234 <     244,   176,   241,    -1,    36,   244,   176,   241,    -1,   229,
1235 <     244,   176,   241,    -1,   230,   244,   176,   241,    -1,   231,
1276 <     244,   176,   241,    -1,    78,   244,   250,   241,    -1,    79,
1277 <     244,   250,   241,    -1,    86,   244,   110,   241,    -1,   132,
1278 <     244,   176,   241,    -1,    85,   244,   110,   241,    -1,    29,
1279 <     244,   110,   241,    -1,    28,   244,   110,   241,    -1,   106,
1280 <     244,   176,   241,    -1,   107,   244,   176,   241,    -1,    13,
1281 <     244,   176,   241,    -1,   121,   244,   110,   241,    -1,   122,
1282 <     244,   250,   241,    -1,   160,   243,   542,   242,   241,    -1,
1283 <     542,   543,    -1,   543,    -1,   544,    -1,   545,    -1,   547,
1284 <      -1,   549,    -1,   548,    -1,   546,    -1,   550,    -1,     1,
1285 <      -1,    48,   244,   176,   241,    -1,    64,   244,   176,   241,
1286 <      -1,    62,   244,   131,   241,    -1,    81,   244,   250,   241,
1287 <      -1,    61,   244,   176,   241,    -1,    35,   244,   176,   241,
1288 <      -1,    63,   244,   176,   241,    -1
1045 >     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1046 >      -1,   274,    -1,   476,    -1,   292,    -1,   309,    -1,   323,
1047 >      -1,   232,    -1,   493,    -1,   338,    -1,   345,    -1,   349,
1048 >      -1,   359,    -1,   368,    -1,   388,    -1,   398,    -1,   404,
1049 >      -1,   418,    -1,   408,    -1,   227,    -1,     1,   215,    -1,
1050 >       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1051 >     137,   223,    -1,    99,   138,   223,    -1,    99,   139,   223,
1052 >      -1,    99,   140,   223,    -1,    99,   141,   223,    -1,    -1,
1053 >     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1054 >      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1055 >     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1056 >     231,    -1,     1,   215,    -1,    87,   218,   117,   215,    -1,
1057 >     113,   218,   117,   215,    -1,   145,   217,   233,   216,   215,
1058 >      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1059 >     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1060 >     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1061 >     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   131,
1062 >     218,   237,   215,    -1,   132,   218,   239,   215,    -1,   237,
1063 >     219,   238,    -1,   238,    -1,   133,    -1,   134,    -1,   239,
1064 >     219,   240,    -1,   240,    -1,   133,    -1,   134,    -1,   129,
1065 >     218,   117,   215,    -1,   127,   218,   117,   215,    -1,   130,
1066 >     218,   117,   215,    -1,   170,   218,   117,   215,    -1,    89,
1067 >     218,   117,   215,    -1,   146,   218,   117,   215,    -1,    24,
1068 >     218,   117,   215,    -1,    92,   218,   117,   215,    -1,    91,
1069 >     218,   117,   215,    -1,   209,   218,   117,   215,    -1,   210,
1070 >     218,   117,   215,    -1,   180,   218,    99,   215,    -1,    57,
1071 >     218,   159,   215,    -1,     4,   217,   255,   216,   215,    -1,
1072 >     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1073 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,    31,
1074 >     218,   117,   215,    -1,    24,   218,   117,   215,    -1,    71,
1075 >     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1076 >     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   159,
1077 >     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1078 >     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1079 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   213,
1080 >     218,   226,   215,    -1,   213,   218,   194,   215,    -1,    -1,
1081 >     150,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1082 >     273,    -1,   206,    -1,   102,    -1,    40,    -1,   173,    -1,
1083 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   275,   217,
1084 >     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1085 >      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1086 >      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1087 >     117,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1088 >     117,   215,    -1,    32,   218,   159,   215,    -1,   128,   218,
1089 >     117,   215,    -1,    17,   218,   117,   215,    -1,    -1,   191,
1090 >     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1091 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1092 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1093 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1094 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1095 >      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1096 >     291,    -1,   291,    -1,    47,    -1,   124,    -1,    64,    -1,
1097 >     205,    -1,   173,    -1,   193,    -1,   211,    -1,    40,    -1,
1098 >      25,    -1,   200,    -1,   123,    -1,     4,    -1,    94,    -1,
1099 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1100 >      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1101 >     294,   295,    -1,   295,    -1,   296,    -1,   306,    -1,   307,
1102 >      -1,   297,    -1,   308,    -1,   298,    -1,   299,    -1,   300,
1103 >      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1104 >      -1,     1,   215,    -1,    89,   218,   117,   215,    -1,   115,
1105 >     218,   224,   215,    -1,   101,   218,    99,   215,    -1,    19,
1106 >     218,   224,   215,    -1,    81,   218,    99,   215,    -1,    76,
1107 >     218,    99,   215,    -1,    78,   218,    99,   215,    -1,    77,
1108 >     218,    99,   215,    -1,   142,   218,   226,   215,    -1,   183,
1109 >     218,   226,   215,    -1,    15,   218,    99,   215,    -1,    16,
1110 >     218,    99,   215,    -1,   100,   218,    99,   215,    -1,    -1,
1111 >      70,   310,   217,   315,   216,   215,    -1,    -1,    36,   312,
1112 >     218,   313,   215,    -1,   313,   219,   314,    -1,   314,    -1,
1113 >     190,    -1,    51,    -1,   185,    -1,   315,   316,    -1,   316,
1114 >      -1,   317,    -1,   311,    -1,   321,    -1,   322,    -1,     1,
1115 >     215,    -1,    -1,   116,   218,   319,   318,   215,    -1,   319,
1116 >     219,   320,    -1,   320,    -1,    99,    -1,    99,   163,    99,
1117 >      -1,    61,   218,   117,   215,    -1,    56,   218,   117,   215,
1118 >      -1,    -1,    48,   324,   217,   325,   216,   215,    -1,   325,
1119 >     326,    -1,   326,    -1,   327,    -1,   328,    -1,   329,    -1,
1120 >     331,    -1,   335,    -1,   336,    -1,   337,    -1,   330,    -1,
1121 >       1,   215,    -1,   206,   218,   117,   215,    -1,   112,   218,
1122 >     117,   215,    -1,    17,   218,   117,   215,    -1,    32,   218,
1123 >     159,   215,    -1,    -1,    36,   332,   218,   333,   215,    -1,
1124 >     333,   219,   334,    -1,   334,    -1,   153,    -1,    33,    -1,
1125 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1126 >     136,    -1,   199,    -1,    90,    -1,   152,   218,   117,   215,
1127 >      -1,   121,   218,   117,   215,    -1,   120,   218,    99,   215,
1128 >      -1,    -1,   135,   339,   217,   340,   216,   215,    -1,   340,
1129 >     341,    -1,   341,    -1,   342,    -1,   343,    -1,   344,    -1,
1130 >       1,   215,    -1,   119,   218,   117,   215,    -1,    14,   218,
1131 >     117,   215,    -1,    93,   218,   117,   215,    -1,   201,   217,
1132 >     346,   216,   215,    -1,   346,   347,    -1,   347,    -1,   348,
1133 >      -1,     1,    -1,    89,   218,   117,   215,    -1,    -1,   148,
1134 >     350,   217,   351,   216,   215,    -1,   351,   352,    -1,   352,
1135 >      -1,   353,    -1,   354,    -1,   355,    -1,     1,   215,    -1,
1136 >      89,   218,   117,   215,    -1,   206,   218,   117,   215,    -1,
1137 >      -1,   150,   356,   218,   357,   215,    -1,   357,   219,   358,
1138 >      -1,   358,    -1,    64,    -1,   205,    -1,   173,    -1,   193,
1139 >      -1,   211,    -1,   196,    -1,   135,    -1,   195,    -1,   179,
1140 >      -1,   164,    -1,    -1,   149,   360,   217,   361,   216,   215,
1141 >      -1,   361,   362,    -1,   362,    -1,   363,    -1,   364,    -1,
1142 >       1,   215,    -1,    89,   218,   117,   215,    -1,    -1,   150,
1143 >     365,   218,   366,   215,    -1,   366,   219,   367,    -1,   367,
1144 >      -1,    64,    -1,   205,    -1,   173,    -1,   193,    -1,   211,
1145 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1146 >      -1,    -1,    18,   369,   217,   370,   216,   215,    -1,   370,
1147 >     371,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1148 >     375,    -1,   376,    -1,   378,    -1,   377,    -1,   387,    -1,
1149 >     379,    -1,   384,    -1,   385,    -1,   386,    -1,   383,    -1,
1150 >       1,   215,    -1,    89,   218,   117,   215,    -1,    56,   218,
1151 >     117,   215,    -1,   209,   218,   117,   215,    -1,   143,   218,
1152 >     117,   215,    -1,     3,   218,   117,   215,    -1,   116,   218,
1153 >      99,   215,    -1,     5,   218,   177,   215,    -1,     5,   218,
1154 >     178,   215,    -1,    -1,    36,   380,   218,   381,   215,    -1,
1155 >     381,   219,   382,    -1,   382,    -1,     8,    -1,   190,    -1,
1156 >      32,   218,   159,   215,    -1,    58,   218,   117,   215,    -1,
1157 >      68,   218,   117,   215,    -1,    17,   218,   117,   215,    -1,
1158 >     170,   218,   117,   215,    -1,    -1,    62,   389,   217,   394,
1159 >     216,   215,    -1,    -1,   150,   391,   218,   392,   215,    -1,
1160 >     392,   219,   393,    -1,   393,    -1,   122,    -1,   394,   395,
1161 >      -1,   395,    -1,   396,    -1,   397,    -1,   390,    -1,     1,
1162 >      -1,   206,   218,   117,   215,    -1,   119,   218,   117,   215,
1163 >      -1,    -1,    23,   399,   217,   400,   216,   215,    -1,   400,
1164 >     401,    -1,   401,    -1,   402,    -1,   403,    -1,     1,    -1,
1165 >      61,   218,   117,   215,    -1,   119,   218,   117,   215,    -1,
1166 >      34,   217,   405,   216,   215,    -1,   405,   406,    -1,   406,
1167 >      -1,   407,    -1,     1,    -1,    61,   218,   117,   215,    -1,
1168 >      -1,    38,   409,   217,   414,   216,   215,    -1,    -1,   150,
1169 >     411,   218,   412,   215,    -1,   412,   219,   413,    -1,   413,
1170 >      -1,   122,    -1,   414,   415,    -1,   415,    -1,   416,    -1,
1171 >     417,    -1,   410,    -1,     1,    -1,    89,   218,   117,   215,
1172 >      -1,   119,   218,   117,   215,    -1,    39,   217,   419,   216,
1173 >     215,    -1,   419,   420,    -1,   420,    -1,   429,    -1,   430,
1174 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1175 >      -1,   437,    -1,   438,    -1,   439,    -1,   428,    -1,   441,
1176 >      -1,   442,    -1,   457,    -1,   444,    -1,   446,    -1,   448,
1177 >      -1,   447,    -1,   451,    -1,   445,    -1,   452,    -1,   453,
1178 >      -1,   454,    -1,   455,    -1,   456,    -1,   469,    -1,   458,
1179 >      -1,   459,    -1,   460,    -1,   465,    -1,   449,    -1,   450,
1180 >      -1,   475,    -1,   473,    -1,   474,    -1,   431,    -1,   464,
1181 >      -1,   440,    -1,   462,    -1,   463,    -1,   427,    -1,   422,
1182 >      -1,   423,    -1,   424,    -1,   425,    -1,   426,    -1,   443,
1183 >      -1,   421,    -1,   461,    -1,     1,    -1,    83,   218,    99,
1184 >     215,    -1,    42,   218,   159,   215,    -1,    41,   218,   224,
1185 >     215,    -1,    44,   218,   224,   215,    -1,    45,   218,    99,
1186 >     215,    -1,    46,   218,    99,   215,    -1,   147,   218,   159,
1187 >     215,    -1,    63,   218,   224,   215,    -1,    55,   218,   159,
1188 >     215,    -1,    59,   218,   159,   215,    -1,    28,   218,   159,
1189 >     215,    -1,    35,   218,   159,   215,    -1,     6,   218,   159,
1190 >     215,    -1,    80,   218,   224,   215,    -1,    79,   218,    99,
1191 >     215,    -1,    72,   218,    99,   215,    -1,     7,   218,   224,
1192 >     215,    -1,   162,   218,   224,   215,    -1,   161,   218,   224,
1193 >     215,    -1,    50,   218,    99,   215,    -1,    60,   218,   159,
1194 >     215,    -1,   212,   218,   159,   215,    -1,   154,   218,   159,
1195 >     215,    -1,   157,   218,   159,   215,    -1,   158,   218,   159,
1196 >     215,    -1,   156,   218,   159,   215,    -1,   156,   218,   160,
1197 >     215,    -1,   155,   218,   159,   215,    -1,   155,   218,   160,
1198 >     215,    -1,   110,   218,   224,   215,    -1,    12,   218,   224,
1199 >     215,    -1,   103,   218,   159,   215,    -1,   111,   218,   224,
1200 >     215,    -1,   151,   218,   159,   215,    -1,    97,   218,   159,
1201 >     215,    -1,   204,   218,   159,   215,    -1,   105,   218,   159,
1202 >     215,    -1,    84,   218,   117,   215,    -1,    29,   218,    99,
1203 >     215,    -1,    82,   218,    99,   215,    -1,   207,   218,   159,
1204 >     215,    -1,    30,   218,   117,   215,    -1,   202,   218,   117,
1205 >     215,    -1,   114,   218,   159,   215,    -1,    26,   218,   159,
1206 >     215,    -1,   203,   218,   224,   215,    -1,    -1,   107,   466,
1207 >     218,   467,   215,    -1,   467,   219,   468,    -1,   468,    -1,
1208 >     165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,    -1,
1209 >     175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,    -1,
1210 >     192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,    -1,
1211 >     176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,    -1,
1212 >      -1,   104,   470,   218,   471,   215,    -1,   471,   219,   472,
1213 >      -1,   472,    -1,   165,    -1,   168,    -1,   169,    -1,   171,
1214 >      -1,   172,    -1,   175,    -1,   188,    -1,    51,    -1,   181,
1215 >      -1,   184,    -1,   192,    -1,   189,    -1,   174,    -1,   182,
1216 >      -1,   186,    -1,   176,    -1,   198,    -1,   166,    -1,   167,
1217 >      -1,   179,    -1,    85,   218,    99,   215,    -1,    86,   218,
1218 >      99,   215,    -1,    20,   218,    99,   215,    -1,    14,   217,
1219 >     477,   216,   215,    -1,   477,   478,    -1,   478,    -1,   486,
1220 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   485,
1221 >      -1,   487,    -1,   488,    -1,   489,    -1,   480,    -1,   490,
1222 >      -1,   491,    -1,   492,    -1,   479,    -1,     1,    -1,    27,
1223 >     218,   159,   215,    -1,   126,   218,   159,   215,    -1,    66,
1224 >     218,   224,   215,    -1,    67,   218,   224,   215,    -1,    75,
1225 >     218,    99,   215,    -1,    74,   218,    99,   215,    -1,   118,
1226 >     218,   159,   215,    -1,    73,   218,    99,   215,    -1,    22,
1227 >     218,    99,   215,    -1,    21,   218,    99,   215,    -1,    95,
1228 >     218,   159,   215,    -1,    96,   218,   159,   215,    -1,   108,
1229 >     218,    99,   215,    -1,   109,   218,   224,   215,    -1,   144,
1230 >     217,   494,   216,   215,    -1,   494,   495,    -1,   495,    -1,
1231 >     496,    -1,   497,    -1,   499,    -1,   500,    -1,   498,    -1,
1232 >     501,    -1,     1,    -1,    37,   218,   159,   215,    -1,    54,
1233 >     218,   159,   215,    -1,    52,   218,   117,   215,    -1,    69,
1234 >     218,   224,   215,    -1,    51,   218,   159,   215,    -1,    53,
1235 >     218,   159,   215,    -1
1236   };
1237  
1238   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1239   static const yytype_uint16 yyrline[] =
1240   {
1241 <       0,   379,   379,   380,   383,   384,   385,   386,   387,   388,
1242 <     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1243 <     399,   400,   401,   402,   403,   404,   405,   409,   409,   410,
1244 <     414,   418,   422,   426,   430,   436,   436,   437,   438,   439,
1245 <     440,   447,   450,   450,   451,   451,   451,   453,   459,   466,
1246 <     468,   468,   469,   469,   470,   470,   471,   471,   472,   472,
1247 <     473,   473,   474,   474,   475,   475,   476,   477,   480,   481,
1248 <     483,   483,   484,   490,   498,   498,   499,   505,   513,   552,
1249 <     611,   639,   647,   662,   677,   686,   700,   709,   737,   767,
1250 <     790,   799,   801,   801,   802,   802,   803,   803,   805,   814,
1251 <     823,   835,   836,   836,   838,   838,   839,   841,   848,   848,
1252 <     858,   859,   861,   861,   862,   862,   864,   869,   872,   878,
1253 <     877,   883,   883,   884,   888,   892,   896,   900,   904,   908,
1254 <     919,   918,  1016,  1016,  1017,  1017,  1017,  1018,  1018,  1018,
1255 <    1019,  1019,  1019,  1021,  1033,  1070,  1082,  1093,  1135,  1145,
1256 <    1144,  1150,  1150,  1151,  1155,  1159,  1163,  1167,  1171,  1175,
1257 <    1179,  1183,  1187,  1191,  1195,  1199,  1203,  1207,  1211,  1215,
1258 <    1219,  1223,  1227,  1234,  1233,  1239,  1239,  1240,  1244,  1248,
1259 <    1252,  1256,  1260,  1264,  1268,  1272,  1276,  1280,  1284,  1288,
1260 <    1292,  1296,  1300,  1304,  1308,  1319,  1318,  1368,  1368,  1369,
1261 <    1370,  1370,  1371,  1372,  1373,  1374,  1375,  1376,  1377,  1378,
1262 <    1379,  1380,  1381,  1383,  1392,  1398,  1404,  1410,  1416,  1422,
1263 <    1428,  1434,  1440,  1446,  1452,  1458,  1468,  1467,  1484,  1483,
1264 <    1488,  1488,  1489,  1493,  1497,  1505,  1505,  1506,  1506,  1506,
1265 <    1506,  1506,  1508,  1508,  1510,  1510,  1512,  1526,  1546,  1555,
1266 <    1568,  1567,  1636,  1636,  1637,  1637,  1637,  1637,  1638,  1638,
1267 <    1638,  1639,  1639,  1641,  1678,  1691,  1700,  1712,  1711,  1715,
1268 <    1715,  1716,  1720,  1724,  1728,  1732,  1736,  1740,  1744,  1748,
1269 <    1755,  1774,  1784,  1798,  1797,  1813,  1813,  1814,  1814,  1814,
1270 <    1814,  1816,  1825,  1840,  1853,  1855,  1855,  1856,  1856,  1858,
1271 <    1874,  1873,  1889,  1889,  1890,  1890,  1890,  1890,  1892,  1901,
1272 <    1924,  1923,  1929,  1929,  1930,  1934,  1938,  1942,  1946,  1950,
1273 <    1954,  1958,  1962,  1966,  1976,  1975,  1992,  1992,  1993,  1993,
1274 <    1993,  1995,  2002,  2001,  2007,  2007,  2008,  2012,  2016,  2020,
1275 <    2024,  2028,  2032,  2036,  2040,  2044,  2054,  2053,  2182,  2182,
1276 <    2183,  2183,  2183,  2184,  2184,  2185,  2185,  2185,  2186,  2186,
1277 <    2186,  2187,  2187,  2188,  2190,  2199,  2208,  2234,  2252,  2270,
1278 <    2276,  2280,  2289,  2288,  2292,  2292,  2293,  2297,  2301,  2305,
1279 <    2311,  2322,  2335,  2348,  2357,  2376,  2375,  2439,  2438,  2442,
1280 <    2442,  2443,  2449,  2449,  2450,  2450,  2450,  2450,  2452,  2471,
1281 <    2481,  2480,  2503,  2503,  2504,  2504,  2504,  2506,  2512,  2521,
1282 <    2523,  2523,  2524,  2524,  2526,  2545,  2544,  2592,  2591,  2595,
1283 <    2595,  2596,  2602,  2602,  2603,  2603,  2603,  2603,  2605,  2611,
1284 <    2620,  2623,  2623,  2624,  2624,  2625,  2625,  2626,  2626,  2627,
1285 <    2627,  2628,  2628,  2629,  2629,  2630,  2630,  2631,  2631,  2632,
1286 <    2632,  2633,  2633,  2634,  2634,  2635,  2635,  2636,  2636,  2637,
1287 <    2638,  2638,  2639,  2639,  2640,  2640,  2641,  2641,  2642,  2642,
1288 <    2643,  2644,  2645,  2645,  2646,  2647,  2648,  2648,  2649,  2649,
1289 <    2650,  2650,  2651,  2651,  2652,  2655,  2660,  2665,  2670,  2675,
1290 <    2680,  2685,  2690,  2695,  2700,  2705,  2710,  2715,  2720,  2725,
1291 <    2730,  2735,  2740,  2746,  2757,  2762,  2771,  2776,  2781,  2786,
1292 <    2791,  2796,  2799,  2804,  2807,  2812,  2817,  2822,  2827,  2832,
1293 <    2837,  2842,  2847,  2852,  2863,  2868,  2873,  2878,  2887,  2896,
1294 <    2901,  2906,  2912,  2911,  2916,  2916,  2917,  2920,  2923,  2926,
1295 <    2929,  2932,  2935,  2938,  2941,  2944,  2947,  2950,  2953,  2956,
1296 <    2959,  2962,  2965,  2968,  2971,  2974,  2980,  2979,  2984,  2984,
1297 <    2985,  2988,  2991,  2994,  2997,  3000,  3003,  3006,  3009,  3012,
1298 <    3015,  3018,  3021,  3024,  3027,  3030,  3033,  3036,  3039,  3042,
1299 <    3047,  3052,  3057,  3062,  3072,  3071,  3095,  3095,  3096,  3097,
1300 <    3098,  3099,  3100,  3101,  3102,  3104,  3110,  3117,  3116,  3121,
1301 <    3121,  3122,  3126,  3132,  3166,  3176,  3175,  3225,  3225,  3226,
1302 <    3230,  3239,  3242,  3242,  3243,  3243,  3244,  3244,  3245,  3245,
1303 <    3246,  3246,  3247,  3247,  3248,  3249,  3249,  3250,  3250,  3251,
1357 <    3251,  3252,  3252,  3254,  3259,  3264,  3269,  3274,  3279,  3284,
1358 <    3289,  3294,  3299,  3304,  3309,  3314,  3319,  3324,  3329,  3334,
1359 <    3339,  3347,  3350,  3350,  3351,  3351,  3352,  3353,  3354,  3354,
1360 <    3355,  3356,  3358,  3364,  3370,  3379,  3393,  3399,  3405
1241 >       0,   355,   355,   356,   359,   360,   361,   362,   363,   364,
1242 >     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1243 >     375,   376,   377,   378,   379,   380,   384,   384,   385,   389,
1244 >     393,   397,   401,   405,   411,   411,   412,   413,   414,   415,
1245 >     422,   425,   425,   426,   426,   426,   428,   434,   441,   443,
1246 >     443,   444,   444,   445,   445,   446,   446,   447,   447,   448,
1247 >     448,   449,   449,   450,   450,   451,   452,   455,   456,   458,
1248 >     458,   459,   465,   473,   473,   474,   480,   488,   527,   586,
1249 >     614,   622,   637,   652,   661,   675,   684,   712,   742,   765,
1250 >     774,   776,   776,   777,   777,   778,   778,   780,   789,   798,
1251 >     810,   811,   811,   813,   813,   814,   816,   823,   823,   836,
1252 >     837,   839,   839,   840,   840,   842,   850,   853,   859,   858,
1253 >     864,   864,   865,   869,   873,   877,   881,   885,   889,   900,
1254 >     899,   979,   979,   980,   980,   980,   981,   981,   981,   982,
1255 >     982,   982,   984,   990,   996,  1002,  1013,  1019,  1026,  1025,
1256 >    1031,  1031,  1032,  1036,  1040,  1044,  1048,  1052,  1056,  1060,
1257 >    1064,  1068,  1072,  1076,  1080,  1084,  1088,  1092,  1096,  1100,
1258 >    1104,  1108,  1115,  1114,  1120,  1120,  1121,  1125,  1129,  1133,
1259 >    1137,  1141,  1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,
1260 >    1177,  1181,  1185,  1189,  1193,  1204,  1203,  1254,  1254,  1255,
1261 >    1256,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,  1264,
1262 >    1265,  1265,  1266,  1268,  1274,  1280,  1286,  1292,  1298,  1304,
1263 >    1310,  1316,  1322,  1329,  1335,  1341,  1351,  1350,  1357,  1356,
1264 >    1361,  1361,  1362,  1366,  1370,  1376,  1376,  1377,  1377,  1377,
1265 >    1377,  1377,  1379,  1379,  1381,  1381,  1383,  1397,  1417,  1423,
1266 >    1433,  1432,  1474,  1474,  1475,  1475,  1475,  1475,  1476,  1476,
1267 >    1476,  1477,  1477,  1479,  1485,  1491,  1497,  1509,  1508,  1514,
1268 >    1514,  1515,  1519,  1523,  1527,  1531,  1535,  1539,  1543,  1547,
1269 >    1551,  1557,  1571,  1580,  1594,  1593,  1602,  1602,  1603,  1603,
1270 >    1603,  1603,  1605,  1611,  1620,  1629,  1631,  1631,  1632,  1632,
1271 >    1634,  1650,  1649,  1674,  1674,  1675,  1675,  1675,  1675,  1677,
1272 >    1683,  1703,  1702,  1708,  1708,  1709,  1713,  1717,  1721,  1725,
1273 >    1729,  1733,  1737,  1741,  1745,  1755,  1754,  1775,  1775,  1776,
1274 >    1776,  1776,  1778,  1785,  1784,  1790,  1790,  1791,  1795,  1799,
1275 >    1803,  1807,  1811,  1815,  1819,  1823,  1827,  1837,  1836,  1902,
1276 >    1902,  1903,  1903,  1903,  1904,  1904,  1905,  1905,  1905,  1906,
1277 >    1906,  1906,  1907,  1907,  1908,  1910,  1916,  1922,  1928,  1941,
1278 >    1954,  1960,  1964,  1973,  1972,  1977,  1977,  1978,  1982,  1988,
1279 >    1999,  2005,  2011,  2017,  2033,  2032,  2095,  2094,  2100,  2100,
1280 >    2101,  2107,  2107,  2108,  2108,  2108,  2108,  2110,  2130,  2140,
1281 >    2139,  2166,  2166,  2167,  2167,  2167,  2169,  2175,  2184,  2186,
1282 >    2186,  2187,  2187,  2189,  2207,  2206,  2252,  2251,  2257,  2257,
1283 >    2258,  2264,  2264,  2265,  2265,  2265,  2265,  2267,  2273,  2282,
1284 >    2285,  2285,  2286,  2286,  2287,  2287,  2288,  2288,  2289,  2289,
1285 >    2290,  2290,  2291,  2292,  2293,  2293,  2294,  2294,  2295,  2295,
1286 >    2296,  2296,  2297,  2297,  2298,  2298,  2299,  2300,  2300,  2301,
1287 >    2301,  2302,  2302,  2303,  2303,  2304,  2304,  2305,  2306,  2306,
1288 >    2307,  2308,  2309,  2309,  2310,  2310,  2311,  2312,  2313,  2314,
1289 >    2314,  2315,  2318,  2323,  2329,  2335,  2341,  2346,  2351,  2356,
1290 >    2361,  2366,  2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,
1291 >    2411,  2417,  2428,  2433,  2438,  2443,  2448,  2453,  2456,  2461,
1292 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2509,
1293 >    2520,  2525,  2530,  2535,  2544,  2553,  2558,  2563,  2569,  2568,
1294 >    2573,  2573,  2574,  2577,  2580,  2583,  2586,  2589,  2592,  2595,
1295 >    2598,  2601,  2604,  2607,  2610,  2613,  2616,  2619,  2622,  2625,
1296 >    2628,  2631,  2637,  2636,  2641,  2641,  2642,  2645,  2648,  2651,
1297 >    2654,  2657,  2660,  2663,  2666,  2669,  2672,  2675,  2678,  2681,
1298 >    2684,  2687,  2690,  2693,  2696,  2699,  2704,  2709,  2714,  2723,
1299 >    2726,  2726,  2727,  2728,  2728,  2729,  2729,  2730,  2730,  2731,
1300 >    2732,  2732,  2733,  2734,  2734,  2735,  2735,  2737,  2742,  2747,
1301 >    2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,
1302 >    2802,  2810,  2813,  2813,  2814,  2814,  2815,  2816,  2816,  2817,
1303 >    2818,  2820,  2826,  2832,  2841,  2855,  2861
1304   };
1305   #endif
1306  
1307 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1307 > #if YYDEBUG || YYERROR_VERBOSE || 0
1308   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1309     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1310   static const char *const yytname[] =
1311   {
1312 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1313 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1314 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1372 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1312 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1313 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1314 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1315    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1316    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1317    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1318 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1319 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1378 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1318 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1319 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1320    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1321 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1322 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1323 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1324 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1325 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1326 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1327 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1328 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1321 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1322 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1323 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1324 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1325 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1326 >  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1327 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1328 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1329    "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1330    "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1331    "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1332    "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1333    "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1334    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1335 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1336 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1337 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1338 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1339 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1340 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1341 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1342 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1343 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1344 <  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1345 <  "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1346 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1347 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1348 <  "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1349 <  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1350 <  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1351 <  "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1352 <  "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_SSL_CIPHER_LIST",
1353 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1354 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1355 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1356 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1357 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1358 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME",
1418 <  "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV",
1419 <  "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK",
1420 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1335 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1336 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1337 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1338 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1339 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1340 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1341 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1342 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1343 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1344 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1345 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1346 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1347 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1348 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1349 >  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1350 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1351 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1352 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1353 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1354 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1355 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1356 >  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1357 >  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1358 >  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1359    "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1360    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1361    "sizespec", "modules_entry", "modules_items", "modules_item",
# Line 1441 | Line 1379 | static const char *const yytname[] =
1379    "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1380    "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1381    "class_entry", "$@6", "class_items", "class_item", "class_name",
1382 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1383 <  "class_connectfreq", "class_max_number", "class_max_global",
1384 <  "class_max_local", "class_max_ident", "class_sendq",
1382 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1383 >  "class_max_number", "class_max_global", "class_max_local",
1384 >  "class_max_ident", "class_sendq", "class_recvq",
1385    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1386    "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1387    "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
# Line 1471 | Line 1409 | static const char *const yytname[] =
1409    "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1410    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1411    "general_entry", "general_items", "general_item", "general_max_watch",
1412 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1413 <  "general_use_whois_actually", "general_reject_hold_time",
1414 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1415 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1416 <  "general_disable_remote_commands", "general_failed_oper_notice",
1417 <  "general_anti_nick_flood", "general_max_nick_time",
1418 <  "general_max_nick_changes", "general_max_accept",
1419 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1420 <  "general_ts_max_delta", "general_havent_read_conf",
1421 <  "general_kline_with_reason", "general_kline_reason",
1422 <  "general_invisible_on_connect", "general_warn_no_nline",
1423 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1424 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1425 <  "general_stats_i_oper_only", "general_pace_wait",
1426 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1427 <  "general_pace_wait_simple", "general_short_motd",
1428 <  "general_no_oper_flood", "general_true_no_oper_flood",
1429 <  "general_oper_pass_resv", "general_message_locale",
1430 <  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1431 <  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1432 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1433 <  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1434 <  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1435 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1436 <  "general_client_flood", "gline_entry", "$@26", "gline_items",
1437 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@27",
1500 <  "gline_logging_types", "gline_logging_type_item", "gline_user",
1501 <  "gline_server", "gline_action", "$@28", "gdeny_types", "gdeny_type_item",
1502 <  "channel_entry", "channel_items", "channel_item",
1503 <  "channel_disable_fake_channels", "channel_restrict_channels",
1504 <  "channel_disable_local_channels", "channel_use_except",
1505 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1412 >  "general_gline_enable", "general_gline_duration",
1413 >  "general_gline_request_duration", "general_gline_min_cidr",
1414 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1415 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1416 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1417 >  "general_failed_oper_notice", "general_anti_nick_flood",
1418 >  "general_max_nick_time", "general_max_nick_changes",
1419 >  "general_max_accept", "general_anti_spam_exit_message_time",
1420 >  "general_ts_warn_delta", "general_ts_max_delta",
1421 >  "general_havent_read_conf", "general_invisible_on_connect",
1422 >  "general_warn_no_nline", "general_stats_e_disabled",
1423 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1424 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1425 >  "general_pace_wait", "general_caller_id_wait",
1426 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1427 >  "general_short_motd", "general_no_oper_flood",
1428 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1429 >  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1430 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1431 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1432 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1433 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1434 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1435 >  "general_default_floodcount", "channel_entry", "channel_items",
1436 >  "channel_item", "channel_disable_fake_channels",
1437 >  "channel_restrict_channels", "channel_knock_delay",
1438    "channel_knock_delay_channel", "channel_max_chans_per_user",
1439 <  "channel_quiet_on_ban", "channel_max_bans",
1439 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1440    "channel_default_split_user_count", "channel_default_split_server_count",
1441    "channel_no_create_on_split", "channel_no_join_on_split",
1442 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1443 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1444 <  "serverhide_flatten_links", "serverhide_hide_servers",
1445 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1446 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1442 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1443 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1444 >  "serverhide_hide_servers", "serverhide_hidden_name",
1445 >  "serverhide_links_delay", "serverhide_hidden",
1446 >  "serverhide_hide_server_ips", YY_NULL
1447   };
1448   #endif
1449  
# Line 1541 | Line 1473 | static const yytype_uint16 yytoknum[] =
1473       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1474       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1475       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1476 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1545 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1546 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1547 <     495,    59,   125,   123,    61,    44
1476 >     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1477   };
1478   # endif
1479  
1480   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1481   static const yytype_uint16 yyr1[] =
1482   {
1483 <       0,   246,   247,   247,   248,   248,   248,   248,   248,   248,
1484 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
1485 <     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
1486 <     250,   250,   250,   250,   250,   251,   251,   252,   252,   252,
1487 <     252,   253,   254,   254,   255,   255,   255,   256,   257,   258,
1488 <     259,   259,   260,   260,   260,   260,   260,   260,   260,   260,
1489 <     260,   260,   260,   260,   260,   260,   260,   260,   261,   262,
1490 <     263,   263,   264,   264,   265,   265,   266,   266,   267,   268,
1491 <     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1492 <     279,   280,   281,   281,   282,   282,   282,   282,   283,   284,
1493 <     285,   286,   287,   287,   288,   288,   288,   289,   291,   290,
1494 <     292,   292,   293,   293,   293,   293,   294,   295,   295,   297,
1495 <     296,   298,   298,   299,   299,   299,   299,   299,   299,   299,
1496 <     301,   300,   302,   302,   303,   303,   303,   303,   303,   303,
1497 <     303,   303,   303,   304,   305,   306,   307,   308,   309,   311,
1498 <     310,   312,   312,   313,   313,   313,   313,   313,   313,   313,
1499 <     313,   313,   313,   313,   313,   313,   313,   313,   313,   313,
1500 <     313,   313,   313,   315,   314,   316,   316,   317,   317,   317,
1501 <     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
1502 <     317,   317,   317,   317,   317,   319,   318,   320,   320,   321,
1503 <     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
1504 <     321,   321,   321,   322,   323,   324,   325,   326,   327,   328,
1505 <     329,   330,   331,   332,   333,   334,   336,   335,   338,   337,
1506 <     339,   339,   340,   340,   340,   341,   341,   342,   342,   342,
1507 <     342,   342,   344,   343,   345,   345,   346,   346,   347,   348,
1508 <     350,   349,   351,   351,   352,   352,   352,   352,   352,   352,
1509 <     352,   352,   352,   353,   354,   355,   356,   358,   357,   359,
1510 <     359,   360,   360,   360,   360,   360,   360,   360,   360,   360,
1511 <     361,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1512 <     367,   368,   369,   370,   371,   372,   372,   373,   373,   374,
1513 <     376,   375,   377,   377,   378,   378,   378,   378,   379,   380,
1514 <     382,   381,   383,   383,   384,   384,   384,   384,   384,   384,
1515 <     384,   384,   384,   384,   386,   385,   387,   387,   388,   388,
1516 <     388,   389,   391,   390,   392,   392,   393,   393,   393,   393,
1517 <     393,   393,   393,   393,   393,   393,   395,   394,   396,   396,
1518 <     397,   397,   397,   397,   397,   397,   397,   397,   397,   397,
1519 <     397,   397,   397,   397,   398,   399,   400,   401,   402,   403,
1520 <     404,   404,   406,   405,   407,   407,   408,   408,   408,   408,
1521 <     409,   410,   411,   412,   413,   415,   414,   417,   416,   418,
1522 <     418,   419,   420,   420,   421,   421,   421,   421,   422,   423,
1523 <     425,   424,   426,   426,   427,   427,   427,   428,   429,   430,
1524 <     431,   431,   432,   432,   433,   435,   434,   437,   436,   438,
1525 <     438,   439,   440,   440,   441,   441,   441,   441,   442,   443,
1526 <     444,   445,   445,   446,   446,   446,   446,   446,   446,   446,
1527 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1528 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1529 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1530 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1531 <     446,   446,   446,   446,   446,   447,   448,   449,   450,   451,
1532 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1533 <     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1534 <     472,   473,   473,   474,   474,   475,   476,   477,   478,   479,
1535 <     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1536 <     490,   491,   493,   492,   494,   494,   495,   495,   495,   495,
1537 <     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
1538 <     495,   495,   495,   495,   495,   495,   497,   496,   498,   498,
1539 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1540 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1541 <     500,   501,   502,   503,   505,   504,   506,   506,   507,   507,
1542 <     507,   507,   507,   507,   507,   508,   509,   511,   510,   512,
1543 <     512,   513,   513,   514,   515,   517,   516,   518,   518,   519,
1544 <     519,   520,   521,   521,   522,   522,   522,   522,   522,   522,
1545 <     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
1617 <     522,   522,   522,   523,   524,   525,   526,   527,   528,   529,
1618 <     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
1619 <     540,   541,   542,   542,   543,   543,   543,   543,   543,   543,
1620 <     543,   543,   544,   545,   546,   547,   548,   549,   550
1483 >       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1484 >     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1485 >     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1486 >     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1487 >     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1488 >     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1489 >     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1490 >     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1491 >     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1492 >     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1493 >     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1494 >     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1495 >     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1496 >     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1497 >     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1498 >     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1499 >     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1500 >     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1501 >     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1502 >     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1503 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1504 >     295,   295,   295,   296,   297,   298,   299,   300,   301,   302,
1505 >     303,   304,   305,   306,   307,   308,   310,   309,   312,   311,
1506 >     313,   313,   314,   314,   314,   315,   315,   316,   316,   316,
1507 >     316,   316,   318,   317,   319,   319,   320,   320,   321,   322,
1508 >     324,   323,   325,   325,   326,   326,   326,   326,   326,   326,
1509 >     326,   326,   326,   327,   328,   329,   330,   332,   331,   333,
1510 >     333,   334,   334,   334,   334,   334,   334,   334,   334,   334,
1511 >     334,   335,   336,   337,   339,   338,   340,   340,   341,   341,
1512 >     341,   341,   342,   343,   344,   345,   346,   346,   347,   347,
1513 >     348,   350,   349,   351,   351,   352,   352,   352,   352,   353,
1514 >     354,   356,   355,   357,   357,   358,   358,   358,   358,   358,
1515 >     358,   358,   358,   358,   358,   360,   359,   361,   361,   362,
1516 >     362,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1517 >     367,   367,   367,   367,   367,   367,   367,   369,   368,   370,
1518 >     370,   371,   371,   371,   371,   371,   371,   371,   371,   371,
1519 >     371,   371,   371,   371,   371,   372,   373,   374,   375,   376,
1520 >     377,   378,   378,   380,   379,   381,   381,   382,   382,   383,
1521 >     384,   385,   386,   387,   389,   388,   391,   390,   392,   392,
1522 >     393,   394,   394,   395,   395,   395,   395,   396,   397,   399,
1523 >     398,   400,   400,   401,   401,   401,   402,   403,   404,   405,
1524 >     405,   406,   406,   407,   409,   408,   411,   410,   412,   412,
1525 >     413,   414,   414,   415,   415,   415,   415,   416,   417,   418,
1526 >     419,   419,   420,   420,   420,   420,   420,   420,   420,   420,
1527 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1528 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1529 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1530 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1531 >     420,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1532 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1533 >     439,   440,   441,   442,   443,   444,   445,   446,   446,   447,
1534 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1535 >     457,   458,   459,   460,   461,   462,   463,   464,   466,   465,
1536 >     467,   467,   468,   468,   468,   468,   468,   468,   468,   468,
1537 >     468,   468,   468,   468,   468,   468,   468,   468,   468,   468,
1538 >     468,   468,   470,   469,   471,   471,   472,   472,   472,   472,
1539 >     472,   472,   472,   472,   472,   472,   472,   472,   472,   472,
1540 >     472,   472,   472,   472,   472,   472,   473,   474,   475,   476,
1541 >     477,   477,   478,   478,   478,   478,   478,   478,   478,   478,
1542 >     478,   478,   478,   478,   478,   478,   478,   479,   480,   481,
1543 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1544 >     492,   493,   494,   494,   495,   495,   495,   495,   495,   495,
1545 >     495,   496,   497,   498,   499,   500,   501
1546   };
1547  
1548   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1625 | Line 1550 | static const yytype_uint8 yyr2[] =
1550   {
1551         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1552         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1553 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1554 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1555 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1556 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1557 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1558 <       3,     1,     1,     1,     3,     1,     1,     1,     4,     4,
1553 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1554 >       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1555 >       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1556 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1557 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1558 >       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1559         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1560 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1561 <       4,     5,     2,     1,     1,     1,     2,     4,     0,     6,
1562 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
1563 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1564 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1565 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     0,
1566 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1560 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1561 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1562 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1563 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1564 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1565 >       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1566 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1567         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1568 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1568 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1569         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1570         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1571         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
# Line 1651 | Line 1576 | static const yytype_uint8 yyr2[] =
1576         0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1577         1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1578         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1579 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1580 <       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1581 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1582 <       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1583 <       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1584 <       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1585 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1579 >       1,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1580 >       1,     2,     4,     4,     4,     5,     2,     1,     1,     1,
1581 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1582 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1583 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1584 >       1,     2,     4,     0,     5,     3,     1,     1,     1,     1,
1585 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1586         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1587 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1588 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1589 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1590 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1591 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1592 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1593 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1594 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1587 >       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
1588 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     4,
1589 >       4,     4,     4,     4,     0,     6,     0,     5,     3,     1,
1590 >       1,     2,     1,     1,     1,     1,     1,     4,     4,     0,
1591 >       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
1592 >       1,     1,     1,     4,     0,     6,     0,     5,     3,     1,
1593 >       1,     2,     1,     1,     1,     1,     1,     4,     4,     5,
1594 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1595         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1596         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1598         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1599 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1599 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1600         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1601         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1602         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1603 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1604 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1680 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1681 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1603 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1604 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 +       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1607         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1609 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1610 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1687 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1688 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1689 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1608 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     5,
1609 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1610 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1611         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1612         4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1613 <       1,     1,     4,     4,     4,     4,     4,     4,     4
1613 >       1,     4,     4,     4,     4,     4,     4
1614   };
1615  
1616   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1697 | Line 1618 | static const yytype_uint8 yyr2[] =
1618     means the default is an error.  */
1619   static const yytype_uint16 yydefact[] =
1620   {
1621 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1622 <     415,     0,   584,   250,   385,   226,     0,     0,   130,   283,
1623 <       0,     0,   300,   324,     0,     3,    24,    11,     4,     5,
1624 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1625 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1705 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1621 >       2,     0,     1,     0,     0,     0,   195,   347,   399,     0,
1622 >     414,     0,   250,   384,   226,     0,     0,   129,   284,     0,
1623 >       0,   301,   325,     0,     3,    23,    11,     4,     5,     6,
1624 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1625 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1626         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1707       0,     0,     0,     0,     0,    93,    94,    96,    95,   632,
1627         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1628 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1710 <     631,   626,   614,   615,   616,   617,   619,   620,   621,   622,
1711 <     618,   623,   624,   625,   627,   628,   629,   630,     0,     0,
1712 <       0,   413,     0,     0,   411,   412,     0,   484,     0,     0,
1628 >       0,     0,    92,    93,    95,    94,   596,     0,     0,     0,
1629         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1630 +       0,     0,   581,   595,   591,   583,   584,   585,   586,   587,
1631 +     582,   588,   589,   590,   592,   593,   594,     0,     0,     0,
1632 +     412,     0,     0,   410,   411,     0,   481,     0,     0,     0,
1633         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715       0,     0,     0,     0,     0,     0,   556,     0,   532,     0,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 +       0,     0,     0,     0,     0,     0,   552,     0,   528,     0,
1636         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637 <     432,   482,   477,   478,   479,   480,   476,   443,   433,   434,
1638 <     470,   435,   436,   437,   438,   439,   440,   441,   442,   473,
1639 <     444,   445,   446,   447,   481,   449,   454,   450,   452,   451,
1640 <     465,   466,   453,   455,   456,   457,   458,   459,   448,   461,
1641 <     462,   463,   483,   474,   475,   472,   464,   460,   468,   469,
1642 <     467,   471,     0,     0,     0,     0,     0,     0,     0,   103,
1643 <     104,   105,     0,     0,     0,     0,     0,    43,    44,    45,
1644 <       0,     0,   661,     0,     0,     0,     0,     0,     0,     0,
1645 <       0,   653,   654,   655,   659,   656,   658,   657,   660,     0,
1637 >       0,     0,     0,     0,     0,     0,     0,   431,   479,   473,
1638 >     474,   475,   476,   477,   472,   442,   432,   433,   467,   434,
1639 >     435,   436,   437,   438,   439,   440,   441,   469,   443,   444,
1640 >     478,   446,   451,   447,   449,   448,   462,   463,   450,   452,
1641 >     453,   454,   455,   456,   445,   458,   459,   460,   480,   470,
1642 >     471,   468,   461,   457,   465,   466,   464,     0,     0,     0,
1643 >       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1644 >       0,    42,    43,    44,     0,     0,   620,     0,     0,     0,
1645 >       0,     0,     0,     0,   613,   614,   615,   618,   616,   617,
1646 >     619,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647 >       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1648 >      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1649 >      52,    60,    57,    53,     0,     0,   299,     0,     0,   297,
1650 >     298,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1651         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1652 <       0,     0,     0,     0,     0,     0,    51,    64,    65,    63,
1653 <      60,    59,    66,    52,    62,    55,    56,    57,    53,    61,
1654 <      58,    54,     0,     0,   298,     0,     0,   296,   297,    97,
1655 <       0,     0,     0,     0,    92,     0,     0,     0,     0,     0,
1652 >       0,     0,   580,     0,     0,     0,     0,     0,     0,     0,
1653 >       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1654 >     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1655 >     201,   203,     0,     0,     0,     0,     0,   373,     0,     0,
1656 >       0,     0,     0,     0,     0,     0,     0,   350,   351,   352,
1657 >     353,   354,   355,   357,   356,   359,   363,   360,   361,   362,
1658 >     358,   405,     0,     0,     0,   402,   403,   404,     0,     0,
1659 >     409,   426,     0,     0,   416,   425,     0,   422,   423,   424,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1733       0,     0,     0,     0,   612,     0,     0,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1735     198,   199,   202,   203,   205,   206,   207,   208,   209,   210,
1736     211,   200,   201,   204,     0,     0,     0,     0,     0,   372,
1737       0,     0,     0,     0,     0,     0,     0,     0,     0,   349,
1738     350,   351,   352,   353,   354,   356,   355,   358,   362,   359,
1739     360,   361,   357,   406,     0,     0,     0,   403,   404,   405,
1740       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1741     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1662         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1663         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1665 +     430,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1666 +       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1667 +     396,     0,   386,     0,   395,     0,   392,   393,   394,     0,
1668 +     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1669 +     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1670 +       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1671 +     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1672 +       0,     0,     0,     0,   287,   288,   289,   290,     0,     0,
1673 +       0,     0,     0,     0,     0,   612,    66,     0,     0,     0,
1674         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1675 <       0,     0,     0,     0,   431,   594,   605,     0,     0,   597,
1676 <       0,     0,     0,   587,   588,   589,   590,   591,   592,   593,
1677 <       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
1678 <     253,   254,   255,   256,   261,   257,   258,   259,   260,   397,
1679 <       0,   387,     0,   396,     0,   393,   394,   395,     0,   228,
1680 <       0,     0,     0,   238,     0,   236,   237,   239,   240,   106,
1752 <       0,     0,   102,     0,    46,     0,     0,     0,    42,     0,
1753 <       0,     0,   173,     0,     0,     0,   149,     0,     0,   133,
1754 <     134,   135,   136,   139,   140,   138,   137,   141,     0,     0,
1755 <       0,     0,     0,   286,   287,   288,   289,     0,     0,     0,
1756 <       0,     0,     0,     0,     0,   652,    67,     0,     0,     0,
1675 >       0,     0,     0,    49,     0,     0,   311,     0,     0,   304,
1676 >     305,   306,   307,     0,     0,   333,     0,   328,   329,   330,
1677 >       0,     0,   296,     0,     0,     0,    90,     0,     0,     0,
1678 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679 >       0,     0,   579,   212,     0,     0,     0,     0,     0,     0,
1680 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   364,
1681         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1682 <       0,     0,     0,    50,     0,     0,   310,     0,     0,   303,
1683 <     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1760 <       0,     0,   295,     0,     0,     0,    91,     0,     0,     0,
1761 <       0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
1762 <       0,     0,     0,     0,     0,     0,   611,   212,     0,     0,
1682 >       0,     0,     0,     0,   349,     0,     0,     0,   401,     0,
1683 >     408,     0,     0,     0,     0,   421,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1764       0,     0,   197,   363,     0,     0,     0,     0,     0,     0,
1765       0,     0,     0,     0,     0,     0,     0,     0,   348,     0,
1766       0,     0,   402,     0,   409,     0,     0,     0,     0,   422,
1685         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1686         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1687         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1688 +       0,     0,     0,     0,     0,     0,     0,   429,   262,     0,
1689 +       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1690 +       0,     0,     0,   391,   241,     0,     0,     0,     0,     0,
1691 +     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1692 +       0,     0,     0,     0,     0,     0,     0,   131,   291,     0,
1693 +       0,     0,     0,   286,     0,     0,     0,     0,     0,     0,
1694 +     611,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1695 +      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1696 +       0,     0,    48,   308,     0,     0,     0,     0,   303,   331,
1697 +       0,     0,     0,   327,     0,   295,    99,    98,    97,   606,
1698 +     605,   597,    26,    26,    26,    26,    26,    28,    27,   599,
1699 +     600,   604,   602,   601,   607,   608,   609,   610,   603,   598,
1700         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1701 <       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
1702 <       0,     0,     0,     0,   430,     0,     0,     0,     0,     0,
1703 <       0,     0,   586,   262,     0,     0,     0,     0,     0,     0,
1704 <       0,     0,     0,   252,     0,     0,     0,     0,   392,   241,
1705 <       0,     0,     0,     0,     0,   235,     0,   101,     0,     0,
1706 <       0,    41,   142,     0,     0,     0,     0,     0,     0,     0,
1707 <       0,     0,   132,   290,     0,     0,     0,     0,   285,     0,
1708 <       0,     0,     0,     0,     0,     0,   651,     0,     0,     0,
1709 <       0,     0,     0,     0,     0,    72,    73,     0,    71,    76,
1710 <      77,     0,    75,     0,     0,     0,     0,     0,    49,   307,
1711 <       0,     0,     0,     0,   302,   330,     0,     0,     0,   326,
1712 <       0,   294,   100,    99,    98,   648,   645,   644,   633,   635,
1713 <      27,    27,    27,    27,    27,    29,    28,   639,   640,   643,
1714 <     641,   646,   647,   649,   650,   642,   634,   636,   637,   638,
1715 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1716 <       0,     0,     0,   196,     0,     0,     0,     0,     0,     0,
1717 <       0,     0,     0,     0,     0,     0,     0,     0,   347,     0,
1718 <       0,   401,   414,     0,     0,     0,   416,   496,   500,   516,
1719 <     582,   530,   494,   524,   527,   495,   486,   487,   503,   492,
1720 <     493,   506,   491,   505,   504,   499,   498,   497,   525,   485,
1721 <     523,   580,   581,   520,   517,   567,   560,   577,   578,   561,
1722 <     562,   563,   564,   572,   565,   575,   579,   568,   573,   569,
1723 <     574,   566,   571,   570,   576,     0,   559,   522,   542,   536,
1724 <     553,   554,   537,   538,   539,   540,   548,   541,   551,   555,
1725 <     544,   549,   545,   550,   543,   547,   546,   552,     0,   535,
1726 <     515,   518,   529,   489,   490,   519,   508,   513,   514,   511,
1727 <     512,   509,   510,   502,   501,    35,    35,    35,    37,    36,
1728 <     583,   528,   531,   521,   526,   488,   507,     0,     0,     0,
1729 <       0,     0,     0,   585,     0,     0,     0,     0,     0,     0,
1730 <       0,     0,   251,     0,     0,     0,   386,     0,     0,     0,
1731 <     246,   242,   245,   227,   107,     0,     0,   119,     0,     0,
1732 <     111,   112,   114,   113,    47,    48,     0,     0,     0,     0,
1733 <       0,     0,     0,     0,   131,     0,     0,     0,   284,   667,
1734 <     662,   666,   664,   668,   663,   665,    84,    90,    82,    86,
1735 <      85,    79,    78,    80,    68,     0,    69,     0,    83,    81,
1736 <      89,    87,    88,     0,     0,     0,   301,     0,     0,   325,
1737 <     299,    30,    31,    32,    33,    34,   223,   224,   217,   219,
1738 <     221,   220,   218,   213,   225,   216,   214,   215,   222,   368,
1739 <     370,   371,   383,   380,   376,   377,   379,   378,     0,   375,
1740 <     365,   381,   382,   364,   369,   367,   384,   366,   407,   408,
1741 <     428,   429,   421,     0,   420,   557,     0,   533,     0,    38,
1742 <      39,    40,   610,   609,     0,   608,   596,   595,   602,   601,
1743 <       0,   600,   604,   603,   265,   266,   275,   272,   277,   274,
1814 <     273,   279,   276,   278,   271,     0,   270,   264,   282,   281,
1815 <     280,   263,   399,   391,     0,   390,   398,   233,   234,   232,
1816 <       0,   231,   249,   248,     0,     0,     0,   115,     0,     0,
1817 <       0,     0,   110,   148,   146,   188,   185,   184,   177,   179,
1818 <     194,   189,   192,   187,   178,   193,   181,   190,   182,   191,
1819 <     186,   180,   183,     0,   176,   143,   145,   147,   159,   153,
1820 <     170,   171,   154,   155,   156,   157,   165,   158,   168,   172,
1821 <     161,   166,   162,   167,   160,   164,   163,   169,     0,   152,
1822 <     144,   292,   293,   291,    70,    74,   308,   314,   320,   323,
1823 <     316,   322,   317,   321,   319,   315,   318,     0,   313,   309,
1824 <     331,   336,   342,   345,   338,   344,   339,   343,   341,   337,
1825 <     340,     0,   335,   373,     0,   418,     0,   558,   534,   606,
1826 <       0,   598,     0,   268,     0,   388,     0,   229,     0,   247,
1827 <     244,   243,     0,     0,     0,     0,   109,   174,     0,   150,
1828 <       0,   311,     0,   333,     0,   374,   419,   607,   599,   269,
1829 <     389,   230,   116,   125,   128,   127,   124,   129,   126,   123,
1830 <       0,   122,   118,   117,   175,   151,   312,   334,   120,     0,
1831 <     121
1701 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1702 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   348,
1703 >       0,     0,   400,   413,     0,     0,     0,   415,   494,   498,
1704 >     512,   578,   526,   492,   520,   523,   493,   484,   483,   485,
1705 >     486,   487,   501,   490,   491,   502,   489,   497,   496,   495,
1706 >     521,   482,   519,   576,   577,   516,   513,   563,   556,   573,
1707 >     574,   557,   558,   559,   560,   568,   561,   571,   575,   564,
1708 >     569,   565,   570,   562,   567,   566,   572,     0,   555,   518,
1709 >     538,   532,   549,   550,   533,   534,   535,   536,   544,   537,
1710 >     547,   551,   540,   545,   541,   546,   539,   543,   542,   548,
1711 >       0,   531,   511,   514,   525,   488,   515,   504,   509,   510,
1712 >     507,   508,   505,   506,   500,   499,   524,   527,   517,   522,
1713 >     503,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1714 >       0,     0,     0,   385,     0,     0,     0,   246,   242,   245,
1715 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1716 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1717 >       0,   130,     0,     0,     0,   285,   621,   625,   623,   626,
1718 >     622,   624,    83,    89,    81,    85,    84,    78,    77,    79,
1719 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1720 >       0,     0,   302,     0,     0,   326,   300,    29,    30,    31,
1721 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1722 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1723 >     369,   371,   372,   382,   379,   377,   378,     0,   376,   366,
1724 >     380,   381,   365,   370,   368,   383,   367,   406,   407,   427,
1725 >     428,   420,     0,   419,   553,     0,   529,     0,   265,   266,
1726 >     275,   272,   277,   274,   273,   280,   276,   278,   271,   279,
1727 >       0,   270,   264,   283,   282,   281,   263,   398,   390,     0,
1728 >     389,   397,   233,   234,   232,     0,   231,   249,   248,     0,
1729 >       0,     0,   114,     0,     0,     0,     0,   109,   147,   145,
1730 >     187,   184,   183,   176,   178,   194,   188,   191,   186,   177,
1731 >     192,   180,   189,   193,   181,   190,   185,   179,   182,     0,
1732 >     175,   142,   144,   146,   158,   152,   169,   170,   153,   154,
1733 >     155,   156,   164,   157,   167,   171,   160,   165,   161,   166,
1734 >     159,   163,   162,   168,     0,   151,   143,   293,   294,   292,
1735 >      69,    73,   309,   315,   321,   324,   317,   323,   318,   322,
1736 >     320,   316,   319,     0,   314,   310,   332,   337,   343,   346,
1737 >     339,   345,   340,   344,   342,   338,   341,     0,   336,    37,
1738 >      38,    39,   374,     0,   417,     0,   554,   530,   268,     0,
1739 >     387,     0,   229,     0,   247,   244,   243,     0,     0,     0,
1740 >       0,   108,   173,     0,   149,     0,   312,     0,   334,     0,
1741 >     375,   418,   269,   388,   230,   115,   124,   127,   126,   123,
1742 >     128,   125,   122,     0,   121,   117,   116,   174,   150,   313,
1743 >     335,   119,     0,   120
1744   };
1745  
1746   /* YYDEFGOTO[NTERM-NUM].  */
1747   static const yytype_int16 yydefgoto[] =
1748   {
1749 <      -1,     1,    25,   835,   836,   978,   979,    26,   246,   247,
1750 <     248,   249,    27,   285,   286,   287,   288,   797,   798,   801,
1751 <     802,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1752 <     298,   299,   300,   301,    28,    74,    75,    76,    77,    78,
1753 <      29,   238,   239,   240,   241,   242,  1019,  1020,  1021,  1022,
1754 <    1023,  1169,  1300,  1301,    30,    63,   538,   539,   540,   541,
1755 <     542,   543,   544,   545,   546,   769,  1218,  1219,   547,   765,
1756 <    1193,  1194,    31,    51,   349,   350,   351,   352,   353,   354,
1757 <     355,   356,   357,   358,   359,   360,   361,   362,   363,    32,
1758 <      60,   513,   750,  1160,  1161,   514,   515,   516,  1166,  1011,
1759 <    1012,   517,   518,    33,    58,   489,   490,   491,   492,   493,
1760 <     494,   495,   736,  1145,  1146,   496,   497,   498,    34,    64,
1761 <     552,   553,   554,   555,   556,    35,   306,   307,   308,    36,
1762 <      67,   588,   589,   590,   591,   592,   811,  1237,  1238,    37,
1763 <      68,   596,   597,   598,   599,   817,  1251,  1252,    38,    52,
1764 <     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
1765 <     648,  1098,  1099,   388,   389,   390,   391,   392,    39,    59,
1766 <     503,   745,  1154,  1155,   504,   505,   506,   507,    40,    53,
1767 <     396,   397,   398,   399,    41,   123,   124,   125,    42,    55,
1768 <     407,   667,  1113,  1114,   408,   409,   410,   411,    43,   179,
1769 <     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1770 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1771 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1772 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1773 <     220,   221,   222,   223,   224,   225,   226,   442,   958,   959,
1774 <     227,   440,   935,   936,   228,   229,   230,   231,    44,    57,
1775 <     472,   473,   474,   475,   476,   728,  1130,  1131,   477,   478,
1776 <     479,   725,  1124,  1125,    45,    98,    99,   100,   101,   102,
1777 <     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1866 <     113,   114,   115,   116,   117,    46,   260,   261,   262,   263,
1867 <     264,   265,   266,   267,   268
1749 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1750 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1751 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1752 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1753 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1754 >     950,  1084,  1213,  1214,    29,    60,   499,   500,   501,   502,
1755 >     503,   504,   505,   506,   507,   714,  1134,  1135,   508,   710,
1756 >    1109,  1110,    30,    49,   327,   328,   329,   330,   331,   332,
1757 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1758 >      57,   474,   695,  1075,  1076,   475,   476,   477,  1081,   938,
1759 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1760 >     455,   456,   681,  1060,  1061,   457,   458,   459,    33,    61,
1761 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1762 >      64,   548,   549,   550,   551,   552,   755,  1153,  1154,    36,
1763 >      65,   556,   557,   558,   559,   761,  1167,  1168,    37,    50,
1764 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1765 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1766 >     464,   690,  1069,  1070,   465,   466,   467,   468,    39,    51,
1767 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1768 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1769 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1770 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1771 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1772 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1773 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1774 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1775 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1776 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1777 >     249,   250
1778   };
1779  
1780   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1781     STATE-NUM.  */
1782 < #define YYPACT_NINF -560
1782 > #define YYPACT_NINF -678
1783   static const yytype_int16 yypact[] =
1784   {
1785 <    -560,   667,  -560,  -206,  -223,  -221,  -560,  -560,  -560,  -218,
1786 <    -560,  -191,  -560,  -560,  -560,  -560,  -189,  -183,  -560,  -560,
1787 <    -154,  -136,  -560,  -560,  -133,  -560,  -560,  -560,  -560,  -560,
1788 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1789 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    42,
1790 <     544,  -115,  -109,   -80,    32,   -72,   375,   -70,   -53,   -51,
1791 <     -33,    60,    87,   -20,   -18,   324,   334,    -5,    -3,    20,
1792 <     -89,    17,    35,    51,     9,  -560,  -560,  -560,  -560,  -560,
1793 <      61,    63,    73,    79,    96,   111,   117,   125,   131,   136,
1794 <     137,   152,   154,   156,   159,   162,   170,   175,   180,  -560,
1795 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1796 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   709,   461,
1797 <      98,  -560,   195,    10,  -560,  -560,   266,  -560,   198,   199,
1798 <     202,   203,   206,   213,   214,   216,   217,   219,   229,   230,
1799 <     231,   232,   242,   243,   246,   250,   253,   256,   257,   259,
1800 <     261,   263,   265,   268,   275,   276,  -560,   277,  -560,   281,
1801 <     282,   284,   287,   291,   293,   295,   296,   299,   300,   307,
1802 <     314,   315,   316,   318,   319,   321,   322,   323,   327,   110,
1803 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1804 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1805 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1806 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1807 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1808 <    -560,  -560,     2,   509,    16,   326,    57,   330,    36,  -560,
1809 <    -560,  -560,     7,    77,   331,   332,    28,  -560,  -560,  -560,
1810 <     279,   211,  -560,   335,   338,   339,   341,   342,   343,   344,
1811 <       3,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   200,
1812 <     345,   346,   348,   349,   352,   355,   356,   357,   358,   360,
1813 <     362,   363,   365,   366,   367,    74,  -560,  -560,  -560,  -560,
1814 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1815 <    -560,  -560,   197,     6,  -560,   368,    46,  -560,  -560,  -560,
1816 <     140,   173,   392,   329,  -560,   438,   328,   505,   441,   445,
1817 <     514,   514,   515,   516,   451,   452,   521,   514,   456,   457,
1818 <     459,   460,   462,   396,  -560,   398,   397,   401,   402,   403,
1819 <     404,   408,   409,   410,   411,   412,   413,   415,   416,     4,
1820 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1821 <    -560,  -560,  -560,  -560,   399,   417,   418,   419,   420,  -560,
1822 <     425,   426,   429,   430,   431,   433,   435,   436,   290,  -560,
1823 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1824 <    -560,  -560,  -560,  -560,   439,   440,    11,  -560,  -560,  -560,
1825 <     511,   446,  -560,  -560,   442,   449,  -560,  -560,    12,  -560,
1826 <    -560,  -560,   522,   514,   514,   590,   525,   526,   593,   573,
1827 <     532,   597,   599,   601,   546,   550,   551,   514,   598,   552,
1828 <     624,   627,   514,   628,   630,   610,   636,   637,   572,   575,
1829 <     508,   577,   510,   514,   514,   579,   514,   580,   583,   584,
1830 <    -105,   -99,   585,   586,   514,   514,   653,   633,   514,   589,
1831 <     592,   594,   595,   528,  -560,  -560,  -560,   533,   534,  -560,
1832 <     535,   536,    14,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1833 <     540,   539,   541,  -560,   543,   545,   547,   548,   549,    33,
1834 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1835 <     555,  -560,   556,  -560,    22,  -560,  -560,  -560,   553,  -560,
1836 <     558,   559,   560,  -560,     8,  -560,  -560,  -560,  -560,  -560,
1837 <     596,   554,  -560,   212,  -560,   645,   657,   564,  -560,   565,
1838 <     563,   566,  -560,   567,   568,   569,  -560,   570,    15,  -560,
1839 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   574,   576,
1840 <     581,   582,    27,  -560,  -560,  -560,  -560,   608,   614,   632,
1841 <     685,   641,   643,   514,   588,  -560,  -560,   692,   648,   699,
1842 <     702,   703,   704,   705,   708,   -63,   -49,   710,   711,   730,
1843 <     712,   713,   604,  -560,   611,   607,  -560,   612,    97,  -560,
1844 <    -560,  -560,  -560,   619,   617,  -560,    30,  -560,  -560,  -560,
1845 <     724,   622,  -560,   631,   634,   635,  -560,   654,   656,   660,
1846 <     664,   665,   272,   676,   677,   681,   684,   693,   695,   696,
1847 <     698,   701,   706,   707,   714,   715,  -560,  -560,   761,   764,
1848 <     514,   767,   768,   776,   779,   763,   823,   828,   514,   514,
1849 <     653,   716,  -560,  -560,   809,   -75,   812,   770,   700,   818,
1850 <     819,   820,   821,   843,   827,   829,   830,   718,  -560,   831,
1851 <     832,   723,  -560,   726,  -560,   834,   835,   728,   727,  -560,
1852 <     729,   732,   733,   734,   735,   736,   737,   739,   740,   741,
1853 <     742,   743,   744,   745,   746,   747,   748,   749,   750,   751,
1854 <     752,   753,   754,   755,   756,   757,   758,   759,   663,   760,
1855 <     697,   762,   765,   766,   769,   771,   772,   773,   774,   775,
1856 <     777,   778,   780,   782,   783,   784,    54,   785,   786,   787,
1857 <     788,   789,   790,   791,  -560,   792,   514,   793,   794,   871,
1858 <     873,   796,  -560,  -560,   874,   833,   795,   877,   844,   880,
1859 <     886,   889,   800,  -560,   902,   798,   903,   802,  -560,  -560,
1860 <     801,   904,   913,   936,   806,  -560,   807,  -560,   194,   808,
1861 <     810,  -560,  -560,   919,   876,   811,   922,   923,   925,   813,
1862 <     927,   822,  -560,  -560,   928,   929,   930,   824,  -560,   825,
1863 <     826,   836,   837,   838,   839,   840,  -560,   841,   842,   845,
1864 <     846,   847,   848,   849,   850,  -560,  -560,  -199,  -560,  -560,
1865 <    -560,  -196,  -560,   851,   852,   853,   854,   855,  -560,  -560,
1866 <     931,   856,   933,   857,  -560,  -560,   937,   858,   860,  -560,
1867 <     862,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1868 <     514,   514,   514,   514,   514,  -560,  -560,  -560,  -560,  -560,
1869 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1870 <     863,   864,   865,   866,   867,   868,   869,   872,   875,   878,
1871 <     879,   881,   882,  -560,   883,   884,   885,   887,   888,   141,
1872 <     890,   891,   892,   893,   894,   895,   896,   897,  -560,   898,
1873 <     899,  -560,  -560,   900,   901,   934,  -560,  -560,  -560,  -560,
1874 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1875 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1876 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1877 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1878 <    -560,  -560,  -560,  -560,  -560,  -182,  -560,  -560,  -560,  -560,
1879 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1880 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   -30,  -560,
1881 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1882 <    -560,  -560,  -560,  -560,  -560,   653,   653,   653,  -560,  -560,
1883 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,    13,   905,   906,
1884 <      21,   907,   908,  -560,   909,   910,   870,   911,   912,   914,
1885 <     915,   916,  -560,   917,   935,   918,  -560,   -47,   920,   921,
1886 <     940,   924,  -560,  -560,  -560,   926,   932,  -560,   938,    89,
1887 <    -560,  -560,  -560,  -560,  -560,  -560,   939,   942,   479,   943,
1888 <     944,   945,   725,   946,  -560,   947,   948,   949,  -560,  -560,
1889 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1890 <    -560,  -560,  -560,  -560,  -560,   -63,  -560,   -49,  -560,  -560,
1891 <    -560,  -560,  -560,   950,   507,   951,  -560,   952,   531,  -560,
1892 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1893 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1894 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    -6,  -560,
1895 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1896 <    -560,  -560,  -560,    65,  -560,  -560,   663,  -560,   697,  -560,
1897 <    -560,  -560,  -560,  -560,   100,  -560,  -560,  -560,  -560,  -560,
1898 <     101,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1899 <    -560,  -560,  -560,  -560,  -560,   106,  -560,  -560,  -560,  -560,
1900 <    -560,  -560,  -560,  -560,   109,  -560,  -560,  -560,  -560,  -560,
1901 <     112,  -560,  -560,  -560,   959,   936,   953,  -560,   941,   954,
1902 <     -91,   955,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1903 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1904 <    -560,  -560,  -560,   123,  -560,  -560,  -560,  -560,  -560,  -560,
1905 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1906 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   126,  -560,
1907 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1998 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   133,  -560,  -560,
1999 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2000 <    -560,   148,  -560,  -560,   141,  -560,   934,  -560,  -560,  -560,
2001 <      13,  -560,    21,  -560,   870,  -560,   935,  -560,   -47,  -560,
2002 <    -560,  -560,   956,   262,   958,   960,  -560,  -560,   479,  -560,
2003 <     725,  -560,   507,  -560,   531,  -560,  -560,  -560,  -560,  -560,
2004 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2005 <     150,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   262,
2006 <    -560
1785 >    -678,   581,  -678,  -132,  -213,  -211,  -678,  -678,  -678,  -200,
1786 >    -678,  -194,  -678,  -678,  -678,  -191,  -189,  -678,  -678,  -181,
1787 >    -179,  -678,  -678,  -176,  -678,  -678,  -678,  -678,  -678,  -678,
1788 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1789 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   285,   812,  -143,
1790 >    -106,  -103,    18,   -88,   349,   -79,   -73,   -68,    62,    68,
1791 >     -66,   -57,   388,   387,   -43,   -21,    15,  -182,   -16,   -11,
1792 >      -9,     8,  -678,  -678,  -678,  -678,  -678,    -4,    59,    71,
1793 >      94,    97,   110,   131,   134,   136,   141,   142,   144,   145,
1794 >     146,   155,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1795 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   622,   419,    29,
1796 >    -678,   147,    44,  -678,  -678,   198,  -678,   148,   158,   163,
1797 >     164,   165,   167,   168,   169,   174,   179,   182,   183,   188,
1798 >     189,   192,   195,   196,   200,   205,   212,   227,   229,   230,
1799 >     232,   243,   246,   248,   249,   250,  -678,   251,  -678,   252,
1800 >     254,   255,   256,   263,   264,   267,   268,   271,   273,   274,
1801 >     275,   276,   277,   279,   280,   281,    36,  -678,  -678,  -678,
1802 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1803 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1804 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1805 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1806 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,   448,     4,   257,
1807 >      65,   283,    45,  -678,  -678,  -678,    80,    88,   284,   294,
1808 >      49,  -678,  -678,  -678,   426,    13,  -678,   295,   302,   303,
1809 >     304,   305,   307,     7,  -678,  -678,  -678,  -678,  -678,  -678,
1810 >    -678,   187,   308,   309,   310,   311,   312,   314,   316,   318,
1811 >     319,   321,   322,   323,   324,   325,   326,    74,  -678,  -678,
1812 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1813 >    -678,  -678,  -678,  -678,    11,    28,  -678,   327,    53,  -678,
1814 >    -678,  -678,   253,   286,   299,   202,  -678,   384,   447,   390,
1815 >     456,   456,   459,   460,   464,   405,   406,   467,   456,   413,
1816 >     414,   332,  -678,   359,   357,   358,   361,   365,   366,   369,
1817 >     370,   373,   374,   375,   376,   383,   385,   156,  -678,  -678,
1818 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1819 >    -678,  -678,   362,   392,   393,   394,   395,  -678,   396,   398,
1820 >     400,   403,   404,   407,   408,   412,   210,  -678,  -678,  -678,
1821 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1822 >    -678,  -678,   415,   416,    66,  -678,  -678,  -678,   488,   391,
1823 >    -678,  -678,   418,   421,  -678,  -678,    39,  -678,  -678,  -678,
1824 >     472,   456,   456,   541,   483,   485,   546,   529,   489,   456,
1825 >     490,   456,   548,   551,   554,   496,   497,   499,   456,   560,
1826 >     562,   456,   563,   564,   547,   566,   568,   509,   511,   454,
1827 >     515,   457,   456,   456,   517,   519,   520,   521,   181,   184,
1828 >     523,   526,   456,   456,   569,   456,   528,   532,   533,   473,
1829 >    -678,   478,   479,   486,  -678,   487,   491,   492,   494,   495,
1830 >     199,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1831 >    -678,   500,  -678,   501,  -678,    69,  -678,  -678,  -678,   481,
1832 >    -678,   502,   506,   513,  -678,    51,  -678,  -678,  -678,  -678,
1833 >    -678,   542,   493,  -678,   498,  -678,   585,   589,   512,  -678,
1834 >     518,   514,   516,  -678,   525,   535,   538,  -678,   540,    56,
1835 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,   531,
1836 >     545,   549,   550,    33,  -678,  -678,  -678,  -678,   555,   558,
1837 >     590,   576,   591,   456,   536,  -678,  -678,   649,   601,   652,
1838 >     653,   655,   656,   662,   669,    46,   213,   670,   672,   695,
1839 >     679,   683,   587,  -678,   588,   586,  -678,   598,    20,  -678,
1840 >    -678,  -678,  -678,   605,   608,  -678,   152,  -678,  -678,  -678,
1841 >     689,   623,  -678,   625,   627,   629,  -678,   630,   631,   632,
1842 >     193,   633,   634,   636,   639,   640,   641,   646,   648,   650,
1843 >     651,   658,  -678,  -678,   724,   759,   456,   765,   768,   771,
1844 >     772,   755,   775,   777,   456,   778,   778,   665,  -678,  -678,
1845 >     764,   180,   766,   723,   666,   773,   774,   776,   779,   789,
1846 >     780,   781,   782,   674,  -678,   783,   784,   677,  -678,   680,
1847 >    -678,   785,   786,   676,   690,  -678,   691,   694,   696,   697,
1848 >     698,   699,   700,   701,   702,   703,   704,   707,   708,   709,
1849 >     710,   711,   712,   713,   714,   716,   717,   718,   719,   720,
1850 >     721,   722,   725,   726,   727,   573,   728,   609,   729,   730,
1851 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1852 >     741,   742,   743,   744,   745,   746,   747,  -678,  -678,   787,
1853 >     751,   748,   822,   864,   847,   848,   850,   753,  -678,   852,
1854 >     752,   854,   757,  -678,  -678,   756,   856,   858,   877,   762,
1855 >    -678,   763,  -678,   185,   767,   769,  -678,  -678,   862,   821,
1856 >     770,   866,   868,   869,   788,   870,   790,  -678,  -678,   872,
1857 >     873,   874,   792,  -678,   793,   794,   795,   796,   797,   798,
1858 >    -678,   799,   800,   801,   802,   803,   804,   805,   806,  -678,
1859 >    -678,  -204,  -678,  -678,  -678,  -197,  -678,   807,   808,   809,
1860 >     810,   811,  -678,  -678,   875,   813,   876,   814,  -678,  -678,
1861 >     878,   815,   817,  -678,   819,  -678,  -678,  -678,  -678,  -678,
1862 >    -678,  -678,   456,   456,   456,   456,   456,  -678,  -678,  -678,
1863 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1864 >     820,   823,   824,   825,   826,   827,   828,   829,   830,   831,
1865 >     832,   297,   833,   834,  -678,   835,   836,   837,   838,   839,
1866 >       5,   840,   841,   842,   843,   844,   845,   846,   849,  -678,
1867 >     851,   853,  -678,  -678,   855,   857,   859,  -678,  -678,  -678,
1868 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1869 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1870 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1871 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1872 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -195,  -678,  -678,
1873 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1874 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1875 >    -184,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1876 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1877 >    -678,   860,   861,   537,   863,   865,   867,   871,   879,  -678,
1878 >     880,   881,   882,  -678,   -26,   883,   884,   899,   818,  -678,
1879 >    -678,  -678,   885,   886,  -678,   887,   129,  -678,  -678,  -678,
1880 >    -678,  -678,  -678,   888,   891,   484,   892,   893,   894,   643,
1881 >     895,  -678,   896,   897,   898,  -678,  -678,  -678,  -678,  -678,
1882 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1883 >    -678,    46,  -678,   213,  -678,  -678,  -678,  -678,  -678,   900,
1884 >     657,   901,  -678,   902,   664,  -678,  -678,  -678,  -678,  -678,
1885 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1886 >    -678,  -678,  -678,   778,   778,   778,  -678,  -678,  -678,  -678,
1887 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -166,  -678,  -678,
1888 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1889 >    -678,  -678,  -164,  -678,  -678,   573,  -678,   609,  -678,  -678,
1890 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1891 >    -147,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -130,
1892 >    -678,  -678,  -678,  -678,  -678,   -46,  -678,  -678,  -678,   903,
1893 >     877,   904,  -678,   910,   905,   -92,   906,  -678,  -678,  -678,
1894 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1895 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    -7,
1896 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1897 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1898 >    -678,  -678,  -678,  -678,    76,  -678,  -678,  -678,  -678,  -678,
1899 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1900 >    -678,  -678,  -678,    82,  -678,  -678,  -678,  -678,  -678,  -678,
1901 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,    85,  -678,  -678,
1902 >    -678,  -678,  -678,     5,  -678,   859,  -678,  -678,  -678,   537,
1903 >    -678,   881,  -678,   -26,  -678,  -678,  -678,   907,   265,   909,
1904 >     911,  -678,  -678,   484,  -678,   643,  -678,   657,  -678,   664,
1905 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1906 >    -678,  -678,  -678,    95,  -678,  -678,  -678,  -678,  -678,  -678,
1907 >    -678,  -678,   265,  -678
1908   };
1909  
1910   /* YYPGOTO[NTERM-NUM].  */
1911   static const yytype_int16 yypgoto[] =
1912   {
1913 <    -560,  -560,  -560,  -316,  -319,  -559,  -456,  -560,  -560,   957,
1914 <    -560,  -560,  -560,  -560,   799,  -560,  -560,  -560,    18,  -560,
1915 <      19,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1916 <    -560,  -560,  -560,  -560,  -560,  -560,  1000,  -560,  -560,  -560,
1917 <    -560,  -560,   859,  -560,  -560,  -560,  -560,    56,  -560,  -560,
1918 <    -560,  -560,  -560,  -224,  -560,  -560,  -560,   561,  -560,  -560,
1919 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -169,  -560,  -560,
1920 <    -560,  -166,  -560,  -560,  -560,   781,  -560,  -560,  -560,  -560,
1921 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1922 <    -560,  -560,  -560,  -560,  -153,  -560,   600,  -560,  -560,  -560,
1923 <     -48,  -560,  -560,  -560,  -560,  -560,   629,  -560,  -560,  -560,
1924 <    -560,  -560,  -560,  -560,  -137,  -560,  -560,  -560,  -560,  -560,
1925 <    -560,   591,  -560,  -560,  -560,  -560,  -560,   961,  -560,  -560,
1926 <    -560,  -560,   557,  -560,  -560,  -560,  -560,  -560,  -138,  -560,
1927 <    -560,  -560,   578,  -560,  -560,  -560,  -560,  -130,  -560,  -560,
1928 <    -560,   797,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1929 <    -560,  -560,   -94,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1930 <    -560,  -560,  -560,  -103,  -560,   661,  -560,  -560,  -560,  -560,
1931 <    -560,   804,  -560,  -560,  -560,  -560,  1041,  -560,  -560,  -560,
1932 <    -560,  -560,  -560,   -90,  -560,   803,  -560,  -560,  -560,  -560,
1933 <     989,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1934 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1935 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1936 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1937 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    52,
1938 <    -560,  -560,  -560,    55,  -560,  -560,  -560,  -560,  -560,  -560,
1939 <    -560,   738,  -560,  -560,  -560,  -560,  -560,   -85,  -560,  -560,
1940 <    -560,  -560,  -560,   -88,  -560,  -560,  1075,  -560,  -560,  -560,
1941 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2041 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   962,  -560,  -560,
2042 <    -560,  -560,  -560,  -560,  -560
1913 >    -678,  -678,  -678,  -451,  -298,  -677,  -595,  -678,  -678,   890,
1914 >    -678,  -678,  -678,  -678,   761,  -678,  -678,  -678,    16,  -678,
1915 >      17,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1916 >    -678,  -678,  -678,  -678,  -678,  -678,   923,  -678,  -678,  -678,
1917 >    -678,  -678,   908,  -678,  -678,  -678,  -678,    50,  -678,  -678,
1918 >    -678,  -678,  -678,  -224,  -678,  -678,  -678,   505,  -678,  -678,
1919 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -196,  -678,  -678,
1920 >    -678,  -192,  -678,  -678,  -678,   750,  -678,  -678,  -678,  -678,
1921 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1922 >    -678,  -678,  -678,  -678,  -153,  -678,   561,  -678,  -678,  -678,
1923 >     -17,  -678,  -678,  -678,  -678,  -678,   615,  -678,  -678,  -678,
1924 >    -678,  -678,  -678,  -678,  -112,  -678,  -678,  -678,  -678,  -678,
1925 >    -678,   556,  -678,  -678,  -678,  -678,  -678,   791,  -678,  -678,
1926 >    -678,  -678,   539,  -678,  -678,  -678,  -678,  -678,  -126,  -678,
1927 >    -678,  -678,   527,  -678,  -678,  -678,  -678,  -125,  -678,  -678,
1928 >    -678,   758,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1929 >    -678,  -678,  -100,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1930 >    -678,  -678,  -678,   -97,  -678,   616,  -678,  -678,  -678,  -678,
1931 >    -678,   715,  -678,  -678,  -678,  -678,   973,  -678,  -678,  -678,
1932 >    -678,  -678,  -678,   -87,  -678,   705,  -678,  -678,  -678,  -678,
1933 >     924,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1934 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1935 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1936 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1937 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,    54,  -678,
1938 >    -678,  -678,    47,  -678,  -678,  -678,  -678,  -678,  1002,  -678,
1939 >    -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,  -678,
1940 >    -678,  -678,  -678,  -678,  -678,   889,  -678,  -678,  -678,  -678,
1941 >    -678,  -678
1942   };
1943  
1944   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1945     positive, shift that token.  If negative, reduce the rule which
1946     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1947 < #define YYTABLE_NINF -109
1947 > #define YYTABLE_NINF -108
1948   static const yytype_int16 yytable[] =
1949   {
1950 <     717,   613,   614,   465,   252,   335,   466,   593,   620,   508,
1951 <      70,   121,   393,   403,  1157,   465,   529,   499,   466,   716,
1952 <      49,   304,    50,   499,  1122,    54,   336,   337,   548,   243,
1953 <     338,   593,  1128,   121,   480,    47,    48,   236,   253,   530,
1954 <      71,   467,  1054,    70,   468,  1056,  1055,   304,   549,  1057,
1955 <      72,   254,    56,   467,    61,   509,   468,   481,   531,  1115,
1956 <      62,   236,   532,  1116,   255,   256,   257,   258,   975,   976,
1957 <     977,   708,   709,    71,   510,   269,   482,   710,   711,   511,
1958 <     483,   122,   394,    72,   259,   469,   795,   796,   243,    65,
1959 <    1015,   339,   340,   341,   671,   672,   342,   469,   584,   393,
1960 <     799,   800,   470,   122,   343,   270,   594,    66,   685,    73,
1961 <      69,   127,   404,   690,   470,   533,   344,   345,   128,   129,
1962 <     305,  1274,   865,   866,   701,   702,   244,   704,   118,   130,
1963 <     594,   550,   346,   347,   119,   714,   715,   131,   512,   719,
1964 <     534,   271,    73,   132,   395,   405,   305,   133,   134,   500,
1965 <     135,  1094,   309,  1095,   245,   500,   136,  1158,   484,   535,
1966 <     551,  1159,   348,   120,   716,   137,   138,   485,   486,   394,
1967 <     139,   126,   595,   232,   272,   140,   273,   274,   406,   141,
1968 <     142,    79,   501,   143,   862,   244,   144,   145,   501,  1016,
1969 <     233,  1123,   234,    80,   146,  1015,   595,   585,   584,  1129,
1970 <     147,   148,   487,   149,   150,   151,   152,   153,    81,    82,
1971 <     235,  1117,   548,   245,    83,  1118,    84,   275,   154,   276,
1972 <     277,   278,   279,   250,   536,   251,   155,   156,   157,   471,
1973 <     158,   395,   549,   159,   160,  1253,   280,   161,   302,  1254,
1974 <     303,   471,   537,   502,   785,   564,   641,   523,   162,   502,
1975 <     754,   313,   401,   661,   668,  1017,   731,   771,    85,    86,
1976 <     488,   310,   281,   586,   747,    87,    88,   403,   237,   777,
1977 <     527,   603,   818,   163,   282,   742,  -108,   164,   521,   311,
1978 <     529,   165,   166,   167,   168,   169,    89,    90,   601,   170,
1979 <     171,   364,   237,   365,  1016,   312,   366,   585,   519,   172,
1980 <    -108,    91,    92,   530,   604,   315,  1255,   316,   283,   284,
1981 <    1256,   852,    93,  1293,   367,   550,   582,   317,   524,   860,
1982 <     861,    94,   531,   318,   587,   252,   532,   508,  1018,   173,
1983 <     174,  1171,   175,   368,  1294,   269,  1295,   369,   176,   813,
1984 <     319,  1259,  1261,   177,   551,  1260,  1262,  1263,   178,  1096,
1985 <    1265,  1264,   463,  1267,  1266,   320,   370,  1268,   371,   253,
1986 <    1017,   321,  1097,   586,  1277,   270,   404,  1279,  1278,   322,
1987 <     372,  1280,   254,   509,  1281,   323,   127,  1296,  1282,   533,
1988 <     324,   325,   612,   128,   129,   255,   256,   257,   258,  1283,
1989 <     373,  1308,   510,  1284,   130,  1309,   326,   511,   327,   405,
1990 <     328,   271,   131,   329,   534,   259,   330,   988,   132,    95,
1991 <      96,    97,   133,   134,   331,   135,  1119,  1120,  1121,   332,
1992 <     374,   136,   333,   535,   587,   830,   831,   832,   833,   834,
1993 <     137,   138,   406,  1018,   272,   139,   273,   274,   608,   400,
1994 <     140,   566,   412,   413,   141,   142,   414,   415,   143,   375,
1995 <     416,   144,   145,  1297,  1298,   758,   512,   417,   418,   146,
1996 <     419,   420,   364,   421,   365,   147,   148,   366,   149,   150,
1997 <     151,   152,   153,   422,   423,   424,   425,   275,   376,   276,
1998 <     277,   278,   279,   154,  1175,   367,   426,   427,   536,  1299,
1999 <     428,   155,   156,   157,   429,   158,   280,   430,   159,   160,
2000 <     431,   432,   161,   433,   368,   434,   537,   435,   369,   436,
2001 <     480,  1176,   437,   162,  1071,  1072,  1073,  1074,  1075,   438,
2002 <     439,   441,   281,   605,   377,   443,   444,   370,   445,   371,
2003 <    1177,   446,   657,   481,   282,   447,  1178,   448,   163,   449,
2004 <     450,   372,   164,   451,   452,    79,   165,   166,   167,   168,
2005 <     169,   453,   482,  1179,   170,   171,   483,    80,   454,   455,
2006 <     456,   373,   457,   458,   172,   459,   460,   461,   283,   284,
2007 <     606,   462,    81,    82,   520,   525,   526,  1180,    83,   557,
2008 <      84,  1227,   558,   559,  1181,   560,   561,   562,   563,   567,
2009 <     568,   374,   569,   570,   173,   174,   571,   175,  1182,   572,
2010 <     573,   574,   575,   176,   576,  1241,   577,   578,   177,   579,
2011 <     580,   581,   600,   178,   607,   609,  1183,   610,  1184,  1185,
2012 <     375,   611,    85,    86,   612,   615,   616,   617,   618,    87,
2013 <      88,   619,   621,   622,   484,   623,   624,   626,   625,   627,
2014 <     643,   628,   663,   485,   486,   629,   630,   631,   632,   376,
2015 <      89,    90,   633,   634,   635,   636,   637,   638,  1228,   639,
2016 <     640,   644,   645,   646,   647,    91,    92,     2,     3,   649,
2017 <     650,  1186,     4,   651,   652,   653,    93,   654,   487,   655,
2018 <     656,  1187,  1242,   659,   660,    94,   665,   664,     5,  1229,
2019 <    1188,     6,     7,   666,  1189,   377,  1190,     8,   670,  1230,
2020 <     673,   674,   675,   676,   677,  1191,  1231,   679,   678,   680,
2021 <     335,   681,     9,  1243,  1275,  1192,    10,    11,  1232,    12,
2022 <    1233,  1234,   682,  1244,   915,    13,   683,   684,   687,   686,
2023 <    1245,   336,   337,  1235,   688,   338,   488,   689,   691,    14,
2024 <     692,   693,  1246,  1236,  1247,  1248,   694,   695,   696,    15,
2025 <      16,   697,   698,   699,   700,   703,   705,  1249,   938,   706,
2026 <     707,   712,   713,   716,   718,   720,    17,  1250,   721,   724,
2027 <     722,   723,   756,    95,    96,    97,   759,   726,   727,   729,
2028 <     730,   733,    18,   734,   779,   735,  1198,   737,   760,   738,
2029 <     780,   739,   740,   741,   749,   757,   339,   340,   341,   744,
2030 <     746,   342,   751,   752,   753,   761,   762,   763,   781,   343,
2031 <     764,   766,   767,   768,   770,   773,   782,   783,    19,   784,
2032 <     774,   344,   345,   787,   788,   775,   776,    20,    21,   786,
2033 <     789,    22,    23,   790,   791,   792,   793,   346,   347,   794,
2034 <     805,   803,   804,   806,   807,   808,   916,   917,   918,   919,
2035 <     920,   810,   809,   921,   922,   820,   812,   923,   924,   925,
2036 <     815,   816,   926,   821,   927,   928,   929,   348,   930,   931,
2037 <     932,   850,   822,   933,   851,   823,   824,   853,   854,   934,
2038 <     939,   940,   941,   942,   943,    24,   855,   944,   945,   856,
2039 <    1136,   946,   947,   948,   857,   825,   949,   826,   950,   951,
2040 <     952,   827,   953,   954,   955,   828,   829,   956,  1199,  1200,
2041 <    1201,  1202,  1203,   957,  1137,  1204,  1205,   837,   838,  1206,
2042 <    1207,  1208,   839,  1138,  1209,   840,  1210,  1211,  1212,  1139,
2043 <    1213,  1214,  1215,   858,   841,  1216,   842,   843,   859,   844,
2044 <     864,  1217,   845,   867,   869,  1140,   868,   846,   847,   870,
2045 <     871,   872,   873,   874,   998,   848,   849,   863,   875,   878,
2046 <     876,   877,   879,   880,   881,   883,   884,   882,   886,   989,
2047 <     887,  1141,   885,   888,   889,   890,   891,   892,   893,  1142,
2048 <     894,   895,   896,   897,   898,   899,   900,   901,   902,   903,
2049 <     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
2050 <     914,   937,   991,   960,   992,   994,   961,   962,   997,   995,
2051 <     963,   999,   964,   965,   966,   967,   968,  1000,   969,   970,
2052 <    1001,   971,  1143,   972,   973,   974,   980,   981,   982,   983,
2053 <     984,   985,   986,  1003,  1005,  1008,   987,   993,   990,   996,
2054 <    1144,  1002,  1004,  1006,  1009,  1007,  1010,  1013,  1014,  1024,
2055 <    1026,  1025,  1027,  1029,  1030,  1028,  1031,  1032,  1033,  1035,
2056 <    1036,  1037,  1063,  1034,  1065,  1038,  1039,  1040,  1067,  1269,
2057 <    1112,  1153,  1272,  1224,   314,  1172,  1225,  1041,  1042,  1043,
2058 <    1044,  1045,  1046,  1047,   583,  1310,  1048,  1049,  1050,  1051,
2059 <    1052,  1053,  1058,  1059,  1060,  1061,  1062,   522,  1066,   772,
2060 <    1064,  1069,  1068,  1070,  1076,  1077,  1078,  1079,  1080,  1081,
2061 <    1082,  1305,  1304,  1083,   755,  1291,  1084,  1270,   743,  1085,
2062 <    1086,  1164,  1087,  1088,  1089,  1090,  1091,  1289,  1092,  1093,
2063 <     642,  1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1108,
2165 <    1109,  1110,  1111,   778,  1306,   814,  1126,  1127,  1132,  1133,
2166 <    1134,  1135,  1147,  1148,  1307,  1149,  1150,  1151,  1152,  1156,
2167 <    1285,  1162,  1163,  1290,   402,   748,  1286,  1167,   464,  1165,
2168 <    1258,  1257,  1287,   334,   819,   658,  1168,  1288,     0,     0,
2169 <    1173,     0,  1170,  1174,  1195,  1196,  1197,  1220,  1221,  1222,
2170 <    1223,  1226,  1239,  1240,  1271,     0,  1276,  1292,  1273,  1302,
2171 <     662,  1303,     0,   528,     0,     0,     0,     0,     0,     0,
2172 <     732,   669,     0,     0,     0,     0,     0,     0,     0,     0,
2173 <       0,     0,   565,     0,     0,     0,     0,     0,     0,     0,
2174 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2175 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2176 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2177 <       0,     0,     0,     0,     0,     0,     0,   602
1950 >     802,   803,   571,   572,    47,   460,    48,   801,   236,    67,
1951 >     579,   980,   544,  1025,   509,   981,   286,    52,   982,   110,
1952 >    1044,   544,   983,    54,  1045,  1072,    58,   510,    59,   553,
1953 >     371,  1046,    68,   291,   509,  1047,    62,   116,    63,    69,
1954 >     381,    66,   117,   118,   237,   110,   220,   510,   119,  1172,
1955 >     227,  1174,   469,  1173,   286,  1175,   120,   490,   238,   239,
1956 >     240,   241,   121,   220,   122,   123,   124,   371,  1178,   227,
1957 >     460,   125,  1179,   491,   107,   251,   242,   126,   127,   111,
1958 >     128,   129,   130,    45,    46,  1180,   131,   470,   492,  1181,
1959 >     372,   132,   493,   627,   628,   133,   134,    70,   252,   135,
1960 >     545,   635,  1189,   637,   287,   111,   511,   471,   136,   545,
1961 >     644,   108,   472,   647,   109,   137,   138,   554,   139,   140,
1962 >     141,   142,   143,   461,   658,   659,   511,   372,   382,   115,
1963 >     942,   253,   512,   144,   670,   671,   228,   673,   217,   145,
1964 >     146,   147,   287,   148,   218,   494,   149,   150,   373,   219,
1965 >     151,   234,   512,   553,   462,   228,    76,   313,   383,  1073,
1966 >     235,   546,   229,   254,  1074,   255,   256,   473,   495,  1182,
1967 >     546,   314,   315,  1183,   284,   316,    77,    78,   555,   739,
1968 >     740,   229,    79,   152,   496,   373,   942,   153,   461,   384,
1969 >     154,   155,   156,   157,   158,  1026,   285,   159,   160,   381,
1970 >     441,   257,   292,   258,   259,   260,   261,   293,  1192,   294,
1971 >     463,   342,  1193,   343,   297,   344,   442,   547,   943,   462,
1972 >     262,    80,    81,   524,   295,   729,   547,   345,    82,    83,
1973 >      84,   443,   317,   318,   319,   444,   757,   320,   161,   162,
1974 >     163,   554,   346,   164,   263,   321,   347,   497,   165,   722,
1975 >      85,    86,   439,   221,   264,   624,   322,   323,   469,  -107,
1976 >     379,   482,   498,    87,    88,   488,   348,   699,   349,   561,
1977 >     221,   324,   716,    89,   943,   463,  -107,   298,   350,   944,
1978 >     480,    90,   617,   265,   266,   692,    67,   382,   792,   299,
1979 >     542,  1194,   570,   470,   484,  1195,   800,  1196,   325,   351,
1980 >    1198,  1197,   555,   485,  1199,  1206,  1013,  1014,  1015,    68,
1981 >    1221,   445,   300,   471,  1222,   301,    69,   383,   472,   446,
1982 >     447,   997,   998,   999,  1000,  1001,   352,  1207,   302,  1208,
1983 >     772,   773,   774,   775,   776,   944,  1169,  1170,  1171,   326,
1984 >     664,   665,   945,   666,   667,  1086,   743,   744,   384,   303,
1985 >     116,   448,   304,   353,   305,   117,   118,   806,   807,   306,
1986 >     307,   119,   308,   309,   310,   378,   390,  1209,   762,   120,
1987 >     563,   311,   597,   473,    70,   121,   391,   122,   123,   124,
1988 >     354,   392,   393,   394,   125,   395,   396,   397,   251,   236,
1989 >     126,   127,   398,   128,   129,   130,   801,   399,   945,   131,
1990 >     400,   401,   526,   564,   132,   449,   402,   403,   133,   134,
1991 >     404,   252,   135,   405,   406,   687,   565,   566,   407,   355,
1992 >     342,   136,   343,   408,   344,   237,   613,   490,   137,   138,
1993 >     409,   139,   140,   141,   142,   143,   345,  1210,  1211,   238,
1994 >     239,   240,   241,   491,   253,   410,   144,   411,   412,   441,
1995 >     413,   346,   145,   146,   147,   347,   148,   242,   492,   149,
1996 >     150,   414,   493,   151,   415,   442,   416,   417,   418,   420,
1997 >     422,  1212,   423,   424,   425,   348,   254,   349,   255,   256,
1998 >     443,   426,   427,   567,   444,   428,   429,   350,  1090,   430,
1999 >    1190,   431,   432,   433,   434,   435,   152,   436,   437,   438,
2000 >     153,   481,   486,   154,   155,   156,   157,   158,   351,  1091,
2001 >     159,   160,   487,   518,   257,   494,   258,   259,   260,   261,
2002 >     519,   520,   521,   522,  1092,   523,   527,   528,   529,   530,
2003 >     531,  1093,   532,   262,   533,   352,   534,   535,   495,   536,
2004 >     537,   538,   539,   540,   541,   560,   568,   582,  1094,   569,
2005 >    1050,   161,   162,   163,   496,   570,   164,   263,   573,   574,
2006 >     445,   165,   353,   575,   576,   577,   578,   264,   446,   447,
2007 >    1051,  1095,   580,   581,   583,   584,   585,   599,  1096,   586,
2008 >    1052,     2,     3,   587,   588,     4,  1053,   589,   590,   354,
2009 >    1097,   591,   592,   593,   594,     5,   265,   266,     6,     7,
2010 >     448,   595,  1054,   596,     8,   619,   620,  1098,  1099,  1100,
2011 >     600,   601,   602,   603,   605,     9,   606,   497,   607,    10,
2012 >      11,   608,   609,   313,   857,   610,   611,  1055,   355,    12,
2013 >     612,   626,   498,   615,   616,  1056,   621,   314,   315,   622,
2014 >     629,   316,   630,    13,   631,   632,   633,   638,   634,   636,
2015 >     639,    14,    15,   640,   449,   641,   642,  1101,   643,   645,
2016 >     880,   646,   648,   649,   650,   651,  1102,   652,   653,    16,
2017 >     654,  1103,   655,  1057,   656,   657,   660,  1104,   661,   662,
2018 >     663,  1105,   668,    17,  1106,   669,   672,   674,   677,  1107,
2019 >    1058,   675,   676,   678,  1114,  1108,   694,   679,   317,   318,
2020 >     319,   701,   704,   320,   680,   682,   705,   726,   702,   683,
2021 >     684,   321,   685,   686,   724,   703,    18,   725,   689,   691,
2022 >     696,  1143,   322,   323,   697,    19,    20,   706,  1157,    21,
2023 >      22,   698,   708,   707,   709,   727,  1059,   324,   858,   859,
2024 >     860,   861,   862,   711,   863,   864,   718,   865,   866,   867,
2025 >     728,   730,   868,   712,   869,   870,   713,   871,   715,   872,
2026 >     732,   873,   874,   719,   325,   875,   731,   720,   721,   733,
2027 >     734,   876,   735,   736,   881,   882,   883,   884,   885,   737,
2028 >     886,   887,    23,   888,   889,   890,   738,   747,   891,   748,
2029 >     892,   893,  1144,   894,   749,   895,   750,   896,   897,  1158,
2030 >     751,   898,   752,   753,   754,   326,   764,   899,  1115,  1116,
2031 >    1117,  1118,  1119,    76,  1120,  1121,   756,  1122,  1123,  1124,
2032 >     759,  1145,  1125,   790,  1126,  1127,   760,  1128,  1159,  1129,
2033 >    1146,  1130,  1131,    77,    78,  1132,  1147,  1160,   765,    79,
2034 >     766,  1133,   767,  1161,   768,   769,   770,   771,   779,   780,
2035 >    1148,   781,  1149,  1150,   782,   783,   784,  1162,   791,  1163,
2036 >    1164,   785,  1151,   786,   793,   787,   788,   794,  1152,  1165,
2037 >     795,   796,   797,   789,   798,  1166,   799,   801,    80,    81,
2038 >     804,   805,   809,   808,   810,    82,    83,    84,   815,   819,
2039 >     811,   812,   822,   813,   826,   823,   814,   816,   817,   818,
2040 >     820,   821,   824,   825,   921,   827,   828,    85,    86,   829,
2041 >     922,   830,   831,   832,   833,   834,   835,   836,   837,   838,
2042 >      87,    88,   839,   840,   841,   842,   843,   844,   845,   846,
2043 >      89,   847,   848,   849,   850,   851,   852,   853,    90,   924,
2044 >     854,   855,   856,   879,   902,   903,   904,   905,   906,   907,
2045 >     908,   909,   910,   911,   912,   913,   914,   915,   916,   917,
2046 >     918,   919,   920,   925,   926,   927,   923,   928,   929,   930,
2047 >     931,   932,   933,   935,   934,   936,   937,   940,   941,   953,
2048 >     954,  1041,   951,   956,   952,   957,   958,   960,   955,   962,
2049 >     963,   964,   989,   991,   296,   993,  1087,  1140,  1223,  1218,
2050 >    1141,  1217,  1184,  1068,   717,   961,   959,   965,   966,   967,
2051 >     968,   969,   970,   971,   972,   973,   974,   975,   976,   977,
2052 >     978,   979,   984,   985,   986,   987,   988,  1187,   543,   992,
2053 >    1204,   990,   995,   994,   996,  1002,   700,  1080,  1003,  1004,
2054 >    1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,  1019,
2055 >    1020,  1021,  1022,  1023,  1024,  1029,  1030,  1031,  1032,  1033,
2056 >    1034,  1035,  1079,  1185,  1036,   688,  1037,  1202,  1038,   723,
2057 >    1039,  1219,  1040,  1200,  1220,  1048,  1049,   598,  1062,   562,
2058 >    1063,   693,  1064,   763,  1203,   380,  1065,   758,  1201,   618,
2059 >     440,   625,  1176,   312,  1066,  1067,     0,  1071,  1077,  1078,
2060 >    1082,  1177,     0,  1088,  1083,  1085,  1089,  1111,  1112,  1113,
2061 >    1136,  1137,  1138,  1139,   614,  1142,  1155,  1156,     0,  1186,
2062 >     489,  1191,  1205,  1188,  1215,     0,  1216,     0,     0,     0,
2063 >     483,     0,   525
2064   };
2065  
2066 < #define yypact_value_is_default(yystate) \
2067 <  ((yystate) == (-560))
2066 > #define yypact_value_is_default(Yystate) \
2067 >  (!!((Yystate) == (-678)))
2068  
2069 < #define yytable_value_is_error(yytable_value) \
2069 > #define yytable_value_is_error(Yytable_value) \
2070    YYID (0)
2071  
2072   static const yytype_int16 yycheck[] =
2073   {
2074 <     456,   320,   321,     1,     1,     1,     4,     1,   327,     1,
2075 <       1,     1,     1,     1,    61,     1,     1,     1,     4,   110,
2076 <     243,     1,   243,     1,    11,   243,    22,    23,     1,     1,
2077 <      26,     1,    11,     1,     1,   241,   242,     1,    35,    24,
2078 <      31,    39,   241,     1,    42,   241,   245,     1,    21,   245,
2079 <      41,    48,   243,    39,   243,    47,    42,    24,    43,   241,
2080 <     243,     1,    47,   245,    61,    62,    63,    64,    14,    15,
2081 <      16,   176,   177,    31,    66,     1,    43,   176,   177,    71,
2082 <      47,    71,    71,    41,    81,    83,   149,   150,     1,   243,
2083 <       1,    87,    88,    89,   413,   414,    92,    83,     1,     1,
2084 <     149,   150,   100,    71,   100,    31,   100,   243,   427,   100,
2085 <     243,     1,   100,   432,   100,   100,   112,   113,     8,     9,
2086 <     100,   212,   197,   198,   443,   444,    98,   446,   243,    19,
2087 <     100,   104,   128,   129,   243,   454,   455,    27,   130,   458,
2088 <     125,    67,   100,    33,   133,   133,   100,    37,    38,   133,
2089 <      40,    10,   241,    12,   126,   133,    46,   204,   125,   144,
2090 <     133,   208,   158,   243,   110,    55,    56,   134,   135,    71,
2091 <      60,   243,   166,   243,   100,    65,   102,   103,   166,    69,
2092 <      70,     1,   166,    73,   640,    98,    76,    77,   166,   100,
2093 <     243,   178,   243,    13,    84,     1,   166,   100,     1,   178,
2094 <      90,    91,   169,    93,    94,    95,    96,    97,    28,    29,
2095 <     243,   241,     1,   126,    34,   245,    36,   143,   108,   145,
2096 <     146,   147,   148,   243,   209,   243,   116,   117,   118,   227,
2097 <     120,   133,    21,   123,   124,   241,   162,   127,   243,   245,
2098 <     243,   227,   227,   227,   563,   242,   242,   240,   138,   227,
2099 <     242,   242,   242,   242,   242,   166,   242,   242,    78,    79,
2100 <     227,   244,   188,   166,   242,    85,    86,     1,   232,   242,
2101 <     242,   131,   242,   163,   200,   242,   240,   167,   242,   244,
2102 <       1,   171,   172,   173,   174,   175,   106,   107,   242,   179,
2103 <     180,     1,   232,     3,   100,   244,     6,   100,   241,   189,
2104 <     240,   121,   122,    24,   131,   244,   241,   244,   234,   235,
2105 <     245,   630,   132,    51,    24,   104,   242,   244,   241,   638,
2106 <     639,   141,    43,   244,   227,     1,    47,     1,   239,   219,
2107 <     220,   242,   222,    43,    72,     1,    74,    47,   228,   242,
2108 <     244,   241,   241,   233,   133,   245,   245,   241,   238,   208,
2109 <     241,   245,   242,   241,   245,   244,    66,   245,    68,    35,
2110 <     166,   244,   221,   166,   241,    31,   100,   241,   245,   244,
2111 <      80,   245,    48,    47,   241,   244,     1,   115,   245,   100,
2112 <     244,   244,   110,     8,     9,    61,    62,    63,    64,   241,
2113 <     100,   241,    66,   245,    19,   245,   244,    71,   244,   133,
2114 <     244,    67,    27,   244,   125,    81,   244,   726,    33,   229,
2115 <     230,   231,    37,    38,   244,    40,   975,   976,   977,   244,
2116 <     130,    46,   242,   144,   227,   153,   154,   155,   156,   157,
2117 <      55,    56,   166,   239,   100,    60,   102,   103,   110,   244,
2118 <      65,   241,   244,   244,    69,    70,   244,   244,    73,   159,
2119 <     244,    76,    77,   191,   192,   243,   130,   244,   244,    84,
2120 <     244,   244,     1,   244,     3,    90,    91,     6,    93,    94,
2121 <      95,    96,    97,   244,   244,   244,   244,   143,   188,   145,
2122 <     146,   147,   148,   108,     5,    24,   244,   244,   209,   227,
2123 <     244,   116,   117,   118,   244,   120,   162,   244,   123,   124,
2124 <     244,   244,   127,   244,    43,   244,   227,   244,    47,   244,
2125 <       1,    32,   244,   138,   830,   831,   832,   833,   834,   244,
2126 <     244,   244,   188,   131,   234,   244,   244,    66,   244,    68,
2127 <      51,   244,   242,    24,   200,   244,    57,   244,   163,   244,
2128 <     244,    80,   167,   244,   244,     1,   171,   172,   173,   174,
2129 <     175,   244,    43,    74,   179,   180,    47,    13,   244,   244,
2130 <     244,   100,   244,   244,   189,   244,   244,   244,   234,   235,
2131 <     241,   244,    28,    29,   244,   244,   244,    98,    34,   244,
2132 <      36,    74,   244,   244,   105,   244,   244,   244,   244,   244,
2133 <     244,   130,   244,   244,   219,   220,   244,   222,   119,   244,
2134 <     244,   244,   244,   228,   244,    74,   244,   244,   233,   244,
2135 <     244,   244,   244,   238,   176,   110,   137,   176,   139,   140,
2136 <     159,   176,    78,    79,   110,   110,   110,   176,   176,    85,
2137 <      86,   110,   176,   176,   125,   176,   176,   241,   176,   241,
2138 <     241,   244,   131,   134,   135,   244,   244,   244,   244,   188,
2139 <     106,   107,   244,   244,   244,   244,   244,   244,   151,   244,
2140 <     244,   244,   244,   244,   244,   121,   122,     0,     1,   244,
2141 <     244,   192,     5,   244,   244,   244,   132,   244,   169,   244,
2142 <     244,   202,   151,   244,   244,   141,   244,   241,    21,   182,
2143 <     211,    24,    25,   244,   215,   234,   217,    30,   176,   192,
2144 <     110,   176,   176,   110,   131,   226,   199,   110,   176,   110,
2145 <       1,   110,    45,   182,  1170,   236,    49,    50,   211,    52,
2146 <     213,   214,   176,   192,    61,    58,   176,   176,   176,   131,
2147 <     199,    22,    23,   226,   110,    26,   227,   110,   110,    72,
2148 <     110,   131,   211,   236,   213,   214,   110,   110,   176,    82,
2149 <      83,   176,   244,   176,   244,   176,   176,   226,    61,   176,
2150 <     176,   176,   176,   110,   131,   176,    99,   236,   176,   241,
2151 <     176,   176,   176,   229,   230,   231,   131,   244,   244,   244,
2152 <     244,   241,   115,   244,   176,   244,    61,   244,   131,   244,
2153 <     176,   244,   244,   244,   241,   241,    87,    88,    89,   244,
2154 <     244,    92,   244,   244,   244,   241,   241,   244,   176,   100,
2155 <     244,   244,   244,   244,   244,   241,   131,   176,   151,   176,
2156 <     244,   112,   113,   131,   176,   244,   244,   160,   161,   241,
2157 <     131,   164,   165,   131,   131,   131,   131,   128,   129,   131,
2158 <     110,   131,   131,   131,   131,   241,   183,   184,   185,   186,
2159 <     187,   244,   241,   190,   191,   131,   244,   194,   195,   196,
2160 <     241,   244,   199,   241,   201,   202,   203,   158,   205,   206,
2161 <     207,   110,   241,   210,   110,   241,   241,   110,   110,   216,
2162 <     183,   184,   185,   186,   187,   218,   110,   190,   191,   110,
2163 <      20,   194,   195,   196,   131,   241,   199,   241,   201,   202,
2164 <     203,   241,   205,   206,   207,   241,   241,   210,   183,   184,
2165 <     185,   186,   187,   216,    44,   190,   191,   241,   241,   194,
2166 <     195,   196,   241,    53,   199,   241,   201,   202,   203,    59,
2167 <     205,   206,   207,   110,   241,   210,   241,   241,   110,   241,
2168 <     131,   216,   241,   131,   244,    75,   176,   241,   241,   131,
2169 <     131,   131,   131,   110,   110,   241,   241,   241,   131,   241,
2170 <     131,   131,   131,   131,   241,   131,   131,   241,   241,   176,
2171 <     241,   101,   244,   241,   241,   241,   241,   241,   241,   109,
2172 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2173 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2174 <     241,   241,   131,   241,   131,   131,   241,   241,   131,   176,
2175 <     241,   131,   241,   241,   241,   241,   241,   131,   241,   241,
2176 <     131,   241,   152,   241,   241,   241,   241,   241,   241,   241,
2177 <     241,   241,   241,   131,   131,   131,   244,   241,   244,   244,
2178 <     170,   241,   244,   241,   131,   244,   110,   241,   241,   241,
2179 <     131,   241,   176,   131,   131,   244,   131,   244,   131,   131,
2180 <     131,   131,   131,   241,   131,   241,   241,   241,   131,   110,
2181 <     136,   136,   131,  1055,    74,  1019,  1057,   241,   241,   241,
2182 <     241,   241,   241,   241,   285,  1309,   241,   241,   241,   241,
2183 <     241,   241,   241,   241,   241,   241,   241,   238,   241,   538,
2184 <     244,   241,   244,   241,   241,   241,   241,   241,   241,   241,
2185 <     241,  1280,  1278,   241,   514,  1268,   241,  1165,   489,   241,
2186 <     241,   181,   241,   241,   241,   241,   241,  1264,   241,   241,
2187 <     349,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2302 <     241,   241,   241,   552,  1282,   588,   241,   241,   241,   241,
2303 <     241,   241,   241,   241,  1284,   241,   241,   241,   241,   241,
2304 <    1254,   241,   241,  1266,   123,   504,  1256,   241,   179,   245,
2305 <    1118,  1116,  1260,    98,   596,   378,   244,  1262,    -1,    -1,
2306 <     241,    -1,   244,   241,   241,   241,   241,   241,   241,   241,
2307 <     241,   241,   241,   241,   241,    -1,   241,   241,   244,   241,
2308 <     396,   241,    -1,   246,    -1,    -1,    -1,    -1,    -1,    -1,
2309 <     472,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2310 <      -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2311 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2312 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2313 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2314 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   306
2074 >     595,   596,   300,   301,   217,     1,   217,    99,     1,     1,
2075 >     308,   215,     1,     8,     1,   219,     1,   217,   215,     1,
2076 >     215,     1,   219,   217,   219,    51,   217,    14,   217,     1,
2077 >       1,   215,    24,   215,     1,   219,   217,     1,   217,    31,
2078 >       1,   217,     6,     7,    37,     1,     1,    14,    12,   215,
2079 >       1,   215,     1,   219,     1,   219,    20,     1,    51,    52,
2080 >      53,    54,    26,     1,    28,    29,    30,     1,   215,     1,
2081 >       1,    35,   219,    17,   217,     1,    69,    41,    42,    61,
2082 >      44,    45,    46,   215,   216,   215,    50,    36,    32,   219,
2083 >      61,    55,    36,   391,   392,    59,    60,    89,    24,    63,
2084 >      89,   399,   194,   401,    89,    61,    93,    56,    72,    89,
2085 >     408,   217,    61,   411,   217,    79,    80,    89,    82,    83,
2086 >      84,    85,    86,   119,   422,   423,    93,    61,    89,   217,
2087 >       1,    57,   119,    97,   432,   433,    87,   435,   217,   103,
2088 >     104,   105,    89,   107,   217,    89,   110,   111,   119,   217,
2089 >     114,   217,   119,     1,   150,    87,     1,     1,   119,   185,
2090 >     217,   150,   113,    89,   190,    91,    92,   116,   112,   215,
2091 >     150,    15,    16,   219,   217,    19,    21,    22,   150,   133,
2092 >     134,   113,    27,   147,   128,   119,     1,   151,   119,   150,
2093 >     154,   155,   156,   157,   158,   190,   217,   161,   162,     1,
2094 >       1,   127,   218,   129,   130,   131,   132,   218,   215,   218,
2095 >     206,     1,   219,     3,   218,     5,    17,   206,    89,   150,
2096 >     146,    66,    67,   216,   216,   523,   206,    17,    73,    74,
2097 >      75,    32,    76,    77,    78,    36,   216,    81,   202,   203,
2098 >     204,    89,    32,   207,   170,    89,    36,   191,   212,   216,
2099 >      95,    96,   216,   208,   180,   216,   100,   101,     1,   214,
2100 >     216,   216,   206,   108,   109,   216,    56,   216,    58,   216,
2101 >     208,   115,   216,   118,    89,   206,   214,   218,    68,   150,
2102 >     215,   126,   216,   209,   210,   216,     1,    89,   586,   218,
2103 >     216,   215,    99,    36,   214,   219,   594,   215,   142,    89,
2104 >     215,   219,   150,   215,   219,    40,     9,    10,    11,    24,
2105 >     215,   112,   218,    56,   219,   218,    31,   119,    61,   120,
2106 >     121,   772,   773,   774,   775,   776,   116,    62,   218,    64,
2107 >     137,   138,   139,   140,   141,   150,  1013,  1014,  1015,   183,
2108 >     159,   160,   213,   159,   160,   216,   133,   134,   150,   218,
2109 >       1,   152,   218,   143,   218,     6,     7,   177,   178,   218,
2110 >     218,    12,   218,   218,   218,   218,   218,   102,   216,    20,
2111 >     117,   216,   216,   116,    89,    26,   218,    28,    29,    30,
2112 >     170,   218,   218,   218,    35,   218,   218,   218,     1,     1,
2113 >      41,    42,   218,    44,    45,    46,    99,   218,   213,    50,
2114 >     218,   218,   215,   117,    55,   206,   218,   218,    59,    60,
2115 >     218,    24,    63,   218,   218,   216,   117,   215,   218,   209,
2116 >       1,    72,     3,   218,     5,    37,   216,     1,    79,    80,
2117 >     218,    82,    83,    84,    85,    86,    17,   172,   173,    51,
2118 >      52,    53,    54,    17,    57,   218,    97,   218,   218,     1,
2119 >     218,    32,   103,   104,   105,    36,   107,    69,    32,   110,
2120 >     111,   218,    36,   114,   218,    17,   218,   218,   218,   218,
2121 >     218,   206,   218,   218,   218,    56,    89,    58,    91,    92,
2122 >      32,   218,   218,    99,    36,   218,   218,    68,     4,   218,
2123 >    1085,   218,   218,   218,   218,   218,   147,   218,   218,   218,
2124 >     151,   218,   218,   154,   155,   156,   157,   158,    89,    25,
2125 >     161,   162,   218,   218,   127,    89,   129,   130,   131,   132,
2126 >     218,   218,   218,   218,    40,   218,   218,   218,   218,   218,
2127 >     218,    47,   218,   146,   218,   116,   218,   218,   112,   218,
2128 >     218,   218,   218,   218,   218,   218,    99,   215,    64,   159,
2129 >      13,   202,   203,   204,   128,    99,   207,   170,    99,    99,
2130 >     112,   212,   143,    99,   159,   159,    99,   180,   120,   121,
2131 >      33,    87,   159,   159,   215,   218,   218,   215,    94,   218,
2132 >      43,     0,     1,   218,   218,     4,    49,   218,   218,   170,
2133 >     106,   218,   218,   218,   218,    14,   209,   210,    17,    18,
2134 >     152,   218,    65,   218,    23,   117,   215,   123,   124,   125,
2135 >     218,   218,   218,   218,   218,    34,   218,   191,   218,    38,
2136 >      39,   218,   218,     1,    51,   218,   218,    90,   209,    48,
2137 >     218,   159,   206,   218,   218,    98,   218,    15,    16,   218,
2138 >      99,    19,   159,    62,   159,    99,   117,    99,   159,   159,
2139 >      99,    70,    71,    99,   206,   159,   159,   173,   159,    99,
2140 >      51,    99,    99,    99,   117,    99,   182,    99,   159,    88,
2141 >     159,   187,   218,   136,   159,   218,   159,   193,   159,   159,
2142 >     159,   197,   159,   102,   200,   159,   117,   159,   215,   205,
2143 >     153,   159,   159,   215,    51,   211,   215,   218,    76,    77,
2144 >      78,   159,   117,    81,   218,   218,   117,   117,   215,   218,
2145 >     218,    89,   218,   218,   159,   217,   135,   159,   218,   218,
2146 >     218,    64,   100,   101,   218,   144,   145,   215,    64,   148,
2147 >     149,   218,   218,   215,   218,   159,   199,   115,   165,   166,
2148 >     167,   168,   169,   218,   171,   172,   215,   174,   175,   176,
2149 >     159,   215,   179,   218,   181,   182,   218,   184,   218,   186,
2150 >     159,   188,   189,   218,   142,   192,   117,   218,   218,   117,
2151 >     117,   198,   117,   117,   165,   166,   167,   168,   169,   117,
2152 >     171,   172,   201,   174,   175,   176,   117,   117,   179,   117,
2153 >     181,   182,   135,   184,    99,   186,   117,   188,   189,   135,
2154 >     117,   192,   215,   215,   218,   183,   117,   198,   165,   166,
2155 >     167,   168,   169,     1,   171,   172,   218,   174,   175,   176,
2156 >     215,   164,   179,    99,   181,   182,   218,   184,   164,   186,
2157 >     173,   188,   189,    21,    22,   192,   179,   173,   215,    27,
2158 >     215,   198,   215,   179,   215,   215,   215,   215,   215,   215,
2159 >     193,   215,   195,   196,   215,   215,   215,   193,    99,   195,
2160 >     196,   215,   205,   215,    99,   215,   215,    99,   211,   205,
2161 >      99,    99,   117,   215,    99,   211,    99,    99,    66,    67,
2162 >     215,   117,   159,   117,   218,    73,    74,    75,    99,   215,
2163 >     117,   117,   215,   117,   218,   215,   117,   117,   117,   117,
2164 >     117,   117,   117,   117,   117,   215,   215,    95,    96,   215,
2165 >     159,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2166 >     108,   109,   215,   215,   215,   215,   215,   215,   215,   215,
2167 >     118,   215,   215,   215,   215,   215,   215,   215,   126,   117,
2168 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2169 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2170 >     215,   215,   215,    99,   117,   117,   218,   117,   215,   117,
2171 >     218,   117,   215,   117,   218,   117,    99,   215,   215,   117,
2172 >     159,   122,   215,   117,   215,   117,   117,   117,   218,   117,
2173 >     117,   117,   117,   117,    71,   117,   946,   981,  1222,  1195,
2174 >     983,  1193,    99,   122,   499,   215,   218,   215,   215,   215,
2175 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2176 >     215,   215,   215,   215,   215,   215,   215,   117,   267,   215,
2177 >    1183,   218,   215,   218,   215,   215,   475,   219,   215,   215,
2178 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2179 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2180 >     215,   215,   163,  1080,   215,   450,   215,  1179,   215,   513,
2181 >     215,  1197,   215,  1173,  1199,   215,   215,   327,   215,   288,
2182 >     215,   465,   215,   556,  1181,   112,   215,   548,  1175,   374,
2183 >     166,   386,  1045,    91,   215,   215,    -1,   215,   215,   215,
2184 >     215,  1047,    -1,   215,   218,   218,   215,   215,   215,   215,
2185 >     215,   215,   215,   215,   356,   215,   215,   215,    -1,   215,
2186 >     230,   215,   215,   218,   215,    -1,   215,    -1,    -1,    -1,
2187 >     222,    -1,   243
2188   };
2189  
2190   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2191     symbol of state STATE-NUM.  */
2192   static const yytype_uint16 yystos[] =
2193   {
2194 <       0,   247,     0,     1,     5,    21,    24,    25,    30,    45,
2195 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   151,
2196 <     160,   161,   164,   165,   218,   248,   253,   258,   280,   286,
2197 <     300,   318,   335,   349,   364,   371,   375,   385,   394,   414,
2198 <     424,   430,   434,   444,   504,   520,   541,   241,   242,   243,
2199 <     243,   319,   395,   425,   243,   435,   243,   505,   350,   415,
2200 <     336,   243,   243,   301,   365,   243,   243,   376,   386,   243,
2201 <       1,    31,    41,   100,   281,   282,   283,   284,   285,     1,
2202 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2203 <     107,   121,   122,   132,   141,   229,   230,   231,   521,   522,
2204 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
2205 <     533,   534,   535,   536,   537,   538,   539,   540,   243,   243,
2206 <     243,     1,    71,   431,   432,   433,   243,     1,     8,     9,
2207 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2208 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2209 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2210 <     124,   127,   138,   163,   167,   171,   172,   173,   174,   175,
2211 <     179,   180,   189,   219,   220,   222,   228,   233,   238,   445,
2212 <     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
2213 <     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
2214 <     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
2215 <     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2216 <     486,   487,   488,   489,   490,   491,   492,   496,   500,   501,
2217 <     502,   503,   243,   243,   243,   243,     1,   232,   287,   288,
2218 <     289,   290,   291,     1,    98,   126,   254,   255,   256,   257,
2219 <     243,   243,     1,    35,    48,    61,    62,    63,    64,    81,
2220 <     542,   543,   544,   545,   546,   547,   548,   549,   550,     1,
2221 <      31,    67,   100,   102,   103,   143,   145,   146,   147,   148,
2222 <     162,   188,   200,   234,   235,   259,   260,   261,   262,   267,
2223 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2224 <     278,   279,   243,   243,     1,   100,   372,   373,   374,   241,
2225 <     244,   244,   244,   242,   282,   244,   244,   244,   244,   244,
2226 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2227 <     244,   244,   244,   242,   522,     1,    22,    23,    26,    87,
2228 <      88,    89,    92,   100,   112,   113,   128,   129,   158,   320,
2229 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2230 <     331,   332,   333,   334,     1,     3,     6,    24,    43,    47,
2231 <      66,    68,    80,   100,   130,   159,   188,   234,   396,   397,
2232 <     398,   399,   400,   401,   402,   403,   404,   405,   409,   410,
2233 <     411,   412,   413,     1,    71,   133,   426,   427,   428,   429,
2234 <     244,   242,   432,     1,   100,   133,   166,   436,   440,   441,
2235 <     442,   443,   244,   244,   244,   244,   244,   244,   244,   244,
2236 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2237 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2238 <     497,   244,   493,   244,   244,   244,   244,   244,   244,   244,
2239 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2240 <     244,   244,   244,   242,   446,     1,     4,    39,    42,    83,
2241 <     100,   227,   506,   507,   508,   509,   510,   514,   515,   516,
2242 <       1,    24,    43,    47,   125,   134,   135,   169,   227,   351,
2243 <     352,   353,   354,   355,   356,   357,   361,   362,   363,     1,
2244 <     133,   166,   227,   416,   420,   421,   422,   423,     1,    47,
2245 <      66,    71,   130,   337,   341,   342,   343,   347,   348,   241,
2246 <     244,   242,   288,   240,   241,   244,   244,   242,   255,     1,
2247 <      24,    43,    47,   100,   125,   144,   209,   227,   302,   303,
2248 <     304,   305,   306,   307,   308,   309,   310,   314,     1,    21,
2249 <     104,   133,   366,   367,   368,   369,   370,   244,   244,   244,
2250 <     244,   244,   244,   244,   242,   543,   241,   244,   244,   244,
2251 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2252 <     244,   244,   242,   260,     1,   100,   166,   227,   377,   378,
2253 <     379,   380,   381,     1,   100,   166,   387,   388,   389,   390,
2254 <     244,   242,   373,   131,   131,   131,   241,   176,   110,   110,
2255 <     176,   176,   110,   250,   250,   110,   110,   176,   176,   110,
2256 <     250,   176,   176,   176,   176,   176,   241,   241,   244,   244,
2257 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2258 <     244,   242,   321,   241,   244,   244,   244,   244,   406,   244,
2259 <     244,   244,   244,   244,   244,   244,   244,   242,   397,   244,
2260 <     244,   242,   427,   131,   241,   244,   244,   437,   242,   441,
2261 <     176,   250,   250,   110,   176,   176,   110,   131,   176,   110,
2262 <     110,   110,   176,   176,   176,   250,   131,   176,   110,   110,
2263 <     250,   110,   110,   131,   110,   110,   176,   176,   244,   176,
2264 <     244,   250,   250,   176,   250,   176,   176,   176,   176,   177,
2265 <     176,   177,   176,   176,   250,   250,   110,   252,   131,   250,
2266 <     176,   176,   176,   176,   241,   517,   244,   244,   511,   244,
2267 <     244,   242,   507,   241,   244,   244,   358,   244,   244,   244,
2268 <     244,   244,   242,   352,   244,   417,   244,   242,   421,   241,
2269 <     338,   244,   244,   244,   242,   342,   176,   241,   243,   131,
2270 <     131,   241,   241,   244,   244,   315,   244,   244,   244,   311,
2271 <     244,   242,   303,   241,   244,   244,   244,   242,   367,   176,
2272 <     176,   176,   131,   176,   176,   250,   241,   131,   176,   131,
2273 <     131,   131,   131,   131,   131,   149,   150,   263,   264,   149,
2274 <     150,   265,   266,   131,   131,   110,   131,   131,   241,   241,
2275 <     244,   382,   244,   242,   378,   241,   244,   391,   242,   388,
2276 <     131,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2277 <     153,   154,   155,   156,   157,   249,   250,   241,   241,   241,
2278 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2279 <     110,   110,   250,   110,   110,   110,   110,   131,   110,   110,
2280 <     250,   250,   252,   241,   131,   197,   198,   131,   176,   244,
2281 <     131,   131,   131,   131,   110,   131,   131,   131,   241,   131,
2282 <     131,   241,   241,   131,   131,   244,   241,   241,   241,   241,
2283 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2284 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2285 <     241,   241,   241,   241,   241,    61,   183,   184,   185,   186,
2286 <     187,   190,   191,   194,   195,   196,   199,   201,   202,   203,
2287 <     205,   206,   207,   210,   216,   498,   499,   241,    61,   183,
2288 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2289 <     201,   202,   203,   205,   206,   207,   210,   216,   494,   495,
2290 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2291 <     241,   241,   241,   241,   241,    14,    15,    16,   251,   252,
2292 <     241,   241,   241,   241,   241,   241,   241,   244,   250,   176,
2293 <     244,   131,   131,   241,   131,   176,   244,   131,   110,   131,
2294 <     131,   131,   241,   131,   244,   131,   241,   244,   131,   131,
2295 <     110,   345,   346,   241,   241,     1,   100,   166,   239,   292,
2296 <     293,   294,   295,   296,   241,   241,   131,   176,   244,   131,
2297 <     131,   131,   244,   131,   241,   131,   131,   131,   241,   241,
2298 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2299 <     241,   241,   241,   241,   241,   245,   241,   245,   241,   241,
2300 <     241,   241,   241,   131,   244,   131,   241,   131,   244,   241,
2301 <     241,   249,   249,   249,   249,   249,   241,   241,   241,   241,
2302 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2303 <     241,   241,   241,   241,    10,    12,   208,   221,   407,   408,
2304 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2305 <     241,   241,   136,   438,   439,   241,   245,   241,   245,   251,
2306 <     251,   251,    11,   178,   518,   519,   241,   241,    11,   178,
2307 <     512,   513,   241,   241,   241,   241,    20,    44,    53,    59,
2308 <      75,   101,   109,   152,   170,   359,   360,   241,   241,   241,
2309 <     241,   241,   241,   136,   418,   419,   241,    61,   204,   208,
2310 <     339,   340,   241,   241,   181,   245,   344,   241,   244,   297,
2311 <     244,   242,   293,   241,   241,     5,    32,    51,    57,    74,
2312 <      98,   105,   119,   137,   139,   140,   192,   202,   211,   215,
2313 <     217,   226,   236,   316,   317,   241,   241,   241,    61,   183,
2314 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2315 <     201,   202,   203,   205,   206,   207,   210,   216,   312,   313,
2316 <     241,   241,   241,   241,   264,   266,   241,    74,   151,   182,
2444 <     192,   199,   211,   213,   214,   226,   236,   383,   384,   241,
2445 <     241,    74,   151,   182,   192,   199,   211,   213,   214,   226,
2446 <     236,   392,   393,   241,   245,   241,   245,   499,   495,   241,
2447 <     245,   241,   245,   241,   245,   241,   245,   241,   245,   110,
2448 <     346,   241,   131,   244,   212,   252,   241,   241,   245,   241,
2449 <     245,   241,   245,   241,   245,   408,   439,   519,   513,   360,
2450 <     419,   340,   241,    51,    72,    74,   115,   191,   192,   227,
2451 <     298,   299,   241,   241,   317,   313,   384,   393,   241,   245,
2452 <     299
2194 >       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
2195 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2196 >     145,   148,   149,   201,   222,   227,   232,   254,   260,   274,
2197 >     292,   309,   323,   338,   345,   349,   359,   368,   388,   398,
2198 >     404,   408,   418,   476,   493,   215,   216,   217,   217,   293,
2199 >     369,   399,   217,   409,   217,   324,   389,   310,   217,   217,
2200 >     275,   339,   217,   217,   350,   360,   217,     1,    24,    31,
2201 >      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
2202 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2203 >     126,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2204 >     486,   487,   488,   489,   490,   491,   492,   217,   217,   217,
2205 >       1,    61,   405,   406,   407,   217,     1,     6,     7,    12,
2206 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2207 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2208 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2209 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2210 >     162,   202,   203,   204,   207,   212,   419,   420,   421,   422,
2211 >     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
2212 >     433,   434,   435,   436,   437,   438,   439,   440,   441,   442,
2213 >     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
2214 >     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
2215 >     463,   464,   465,   469,   473,   474,   475,   217,   217,   217,
2216 >       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
2217 >     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
2218 >      53,    54,    69,   494,   495,   496,   497,   498,   499,   500,
2219 >     501,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2220 >     131,   132,   146,   170,   180,   209,   210,   233,   234,   235,
2221 >     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
2222 >     250,   251,   252,   253,   217,   217,     1,    89,   346,   347,
2223 >     348,   215,   218,   218,   218,   216,   256,   218,   218,   218,
2224 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2225 >     218,   216,   478,     1,    15,    16,    19,    76,    77,    78,
2226 >      81,    89,   100,   101,   115,   142,   183,   294,   295,   296,
2227 >     297,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2228 >     307,   308,     1,     3,     5,    17,    32,    36,    56,    58,
2229 >      68,    89,   116,   143,   170,   209,   370,   371,   372,   373,
2230 >     374,   375,   376,   377,   378,   379,   383,   384,   385,   386,
2231 >     387,     1,    61,   119,   400,   401,   402,   403,   218,   216,
2232 >     406,     1,    89,   119,   150,   410,   414,   415,   416,   417,
2233 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2234 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2235 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   470,
2236 >     218,   466,   218,   218,   218,   218,   218,   218,   218,   218,
2237 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   216,
2238 >     420,     1,    17,    32,    36,   112,   120,   121,   152,   206,
2239 >     325,   326,   327,   328,   329,   330,   331,   335,   336,   337,
2240 >       1,   119,   150,   206,   390,   394,   395,   396,   397,     1,
2241 >      36,    56,    61,   116,   311,   315,   316,   317,   321,   322,
2242 >     215,   218,   216,   262,   214,   215,   218,   218,   216,   229,
2243 >       1,    17,    32,    36,    89,   112,   128,   191,   206,   276,
2244 >     277,   278,   279,   280,   281,   282,   283,   284,   288,     1,
2245 >      14,    93,   119,   340,   341,   342,   343,   344,   218,   218,
2246 >     218,   218,   218,   218,   216,   495,   215,   218,   218,   218,
2247 >     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
2248 >     218,   218,   216,   234,     1,    89,   150,   206,   351,   352,
2249 >     353,   354,   355,     1,    89,   150,   361,   362,   363,   364,
2250 >     218,   216,   347,   117,   117,   117,   215,    99,    99,   159,
2251 >      99,   224,   224,    99,    99,    99,   159,   159,    99,   224,
2252 >     159,   159,   215,   215,   218,   218,   218,   218,   218,   218,
2253 >     218,   218,   218,   218,   218,   218,   218,   216,   295,   215,
2254 >     218,   218,   218,   218,   380,   218,   218,   218,   218,   218,
2255 >     218,   218,   218,   216,   371,   218,   218,   216,   401,   117,
2256 >     215,   218,   218,   411,   216,   415,   159,   224,   224,    99,
2257 >     159,   159,    99,   117,   159,   224,   159,   224,    99,    99,
2258 >      99,   159,   159,   159,   224,    99,    99,   224,    99,    99,
2259 >     117,    99,    99,   159,   159,   218,   159,   218,   224,   224,
2260 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2261 >     224,   224,   117,   224,   159,   159,   159,   215,   215,   218,
2262 >     218,   332,   218,   218,   218,   218,   218,   216,   326,   218,
2263 >     391,   218,   216,   395,   215,   312,   218,   218,   218,   216,
2264 >     316,   159,   215,   217,   117,   117,   215,   215,   218,   218,
2265 >     289,   218,   218,   218,   285,   218,   216,   277,   215,   218,
2266 >     218,   218,   216,   341,   159,   159,   117,   159,   159,   224,
2267 >     215,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2268 >     134,   237,   238,   133,   134,   239,   240,   117,   117,    99,
2269 >     117,   117,   215,   215,   218,   356,   218,   216,   352,   215,
2270 >     218,   365,   216,   362,   117,   215,   215,   215,   215,   215,
2271 >     215,   215,   137,   138,   139,   140,   141,   223,   224,   215,
2272 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2273 >      99,    99,   224,    99,    99,    99,    99,   117,    99,    99,
2274 >     224,    99,   226,   226,   215,   117,   177,   178,   117,   159,
2275 >     218,   117,   117,   117,   117,    99,   117,   117,   117,   215,
2276 >     117,   117,   215,   215,   117,   117,   218,   215,   215,   215,
2277 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2278 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2279 >     215,   215,   215,   215,   215,   215,   215,    51,   165,   166,
2280 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2281 >     182,   184,   186,   188,   189,   192,   198,   471,   472,   215,
2282 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2283 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2284 >     467,   468,   215,   215,   215,   215,   215,   215,   215,   215,
2285 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2286 >     215,   117,   159,   218,   117,    99,   117,   117,   117,   215,
2287 >     117,   218,   117,   215,   218,   117,   117,    99,   319,   320,
2288 >     215,   215,     1,    89,   150,   213,   266,   267,   268,   269,
2289 >     270,   215,   215,   117,   159,   218,   117,   117,   117,   218,
2290 >     117,   215,   117,   117,   117,   215,   215,   215,   215,   215,
2291 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2292 >     215,   219,   215,   219,   215,   215,   215,   215,   215,   117,
2293 >     218,   117,   215,   117,   218,   215,   215,   223,   223,   223,
2294 >     223,   223,   215,   215,   215,   215,   215,   215,   215,   215,
2295 >     215,   215,   215,     9,    10,    11,   225,   226,   215,   215,
2296 >     215,   215,   215,   215,   215,     8,   190,   381,   382,   215,
2297 >     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2298 >     215,   122,   412,   413,   215,   219,   215,   219,   215,   215,
2299 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   199,
2300 >     333,   334,   215,   215,   215,   215,   215,   215,   122,   392,
2301 >     393,   215,    51,   185,   190,   313,   314,   215,   215,   163,
2302 >     219,   318,   215,   218,   271,   218,   216,   267,   215,   215,
2303 >       4,    25,    40,    47,    64,    87,    94,   106,   123,   124,
2304 >     125,   173,   182,   187,   193,   197,   200,   205,   211,   290,
2305 >     291,   215,   215,   215,    51,   165,   166,   167,   168,   169,
2306 >     171,   172,   174,   175,   176,   179,   181,   182,   184,   186,
2307 >     188,   189,   192,   198,   286,   287,   215,   215,   215,   215,
2308 >     238,   240,   215,    64,   135,   164,   173,   179,   193,   195,
2309 >     196,   205,   211,   357,   358,   215,   215,    64,   135,   164,
2310 >     173,   179,   193,   195,   196,   205,   211,   366,   367,   225,
2311 >     225,   225,   215,   219,   215,   219,   472,   468,   215,   219,
2312 >     215,   219,   215,   219,    99,   320,   215,   117,   218,   194,
2313 >     226,   215,   215,   219,   215,   219,   215,   219,   215,   219,
2314 >     382,   413,   334,   393,   314,   215,    40,    62,    64,   102,
2315 >     172,   173,   206,   272,   273,   215,   215,   291,   287,   358,
2316 >     367,   215,   219,   273
2317   };
2318  
2319   #define yyerrok         (yyerrstatus = 0)
# Line 2479 | Line 2343 | static const yytype_uint16 yystos[] =
2343  
2344   #define YYRECOVERING()  (!!yyerrstatus)
2345  
2346 < #define YYBACKUP(Token, Value)                                  \
2347 < do                                                              \
2348 <  if (yychar == YYEMPTY && yylen == 1)                          \
2349 <    {                                                           \
2350 <      yychar = (Token);                                         \
2351 <      yylval = (Value);                                         \
2352 <      YYPOPSTACK (1);                                           \
2353 <      goto yybackup;                                            \
2354 <    }                                                           \
2355 <  else                                                          \
2356 <    {                                                           \
2346 > #define YYBACKUP(Token, Value)                                  \
2347 > do                                                              \
2348 >  if (yychar == YYEMPTY)                                        \
2349 >    {                                                           \
2350 >      yychar = (Token);                                         \
2351 >      yylval = (Value);                                         \
2352 >      YYPOPSTACK (yylen);                                       \
2353 >      yystate = *yyssp;                                         \
2354 >      goto yybackup;                                            \
2355 >    }                                                           \
2356 >  else                                                          \
2357 >    {                                                           \
2358        yyerror (YY_("syntax error: cannot back up")); \
2359        YYERROR;                                                  \
2360      }                                                           \
2361   while (YYID (0))
2362  
2363 <
2363 > /* Error token number */
2364   #define YYTERROR        1
2365   #define YYERRCODE       256
2366  
2367  
2503 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2504   If N is 0, then set CURRENT to the empty location which ends
2505   the previous symbol: RHS[0] (always defined).  */
2506
2507 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2508 #ifndef YYLLOC_DEFAULT
2509 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2510    do                                                                  \
2511      if (YYID (N))                                                    \
2512        {                                                               \
2513          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2514          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2515          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2516          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2517        }                                                               \
2518      else                                                              \
2519        {                                                               \
2520          (Current).first_line   = (Current).last_line   =              \
2521            YYRHSLOC (Rhs, 0).last_line;                                \
2522          (Current).first_column = (Current).last_column =              \
2523            YYRHSLOC (Rhs, 0).last_column;                              \
2524        }                                                               \
2525    while (YYID (0))
2526 #endif
2527
2528
2368   /* This macro is provided for backward compatibility. */
2530
2369   #ifndef YY_LOCATION_PRINT
2370   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2371   #endif
2372  
2373  
2374   /* YYLEX -- calling `yylex' with the right arguments.  */
2537
2375   #ifdef YYLEX_PARAM
2376   # define YYLEX yylex (YYLEX_PARAM)
2377   #else
# Line 2584 | Line 2421 | yy_symbol_value_print (yyoutput, yytype,
2421      YYSTYPE const * const yyvaluep;
2422   #endif
2423   {
2424 +  FILE *yyo = yyoutput;
2425 +  YYUSE (yyo);
2426    if (!yyvaluep)
2427      return;
2428   # ifdef YYPRINT
# Line 2595 | Line 2434 | yy_symbol_value_print (yyoutput, yytype,
2434    switch (yytype)
2435      {
2436        default:
2437 <        break;
2437 >        break;
2438      }
2439   }
2440  
# Line 2835 | Line 2674 | static int
2674   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2675                  yytype_int16 *yyssp, int yytoken)
2676   {
2677 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2677 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2678    YYSIZE_T yysize = yysize0;
2840  YYSIZE_T yysize1;
2679    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2680    /* Internationalized format string. */
2681 <  const char *yyformat = 0;
2681 >  const char *yyformat = YY_NULL;
2682    /* Arguments of yyformat. */
2683    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2684    /* Number of reported tokens (one for the "unexpected", one per
# Line 2900 | Line 2738 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2738                      break;
2739                    }
2740                  yyarg[yycount++] = yytname[yyx];
2741 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2742 <                if (! (yysize <= yysize1
2743 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2744 <                  return 2;
2745 <                yysize = yysize1;
2741 >                {
2742 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2743 >                  if (! (yysize <= yysize1
2744 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2745 >                    return 2;
2746 >                  yysize = yysize1;
2747 >                }
2748                }
2749          }
2750      }
# Line 2924 | Line 2764 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2764   # undef YYCASE_
2765      }
2766  
2767 <  yysize1 = yysize + yystrlen (yyformat);
2768 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2769 <    return 2;
2770 <  yysize = yysize1;
2767 >  {
2768 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2769 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2770 >      return 2;
2771 >    yysize = yysize1;
2772 >  }
2773  
2774    if (*yymsg_alloc < yysize)
2775      {
# Line 2987 | Line 2829 | yydestruct (yymsg, yytype, yyvaluep)
2829      {
2830  
2831        default:
2832 <        break;
2832 >        break;
2833      }
2834   }
2835  
2836  
2995 /* Prevent warnings from -Wmissing-prototypes.  */
2996 #ifdef YYPARSE_PARAM
2997 #if defined __STDC__ || defined __cplusplus
2998 int yyparse (void *YYPARSE_PARAM);
2999 #else
3000 int yyparse ();
3001 #endif
3002 #else /* ! YYPARSE_PARAM */
3003 #if defined __STDC__ || defined __cplusplus
3004 int yyparse (void);
3005 #else
3006 int yyparse ();
3007 #endif
3008 #endif /* ! YYPARSE_PARAM */
2837  
2838  
2839   /* The lookahead symbol.  */
2840   int yychar;
2841  
2842 +
2843 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2844 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2845 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2846 + #endif
2847 + #ifndef YY_INITIAL_VALUE
2848 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2849 + #endif
2850 +
2851   /* The semantic value of the lookahead symbol.  */
2852 < YYSTYPE yylval;
2852 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2853  
2854   /* Number of syntax errors so far.  */
2855   int yynerrs;
# Line 3052 | Line 2889 | yyparse ()
2889         `yyss': related to states.
2890         `yyvs': related to semantic values.
2891  
2892 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2892 >       Refer to the stacks through separate pointers, to allow yyoverflow
2893         to reallocate them elsewhere.  */
2894  
2895      /* The state stack.  */
# Line 3070 | Line 2907 | yyparse ()
2907    int yyn;
2908    int yyresult;
2909    /* Lookahead token as an internal (translated) token number.  */
2910 <  int yytoken;
2910 >  int yytoken = 0;
2911    /* The variables used to return semantic value and location from the
2912       action routines.  */
2913    YYSTYPE yyval;
# Line 3088 | Line 2925 | yyparse ()
2925       Keep to zero when no symbol should be popped.  */
2926    int yylen = 0;
2927  
2928 <  yytoken = 0;
2929 <  yyss = yyssa;
3093 <  yyvs = yyvsa;
2928 >  yyssp = yyss = yyssa;
2929 >  yyvsp = yyvs = yyvsa;
2930    yystacksize = YYINITDEPTH;
2931  
2932    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3099 | Line 2935 | yyparse ()
2935    yyerrstatus = 0;
2936    yynerrs = 0;
2937    yychar = YYEMPTY; /* Cause a token to be read.  */
3102
3103  /* Initialize stack pointers.
3104     Waste one element of value and location stack
3105     so that they stay on the same level as the state stack.
3106     The wasted elements are never initialized.  */
3107  yyssp = yyss;
3108  yyvsp = yyvs;
3109
2938    goto yysetstate;
2939  
2940   /*------------------------------------------------------------.
# Line 3247 | Line 3075 | yybackup:
3075    yychar = YYEMPTY;
3076  
3077    yystate = yyn;
3078 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3079    *++yyvsp = yylval;
3080 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3081  
3082    goto yynewstate;
3083  
# Line 3283 | Line 3113 | yyreduce:
3113    YY_REDUCE_PRINT (yyn);
3114    switch (yyn)
3115      {
3116 <        case 27:
3117 <
3118 < /* Line 1806 of yacc.c  */
3289 < #line 409 "conf_parser.y"
3116 >        case 26:
3117 > /* Line 1792 of yacc.c  */
3118 > #line 384 "conf_parser.y"
3119      { (yyval.number) = 0; }
3120      break;
3121  
3122 <  case 29:
3123 <
3124 < /* Line 1806 of yacc.c  */
3296 < #line 411 "conf_parser.y"
3122 >  case 28:
3123 > /* Line 1792 of yacc.c  */
3124 > #line 386 "conf_parser.y"
3125      {
3126                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3127                  }
3128      break;
3129  
3130 <  case 30:
3131 <
3132 < /* Line 1806 of yacc.c  */
3305 < #line 415 "conf_parser.y"
3130 >  case 29:
3131 > /* Line 1792 of yacc.c  */
3132 > #line 390 "conf_parser.y"
3133      {
3134                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3135                  }
3136      break;
3137  
3138 <  case 31:
3139 <
3140 < /* Line 1806 of yacc.c  */
3314 < #line 419 "conf_parser.y"
3138 >  case 30:
3139 > /* Line 1792 of yacc.c  */
3140 > #line 394 "conf_parser.y"
3141      {
3142                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3143                  }
3144      break;
3145  
3146 <  case 32:
3147 <
3148 < /* Line 1806 of yacc.c  */
3323 < #line 423 "conf_parser.y"
3146 >  case 31:
3147 > /* Line 1792 of yacc.c  */
3148 > #line 398 "conf_parser.y"
3149      {
3150                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3151                  }
3152      break;
3153  
3154 <  case 33:
3155 <
3156 < /* Line 1806 of yacc.c  */
3332 < #line 427 "conf_parser.y"
3154 >  case 32:
3155 > /* Line 1792 of yacc.c  */
3156 > #line 402 "conf_parser.y"
3157      {
3158                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3159                  }
3160      break;
3161  
3162 <  case 34:
3163 <
3164 < /* Line 1806 of yacc.c  */
3341 < #line 431 "conf_parser.y"
3162 >  case 33:
3163 > /* Line 1792 of yacc.c  */
3164 > #line 406 "conf_parser.y"
3165      {
3166                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3167                  }
3168      break;
3169  
3170 <  case 35:
3171 <
3172 < /* Line 1806 of yacc.c  */
3350 < #line 436 "conf_parser.y"
3170 >  case 34:
3171 > /* Line 1792 of yacc.c  */
3172 > #line 411 "conf_parser.y"
3173      { (yyval.number) = 0; }
3174      break;
3175  
3176 <  case 37:
3177 <
3178 < /* Line 1806 of yacc.c  */
3357 < #line 437 "conf_parser.y"
3176 >  case 36:
3177 > /* Line 1792 of yacc.c  */
3178 > #line 412 "conf_parser.y"
3179      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3180      break;
3181  
3182 <  case 38:
3183 <
3184 < /* Line 1806 of yacc.c  */
3364 < #line 438 "conf_parser.y"
3182 >  case 37:
3183 > /* Line 1792 of yacc.c  */
3184 > #line 413 "conf_parser.y"
3185      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3186      break;
3187  
3188 <  case 39:
3189 <
3190 < /* Line 1806 of yacc.c  */
3371 < #line 439 "conf_parser.y"
3188 >  case 38:
3189 > /* Line 1792 of yacc.c  */
3190 > #line 414 "conf_parser.y"
3191      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3192      break;
3193  
3194 <  case 40:
3195 <
3196 < /* Line 1806 of yacc.c  */
3378 < #line 440 "conf_parser.y"
3194 >  case 39:
3195 > /* Line 1792 of yacc.c  */
3196 > #line 415 "conf_parser.y"
3197      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3198      break;
3199  
3200 <  case 47:
3201 <
3202 < /* Line 1806 of yacc.c  */
3385 < #line 454 "conf_parser.y"
3200 >  case 46:
3201 > /* Line 1792 of yacc.c  */
3202 > #line 429 "conf_parser.y"
3203      {
3204    if (conf_parser_ctx.pass == 2)
3205      add_conf_module(libio_basename(yylval.string));
3206   }
3207      break;
3208  
3209 <  case 48:
3210 <
3211 < /* Line 1806 of yacc.c  */
3395 < #line 460 "conf_parser.y"
3209 >  case 47:
3210 > /* Line 1792 of yacc.c  */
3211 > #line 435 "conf_parser.y"
3212      {
3213    if (conf_parser_ctx.pass == 2)
3214      mod_add_path(yylval.string);
3215   }
3216      break;
3217  
3218 <  case 72:
3219 <
3220 < /* Line 1806 of yacc.c  */
3405 < #line 485 "conf_parser.y"
3218 >  case 71:
3219 > /* Line 1792 of yacc.c  */
3220 > #line 460 "conf_parser.y"
3221      {
3222   #ifdef HAVE_LIBCRYPTO
3223    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3411 | Line 3226 | yyreduce:
3226   }
3227      break;
3228  
3229 <  case 73:
3230 <
3231 < /* Line 1806 of yacc.c  */
3417 < #line 491 "conf_parser.y"
3229 >  case 72:
3230 > /* Line 1792 of yacc.c  */
3231 > #line 466 "conf_parser.y"
3232      {
3233   #ifdef HAVE_LIBCRYPTO
3234    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3423 | Line 3237 | yyreduce:
3237   }
3238      break;
3239  
3240 <  case 76:
3241 <
3242 < /* Line 1806 of yacc.c  */
3429 < #line 500 "conf_parser.y"
3240 >  case 75:
3241 > /* Line 1792 of yacc.c  */
3242 > #line 475 "conf_parser.y"
3243      {
3244   #ifdef HAVE_LIBCRYPTO
3245    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3435 | Line 3248 | yyreduce:
3248   }
3249      break;
3250  
3251 <  case 77:
3252 <
3253 < /* Line 1806 of yacc.c  */
3441 < #line 506 "conf_parser.y"
3251 >  case 76:
3252 > /* Line 1792 of yacc.c  */
3253 > #line 481 "conf_parser.y"
3254      {
3255   #ifdef HAVE_LIBCRYPTO
3256    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3447 | Line 3259 | yyreduce:
3259   }
3260      break;
3261  
3262 <  case 78:
3263 <
3264 < /* Line 1806 of yacc.c  */
3453 < #line 514 "conf_parser.y"
3262 >  case 77:
3263 > /* Line 1792 of yacc.c  */
3264 > #line 489 "conf_parser.y"
3265      {
3266   #ifdef HAVE_LIBCRYPTO
3267    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3490 | Line 3301 | yyreduce:
3301   }
3302      break;
3303  
3304 <  case 79:
3305 <
3306 < /* Line 1806 of yacc.c  */
3496 < #line 553 "conf_parser.y"
3304 >  case 78:
3305 > /* Line 1792 of yacc.c  */
3306 > #line 528 "conf_parser.y"
3307      {
3308   #ifdef HAVE_LIBCRYPTO
3309    if (conf_parser_ctx.pass == 1)
# Line 3512 | Line 3322 | yyreduce:
3322        ServerInfo.rsa_private_key_file = NULL;
3323      }
3324  
3325 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3325 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3326  
3327      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3328      {
# Line 3553 | Line 3363 | yyreduce:
3363   }
3364      break;
3365  
3366 <  case 80:
3367 <
3368 < /* Line 1806 of yacc.c  */
3559 < #line 612 "conf_parser.y"
3366 >  case 79:
3367 > /* Line 1792 of yacc.c  */
3368 > #line 587 "conf_parser.y"
3369      {
3370   /* TBD - XXX: error reporting */
3371   #ifdef HAVE_LIBCRYPTO
# Line 3585 | Line 3394 | yyreduce:
3394   }
3395      break;
3396  
3397 <  case 81:
3398 <
3399 < /* Line 1806 of yacc.c  */
3591 < #line 640 "conf_parser.y"
3397 >  case 80:
3398 > /* Line 1792 of yacc.c  */
3399 > #line 615 "conf_parser.y"
3400      {
3401   #ifdef HAVE_LIBCRYPTO
3402    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3597 | Line 3405 | yyreduce:
3405   }
3406      break;
3407  
3408 <  case 82:
3409 <
3410 < /* Line 1806 of yacc.c  */
3603 < #line 648 "conf_parser.y"
3408 >  case 81:
3409 > /* Line 1792 of yacc.c  */
3410 > #line 623 "conf_parser.y"
3411      {
3412    /* this isn't rehashable */
3413    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3414    {
3415      if (valid_servname(yylval.string))
3416 <      DupString(ServerInfo.name, yylval.string);
3416 >      ServerInfo.name = xstrdup(yylval.string);
3417      else
3418      {
3419        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
# Line 3616 | Line 3423 | yyreduce:
3423   }
3424      break;
3425  
3426 <  case 83:
3427 <
3428 < /* Line 1806 of yacc.c  */
3622 < #line 663 "conf_parser.y"
3426 >  case 82:
3427 > /* Line 1792 of yacc.c  */
3428 > #line 638 "conf_parser.y"
3429      {
3430    /* this isn't rehashable */
3431    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3432    {
3433      if (valid_sid(yylval.string))
3434 <      DupString(ServerInfo.sid, yylval.string);
3434 >      ServerInfo.sid = xstrdup(yylval.string);
3435      else
3436      {
3437        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
# Line 3635 | Line 3441 | yyreduce:
3441   }
3442      break;
3443  
3444 <  case 84:
3445 <
3446 < /* Line 1806 of yacc.c  */
3641 < #line 678 "conf_parser.y"
3444 >  case 83:
3445 > /* Line 1792 of yacc.c  */
3446 > #line 653 "conf_parser.y"
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449    {
3450      MyFree(ServerInfo.description);
3451 <    DupString(ServerInfo.description,yylval.string);
3451 >    ServerInfo.description = xstrdup(yylval.string);
3452    }
3453   }
3454      break;
3455  
3456 <  case 85:
3457 <
3458 < /* Line 1806 of yacc.c  */
3654 < #line 687 "conf_parser.y"
3456 >  case 84:
3457 > /* Line 1792 of yacc.c  */
3458 > #line 662 "conf_parser.y"
3459      {
3460    if (conf_parser_ctx.pass == 2)
3461    {
# Line 3661 | Line 3465 | yyreduce:
3465        p = '\0';
3466  
3467      MyFree(ServerInfo.network_name);
3468 <    DupString(ServerInfo.network_name, yylval.string);
3468 >    ServerInfo.network_name = xstrdup(yylval.string);
3469    }
3470   }
3471      break;
3472  
3473 <  case 86:
3474 <
3475 < /* Line 1806 of yacc.c  */
3672 < #line 701 "conf_parser.y"
3473 >  case 85:
3474 > /* Line 1792 of yacc.c  */
3475 > #line 676 "conf_parser.y"
3476      {
3477    if (conf_parser_ctx.pass == 2)
3478    {
3479      MyFree(ServerInfo.network_desc);
3480 <    DupString(ServerInfo.network_desc, yylval.string);
3480 >    ServerInfo.network_desc = xstrdup(yylval.string);
3481    }
3482   }
3483      break;
3484  
3485 <  case 87:
3486 <
3487 < /* Line 1806 of yacc.c  */
3685 < #line 710 "conf_parser.y"
3485 >  case 86:
3486 > /* Line 1792 of yacc.c  */
3487 > #line 685 "conf_parser.y"
3488      {
3489    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3490    {
# Line 3711 | Line 3513 | yyreduce:
3513   }
3514      break;
3515  
3516 <  case 88:
3517 <
3518 < /* Line 1806 of yacc.c  */
3717 < #line 738 "conf_parser.y"
3516 >  case 87:
3517 > /* Line 1792 of yacc.c  */
3518 > #line 713 "conf_parser.y"
3519      {
3520   #ifdef IPV6
3521    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3745 | Line 3546 | yyreduce:
3546   }
3547      break;
3548  
3549 <  case 89:
3550 <
3551 < /* Line 1806 of yacc.c  */
3751 < #line 768 "conf_parser.y"
3549 >  case 88:
3550 > /* Line 1792 of yacc.c  */
3551 > #line 743 "conf_parser.y"
3552      {
3553    if (conf_parser_ctx.pass == 2)
3554    {
# Line 3772 | Line 3572 | yyreduce:
3572   }
3573      break;
3574  
3575 <  case 90:
3576 <
3577 < /* Line 1806 of yacc.c  */
3778 < #line 791 "conf_parser.y"
3575 >  case 89:
3576 > /* Line 1792 of yacc.c  */
3577 > #line 766 "conf_parser.y"
3578      {
3579    if (conf_parser_ctx.pass == 2)
3580      ServerInfo.hub = yylval.number;
3581   }
3582      break;
3583  
3584 <  case 98:
3585 <
3586 < /* Line 1806 of yacc.c  */
3788 < #line 806 "conf_parser.y"
3584 >  case 97:
3585 > /* Line 1792 of yacc.c  */
3586 > #line 781 "conf_parser.y"
3587      {
3588    if (conf_parser_ctx.pass == 2)
3589    {
3590      MyFree(AdminInfo.name);
3591 <    DupString(AdminInfo.name, yylval.string);
3591 >    AdminInfo.name = xstrdup(yylval.string);
3592    }
3593   }
3594      break;
3595  
3596 <  case 99:
3597 <
3598 < /* Line 1806 of yacc.c  */
3801 < #line 815 "conf_parser.y"
3596 >  case 98:
3597 > /* Line 1792 of yacc.c  */
3598 > #line 790 "conf_parser.y"
3599      {
3600    if (conf_parser_ctx.pass == 2)
3601    {
3602      MyFree(AdminInfo.email);
3603 <    DupString(AdminInfo.email, yylval.string);
3603 >    AdminInfo.email = xstrdup(yylval.string);
3604    }
3605   }
3606      break;
3607  
3608 <  case 100:
3609 <
3610 < /* Line 1806 of yacc.c  */
3814 < #line 824 "conf_parser.y"
3608 >  case 99:
3609 > /* Line 1792 of yacc.c  */
3610 > #line 799 "conf_parser.y"
3611      {
3612    if (conf_parser_ctx.pass == 2)
3613    {
3614      MyFree(AdminInfo.description);
3615 <    DupString(AdminInfo.description, yylval.string);
3615 >    AdminInfo.description = xstrdup(yylval.string);
3616    }
3617   }
3618      break;
3619  
3620 <  case 107:
3621 <
3622 < /* Line 1806 of yacc.c  */
3827 < #line 842 "conf_parser.y"
3620 >  case 106:
3621 > /* Line 1792 of yacc.c  */
3622 > #line 817 "conf_parser.y"
3623      {
3624    if (conf_parser_ctx.pass == 2)
3625      ConfigLoggingEntry.use_logging = yylval.number;
3626   }
3627      break;
3628  
3629 <  case 108:
3630 <
3631 < /* Line 1806 of yacc.c  */
3837 < #line 848 "conf_parser.y"
3629 >  case 107:
3630 > /* Line 1792 of yacc.c  */
3631 > #line 823 "conf_parser.y"
3632      {
3633 <  lfile[0] = '\0';
3634 <  ltype = 0;
3841 <  lsize = 0;
3633 >  if (conf_parser_ctx.pass == 2)
3634 >    reset_block_state();
3635   }
3636      break;
3637  
3638 <  case 109:
3638 >  case 108:
3639 > /* Line 1792 of yacc.c  */
3640 > #line 827 "conf_parser.y"
3641 >    {
3642 >  if (conf_parser_ctx.pass != 2)
3643 >    break;
3644  
3645 < /* Line 1806 of yacc.c  */
3646 < #line 853 "conf_parser.y"
3645 >  if (block_state.type.value && block_state.file.buf[0])
3646 >    log_add_file(block_state.type.value, block_state.size.value,
3647 >                 block_state.file.buf);
3648 > }
3649 >    break;
3650 >
3651 >  case 115:
3652 > /* Line 1792 of yacc.c  */
3653 > #line 843 "conf_parser.y"
3654      {
3655 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3656 <    log_add_file(ltype, lsize, lfile);
3655 >  if (conf_parser_ctx.pass != 2)
3656 >    break;
3657 >
3658 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3659   }
3660      break;
3661  
3662    case 116:
3663 <
3664 < /* Line 1806 of yacc.c  */
3858 < #line 865 "conf_parser.y"
3663 > /* Line 1792 of yacc.c  */
3664 > #line 851 "conf_parser.y"
3665      {
3666 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3666 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3667   }
3668      break;
3669  
3670    case 117:
3671 <
3672 < /* Line 1806 of yacc.c  */
3867 < #line 870 "conf_parser.y"
3671 > /* Line 1792 of yacc.c  */
3672 > #line 854 "conf_parser.y"
3673      {
3674 <  lsize = (yyvsp[(3) - (4)].number);
3674 >  block_state.size.value = 0;
3675   }
3676      break;
3677  
3678    case 118:
3679 <
3680 < /* Line 1806 of yacc.c  */
3876 < #line 873 "conf_parser.y"
3679 > /* Line 1792 of yacc.c  */
3680 > #line 859 "conf_parser.y"
3681      {
3682 <  lsize = 0;
3682 >  if (conf_parser_ctx.pass == 2)
3683 >    block_state.type.value = 0;
3684   }
3685      break;
3686  
3687 <  case 119:
3688 <
3689 < /* Line 1806 of yacc.c  */
3885 < #line 878 "conf_parser.y"
3687 >  case 122:
3688 > /* Line 1792 of yacc.c  */
3689 > #line 866 "conf_parser.y"
3690      {
3691    if (conf_parser_ctx.pass == 2)
3692 <    ltype = 0;
3692 >    block_state.type.value = LOG_TYPE_USER;
3693   }
3694      break;
3695  
3696    case 123:
3697 <
3698 < /* Line 1806 of yacc.c  */
3895 < #line 885 "conf_parser.y"
3697 > /* Line 1792 of yacc.c  */
3698 > #line 870 "conf_parser.y"
3699      {
3700    if (conf_parser_ctx.pass == 2)
3701 <    ltype = LOG_TYPE_USER;
3701 >    block_state.type.value = LOG_TYPE_OPER;
3702   }
3703      break;
3704  
3705    case 124:
3706 <
3707 < /* Line 1806 of yacc.c  */
3905 < #line 889 "conf_parser.y"
3706 > /* Line 1792 of yacc.c  */
3707 > #line 874 "conf_parser.y"
3708      {
3709    if (conf_parser_ctx.pass == 2)
3710 <    ltype = LOG_TYPE_OPER;
3710 >    block_state.type.value = LOG_TYPE_GLINE;
3711   }
3712      break;
3713  
3714    case 125:
3715 <
3716 < /* Line 1806 of yacc.c  */
3915 < #line 893 "conf_parser.y"
3715 > /* Line 1792 of yacc.c  */
3716 > #line 878 "conf_parser.y"
3717      {
3718    if (conf_parser_ctx.pass == 2)
3719 <    ltype = LOG_TYPE_GLINE;
3719 >    block_state.type.value = LOG_TYPE_DLINE;
3720   }
3721      break;
3722  
3723    case 126:
3724 <
3725 < /* Line 1806 of yacc.c  */
3925 < #line 897 "conf_parser.y"
3724 > /* Line 1792 of yacc.c  */
3725 > #line 882 "conf_parser.y"
3726      {
3727    if (conf_parser_ctx.pass == 2)
3728 <    ltype = LOG_TYPE_DLINE;
3728 >    block_state.type.value = LOG_TYPE_KLINE;
3729   }
3730      break;
3731  
3732    case 127:
3733 <
3734 < /* Line 1806 of yacc.c  */
3935 < #line 901 "conf_parser.y"
3733 > /* Line 1792 of yacc.c  */
3734 > #line 886 "conf_parser.y"
3735      {
3736    if (conf_parser_ctx.pass == 2)
3737 <    ltype = LOG_TYPE_KLINE;
3737 >    block_state.type.value = LOG_TYPE_KILL;
3738   }
3739      break;
3740  
3741    case 128:
3742 <
3743 < /* Line 1806 of yacc.c  */
3945 < #line 905 "conf_parser.y"
3742 > /* Line 1792 of yacc.c  */
3743 > #line 890 "conf_parser.y"
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746 <    ltype = LOG_TYPE_KILL;
3746 >    block_state.type.value = LOG_TYPE_DEBUG;
3747   }
3748      break;
3749  
3750    case 129:
3751 <
3752 < /* Line 1806 of yacc.c  */
3955 < #line 909 "conf_parser.y"
3751 > /* Line 1792 of yacc.c  */
3752 > #line 900 "conf_parser.y"
3753      {
3754 <  if (conf_parser_ctx.pass == 2)
3958 <    ltype = LOG_TYPE_DEBUG;
3959 < }
3754 >  if (conf_parser_ctx.pass != 2)
3755      break;
3756  
3757 <  case 130:
3758 <
3964 < /* Line 1806 of yacc.c  */
3965 < #line 919 "conf_parser.y"
3966 <    {
3967 <  if (conf_parser_ctx.pass == 2)
3968 <  {
3969 <    yy_conf = make_conf_item(OPER_TYPE);
3970 <    yy_aconf = map_to_conf(yy_conf);
3971 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3972 <  }
3973 <  else
3974 <  {
3975 <    MyFree(class_name);
3976 <    class_name = NULL;
3977 <  }
3757 >  reset_block_state();
3758 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3759   }
3760      break;
3761  
3762 <  case 131:
3763 <
3764 < /* Line 1806 of yacc.c  */
3984 < #line 932 "conf_parser.y"
3762 >  case 130:
3763 > /* Line 1792 of yacc.c  */
3764 > #line 907 "conf_parser.y"
3765      {
3766 <  if (conf_parser_ctx.pass == 2)
3987 <  {
3988 <    struct CollectItem *yy_tmp;
3989 <    dlink_node *ptr;
3990 <    dlink_node *next_ptr;
3991 <
3992 <    conf_add_class_to_conf(yy_conf, class_name);
3766 >  dlink_node *ptr = NULL;
3767  
3768 <    /* Now, make sure there is a copy of the "base" given oper
3769 <     * block in each of the collected copies
3996 <     */
3997 <
3998 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3999 <    {
4000 <      struct AccessItem *new_aconf;
4001 <      struct ConfItem *new_conf;
4002 <      yy_tmp = ptr->data;
3768 >  if (conf_parser_ctx.pass != 2)
3769 >    break;
3770  
3771 <      new_conf = make_conf_item(OPER_TYPE);
3772 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3771 >  if (!block_state.name.buf[0])
3772 >    break;
3773 > #ifdef HAVE_LIBCRYPTO
3774 >  if (!(block_state.file.buf[0] ||
3775 >        block_state.rpass.buf[0]))
3776 >    break;
3777 > #else
3778 >  if (!block_state.rpass.buf[0])
3779 >    break;
3780 > #endif
3781  
3782 <      new_aconf->flags = yy_aconf->flags;
3782 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3783 >  {
3784 >    struct MaskItem *conf = NULL;
3785 >    struct split_nuh_item nuh;
3786  
3787 <      if (yy_conf->name != NULL)
3788 <        DupString(new_conf->name, yy_conf->name);
3789 <      if (yy_tmp->user != NULL)
3790 <        DupString(new_aconf->user, yy_tmp->user);
3791 <      else
3792 <        DupString(new_aconf->user, "*");
3793 <      if (yy_tmp->host != NULL)
3794 <        DupString(new_aconf->host, yy_tmp->host);
4017 <      else
4018 <        DupString(new_aconf->host, "*");
3787 >    nuh.nuhmask  = ptr->data;
3788 >    nuh.nickptr  = NULL;
3789 >    nuh.userptr  = block_state.user.buf;
3790 >    nuh.hostptr  = block_state.host.buf;
3791 >    nuh.nicksize = 0;
3792 >    nuh.usersize = sizeof(block_state.user.buf);
3793 >    nuh.hostsize = sizeof(block_state.host.buf);
3794 >    split_nuh(&nuh);
3795  
3796 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
3797 <                                     &new_aconf->bits);
3796 >    conf        = conf_make(CONF_OPER);
3797 >    conf->name  = xstrdup(block_state.name.buf);
3798 >    conf->user  = xstrdup(block_state.user.buf);
3799 >    conf->host  = xstrdup(block_state.host.buf);
3800 >
3801 >    if (block_state.rpass.buf[0])
3802 >      conf->passwd = xstrdup(block_state.rpass.buf);
3803 >
3804 >    conf->flags = block_state.flags.value;
3805 >    conf->modes = block_state.modes.value;
3806 >    conf->port  = block_state.port.value;
3807 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3808  
3809 <      conf_add_class_to_conf(new_conf, class_name);
4024 <      if (yy_aconf->passwd != NULL)
4025 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3809 >    conf_add_class_to_conf(conf, block_state.class.buf);
3810  
4027      new_aconf->port = yy_aconf->port;
3811   #ifdef HAVE_LIBCRYPTO
3812 <      if (yy_aconf->rsa_public_key_file != NULL)
3813 <      {
3814 <        BIO *file;
3815 <
4033 <        DupString(new_aconf->rsa_public_key_file,
4034 <                  yy_aconf->rsa_public_key_file);
3812 >    if (block_state.file.buf[0])
3813 >    {
3814 >      BIO *file = NULL;
3815 >      RSA *pkey = NULL;
3816  
3817 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3818 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
3819 <                                                           NULL, 0, NULL);
3820 <        BIO_set_close(file, BIO_CLOSE);
4040 <        BIO_free(file);
3817 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3818 >      {
3819 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3820 >        break;
3821        }
4042 #endif
3822  
3823 < #ifdef HAVE_LIBCRYPTO
4045 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4046 <          && yy_tmp->host)
4047 < #else
4048 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4049 < #endif
3823 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3824        {
3825 <        conf_add_class_to_conf(new_conf, class_name);
3826 <        if (yy_tmp->name != NULL)
4053 <          DupString(new_conf->name, yy_tmp->name);
3825 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3826 >        break;
3827        }
3828  
3829 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3830 <      free_collect_item(yy_tmp);
3829 >      conf->rsa_public_key = pkey;
3830 >      BIO_set_close(file, BIO_CLOSE);
3831 >      BIO_free(file);
3832      }
3833 <
4060 <    yy_conf = NULL;
4061 <    yy_aconf = NULL;
4062 <
4063 <
4064 <    MyFree(class_name);
4065 <    class_name = NULL;
3833 > #endif /* HAVE_LIBCRYPTO */
3834    }
3835   }
3836      break;
3837  
3838 <  case 143:
3839 <
3840 < /* Line 1806 of yacc.c  */
4073 < #line 1022 "conf_parser.y"
3838 >  case 142:
3839 > /* Line 1792 of yacc.c  */
3840 > #line 985 "conf_parser.y"
3841      {
3842    if (conf_parser_ctx.pass == 2)
3843 <  {
4077 <    if (strlen(yylval.string) > OPERNICKLEN)
4078 <      yylval.string[OPERNICKLEN] = '\0';
4079 <
4080 <    MyFree(yy_conf->name);
4081 <    DupString(yy_conf->name, yylval.string);
4082 <  }
3843 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3844   }
3845      break;
3846  
3847 <  case 144:
3848 <
3849 < /* Line 1806 of yacc.c  */
4089 < #line 1034 "conf_parser.y"
3847 >  case 143:
3848 > /* Line 1792 of yacc.c  */
3849 > #line 991 "conf_parser.y"
3850      {
3851    if (conf_parser_ctx.pass == 2)
3852 <  {
3853 <    struct split_nuh_item nuh;
3854 <
4095 <    nuh.nuhmask  = yylval.string;
4096 <    nuh.nickptr  = NULL;
4097 <    nuh.userptr  = userbuf;
4098 <    nuh.hostptr  = hostbuf;
4099 <
4100 <    nuh.nicksize = 0;
4101 <    nuh.usersize = sizeof(userbuf);
4102 <    nuh.hostsize = sizeof(hostbuf);
4103 <
4104 <    split_nuh(&nuh);
4105 <
4106 <    if (yy_aconf->user == NULL)
4107 <    {
4108 <      DupString(yy_aconf->user, userbuf);
4109 <      DupString(yy_aconf->host, hostbuf);
3852 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3853 > }
3854 >    break;
3855  
3856 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
3857 <                                    &yy_aconf->bits);
3858 <    }
4114 <    else
3856 >  case 144:
3857 > /* Line 1792 of yacc.c  */
3858 > #line 997 "conf_parser.y"
3859      {
3860 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3861 <
4118 <      DupString(yy_tmp->user, userbuf);
4119 <      DupString(yy_tmp->host, hostbuf);
4120 <
4121 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4122 <    }
4123 <  }
3860 >  if (conf_parser_ctx.pass == 2)
3861 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3862   }
3863      break;
3864  
3865    case 145:
3866 <
3867 < /* Line 1806 of yacc.c  */
4130 < #line 1071 "conf_parser.y"
3866 > /* Line 1792 of yacc.c  */
3867 > #line 1003 "conf_parser.y"
3868      {
3869    if (conf_parser_ctx.pass == 2)
3870    {
3871 <    if (yy_aconf->passwd != NULL)
3872 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3873 <
3874 <    MyFree(yy_aconf->passwd);
4138 <    DupString(yy_aconf->passwd, yylval.string);
3871 >    if (yylval.number)
3872 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3873 >    else
3874 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3875    }
3876   }
3877      break;
3878  
3879    case 146:
3880 <
3881 < /* Line 1806 of yacc.c  */
4146 < #line 1083 "conf_parser.y"
3880 > /* Line 1792 of yacc.c  */
3881 > #line 1014 "conf_parser.y"
3882      {
3883    if (conf_parser_ctx.pass == 2)
3884 <  {
4150 <    if (yylval.number)
4151 <      SetConfEncrypted(yy_aconf);
4152 <    else
4153 <      ClearConfEncrypted(yy_aconf);
4154 <  }
3884 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3885   }
3886      break;
3887  
3888    case 147:
3889 <
3890 < /* Line 1806 of yacc.c  */
4161 < #line 1094 "conf_parser.y"
3889 > /* Line 1792 of yacc.c  */
3890 > #line 1020 "conf_parser.y"
3891      {
4163 #ifdef HAVE_LIBCRYPTO
3892    if (conf_parser_ctx.pass == 2)
3893 <  {
4166 <    BIO *file;
4167 <
4168 <    if (yy_aconf->rsa_public_key != NULL)
4169 <    {
4170 <      RSA_free(yy_aconf->rsa_public_key);
4171 <      yy_aconf->rsa_public_key = NULL;
4172 <    }
4173 <
4174 <    if (yy_aconf->rsa_public_key_file != NULL)
4175 <    {
4176 <      MyFree(yy_aconf->rsa_public_key_file);
4177 <      yy_aconf->rsa_public_key_file = NULL;
4178 <    }
4179 <
4180 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4181 <    file = BIO_new_file(yylval.string, "r");
4182 <
4183 <    if (file == NULL)
4184 <    {
4185 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4186 <      break;
4187 <    }
4188 <
4189 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4190 <
4191 <    if (yy_aconf->rsa_public_key == NULL)
4192 <    {
4193 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4194 <      break;
4195 <    }
4196 <
4197 <    BIO_set_close(file, BIO_CLOSE);
4198 <    BIO_free(file);
4199 <  }
4200 < #endif /* HAVE_LIBCRYPTO */
3893 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3894   }
3895      break;
3896  
3897    case 148:
3898 <
3899 < /* Line 1806 of yacc.c  */
4207 < #line 1136 "conf_parser.y"
3898 > /* Line 1792 of yacc.c  */
3899 > #line 1026 "conf_parser.y"
3900      {
3901    if (conf_parser_ctx.pass == 2)
3902 <  {
4211 <    MyFree(class_name);
4212 <    DupString(class_name, yylval.string);
4213 <  }
3902 >    block_state.modes.value = 0;
3903   }
3904      break;
3905  
3906 <  case 149:
3907 <
3908 < /* Line 1806 of yacc.c  */
4220 < #line 1145 "conf_parser.y"
3906 >  case 152:
3907 > /* Line 1792 of yacc.c  */
3908 > #line 1033 "conf_parser.y"
3909      {
3910    if (conf_parser_ctx.pass == 2)
3911 <    yy_aconf->modes = 0;
3911 >    block_state.modes.value |= UMODE_BOTS;
3912   }
3913      break;
3914  
3915    case 153:
3916 <
3917 < /* Line 1806 of yacc.c  */
4230 < #line 1152 "conf_parser.y"
3916 > /* Line 1792 of yacc.c  */
3917 > #line 1037 "conf_parser.y"
3918      {
3919    if (conf_parser_ctx.pass == 2)
3920 <    yy_aconf->modes |= UMODE_BOTS;
3920 >    block_state.modes.value |= UMODE_CCONN;
3921   }
3922      break;
3923  
3924    case 154:
3925 <
3926 < /* Line 1806 of yacc.c  */
4240 < #line 1156 "conf_parser.y"
3925 > /* Line 1792 of yacc.c  */
3926 > #line 1041 "conf_parser.y"
3927      {
3928    if (conf_parser_ctx.pass == 2)
3929 <    yy_aconf->modes |= UMODE_CCONN;
3929 >    block_state.modes.value |= UMODE_CCONN_FULL;
3930   }
3931      break;
3932  
3933    case 155:
3934 <
3935 < /* Line 1806 of yacc.c  */
4250 < #line 1160 "conf_parser.y"
3934 > /* Line 1792 of yacc.c  */
3935 > #line 1045 "conf_parser.y"
3936      {
3937    if (conf_parser_ctx.pass == 2)
3938 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3938 >    block_state.modes.value |= UMODE_DEAF;
3939   }
3940      break;
3941  
3942    case 156:
3943 <
3944 < /* Line 1806 of yacc.c  */
4260 < #line 1164 "conf_parser.y"
3943 > /* Line 1792 of yacc.c  */
3944 > #line 1049 "conf_parser.y"
3945      {
3946    if (conf_parser_ctx.pass == 2)
3947 <    yy_aconf->modes |= UMODE_DEAF;
3947 >    block_state.modes.value |= UMODE_DEBUG;
3948   }
3949      break;
3950  
3951    case 157:
3952 <
3953 < /* Line 1806 of yacc.c  */
4270 < #line 1168 "conf_parser.y"
3952 > /* Line 1792 of yacc.c  */
3953 > #line 1053 "conf_parser.y"
3954      {
3955    if (conf_parser_ctx.pass == 2)
3956 <    yy_aconf->modes |= UMODE_DEBUG;
3956 >    block_state.modes.value |= UMODE_FULL;
3957   }
3958      break;
3959  
3960    case 158:
3961 <
3962 < /* Line 1806 of yacc.c  */
4280 < #line 1172 "conf_parser.y"
3961 > /* Line 1792 of yacc.c  */
3962 > #line 1057 "conf_parser.y"
3963      {
3964    if (conf_parser_ctx.pass == 2)
3965 <    yy_aconf->modes |= UMODE_FULL;
3965 >    block_state.modes.value |= UMODE_HIDDEN;
3966   }
3967      break;
3968  
3969    case 159:
3970 <
3971 < /* Line 1806 of yacc.c  */
4290 < #line 1176 "conf_parser.y"
3970 > /* Line 1792 of yacc.c  */
3971 > #line 1061 "conf_parser.y"
3972      {
3973    if (conf_parser_ctx.pass == 2)
3974 <    yy_aconf->modes |= UMODE_HIDDEN;
3974 >    block_state.modes.value |= UMODE_SKILL;
3975   }
3976      break;
3977  
3978    case 160:
3979 <
3980 < /* Line 1806 of yacc.c  */
4300 < #line 1180 "conf_parser.y"
3979 > /* Line 1792 of yacc.c  */
3980 > #line 1065 "conf_parser.y"
3981      {
3982    if (conf_parser_ctx.pass == 2)
3983 <    yy_aconf->modes |= UMODE_SKILL;
3983 >    block_state.modes.value |= UMODE_NCHANGE;
3984   }
3985      break;
3986  
3987    case 161:
3988 <
3989 < /* Line 1806 of yacc.c  */
4310 < #line 1184 "conf_parser.y"
3988 > /* Line 1792 of yacc.c  */
3989 > #line 1069 "conf_parser.y"
3990      {
3991    if (conf_parser_ctx.pass == 2)
3992 <    yy_aconf->modes |= UMODE_NCHANGE;
3992 >    block_state.modes.value |= UMODE_REJ;
3993   }
3994      break;
3995  
3996    case 162:
3997 <
3998 < /* Line 1806 of yacc.c  */
4320 < #line 1188 "conf_parser.y"
3997 > /* Line 1792 of yacc.c  */
3998 > #line 1073 "conf_parser.y"
3999      {
4000    if (conf_parser_ctx.pass == 2)
4001 <    yy_aconf->modes |= UMODE_REJ;
4001 >    block_state.modes.value |= UMODE_UNAUTH;
4002   }
4003      break;
4004  
4005    case 163:
4006 <
4007 < /* Line 1806 of yacc.c  */
4330 < #line 1192 "conf_parser.y"
4006 > /* Line 1792 of yacc.c  */
4007 > #line 1077 "conf_parser.y"
4008      {
4009    if (conf_parser_ctx.pass == 2)
4010 <    yy_aconf->modes |= UMODE_UNAUTH;
4010 >    block_state.modes.value |= UMODE_SPY;
4011   }
4012      break;
4013  
4014    case 164:
4015 <
4016 < /* Line 1806 of yacc.c  */
4340 < #line 1196 "conf_parser.y"
4015 > /* Line 1792 of yacc.c  */
4016 > #line 1081 "conf_parser.y"
4017      {
4018    if (conf_parser_ctx.pass == 2)
4019 <    yy_aconf->modes |= UMODE_SPY;
4019 >    block_state.modes.value |= UMODE_EXTERNAL;
4020   }
4021      break;
4022  
4023    case 165:
4024 <
4025 < /* Line 1806 of yacc.c  */
4350 < #line 1200 "conf_parser.y"
4024 > /* Line 1792 of yacc.c  */
4025 > #line 1085 "conf_parser.y"
4026      {
4027    if (conf_parser_ctx.pass == 2)
4028 <    yy_aconf->modes |= UMODE_EXTERNAL;
4028 >    block_state.modes.value |= UMODE_OPERWALL;
4029   }
4030      break;
4031  
4032    case 166:
4033 <
4034 < /* Line 1806 of yacc.c  */
4360 < #line 1204 "conf_parser.y"
4033 > /* Line 1792 of yacc.c  */
4034 > #line 1089 "conf_parser.y"
4035      {
4036    if (conf_parser_ctx.pass == 2)
4037 <    yy_aconf->modes |= UMODE_OPERWALL;
4037 >    block_state.modes.value |= UMODE_SERVNOTICE;
4038   }
4039      break;
4040  
4041    case 167:
4042 <
4043 < /* Line 1806 of yacc.c  */
4370 < #line 1208 "conf_parser.y"
4042 > /* Line 1792 of yacc.c  */
4043 > #line 1093 "conf_parser.y"
4044      {
4045    if (conf_parser_ctx.pass == 2)
4046 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4046 >    block_state.modes.value |= UMODE_INVISIBLE;
4047   }
4048      break;
4049  
4050    case 168:
4051 <
4052 < /* Line 1806 of yacc.c  */
4380 < #line 1212 "conf_parser.y"
4051 > /* Line 1792 of yacc.c  */
4052 > #line 1097 "conf_parser.y"
4053      {
4054    if (conf_parser_ctx.pass == 2)
4055 <    yy_aconf->modes |= UMODE_INVISIBLE;
4055 >    block_state.modes.value |= UMODE_WALLOP;
4056   }
4057      break;
4058  
4059    case 169:
4060 <
4061 < /* Line 1806 of yacc.c  */
4390 < #line 1216 "conf_parser.y"
4060 > /* Line 1792 of yacc.c  */
4061 > #line 1101 "conf_parser.y"
4062      {
4063    if (conf_parser_ctx.pass == 2)
4064 <    yy_aconf->modes |= UMODE_WALLOP;
4064 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4065   }
4066      break;
4067  
4068    case 170:
4069 <
4070 < /* Line 1806 of yacc.c  */
4400 < #line 1220 "conf_parser.y"
4069 > /* Line 1792 of yacc.c  */
4070 > #line 1105 "conf_parser.y"
4071      {
4072    if (conf_parser_ctx.pass == 2)
4073 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4073 >    block_state.modes.value |= UMODE_CALLERID;
4074   }
4075      break;
4076  
4077    case 171:
4078 <
4079 < /* Line 1806 of yacc.c  */
4410 < #line 1224 "conf_parser.y"
4078 > /* Line 1792 of yacc.c  */
4079 > #line 1109 "conf_parser.y"
4080      {
4081    if (conf_parser_ctx.pass == 2)
4082 <    yy_aconf->modes |= UMODE_CALLERID;
4082 >    block_state.modes.value |= UMODE_LOCOPS;
4083   }
4084      break;
4085  
4086    case 172:
4087 <
4088 < /* Line 1806 of yacc.c  */
4420 < #line 1228 "conf_parser.y"
4087 > /* Line 1792 of yacc.c  */
4088 > #line 1115 "conf_parser.y"
4089      {
4090    if (conf_parser_ctx.pass == 2)
4091 <    yy_aconf->modes |= UMODE_LOCOPS;
4091 >    block_state.port.value = 0;
4092   }
4093      break;
4094  
4095 <  case 173:
4096 <
4097 < /* Line 1806 of yacc.c  */
4430 < #line 1234 "conf_parser.y"
4095 >  case 176:
4096 > /* Line 1792 of yacc.c  */
4097 > #line 1122 "conf_parser.y"
4098      {
4099    if (conf_parser_ctx.pass == 2)
4100 <    yy_aconf->port = 0;
4100 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4101   }
4102      break;
4103  
4104    case 177:
4105 <
4106 < /* Line 1806 of yacc.c  */
4440 < #line 1241 "conf_parser.y"
4105 > /* Line 1792 of yacc.c  */
4106 > #line 1126 "conf_parser.y"
4107      {
4108    if (conf_parser_ctx.pass == 2)
4109 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4109 >    block_state.port.value |= OPER_FLAG_REMOTE;
4110   }
4111      break;
4112  
4113    case 178:
4114 <
4115 < /* Line 1806 of yacc.c  */
4450 < #line 1245 "conf_parser.y"
4114 > /* Line 1792 of yacc.c  */
4115 > #line 1130 "conf_parser.y"
4116      {
4117    if (conf_parser_ctx.pass == 2)
4118 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4118 >    block_state.port.value |= OPER_FLAG_K;
4119   }
4120      break;
4121  
4122    case 179:
4123 <
4124 < /* Line 1806 of yacc.c  */
4460 < #line 1249 "conf_parser.y"
4123 > /* Line 1792 of yacc.c  */
4124 > #line 1134 "conf_parser.y"
4125      {
4126    if (conf_parser_ctx.pass == 2)
4127 <    yy_aconf->port |= OPER_FLAG_K;
4127 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4128   }
4129      break;
4130  
4131    case 180:
4132 <
4133 < /* Line 1806 of yacc.c  */
4470 < #line 1253 "conf_parser.y"
4132 > /* Line 1792 of yacc.c  */
4133 > #line 1138 "conf_parser.y"
4134      {
4135    if (conf_parser_ctx.pass == 2)
4136 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4136 >    block_state.port.value |= OPER_FLAG_DLINE;
4137   }
4138      break;
4139  
4140    case 181:
4141 <
4142 < /* Line 1806 of yacc.c  */
4480 < #line 1257 "conf_parser.y"
4141 > /* Line 1792 of yacc.c  */
4142 > #line 1142 "conf_parser.y"
4143      {
4144    if (conf_parser_ctx.pass == 2)
4145 <    yy_aconf->port |= OPER_FLAG_DLINE;
4145 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4146   }
4147      break;
4148  
4149    case 182:
4150 <
4151 < /* Line 1806 of yacc.c  */
4490 < #line 1261 "conf_parser.y"
4150 > /* Line 1792 of yacc.c  */
4151 > #line 1146 "conf_parser.y"
4152      {
4153    if (conf_parser_ctx.pass == 2)
4154 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4154 >    block_state.port.value |= OPER_FLAG_X;
4155   }
4156      break;
4157  
4158    case 183:
4159 <
4160 < /* Line 1806 of yacc.c  */
4500 < #line 1265 "conf_parser.y"
4159 > /* Line 1792 of yacc.c  */
4160 > #line 1150 "conf_parser.y"
4161      {
4162    if (conf_parser_ctx.pass == 2)
4163 <    yy_aconf->port |= OPER_FLAG_X;
4163 >    block_state.port.value |= OPER_FLAG_GLINE;
4164   }
4165      break;
4166  
4167    case 184:
4168 <
4169 < /* Line 1806 of yacc.c  */
4510 < #line 1269 "conf_parser.y"
4168 > /* Line 1792 of yacc.c  */
4169 > #line 1154 "conf_parser.y"
4170      {
4171    if (conf_parser_ctx.pass == 2)
4172 <    yy_aconf->port |= OPER_FLAG_GLINE;
4172 >    block_state.port.value |= OPER_FLAG_DIE;
4173   }
4174      break;
4175  
4176    case 185:
4177 <
4178 < /* Line 1806 of yacc.c  */
4520 < #line 1273 "conf_parser.y"
4177 > /* Line 1792 of yacc.c  */
4178 > #line 1158 "conf_parser.y"
4179      {
4180    if (conf_parser_ctx.pass == 2)
4181 <    yy_aconf->port |= OPER_FLAG_DIE;
4181 >    block_state.port.value |= OPER_FLAG_RESTART;
4182   }
4183      break;
4184  
4185    case 186:
4186 <
4187 < /* Line 1806 of yacc.c  */
4530 < #line 1277 "conf_parser.y"
4186 > /* Line 1792 of yacc.c  */
4187 > #line 1162 "conf_parser.y"
4188      {
4189    if (conf_parser_ctx.pass == 2)
4190 <    yy_aconf->port |= OPER_FLAG_RESTART;
4190 >    block_state.port.value |= OPER_FLAG_REHASH;
4191   }
4192      break;
4193  
4194    case 187:
4195 <
4196 < /* Line 1806 of yacc.c  */
4540 < #line 1281 "conf_parser.y"
4195 > /* Line 1792 of yacc.c  */
4196 > #line 1166 "conf_parser.y"
4197      {
4198    if (conf_parser_ctx.pass == 2)
4199 <    yy_aconf->port |= OPER_FLAG_REHASH;
4199 >    block_state.port.value |= OPER_FLAG_ADMIN;
4200   }
4201      break;
4202  
4203    case 188:
4204 <
4205 < /* Line 1806 of yacc.c  */
4550 < #line 1285 "conf_parser.y"
4204 > /* Line 1792 of yacc.c  */
4205 > #line 1170 "conf_parser.y"
4206      {
4207    if (conf_parser_ctx.pass == 2)
4208 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4208 >    block_state.port.value |= OPER_FLAG_N;
4209   }
4210      break;
4211  
4212    case 189:
4213 <
4214 < /* Line 1806 of yacc.c  */
4560 < #line 1289 "conf_parser.y"
4213 > /* Line 1792 of yacc.c  */
4214 > #line 1174 "conf_parser.y"
4215      {
4216    if (conf_parser_ctx.pass == 2)
4217 <    yy_aconf->port |= OPER_FLAG_N;
4217 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4218   }
4219      break;
4220  
4221    case 190:
4222 <
4223 < /* Line 1806 of yacc.c  */
4570 < #line 1293 "conf_parser.y"
4222 > /* Line 1792 of yacc.c  */
4223 > #line 1178 "conf_parser.y"
4224      {
4225    if (conf_parser_ctx.pass == 2)
4226 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4226 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4227   }
4228      break;
4229  
4230    case 191:
4231 <
4232 < /* Line 1806 of yacc.c  */
4580 < #line 1297 "conf_parser.y"
4231 > /* Line 1792 of yacc.c  */
4232 > #line 1182 "conf_parser.y"
4233      {
4234    if (conf_parser_ctx.pass == 2)
4235 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4235 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4236   }
4237      break;
4238  
4239    case 192:
4240 <
4241 < /* Line 1806 of yacc.c  */
4590 < #line 1301 "conf_parser.y"
4240 > /* Line 1792 of yacc.c  */
4241 > #line 1186 "conf_parser.y"
4242      {
4243    if (conf_parser_ctx.pass == 2)
4244 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4244 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4245   }
4246      break;
4247  
4248    case 193:
4249 <
4250 < /* Line 1806 of yacc.c  */
4600 < #line 1305 "conf_parser.y"
4249 > /* Line 1792 of yacc.c  */
4250 > #line 1190 "conf_parser.y"
4251      {
4252    if (conf_parser_ctx.pass == 2)
4253 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4253 >    block_state.port.value |= OPER_FLAG_SET;
4254   }
4255      break;
4256  
4257    case 194:
4258 <
4259 < /* Line 1806 of yacc.c  */
4610 < #line 1309 "conf_parser.y"
4258 > /* Line 1792 of yacc.c  */
4259 > #line 1194 "conf_parser.y"
4260      {
4261    if (conf_parser_ctx.pass == 2)
4262 <    yy_aconf->port |= OPER_FLAG_MODULE;
4262 >    block_state.port.value |= OPER_FLAG_MODULE;
4263   }
4264      break;
4265  
4266    case 195:
4267 <
4268 < /* Line 1806 of yacc.c  */
4620 < #line 1319 "conf_parser.y"
4267 > /* Line 1792 of yacc.c  */
4268 > #line 1204 "conf_parser.y"
4269      {
4270 <  if (conf_parser_ctx.pass == 1)
4623 <  {
4624 <    yy_conf = make_conf_item(CLASS_TYPE);
4625 <    yy_class = map_to_conf(yy_conf);
4626 <  }
4627 < }
4270 >  if (conf_parser_ctx.pass != 1)
4271      break;
4272  
4273 <  case 196:
4631 <
4632 < /* Line 1806 of yacc.c  */
4633 < #line 1326 "conf_parser.y"
4634 <    {
4635 <  if (conf_parser_ctx.pass == 1)
4636 <  {
4637 <    struct ConfItem *cconf = NULL;
4638 <    struct ClassItem *class = NULL;
4639 <
4640 <    if (yy_class_name == NULL)
4641 <      delete_conf_item(yy_conf);
4642 <    else
4643 <    {
4644 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4645 <
4646 <      if (cconf != NULL)                /* The class existed already */
4647 <      {
4648 <        int user_count = 0;
4273 >  reset_block_state();
4274  
4275 <        rebuild_cidr_class(cconf, yy_class);
4275 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4276 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4277 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4278 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4279 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4280  
4281 <        class = map_to_conf(cconf);
4282 <
4654 <        user_count = class->curr_user_count;
4655 <        memcpy(class, yy_class, sizeof(*class));
4656 <        class->curr_user_count = user_count;
4657 <        class->active = 1;
4281 > }
4282 >    break;
4283  
4284 <        delete_conf_item(yy_conf);
4284 >  case 196:
4285 > /* Line 1792 of yacc.c  */
4286 > #line 1217 "conf_parser.y"
4287 >    {
4288 >  struct ClassItem *class = NULL;
4289  
4290 <        MyFree(cconf->name);            /* Allows case change of class name */
4291 <        cconf->name = yy_class_name;
4663 <      }
4664 <      else      /* Brand new class */
4665 <      {
4666 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4667 <        yy_conf->name = yy_class_name;
4668 <        yy_class->active = 1;
4669 <      }
4670 <    }
4290 >  if (conf_parser_ctx.pass != 1)
4291 >    break;
4292  
4293 <    yy_class_name = NULL;
4294 <  }
4293 >  if (!block_state.class.buf[0])
4294 >    break;
4295 >
4296 >  if (!(class = class_find(block_state.class.buf, 0)))
4297 >    class = class_make();
4298 >
4299 >  class->active = 1;
4300 >  MyFree(class->name);
4301 >  class->name = xstrdup(block_state.class.buf);
4302 >  class->ping_freq = block_state.ping_freq.value;
4303 >  class->max_perip = block_state.max_perip.value;
4304 >  class->con_freq = block_state.con_freq.value;
4305 >  class->max_total = block_state.max_total.value;
4306 >  class->max_global = block_state.max_global.value;
4307 >  class->max_local = block_state.max_local.value;
4308 >  class->max_ident = block_state.max_ident.value;
4309 >  class->max_sendq = block_state.max_sendq.value;
4310 >  class->max_recvq = block_state.max_recvq.value;
4311 >
4312 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4313 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4314 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4315 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4316 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4317 >        rebuild_cidr_list(class);
4318 >
4319 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4320 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4321 >  class->number_per_cidr = block_state.number_per_cidr.value;
4322   }
4323      break;
4324  
4325    case 213:
4326 <
4327 < /* Line 1806 of yacc.c  */
4680 < #line 1384 "conf_parser.y"
4326 > /* Line 1792 of yacc.c  */
4327 > #line 1269 "conf_parser.y"
4328      {
4329    if (conf_parser_ctx.pass == 1)
4330 <  {
4684 <    MyFree(yy_class_name);
4685 <    DupString(yy_class_name, yylval.string);
4686 <  }
4330 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4331   }
4332      break;
4333  
4334    case 214:
4335 <
4336 < /* Line 1806 of yacc.c  */
4693 < #line 1393 "conf_parser.y"
4335 > /* Line 1792 of yacc.c  */
4336 > #line 1275 "conf_parser.y"
4337      {
4338    if (conf_parser_ctx.pass == 1)
4339 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4339 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4340   }
4341      break;
4342  
4343    case 215:
4344 <
4345 < /* Line 1806 of yacc.c  */
4703 < #line 1399 "conf_parser.y"
4344 > /* Line 1792 of yacc.c  */
4345 > #line 1281 "conf_parser.y"
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4348 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4349   }
4350      break;
4351  
4352    case 216:
4353 <
4354 < /* Line 1806 of yacc.c  */
4713 < #line 1405 "conf_parser.y"
4353 > /* Line 1792 of yacc.c  */
4354 > #line 1287 "conf_parser.y"
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4357 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4358   }
4359      break;
4360  
4361    case 217:
4362 <
4363 < /* Line 1806 of yacc.c  */
4723 < #line 1411 "conf_parser.y"
4362 > /* Line 1792 of yacc.c  */
4363 > #line 1293 "conf_parser.y"
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4367   }
4368      break;
4369  
4370    case 218:
4371 <
4372 < /* Line 1806 of yacc.c  */
4733 < #line 1417 "conf_parser.y"
4371 > /* Line 1792 of yacc.c  */
4372 > #line 1299 "conf_parser.y"
4373      {
4374    if (conf_parser_ctx.pass == 1)
4375 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4375 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4376   }
4377      break;
4378  
4379    case 219:
4380 <
4381 < /* Line 1806 of yacc.c  */
4743 < #line 1423 "conf_parser.y"
4380 > /* Line 1792 of yacc.c  */
4381 > #line 1305 "conf_parser.y"
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4384 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4385   }
4386      break;
4387  
4388    case 220:
4389 <
4390 < /* Line 1806 of yacc.c  */
4753 < #line 1429 "conf_parser.y"
4389 > /* Line 1792 of yacc.c  */
4390 > #line 1311 "conf_parser.y"
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4393 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4394   }
4395      break;
4396  
4397    case 221:
4398 <
4399 < /* Line 1806 of yacc.c  */
4763 < #line 1435 "conf_parser.y"
4398 > /* Line 1792 of yacc.c  */
4399 > #line 1317 "conf_parser.y"
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4402 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4403   }
4404      break;
4405  
4406    case 222:
4407 <
4408 < /* Line 1806 of yacc.c  */
4773 < #line 1441 "conf_parser.y"
4407 > /* Line 1792 of yacc.c  */
4408 > #line 1323 "conf_parser.y"
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4411 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4412 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4413   }
4414      break;
4415  
4416    case 223:
4417 <
4418 < /* Line 1806 of yacc.c  */
4783 < #line 1447 "conf_parser.y"
4417 > /* Line 1792 of yacc.c  */
4418 > #line 1330 "conf_parser.y"
4419      {
4420    if (conf_parser_ctx.pass == 1)
4421 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4421 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4422   }
4423      break;
4424  
4425    case 224:
4426 <
4427 < /* Line 1806 of yacc.c  */
4793 < #line 1453 "conf_parser.y"
4426 > /* Line 1792 of yacc.c  */
4427 > #line 1336 "conf_parser.y"
4428      {
4429    if (conf_parser_ctx.pass == 1)
4430 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4430 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4431   }
4432      break;
4433  
4434    case 225:
4435 <
4436 < /* Line 1806 of yacc.c  */
4803 < #line 1459 "conf_parser.y"
4435 > /* Line 1792 of yacc.c  */
4436 > #line 1342 "conf_parser.y"
4437      {
4438    if (conf_parser_ctx.pass == 1)
4439 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4439 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4440   }
4441      break;
4442  
4443    case 226:
4444 <
4445 < /* Line 1806 of yacc.c  */
4813 < #line 1468 "conf_parser.y"
4814 <    {
4815 <  if (conf_parser_ctx.pass == 2)
4816 <  {
4817 <    listener_address = NULL;
4818 <    listener_flags = 0;
4819 <  }
4820 < }
4821 <    break;
4822 <
4823 <  case 227:
4824 <
4825 < /* Line 1806 of yacc.c  */
4826 < #line 1475 "conf_parser.y"
4444 > /* Line 1792 of yacc.c  */
4445 > #line 1351 "conf_parser.y"
4446      {
4447    if (conf_parser_ctx.pass == 2)
4448 <  {
4830 <    MyFree(listener_address);
4831 <    listener_address = NULL;
4832 <  }
4448 >    reset_block_state();
4449   }
4450      break;
4451  
4452    case 228:
4453 <
4454 < /* Line 1806 of yacc.c  */
4839 < #line 1484 "conf_parser.y"
4453 > /* Line 1792 of yacc.c  */
4454 > #line 1357 "conf_parser.y"
4455      {
4456 <  listener_flags = 0;
4456 >  block_state.flags.value = 0;
4457   }
4458      break;
4459  
4460    case 232:
4461 <
4462 < /* Line 1806 of yacc.c  */
4848 < #line 1490 "conf_parser.y"
4461 > /* Line 1792 of yacc.c  */
4462 > #line 1363 "conf_parser.y"
4463      {
4464    if (conf_parser_ctx.pass == 2)
4465 <    listener_flags |= LISTENER_SSL;
4465 >    block_state.flags.value |= LISTENER_SSL;
4466   }
4467      break;
4468  
4469    case 233:
4470 <
4471 < /* Line 1806 of yacc.c  */
4858 < #line 1494 "conf_parser.y"
4470 > /* Line 1792 of yacc.c  */
4471 > #line 1367 "conf_parser.y"
4472      {
4473    if (conf_parser_ctx.pass == 2)
4474 <    listener_flags |= LISTENER_HIDDEN;
4474 >    block_state.flags.value |= LISTENER_HIDDEN;
4475   }
4476      break;
4477  
4478    case 234:
4479 <
4480 < /* Line 1806 of yacc.c  */
4868 < #line 1498 "conf_parser.y"
4479 > /* Line 1792 of yacc.c  */
4480 > #line 1371 "conf_parser.y"
4481      {
4482    if (conf_parser_ctx.pass == 2)
4483 <    listener_flags |= LISTENER_SERVER;
4483 >   block_state.flags.value |= LISTENER_SERVER;
4484   }
4485      break;
4486  
4487    case 242:
4488 <
4489 < /* Line 1806 of yacc.c  */
4490 < #line 1508 "conf_parser.y"
4879 <    { listener_flags = 0; }
4488 > /* Line 1792 of yacc.c  */
4489 > #line 1379 "conf_parser.y"
4490 >    { block_state.flags.value = 0; }
4491      break;
4492  
4493    case 246:
4494 <
4495 < /* Line 1806 of yacc.c  */
4885 < #line 1513 "conf_parser.y"
4494 > /* Line 1792 of yacc.c  */
4495 > #line 1384 "conf_parser.y"
4496      {
4497    if (conf_parser_ctx.pass == 2)
4498    {
4499 <    if ((listener_flags & LISTENER_SSL))
4499 >    if (block_state.flags.value & LISTENER_SSL)
4500   #ifdef HAVE_LIBCRYPTO
4501        if (!ServerInfo.server_ctx)
4502   #endif
# Line 4894 | Line 4504 | yyreduce:
4504          yyerror("SSL not available - port closed");
4505          break;
4506        }
4507 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4507 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4508    }
4509   }
4510      break;
4511  
4512    case 247:
4513 <
4514 < /* Line 1806 of yacc.c  */
4905 < #line 1527 "conf_parser.y"
4513 > /* Line 1792 of yacc.c  */
4514 > #line 1398 "conf_parser.y"
4515      {
4516    if (conf_parser_ctx.pass == 2)
4517    {
4518      int i;
4519  
4520 <    if ((listener_flags & LISTENER_SSL))
4520 >    if (block_state.flags.value & LISTENER_SSL)
4521   #ifdef HAVE_LIBCRYPTO
4522        if (!ServerInfo.server_ctx)
4523   #endif
# Line 4918 | Line 4527 | yyreduce:
4527        }
4528  
4529      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4530 <      add_listener(i, listener_address, listener_flags);
4530 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4531    }
4532   }
4533      break;
4534  
4535    case 248:
4536 <
4537 < /* Line 1806 of yacc.c  */
4929 < #line 1547 "conf_parser.y"
4536 > /* Line 1792 of yacc.c  */
4537 > #line 1418 "conf_parser.y"
4538      {
4539    if (conf_parser_ctx.pass == 2)
4540 <  {
4933 <    MyFree(listener_address);
4934 <    DupString(listener_address, yylval.string);
4935 <  }
4540 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4541   }
4542      break;
4543  
4544    case 249:
4545 <
4546 < /* Line 1806 of yacc.c  */
4942 < #line 1556 "conf_parser.y"
4545 > /* Line 1792 of yacc.c  */
4546 > #line 1424 "conf_parser.y"
4547      {
4548    if (conf_parser_ctx.pass == 2)
4549 <  {
4946 <    MyFree(listener_address);
4947 <    DupString(listener_address, yylval.string);
4948 <  }
4549 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4550   }
4551      break;
4552  
4553    case 250:
4554 <
4555 < /* Line 1806 of yacc.c  */
4955 < #line 1568 "conf_parser.y"
4554 > /* Line 1792 of yacc.c  */
4555 > #line 1433 "conf_parser.y"
4556      {
4557    if (conf_parser_ctx.pass == 2)
4558 <  {
4959 <    yy_conf = make_conf_item(CLIENT_TYPE);
4960 <    yy_aconf = map_to_conf(yy_conf);
4961 <  }
4962 <  else
4963 <  {
4964 <    MyFree(class_name);
4965 <    class_name = NULL;
4966 <  }
4558 >    reset_block_state();
4559   }
4560      break;
4561  
4562    case 251:
4563 <
4564 < /* Line 1806 of yacc.c  */
4973 < #line 1580 "conf_parser.y"
4563 > /* Line 1792 of yacc.c  */
4564 > #line 1437 "conf_parser.y"
4565      {
4566 <  if (conf_parser_ctx.pass == 2)
4976 <  {
4977 <    struct CollectItem *yy_tmp = NULL;
4978 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4979 <
4980 <    if (yy_aconf->user && yy_aconf->host)
4981 <    {
4982 <      conf_add_class_to_conf(yy_conf, class_name);
4983 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4984 <    }
4985 <    else
4986 <      delete_conf_item(yy_conf);
4987 <
4988 <    /* copy over settings from first struct */
4989 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4990 <    {
4991 <      struct AccessItem *new_aconf;
4992 <      struct ConfItem *new_conf;
4993 <
4994 <      new_conf = make_conf_item(CLIENT_TYPE);
4995 <      new_aconf = map_to_conf(new_conf);
4996 <
4997 <      yy_tmp = ptr->data;
4998 <
4999 <      assert(yy_tmp->user && yy_tmp->host);
5000 <
5001 <      if (yy_aconf->passwd != NULL)
5002 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5003 <      if (yy_conf->name != NULL)
5004 <        DupString(new_conf->name, yy_conf->name);
5005 <      if (yy_aconf->passwd != NULL)
5006 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5007 <
5008 <      new_aconf->flags = yy_aconf->flags;
5009 <      new_aconf->port  = yy_aconf->port;
5010 <
5011 <      DupString(new_aconf->user, yy_tmp->user);
5012 <      collapse(new_aconf->user);
5013 <
5014 <      DupString(new_aconf->host, yy_tmp->host);
5015 <      collapse(new_aconf->host);
5016 <
5017 <      conf_add_class_to_conf(new_conf, class_name);
5018 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5019 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5020 <      free_collect_item(yy_tmp);
5021 <    }
4566 >  dlink_node *ptr = NULL;
4567  
4568 <    MyFree(class_name);
5024 <    class_name = NULL;
5025 <    yy_conf = NULL;
5026 <    yy_aconf = NULL;
5027 <  }
5028 < }
4568 >  if (conf_parser_ctx.pass != 2)
4569      break;
4570  
4571 <  case 263:
5032 <
5033 < /* Line 1806 of yacc.c  */
5034 < #line 1642 "conf_parser.y"
5035 <    {
5036 <  if (conf_parser_ctx.pass == 2)
4571 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4572    {
4573 <    struct CollectItem *yy_tmp = NULL;
4573 >    struct MaskItem *conf = NULL;
4574      struct split_nuh_item nuh;
4575  
4576 <    nuh.nuhmask  = yylval.string;
4576 >    nuh.nuhmask  = ptr->data;
4577      nuh.nickptr  = NULL;
4578 <    nuh.userptr  = userbuf;
4579 <    nuh.hostptr  = hostbuf;
5045 <
4578 >    nuh.userptr  = block_state.user.buf;
4579 >    nuh.hostptr  = block_state.host.buf;
4580      nuh.nicksize = 0;
4581 <    nuh.usersize = sizeof(userbuf);
4582 <    nuh.hostsize = sizeof(hostbuf);
5049 <
4581 >    nuh.usersize = sizeof(block_state.user.buf);
4582 >    nuh.hostsize = sizeof(block_state.host.buf);
4583      split_nuh(&nuh);
4584  
4585 <    if (yy_aconf->user == NULL)
4586 <    {
4587 <      DupString(yy_aconf->user, userbuf);
4588 <      DupString(yy_aconf->host, hostbuf);
4589 <    }
4590 <    else
4591 <    {
4592 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4585 >    conf        = conf_make(CONF_CLIENT);
4586 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4587 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4588 >
4589 >    if (block_state.rpass.buf[0])
4590 >      conf->passwd = xstrdup(block_state.rpass.buf);
4591 >    if (block_state.name.buf[0])
4592 >      conf->passwd = xstrdup(block_state.name.buf);
4593  
4594 <      DupString(yy_tmp->user, userbuf);
4595 <      DupString(yy_tmp->host, hostbuf);
4594 >    conf->flags = block_state.flags.value;
4595 >    conf->port  = block_state.port.value;
4596  
4597 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4598 <    }
4597 >    conf_add_class_to_conf(conf, block_state.class.buf);
4598 >    add_conf_by_address(CONF_CLIENT, conf);
4599    }
4600   }
4601      break;
4602  
4603 <  case 264:
4604 <
4605 < /* Line 1806 of yacc.c  */
5073 < #line 1679 "conf_parser.y"
4603 >  case 263:
4604 > /* Line 1792 of yacc.c  */
4605 > #line 1480 "conf_parser.y"
4606      {
4607    if (conf_parser_ctx.pass == 2)
4608 <  {
4609 <    /* be paranoid */
4610 <    if (yy_aconf->passwd != NULL)
5079 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4608 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4609 > }
4610 >    break;
4611  
4612 <    MyFree(yy_aconf->passwd);
4613 <    DupString(yy_aconf->passwd, yylval.string);
4614 <  }
4612 >  case 264:
4613 > /* Line 1792 of yacc.c  */
4614 > #line 1486 "conf_parser.y"
4615 >    {
4616 >  if (conf_parser_ctx.pass == 2)
4617 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4618   }
4619      break;
4620  
4621    case 265:
4622 <
4623 < /* Line 1806 of yacc.c  */
5090 < #line 1692 "conf_parser.y"
4622 > /* Line 1792 of yacc.c  */
4623 > #line 1492 "conf_parser.y"
4624      {
4625    if (conf_parser_ctx.pass == 2)
4626 <  {
5094 <    MyFree(class_name);
5095 <    DupString(class_name, yylval.string);
5096 <  }
4626 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4627   }
4628      break;
4629  
4630    case 266:
4631 <
4632 < /* Line 1806 of yacc.c  */
5103 < #line 1701 "conf_parser.y"
4631 > /* Line 1792 of yacc.c  */
4632 > #line 1498 "conf_parser.y"
4633      {
4634    if (conf_parser_ctx.pass == 2)
4635    {
4636      if (yylval.number)
4637 <      SetConfEncrypted(yy_aconf);
4637 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4638      else
4639 <      ClearConfEncrypted(yy_aconf);
4639 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4640    }
4641   }
4642      break;
4643  
4644    case 267:
4645 <
4646 < /* Line 1806 of yacc.c  */
5118 < #line 1712 "conf_parser.y"
4645 > /* Line 1792 of yacc.c  */
4646 > #line 1509 "conf_parser.y"
4647      {
4648 +  if (conf_parser_ctx.pass == 2)
4649 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4650   }
4651      break;
4652  
4653    case 271:
4654 <
4655 < /* Line 1806 of yacc.c  */
5126 < #line 1717 "conf_parser.y"
4654 > /* Line 1792 of yacc.c  */
4655 > #line 1516 "conf_parser.y"
4656      {
4657    if (conf_parser_ctx.pass == 2)
4658 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4658 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4659   }
4660      break;
4661  
4662    case 272:
4663 <
4664 < /* Line 1806 of yacc.c  */
5136 < #line 1721 "conf_parser.y"
4663 > /* Line 1792 of yacc.c  */
4664 > #line 1520 "conf_parser.y"
4665      {
4666    if (conf_parser_ctx.pass == 2)
4667 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4667 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4668   }
4669      break;
4670  
4671    case 273:
4672 <
4673 < /* Line 1806 of yacc.c  */
5146 < #line 1725 "conf_parser.y"
4672 > /* Line 1792 of yacc.c  */
4673 > #line 1524 "conf_parser.y"
4674      {
4675    if (conf_parser_ctx.pass == 2)
4676 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4676 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4677   }
4678      break;
4679  
4680    case 274:
4681 <
4682 < /* Line 1806 of yacc.c  */
5156 < #line 1729 "conf_parser.y"
4681 > /* Line 1792 of yacc.c  */
4682 > #line 1528 "conf_parser.y"
4683      {
4684    if (conf_parser_ctx.pass == 2)
4685 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4685 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4686   }
4687      break;
4688  
4689    case 275:
4690 <
4691 < /* Line 1806 of yacc.c  */
5166 < #line 1733 "conf_parser.y"
4690 > /* Line 1792 of yacc.c  */
4691 > #line 1532 "conf_parser.y"
4692      {
4693    if (conf_parser_ctx.pass == 2)
4694 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4694 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4695   }
4696      break;
4697  
4698    case 276:
4699 <
4700 < /* Line 1806 of yacc.c  */
5176 < #line 1737 "conf_parser.y"
4699 > /* Line 1792 of yacc.c  */
4700 > #line 1536 "conf_parser.y"
4701      {
4702    if (conf_parser_ctx.pass == 2)
4703 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4703 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4704   }
4705      break;
4706  
4707    case 277:
4708 <
4709 < /* Line 1806 of yacc.c  */
5186 < #line 1741 "conf_parser.y"
4708 > /* Line 1792 of yacc.c  */
4709 > #line 1540 "conf_parser.y"
4710      {
4711    if (conf_parser_ctx.pass == 2)
4712 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4712 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4713   }
4714      break;
4715  
4716    case 278:
4717 <
4718 < /* Line 1806 of yacc.c  */
5196 < #line 1745 "conf_parser.y"
4717 > /* Line 1792 of yacc.c  */
4718 > #line 1544 "conf_parser.y"
4719      {
4720    if (conf_parser_ctx.pass == 2)
4721 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4721 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4722   }
4723      break;
4724  
4725    case 279:
4726 <
4727 < /* Line 1806 of yacc.c  */
5206 < #line 1749 "conf_parser.y"
4726 > /* Line 1792 of yacc.c  */
4727 > #line 1548 "conf_parser.y"
4728      {
4729    if (conf_parser_ctx.pass == 2)
4730 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4730 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4731   }
4732      break;
4733  
4734    case 280:
4735 <
4736 < /* Line 1806 of yacc.c  */
5216 < #line 1756 "conf_parser.y"
4735 > /* Line 1792 of yacc.c  */
4736 > #line 1552 "conf_parser.y"
4737      {
4738    if (conf_parser_ctx.pass == 2)
4739 <  {
5220 <    MyFree(yy_conf->name);
5221 <
5222 <    if (strlen(yylval.string) < HOSTLEN)
5223 <    {    
5224 <      DupString(yy_conf->name, yylval.string);
5225 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5226 <    }
5227 <    else
5228 <    {
5229 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5230 <      yy_conf->name = NULL;
5231 <    }
5232 <  }
4739 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4740   }
4741      break;
4742  
4743    case 281:
4744 <
4745 < /* Line 1806 of yacc.c  */
5239 < #line 1775 "conf_parser.y"
4744 > /* Line 1792 of yacc.c  */
4745 > #line 1558 "conf_parser.y"
4746      {
4747 <  if (conf_parser_ctx.pass == 2)
4747 >  if (conf_parser_ctx.pass != 2)
4748 >    break;
4749 >
4750 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4751    {
4752 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4753 <    MyFree(yy_conf->name);
5245 <    DupString(yy_conf->name, yylval.string);
4752 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4753 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4754    }
4755 +  else
4756 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4757   }
4758      break;
4759  
4760    case 282:
4761 <
4762 < /* Line 1806 of yacc.c  */
5253 < #line 1785 "conf_parser.y"
4761 > /* Line 1792 of yacc.c  */
4762 > #line 1572 "conf_parser.y"
4763      {
4764 <  if (conf_parser_ctx.pass == 2)
4765 <  {
4766 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4767 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4768 <  }
4764 >  if (conf_parser_ctx.pass != 2)
4765 >    break;
4766 >
4767 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4768 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4769   }
4770      break;
4771  
4772    case 283:
4773 <
4774 < /* Line 1806 of yacc.c  */
5266 < #line 1798 "conf_parser.y"
4773 > /* Line 1792 of yacc.c  */
4774 > #line 1581 "conf_parser.y"
4775      {
4776 <  if (conf_parser_ctx.pass == 2)
4777 <  {
4778 <    MyFree(resv_reason);
4779 <    resv_reason = NULL;
4780 <  }
4776 >  if (conf_parser_ctx.pass != 2)
4777 >    break;
4778 >
4779 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4780 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4781   }
4782      break;
4783  
4784    case 284:
4785 <
4786 < /* Line 1806 of yacc.c  */
5279 < #line 1805 "conf_parser.y"
4785 > /* Line 1792 of yacc.c  */
4786 > #line 1594 "conf_parser.y"
4787      {
4788 <  if (conf_parser_ctx.pass == 2)
5282 <  {
5283 <    MyFree(resv_reason);
5284 <    resv_reason = NULL;
5285 <  }
5286 < }
4788 >  if (conf_parser_ctx.pass != 2)
4789      break;
4790  
4791 <  case 291:
4792 <
5291 < /* Line 1806 of yacc.c  */
5292 < #line 1817 "conf_parser.y"
5293 <    {
5294 <  if (conf_parser_ctx.pass == 2)
5295 <  {
5296 <    MyFree(resv_reason);
5297 <    DupString(resv_reason, yylval.string);
5298 <  }
4791 >  reset_block_state();
4792 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4793   }
4794      break;
4795  
4796    case 292:
4797 <
4798 < /* Line 1806 of yacc.c  */
5305 < #line 1826 "conf_parser.y"
4797 > /* Line 1792 of yacc.c  */
4798 > #line 1606 "conf_parser.y"
4799      {
4800    if (conf_parser_ctx.pass == 2)
4801 <  {
5309 <    if (IsChanPrefix(*yylval.string))
5310 <    {
5311 <      char def_reason[] = "No reason";
5312 <
5313 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5314 <    }
5315 <  }
5316 <  /* ignore it for now.. but we really should make a warning if
5317 <   * its an erroneous name --fl_ */
4801 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4802   }
4803      break;
4804  
4805    case 293:
4806 <
4807 < /* Line 1806 of yacc.c  */
5324 < #line 1841 "conf_parser.y"
4806 > /* Line 1792 of yacc.c  */
4807 > #line 1612 "conf_parser.y"
4808      {
4809 <  if (conf_parser_ctx.pass == 2)
4810 <  {
5328 <    char def_reason[] = "No reason";
4809 >  if (conf_parser_ctx.pass != 2)
4810 >    break;
4811  
4812 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4813 <  }
4812 >  if (IsChanPrefix(*yylval.string))
4813 >    create_channel_resv(yylval.string, block_state.rpass.buf, 1);
4814   }
4815      break;
4816  
4817 <  case 299:
4818 <
4819 < /* Line 1806 of yacc.c  */
5338 < #line 1859 "conf_parser.y"
4817 >  case 294:
4818 > /* Line 1792 of yacc.c  */
4819 > #line 1621 "conf_parser.y"
4820      {
4821    if (conf_parser_ctx.pass == 2)
4822 <  {
5342 <    if (valid_servname(yylval.string))
5343 <    {
5344 <      yy_conf = make_conf_item(SERVICE_TYPE);
5345 <      DupString(yy_conf->name, yylval.string);
5346 <    }
5347 <  }
4822 >    create_nick_resv(yylval.string, block_state.rpass.buf, 1);
4823   }
4824      break;
4825  
4826    case 300:
4827 <
4828 < /* Line 1806 of yacc.c  */
5354 < #line 1874 "conf_parser.y"
4827 > /* Line 1792 of yacc.c  */
4828 > #line 1635 "conf_parser.y"
4829      {
4830    if (conf_parser_ctx.pass == 2)
4831    {
4832 <    yy_conf = make_conf_item(ULINE_TYPE);
4833 <    yy_match_item = map_to_conf(yy_conf);
4834 <    yy_match_item->action = SHARED_ALL;
4832 >    if (valid_servname(yylval.string))
4833 >    {
4834 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4835 >      conf->name = xstrdup(yylval.string);
4836 >    }
4837    }
4838   }
4839      break;
4840  
4841    case 301:
4842 <
4843 < /* Line 1806 of yacc.c  */
5368 < #line 1882 "conf_parser.y"
4842 > /* Line 1792 of yacc.c  */
4843 > #line 1650 "conf_parser.y"
4844      {
4845 <  if (conf_parser_ctx.pass == 2)
5371 <  {
5372 <    yy_conf = NULL;
5373 <  }
5374 < }
4845 >  if (conf_parser_ctx.pass != 2)
4846      break;
4847  
4848 <  case 308:
4848 >  reset_block_state();
4849  
4850 < /* Line 1806 of yacc.c  */
4851 < #line 1893 "conf_parser.y"
4850 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4851 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4852 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4853 >  block_state.flags.value = SHARED_ALL;
4854 > }
4855 >    break;
4856 >
4857 >  case 302:
4858 > /* Line 1792 of yacc.c  */
4859 > #line 1661 "conf_parser.y"
4860      {
4861 <  if (conf_parser_ctx.pass == 2)
4862 <  {
4863 <    MyFree(yy_conf->name);
4864 <    DupString(yy_conf->name, yylval.string);
4865 <  }
4861 >  struct MaskItem *conf = NULL;
4862 >
4863 >  if (conf_parser_ctx.pass != 2)
4864 >    break;
4865 >
4866 >  conf = conf_make(CONF_ULINE);
4867 >  conf->flags = block_state.flags.value;
4868 >  conf->name = xstrdup(block_state.name.buf);
4869 >  conf->user = xstrdup(block_state.user.buf);
4870 >  conf->user = xstrdup(block_state.host.buf);
4871   }
4872      break;
4873  
4874    case 309:
4875 + /* Line 1792 of yacc.c  */
4876 + #line 1678 "conf_parser.y"
4877 +    {
4878 +  if (conf_parser_ctx.pass == 2)
4879 +    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4880 + }
4881 +    break;
4882  
4883 < /* Line 1806 of yacc.c  */
4884 < #line 1902 "conf_parser.y"
4883 >  case 310:
4884 > /* Line 1792 of yacc.c  */
4885 > #line 1684 "conf_parser.y"
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888    {
# Line 5398 | Line 4890 | yyreduce:
4890  
4891      nuh.nuhmask  = yylval.string;
4892      nuh.nickptr  = NULL;
4893 <    nuh.userptr  = userbuf;
4894 <    nuh.hostptr  = hostbuf;
4893 >    nuh.userptr  = block_state.user.buf;
4894 >    nuh.hostptr  = block_state.host.buf;
4895  
4896      nuh.nicksize = 0;
4897 <    nuh.usersize = sizeof(userbuf);
4898 <    nuh.hostsize = sizeof(hostbuf);
4897 >    nuh.usersize = sizeof(block_state.user.buf);
4898 >    nuh.hostsize = sizeof(block_state.host.buf);
4899  
4900      split_nuh(&nuh);
5409
5410    DupString(yy_match_item->user, userbuf);
5411    DupString(yy_match_item->host, hostbuf);
4901    }
4902   }
4903      break;
4904  
4905 <  case 310:
4906 <
4907 < /* Line 1806 of yacc.c  */
5419 < #line 1924 "conf_parser.y"
5420 <    {
5421 <  if (conf_parser_ctx.pass == 2)
5422 <    yy_match_item->action = 0;
5423 < }
5424 <    break;
5425 <
5426 <  case 314:
5427 <
5428 < /* Line 1806 of yacc.c  */
5429 < #line 1931 "conf_parser.y"
4905 >  case 311:
4906 > /* Line 1792 of yacc.c  */
4907 > #line 1703 "conf_parser.y"
4908      {
4909    if (conf_parser_ctx.pass == 2)
4910 <    yy_match_item->action |= SHARED_KLINE;
4910 >    block_state.flags.value = 0;
4911   }
4912      break;
4913  
4914    case 315:
4915 <
4916 < /* Line 1806 of yacc.c  */
5439 < #line 1935 "conf_parser.y"
4915 > /* Line 1792 of yacc.c  */
4916 > #line 1710 "conf_parser.y"
4917      {
4918    if (conf_parser_ctx.pass == 2)
4919 <    yy_match_item->action |= SHARED_UNKLINE;
4919 >    block_state.flags.value |= SHARED_KLINE;
4920   }
4921      break;
4922  
4923    case 316:
4924 <
4925 < /* Line 1806 of yacc.c  */
5449 < #line 1939 "conf_parser.y"
4924 > /* Line 1792 of yacc.c  */
4925 > #line 1714 "conf_parser.y"
4926      {
4927    if (conf_parser_ctx.pass == 2)
4928 <    yy_match_item->action |= SHARED_DLINE;
4928 >    block_state.flags.value |= SHARED_UNKLINE;
4929   }
4930      break;
4931  
4932    case 317:
4933 <
4934 < /* Line 1806 of yacc.c  */
5459 < #line 1943 "conf_parser.y"
4933 > /* Line 1792 of yacc.c  */
4934 > #line 1718 "conf_parser.y"
4935      {
4936    if (conf_parser_ctx.pass == 2)
4937 <    yy_match_item->action |= SHARED_UNDLINE;
4937 >    block_state.flags.value |= SHARED_DLINE;
4938   }
4939      break;
4940  
4941    case 318:
4942 <
4943 < /* Line 1806 of yacc.c  */
5469 < #line 1947 "conf_parser.y"
4942 > /* Line 1792 of yacc.c  */
4943 > #line 1722 "conf_parser.y"
4944      {
4945    if (conf_parser_ctx.pass == 2)
4946 <    yy_match_item->action |= SHARED_XLINE;
4946 >    block_state.flags.value |= SHARED_UNDLINE;
4947   }
4948      break;
4949  
4950    case 319:
4951 <
4952 < /* Line 1806 of yacc.c  */
5479 < #line 1951 "conf_parser.y"
4951 > /* Line 1792 of yacc.c  */
4952 > #line 1726 "conf_parser.y"
4953      {
4954    if (conf_parser_ctx.pass == 2)
4955 <    yy_match_item->action |= SHARED_UNXLINE;
4955 >    block_state.flags.value |= SHARED_XLINE;
4956   }
4957      break;
4958  
4959    case 320:
4960 <
4961 < /* Line 1806 of yacc.c  */
5489 < #line 1955 "conf_parser.y"
4960 > /* Line 1792 of yacc.c  */
4961 > #line 1730 "conf_parser.y"
4962      {
4963    if (conf_parser_ctx.pass == 2)
4964 <    yy_match_item->action |= SHARED_RESV;
4964 >    block_state.flags.value |= SHARED_UNXLINE;
4965   }
4966      break;
4967  
4968    case 321:
4969 <
4970 < /* Line 1806 of yacc.c  */
5499 < #line 1959 "conf_parser.y"
4969 > /* Line 1792 of yacc.c  */
4970 > #line 1734 "conf_parser.y"
4971      {
4972    if (conf_parser_ctx.pass == 2)
4973 <    yy_match_item->action |= SHARED_UNRESV;
4973 >    block_state.flags.value |= SHARED_RESV;
4974   }
4975      break;
4976  
4977    case 322:
4978 <
4979 < /* Line 1806 of yacc.c  */
5509 < #line 1963 "conf_parser.y"
4978 > /* Line 1792 of yacc.c  */
4979 > #line 1738 "conf_parser.y"
4980      {
4981    if (conf_parser_ctx.pass == 2)
4982 <    yy_match_item->action |= SHARED_LOCOPS;
4982 >    block_state.flags.value |= SHARED_UNRESV;
4983   }
4984      break;
4985  
4986    case 323:
4987 <
4988 < /* Line 1806 of yacc.c  */
5519 < #line 1967 "conf_parser.y"
4987 > /* Line 1792 of yacc.c  */
4988 > #line 1742 "conf_parser.y"
4989      {
4990    if (conf_parser_ctx.pass == 2)
4991 <    yy_match_item->action = SHARED_ALL;
4991 >    block_state.flags.value |= SHARED_LOCOPS;
4992   }
4993      break;
4994  
4995    case 324:
4996 <
4997 < /* Line 1806 of yacc.c  */
5529 < #line 1976 "conf_parser.y"
4996 > /* Line 1792 of yacc.c  */
4997 > #line 1746 "conf_parser.y"
4998      {
4999    if (conf_parser_ctx.pass == 2)
5000 <  {
5533 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5534 <    yy_conf->flags = SHARED_ALL;
5535 <  }
5000 >    block_state.flags.value = SHARED_ALL;
5001   }
5002      break;
5003  
5004    case 325:
5005 <
5006 < /* Line 1806 of yacc.c  */
5542 < #line 1983 "conf_parser.y"
5005 > /* Line 1792 of yacc.c  */
5006 > #line 1755 "conf_parser.y"
5007      {
5008 <  if (conf_parser_ctx.pass == 2)
5545 <  {
5546 <    if (yy_conf->name == NULL)
5547 <      DupString(yy_conf->name, "*");
5548 <    yy_conf = NULL;
5549 <  }
5550 < }
5008 >  if (conf_parser_ctx.pass != 2)
5009      break;
5010  
5011 <  case 331:
5011 >  reset_block_state();
5012  
5013 < /* Line 1806 of yacc.c  */
5014 < #line 1996 "conf_parser.y"
5013 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5014 >  block_state.flags.value = SHARED_ALL;
5015 > }
5016 >    break;
5017 >
5018 >  case 326:
5019 > /* Line 1792 of yacc.c  */
5020 > #line 1764 "conf_parser.y"
5021      {
5022 <  if (conf_parser_ctx.pass == 2)
5023 <    DupString(yy_conf->name, yylval.string);
5022 >  struct MaskItem *conf = NULL;
5023 >
5024 >  if (conf_parser_ctx.pass != 2)
5025 >    break;
5026 >
5027 >  conf = conf_make(CONF_CLUSTER);
5028 >  conf->flags = block_state.flags.value;
5029 >  conf->name = xstrdup(block_state.name.buf);
5030   }
5031      break;
5032  
5033    case 332:
5034 <
5035 < /* Line 1806 of yacc.c  */
5566 < #line 2002 "conf_parser.y"
5034 > /* Line 1792 of yacc.c  */
5035 > #line 1779 "conf_parser.y"
5036      {
5037    if (conf_parser_ctx.pass == 2)
5038 <    yy_conf->flags = 0;
5038 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5039   }
5040      break;
5041  
5042 <  case 336:
5043 <
5044 < /* Line 1806 of yacc.c  */
5576 < #line 2009 "conf_parser.y"
5042 >  case 333:
5043 > /* Line 1792 of yacc.c  */
5044 > #line 1785 "conf_parser.y"
5045      {
5046    if (conf_parser_ctx.pass == 2)
5047 <    yy_conf->flags |= SHARED_KLINE;
5047 >    block_state.flags.value = 0;
5048   }
5049      break;
5050  
5051    case 337:
5052 <
5053 < /* Line 1806 of yacc.c  */
5586 < #line 2013 "conf_parser.y"
5052 > /* Line 1792 of yacc.c  */
5053 > #line 1792 "conf_parser.y"
5054      {
5055    if (conf_parser_ctx.pass == 2)
5056 <    yy_conf->flags |= SHARED_UNKLINE;
5056 >    block_state.flags.value |= SHARED_KLINE;
5057   }
5058      break;
5059  
5060    case 338:
5061 <
5062 < /* Line 1806 of yacc.c  */
5596 < #line 2017 "conf_parser.y"
5061 > /* Line 1792 of yacc.c  */
5062 > #line 1796 "conf_parser.y"
5063      {
5064    if (conf_parser_ctx.pass == 2)
5065 <    yy_conf->flags |= SHARED_DLINE;
5065 >    block_state.flags.value |= SHARED_UNKLINE;
5066   }
5067      break;
5068  
5069    case 339:
5070 <
5071 < /* Line 1806 of yacc.c  */
5606 < #line 2021 "conf_parser.y"
5070 > /* Line 1792 of yacc.c  */
5071 > #line 1800 "conf_parser.y"
5072      {
5073    if (conf_parser_ctx.pass == 2)
5074 <    yy_conf->flags |= SHARED_UNDLINE;
5074 >    block_state.flags.value |= SHARED_DLINE;
5075   }
5076      break;
5077  
5078    case 340:
5079 <
5080 < /* Line 1806 of yacc.c  */
5616 < #line 2025 "conf_parser.y"
5079 > /* Line 1792 of yacc.c  */
5080 > #line 1804 "conf_parser.y"
5081      {
5082    if (conf_parser_ctx.pass == 2)
5083 <    yy_conf->flags |= SHARED_XLINE;
5083 >    block_state.flags.value |= SHARED_UNDLINE;
5084   }
5085      break;
5086  
5087    case 341:
5088 <
5089 < /* Line 1806 of yacc.c  */
5626 < #line 2029 "conf_parser.y"
5088 > /* Line 1792 of yacc.c  */
5089 > #line 1808 "conf_parser.y"
5090      {
5091    if (conf_parser_ctx.pass == 2)
5092 <    yy_conf->flags |= SHARED_UNXLINE;
5092 >    block_state.flags.value |= SHARED_XLINE;
5093   }
5094      break;
5095  
5096    case 342:
5097 <
5098 < /* Line 1806 of yacc.c  */
5636 < #line 2033 "conf_parser.y"
5097 > /* Line 1792 of yacc.c  */
5098 > #line 1812 "conf_parser.y"
5099      {
5100    if (conf_parser_ctx.pass == 2)
5101 <    yy_conf->flags |= SHARED_RESV;
5101 >    block_state.flags.value |= SHARED_UNXLINE;
5102   }
5103      break;
5104  
5105    case 343:
5106 <
5107 < /* Line 1806 of yacc.c  */
5646 < #line 2037 "conf_parser.y"
5106 > /* Line 1792 of yacc.c  */
5107 > #line 1816 "conf_parser.y"
5108      {
5109    if (conf_parser_ctx.pass == 2)
5110 <    yy_conf->flags |= SHARED_UNRESV;
5110 >    block_state.flags.value |= SHARED_RESV;
5111   }
5112      break;
5113  
5114    case 344:
5115 <
5116 < /* Line 1806 of yacc.c  */
5656 < #line 2041 "conf_parser.y"
5115 > /* Line 1792 of yacc.c  */
5116 > #line 1820 "conf_parser.y"
5117      {
5118    if (conf_parser_ctx.pass == 2)
5119 <    yy_conf->flags |= SHARED_LOCOPS;
5119 >    block_state.flags.value |= SHARED_UNRESV;
5120   }
5121      break;
5122  
5123    case 345:
5124 <
5125 < /* Line 1806 of yacc.c  */
5666 < #line 2045 "conf_parser.y"
5124 > /* Line 1792 of yacc.c  */
5125 > #line 1824 "conf_parser.y"
5126      {
5127    if (conf_parser_ctx.pass == 2)
5128 <    yy_conf->flags = SHARED_ALL;
5128 >    block_state.flags.value |= SHARED_LOCOPS;
5129   }
5130      break;
5131  
5132    case 346:
5133 <
5134 < /* Line 1806 of yacc.c  */
5676 < #line 2054 "conf_parser.y"
5133 > /* Line 1792 of yacc.c  */
5134 > #line 1828 "conf_parser.y"
5135      {
5136    if (conf_parser_ctx.pass == 2)
5137 <  {
5680 <    yy_conf = make_conf_item(SERVER_TYPE);
5681 <    yy_aconf = map_to_conf(yy_conf);
5682 <
5683 <    /* defaults */
5684 <    yy_aconf->port = PORTNUM;
5685 <  }
5686 <  else
5687 <  {
5688 <    MyFree(class_name);
5689 <    class_name = NULL;
5690 <  }
5137 >    block_state.flags.value = SHARED_ALL;
5138   }
5139      break;
5140  
5141    case 347:
5142 <
5143 < /* Line 1806 of yacc.c  */
5697 < #line 2069 "conf_parser.y"
5698 <    {
5699 <  if (conf_parser_ctx.pass == 2)
5700 <  {
5701 <    struct CollectItem *yy_hconf=NULL;
5702 <    struct CollectItem *yy_lconf=NULL;
5703 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5704 <
5705 <    if (yy_aconf->host &&
5706 <        yy_aconf->passwd && yy_aconf->spasswd)
5707 <    {
5708 <      if (conf_add_server(yy_conf, class_name) == -1)
5709 <      {
5710 <        delete_conf_item(yy_conf);
5711 <        yy_conf = NULL;
5712 <        yy_aconf = NULL;
5713 <      }
5714 <    }
5715 <    else
5142 > /* Line 1792 of yacc.c  */
5143 > #line 1837 "conf_parser.y"
5144      {
5717      /* Even if yy_conf ->name is NULL
5718       * should still unhook any hub/leaf confs still pending
5719       */
5720      unhook_hub_leaf_confs();
5721
5722      if (yy_conf->name != NULL)
5723      {
5724        if (yy_aconf->host == NULL)
5725          yyerror("Ignoring connect block -- missing host");
5726        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5727          yyerror("Ignoring connect block -- missing password");
5728      }
5729
5730
5731      /* XXX
5732       * This fixes a try_connections() core (caused by invalid class_ptr
5733       * pointers) reported by metalrock. That's an ugly fix, but there
5734       * is currently no better way. The entire config subsystem needs an
5735       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5736       * a doubly linked list immediately without any sanity checks!  -Michael
5737       */
5738      delete_conf_item(yy_conf);
5739
5740      yy_aconf = NULL;
5741      yy_conf = NULL;
5742    }
5743
5744      /*
5745       * yy_conf is still pointing at the server that is having
5746       * a connect block built for it. This means, y_aconf->name
5747       * points to the actual irc name this server will be known as.
5748       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5749       * given in the link list at yy_hconf. Fill in the HUB confs
5750       * from this link list now.
5751       */        
5752      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5753      {
5754        struct ConfItem *new_hub_conf;
5755        struct MatchItem *match_item;
5756
5757        yy_hconf = ptr->data;
5758
5759        /* yy_conf == NULL is a fatal error for this connect block! */
5760        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5761        {
5762          new_hub_conf = make_conf_item(HUB_TYPE);
5763          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5764          DupString(new_hub_conf->name, yy_conf->name);
5765          if (yy_hconf->user != NULL)
5766            DupString(match_item->user, yy_hconf->user);
5767          else
5768            DupString(match_item->user, "*");
5769          if (yy_hconf->host != NULL)
5770            DupString(match_item->host, yy_hconf->host);
5771          else
5772            DupString(match_item->host, "*");
5773        }
5774        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5775        free_collect_item(yy_hconf);
5776      }
5777
5778      /* Ditto for the LEAF confs */
5779
5780      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5781      {
5782        struct ConfItem *new_leaf_conf;
5783        struct MatchItem *match_item;
5145  
5146 <        yy_lconf = ptr->data;
5146 >  if (conf_parser_ctx.pass != 2)
5147 >    break;
5148  
5149 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5150 <        {
5789 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5790 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5791 <          DupString(new_leaf_conf->name, yy_conf->name);
5792 <          if (yy_lconf->user != NULL)
5793 <            DupString(match_item->user, yy_lconf->user);
5794 <          else
5795 <            DupString(match_item->user, "*");
5796 <          if (yy_lconf->host != NULL)
5797 <            DupString(match_item->host, yy_lconf->host);
5798 <          else
5799 <            DupString(match_item->host, "*");
5800 <        }
5801 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5802 <        free_collect_item(yy_lconf);
5803 <      }
5804 <      MyFree(class_name);
5805 <      class_name = NULL;
5806 <      yy_conf = NULL;
5807 <      yy_aconf = NULL;
5808 <  }
5149 >  reset_block_state();
5150 >  block_state.port.value = PORTNUM;
5151   }
5152      break;
5153  
5154 <  case 364:
5155 <
5156 < /* Line 1806 of yacc.c  */
5815 < #line 2191 "conf_parser.y"
5154 >  case 348:
5155 > /* Line 1792 of yacc.c  */
5156 > #line 1845 "conf_parser.y"
5157      {
5158 <  if (conf_parser_ctx.pass == 2)
5159 <  {
5160 <    MyFree(yy_conf->name);
5161 <    DupString(yy_conf->name, yylval.string);
5821 <  }
5822 < }
5158 >  struct MaskItem *conf = NULL;
5159 >  struct addrinfo hints, *res;
5160 >
5161 >  if (conf_parser_ctx.pass != 2)
5162      break;
5163  
5164 <  case 365:
5164 >  if (!block_state.name.buf[0] ||
5165 >      !block_state.host.buf[0])
5166 >    break;
5167  
5168 < /* Line 1806 of yacc.c  */
5169 < #line 2200 "conf_parser.y"
5829 <    {
5830 <  if (conf_parser_ctx.pass == 2)
5831 <  {
5832 <    MyFree(yy_aconf->host);
5833 <    DupString(yy_aconf->host, yylval.string);
5834 <  }
5835 < }
5168 >  if (!(block_state.rpass.buf[0] ||
5169 >        block_state.spass.buf[0]))
5170      break;
5171  
5172 <  case 366:
5172 >  if (has_wildcards(block_state.name.buf) ||
5173 >      has_wildcards(block_state.host.buf))
5174 >    break;
5175  
5176 < /* Line 1806 of yacc.c  */
5177 < #line 2209 "conf_parser.y"
5178 <    {
5179 <  if (conf_parser_ctx.pass == 2)
5180 <  {
5181 <    struct addrinfo hints, *res;
5176 >  conf = conf_make(CONF_SERVER);
5177 >  conf->port = block_state.port.value;
5178 >  conf->flags = block_state.flags.value;
5179 >  conf->aftype = block_state.aftype.value;
5180 >  conf->host = xstrdup(block_state.host.buf);
5181 >  conf->name = xstrdup(block_state.name.buf);
5182 >  conf->passwd = xstrdup(block_state.rpass.buf);
5183 >  conf->spasswd = xstrdup(block_state.spass.buf);
5184 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5185 >
5186 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5187 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5188  
5189 +  if (block_state.bind.buf[0])
5190 +  {
5191      memset(&hints, 0, sizeof(hints));
5192  
5193      hints.ai_family   = AF_UNSPEC;
5194      hints.ai_socktype = SOCK_STREAM;
5195      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5196  
5197 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5198 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5197 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5198 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5199      else
5200      {
5201        assert(res != NULL);
5202  
5203 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5204 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5205 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5203 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5204 >      conf->bind.ss.ss_family = res->ai_family;
5205 >      conf->bind.ss_len = res->ai_addrlen;
5206        freeaddrinfo(res);
5207      }
5208    }
5209 +
5210 +  conf_add_class_to_conf(conf, block_state.class.buf);
5211 +  lookup_confhost(conf);
5212   }
5213      break;
5214  
5215 <  case 367:
5215 >  case 365:
5216 > /* Line 1792 of yacc.c  */
5217 > #line 1911 "conf_parser.y"
5218 >    {
5219 >  if (conf_parser_ctx.pass == 2)
5220 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5221 > }
5222 >    break;
5223  
5224 < /* Line 1806 of yacc.c  */
5225 < #line 2235 "conf_parser.y"
5224 >  case 366:
5225 > /* Line 1792 of yacc.c  */
5226 > #line 1917 "conf_parser.y"
5227      {
5228    if (conf_parser_ctx.pass == 2)
5229 <  {
5230 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5231 <      yyerror("Server passwords cannot begin with a colon");
5877 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5878 <      yyerror("Server passwords cannot contain spaces");
5879 <    else {
5880 <      if (yy_aconf->spasswd != NULL)
5881 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5229 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5230 > }
5231 >    break;
5232  
5233 <      MyFree(yy_aconf->spasswd);
5234 <      DupString(yy_aconf->spasswd, yylval.string);
5235 <    }
5236 <  }
5233 >  case 367:
5234 > /* Line 1792 of yacc.c  */
5235 > #line 1923 "conf_parser.y"
5236 >    {
5237 >  if (conf_parser_ctx.pass == 2)
5238 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5239   }
5240      break;
5241  
5242    case 368:
5243 <
5244 < /* Line 1806 of yacc.c  */
5893 < #line 2253 "conf_parser.y"
5243 > /* Line 1792 of yacc.c  */
5244 > #line 1929 "conf_parser.y"
5245      {
5246 <  if (conf_parser_ctx.pass == 2)
5247 <  {
5897 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5898 <      yyerror("Server passwords cannot begin with a colon");
5899 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5900 <      yyerror("Server passwords cannot contain spaces");
5901 <    else {
5902 <      if (yy_aconf->passwd != NULL)
5903 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5246 >  if (conf_parser_ctx.pass != 2)
5247 >    break;
5248  
5249 <      MyFree(yy_aconf->passwd);
5250 <      DupString(yy_aconf->passwd, yylval.string);
5251 <    }
5252 <  }
5249 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5250 >    yyerror("Server passwords cannot begin with a colon");
5251 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5252 >    yyerror("Server passwords cannot contain spaces");
5253 >  else
5254 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5255   }
5256      break;
5257  
5258    case 369:
5259 <
5260 < /* Line 1806 of yacc.c  */
5915 < #line 2271 "conf_parser.y"
5259 > /* Line 1792 of yacc.c  */
5260 > #line 1942 "conf_parser.y"
5261      {
5262 <  if (conf_parser_ctx.pass == 2)
5263 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5262 >  if (conf_parser_ctx.pass != 2)
5263 >    break;
5264 >
5265 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5266 >    yyerror("Server passwords cannot begin with a colon");
5267 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5268 >    yyerror("Server passwords cannot contain spaces");
5269 >  else
5270 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5271   }
5272      break;
5273  
5274    case 370:
5275 <
5276 < /* Line 1806 of yacc.c  */
5925 < #line 2277 "conf_parser.y"
5275 > /* Line 1792 of yacc.c  */
5276 > #line 1955 "conf_parser.y"
5277      {
5278    if (conf_parser_ctx.pass == 2)
5279 <    yy_aconf->aftype = AF_INET;
5279 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5280   }
5281      break;
5282  
5283    case 371:
5284 <
5285 < /* Line 1806 of yacc.c  */
5935 < #line 2281 "conf_parser.y"
5284 > /* Line 1792 of yacc.c  */
5285 > #line 1961 "conf_parser.y"
5286      {
5937 #ifdef IPV6
5287    if (conf_parser_ctx.pass == 2)
5288 <    yy_aconf->aftype = AF_INET6;
5940 < #endif
5288 >    block_state.aftype.value = AF_INET;
5289   }
5290      break;
5291  
5292    case 372:
5293 <
5294 < /* Line 1806 of yacc.c  */
5947 < #line 2289 "conf_parser.y"
5293 > /* Line 1792 of yacc.c  */
5294 > #line 1965 "conf_parser.y"
5295      {
5296 + #ifdef IPV6
5297 +  if (conf_parser_ctx.pass == 2)
5298 +    block_state.aftype.value = AF_INET6;
5299 + #endif
5300   }
5301      break;
5302  
5303 <  case 376:
5304 <
5305 < /* Line 1806 of yacc.c  */
5955 < #line 2294 "conf_parser.y"
5303 >  case 373:
5304 > /* Line 1792 of yacc.c  */
5305 > #line 1973 "conf_parser.y"
5306      {
5307 <  if (conf_parser_ctx.pass == 2)
5958 <    SetConfAllowAutoConn(yy_aconf);
5307 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5308   }
5309      break;
5310  
5311    case 377:
5312 <
5313 < /* Line 1806 of yacc.c  */
5965 < #line 2298 "conf_parser.y"
5312 > /* Line 1792 of yacc.c  */
5313 > #line 1979 "conf_parser.y"
5314      {
5315    if (conf_parser_ctx.pass == 2)
5316 <    SetConfAwayBurst(yy_aconf);
5316 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5317   }
5318      break;
5319  
5320    case 378:
5321 <
5322 < /* Line 1806 of yacc.c  */
5975 < #line 2302 "conf_parser.y"
5321 > /* Line 1792 of yacc.c  */
5322 > #line 1983 "conf_parser.y"
5323      {
5324    if (conf_parser_ctx.pass == 2)
5325 <    SetConfTopicBurst(yy_aconf);
5325 >    block_state.flags.value |= CONF_FLAGS_SSL;
5326   }
5327      break;
5328  
5329    case 379:
5330 <
5331 < /* Line 1806 of yacc.c  */
5985 < #line 2306 "conf_parser.y"
5986 <    {
5987 <  if (conf_parser_ctx.pass == 2)
5988 <    SetConfSSL(yy_aconf);
5989 < }
5990 <    break;
5991 <
5992 <  case 380:
5993 <
5994 < /* Line 1806 of yacc.c  */
5995 < #line 2312 "conf_parser.y"
5330 > /* Line 1792 of yacc.c  */
5331 > #line 1989 "conf_parser.y"
5332      {
5333    if (conf_parser_ctx.pass == 2)
5334    {
5335      if (yylval.number)
5336 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5336 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5337      else
5338 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5338 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5339    }
5340   }
5341      break;
5342  
5343 <  case 381:
5344 <
5345 < /* Line 1806 of yacc.c  */
6010 < #line 2323 "conf_parser.y"
5343 >  case 380:
5344 > /* Line 1792 of yacc.c  */
5345 > #line 2000 "conf_parser.y"
5346      {
5347    if (conf_parser_ctx.pass == 2)
5348 <  {
6014 <    struct CollectItem *yy_tmp;
6015 <
6016 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6017 <    DupString(yy_tmp->host, yylval.string);
6018 <    DupString(yy_tmp->user, "*");
6019 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6020 <  }
5348 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5349   }
5350      break;
5351  
5352 <  case 382:
5353 <
5354 < /* Line 1806 of yacc.c  */
6027 < #line 2336 "conf_parser.y"
5352 >  case 381:
5353 > /* Line 1792 of yacc.c  */
5354 > #line 2006 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357 <  {
6031 <    struct CollectItem *yy_tmp;
6032 <
6033 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6034 <    DupString(yy_tmp->host, yylval.string);
6035 <    DupString(yy_tmp->user, "*");
6036 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6037 <  }
5357 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5358   }
5359      break;
5360  
5361 <  case 383:
5362 <
5363 < /* Line 1806 of yacc.c  */
6044 < #line 2349 "conf_parser.y"
5361 >  case 382:
5362 > /* Line 1792 of yacc.c  */
5363 > #line 2012 "conf_parser.y"
5364      {
5365    if (conf_parser_ctx.pass == 2)
5366 <  {
6048 <    MyFree(class_name);
6049 <    DupString(class_name, yylval.string);
6050 <  }
5366 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5367   }
5368      break;
5369  
5370 <  case 384:
5371 <
5372 < /* Line 1806 of yacc.c  */
6057 < #line 2358 "conf_parser.y"
5370 >  case 383:
5371 > /* Line 1792 of yacc.c  */
5372 > #line 2018 "conf_parser.y"
5373      {
5374   #ifdef HAVE_LIBCRYPTO
5375    if (conf_parser_ctx.pass == 2)
5376 <  {
6062 <    MyFree(yy_aconf->cipher_list);
6063 <    DupString(yy_aconf->cipher_list, yylval.string);
6064 <  }
5376 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5377   #else
5378    if (conf_parser_ctx.pass == 2)
5379      yyerror("Ignoring connect::ciphers -- no OpenSSL support");
# Line 6069 | Line 5381 | yyreduce:
5381   }
5382      break;
5383  
5384 <  case 385:
5385 <
5386 < /* Line 1806 of yacc.c  */
6075 < #line 2376 "conf_parser.y"
5384 >  case 384:
5385 > /* Line 1792 of yacc.c  */
5386 > #line 2033 "conf_parser.y"
5387      {
5388    if (conf_parser_ctx.pass == 2)
5389 <  {
6079 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6080 <    regex_ban = 0;
6081 <  }
5389 >    reset_block_state();
5390   }
5391      break;
5392  
5393 <  case 386:
5394 <
5395 < /* Line 1806 of yacc.c  */
6088 < #line 2383 "conf_parser.y"
5393 >  case 385:
5394 > /* Line 1792 of yacc.c  */
5395 > #line 2037 "conf_parser.y"
5396      {
5397 <  if (conf_parser_ctx.pass == 2)
5397 >  struct MaskItem *conf = NULL;
5398 >
5399 >  if (conf_parser_ctx.pass != 2)
5400 >    break;
5401 >
5402 >  if (!block_state.user.buf[0] ||
5403 >      !block_state.host.buf[0])
5404 >    break;
5405 >
5406 >
5407 >  if (block_state.port.value == 1)
5408    {
6092    if (userbuf[0] && hostbuf[0])
6093    {
6094      if (regex_ban)
6095      {
5409   #ifdef HAVE_LIBPCRE
5410 <        void *exp_user = NULL;
5411 <        void *exp_host = NULL;
5412 <        const char *errptr = NULL;
5413 <
5414 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5415 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5416 <        {
5417 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5418 <               errptr);
5419 <          break;
5420 <        }
5410 >    void *exp_user = NULL;
5411 >    void *exp_host = NULL;
5412 >    const char *errptr = NULL;
5413 >
5414 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5415 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5416 >    {
5417 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5418 >           errptr);
5419 >      break;
5420 >    }
5421  
5422 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5423 <        yy_aconf->regexuser = exp_user;
5424 <        yy_aconf->regexhost = exp_host;
5422 >    conf = conf_make(CONF_RKLINE);
5423 >    conf->regexuser = exp_user;
5424 >    conf->regexhost = exp_host;
5425  
5426 <        DupString(yy_aconf->user, userbuf);
5427 <        DupString(yy_aconf->host, hostbuf);
5426 >    conf->user = xstrdup(block_state.user.buf);
5427 >    conf->host = xstrdup(block_state.host.buf);
5428  
5429 <        if (reasonbuf[0])
5430 <          DupString(yy_aconf->reason, reasonbuf);
5431 <        else
5432 <          DupString(yy_aconf->reason, "No reason");
5429 >    if (block_state.rpass.buf[0])
5430 >      conf->reason = xstrdup(block_state.rpass.buf);
5431 >    else
5432 >      conf->reason = xstrdup(CONF_NOREASON);
5433   #else
5434 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 <        break;
5434 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5435 >    break;
5436   #endif
5437 <      }
5438 <      else
5439 <      {
5440 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6128 <
6129 <        DupString(yy_aconf->user, userbuf);
6130 <        DupString(yy_aconf->host, hostbuf);
5437 >  }
5438 >  else
5439 >  {
5440 >    conf = conf_make(CONF_KLINE);
5441  
5442 <        if (reasonbuf[0])
5443 <          DupString(yy_aconf->reason, reasonbuf);
6134 <        else
6135 <          DupString(yy_aconf->reason, "No reason");
6136 <        add_conf_by_address(CONF_KILL, yy_aconf);
6137 <      }
6138 <    }
5442 >    conf->user = xstrdup(block_state.user.buf);
5443 >    conf->host = xstrdup(block_state.host.buf);
5444  
5445 <    yy_aconf = NULL;
5445 >    if (block_state.rpass.buf[0])
5446 >      conf->reason = xstrdup(block_state.rpass.buf);
5447 >    else
5448 >      conf->reason = xstrdup(CONF_NOREASON);
5449 >    add_conf_by_address(CONF_KLINE, conf);
5450    }
5451   }
5452      break;
5453  
5454 <  case 387:
5455 <
5456 < /* Line 1806 of yacc.c  */
6148 < #line 2439 "conf_parser.y"
5454 >  case 386:
5455 > /* Line 1792 of yacc.c  */
5456 > #line 2095 "conf_parser.y"
5457      {
5458 +  if (conf_parser_ctx.pass == 2)
5459 +    block_state.port.value = 0;
5460   }
5461      break;
5462  
5463 <  case 391:
5464 <
5465 < /* Line 1806 of yacc.c  */
6156 < #line 2444 "conf_parser.y"
5463 >  case 390:
5464 > /* Line 1792 of yacc.c  */
5465 > #line 2102 "conf_parser.y"
5466      {
5467    if (conf_parser_ctx.pass == 2)
5468 <    regex_ban = 1;
5468 >    block_state.port.value = 1;
5469   }
5470      break;
5471  
5472 <  case 398:
5473 <
5474 < /* Line 1806 of yacc.c  */
6166 < #line 2453 "conf_parser.y"
5472 >  case 397:
5473 > /* Line 1792 of yacc.c  */
5474 > #line 2111 "conf_parser.y"
5475      {
5476 +
5477    if (conf_parser_ctx.pass == 2)
5478    {
5479      struct split_nuh_item nuh;
5480  
5481      nuh.nuhmask  = yylval.string;
5482      nuh.nickptr  = NULL;
5483 <    nuh.userptr  = userbuf;
5484 <    nuh.hostptr  = hostbuf;
5483 >    nuh.userptr  = block_state.user.buf;
5484 >    nuh.hostptr  = block_state.host.buf;
5485  
5486      nuh.nicksize = 0;
5487 <    nuh.usersize = sizeof(userbuf);
5488 <    nuh.hostsize = sizeof(hostbuf);
5487 >    nuh.usersize = sizeof(block_state.user.buf);
5488 >    nuh.hostsize = sizeof(block_state.host.buf);
5489  
5490      split_nuh(&nuh);
5491    }
5492   }
5493      break;
5494  
5495 <  case 399:
5496 <
5497 < /* Line 1806 of yacc.c  */
6189 < #line 2472 "conf_parser.y"
5495 >  case 398:
5496 > /* Line 1792 of yacc.c  */
5497 > #line 2131 "conf_parser.y"
5498      {
5499    if (conf_parser_ctx.pass == 2)
5500 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5500 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5501   }
5502      break;
5503  
5504 <  case 400:
5505 <
5506 < /* Line 1806 of yacc.c  */
6199 < #line 2481 "conf_parser.y"
5504 >  case 399:
5505 > /* Line 1792 of yacc.c  */
5506 > #line 2140 "conf_parser.y"
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509 <    hostbuf[0] = reasonbuf[0] = '\0';
5509 >    reset_block_state();
5510   }
5511      break;
5512  
5513 <  case 401:
5514 <
5515 < /* Line 1806 of yacc.c  */
6209 < #line 2485 "conf_parser.y"
5513 >  case 400:
5514 > /* Line 1792 of yacc.c  */
5515 > #line 2144 "conf_parser.y"
5516      {
5517 <  if (conf_parser_ctx.pass == 2)
5517 >  struct MaskItem *conf = NULL;
5518 >
5519 >  if (conf_parser_ctx.pass != 2)
5520 >    break;
5521 >
5522 >  if (!block_state.addr.buf[0])
5523 >    break;
5524 >
5525 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5526    {
5527 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5528 <    {
6215 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6216 <      DupString(yy_aconf->host, hostbuf);
5527 >    conf = conf_make(CONF_DLINE);
5528 >    conf->host = xstrdup(block_state.addr.buf);
5529  
5530 <      if (reasonbuf[0])
5531 <        DupString(yy_aconf->reason, reasonbuf);
5532 <      else
5533 <        DupString(yy_aconf->reason, "No reason");
5534 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6223 <      yy_aconf = NULL;
6224 <    }
5530 >    if (block_state.rpass.buf[0])
5531 >      conf->reason = xstrdup(block_state.rpass.buf);
5532 >    else
5533 >      conf->reason = xstrdup(CONF_NOREASON);
5534 >    add_conf_by_address(CONF_DLINE, conf);
5535    }
5536   }
5537      break;
5538  
5539 <  case 407:
5540 <
5541 < /* Line 1806 of yacc.c  */
6232 < #line 2507 "conf_parser.y"
5539 >  case 406:
5540 > /* Line 1792 of yacc.c  */
5541 > #line 2170 "conf_parser.y"
5542      {
5543    if (conf_parser_ctx.pass == 2)
5544 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5544 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5545   }
5546      break;
5547  
5548 <  case 408:
5549 <
5550 < /* Line 1806 of yacc.c  */
6242 < #line 2513 "conf_parser.y"
5548 >  case 407:
5549 > /* Line 1792 of yacc.c  */
5550 > #line 2176 "conf_parser.y"
5551      {
5552    if (conf_parser_ctx.pass == 2)
5553 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5553 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5554   }
5555      break;
5556  
5557 <  case 414:
5558 <
5559 < /* Line 1806 of yacc.c  */
6252 < #line 2527 "conf_parser.y"
5557 >  case 413:
5558 > /* Line 1792 of yacc.c  */
5559 > #line 2190 "conf_parser.y"
5560      {
5561    if (conf_parser_ctx.pass == 2)
5562    {
5563      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5564      {
5565 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5566 <      DupString(yy_aconf->host, yylval.string);
5565 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5566 >      conf->host = xstrdup(yylval.string);
5567  
5568 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6262 <      yy_aconf = NULL;
5568 >      add_conf_by_address(CONF_EXEMPT, conf);
5569      }
5570    }
5571   }
5572      break;
5573  
5574 <  case 415:
5575 <
5576 < /* Line 1806 of yacc.c  */
6271 < #line 2545 "conf_parser.y"
5574 >  case 414:
5575 > /* Line 1792 of yacc.c  */
5576 > #line 2207 "conf_parser.y"
5577      {
5578    if (conf_parser_ctx.pass == 2)
5579 <  {
6275 <    regex_ban = 0;
6276 <    reasonbuf[0] = gecos_name[0] = '\0';
6277 <  }
5579 >    reset_block_state();
5580   }
5581      break;
5582  
5583 <  case 416:
5584 <
5585 < /* Line 1806 of yacc.c  */
6284 < #line 2552 "conf_parser.y"
5583 >  case 415:
5584 > /* Line 1792 of yacc.c  */
5585 > #line 2211 "conf_parser.y"
5586      {
5587 <  if (conf_parser_ctx.pass == 2)
5587 >  struct MaskItem *conf = NULL;
5588 >
5589 >  if (conf_parser_ctx.pass != 2)
5590 >    break;
5591 >
5592 >  if (!block_state.name.buf[0])
5593 >    break;
5594 >
5595 >  if (block_state.port.value == 1)
5596    {
6288    if (gecos_name[0])
6289    {
6290      if (regex_ban)
6291      {
5597   #ifdef HAVE_LIBPCRE
5598 <        void *exp_p = NULL;
5599 <        const char *errptr = NULL;
5598 >    void *exp_p = NULL;
5599 >    const char *errptr = NULL;
5600  
5601 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5602 <        {
5603 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 <               errptr);
5605 <          break;
5606 <        }
5601 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5602 >    {
5603 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5604 >           errptr);
5605 >      break;
5606 >    }
5607  
5608 <        yy_conf = make_conf_item(RXLINE_TYPE);
5609 <        yy_conf->regexpname = exp_p;
5608 >    conf = conf_make(CONF_RXLINE);
5609 >    conf->regexuser = exp_p;
5610   #else
5611 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 <        break;
5611 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5612 >    break;
5613   #endif
5614 <      }
5615 <      else
5616 <        yy_conf = make_conf_item(XLINE_TYPE);
5614 >  }
5615 >  else
5616 >    conf = conf_make(CONF_XLINE);
5617  
5618 <      yy_match_item = map_to_conf(yy_conf);
6314 <      DupString(yy_conf->name, gecos_name);
5618 >  conf->name = xstrdup(block_state.name.buf);
5619  
5620 <      if (reasonbuf[0])
5621 <        DupString(yy_match_item->reason, reasonbuf);
5622 <      else
5623 <        DupString(yy_match_item->reason, "No reason");
6320 <    }
6321 <  }
5620 >  if (block_state.rpass.buf[0])
5621 >    conf->reason = xstrdup(block_state.rpass.buf);
5622 >  else
5623 >    conf->reason = xstrdup(CONF_NOREASON);
5624   }
5625      break;
5626  
5627 <  case 417:
5628 <
5629 < /* Line 1806 of yacc.c  */
6328 < #line 2592 "conf_parser.y"
5627 >  case 416:
5628 > /* Line 1792 of yacc.c  */
5629 > #line 2252 "conf_parser.y"
5630      {
5631 +  if (conf_parser_ctx.pass == 2)
5632 +    block_state.port.value = 0;
5633   }
5634      break;
5635  
5636 <  case 421:
5637 <
5638 < /* Line 1806 of yacc.c  */
6336 < #line 2597 "conf_parser.y"
5636 >  case 420:
5637 > /* Line 1792 of yacc.c  */
5638 > #line 2259 "conf_parser.y"
5639      {
5640    if (conf_parser_ctx.pass == 2)
5641 <    regex_ban = 1;
5641 >    block_state.port.value = 1;
5642   }
5643      break;
5644  
5645 <  case 428:
5646 <
5647 < /* Line 1806 of yacc.c  */
6346 < #line 2606 "conf_parser.y"
5645 >  case 427:
5646 > /* Line 1792 of yacc.c  */
5647 > #line 2268 "conf_parser.y"
5648      {
5649    if (conf_parser_ctx.pass == 2)
5650 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5650 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5651   }
5652      break;
5653  
5654 <  case 429:
5655 <
5656 < /* Line 1806 of yacc.c  */
6356 < #line 2612 "conf_parser.y"
5654 >  case 428:
5655 > /* Line 1792 of yacc.c  */
5656 > #line 2274 "conf_parser.y"
5657      {
5658    if (conf_parser_ctx.pass == 2)
5659 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5659 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5660   }
5661      break;
5662  
5663 <  case 485:
5664 <
5665 < /* Line 1806 of yacc.c  */
6366 < #line 2656 "conf_parser.y"
5663 >  case 482:
5664 > /* Line 1792 of yacc.c  */
5665 > #line 2319 "conf_parser.y"
5666      {
5667    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5668   }
5669      break;
5670  
5671 <  case 486:
5672 <
5673 < /* Line 1806 of yacc.c  */
6375 < #line 2661 "conf_parser.y"
5671 >  case 483:
5672 > /* Line 1792 of yacc.c  */
5673 > #line 2324 "conf_parser.y"
5674      {
5675 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5675 >  if (conf_parser_ctx.pass == 2)
5676 >    ConfigFileEntry.glines = yylval.number;
5677   }
5678      break;
5679  
5680 <  case 487:
5681 <
5682 < /* Line 1806 of yacc.c  */
6384 < #line 2666 "conf_parser.y"
5680 >  case 484:
5681 > /* Line 1792 of yacc.c  */
5682 > #line 2330 "conf_parser.y"
5683      {
5684 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5684 >  if (conf_parser_ctx.pass == 2)
5685 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5686   }
5687      break;
5688  
5689 <  case 488:
5690 <
5691 < /* Line 1806 of yacc.c  */
6393 < #line 2671 "conf_parser.y"
5689 >  case 485:
5690 > /* Line 1792 of yacc.c  */
5691 > #line 2336 "conf_parser.y"
5692      {
5693 <  ConfigFileEntry.use_whois_actually = yylval.number;
5693 >  if (conf_parser_ctx.pass == 2)
5694 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5695   }
5696      break;
5697  
5698 <  case 489:
5699 <
5700 < /* Line 1806 of yacc.c  */
6402 < #line 2676 "conf_parser.y"
5698 >  case 486:
5699 > /* Line 1792 of yacc.c  */
5700 > #line 2342 "conf_parser.y"
5701      {
5702 <  GlobalSetOptions.rejecttime = yylval.number;
5702 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5703   }
5704      break;
5705  
5706 <  case 490:
5706 >  case 487:
5707 > /* Line 1792 of yacc.c  */
5708 > #line 2347 "conf_parser.y"
5709 >    {
5710 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5711 > }
5712 >    break;
5713  
5714 < /* Line 1806 of yacc.c  */
5715 < #line 2681 "conf_parser.y"
5714 >  case 488:
5715 > /* Line 1792 of yacc.c  */
5716 > #line 2352 "conf_parser.y"
5717      {
5718    ConfigFileEntry.tkline_expire_notices = yylval.number;
5719   }
5720      break;
5721  
5722 <  case 491:
5723 <
5724 < /* Line 1806 of yacc.c  */
6420 < #line 2686 "conf_parser.y"
5722 >  case 489:
5723 > /* Line 1792 of yacc.c  */
5724 > #line 2357 "conf_parser.y"
5725      {
5726    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5727   }
5728      break;
5729  
5730 <  case 492:
5731 <
5732 < /* Line 1806 of yacc.c  */
6429 < #line 2691 "conf_parser.y"
5730 >  case 490:
5731 > /* Line 1792 of yacc.c  */
5732 > #line 2362 "conf_parser.y"
5733      {
5734    ConfigFileEntry.hide_spoof_ips = yylval.number;
5735   }
5736      break;
5737  
5738 <  case 493:
5739 <
5740 < /* Line 1806 of yacc.c  */
6438 < #line 2696 "conf_parser.y"
5738 >  case 491:
5739 > /* Line 1792 of yacc.c  */
5740 > #line 2367 "conf_parser.y"
5741      {
5742    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5743   }
5744      break;
5745  
5746 <  case 494:
5747 <
5748 < /* Line 1806 of yacc.c  */
6447 < #line 2701 "conf_parser.y"
5746 >  case 492:
5747 > /* Line 1792 of yacc.c  */
5748 > #line 2372 "conf_parser.y"
5749      {
5750    ConfigFileEntry.disable_remote = yylval.number;
5751   }
5752      break;
5753  
5754 <  case 495:
5755 <
5756 < /* Line 1806 of yacc.c  */
6456 < #line 2706 "conf_parser.y"
5754 >  case 493:
5755 > /* Line 1792 of yacc.c  */
5756 > #line 2377 "conf_parser.y"
5757      {
5758    ConfigFileEntry.failed_oper_notice = yylval.number;
5759   }
5760      break;
5761  
5762 <  case 496:
5763 <
5764 < /* Line 1806 of yacc.c  */
6465 < #line 2711 "conf_parser.y"
5762 >  case 494:
5763 > /* Line 1792 of yacc.c  */
5764 > #line 2382 "conf_parser.y"
5765      {
5766    ConfigFileEntry.anti_nick_flood = yylval.number;
5767   }
5768      break;
5769  
5770 <  case 497:
5771 <
5772 < /* Line 1806 of yacc.c  */
6474 < #line 2716 "conf_parser.y"
5770 >  case 495:
5771 > /* Line 1792 of yacc.c  */
5772 > #line 2387 "conf_parser.y"
5773      {
5774    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5775   }
5776      break;
5777  
5778 <  case 498:
5779 <
5780 < /* Line 1806 of yacc.c  */
6483 < #line 2721 "conf_parser.y"
5778 >  case 496:
5779 > /* Line 1792 of yacc.c  */
5780 > #line 2392 "conf_parser.y"
5781      {
5782    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5783   }
5784      break;
5785  
5786 <  case 499:
5787 <
5788 < /* Line 1806 of yacc.c  */
6492 < #line 2726 "conf_parser.y"
5786 >  case 497:
5787 > /* Line 1792 of yacc.c  */
5788 > #line 2397 "conf_parser.y"
5789      {
5790    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5791   }
5792      break;
5793  
5794 <  case 500:
5795 <
5796 < /* Line 1806 of yacc.c  */
6501 < #line 2731 "conf_parser.y"
5794 >  case 498:
5795 > /* Line 1792 of yacc.c  */
5796 > #line 2402 "conf_parser.y"
5797      {
5798    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5799   }
5800      break;
5801  
5802 <  case 501:
5803 <
5804 < /* Line 1806 of yacc.c  */
6510 < #line 2736 "conf_parser.y"
5802 >  case 499:
5803 > /* Line 1792 of yacc.c  */
5804 > #line 2407 "conf_parser.y"
5805      {
5806    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5807   }
5808      break;
5809  
5810 <  case 502:
5811 <
5812 < /* Line 1806 of yacc.c  */
6519 < #line 2741 "conf_parser.y"
5810 >  case 500:
5811 > /* Line 1792 of yacc.c  */
5812 > #line 2412 "conf_parser.y"
5813      {
5814    if (conf_parser_ctx.pass == 2)
5815      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5816   }
5817      break;
5818  
5819 <  case 503:
5820 <
5821 < /* Line 1806 of yacc.c  */
6529 < #line 2747 "conf_parser.y"
5819 >  case 501:
5820 > /* Line 1792 of yacc.c  */
5821 > #line 2418 "conf_parser.y"
5822      {
5823    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5824    {
# Line 6538 | Line 5830 | yyreduce:
5830   }
5831      break;
5832  
5833 <  case 504:
5834 <
5835 < /* Line 1806 of yacc.c  */
6544 < #line 2758 "conf_parser.y"
6545 <    {
6546 <  ConfigFileEntry.kline_with_reason = yylval.number;
6547 < }
6548 <    break;
6549 <
6550 <  case 505:
6551 <
6552 < /* Line 1806 of yacc.c  */
6553 < #line 2763 "conf_parser.y"
6554 <    {
6555 <  if (conf_parser_ctx.pass == 2)
6556 <  {
6557 <    MyFree(ConfigFileEntry.kline_reason);
6558 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6559 <  }
6560 < }
6561 <    break;
6562 <
6563 <  case 506:
6564 <
6565 < /* Line 1806 of yacc.c  */
6566 < #line 2772 "conf_parser.y"
5833 >  case 502:
5834 > /* Line 1792 of yacc.c  */
5835 > #line 2429 "conf_parser.y"
5836      {
5837    ConfigFileEntry.invisible_on_connect = yylval.number;
5838   }
5839      break;
5840  
5841 <  case 507:
5842 <
5843 < /* Line 1806 of yacc.c  */
6575 < #line 2777 "conf_parser.y"
5841 >  case 503:
5842 > /* Line 1792 of yacc.c  */
5843 > #line 2434 "conf_parser.y"
5844      {
5845    ConfigFileEntry.warn_no_nline = yylval.number;
5846   }
5847      break;
5848  
5849 <  case 508:
5850 <
5851 < /* Line 1806 of yacc.c  */
6584 < #line 2782 "conf_parser.y"
5849 >  case 504:
5850 > /* Line 1792 of yacc.c  */
5851 > #line 2439 "conf_parser.y"
5852      {
5853    ConfigFileEntry.stats_e_disabled = yylval.number;
5854   }
5855      break;
5856  
5857 <  case 509:
5858 <
5859 < /* Line 1806 of yacc.c  */
6593 < #line 2787 "conf_parser.y"
5857 >  case 505:
5858 > /* Line 1792 of yacc.c  */
5859 > #line 2444 "conf_parser.y"
5860      {
5861    ConfigFileEntry.stats_o_oper_only = yylval.number;
5862   }
5863      break;
5864  
5865 <  case 510:
5866 <
5867 < /* Line 1806 of yacc.c  */
6602 < #line 2792 "conf_parser.y"
5865 >  case 506:
5866 > /* Line 1792 of yacc.c  */
5867 > #line 2449 "conf_parser.y"
5868      {
5869    ConfigFileEntry.stats_P_oper_only = yylval.number;
5870   }
5871      break;
5872  
5873 <  case 511:
5874 <
5875 < /* Line 1806 of yacc.c  */
6611 < #line 2797 "conf_parser.y"
5873 >  case 507:
5874 > /* Line 1792 of yacc.c  */
5875 > #line 2454 "conf_parser.y"
5876      {
5877    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5878   }
5879      break;
5880  
5881 <  case 512:
5882 <
5883 < /* Line 1806 of yacc.c  */
6620 < #line 2800 "conf_parser.y"
5881 >  case 508:
5882 > /* Line 1792 of yacc.c  */
5883 > #line 2457 "conf_parser.y"
5884      {
5885    ConfigFileEntry.stats_k_oper_only = 1;
5886   }
5887      break;
5888  
5889 <  case 513:
5890 <
5891 < /* Line 1806 of yacc.c  */
6629 < #line 2805 "conf_parser.y"
5889 >  case 509:
5890 > /* Line 1792 of yacc.c  */
5891 > #line 2462 "conf_parser.y"
5892      {
5893    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5894   }
5895      break;
5896  
5897 <  case 514:
5898 <
5899 < /* Line 1806 of yacc.c  */
6638 < #line 2808 "conf_parser.y"
5897 >  case 510:
5898 > /* Line 1792 of yacc.c  */
5899 > #line 2465 "conf_parser.y"
5900      {
5901    ConfigFileEntry.stats_i_oper_only = 1;
5902   }
5903      break;
5904  
5905 <  case 515:
5906 <
5907 < /* Line 1806 of yacc.c  */
6647 < #line 2813 "conf_parser.y"
5905 >  case 511:
5906 > /* Line 1792 of yacc.c  */
5907 > #line 2470 "conf_parser.y"
5908      {
5909    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5910   }
5911      break;
5912  
5913 <  case 516:
5914 <
5915 < /* Line 1806 of yacc.c  */
6656 < #line 2818 "conf_parser.y"
5913 >  case 512:
5914 > /* Line 1792 of yacc.c  */
5915 > #line 2475 "conf_parser.y"
5916      {
5917    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5918   }
5919      break;
5920  
5921 <  case 517:
5922 <
5923 < /* Line 1806 of yacc.c  */
6665 < #line 2823 "conf_parser.y"
5921 >  case 513:
5922 > /* Line 1792 of yacc.c  */
5923 > #line 2480 "conf_parser.y"
5924      {
5925    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5926   }
5927      break;
5928  
5929 <  case 518:
5930 <
5931 < /* Line 1806 of yacc.c  */
6674 < #line 2828 "conf_parser.y"
5929 >  case 514:
5930 > /* Line 1792 of yacc.c  */
5931 > #line 2485 "conf_parser.y"
5932      {
5933    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5934   }
5935      break;
5936  
5937 <  case 519:
5938 <
5939 < /* Line 1806 of yacc.c  */
6683 < #line 2833 "conf_parser.y"
5937 >  case 515:
5938 > /* Line 1792 of yacc.c  */
5939 > #line 2490 "conf_parser.y"
5940      {
5941    ConfigFileEntry.short_motd = yylval.number;
5942   }
5943      break;
5944  
5945 <  case 520:
5946 <
5947 < /* Line 1806 of yacc.c  */
6692 < #line 2838 "conf_parser.y"
5945 >  case 516:
5946 > /* Line 1792 of yacc.c  */
5947 > #line 2495 "conf_parser.y"
5948      {
5949    ConfigFileEntry.no_oper_flood = yylval.number;
5950   }
5951      break;
5952  
5953 <  case 521:
5954 <
5955 < /* Line 1806 of yacc.c  */
6701 < #line 2843 "conf_parser.y"
5953 >  case 517:
5954 > /* Line 1792 of yacc.c  */
5955 > #line 2500 "conf_parser.y"
5956      {
5957    ConfigFileEntry.true_no_oper_flood = yylval.number;
5958   }
5959      break;
5960  
5961 <  case 522:
5962 <
5963 < /* Line 1806 of yacc.c  */
6710 < #line 2848 "conf_parser.y"
5961 >  case 518:
5962 > /* Line 1792 of yacc.c  */
5963 > #line 2505 "conf_parser.y"
5964      {
5965    ConfigFileEntry.oper_pass_resv = yylval.number;
5966   }
5967      break;
5968  
5969 <  case 523:
5970 <
5971 < /* Line 1806 of yacc.c  */
6719 < #line 2853 "conf_parser.y"
5969 >  case 519:
5970 > /* Line 1792 of yacc.c  */
5971 > #line 2510 "conf_parser.y"
5972      {
5973    if (conf_parser_ctx.pass == 2)
5974    {
# Line 6728 | Line 5980 | yyreduce:
5980   }
5981      break;
5982  
5983 <  case 524:
5984 <
5985 < /* Line 1806 of yacc.c  */
6734 < #line 2864 "conf_parser.y"
5983 >  case 520:
5984 > /* Line 1792 of yacc.c  */
5985 > #line 2521 "conf_parser.y"
5986      {
5987    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5988   }
5989      break;
5990  
5991 <  case 525:
5992 <
5993 < /* Line 1806 of yacc.c  */
6743 < #line 2869 "conf_parser.y"
5991 >  case 521:
5992 > /* Line 1792 of yacc.c  */
5993 > #line 2526 "conf_parser.y"
5994      {
5995    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5996   }
5997      break;
5998  
5999 <  case 526:
6000 <
6001 < /* Line 1806 of yacc.c  */
6752 < #line 2874 "conf_parser.y"
5999 >  case 522:
6000 > /* Line 1792 of yacc.c  */
6001 > #line 2531 "conf_parser.y"
6002      {
6003    ConfigFileEntry.use_egd = yylval.number;
6004   }
6005      break;
6006  
6007 <  case 527:
6008 <
6009 < /* Line 1806 of yacc.c  */
6761 < #line 2879 "conf_parser.y"
6007 >  case 523:
6008 > /* Line 1792 of yacc.c  */
6009 > #line 2536 "conf_parser.y"
6010      {
6011    if (conf_parser_ctx.pass == 2)
6012    {
6013      MyFree(ConfigFileEntry.egdpool_path);
6014 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6014 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6015    }
6016   }
6017      break;
6018  
6019 <  case 528:
6020 <
6021 < /* Line 1806 of yacc.c  */
6774 < #line 2888 "conf_parser.y"
6019 >  case 524:
6020 > /* Line 1792 of yacc.c  */
6021 > #line 2545 "conf_parser.y"
6022      {
6023    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6024    {
6025      MyFree(ConfigFileEntry.service_name);
6026 <    DupString(ConfigFileEntry.service_name, yylval.string);
6026 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6027    }
6028   }
6029      break;
6030  
6031 <  case 529:
6032 <
6033 < /* Line 1806 of yacc.c  */
6787 < #line 2897 "conf_parser.y"
6031 >  case 525:
6032 > /* Line 1792 of yacc.c  */
6033 > #line 2554 "conf_parser.y"
6034      {
6035    ConfigFileEntry.ping_cookie = yylval.number;
6036   }
6037      break;
6038  
6039 <  case 530:
6040 <
6041 < /* Line 1806 of yacc.c  */
6796 < #line 2902 "conf_parser.y"
6039 >  case 526:
6040 > /* Line 1792 of yacc.c  */
6041 > #line 2559 "conf_parser.y"
6042      {
6043    ConfigFileEntry.disable_auth = yylval.number;
6044   }
6045      break;
6046  
6047 <  case 531:
6048 <
6049 < /* Line 1806 of yacc.c  */
6805 < #line 2907 "conf_parser.y"
6047 >  case 527:
6048 > /* Line 1792 of yacc.c  */
6049 > #line 2564 "conf_parser.y"
6050      {
6051    ConfigFileEntry.throttle_time = yylval.number;
6052   }
6053      break;
6054  
6055 <  case 532:
6056 <
6057 < /* Line 1806 of yacc.c  */
6814 < #line 2912 "conf_parser.y"
6055 >  case 528:
6056 > /* Line 1792 of yacc.c  */
6057 > #line 2569 "conf_parser.y"
6058      {
6059    ConfigFileEntry.oper_umodes = 0;
6060   }
6061      break;
6062  
6063 <  case 536:
6064 <
6065 < /* Line 1806 of yacc.c  */
6823 < #line 2918 "conf_parser.y"
6063 >  case 532:
6064 > /* Line 1792 of yacc.c  */
6065 > #line 2575 "conf_parser.y"
6066      {
6067    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6068   }
6069      break;
6070  
6071 <  case 537:
6072 <
6073 < /* Line 1806 of yacc.c  */
6832 < #line 2921 "conf_parser.y"
6071 >  case 533:
6072 > /* Line 1792 of yacc.c  */
6073 > #line 2578 "conf_parser.y"
6074      {
6075    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6076   }
6077      break;
6078  
6079 <  case 538:
6080 <
6081 < /* Line 1806 of yacc.c  */
6841 < #line 2924 "conf_parser.y"
6079 >  case 534:
6080 > /* Line 1792 of yacc.c  */
6081 > #line 2581 "conf_parser.y"
6082      {
6083    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6084   }
6085      break;
6086  
6087 <  case 539:
6088 <
6089 < /* Line 1806 of yacc.c  */
6850 < #line 2927 "conf_parser.y"
6087 >  case 535:
6088 > /* Line 1792 of yacc.c  */
6089 > #line 2584 "conf_parser.y"
6090      {
6091    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092   }
6093      break;
6094  
6095 <  case 540:
6096 <
6097 < /* Line 1806 of yacc.c  */
6859 < #line 2930 "conf_parser.y"
6095 >  case 536:
6096 > /* Line 1792 of yacc.c  */
6097 > #line 2587 "conf_parser.y"
6098      {
6099    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100   }
6101      break;
6102  
6103 <  case 541:
6104 <
6105 < /* Line 1806 of yacc.c  */
6868 < #line 2933 "conf_parser.y"
6103 >  case 537:
6104 > /* Line 1792 of yacc.c  */
6105 > #line 2590 "conf_parser.y"
6106      {
6107    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108   }
6109      break;
6110  
6111 <  case 542:
6112 <
6113 < /* Line 1806 of yacc.c  */
6877 < #line 2936 "conf_parser.y"
6111 >  case 538:
6112 > /* Line 1792 of yacc.c  */
6113 > #line 2593 "conf_parser.y"
6114      {
6115    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116   }
6117      break;
6118  
6119 <  case 543:
6120 <
6121 < /* Line 1806 of yacc.c  */
6886 < #line 2939 "conf_parser.y"
6119 >  case 539:
6120 > /* Line 1792 of yacc.c  */
6121 > #line 2596 "conf_parser.y"
6122      {
6123    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6124   }
6125      break;
6126  
6127 <  case 544:
6128 <
6129 < /* Line 1806 of yacc.c  */
6895 < #line 2942 "conf_parser.y"
6127 >  case 540:
6128 > /* Line 1792 of yacc.c  */
6129 > #line 2599 "conf_parser.y"
6130      {
6131    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6132   }
6133      break;
6134  
6135 <  case 545:
6136 <
6137 < /* Line 1806 of yacc.c  */
6904 < #line 2945 "conf_parser.y"
6135 >  case 541:
6136 > /* Line 1792 of yacc.c  */
6137 > #line 2602 "conf_parser.y"
6138      {
6139    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6140   }
6141      break;
6142  
6143 <  case 546:
6144 <
6145 < /* Line 1806 of yacc.c  */
6913 < #line 2948 "conf_parser.y"
6143 >  case 542:
6144 > /* Line 1792 of yacc.c  */
6145 > #line 2605 "conf_parser.y"
6146      {
6147    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6148   }
6149      break;
6150  
6151 <  case 547:
6152 <
6153 < /* Line 1806 of yacc.c  */
6922 < #line 2951 "conf_parser.y"
6151 >  case 543:
6152 > /* Line 1792 of yacc.c  */
6153 > #line 2608 "conf_parser.y"
6154      {
6155    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6156   }
6157      break;
6158  
6159 <  case 548:
6160 <
6161 < /* Line 1806 of yacc.c  */
6931 < #line 2954 "conf_parser.y"
6159 >  case 544:
6160 > /* Line 1792 of yacc.c  */
6161 > #line 2611 "conf_parser.y"
6162      {
6163    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6164   }
6165      break;
6166  
6167 <  case 549:
6168 <
6169 < /* Line 1806 of yacc.c  */
6940 < #line 2957 "conf_parser.y"
6167 >  case 545:
6168 > /* Line 1792 of yacc.c  */
6169 > #line 2614 "conf_parser.y"
6170      {
6171    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6172   }
6173      break;
6174  
6175 <  case 550:
6176 <
6177 < /* Line 1806 of yacc.c  */
6949 < #line 2960 "conf_parser.y"
6175 >  case 546:
6176 > /* Line 1792 of yacc.c  */
6177 > #line 2617 "conf_parser.y"
6178      {
6179    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6180   }
6181      break;
6182  
6183 <  case 551:
6184 <
6185 < /* Line 1806 of yacc.c  */
6958 < #line 2963 "conf_parser.y"
6183 >  case 547:
6184 > /* Line 1792 of yacc.c  */
6185 > #line 2620 "conf_parser.y"
6186      {
6187    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6188   }
6189      break;
6190  
6191 <  case 552:
6192 <
6193 < /* Line 1806 of yacc.c  */
6967 < #line 2966 "conf_parser.y"
6191 >  case 548:
6192 > /* Line 1792 of yacc.c  */
6193 > #line 2623 "conf_parser.y"
6194      {
6195    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6196   }
6197      break;
6198  
6199 <  case 553:
6200 <
6201 < /* Line 1806 of yacc.c  */
6976 < #line 2969 "conf_parser.y"
6199 >  case 549:
6200 > /* Line 1792 of yacc.c  */
6201 > #line 2626 "conf_parser.y"
6202      {
6203    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6204   }
6205      break;
6206  
6207 <  case 554:
6208 <
6209 < /* Line 1806 of yacc.c  */
6985 < #line 2972 "conf_parser.y"
6207 >  case 550:
6208 > /* Line 1792 of yacc.c  */
6209 > #line 2629 "conf_parser.y"
6210      {
6211    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6212   }
6213      break;
6214  
6215 <  case 555:
6216 <
6217 < /* Line 1806 of yacc.c  */
6994 < #line 2975 "conf_parser.y"
6215 >  case 551:
6216 > /* Line 1792 of yacc.c  */
6217 > #line 2632 "conf_parser.y"
6218      {
6219    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6220   }
6221      break;
6222  
6223 <  case 556:
6224 <
6225 < /* Line 1806 of yacc.c  */
7003 < #line 2980 "conf_parser.y"
6223 >  case 552:
6224 > /* Line 1792 of yacc.c  */
6225 > #line 2637 "conf_parser.y"
6226      {
6227    ConfigFileEntry.oper_only_umodes = 0;
6228   }
6229      break;
6230  
6231 <  case 560:
6232 <
6233 < /* Line 1806 of yacc.c  */
7012 < #line 2986 "conf_parser.y"
6231 >  case 556:
6232 > /* Line 1792 of yacc.c  */
6233 > #line 2643 "conf_parser.y"
6234      {
6235    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6236   }
6237      break;
6238  
6239 <  case 561:
6240 <
6241 < /* Line 1806 of yacc.c  */
7021 < #line 2989 "conf_parser.y"
6239 >  case 557:
6240 > /* Line 1792 of yacc.c  */
6241 > #line 2646 "conf_parser.y"
6242      {
6243    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6244   }
6245      break;
6246  
6247 <  case 562:
6248 <
6249 < /* Line 1806 of yacc.c  */
7030 < #line 2992 "conf_parser.y"
6247 >  case 558:
6248 > /* Line 1792 of yacc.c  */
6249 > #line 2649 "conf_parser.y"
6250      {
6251    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6252   }
6253      break;
6254  
6255 <  case 563:
6256 <
6257 < /* Line 1806 of yacc.c  */
7039 < #line 2995 "conf_parser.y"
6255 >  case 559:
6256 > /* Line 1792 of yacc.c  */
6257 > #line 2652 "conf_parser.y"
6258      {
6259    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6260   }
6261      break;
6262  
6263 <  case 564:
6264 <
6265 < /* Line 1806 of yacc.c  */
7048 < #line 2998 "conf_parser.y"
6263 >  case 560:
6264 > /* Line 1792 of yacc.c  */
6265 > #line 2655 "conf_parser.y"
6266      {
6267    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6268   }
6269      break;
6270  
6271 <  case 565:
6272 <
6273 < /* Line 1806 of yacc.c  */
7057 < #line 3001 "conf_parser.y"
6271 >  case 561:
6272 > /* Line 1792 of yacc.c  */
6273 > #line 2658 "conf_parser.y"
6274      {
6275    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6276   }
6277      break;
6278  
6279 <  case 566:
6280 <
6281 < /* Line 1806 of yacc.c  */
7066 < #line 3004 "conf_parser.y"
6279 >  case 562:
6280 > /* Line 1792 of yacc.c  */
6281 > #line 2661 "conf_parser.y"
6282      {
6283    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6284   }
6285      break;
6286  
6287 <  case 567:
6288 <
6289 < /* Line 1806 of yacc.c  */
7075 < #line 3007 "conf_parser.y"
6287 >  case 563:
6288 > /* Line 1792 of yacc.c  */
6289 > #line 2664 "conf_parser.y"
6290      {
6291    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6292   }
6293      break;
6294  
6295 <  case 568:
6296 <
6297 < /* Line 1806 of yacc.c  */
7084 < #line 3010 "conf_parser.y"
6295 >  case 564:
6296 > /* Line 1792 of yacc.c  */
6297 > #line 2667 "conf_parser.y"
6298      {
6299    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6300   }
6301      break;
6302  
6303 <  case 569:
6304 <
6305 < /* Line 1806 of yacc.c  */
7093 < #line 3013 "conf_parser.y"
6303 >  case 565:
6304 > /* Line 1792 of yacc.c  */
6305 > #line 2670 "conf_parser.y"
6306      {
6307    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6308   }
6309      break;
6310  
6311 <  case 570:
6312 <
6313 < /* Line 1806 of yacc.c  */
7102 < #line 3016 "conf_parser.y"
6311 >  case 566:
6312 > /* Line 1792 of yacc.c  */
6313 > #line 2673 "conf_parser.y"
6314      {
6315    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6316   }
6317      break;
6318  
6319 <  case 571:
6320 <
6321 < /* Line 1806 of yacc.c  */
7111 < #line 3019 "conf_parser.y"
6319 >  case 567:
6320 > /* Line 1792 of yacc.c  */
6321 > #line 2676 "conf_parser.y"
6322      {
6323    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6324   }
6325      break;
6326  
6327 <  case 572:
6328 <
6329 < /* Line 1806 of yacc.c  */
7120 < #line 3022 "conf_parser.y"
6327 >  case 568:
6328 > /* Line 1792 of yacc.c  */
6329 > #line 2679 "conf_parser.y"
6330      {
6331    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6332   }
6333      break;
6334  
6335 <  case 573:
6336 <
6337 < /* Line 1806 of yacc.c  */
7129 < #line 3025 "conf_parser.y"
6335 >  case 569:
6336 > /* Line 1792 of yacc.c  */
6337 > #line 2682 "conf_parser.y"
6338      {
6339    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6340   }
6341      break;
6342  
6343 <  case 574:
6344 <
6345 < /* Line 1806 of yacc.c  */
7138 < #line 3028 "conf_parser.y"
6343 >  case 570:
6344 > /* Line 1792 of yacc.c  */
6345 > #line 2685 "conf_parser.y"
6346      {
6347    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6348   }
6349      break;
6350  
6351 <  case 575:
6352 <
6353 < /* Line 1806 of yacc.c  */
7147 < #line 3031 "conf_parser.y"
6351 >  case 571:
6352 > /* Line 1792 of yacc.c  */
6353 > #line 2688 "conf_parser.y"
6354      {
6355    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6356   }
6357      break;
6358  
6359 <  case 576:
6360 <
6361 < /* Line 1806 of yacc.c  */
7156 < #line 3034 "conf_parser.y"
6359 >  case 572:
6360 > /* Line 1792 of yacc.c  */
6361 > #line 2691 "conf_parser.y"
6362      {
6363    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6364   }
6365      break;
6366  
6367 <  case 577:
6368 <
6369 < /* Line 1806 of yacc.c  */
7165 < #line 3037 "conf_parser.y"
6367 >  case 573:
6368 > /* Line 1792 of yacc.c  */
6369 > #line 2694 "conf_parser.y"
6370      {
6371    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6372   }
6373      break;
6374  
6375 <  case 578:
6376 <
6377 < /* Line 1806 of yacc.c  */
7174 < #line 3040 "conf_parser.y"
6375 >  case 574:
6376 > /* Line 1792 of yacc.c  */
6377 > #line 2697 "conf_parser.y"
6378      {
6379    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6380   }
6381      break;
6382  
6383 <  case 579:
6384 <
6385 < /* Line 1806 of yacc.c  */
7183 < #line 3043 "conf_parser.y"
6383 >  case 575:
6384 > /* Line 1792 of yacc.c  */
6385 > #line 2700 "conf_parser.y"
6386      {
6387    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6388   }
6389      break;
6390  
6391 <  case 580:
6392 <
6393 < /* Line 1806 of yacc.c  */
7192 < #line 3048 "conf_parser.y"
6391 >  case 576:
6392 > /* Line 1792 of yacc.c  */
6393 > #line 2705 "conf_parser.y"
6394      {
6395    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6396   }
6397      break;
6398  
6399 <  case 581:
6400 <
6401 < /* Line 1806 of yacc.c  */
7201 < #line 3053 "conf_parser.y"
6399 >  case 577:
6400 > /* Line 1792 of yacc.c  */
6401 > #line 2710 "conf_parser.y"
6402      {
6403    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6404   }
6405      break;
6406  
6407 <  case 582:
6408 <
6409 < /* Line 1806 of yacc.c  */
7210 < #line 3058 "conf_parser.y"
6407 >  case 578:
6408 > /* Line 1792 of yacc.c  */
6409 > #line 2715 "conf_parser.y"
6410      {
6411    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6412   }
6413      break;
6414  
7216  case 583:
7217
7218 /* Line 1806 of yacc.c  */
7219 #line 3063 "conf_parser.y"
7220    {
7221  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7222 }
7223    break;
7224
7225  case 584:
7226
7227 /* Line 1806 of yacc.c  */
7228 #line 3072 "conf_parser.y"
7229    {
7230  if (conf_parser_ctx.pass == 2)
7231  {
7232    yy_conf = make_conf_item(GDENY_TYPE);
7233    yy_aconf = map_to_conf(yy_conf);
7234  }
7235 }
7236    break;
7237
7238  case 585:
7239
7240 /* Line 1806 of yacc.c  */
7241 #line 3079 "conf_parser.y"
7242    {
7243  if (conf_parser_ctx.pass == 2)
7244  {
7245    /*
7246     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7247     * end we will have one extra, so we should free it.
7248     */
7249    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7250    {
7251      delete_conf_item(yy_conf);
7252      yy_conf = NULL;
7253      yy_aconf = NULL;
7254    }
7255  }
7256 }
7257    break;
7258
7259  case 595:
7260
7261 /* Line 1806 of yacc.c  */
7262 #line 3105 "conf_parser.y"
7263    {
7264  if (conf_parser_ctx.pass == 2)
7265    ConfigFileEntry.glines = yylval.number;
7266 }
7267    break;
7268
7269  case 596:
7270
7271 /* Line 1806 of yacc.c  */
7272 #line 3111 "conf_parser.y"
7273    {
7274  if (conf_parser_ctx.pass == 2)
7275    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7276 }
7277    break;
7278
6415    case 597:
6416 <
6417 < /* Line 1806 of yacc.c  */
7282 < #line 3117 "conf_parser.y"
7283 <    {
7284 <  if (conf_parser_ctx.pass == 2)
7285 <    ConfigFileEntry.gline_logging = 0;
7286 < }
7287 <    break;
7288 <
7289 <  case 601:
7290 <
7291 < /* Line 1806 of yacc.c  */
7292 < #line 3123 "conf_parser.y"
7293 <    {
7294 <  if (conf_parser_ctx.pass == 2)
7295 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7296 < }
7297 <    break;
7298 <
7299 <  case 602:
7300 <
7301 < /* Line 1806 of yacc.c  */
7302 < #line 3127 "conf_parser.y"
7303 <    {
7304 <  if (conf_parser_ctx.pass == 2)
7305 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7306 < }
7307 <    break;
7308 <
7309 <  case 603:
7310 <
7311 < /* Line 1806 of yacc.c  */
7312 < #line 3133 "conf_parser.y"
7313 <    {
7314 <  if (conf_parser_ctx.pass == 2)
7315 <  {
7316 <    struct split_nuh_item nuh;
7317 <
7318 <    nuh.nuhmask  = yylval.string;
7319 <    nuh.nickptr  = NULL;
7320 <    nuh.userptr  = userbuf;
7321 <    nuh.hostptr  = hostbuf;
7322 <
7323 <    nuh.nicksize = 0;
7324 <    nuh.usersize = sizeof(userbuf);
7325 <    nuh.hostsize = sizeof(hostbuf);
7326 <
7327 <    split_nuh(&nuh);
7328 <
7329 <    if (yy_aconf->user == NULL)
7330 <    {
7331 <      DupString(yy_aconf->user, userbuf);
7332 <      DupString(yy_aconf->host, hostbuf);
7333 <    }
7334 <    else
7335 <    {
7336 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7337 <
7338 <      DupString(yy_tmp->user, userbuf);
7339 <      DupString(yy_tmp->host, hostbuf);
7340 <
7341 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7342 <    }
7343 <  }
7344 < }
7345 <    break;
7346 <
7347 <  case 604:
7348 <
7349 < /* Line 1806 of yacc.c  */
7350 < #line 3167 "conf_parser.y"
7351 <    {
7352 <  if (conf_parser_ctx.pass == 2)  
7353 <  {
7354 <    MyFree(yy_conf->name);
7355 <    DupString(yy_conf->name, yylval.string);
7356 <  }
7357 < }
7358 <    break;
7359 <
7360 <  case 605:
7361 <
7362 < /* Line 1806 of yacc.c  */
7363 < #line 3176 "conf_parser.y"
7364 <    {
7365 <  if (conf_parser_ctx.pass == 2)
7366 <    yy_aconf->flags = 0;
7367 < }
7368 <    break;
7369 <
7370 <  case 606:
7371 <
7372 < /* Line 1806 of yacc.c  */
7373 < #line 3180 "conf_parser.y"
7374 <    {
7375 <  if (conf_parser_ctx.pass == 2)
7376 <  {
7377 <    struct CollectItem *yy_tmp = NULL;
7378 <    dlink_node *ptr, *next_ptr;
7379 <
7380 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7381 <    {
7382 <      struct AccessItem *new_aconf;
7383 <      struct ConfItem *new_conf;
7384 <
7385 <      yy_tmp = ptr->data;
7386 <      new_conf = make_conf_item(GDENY_TYPE);
7387 <      new_aconf = map_to_conf(new_conf);
7388 <
7389 <      new_aconf->flags = yy_aconf->flags;
7390 <
7391 <      if (yy_conf->name != NULL)
7392 <        DupString(new_conf->name, yy_conf->name);
7393 <      else
7394 <        DupString(new_conf->name, "*");
7395 <      if (yy_aconf->user != NULL)
7396 <         DupString(new_aconf->user, yy_tmp->user);
7397 <      else  
7398 <        DupString(new_aconf->user, "*");
7399 <      if (yy_aconf->host != NULL)
7400 <        DupString(new_aconf->host, yy_tmp->host);
7401 <      else
7402 <        DupString(new_aconf->host, "*");
7403 <
7404 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7405 <    }
7406 <
7407 <    /*
7408 <     * In case someone has fed us with more than one action= after user/name
7409 <     * which would leak memory  -Michael
7410 <     */
7411 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7412 <      delete_conf_item(yy_conf);
7413 <
7414 <    yy_conf = make_conf_item(GDENY_TYPE);
7415 <    yy_aconf = map_to_conf(yy_conf);
7416 <  }
7417 < }
7418 <    break;
7419 <
7420 <  case 609:
7421 <
7422 < /* Line 1806 of yacc.c  */
7423 < #line 3227 "conf_parser.y"
7424 <    {
7425 <  if (conf_parser_ctx.pass == 2)
7426 <    yy_aconf->flags |= GDENY_REJECT;
7427 < }
7428 <    break;
7429 <
7430 <  case 610:
7431 <
7432 < /* Line 1806 of yacc.c  */
7433 < #line 3231 "conf_parser.y"
7434 <    {
7435 <  if (conf_parser_ctx.pass == 2)
7436 <    yy_aconf->flags |= GDENY_BLOCK;
7437 < }
7438 <    break;
7439 <
7440 <  case 633:
7441 <
7442 < /* Line 1806 of yacc.c  */
7443 < #line 3255 "conf_parser.y"
6416 > /* Line 1792 of yacc.c  */
6417 > #line 2738 "conf_parser.y"
6418      {
6419    ConfigChannel.disable_fake_channels = yylval.number;
6420   }
6421      break;
6422  
6423 <  case 634:
6424 <
6425 < /* Line 1806 of yacc.c  */
7452 < #line 3260 "conf_parser.y"
6423 >  case 598:
6424 > /* Line 1792 of yacc.c  */
6425 > #line 2743 "conf_parser.y"
6426      {
6427    ConfigChannel.restrict_channels = yylval.number;
6428   }
6429      break;
6430  
6431 <  case 635:
6432 <
6433 < /* Line 1806 of yacc.c  */
7461 < #line 3265 "conf_parser.y"
7462 <    {
7463 <  ConfigChannel.disable_local_channels = yylval.number;
7464 < }
7465 <    break;
7466 <
7467 <  case 636:
7468 <
7469 < /* Line 1806 of yacc.c  */
7470 < #line 3270 "conf_parser.y"
7471 <    {
7472 <  ConfigChannel.use_except = yylval.number;
7473 < }
7474 <    break;
7475 <
7476 <  case 637:
7477 <
7478 < /* Line 1806 of yacc.c  */
7479 < #line 3275 "conf_parser.y"
7480 <    {
7481 <  ConfigChannel.use_invex = yylval.number;
7482 < }
7483 <    break;
7484 <
7485 <  case 638:
7486 <
7487 < /* Line 1806 of yacc.c  */
7488 < #line 3280 "conf_parser.y"
7489 <    {
7490 <  ConfigChannel.use_knock = yylval.number;
7491 < }
7492 <    break;
7493 <
7494 <  case 639:
7495 <
7496 < /* Line 1806 of yacc.c  */
7497 < #line 3285 "conf_parser.y"
6431 >  case 599:
6432 > /* Line 1792 of yacc.c  */
6433 > #line 2748 "conf_parser.y"
6434      {
6435    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6436   }
6437      break;
6438  
6439 <  case 640:
6440 <
6441 < /* Line 1806 of yacc.c  */
7506 < #line 3290 "conf_parser.y"
6439 >  case 600:
6440 > /* Line 1792 of yacc.c  */
6441 > #line 2753 "conf_parser.y"
6442      {
6443    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6444   }
6445      break;
6446  
6447 <  case 641:
6448 <
6449 < /* Line 1806 of yacc.c  */
7515 < #line 3295 "conf_parser.y"
6447 >  case 601:
6448 > /* Line 1792 of yacc.c  */
6449 > #line 2758 "conf_parser.y"
6450      {
6451    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6452   }
6453      break;
6454  
6455 <  case 642:
6455 >  case 602:
6456 > /* Line 1792 of yacc.c  */
6457 > #line 2763 "conf_parser.y"
6458 >    {
6459 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6460 > }
6461 >    break;
6462  
6463 < /* Line 1806 of yacc.c  */
6464 < #line 3300 "conf_parser.y"
6463 >  case 603:
6464 > /* Line 1792 of yacc.c  */
6465 > #line 2768 "conf_parser.y"
6466      {
6467    ConfigChannel.quiet_on_ban = yylval.number;
6468   }
6469      break;
6470  
6471 <  case 643:
6472 <
6473 < /* Line 1806 of yacc.c  */
7533 < #line 3305 "conf_parser.y"
6471 >  case 604:
6472 > /* Line 1792 of yacc.c  */
6473 > #line 2773 "conf_parser.y"
6474      {
6475    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6476   }
6477      break;
6478  
6479 <  case 644:
6480 <
6481 < /* Line 1806 of yacc.c  */
7542 < #line 3310 "conf_parser.y"
6479 >  case 605:
6480 > /* Line 1792 of yacc.c  */
6481 > #line 2778 "conf_parser.y"
6482      {
6483    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6484   }
6485      break;
6486  
6487 <  case 645:
6488 <
6489 < /* Line 1806 of yacc.c  */
7551 < #line 3315 "conf_parser.y"
6487 >  case 606:
6488 > /* Line 1792 of yacc.c  */
6489 > #line 2783 "conf_parser.y"
6490      {
6491    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6492   }
6493      break;
6494  
6495 <  case 646:
6496 <
6497 < /* Line 1806 of yacc.c  */
7560 < #line 3320 "conf_parser.y"
6495 >  case 607:
6496 > /* Line 1792 of yacc.c  */
6497 > #line 2788 "conf_parser.y"
6498      {
6499    ConfigChannel.no_create_on_split = yylval.number;
6500   }
6501      break;
6502  
6503 <  case 647:
6504 <
6505 < /* Line 1806 of yacc.c  */
7569 < #line 3325 "conf_parser.y"
6503 >  case 608:
6504 > /* Line 1792 of yacc.c  */
6505 > #line 2793 "conf_parser.y"
6506      {
6507    ConfigChannel.no_join_on_split = yylval.number;
6508   }
6509      break;
6510  
6511 <  case 648:
6512 <
6513 < /* Line 1806 of yacc.c  */
7578 < #line 3330 "conf_parser.y"
7579 <    {
7580 <  ConfigChannel.burst_topicwho = yylval.number;
7581 < }
7582 <    break;
7583 <
7584 <  case 649:
7585 <
7586 < /* Line 1806 of yacc.c  */
7587 < #line 3335 "conf_parser.y"
6511 >  case 609:
6512 > /* Line 1792 of yacc.c  */
6513 > #line 2798 "conf_parser.y"
6514      {
6515    GlobalSetOptions.joinfloodcount = yylval.number;
6516   }
6517      break;
6518  
6519 <  case 650:
6520 <
6521 < /* Line 1806 of yacc.c  */
7596 < #line 3340 "conf_parser.y"
6519 >  case 610:
6520 > /* Line 1792 of yacc.c  */
6521 > #line 2803 "conf_parser.y"
6522      {
6523    GlobalSetOptions.joinfloodtime = yylval.number;
6524   }
6525      break;
6526  
6527 <  case 662:
6528 <
6529 < /* Line 1806 of yacc.c  */
7605 < #line 3359 "conf_parser.y"
6527 >  case 621:
6528 > /* Line 1792 of yacc.c  */
6529 > #line 2821 "conf_parser.y"
6530      {
6531    if (conf_parser_ctx.pass == 2)
6532      ConfigServerHide.flatten_links = yylval.number;
6533   }
6534      break;
6535  
6536 <  case 663:
6537 <
6538 < /* Line 1806 of yacc.c  */
7615 < #line 3365 "conf_parser.y"
6536 >  case 622:
6537 > /* Line 1792 of yacc.c  */
6538 > #line 2827 "conf_parser.y"
6539      {
6540    if (conf_parser_ctx.pass == 2)
6541      ConfigServerHide.hide_servers = yylval.number;
6542   }
6543      break;
6544  
6545 <  case 664:
6546 <
6547 < /* Line 1806 of yacc.c  */
7625 < #line 3371 "conf_parser.y"
6545 >  case 623:
6546 > /* Line 1792 of yacc.c  */
6547 > #line 2833 "conf_parser.y"
6548      {
6549    if (conf_parser_ctx.pass == 2)
6550    {
6551      MyFree(ConfigServerHide.hidden_name);
6552 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6552 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6553    }
6554   }
6555      break;
6556  
6557 <  case 665:
6558 <
6559 < /* Line 1806 of yacc.c  */
7638 < #line 3380 "conf_parser.y"
6557 >  case 624:
6558 > /* Line 1792 of yacc.c  */
6559 > #line 2842 "conf_parser.y"
6560      {
6561    if (conf_parser_ctx.pass == 2)
6562    {
# Line 7650 | Line 6571 | yyreduce:
6571   }
6572      break;
6573  
6574 <  case 666:
6575 <
6576 < /* Line 1806 of yacc.c  */
7656 < #line 3394 "conf_parser.y"
6574 >  case 625:
6575 > /* Line 1792 of yacc.c  */
6576 > #line 2856 "conf_parser.y"
6577      {
6578    if (conf_parser_ctx.pass == 2)
6579      ConfigServerHide.hidden = yylval.number;
6580   }
6581      break;
6582  
6583 <  case 667:
6584 <
6585 < /* Line 1806 of yacc.c  */
7666 < #line 3400 "conf_parser.y"
7667 <    {
7668 <  if (conf_parser_ctx.pass == 2)
7669 <    ConfigServerHide.disable_hidden = yylval.number;
7670 < }
7671 <    break;
7672 <
7673 <  case 668:
7674 <
7675 < /* Line 1806 of yacc.c  */
7676 < #line 3406 "conf_parser.y"
6583 >  case 626:
6584 > /* Line 1792 of yacc.c  */
6585 > #line 2862 "conf_parser.y"
6586      {
6587    if (conf_parser_ctx.pass == 2)
6588      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7681 | Line 6590 | yyreduce:
6590      break;
6591  
6592  
6593 <
6594 < /* Line 1806 of yacc.c  */
7686 < #line 7687 "conf_parser.c"
6593 > /* Line 1792 of yacc.c  */
6594 > #line 6595 "conf_parser.c"
6595        default: break;
6596      }
6597    /* User semantic actions sometimes alter yychar, and that requires
# Line 7846 | Line 6754 | yyerrlab1:
6754        YY_STACK_PRINT (yyss, yyssp);
6755      }
6756  
6757 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6758    *++yyvsp = yylval;
6759 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6760  
6761  
6762    /* Shift the error token.  */
# Line 7870 | Line 6780 | yyabortlab:
6780    yyresult = 1;
6781    goto yyreturn;
6782  
6783 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6783 > #if !defined yyoverflow || YYERROR_VERBOSE
6784   /*-------------------------------------------------.
6785   | yyexhaustedlab -- memory exhaustion comes here.  |
6786   `-------------------------------------------------*/
# Line 7912 | Line 6822 | yyreturn:
6822   }
6823  
6824  
7915

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1366 by michael, Tue Apr 24 18:35:34 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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