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 1466 by michael, Fri Jul 20 16:02:20 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1651 by michael, Sun Nov 11 10:54:51 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.  */
1 > /* A Bison parser, made by GNU Bison 2.6.5.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.6"
47 > #define YYBISON_VERSION "2.6.5"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 62 | Line 62
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
66 < /* Line 336 of yacc.c  */
65 > /* Line 360 of yacc.c  */
66   #line 25 "conf_parser.y"
67  
68  
# Line 76 | 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 100 | Line 100
100  
101   int yylex(void);
102  
103 < static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
105 < static struct AccessItem *yy_aconf = NULL;
106 < static struct MatchItem *yy_match_item = NULL;
107 < static struct ClassItem *yy_class = NULL;
108 < static char *yy_class_name = NULL;
109 <
110 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
111 < static unsigned int listener_flags = 0;
112 < static unsigned int regex_ban = 0;
113 < static char userbuf[IRCD_BUFSIZE];
114 < static char hostbuf[IRCD_BUFSIZE];
115 < static char reasonbuf[REASONLEN + 1];
116 < static char gecos_name[REALLEN * 4];
117 < static char lfile[IRCD_BUFSIZE];
118 < static unsigned int ltype = 0;
119 < static unsigned int lsize = 0;
120 < static char *resv_reason = NULL;
121 < static char *listener_address = NULL;
122 <
123 < 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);
150 <  MyFree(item->user);
151 <  MyFree(item->host);
152 <  MyFree(item->passwd);
153 < #ifdef HAVE_LIBCRYPTO
154 <  MyFree(item->rsa_public_key_file);
155 < #endif
156 <  MyFree(item);
157 < }
149 >  dlink_node *ptr = NULL, *ptr_next = NULL;
150 >
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, ptr_next, block_state.leaf.list.head)
159 >  {
160 >    MyFree(ptr->data);
161 >    dlinkDelete(ptr, &block_state.leaf.list);
162 >    free_dlink_node(ptr);
163 >  }
164  
165 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
166 +  {
167 +    MyFree(ptr->data);
168 +    dlinkDelete(ptr, &block_state.hub.list);
169 +    free_dlink_node(ptr);
170 +  }
171 +
172 +  memset(&block_state, 0, sizeof(block_state));
173 + }
174  
175  
176 < /* Line 336 of yacc.c  */
177 < #line 155 "conf_parser.c"
176 > /* Line 360 of yacc.c  */
177 > #line 178 "conf_parser.c"
178  
179   # ifndef YY_NULL
180   #  if defined __cplusplus && 201103L <= __cplusplus
# Line 171 | Line 194 | free_collect_item(struct CollectItem *it
194  
195   /* In a future release of Bison, this section will be replaced
196     by #include "y.tab.h".  */
197 < #ifndef YY_Y_TAB_H
198 < # define YY_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
# Line 188 | Line 211 | extern int yydebug;
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 <     BYTES = 268,
224 <     KBYTES = 269,
225 <     MBYTES = 270,
226 <     GBYTES = 271,
227 <     TBYTES = 272,
228 <     CALLER_ID_WAIT = 273,
229 <     CAN_FLOOD = 274,
230 <     CHANNEL = 275,
231 <     CIDR_BITLEN_IPV4 = 276,
232 <     CIDR_BITLEN_IPV6 = 277,
233 <     CLASS = 278,
234 <     CONNECT = 279,
235 <     CONNECTFREQ = 280,
236 <     DEFAULT_FLOODCOUNT = 281,
237 <     DEFAULT_SPLIT_SERVER_COUNT = 282,
238 <     DEFAULT_SPLIT_USER_COUNT = 283,
239 <     DENY = 284,
240 <     DESCRIPTION = 285,
241 <     DIE = 286,
242 <     DISABLE_AUTH = 287,
243 <     DISABLE_FAKE_CHANNELS = 288,
244 <     DISABLE_HIDDEN = 289,
245 <     DISABLE_LOCAL_CHANNELS = 290,
246 <     DISABLE_REMOTE_COMMANDS = 291,
247 <     DOTS_IN_IDENT = 292,
248 <     DURATION = 293,
249 <     EGDPOOL_PATH = 294,
250 <     EMAIL = 295,
251 <     ENABLE = 296,
252 <     ENCRYPTED = 297,
253 <     EXCEED_LIMIT = 298,
254 <     EXEMPT = 299,
255 <     FAILED_OPER_NOTICE = 300,
256 <     IRCD_FLAGS = 301,
257 <     FLATTEN_LINKS = 302,
258 <     GECOS = 303,
259 <     GENERAL = 304,
260 <     GLINE = 305,
261 <     GLINE_DURATION = 306,
262 <     GLINE_ENABLE = 307,
263 <     GLINE_EXEMPT = 308,
264 <     GLINE_TIME = 309,
265 <     GLINE_REQUEST_DURATION = 310,
266 <     GLINE_MIN_CIDR = 311,
267 <     GLINE_MIN_CIDR6 = 312,
268 <     GLOBAL_KILL = 313,
269 <     IRCD_AUTH = 314,
270 <     NEED_IDENT = 315,
271 <     HAVENT_READ_CONF = 316,
272 <     HIDDEN = 317,
273 <     HIDDEN_NAME = 318,
274 <     HIDE_SERVER_IPS = 319,
275 <     HIDE_SERVERS = 320,
276 <     HIDE_SPOOF_IPS = 321,
277 <     HOST = 322,
278 <     HUB = 323,
279 <     HUB_MASK = 324,
280 <     IGNORE_BOGUS_TS = 325,
281 <     INVISIBLE_ON_CONNECT = 326,
282 <     IP = 327,
283 <     KILL = 328,
284 <     KILL_CHASE_TIME_LIMIT = 329,
285 <     KLINE = 330,
286 <     KLINE_EXEMPT = 331,
287 <     KLINE_REASON = 332,
288 <     KLINE_WITH_REASON = 333,
289 <     KNOCK_DELAY = 334,
290 <     KNOCK_DELAY_CHANNEL = 335,
291 <     LEAF_MASK = 336,
292 <     LINKS_DELAY = 337,
293 <     LISTEN = 338,
294 <     T_LOG = 339,
295 <     MAX_ACCEPT = 340,
296 <     MAX_BANS = 341,
297 <     MAX_CHANS_PER_OPER = 342,
298 <     MAX_CHANS_PER_USER = 343,
299 <     MAX_GLOBAL = 344,
300 <     MAX_IDENT = 345,
301 <     MAX_LOCAL = 346,
302 <     MAX_NICK_CHANGES = 347,
303 <     MAX_NICK_TIME = 348,
304 <     MAX_NUMBER = 349,
305 <     MAX_TARGETS = 350,
306 <     MAX_WATCH = 351,
307 <     MESSAGE_LOCALE = 352,
308 <     MIN_NONWILDCARD = 353,
309 <     MIN_NONWILDCARD_SIMPLE = 354,
310 <     MODULE = 355,
311 <     MODULES = 356,
312 <     NAME = 357,
313 <     NEED_PASSWORD = 358,
314 <     NETWORK_DESC = 359,
315 <     NETWORK_NAME = 360,
316 <     NICK = 361,
317 <     NICK_CHANGES = 362,
318 <     NO_CREATE_ON_SPLIT = 363,
319 <     NO_JOIN_ON_SPLIT = 364,
320 <     NO_OPER_FLOOD = 365,
321 <     NO_TILDE = 366,
322 <     NUMBER = 367,
323 <     NUMBER_PER_IDENT = 368,
324 <     NUMBER_PER_CIDR = 369,
325 <     NUMBER_PER_IP = 370,
326 <     NUMBER_PER_IP_GLOBAL = 371,
327 <     OPERATOR = 372,
328 <     OPERS_BYPASS_CALLERID = 373,
329 <     OPER_ONLY_UMODES = 374,
330 <     OPER_PASS_RESV = 375,
331 <     OPER_SPY_T = 376,
332 <     OPER_UMODES = 377,
333 <     JOIN_FLOOD_COUNT = 378,
334 <     JOIN_FLOOD_TIME = 379,
335 <     PACE_WAIT = 380,
336 <     PACE_WAIT_SIMPLE = 381,
337 <     PASSWORD = 382,
338 <     PATH = 383,
339 <     PING_COOKIE = 384,
340 <     PING_TIME = 385,
341 <     PING_WARNING = 386,
342 <     PORT = 387,
343 <     QSTRING = 388,
344 <     QUIET_ON_BAN = 389,
345 <     REASON = 390,
346 <     REDIRPORT = 391,
347 <     REDIRSERV = 392,
348 <     REGEX_T = 393,
349 <     REHASH = 394,
350 <     TREJECT_HOLD_TIME = 395,
351 <     REMOTE = 396,
352 <     REMOTEBAN = 397,
353 <     RESTRICT_CHANNELS = 398,
354 <     RESTRICTED = 399,
355 <     RSA_PRIVATE_KEY_FILE = 400,
356 <     RSA_PUBLIC_KEY_FILE = 401,
357 <     SSL_CERTIFICATE_FILE = 402,
358 <     SSL_DH_PARAM_FILE = 403,
359 <     T_SSL_CLIENT_METHOD = 404,
360 <     T_SSL_SERVER_METHOD = 405,
361 <     T_SSLV3 = 406,
362 <     T_TLSV1 = 407,
363 <     RESV = 408,
364 <     RESV_EXEMPT = 409,
365 <     SECONDS = 410,
366 <     MINUTES = 411,
367 <     HOURS = 412,
368 <     DAYS = 413,
369 <     WEEKS = 414,
370 <     SENDQ = 415,
371 <     SEND_PASSWORD = 416,
372 <     SERVERHIDE = 417,
373 <     SERVERINFO = 418,
374 <     IRCD_SID = 419,
375 <     TKLINE_EXPIRE_NOTICES = 420,
376 <     T_SHARED = 421,
377 <     T_CLUSTER = 422,
378 <     TYPE = 423,
379 <     SHORT_MOTD = 424,
380 <     SILENT = 425,
381 <     SPOOF = 426,
382 <     SPOOF_NOTICE = 427,
383 <     STATS_E_DISABLED = 428,
384 <     STATS_I_OPER_ONLY = 429,
385 <     STATS_K_OPER_ONLY = 430,
386 <     STATS_O_OPER_ONLY = 431,
387 <     STATS_P_OPER_ONLY = 432,
388 <     TBOOL = 433,
389 <     TMASKED = 434,
390 <     T_REJECT = 435,
391 <     TS_MAX_DELTA = 436,
392 <     TS_WARN_DELTA = 437,
393 <     TWODOTS = 438,
394 <     T_ALL = 439,
395 <     T_BOTS = 440,
396 <     T_SOFTCALLERID = 441,
397 <     T_CALLERID = 442,
398 <     T_CCONN = 443,
399 <     T_CCONN_FULL = 444,
400 <     T_SSL_CIPHER_LIST = 445,
401 <     T_CLIENT_FLOOD = 446,
402 <     T_DEAF = 447,
403 <     T_DEBUG = 448,
404 <     T_DLINE = 449,
405 <     T_DRONE = 450,
406 <     T_EXTERNAL = 451,
407 <     T_FULL = 452,
408 <     T_INVISIBLE = 453,
409 <     T_IPV4 = 454,
410 <     T_IPV6 = 455,
411 <     T_LOCOPS = 456,
412 <     T_MAX_CLIENTS = 457,
413 <     T_NCHANGE = 458,
414 <     T_OPERWALL = 459,
415 <     T_REJ = 460,
416 <     T_SERVER = 461,
417 <     T_SERVNOTICE = 462,
418 <     T_SET = 463,
419 <     T_SKILL = 464,
420 <     T_SPY = 465,
421 <     T_SSL = 466,
422 <     T_UMODES = 467,
423 <     T_UNAUTH = 468,
401 <     T_UNDLINE = 469,
402 <     T_UNLIMITED = 470,
403 <     T_UNRESV = 471,
404 <     T_UNXLINE = 472,
405 <     T_GLOBOPS = 473,
406 <     T_WALLOP = 474,
407 <     T_RESTART = 475,
408 <     T_SERVICE = 476,
409 <     T_SERVICES_NAME = 477,
410 <     THROTTLE_TIME = 478,
411 <     TOPICBURST = 479,
412 <     TRUE_NO_OPER_FLOOD = 480,
413 <     TKLINE = 481,
414 <     TXLINE = 482,
415 <     TRESV = 483,
416 <     UNKLINE = 484,
417 <     USER = 485,
418 <     USE_EGD = 486,
419 <     USE_EXCEPT = 487,
420 <     USE_INVEX = 488,
421 <     USE_KNOCK = 489,
422 <     USE_LOGGING = 490,
423 <     USE_WHOIS_ACTUALLY = 491,
424 <     VHOST = 492,
425 <     VHOST6 = 493,
426 <     XLINE = 494,
427 <     WARN = 495,
428 <     WARN_NO_NLINE = 496,
429 <     T_SIZE = 497,
430 <     T_FILE = 498
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_RESTART = 454,
410 >     T_SERVICE = 455,
411 >     T_SERVICES_NAME = 456,
412 >     THROTTLE_TIME = 457,
413 >     TRUE_NO_OPER_FLOOD = 458,
414 >     UNKLINE = 459,
415 >     USER = 460,
416 >     USE_EGD = 461,
417 >     USE_LOGGING = 462,
418 >     VHOST = 463,
419 >     VHOST6 = 464,
420 >     XLINE = 465,
421 >     WARN_NO_NLINE = 466,
422 >     T_SIZE = 467,
423 >     T_FILE = 468
424     };
425   #endif
426   /* Tokens.  */
427   #define ACCEPT_PASSWORD 258
428 < #define ACTION 259
429 < #define ADMIN 260
430 < #define AFTYPE 261
431 < #define T_ALLOW 262
432 < #define ANTI_NICK_FLOOD 263
433 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
434 < #define AUTOCONN 265
435 < #define T_BLOCK 266
436 < #define BURST_AWAY 267
437 < #define BYTES 268
438 < #define KBYTES 269
439 < #define MBYTES 270
440 < #define GBYTES 271
441 < #define TBYTES 272
442 < #define CALLER_ID_WAIT 273
443 < #define CAN_FLOOD 274
444 < #define CHANNEL 275
445 < #define CIDR_BITLEN_IPV4 276
446 < #define CIDR_BITLEN_IPV6 277
447 < #define CLASS 278
448 < #define CONNECT 279
449 < #define CONNECTFREQ 280
450 < #define DEFAULT_FLOODCOUNT 281
451 < #define DEFAULT_SPLIT_SERVER_COUNT 282
452 < #define DEFAULT_SPLIT_USER_COUNT 283
453 < #define DENY 284
454 < #define DESCRIPTION 285
455 < #define DIE 286
456 < #define DISABLE_AUTH 287
457 < #define DISABLE_FAKE_CHANNELS 288
458 < #define DISABLE_HIDDEN 289
459 < #define DISABLE_LOCAL_CHANNELS 290
460 < #define DISABLE_REMOTE_COMMANDS 291
461 < #define DOTS_IN_IDENT 292
462 < #define DURATION 293
463 < #define EGDPOOL_PATH 294
464 < #define EMAIL 295
465 < #define ENABLE 296
466 < #define ENCRYPTED 297
467 < #define EXCEED_LIMIT 298
468 < #define EXEMPT 299
469 < #define FAILED_OPER_NOTICE 300
470 < #define IRCD_FLAGS 301
471 < #define FLATTEN_LINKS 302
472 < #define GECOS 303
473 < #define GENERAL 304
474 < #define GLINE 305
475 < #define GLINE_DURATION 306
476 < #define GLINE_ENABLE 307
477 < #define GLINE_EXEMPT 308
478 < #define GLINE_TIME 309
479 < #define GLINE_REQUEST_DURATION 310
480 < #define GLINE_MIN_CIDR 311
481 < #define GLINE_MIN_CIDR6 312
482 < #define GLOBAL_KILL 313
483 < #define IRCD_AUTH 314
484 < #define NEED_IDENT 315
485 < #define HAVENT_READ_CONF 316
486 < #define HIDDEN 317
487 < #define HIDDEN_NAME 318
488 < #define HIDE_SERVER_IPS 319
489 < #define HIDE_SERVERS 320
490 < #define HIDE_SPOOF_IPS 321
491 < #define HOST 322
492 < #define HUB 323
493 < #define HUB_MASK 324
494 < #define IGNORE_BOGUS_TS 325
495 < #define INVISIBLE_ON_CONNECT 326
496 < #define IP 327
497 < #define KILL 328
498 < #define KILL_CHASE_TIME_LIMIT 329
499 < #define KLINE 330
500 < #define KLINE_EXEMPT 331
501 < #define KLINE_REASON 332
502 < #define KLINE_WITH_REASON 333
503 < #define KNOCK_DELAY 334
504 < #define KNOCK_DELAY_CHANNEL 335
505 < #define LEAF_MASK 336
506 < #define LINKS_DELAY 337
507 < #define LISTEN 338
508 < #define T_LOG 339
509 < #define MAX_ACCEPT 340
510 < #define MAX_BANS 341
511 < #define MAX_CHANS_PER_OPER 342
512 < #define MAX_CHANS_PER_USER 343
513 < #define MAX_GLOBAL 344
514 < #define MAX_IDENT 345
515 < #define MAX_LOCAL 346
516 < #define MAX_NICK_CHANGES 347
517 < #define MAX_NICK_TIME 348
518 < #define MAX_NUMBER 349
519 < #define MAX_TARGETS 350
520 < #define MAX_WATCH 351
521 < #define MESSAGE_LOCALE 352
522 < #define MIN_NONWILDCARD 353
523 < #define MIN_NONWILDCARD_SIMPLE 354
524 < #define MODULE 355
525 < #define MODULES 356
526 < #define NAME 357
527 < #define NEED_PASSWORD 358
528 < #define NETWORK_DESC 359
529 < #define NETWORK_NAME 360
530 < #define NICK 361
531 < #define NICK_CHANGES 362
532 < #define NO_CREATE_ON_SPLIT 363
533 < #define NO_JOIN_ON_SPLIT 364
534 < #define NO_OPER_FLOOD 365
535 < #define NO_TILDE 366
536 < #define NUMBER 367
537 < #define NUMBER_PER_IDENT 368
538 < #define NUMBER_PER_CIDR 369
539 < #define NUMBER_PER_IP 370
540 < #define NUMBER_PER_IP_GLOBAL 371
541 < #define OPERATOR 372
542 < #define OPERS_BYPASS_CALLERID 373
543 < #define OPER_ONLY_UMODES 374
544 < #define OPER_PASS_RESV 375
545 < #define OPER_SPY_T 376
546 < #define OPER_UMODES 377
547 < #define JOIN_FLOOD_COUNT 378
548 < #define JOIN_FLOOD_TIME 379
549 < #define PACE_WAIT 380
550 < #define PACE_WAIT_SIMPLE 381
551 < #define PASSWORD 382
552 < #define PATH 383
553 < #define PING_COOKIE 384
554 < #define PING_TIME 385
555 < #define PING_WARNING 386
556 < #define PORT 387
557 < #define QSTRING 388
558 < #define QUIET_ON_BAN 389
559 < #define REASON 390
560 < #define REDIRPORT 391
561 < #define REDIRSERV 392
562 < #define REGEX_T 393
563 < #define REHASH 394
564 < #define TREJECT_HOLD_TIME 395
565 < #define REMOTE 396
566 < #define REMOTEBAN 397
567 < #define RESTRICT_CHANNELS 398
568 < #define RESTRICTED 399
569 < #define RSA_PRIVATE_KEY_FILE 400
570 < #define RSA_PUBLIC_KEY_FILE 401
571 < #define SSL_CERTIFICATE_FILE 402
572 < #define SSL_DH_PARAM_FILE 403
573 < #define T_SSL_CLIENT_METHOD 404
574 < #define T_SSL_SERVER_METHOD 405
575 < #define T_SSLV3 406
576 < #define T_TLSV1 407
577 < #define RESV 408
578 < #define RESV_EXEMPT 409
579 < #define SECONDS 410
580 < #define MINUTES 411
581 < #define HOURS 412
582 < #define DAYS 413
583 < #define WEEKS 414
584 < #define SENDQ 415
585 < #define SEND_PASSWORD 416
586 < #define SERVERHIDE 417
587 < #define SERVERINFO 418
588 < #define IRCD_SID 419
589 < #define TKLINE_EXPIRE_NOTICES 420
590 < #define T_SHARED 421
591 < #define T_CLUSTER 422
592 < #define TYPE 423
593 < #define SHORT_MOTD 424
594 < #define SILENT 425
595 < #define SPOOF 426
596 < #define SPOOF_NOTICE 427
597 < #define STATS_E_DISABLED 428
598 < #define STATS_I_OPER_ONLY 429
599 < #define STATS_K_OPER_ONLY 430
600 < #define STATS_O_OPER_ONLY 431
601 < #define STATS_P_OPER_ONLY 432
602 < #define TBOOL 433
603 < #define TMASKED 434
604 < #define T_REJECT 435
605 < #define TS_MAX_DELTA 436
606 < #define TS_WARN_DELTA 437
607 < #define TWODOTS 438
608 < #define T_ALL 439
609 < #define T_BOTS 440
610 < #define T_SOFTCALLERID 441
611 < #define T_CALLERID 442
612 < #define T_CCONN 443
613 < #define T_CCONN_FULL 444
614 < #define T_SSL_CIPHER_LIST 445
615 < #define T_CLIENT_FLOOD 446
616 < #define T_DEAF 447
617 < #define T_DEBUG 448
618 < #define T_DLINE 449
619 < #define T_DRONE 450
620 < #define T_EXTERNAL 451
621 < #define T_FULL 452
622 < #define T_INVISIBLE 453
623 < #define T_IPV4 454
624 < #define T_IPV6 455
625 < #define T_LOCOPS 456
626 < #define T_MAX_CLIENTS 457
627 < #define T_NCHANGE 458
628 < #define T_OPERWALL 459
629 < #define T_REJ 460
630 < #define T_SERVER 461
631 < #define T_SERVNOTICE 462
632 < #define T_SET 463
633 < #define T_SKILL 464
634 < #define T_SPY 465
635 < #define T_SSL 466
636 < #define T_UMODES 467
637 < #define T_UNAUTH 468
645 < #define T_UNDLINE 469
646 < #define T_UNLIMITED 470
647 < #define T_UNRESV 471
648 < #define T_UNXLINE 472
649 < #define T_GLOBOPS 473
650 < #define T_WALLOP 474
651 < #define T_RESTART 475
652 < #define T_SERVICE 476
653 < #define T_SERVICES_NAME 477
654 < #define THROTTLE_TIME 478
655 < #define TOPICBURST 479
656 < #define TRUE_NO_OPER_FLOOD 480
657 < #define TKLINE 481
658 < #define TXLINE 482
659 < #define TRESV 483
660 < #define UNKLINE 484
661 < #define USER 485
662 < #define USE_EGD 486
663 < #define USE_EXCEPT 487
664 < #define USE_INVEX 488
665 < #define USE_KNOCK 489
666 < #define USE_LOGGING 490
667 < #define USE_WHOIS_ACTUALLY 491
668 < #define VHOST 492
669 < #define VHOST6 493
670 < #define XLINE 494
671 < #define WARN 495
672 < #define WARN_NO_NLINE 496
673 < #define T_SIZE 497
674 < #define T_FILE 498
428 > #define ADMIN 259
429 > #define AFTYPE 260
430 > #define ANTI_NICK_FLOOD 261
431 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
432 > #define AUTOCONN 263
433 > #define BYTES 264
434 > #define KBYTES 265
435 > #define MBYTES 266
436 > #define CALLER_ID_WAIT 267
437 > #define CAN_FLOOD 268
438 > #define CHANNEL 269
439 > #define CIDR_BITLEN_IPV4 270
440 > #define CIDR_BITLEN_IPV6 271
441 > #define CLASS 272
442 > #define CONNECT 273
443 > #define CONNECTFREQ 274
444 > #define DEFAULT_FLOODCOUNT 275
445 > #define DEFAULT_SPLIT_SERVER_COUNT 276
446 > #define DEFAULT_SPLIT_USER_COUNT 277
447 > #define DENY 278
448 > #define DESCRIPTION 279
449 > #define DIE 280
450 > #define DISABLE_AUTH 281
451 > #define DISABLE_FAKE_CHANNELS 282
452 > #define DISABLE_REMOTE_COMMANDS 283
453 > #define DOTS_IN_IDENT 284
454 > #define EGDPOOL_PATH 285
455 > #define EMAIL 286
456 > #define ENCRYPTED 287
457 > #define EXCEED_LIMIT 288
458 > #define EXEMPT 289
459 > #define FAILED_OPER_NOTICE 290
460 > #define IRCD_FLAGS 291
461 > #define FLATTEN_LINKS 292
462 > #define GECOS 293
463 > #define GENERAL 294
464 > #define GLINE 295
465 > #define GLINE_DURATION 296
466 > #define GLINE_ENABLE 297
467 > #define GLINE_EXEMPT 298
468 > #define GLINE_REQUEST_DURATION 299
469 > #define GLINE_MIN_CIDR 300
470 > #define GLINE_MIN_CIDR6 301
471 > #define GLOBAL_KILL 302
472 > #define IRCD_AUTH 303
473 > #define NEED_IDENT 304
474 > #define HAVENT_READ_CONF 305
475 > #define HIDDEN 306
476 > #define HIDDEN_NAME 307
477 > #define HIDE_SERVER_IPS 308
478 > #define HIDE_SERVERS 309
479 > #define HIDE_SPOOF_IPS 310
480 > #define HOST 311
481 > #define HUB 312
482 > #define HUB_MASK 313
483 > #define IGNORE_BOGUS_TS 314
484 > #define INVISIBLE_ON_CONNECT 315
485 > #define IP 316
486 > #define KILL 317
487 > #define KILL_CHASE_TIME_LIMIT 318
488 > #define KLINE 319
489 > #define KLINE_EXEMPT 320
490 > #define KNOCK_DELAY 321
491 > #define KNOCK_DELAY_CHANNEL 322
492 > #define LEAF_MASK 323
493 > #define LINKS_DELAY 324
494 > #define LISTEN 325
495 > #define T_LOG 326
496 > #define MAX_ACCEPT 327
497 > #define MAX_BANS 328
498 > #define MAX_CHANS_PER_OPER 329
499 > #define MAX_CHANS_PER_USER 330
500 > #define MAX_GLOBAL 331
501 > #define MAX_IDENT 332
502 > #define MAX_LOCAL 333
503 > #define MAX_NICK_CHANGES 334
504 > #define MAX_NICK_TIME 335
505 > #define MAX_NUMBER 336
506 > #define MAX_TARGETS 337
507 > #define MAX_WATCH 338
508 > #define MESSAGE_LOCALE 339
509 > #define MIN_NONWILDCARD 340
510 > #define MIN_NONWILDCARD_SIMPLE 341
511 > #define MODULE 342
512 > #define MODULES 343
513 > #define NAME 344
514 > #define NEED_PASSWORD 345
515 > #define NETWORK_DESC 346
516 > #define NETWORK_NAME 347
517 > #define NICK 348
518 > #define NICK_CHANGES 349
519 > #define NO_CREATE_ON_SPLIT 350
520 > #define NO_JOIN_ON_SPLIT 351
521 > #define NO_OPER_FLOOD 352
522 > #define NO_TILDE 353
523 > #define NUMBER 354
524 > #define NUMBER_PER_CIDR 355
525 > #define NUMBER_PER_IP 356
526 > #define OPERATOR 357
527 > #define OPERS_BYPASS_CALLERID 358
528 > #define OPER_ONLY_UMODES 359
529 > #define OPER_PASS_RESV 360
530 > #define OPER_SPY_T 361
531 > #define OPER_UMODES 362
532 > #define JOIN_FLOOD_COUNT 363
533 > #define JOIN_FLOOD_TIME 364
534 > #define PACE_WAIT 365
535 > #define PACE_WAIT_SIMPLE 366
536 > #define PASSWORD 367
537 > #define PATH 368
538 > #define PING_COOKIE 369
539 > #define PING_TIME 370
540 > #define PORT 371
541 > #define QSTRING 372
542 > #define QUIET_ON_BAN 373
543 > #define REASON 374
544 > #define REDIRPORT 375
545 > #define REDIRSERV 376
546 > #define REGEX_T 377
547 > #define REHASH 378
548 > #define REMOTE 379
549 > #define REMOTEBAN 380
550 > #define RESTRICT_CHANNELS 381
551 > #define RSA_PRIVATE_KEY_FILE 382
552 > #define RSA_PUBLIC_KEY_FILE 383
553 > #define SSL_CERTIFICATE_FILE 384
554 > #define SSL_DH_PARAM_FILE 385
555 > #define T_SSL_CLIENT_METHOD 386
556 > #define T_SSL_SERVER_METHOD 387
557 > #define T_SSLV3 388
558 > #define T_TLSV1 389
559 > #define RESV 390
560 > #define RESV_EXEMPT 391
561 > #define SECONDS 392
562 > #define MINUTES 393
563 > #define HOURS 394
564 > #define DAYS 395
565 > #define WEEKS 396
566 > #define SENDQ 397
567 > #define SEND_PASSWORD 398
568 > #define SERVERHIDE 399
569 > #define SERVERINFO 400
570 > #define IRCD_SID 401
571 > #define TKLINE_EXPIRE_NOTICES 402
572 > #define T_SHARED 403
573 > #define T_CLUSTER 404
574 > #define TYPE 405
575 > #define SHORT_MOTD 406
576 > #define SPOOF 407
577 > #define SPOOF_NOTICE 408
578 > #define STATS_E_DISABLED 409
579 > #define STATS_I_OPER_ONLY 410
580 > #define STATS_K_OPER_ONLY 411
581 > #define STATS_O_OPER_ONLY 412
582 > #define STATS_P_OPER_ONLY 413
583 > #define TBOOL 414
584 > #define TMASKED 415
585 > #define TS_MAX_DELTA 416
586 > #define TS_WARN_DELTA 417
587 > #define TWODOTS 418
588 > #define T_ALL 419
589 > #define T_BOTS 420
590 > #define T_SOFTCALLERID 421
591 > #define T_CALLERID 422
592 > #define T_CCONN 423
593 > #define T_CCONN_FULL 424
594 > #define T_SSL_CIPHER_LIST 425
595 > #define T_DEAF 426
596 > #define T_DEBUG 427
597 > #define T_DLINE 428
598 > #define T_EXTERNAL 429
599 > #define T_FULL 430
600 > #define T_INVISIBLE 431
601 > #define T_IPV4 432
602 > #define T_IPV6 433
603 > #define T_LOCOPS 434
604 > #define T_MAX_CLIENTS 435
605 > #define T_NCHANGE 436
606 > #define T_OPERWALL 437
607 > #define T_RECVQ 438
608 > #define T_REJ 439
609 > #define T_SERVER 440
610 > #define T_SERVNOTICE 441
611 > #define T_SET 442
612 > #define T_SKILL 443
613 > #define T_SPY 444
614 > #define T_SSL 445
615 > #define T_UMODES 446
616 > #define T_UNAUTH 447
617 > #define T_UNDLINE 448
618 > #define T_UNLIMITED 449
619 > #define T_UNRESV 450
620 > #define T_UNXLINE 451
621 > #define T_GLOBOPS 452
622 > #define T_WALLOP 453
623 > #define T_RESTART 454
624 > #define T_SERVICE 455
625 > #define T_SERVICES_NAME 456
626 > #define THROTTLE_TIME 457
627 > #define TRUE_NO_OPER_FLOOD 458
628 > #define UNKLINE 459
629 > #define USER 460
630 > #define USE_EGD 461
631 > #define USE_LOGGING 462
632 > #define VHOST 463
633 > #define VHOST6 464
634 > #define XLINE 465
635 > #define WARN_NO_NLINE 466
636 > #define T_SIZE 467
637 > #define T_FILE 468
638  
639  
640  
641   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
642   typedef union YYSTYPE
643   {
644 <
645 < /* Line 350 of yacc.c  */
683 < #line 110 "conf_parser.y"
644 > /* Line 376 of yacc.c  */
645 > #line 135 "conf_parser.y"
646  
647    int number;
648    char *string;
649  
650  
651 <
652 < /* Line 350 of yacc.c  */
691 < #line 692 "conf_parser.c"
651 > /* Line 376 of yacc.c  */
652 > #line 653 "conf_parser.c"
653   } YYSTYPE;
654   # define YYSTYPE_IS_TRIVIAL 1
655   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
# Line 711 | Line 672 | int yyparse ();
672   #endif
673   #endif /* ! YYPARSE_PARAM */
674  
675 < #endif /* !YY_Y_TAB_H  */
675 > #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
676  
677   /* Copy the second part of user declarations.  */
678  
679 <
680 < /* Line 353 of yacc.c  */
720 < #line 721 "conf_parser.c"
679 > /* Line 379 of yacc.c  */
680 > #line 681 "conf_parser.c"
681  
682   #ifdef short
683   # undef short
# Line 770 | Line 730 | typedef short int yytype_int16;
730   # if defined YYENABLE_NLS && YYENABLE_NLS
731   #  if ENABLE_NLS
732   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
733 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
733 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
734   #  endif
735   # endif
736   # ifndef YY_
737 < #  define YY_(msgid) msgid
737 > #  define YY_(Msgid) Msgid
738   # endif
739   #endif
740  
741   /* Suppress unused-variable warnings by "using" E.  */
742   #if ! defined lint || defined __GNUC__
743 < # define YYUSE(e) ((void) (e))
743 > # define YYUSE(E) ((void) (E))
744   #else
745 < # define YYUSE(e) /* empty */
745 > # define YYUSE(E) /* empty */
746   #endif
747  
748   /* Identity function, used to suppress warnings about constant conditions.  */
749   #ifndef lint
750 < # define YYID(n) (n)
750 > # define YYID(N) (N)
751   #else
752   #if (defined __STDC__ || defined __C99__FUNC__ \
753       || defined __cplusplus || defined _MSC_VER)
# Line 937 | Line 897 | union yyalloc
897   /* YYFINAL -- State number of the termination state.  */
898   #define YYFINAL  2
899   /* YYLAST -- Last index in YYTABLE.  */
900 < #define YYLAST   1259
900 > #define YYLAST   1180
901  
902   /* YYNTOKENS -- Number of terminals.  */
903 < #define YYNTOKENS  249
903 > #define YYNTOKENS  219
904   /* YYNNTS -- Number of nonterminals.  */
905 < #define YYNNTS  292
905 > #define YYNNTS  282
906   /* YYNRULES -- Number of rules.  */
907 < #define YYNRULES  647
907 > #define YYNRULES  625
908   /* YYNRULES -- Number of states.  */
909 < #define YYNSTATES  1275
909 > #define YYNSTATES  1223
910  
911   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
912   #define YYUNDEFTOK  2
913 < #define YYMAXUTOK   498
913 > #define YYMAXUTOK   468
914  
915   #define YYTRANSLATE(YYX)                                                \
916    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 962 | Line 922 | static const yytype_uint8 yytranslate[]
922         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
923         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
924         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
925 <       2,     2,     2,     2,   248,     2,     2,     2,     2,     2,
926 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   244,
927 <       2,   247,     2,     2,     2,     2,     2,     2,     2,     2,
925 >       2,     2,     2,     2,   218,     2,     2,     2,     2,     2,
926 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   214,
927 >       2,   217,     2,     2,     2,     2,     2,     2,     2,     2,
928         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
929         2,     2,     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,   246,     2,   245,     2,     2,     2,     2,
933 >       2,     2,     2,   216,     2,   215,     2,     2,     2,     2,
934         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
935         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
936         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1004 | Line 964 | static const yytype_uint8 yytranslate[]
964       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
965       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
966       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
967 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1008 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1009 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1010 <     235,   236,   237,   238,   239,   240,   241,   242,   243
967 >     205,   206,   207,   208,   209,   210,   211,   212,   213
968   };
969  
970   #if YYDEBUG
# Line 1052 | Line 1009 | static const yytype_uint16 yyprhs[] =
1009       997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1010      1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1011      1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1012 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1013 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1014 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1015 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1016 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1017 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1018 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1012 >    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1113,
1013 >    1118,  1123,  1128,  1133,  1134,  1141,  1142,  1148,  1152,  1154,
1014 >    1156,  1159,  1161,  1163,  1165,  1167,  1169,  1174,  1179,  1180,
1015 >    1187,  1190,  1192,  1194,  1196,  1198,  1203,  1208,  1214,  1217,
1016 >    1219,  1221,  1223,  1228,  1229,  1236,  1237,  1243,  1247,  1249,
1017 >    1251,  1254,  1256,  1258,  1260,  1262,  1264,  1269,  1274,  1280,
1018 >    1283,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1019      1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1020      1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1021      1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1022      1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1023 <    1383,  1385,  1387,  1389,  1391,  1393,  1395,  1397,  1399,  1404,
1024 <    1409,  1414,  1419,  1424,  1429,  1434,  1439,  1444,  1449,  1454,
1025 <    1459,  1464,  1469,  1474,  1479,  1484,  1489,  1494,  1499,  1504,
1026 <    1509,  1514,  1519,  1524,  1529,  1534,  1539,  1544,  1549,  1554,
1027 <    1559,  1564,  1569,  1574,  1579,  1584,  1589,  1594,  1599,  1604,
1028 <    1609,  1614,  1619,  1624,  1629,  1634,  1639,  1644,  1649,  1650,
1029 <    1656,  1660,  1662,  1664,  1666,  1668,  1670,  1672,  1674,  1676,
1030 <    1678,  1680,  1682,  1684,  1686,  1688,  1690,  1692,  1694,  1696,
1031 <    1698,  1700,  1702,  1703,  1709,  1713,  1715,  1717,  1719,  1721,
1032 <    1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,  1739,  1741,
1033 <    1743,  1745,  1747,  1749,  1751,  1753,  1755,  1760,  1765,  1770,
1034 <    1775,  1781,  1784,  1786,  1788,  1790,  1792,  1794,  1796,  1798,
1035 <    1800,  1802,  1804,  1806,  1808,  1810,  1812,  1814,  1816,  1818,
1036 <    1820,  1822,  1824,  1829,  1834,  1839,  1844,  1849,  1854,  1859,
1037 <    1864,  1869,  1874,  1879,  1884,  1889,  1894,  1899,  1904,  1909,
1081 <    1914,  1920,  1923,  1925,  1927,  1929,  1931,  1933,  1935,  1937,
1082 <    1939,  1941,  1946,  1951,  1956,  1961,  1966,  1971
1023 >    1383,  1385,  1390,  1395,  1400,  1405,  1410,  1415,  1420,  1425,
1024 >    1430,  1435,  1440,  1445,  1450,  1455,  1460,  1465,  1470,  1475,
1025 >    1480,  1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,
1026 >    1530,  1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,
1027 >    1580,  1585,  1590,  1595,  1600,  1605,  1610,  1615,  1616,  1622,
1028 >    1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1029 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1030 >    1666,  1668,  1669,  1675,  1679,  1681,  1683,  1685,  1687,  1689,
1031 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1032 >    1711,  1713,  1715,  1717,  1719,  1721,  1726,  1731,  1736,  1742,
1033 >    1745,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1034 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1782,  1787,  1792,
1035 >    1797,  1802,  1807,  1812,  1817,  1822,  1827,  1832,  1837,  1842,
1036 >    1847,  1853,  1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1037 >    1872,  1877,  1882,  1887,  1892,  1897
1038   };
1039  
1040   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1041   static const yytype_int16 yyrhs[] =
1042   {
1043 <     250,     0,    -1,    -1,   250,   251,    -1,   283,    -1,   289,
1044 <      -1,   303,    -1,   510,    -1,   321,    -1,   338,    -1,   352,
1045 <      -1,   261,    -1,   531,    -1,   367,    -1,   374,    -1,   378,
1046 <      -1,   388,    -1,   397,    -1,   417,    -1,   427,    -1,   433,
1047 <      -1,   447,    -1,   437,    -1,   256,    -1,     1,   244,    -1,
1048 <       1,   245,    -1,    -1,   253,    -1,   112,   252,    -1,   112,
1049 <     155,   252,    -1,   112,   156,   252,    -1,   112,   157,   252,
1050 <      -1,   112,   158,   252,    -1,   112,   159,   252,    -1,    -1,
1051 <     255,    -1,   112,   254,    -1,   112,    13,   254,    -1,   112,
1052 <      14,   254,    -1,   112,    15,   254,    -1,   101,   246,   257,
1053 <     245,   244,    -1,   257,   258,    -1,   258,    -1,   259,    -1,
1054 <     260,    -1,     1,   244,    -1,   100,   247,   133,   244,    -1,
1055 <     128,   247,   133,   244,    -1,   163,   246,   262,   245,   244,
1056 <      -1,   262,   263,    -1,   263,    -1,   274,    -1,   279,    -1,
1057 <     282,    -1,   276,    -1,   277,    -1,   278,    -1,   281,    -1,
1058 <     272,    -1,   271,    -1,   280,    -1,   275,    -1,   270,    -1,
1059 <     264,    -1,   265,    -1,   273,    -1,     1,   244,    -1,   149,
1060 <     247,   266,   244,    -1,   150,   247,   268,   244,    -1,   266,
1061 <     248,   267,    -1,   267,    -1,   151,    -1,   152,    -1,   268,
1062 <     248,   269,    -1,   269,    -1,   151,    -1,   152,    -1,   147,
1063 <     247,   133,   244,    -1,   145,   247,   133,   244,    -1,   148,
1064 <     247,   133,   244,    -1,   190,   247,   133,   244,    -1,   102,
1065 <     247,   133,   244,    -1,   164,   247,   133,   244,    -1,    30,
1066 <     247,   133,   244,    -1,   105,   247,   133,   244,    -1,   104,
1067 <     247,   133,   244,    -1,   237,   247,   133,   244,    -1,   238,
1068 <     247,   133,   244,    -1,   202,   247,   112,   244,    -1,    68,
1069 <     247,   178,   244,    -1,     5,   246,   284,   245,   244,    -1,
1070 <     284,   285,    -1,   285,    -1,   286,    -1,   288,    -1,   287,
1071 <      -1,     1,   244,    -1,   102,   247,   133,   244,    -1,    40,
1072 <     247,   133,   244,    -1,    30,   247,   133,   244,    -1,    84,
1073 <     246,   290,   245,   244,    -1,   290,   291,    -1,   291,    -1,
1074 <     292,    -1,   293,    -1,     1,   244,    -1,   235,   247,   178,
1075 <     244,    -1,    -1,   294,   243,   246,   295,   245,   244,    -1,
1076 <     295,   296,    -1,   296,    -1,   297,    -1,   299,    -1,   298,
1077 <      -1,     1,   244,    -1,   102,   247,   133,   244,    -1,   242,
1078 <     247,   255,   244,    -1,   242,   247,   215,   244,    -1,    -1,
1079 <     168,   300,   247,   301,   244,    -1,   301,   248,   302,    -1,
1080 <     302,    -1,   230,    -1,   117,    -1,    50,    -1,   194,    -1,
1081 <      75,    -1,    73,    -1,   193,    -1,    -1,   117,   304,   246,
1082 <     305,   245,   244,    -1,   305,   306,    -1,   306,    -1,   307,
1083 <      -1,   308,    -1,   309,    -1,   313,    -1,   312,    -1,   310,
1084 <      -1,   311,    -1,   317,    -1,     1,   244,    -1,   102,   247,
1085 <     133,   244,    -1,   230,   247,   133,   244,    -1,   127,   247,
1086 <     133,   244,    -1,    42,   247,   178,   244,    -1,   146,   247,
1087 <     133,   244,    -1,    23,   247,   133,   244,    -1,    -1,   212,
1088 <     314,   247,   315,   244,    -1,   315,   248,   316,    -1,   316,
1089 <      -1,   185,    -1,   188,    -1,   189,    -1,   192,    -1,   193,
1090 <      -1,   197,    -1,    62,    -1,   209,    -1,   203,    -1,   205,
1091 <      -1,   213,    -1,   210,    -1,   196,    -1,   204,    -1,   207,
1092 <      -1,   198,    -1,   219,    -1,   186,    -1,   187,    -1,   201,
1093 <      -1,    -1,    46,   318,   247,   319,   244,    -1,   319,   248,
1094 <     320,    -1,   320,    -1,    58,    -1,   141,    -1,    75,    -1,
1095 <     229,    -1,   194,    -1,   214,    -1,   239,    -1,    50,    -1,
1096 <      31,    -1,   220,    -1,   139,    -1,     5,    -1,   107,    -1,
1097 <     204,    -1,   218,    -1,   121,    -1,   142,    -1,   208,    -1,
1098 <     100,    -1,    -1,    23,   322,   246,   323,   245,   244,    -1,
1099 <     323,   324,    -1,   324,    -1,   325,    -1,   335,    -1,   336,
1100 <      -1,   326,    -1,   327,    -1,   337,    -1,   328,    -1,   329,
1101 <      -1,   330,    -1,   331,    -1,   332,    -1,   333,    -1,   334,
1102 <      -1,     1,   244,    -1,   102,   247,   133,   244,    -1,   130,
1103 <     247,   253,   244,    -1,   131,   247,   253,   244,    -1,   115,
1104 <     247,   112,   244,    -1,    25,   247,   253,   244,    -1,    94,
1105 <     247,   112,   244,    -1,    89,   247,   112,   244,    -1,    91,
1106 <     247,   112,   244,    -1,    90,   247,   112,   244,    -1,   160,
1107 <     247,   255,   244,    -1,    21,   247,   112,   244,    -1,    22,
1108 <     247,   112,   244,    -1,   114,   247,   112,   244,    -1,    -1,
1109 <      83,   339,   246,   344,   245,   244,    -1,    -1,    46,   341,
1110 <     247,   342,   244,    -1,   342,   248,   343,    -1,   343,    -1,
1111 <     211,    -1,    62,    -1,   206,    -1,   344,   345,    -1,   345,
1112 <      -1,   346,    -1,   340,    -1,   350,    -1,   351,    -1,     1,
1113 <     244,    -1,    -1,   132,   247,   348,   347,   244,    -1,   348,
1114 <     248,   349,    -1,   349,    -1,   112,    -1,   112,   183,   112,
1115 <      -1,    72,   247,   133,   244,    -1,    67,   247,   133,   244,
1116 <      -1,    -1,    59,   353,   246,   354,   245,   244,    -1,   354,
1117 <     355,    -1,   355,    -1,   356,    -1,   357,    -1,   358,    -1,
1118 <     360,    -1,   364,    -1,   365,    -1,   366,    -1,   359,    -1,
1119 <       1,   244,    -1,   230,   247,   133,   244,    -1,   127,   247,
1120 <     133,   244,    -1,    23,   247,   133,   244,    -1,    42,   247,
1121 <     178,   244,    -1,    -1,    46,   361,   247,   362,   244,    -1,
1122 <     362,   248,   363,    -1,   363,    -1,   172,    -1,    43,    -1,
1123 <      76,    -1,    60,    -1,    19,    -1,   111,    -1,    53,    -1,
1124 <     154,    -1,   103,    -1,   171,   247,   133,   244,    -1,   137,
1125 <     247,   133,   244,    -1,   136,   247,   112,   244,    -1,    -1,
1126 <     153,   368,   246,   369,   245,   244,    -1,   369,   370,    -1,
1127 <     370,    -1,   371,    -1,   372,    -1,   373,    -1,     1,   244,
1128 <      -1,   135,   247,   133,   244,    -1,    20,   247,   133,   244,
1129 <      -1,   106,   247,   133,   244,    -1,   221,   246,   375,   245,
1130 <     244,    -1,   375,   376,    -1,   376,    -1,   377,    -1,     1,
1131 <      -1,   102,   247,   133,   244,    -1,    -1,   166,   379,   246,
1132 <     380,   245,   244,    -1,   380,   381,    -1,   381,    -1,   382,
1133 <      -1,   383,    -1,   384,    -1,     1,   244,    -1,   102,   247,
1134 <     133,   244,    -1,   230,   247,   133,   244,    -1,    -1,   168,
1135 <     385,   247,   386,   244,    -1,   386,   248,   387,    -1,   387,
1136 <      -1,    75,    -1,   229,    -1,   194,    -1,   214,    -1,   239,
1137 <      -1,   217,    -1,   153,    -1,   216,    -1,   201,    -1,   184,
1138 <      -1,    -1,   167,   389,   246,   390,   245,   244,    -1,   390,
1139 <     391,    -1,   391,    -1,   392,    -1,   393,    -1,     1,   244,
1140 <      -1,   102,   247,   133,   244,    -1,    -1,   168,   394,   247,
1141 <     395,   244,    -1,   395,   248,   396,    -1,   396,    -1,    75,
1142 <      -1,   229,    -1,   194,    -1,   214,    -1,   239,    -1,   217,
1143 <      -1,   153,    -1,   216,    -1,   201,    -1,   184,    -1,    -1,
1144 <      24,   398,   246,   399,   245,   244,    -1,   399,   400,    -1,
1145 <     400,    -1,   401,    -1,   402,    -1,   403,    -1,   404,    -1,
1146 <     405,    -1,   407,    -1,   406,    -1,   416,    -1,   408,    -1,
1147 <     413,    -1,   414,    -1,   415,    -1,   412,    -1,     1,   244,
1148 <      -1,   102,   247,   133,   244,    -1,    67,   247,   133,   244,
1149 <      -1,   237,   247,   133,   244,    -1,   161,   247,   133,   244,
1150 <      -1,     3,   247,   133,   244,    -1,   132,   247,   112,   244,
1151 <      -1,     6,   247,   199,   244,    -1,     6,   247,   200,   244,
1152 <      -1,    -1,    46,   409,   247,   410,   244,    -1,   410,   248,
1153 <     411,    -1,   411,    -1,    10,    -1,    12,    -1,   224,    -1,
1154 <     211,    -1,    42,   247,   178,   244,    -1,    69,   247,   133,
1155 <     244,    -1,    81,   247,   133,   244,    -1,    23,   247,   133,
1156 <     244,    -1,   190,   247,   133,   244,    -1,    -1,    73,   418,
1157 <     246,   423,   245,   244,    -1,    -1,   168,   420,   247,   421,
1158 <     244,    -1,   421,   248,   422,    -1,   422,    -1,   138,    -1,
1159 <     423,   424,    -1,   424,    -1,   425,    -1,   426,    -1,   419,
1160 <      -1,     1,    -1,   230,   247,   133,   244,    -1,   135,   247,
1161 <     133,   244,    -1,    -1,    29,   428,   246,   429,   245,   244,
1162 <      -1,   429,   430,    -1,   430,    -1,   431,    -1,   432,    -1,
1163 <       1,    -1,    72,   247,   133,   244,    -1,   135,   247,   133,
1164 <     244,    -1,    44,   246,   434,   245,   244,    -1,   434,   435,
1165 <      -1,   435,    -1,   436,    -1,     1,    -1,    72,   247,   133,
1166 <     244,    -1,    -1,    48,   438,   246,   443,   245,   244,    -1,
1167 <      -1,   168,   440,   247,   441,   244,    -1,   441,   248,   442,
1168 <      -1,   442,    -1,   138,    -1,   443,   444,    -1,   444,    -1,
1169 <     445,    -1,   446,    -1,   439,    -1,     1,    -1,   102,   247,
1170 <     133,   244,    -1,   135,   247,   133,   244,    -1,    49,   246,
1171 <     448,   245,   244,    -1,   448,   449,    -1,   449,    -1,   460,
1172 <      -1,   461,    -1,   463,    -1,   464,    -1,   465,    -1,   466,
1173 <      -1,   467,    -1,   468,    -1,   469,    -1,   470,    -1,   459,
1174 <      -1,   472,    -1,   473,    -1,   474,    -1,   475,    -1,   490,
1175 <      -1,   477,    -1,   479,    -1,   481,    -1,   480,    -1,   484,
1176 <      -1,   478,    -1,   485,    -1,   486,    -1,   487,    -1,   488,
1177 <      -1,   489,    -1,   502,    -1,   491,    -1,   492,    -1,   493,
1178 <      -1,   498,    -1,   482,    -1,   483,    -1,   508,    -1,   506,
1179 <      -1,   507,    -1,   462,    -1,   509,    -1,   497,    -1,   471,
1180 <      -1,   495,    -1,   496,    -1,   458,    -1,   451,    -1,   452,
1181 <      -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,   457,
1182 <      -1,   476,    -1,   450,    -1,   494,    -1,     1,    -1,    96,
1183 <     247,   112,   244,    -1,    52,   247,   178,   244,    -1,    51,
1184 <     247,   253,   244,    -1,    55,   247,   253,   244,    -1,    56,
1185 <     247,   112,   244,    -1,    57,   247,   112,   244,    -1,   236,
1186 <     247,   178,   244,    -1,   140,   247,   253,   244,    -1,   165,
1187 <     247,   178,   244,    -1,    74,   247,   253,   244,    -1,    66,
1188 <     247,   178,   244,    -1,    70,   247,   178,   244,    -1,    36,
1189 <     247,   178,   244,    -1,    45,   247,   178,   244,    -1,     8,
1190 <     247,   178,   244,    -1,    93,   247,   253,   244,    -1,    92,
1191 <     247,   112,   244,    -1,    85,   247,   112,   244,    -1,     9,
1192 <     247,   253,   244,    -1,   182,   247,   253,   244,    -1,   181,
1193 <     247,   253,   244,    -1,    61,   247,   112,   244,    -1,    78,
1194 <     247,   178,   244,    -1,    77,   247,   133,   244,    -1,    71,
1195 <     247,   178,   244,    -1,   241,   247,   178,   244,    -1,   173,
1196 <     247,   178,   244,    -1,   176,   247,   178,   244,    -1,   177,
1197 <     247,   178,   244,    -1,   175,   247,   178,   244,    -1,   175,
1198 <     247,   179,   244,    -1,   174,   247,   178,   244,    -1,   174,
1199 <     247,   179,   244,    -1,   125,   247,   253,   244,    -1,    18,
1200 <     247,   253,   244,    -1,   118,   247,   178,   244,    -1,   126,
1201 <     247,   253,   244,    -1,   169,   247,   178,   244,    -1,   110,
1202 <     247,   178,   244,    -1,   225,   247,   178,   244,    -1,   120,
1203 <     247,   178,   244,    -1,    97,   247,   133,   244,    -1,    37,
1204 <     247,   112,   244,    -1,    95,   247,   112,   244,    -1,   231,
1205 <     247,   178,   244,    -1,    39,   247,   133,   244,    -1,   222,
1206 <     247,   133,   244,    -1,   129,   247,   178,   244,    -1,    32,
1207 <     247,   178,   244,    -1,   223,   247,   253,   244,    -1,    -1,
1208 <     122,   499,   247,   500,   244,    -1,   500,   248,   501,    -1,
1209 <     501,    -1,   185,    -1,   188,    -1,   189,    -1,   192,    -1,
1210 <     193,    -1,   197,    -1,    62,    -1,   209,    -1,   203,    -1,
1211 <     205,    -1,   213,    -1,   210,    -1,   196,    -1,   204,    -1,
1212 <     207,    -1,   198,    -1,   219,    -1,   186,    -1,   187,    -1,
1213 <     201,    -1,    -1,   119,   503,   247,   504,   244,    -1,   504,
1214 <     248,   505,    -1,   505,    -1,   185,    -1,   188,    -1,   189,
1215 <      -1,   192,    -1,   193,    -1,   197,    -1,   209,    -1,    62,
1216 <      -1,   203,    -1,   205,    -1,   213,    -1,   210,    -1,   196,
1217 <      -1,   204,    -1,   207,    -1,   198,    -1,   219,    -1,   186,
1218 <      -1,   187,    -1,   201,    -1,    98,   247,   112,   244,    -1,
1219 <      99,   247,   112,   244,    -1,    26,   247,   112,   244,    -1,
1220 <     191,   247,   255,   244,    -1,    20,   246,   511,   245,   244,
1221 <      -1,   511,   512,    -1,   512,    -1,   515,    -1,   516,    -1,
1222 <     517,    -1,   518,    -1,   524,    -1,   519,    -1,   520,    -1,
1223 <     521,    -1,   522,    -1,   523,    -1,   525,    -1,   526,    -1,
1224 <     527,    -1,   514,    -1,   528,    -1,   529,    -1,   530,    -1,
1225 <     513,    -1,     1,    -1,    33,   247,   178,   244,    -1,   143,
1226 <     247,   178,   244,    -1,    35,   247,   178,   244,    -1,   232,
1227 <     247,   178,   244,    -1,   233,   247,   178,   244,    -1,   234,
1228 <     247,   178,   244,    -1,    79,   247,   253,   244,    -1,    80,
1229 <     247,   253,   244,    -1,    88,   247,   112,   244,    -1,    87,
1230 <     247,   112,   244,    -1,   134,   247,   178,   244,    -1,    86,
1231 <     247,   112,   244,    -1,    28,   247,   112,   244,    -1,    27,
1232 <     247,   112,   244,    -1,   108,   247,   178,   244,    -1,   109,
1233 <     247,   178,   244,    -1,   123,   247,   112,   244,    -1,   124,
1279 <     247,   253,   244,    -1,   162,   246,   532,   245,   244,    -1,
1280 <     532,   533,    -1,   533,    -1,   534,    -1,   535,    -1,   537,
1281 <      -1,   539,    -1,   538,    -1,   536,    -1,   540,    -1,     1,
1282 <      -1,    47,   247,   178,   244,    -1,    65,   247,   178,   244,
1283 <      -1,    63,   247,   133,   244,    -1,    82,   247,   253,   244,
1284 <      -1,    62,   247,   178,   244,    -1,    34,   247,   178,   244,
1285 <      -1,    64,   247,   178,   244,    -1
1043 >     220,     0,    -1,    -1,   220,   221,    -1,   253,    -1,   259,
1044 >      -1,   273,    -1,   475,    -1,   291,    -1,   308,    -1,   322,
1045 >      -1,   231,    -1,   492,    -1,   337,    -1,   344,    -1,   348,
1046 >      -1,   358,    -1,   367,    -1,   387,    -1,   397,    -1,   403,
1047 >      -1,   417,    -1,   407,    -1,   226,    -1,     1,   214,    -1,
1048 >       1,   215,    -1,    -1,   223,    -1,    99,   222,    -1,    99,
1049 >     137,   222,    -1,    99,   138,   222,    -1,    99,   139,   222,
1050 >      -1,    99,   140,   222,    -1,    99,   141,   222,    -1,    -1,
1051 >     225,    -1,    99,   224,    -1,    99,     9,   224,    -1,    99,
1052 >      10,   224,    -1,    99,    11,   224,    -1,    88,   216,   227,
1053 >     215,   214,    -1,   227,   228,    -1,   228,    -1,   229,    -1,
1054 >     230,    -1,     1,   214,    -1,    87,   217,   117,   214,    -1,
1055 >     113,   217,   117,   214,    -1,   145,   216,   232,   215,   214,
1056 >      -1,   232,   233,    -1,   233,    -1,   244,    -1,   249,    -1,
1057 >     252,    -1,   246,    -1,   247,    -1,   248,    -1,   251,    -1,
1058 >     242,    -1,   241,    -1,   250,    -1,   245,    -1,   240,    -1,
1059 >     234,    -1,   235,    -1,   243,    -1,     1,   214,    -1,   131,
1060 >     217,   236,   214,    -1,   132,   217,   238,   214,    -1,   236,
1061 >     218,   237,    -1,   237,    -1,   133,    -1,   134,    -1,   238,
1062 >     218,   239,    -1,   239,    -1,   133,    -1,   134,    -1,   129,
1063 >     217,   117,   214,    -1,   127,   217,   117,   214,    -1,   130,
1064 >     217,   117,   214,    -1,   170,   217,   117,   214,    -1,    89,
1065 >     217,   117,   214,    -1,   146,   217,   117,   214,    -1,    24,
1066 >     217,   117,   214,    -1,    92,   217,   117,   214,    -1,    91,
1067 >     217,   117,   214,    -1,   208,   217,   117,   214,    -1,   209,
1068 >     217,   117,   214,    -1,   180,   217,    99,   214,    -1,    57,
1069 >     217,   159,   214,    -1,     4,   216,   254,   215,   214,    -1,
1070 >     254,   255,    -1,   255,    -1,   256,    -1,   258,    -1,   257,
1071 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,    31,
1072 >     217,   117,   214,    -1,    24,   217,   117,   214,    -1,    71,
1073 >     216,   260,   215,   214,    -1,   260,   261,    -1,   261,    -1,
1074 >     262,    -1,   263,    -1,     1,   214,    -1,   207,   217,   159,
1075 >     214,    -1,    -1,   264,   213,   216,   265,   215,   214,    -1,
1076 >     265,   266,    -1,   266,    -1,   267,    -1,   269,    -1,   268,
1077 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   212,
1078 >     217,   225,   214,    -1,   212,   217,   194,   214,    -1,    -1,
1079 >     150,   270,   217,   271,   214,    -1,   271,   218,   272,    -1,
1080 >     272,    -1,   205,    -1,   102,    -1,    40,    -1,   173,    -1,
1081 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   274,   216,
1082 >     275,   215,   214,    -1,   275,   276,    -1,   276,    -1,   277,
1083 >      -1,   278,    -1,   279,    -1,   283,    -1,   282,    -1,   280,
1084 >      -1,   281,    -1,   287,    -1,     1,   214,    -1,    89,   217,
1085 >     117,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1086 >     117,   214,    -1,    32,   217,   159,   214,    -1,   128,   217,
1087 >     117,   214,    -1,    17,   217,   117,   214,    -1,    -1,   191,
1088 >     284,   217,   285,   214,    -1,   285,   218,   286,    -1,   286,
1089 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1090 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1091 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1092 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1093 >      -1,    -1,    36,   288,   217,   289,   214,    -1,   289,   218,
1094 >     290,    -1,   290,    -1,    47,    -1,   124,    -1,    64,    -1,
1095 >     204,    -1,   173,    -1,   193,    -1,   210,    -1,    40,    -1,
1096 >      25,    -1,   199,    -1,   123,    -1,     4,    -1,    94,    -1,
1097 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1098 >      87,    -1,    -1,    17,   292,   216,   293,   215,   214,    -1,
1099 >     293,   294,    -1,   294,    -1,   295,    -1,   305,    -1,   306,
1100 >      -1,   296,    -1,   307,    -1,   297,    -1,   298,    -1,   299,
1101 >      -1,   300,    -1,   301,    -1,   302,    -1,   303,    -1,   304,
1102 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   115,
1103 >     217,   223,   214,    -1,   101,   217,    99,   214,    -1,    19,
1104 >     217,   223,   214,    -1,    81,   217,    99,   214,    -1,    76,
1105 >     217,    99,   214,    -1,    78,   217,    99,   214,    -1,    77,
1106 >     217,    99,   214,    -1,   142,   217,   225,   214,    -1,   183,
1107 >     217,   225,   214,    -1,    15,   217,    99,   214,    -1,    16,
1108 >     217,    99,   214,    -1,   100,   217,    99,   214,    -1,    -1,
1109 >      70,   309,   216,   314,   215,   214,    -1,    -1,    36,   311,
1110 >     217,   312,   214,    -1,   312,   218,   313,    -1,   313,    -1,
1111 >     190,    -1,    51,    -1,   185,    -1,   314,   315,    -1,   315,
1112 >      -1,   316,    -1,   310,    -1,   320,    -1,   321,    -1,     1,
1113 >     214,    -1,    -1,   116,   217,   318,   317,   214,    -1,   318,
1114 >     218,   319,    -1,   319,    -1,    99,    -1,    99,   163,    99,
1115 >      -1,    61,   217,   117,   214,    -1,    56,   217,   117,   214,
1116 >      -1,    -1,    48,   323,   216,   324,   215,   214,    -1,   324,
1117 >     325,    -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,
1118 >     330,    -1,   334,    -1,   335,    -1,   336,    -1,   329,    -1,
1119 >       1,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1120 >     117,   214,    -1,    17,   217,   117,   214,    -1,    32,   217,
1121 >     159,   214,    -1,    -1,    36,   331,   217,   332,   214,    -1,
1122 >     332,   218,   333,    -1,   333,    -1,   153,    -1,    33,    -1,
1123 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1124 >     136,    -1,    90,    -1,   152,   217,   117,   214,    -1,   121,
1125 >     217,   117,   214,    -1,   120,   217,    99,   214,    -1,    -1,
1126 >     135,   338,   216,   339,   215,   214,    -1,   339,   340,    -1,
1127 >     340,    -1,   341,    -1,   342,    -1,   343,    -1,     1,   214,
1128 >      -1,   119,   217,   117,   214,    -1,    14,   217,   117,   214,
1129 >      -1,    93,   217,   117,   214,    -1,   200,   216,   345,   215,
1130 >     214,    -1,   345,   346,    -1,   346,    -1,   347,    -1,     1,
1131 >      -1,    89,   217,   117,   214,    -1,    -1,   148,   349,   216,
1132 >     350,   215,   214,    -1,   350,   351,    -1,   351,    -1,   352,
1133 >      -1,   353,    -1,   354,    -1,     1,   214,    -1,    89,   217,
1134 >     117,   214,    -1,   205,   217,   117,   214,    -1,    -1,   150,
1135 >     355,   217,   356,   214,    -1,   356,   218,   357,    -1,   357,
1136 >      -1,    64,    -1,   204,    -1,   173,    -1,   193,    -1,   210,
1137 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1138 >      -1,    -1,   149,   359,   216,   360,   215,   214,    -1,   360,
1139 >     361,    -1,   361,    -1,   362,    -1,   363,    -1,     1,   214,
1140 >      -1,    89,   217,   117,   214,    -1,    -1,   150,   364,   217,
1141 >     365,   214,    -1,   365,   218,   366,    -1,   366,    -1,    64,
1142 >      -1,   204,    -1,   173,    -1,   193,    -1,   210,    -1,   196,
1143 >      -1,   135,    -1,   195,    -1,   179,    -1,   164,    -1,    -1,
1144 >      18,   368,   216,   369,   215,   214,    -1,   369,   370,    -1,
1145 >     370,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1146 >     375,    -1,   377,    -1,   376,    -1,   386,    -1,   378,    -1,
1147 >     383,    -1,   384,    -1,   385,    -1,   382,    -1,     1,   214,
1148 >      -1,    89,   217,   117,   214,    -1,    56,   217,   117,   214,
1149 >      -1,   208,   217,   117,   214,    -1,   143,   217,   117,   214,
1150 >      -1,     3,   217,   117,   214,    -1,   116,   217,    99,   214,
1151 >      -1,     5,   217,   177,   214,    -1,     5,   217,   178,   214,
1152 >      -1,    -1,    36,   379,   217,   380,   214,    -1,   380,   218,
1153 >     381,    -1,   381,    -1,     8,    -1,   190,    -1,    32,   217,
1154 >     159,   214,    -1,    58,   217,   117,   214,    -1,    68,   217,
1155 >     117,   214,    -1,    17,   217,   117,   214,    -1,   170,   217,
1156 >     117,   214,    -1,    -1,    62,   388,   216,   393,   215,   214,
1157 >      -1,    -1,   150,   390,   217,   391,   214,    -1,   391,   218,
1158 >     392,    -1,   392,    -1,   122,    -1,   393,   394,    -1,   394,
1159 >      -1,   395,    -1,   396,    -1,   389,    -1,     1,    -1,   205,
1160 >     217,   117,   214,    -1,   119,   217,   117,   214,    -1,    -1,
1161 >      23,   398,   216,   399,   215,   214,    -1,   399,   400,    -1,
1162 >     400,    -1,   401,    -1,   402,    -1,     1,    -1,    61,   217,
1163 >     117,   214,    -1,   119,   217,   117,   214,    -1,    34,   216,
1164 >     404,   215,   214,    -1,   404,   405,    -1,   405,    -1,   406,
1165 >      -1,     1,    -1,    61,   217,   117,   214,    -1,    -1,    38,
1166 >     408,   216,   413,   215,   214,    -1,    -1,   150,   410,   217,
1167 >     411,   214,    -1,   411,   218,   412,    -1,   412,    -1,   122,
1168 >      -1,   413,   414,    -1,   414,    -1,   415,    -1,   416,    -1,
1169 >     409,    -1,     1,    -1,    89,   217,   117,   214,    -1,   119,
1170 >     217,   117,   214,    -1,    39,   216,   418,   215,   214,    -1,
1171 >     418,   419,    -1,   419,    -1,   428,    -1,   429,    -1,   431,
1172 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1173 >      -1,   437,    -1,   438,    -1,   427,    -1,   440,    -1,   441,
1174 >      -1,   456,    -1,   443,    -1,   445,    -1,   447,    -1,   446,
1175 >      -1,   450,    -1,   444,    -1,   451,    -1,   452,    -1,   453,
1176 >      -1,   454,    -1,   455,    -1,   468,    -1,   457,    -1,   458,
1177 >      -1,   459,    -1,   464,    -1,   448,    -1,   449,    -1,   474,
1178 >      -1,   472,    -1,   473,    -1,   430,    -1,   463,    -1,   439,
1179 >      -1,   461,    -1,   462,    -1,   426,    -1,   421,    -1,   422,
1180 >      -1,   423,    -1,   424,    -1,   425,    -1,   442,    -1,   420,
1181 >      -1,   460,    -1,     1,    -1,    83,   217,    99,   214,    -1,
1182 >      42,   217,   159,   214,    -1,    41,   217,   223,   214,    -1,
1183 >      44,   217,   223,   214,    -1,    45,   217,    99,   214,    -1,
1184 >      46,   217,    99,   214,    -1,   147,   217,   159,   214,    -1,
1185 >      63,   217,   223,   214,    -1,    55,   217,   159,   214,    -1,
1186 >      59,   217,   159,   214,    -1,    28,   217,   159,   214,    -1,
1187 >      35,   217,   159,   214,    -1,     6,   217,   159,   214,    -1,
1188 >      80,   217,   223,   214,    -1,    79,   217,    99,   214,    -1,
1189 >      72,   217,    99,   214,    -1,     7,   217,   223,   214,    -1,
1190 >     162,   217,   223,   214,    -1,   161,   217,   223,   214,    -1,
1191 >      50,   217,    99,   214,    -1,    60,   217,   159,   214,    -1,
1192 >     211,   217,   159,   214,    -1,   154,   217,   159,   214,    -1,
1193 >     157,   217,   159,   214,    -1,   158,   217,   159,   214,    -1,
1194 >     156,   217,   159,   214,    -1,   156,   217,   160,   214,    -1,
1195 >     155,   217,   159,   214,    -1,   155,   217,   160,   214,    -1,
1196 >     110,   217,   223,   214,    -1,    12,   217,   223,   214,    -1,
1197 >     103,   217,   159,   214,    -1,   111,   217,   223,   214,    -1,
1198 >     151,   217,   159,   214,    -1,    97,   217,   159,   214,    -1,
1199 >     203,   217,   159,   214,    -1,   105,   217,   159,   214,    -1,
1200 >      84,   217,   117,   214,    -1,    29,   217,    99,   214,    -1,
1201 >      82,   217,    99,   214,    -1,   206,   217,   159,   214,    -1,
1202 >      30,   217,   117,   214,    -1,   201,   217,   117,   214,    -1,
1203 >     114,   217,   159,   214,    -1,    26,   217,   159,   214,    -1,
1204 >     202,   217,   223,   214,    -1,    -1,   107,   465,   217,   466,
1205 >     214,    -1,   466,   218,   467,    -1,   467,    -1,   165,    -1,
1206 >     168,    -1,   169,    -1,   171,    -1,   172,    -1,   175,    -1,
1207 >      51,    -1,   188,    -1,   181,    -1,   184,    -1,   192,    -1,
1208 >     189,    -1,   174,    -1,   182,    -1,   186,    -1,   176,    -1,
1209 >     198,    -1,   166,    -1,   167,    -1,   179,    -1,    -1,   104,
1210 >     469,   217,   470,   214,    -1,   470,   218,   471,    -1,   471,
1211 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1212 >      -1,   175,    -1,   188,    -1,    51,    -1,   181,    -1,   184,
1213 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1214 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1215 >      -1,    85,   217,    99,   214,    -1,    86,   217,    99,   214,
1216 >      -1,    20,   217,    99,   214,    -1,    14,   216,   476,   215,
1217 >     214,    -1,   476,   477,    -1,   477,    -1,   485,    -1,   480,
1218 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   486,
1219 >      -1,   487,    -1,   488,    -1,   479,    -1,   489,    -1,   490,
1220 >      -1,   491,    -1,   478,    -1,     1,    -1,    27,   217,   159,
1221 >     214,    -1,   126,   217,   159,   214,    -1,    66,   217,   223,
1222 >     214,    -1,    67,   217,   223,   214,    -1,    75,   217,    99,
1223 >     214,    -1,    74,   217,    99,   214,    -1,   118,   217,   159,
1224 >     214,    -1,    73,   217,    99,   214,    -1,    22,   217,    99,
1225 >     214,    -1,    21,   217,    99,   214,    -1,    95,   217,   159,
1226 >     214,    -1,    96,   217,   159,   214,    -1,   108,   217,    99,
1227 >     214,    -1,   109,   217,   223,   214,    -1,   144,   216,   493,
1228 >     215,   214,    -1,   493,   494,    -1,   494,    -1,   495,    -1,
1229 >     496,    -1,   498,    -1,   499,    -1,   497,    -1,   500,    -1,
1230 >       1,    -1,    37,   217,   159,   214,    -1,    54,   217,   159,
1231 >     214,    -1,    52,   217,   117,   214,    -1,    69,   217,   223,
1232 >     214,    -1,    51,   217,   159,   214,    -1,    53,   217,   159,
1233 >     214,    -1
1234   };
1235  
1236   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1237   static const yytype_uint16 yyrline[] =
1238   {
1239 <       0,   357,   357,   358,   361,   362,   363,   364,   365,   366,
1240 <     367,   368,   369,   370,   371,   372,   373,   374,   375,   376,
1241 <     377,   378,   379,   380,   381,   382,   386,   386,   387,   391,
1242 <     395,   399,   403,   407,   413,   413,   414,   415,   416,   417,
1243 <     424,   427,   427,   428,   428,   428,   430,   436,   443,   445,
1244 <     445,   446,   446,   447,   447,   448,   448,   449,   449,   450,
1245 <     450,   451,   451,   452,   452,   453,   454,   457,   458,   460,
1246 <     460,   461,   467,   475,   475,   476,   482,   490,   529,   588,
1247 <     616,   624,   639,   654,   663,   677,   686,   714,   744,   767,
1248 <     776,   778,   778,   779,   779,   780,   780,   782,   791,   800,
1249 <     812,   813,   813,   815,   815,   816,   818,   825,   825,   835,
1250 <     836,   838,   838,   839,   839,   841,   846,   849,   855,   854,
1251 <     860,   860,   861,   865,   869,   873,   877,   881,   885,   896,
1252 <     895,   993,   993,   994,   994,   994,   995,   995,   995,   996,
1253 <     996,   996,   998,  1007,  1044,  1056,  1067,  1109,  1119,  1118,
1254 <    1124,  1124,  1125,  1129,  1133,  1137,  1141,  1145,  1149,  1153,
1255 <    1157,  1161,  1165,  1169,  1173,  1177,  1181,  1185,  1189,  1193,
1256 <    1197,  1201,  1208,  1207,  1213,  1213,  1214,  1218,  1222,  1226,
1257 <    1230,  1234,  1238,  1242,  1246,  1250,  1254,  1258,  1262,  1266,
1258 <    1270,  1274,  1278,  1282,  1286,  1297,  1296,  1346,  1346,  1347,
1259 <    1348,  1348,  1349,  1350,  1351,  1352,  1353,  1354,  1355,  1356,
1260 <    1357,  1358,  1359,  1361,  1370,  1376,  1382,  1388,  1394,  1400,
1261 <    1406,  1412,  1418,  1424,  1430,  1436,  1446,  1445,  1462,  1461,
1262 <    1466,  1466,  1467,  1471,  1475,  1483,  1483,  1484,  1484,  1484,
1263 <    1484,  1484,  1486,  1486,  1488,  1488,  1490,  1504,  1524,  1533,
1264 <    1546,  1545,  1614,  1614,  1615,  1615,  1615,  1615,  1616,  1616,
1265 <    1616,  1617,  1617,  1619,  1654,  1667,  1676,  1688,  1687,  1691,
1266 <    1691,  1692,  1696,  1700,  1704,  1708,  1712,  1716,  1720,  1724,
1267 <    1731,  1750,  1760,  1774,  1773,  1789,  1789,  1790,  1790,  1790,
1268 <    1790,  1792,  1801,  1816,  1829,  1831,  1831,  1832,  1832,  1834,
1269 <    1850,  1849,  1865,  1865,  1866,  1866,  1866,  1866,  1868,  1877,
1270 <    1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,  1926,
1271 <    1930,  1934,  1938,  1942,  1952,  1951,  1968,  1968,  1969,  1969,
1272 <    1969,  1971,  1978,  1977,  1983,  1983,  1984,  1988,  1992,  1996,
1273 <    2000,  2004,  2008,  2012,  2016,  2020,  2030,  2029,  2080,  2080,
1274 <    2081,  2081,  2081,  2082,  2082,  2083,  2083,  2083,  2084,  2084,
1275 <    2084,  2085,  2085,  2086,  2088,  2097,  2106,  2132,  2150,  2168,
1276 <    2174,  2178,  2187,  2186,  2190,  2190,  2191,  2195,  2199,  2203,
1277 <    2209,  2220,  2231,  2242,  2251,  2270,  2269,  2335,  2334,  2338,
1278 <    2338,  2339,  2345,  2345,  2346,  2346,  2346,  2346,  2348,  2367,
1279 <    2377,  2376,  2401,  2401,  2402,  2402,  2402,  2404,  2410,  2419,
1280 <    2421,  2421,  2422,  2422,  2424,  2443,  2442,  2490,  2489,  2493,
1281 <    2493,  2494,  2500,  2500,  2501,  2501,  2501,  2501,  2503,  2509,
1282 <    2518,  2521,  2521,  2522,  2522,  2523,  2523,  2524,  2524,  2525,
1283 <    2525,  2526,  2526,  2527,  2527,  2528,  2528,  2529,  2529,  2530,
1284 <    2530,  2531,  2531,  2532,  2532,  2533,  2533,  2534,  2534,  2535,
1285 <    2536,  2536,  2537,  2537,  2538,  2538,  2539,  2539,  2540,  2540,
1286 <    2541,  2542,  2543,  2543,  2544,  2545,  2546,  2546,  2547,  2547,
1287 <    2548,  2549,  2549,  2550,  2550,  2551,  2551,  2552,  2555,  2560,
1288 <    2566,  2572,  2578,  2583,  2588,  2593,  2598,  2603,  2608,  2613,
1289 <    2618,  2623,  2628,  2633,  2638,  2643,  2648,  2653,  2658,  2664,
1290 <    2675,  2680,  2689,  2694,  2699,  2704,  2709,  2714,  2717,  2722,
1291 <    2725,  2730,  2735,  2740,  2745,  2750,  2755,  2760,  2765,  2770,
1292 <    2781,  2786,  2791,  2796,  2805,  2814,  2819,  2824,  2830,  2829,
1293 <    2834,  2834,  2835,  2838,  2841,  2844,  2847,  2850,  2853,  2856,
1294 <    2859,  2862,  2865,  2868,  2871,  2874,  2877,  2880,  2883,  2886,
1295 <    2889,  2892,  2898,  2897,  2902,  2902,  2903,  2906,  2909,  2912,
1296 <    2915,  2918,  2921,  2924,  2927,  2930,  2933,  2936,  2939,  2942,
1297 <    2945,  2948,  2951,  2954,  2957,  2960,  2965,  2970,  2975,  2980,
1298 <    2989,  2992,  2992,  2993,  2993,  2994,  2994,  2994,  2995,  2995,
1299 <    2996,  2996,  2997,  2997,  2998,  2999,  2999,  3000,  3001,  3001,
1300 <    3002,  3002,  3004,  3009,  3014,  3019,  3024,  3029,  3034,  3039,
1301 <    3044,  3049,  3054,  3059,  3064,  3069,  3074,  3079,  3084,  3089,
1354 <    3097,  3100,  3100,  3101,  3101,  3102,  3103,  3104,  3104,  3105,
1355 <    3106,  3108,  3114,  3120,  3129,  3143,  3149,  3155
1239 >       0,   354,   354,   355,   358,   359,   360,   361,   362,   363,
1240 >     364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
1241 >     374,   375,   376,   377,   378,   379,   383,   383,   384,   388,
1242 >     392,   396,   400,   404,   410,   410,   411,   412,   413,   414,
1243 >     421,   424,   424,   425,   425,   425,   427,   433,   440,   442,
1244 >     442,   443,   443,   444,   444,   445,   445,   446,   446,   447,
1245 >     447,   448,   448,   449,   449,   450,   451,   454,   455,   457,
1246 >     457,   458,   464,   472,   472,   473,   479,   487,   526,   585,
1247 >     613,   621,   636,   651,   660,   674,   683,   711,   741,   764,
1248 >     773,   775,   775,   776,   776,   777,   777,   779,   788,   797,
1249 >     809,   810,   810,   812,   812,   813,   815,   822,   822,   835,
1250 >     836,   838,   838,   839,   839,   841,   849,   852,   858,   857,
1251 >     863,   863,   864,   868,   872,   876,   880,   884,   888,   899,
1252 >     898,   978,   978,   979,   979,   979,   980,   980,   980,   981,
1253 >     981,   981,   983,   989,   995,  1001,  1012,  1018,  1025,  1024,
1254 >    1030,  1030,  1031,  1035,  1039,  1043,  1047,  1051,  1055,  1059,
1255 >    1063,  1067,  1071,  1075,  1079,  1083,  1087,  1091,  1095,  1099,
1256 >    1103,  1107,  1114,  1113,  1119,  1119,  1120,  1124,  1128,  1132,
1257 >    1136,  1140,  1144,  1148,  1152,  1156,  1160,  1164,  1168,  1172,
1258 >    1176,  1180,  1184,  1188,  1192,  1203,  1202,  1253,  1253,  1254,
1259 >    1255,  1255,  1256,  1257,  1258,  1259,  1260,  1261,  1262,  1263,
1260 >    1264,  1264,  1265,  1267,  1273,  1279,  1285,  1291,  1297,  1303,
1261 >    1309,  1315,  1321,  1328,  1334,  1340,  1350,  1349,  1356,  1355,
1262 >    1360,  1360,  1361,  1365,  1369,  1375,  1375,  1376,  1376,  1376,
1263 >    1376,  1376,  1378,  1378,  1380,  1380,  1382,  1396,  1416,  1422,
1264 >    1432,  1431,  1473,  1473,  1474,  1474,  1474,  1474,  1475,  1475,
1265 >    1475,  1476,  1476,  1478,  1484,  1490,  1496,  1508,  1507,  1513,
1266 >    1513,  1514,  1518,  1522,  1526,  1530,  1534,  1538,  1542,  1546,
1267 >    1552,  1566,  1575,  1589,  1588,  1597,  1597,  1598,  1598,  1598,
1268 >    1598,  1600,  1606,  1615,  1624,  1626,  1626,  1627,  1627,  1629,
1269 >    1645,  1644,  1669,  1669,  1670,  1670,  1670,  1670,  1672,  1678,
1270 >    1698,  1697,  1703,  1703,  1704,  1708,  1712,  1716,  1720,  1724,
1271 >    1728,  1732,  1736,  1740,  1750,  1749,  1770,  1770,  1771,  1771,
1272 >    1771,  1773,  1780,  1779,  1785,  1785,  1786,  1790,  1794,  1798,
1273 >    1802,  1806,  1810,  1814,  1818,  1822,  1832,  1831,  1897,  1897,
1274 >    1898,  1898,  1898,  1899,  1899,  1900,  1900,  1900,  1901,  1901,
1275 >    1901,  1902,  1902,  1903,  1905,  1911,  1917,  1923,  1936,  1949,
1276 >    1955,  1959,  1968,  1967,  1972,  1972,  1973,  1977,  1983,  1994,
1277 >    2000,  2006,  2012,  2028,  2027,  2090,  2089,  2095,  2095,  2096,
1278 >    2102,  2102,  2103,  2103,  2103,  2103,  2105,  2125,  2135,  2134,
1279 >    2161,  2161,  2162,  2162,  2162,  2164,  2170,  2179,  2181,  2181,
1280 >    2182,  2182,  2184,  2202,  2201,  2247,  2246,  2252,  2252,  2253,
1281 >    2259,  2259,  2260,  2260,  2260,  2260,  2262,  2268,  2277,  2280,
1282 >    2280,  2281,  2281,  2282,  2282,  2283,  2283,  2284,  2284,  2285,
1283 >    2285,  2286,  2287,  2288,  2288,  2289,  2289,  2290,  2290,  2291,
1284 >    2291,  2292,  2292,  2293,  2293,  2294,  2295,  2295,  2296,  2296,
1285 >    2297,  2297,  2298,  2298,  2299,  2299,  2300,  2301,  2301,  2302,
1286 >    2303,  2304,  2304,  2305,  2305,  2306,  2307,  2308,  2309,  2309,
1287 >    2310,  2313,  2318,  2324,  2330,  2336,  2341,  2346,  2351,  2356,
1288 >    2361,  2366,  2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,
1289 >    2412,  2423,  2428,  2433,  2438,  2443,  2448,  2451,  2456,  2459,
1290 >    2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,  2504,  2515,
1291 >    2520,  2525,  2530,  2539,  2548,  2553,  2558,  2564,  2563,  2568,
1292 >    2568,  2569,  2572,  2575,  2578,  2581,  2584,  2587,  2590,  2593,
1293 >    2596,  2599,  2602,  2605,  2608,  2611,  2614,  2617,  2620,  2623,
1294 >    2626,  2632,  2631,  2636,  2636,  2637,  2640,  2643,  2646,  2649,
1295 >    2652,  2655,  2658,  2661,  2664,  2667,  2670,  2673,  2676,  2679,
1296 >    2682,  2685,  2688,  2691,  2694,  2699,  2704,  2709,  2718,  2721,
1297 >    2721,  2722,  2723,  2723,  2724,  2724,  2725,  2725,  2726,  2727,
1298 >    2727,  2728,  2729,  2729,  2730,  2730,  2732,  2737,  2742,  2747,
1299 >    2752,  2757,  2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,
1300 >    2805,  2808,  2808,  2809,  2809,  2810,  2811,  2811,  2812,  2813,
1301 >    2815,  2821,  2827,  2836,  2850,  2856
1302   };
1303   #endif
1304  
# Line 1361 | Line 1307 | static const yytype_uint16 yyrline[] =
1307     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1308   static const char *const yytname[] =
1309   {
1310 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1311 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1312 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BYTES", "KBYTES", "MBYTES",
1367 <  "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1310 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1311 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1312 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1313    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1314    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1315    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1316 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1317 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1373 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1316 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1317 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1318    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1319 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_TIME",
1319 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1320    "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1321    "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1322    "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1323    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1324    "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1325 <  "KLINE_REASON", "KLINE_WITH_REASON", "KNOCK_DELAY",
1326 <  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "T_LOG",
1327 <  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1328 <  "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL", "MAX_NICK_CHANGES",
1329 <  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_WATCH",
1330 <  "MESSAGE_LOCALE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE",
1331 <  "MODULES", "NAME", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1332 <  "NICK", "NICK_CHANGES", "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT",
1333 <  "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_IDENT",
1390 <  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "NUMBER_PER_IP_GLOBAL", "OPERATOR",
1325 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1326 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1327 >  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1328 >  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1329 >  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1330 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1331 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1332 >  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1333 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1334    "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1335    "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1336    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1337 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1338 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "TREJECT_HOLD_TIME",
1339 <  "REMOTE", "REMOTEBAN", "RESTRICT_CHANNELS", "RESTRICTED",
1340 <  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE",
1341 <  "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1342 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1343 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1344 <  "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED",
1402 <  "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF", "SPOOF_NOTICE",
1337 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1338 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1339 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1340 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1341 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1342 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1343 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1344 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1345    "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1346 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT",
1346 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1347    "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1348    "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1349 <  "T_SSL_CIPHER_LIST", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE",
1350 <  "T_DRONE", "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6",
1351 <  "T_LOCOPS", "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ",
1352 <  "T_SERVER", "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL",
1353 <  "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1354 <  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE",
1355 <  "T_SERVICES_NAME", "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD",
1356 <  "TKLINE", "TXLINE", "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT",
1357 <  "USE_INVEX", "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST",
1358 <  "VHOST6", "XLINE", "WARN", "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'",
1359 <  "'}'", "'{'", "'='", "','", "$accept", "conf", "conf_item", "timespec_",
1360 <  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1361 <  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1420 <  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1349 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1350 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1351 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1352 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1353 >  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1354 >  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1355 >  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1356 >  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1357 >  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1358 >  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1359 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1360 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1361 >  "serverinfo_item", "serverinfo_ssl_client_method",
1362    "serverinfo_ssl_server_method", "client_method_types",
1363    "client_method_type_item", "server_method_types",
1364    "server_method_type_item", "serverinfo_ssl_certificate_file",
# Line 1436 | Line 1377 | static const char *const yytname[] =
1377    "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1378    "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1379    "class_entry", "$@6", "class_items", "class_item", "class_name",
1380 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1381 <  "class_connectfreq", "class_max_number", "class_max_global",
1382 <  "class_max_local", "class_max_ident", "class_sendq",
1380 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1381 >  "class_max_number", "class_max_global", "class_max_local",
1382 >  "class_max_ident", "class_sendq", "class_recvq",
1383    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1384    "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1385    "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
# Line 1468 | Line 1409 | static const char *const yytname[] =
1409    "general_entry", "general_items", "general_item", "general_max_watch",
1410    "general_gline_enable", "general_gline_duration",
1411    "general_gline_request_duration", "general_gline_min_cidr",
1412 <  "general_gline_min_cidr6", "general_use_whois_actually",
1472 <  "general_reject_hold_time", "general_tkline_expire_notices",
1412 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1413    "general_kill_chase_time_limit", "general_hide_spoof_ips",
1414    "general_ignore_bogus_ts", "general_disable_remote_commands",
1415    "general_failed_oper_notice", "general_anti_nick_flood",
1416    "general_max_nick_time", "general_max_nick_changes",
1417    "general_max_accept", "general_anti_spam_exit_message_time",
1418    "general_ts_warn_delta", "general_ts_max_delta",
1419 <  "general_havent_read_conf", "general_kline_with_reason",
1480 <  "general_kline_reason", "general_invisible_on_connect",
1419 >  "general_havent_read_conf", "general_invisible_on_connect",
1420    "general_warn_no_nline", "general_stats_e_disabled",
1421    "general_stats_o_oper_only", "general_stats_P_oper_only",
1422    "general_stats_k_oper_only", "general_stats_i_oper_only",
# Line 1491 | Line 1430 | static const char *const yytname[] =
1430    "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1431    "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1432    "general_min_nonwildcard", "general_min_nonwildcard_simple",
1433 <  "general_default_floodcount", "general_client_flood", "channel_entry",
1434 <  "channel_items", "channel_item", "channel_disable_fake_channels",
1435 <  "channel_restrict_channels", "channel_disable_local_channels",
1436 <  "channel_use_except", "channel_use_invex", "channel_use_knock",
1437 <  "channel_knock_delay", "channel_knock_delay_channel",
1499 <  "channel_max_chans_per_user", "channel_max_chans_per_oper",
1500 <  "channel_quiet_on_ban", "channel_max_bans",
1433 >  "general_default_floodcount", "channel_entry", "channel_items",
1434 >  "channel_item", "channel_disable_fake_channels",
1435 >  "channel_restrict_channels", "channel_knock_delay",
1436 >  "channel_knock_delay_channel", "channel_max_chans_per_user",
1437 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1438    "channel_default_split_user_count", "channel_default_split_server_count",
1439    "channel_no_create_on_split", "channel_no_join_on_split",
1440    "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1441    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1442    "serverhide_hide_servers", "serverhide_hidden_name",
1443    "serverhide_links_delay", "serverhide_hidden",
1444 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", YY_NULL
1444 >  "serverhide_hide_server_ips", YY_NULL
1445   };
1446   #endif
1447  
# Line 1534 | Line 1471 | static const yytype_uint16 yytoknum[] =
1471       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1472       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1473       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1474 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1538 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1539 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1540 <     495,   496,   497,   498,    59,   125,   123,    61,    44
1474 >     465,   466,   467,   468,    59,   125,   123,    61,    44
1475   };
1476   # endif
1477  
1478   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1479   static const yytype_uint16 yyr1[] =
1480   {
1481 <       0,   249,   250,   250,   251,   251,   251,   251,   251,   251,
1482 <     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
1483 <     251,   251,   251,   251,   251,   251,   252,   252,   253,   253,
1484 <     253,   253,   253,   253,   254,   254,   255,   255,   255,   255,
1485 <     256,   257,   257,   258,   258,   258,   259,   260,   261,   262,
1486 <     262,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1487 <     263,   263,   263,   263,   263,   263,   263,   264,   265,   266,
1488 <     266,   267,   267,   268,   268,   269,   269,   270,   271,   272,
1489 <     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
1490 <     283,   284,   284,   285,   285,   285,   285,   286,   287,   288,
1491 <     289,   290,   290,   291,   291,   291,   292,   294,   293,   295,
1492 <     295,   296,   296,   296,   296,   297,   298,   298,   300,   299,
1493 <     301,   301,   302,   302,   302,   302,   302,   302,   302,   304,
1494 <     303,   305,   305,   306,   306,   306,   306,   306,   306,   306,
1495 <     306,   306,   307,   308,   309,   310,   311,   312,   314,   313,
1496 <     315,   315,   316,   316,   316,   316,   316,   316,   316,   316,
1497 <     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
1498 <     316,   316,   318,   317,   319,   319,   320,   320,   320,   320,
1499 <     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1500 <     320,   320,   320,   320,   320,   322,   321,   323,   323,   324,
1501 <     324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
1502 <     324,   324,   324,   325,   326,   327,   328,   329,   330,   331,
1503 <     332,   333,   334,   335,   336,   337,   339,   338,   341,   340,
1504 <     342,   342,   343,   343,   343,   344,   344,   345,   345,   345,
1505 <     345,   345,   347,   346,   348,   348,   349,   349,   350,   351,
1506 <     353,   352,   354,   354,   355,   355,   355,   355,   355,   355,
1507 <     355,   355,   355,   356,   357,   358,   359,   361,   360,   362,
1508 <     362,   363,   363,   363,   363,   363,   363,   363,   363,   363,
1509 <     364,   365,   366,   368,   367,   369,   369,   370,   370,   370,
1510 <     370,   371,   372,   373,   374,   375,   375,   376,   376,   377,
1511 <     379,   378,   380,   380,   381,   381,   381,   381,   382,   383,
1512 <     385,   384,   386,   386,   387,   387,   387,   387,   387,   387,
1513 <     387,   387,   387,   387,   389,   388,   390,   390,   391,   391,
1514 <     391,   392,   394,   393,   395,   395,   396,   396,   396,   396,
1515 <     396,   396,   396,   396,   396,   396,   398,   397,   399,   399,
1516 <     400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
1517 <     400,   400,   400,   400,   401,   402,   403,   404,   405,   406,
1518 <     407,   407,   409,   408,   410,   410,   411,   411,   411,   411,
1519 <     412,   413,   414,   415,   416,   418,   417,   420,   419,   421,
1520 <     421,   422,   423,   423,   424,   424,   424,   424,   425,   426,
1521 <     428,   427,   429,   429,   430,   430,   430,   431,   432,   433,
1522 <     434,   434,   435,   435,   436,   438,   437,   440,   439,   441,
1523 <     441,   442,   443,   443,   444,   444,   444,   444,   445,   446,
1524 <     447,   448,   448,   449,   449,   449,   449,   449,   449,   449,
1525 <     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
1526 <     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
1527 <     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
1528 <     449,   449,   449,   449,   449,   449,   449,   449,   449,   449,
1529 <     449,   449,   449,   449,   449,   449,   449,   449,   450,   451,
1530 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1531 <     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1532 <     472,   473,   474,   475,   476,   477,   478,   479,   479,   480,
1533 <     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1534 <     490,   491,   492,   493,   494,   495,   496,   497,   499,   498,
1535 <     500,   500,   501,   501,   501,   501,   501,   501,   501,   501,
1536 <     501,   501,   501,   501,   501,   501,   501,   501,   501,   501,
1537 <     501,   501,   503,   502,   504,   504,   505,   505,   505,   505,
1538 <     505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
1539 <     505,   505,   505,   505,   505,   505,   506,   507,   508,   509,
1540 <     510,   511,   511,   512,   512,   512,   512,   512,   512,   512,
1541 <     512,   512,   512,   512,   512,   512,   512,   512,   512,   512,
1542 <     512,   512,   513,   514,   515,   516,   517,   518,   519,   520,
1543 <     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
1610 <     531,   532,   532,   533,   533,   533,   533,   533,   533,   533,
1611 <     533,   534,   535,   536,   537,   538,   539,   540
1481 >       0,   219,   220,   220,   221,   221,   221,   221,   221,   221,
1482 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
1483 >     221,   221,   221,   221,   221,   221,   222,   222,   223,   223,
1484 >     223,   223,   223,   223,   224,   224,   225,   225,   225,   225,
1485 >     226,   227,   227,   228,   228,   228,   229,   230,   231,   232,
1486 >     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1487 >     233,   233,   233,   233,   233,   233,   233,   234,   235,   236,
1488 >     236,   237,   237,   238,   238,   239,   239,   240,   241,   242,
1489 >     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1490 >     253,   254,   254,   255,   255,   255,   255,   256,   257,   258,
1491 >     259,   260,   260,   261,   261,   261,   262,   264,   263,   265,
1492 >     265,   266,   266,   266,   266,   267,   268,   268,   270,   269,
1493 >     271,   271,   272,   272,   272,   272,   272,   272,   272,   274,
1494 >     273,   275,   275,   276,   276,   276,   276,   276,   276,   276,
1495 >     276,   276,   277,   278,   279,   280,   281,   282,   284,   283,
1496 >     285,   285,   286,   286,   286,   286,   286,   286,   286,   286,
1497 >     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1498 >     286,   286,   288,   287,   289,   289,   290,   290,   290,   290,
1499 >     290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
1500 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1501 >     294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
1502 >     294,   294,   294,   295,   296,   297,   298,   299,   300,   301,
1503 >     302,   303,   304,   305,   306,   307,   309,   308,   311,   310,
1504 >     312,   312,   313,   313,   313,   314,   314,   315,   315,   315,
1505 >     315,   315,   317,   316,   318,   318,   319,   319,   320,   321,
1506 >     323,   322,   324,   324,   325,   325,   325,   325,   325,   325,
1507 >     325,   325,   325,   326,   327,   328,   329,   331,   330,   332,
1508 >     332,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1509 >     334,   335,   336,   338,   337,   339,   339,   340,   340,   340,
1510 >     340,   341,   342,   343,   344,   345,   345,   346,   346,   347,
1511 >     349,   348,   350,   350,   351,   351,   351,   351,   352,   353,
1512 >     355,   354,   356,   356,   357,   357,   357,   357,   357,   357,
1513 >     357,   357,   357,   357,   359,   358,   360,   360,   361,   361,
1514 >     361,   362,   364,   363,   365,   365,   366,   366,   366,   366,
1515 >     366,   366,   366,   366,   366,   366,   368,   367,   369,   369,
1516 >     370,   370,   370,   370,   370,   370,   370,   370,   370,   370,
1517 >     370,   370,   370,   370,   371,   372,   373,   374,   375,   376,
1518 >     377,   377,   379,   378,   380,   380,   381,   381,   382,   383,
1519 >     384,   385,   386,   388,   387,   390,   389,   391,   391,   392,
1520 >     393,   393,   394,   394,   394,   394,   395,   396,   398,   397,
1521 >     399,   399,   400,   400,   400,   401,   402,   403,   404,   404,
1522 >     405,   405,   406,   408,   407,   410,   409,   411,   411,   412,
1523 >     413,   413,   414,   414,   414,   414,   415,   416,   417,   418,
1524 >     418,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1525 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1526 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1527 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1528 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1529 >     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1530 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1531 >     439,   440,   441,   442,   443,   444,   445,   445,   446,   446,
1532 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1533 >     457,   458,   459,   460,   461,   462,   463,   465,   464,   466,
1534 >     466,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1535 >     467,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1536 >     467,   469,   468,   470,   470,   471,   471,   471,   471,   471,
1537 >     471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
1538 >     471,   471,   471,   471,   471,   472,   473,   474,   475,   476,
1539 >     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1540 >     477,   477,   477,   477,   477,   477,   478,   479,   480,   481,
1541 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1542 >     492,   493,   493,   494,   494,   494,   494,   494,   494,   494,
1543 >     495,   496,   497,   498,   499,   500
1544   };
1545  
1546   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1651 | Line 1583 | static const yytype_uint8 yyr2[] =
1583         1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1584         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1585         1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1586 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1587 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1588 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1589 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1590 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1591 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1660 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1586 >       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1587 >       4,     4,     4,     0,     6,     0,     5,     3,     1,     1,
1588 >       2,     1,     1,     1,     1,     1,     4,     4,     0,     6,
1589 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1590 >       1,     1,     4,     0,     6,     0,     5,     3,     1,     1,
1591 >       2,     1,     1,     1,     1,     1,     4,     4,     5,     2,
1592         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1593         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1594         1,     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,     4,     4,
1597 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1596 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1597 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1598         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1599         4,     4,     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,     0,     5,
1671 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1601 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1602         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1673       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1603         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1604 <       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1676 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1604 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1605         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1606 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1606 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
1607 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1608 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1609         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1610         5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1611 <       1,     4,     4,     4,     4,     4,     4,     4
1611 >       4,     4,     4,     4,     4,     4
1612   };
1613  
1614   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1686 | Line 1616 | static const yytype_uint8 yyr2[] =
1616     means the default is an error.  */
1617   static const yytype_uint16 yydefact[] =
1618   {
1619 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1620 <     415,     0,   250,   385,   226,     0,     0,   129,   283,     0,
1619 >       2,     0,     1,     0,     0,     0,   195,   346,   398,     0,
1620 >     413,     0,   250,   383,   226,     0,     0,   129,   283,     0,
1621         0,   300,   324,     0,     3,    23,    11,     4,     5,     6,
1622         8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1623        20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1624         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1625         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1626 <       0,     0,    92,    93,    95,    94,   611,     0,     0,     0,
1626 >       0,     0,    92,    93,    95,    94,   595,     0,     0,     0,
1627         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1628 <       0,     0,     0,     0,     0,     0,   592,   610,   606,   593,
1629 <     594,   595,   596,   598,   599,   600,   601,   602,   597,   603,
1630 <     604,   605,   607,   608,   609,     0,     0,     0,   413,     0,
1701 <       0,   411,   412,     0,   487,     0,     0,     0,     0,     0,
1628 >       0,     0,   580,   594,   590,   582,   583,   584,   585,   586,
1629 >     581,   587,   588,   589,   591,   592,   593,     0,     0,     0,
1630 >     411,     0,     0,   409,   410,     0,   480,     0,     0,     0,
1631         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1632         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1633 <       0,     0,     0,     0,     0,     0,   562,     0,   538,     0,
1633 >       0,     0,     0,     0,     0,     0,   551,     0,   527,     0,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1636 <     432,   485,   477,   478,   479,   480,   481,   482,   483,   476,
1637 <     443,   433,   434,   470,   435,   436,   437,   438,   439,   440,
1638 <     441,   442,   473,   444,   445,   446,   447,   484,   449,   454,
1639 <     450,   452,   451,   465,   466,   453,   455,   456,   457,   458,
1640 <     459,   448,   461,   462,   463,   486,   474,   475,   472,   464,
1641 <     460,   468,   469,   467,   471,     0,     0,     0,     0,     0,
1642 <       0,   102,   103,   104,     0,     0,     0,     0,     0,    42,
1643 <      43,    44,     0,     0,   640,     0,     0,     0,     0,     0,
1644 <       0,     0,     0,   632,   633,   634,   638,   635,   637,   636,
1716 <     639,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635 >       0,     0,     0,     0,     0,     0,     0,   430,   478,   472,
1636 >     473,   474,   475,   476,   471,   441,   431,   432,   466,   433,
1637 >     434,   435,   436,   437,   438,   439,   440,   468,   442,   443,
1638 >     477,   445,   450,   446,   448,   447,   461,   462,   449,   451,
1639 >     452,   453,   454,   455,   444,   457,   458,   459,   479,   469,
1640 >     470,   467,   460,   456,   464,   465,   463,     0,     0,     0,
1641 >       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1642 >       0,    42,    43,    44,     0,     0,   619,     0,     0,     0,
1643 >       0,     0,     0,     0,   612,   613,   614,   617,   615,   616,
1644 >     618,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1645         0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1646        64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1647        52,    60,    57,    53,     0,     0,   298,     0,     0,   296,
1648       297,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1649         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1650 <       0,     0,     0,     0,     0,     0,   591,     0,     0,     0,
1650 >       0,     0,   579,     0,     0,     0,     0,     0,     0,     0,
1651 >       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1652 >     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1653 >     201,   203,     0,     0,     0,     0,     0,   372,     0,     0,
1654 >       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
1655 >     352,   353,   354,   356,   355,   358,   362,   359,   360,   361,
1656 >     357,   404,     0,     0,     0,   401,   402,   403,     0,     0,
1657 >     408,   425,     0,     0,   415,   424,     0,   421,   422,   423,
1658         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1724       0,     0,   198,   199,   202,   203,   205,   206,   207,   208,
1725     209,   210,   211,   200,   201,   204,     0,     0,     0,     0,
1726       0,   372,     0,     0,     0,     0,     0,     0,     0,     0,
1727       0,   349,   350,   351,   352,   353,   354,   356,   355,   358,
1728     362,   359,   360,   361,   357,   406,     0,     0,     0,   403,
1729     404,   405,     0,     0,   410,   427,     0,     0,   417,   426,
1730       0,   423,   424,   425,     0,     0,     0,     0,     0,     0,
1659         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661         0,     0,     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,   431,
1664 <       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
1665 <     253,   254,   255,   256,   261,   257,   258,   259,   260,   397,
1666 <       0,   387,     0,   396,     0,   393,   394,   395,     0,   228,
1667 <       0,     0,     0,   238,     0,   236,   237,   239,   240,   105,
1668 <       0,     0,   101,     0,    45,     0,     0,     0,    41,     0,
1669 <       0,     0,   172,     0,     0,     0,   148,     0,     0,   132,
1670 <     133,   134,   135,   138,   139,   137,   136,   140,     0,     0,
1671 <       0,     0,     0,   286,   287,   288,   289,     0,     0,     0,
1744 <       0,     0,     0,     0,     0,   631,    66,     0,     0,     0,
1663 >     429,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1664 >       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1665 >     395,     0,   385,     0,   394,     0,   391,   392,   393,     0,
1666 >     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1667 >     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1668 >       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1669 >     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1670 >       0,     0,     0,     0,   286,   287,   288,   289,     0,     0,
1671 >       0,     0,     0,     0,     0,   611,    66,     0,     0,     0,
1672         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673         0,     0,     0,    49,     0,     0,   310,     0,     0,   303,
1674       304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1675         0,     0,   295,     0,     0,     0,    90,     0,     0,     0,
1676 <       0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
1677 <       0,     0,     0,     0,     0,     0,   590,   212,     0,     0,
1676 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1677 >       0,     0,   578,   212,     0,     0,     0,     0,     0,     0,
1678 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   363,
1679         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1680 <       0,     0,   197,   363,     0,     0,     0,     0,     0,     0,
1681 <       0,     0,     0,     0,     0,     0,     0,     0,   348,     0,
1754 <       0,     0,   402,     0,   409,     0,     0,     0,     0,   422,
1680 >       0,     0,     0,     0,   348,     0,     0,     0,   400,     0,
1681 >     407,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1682         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1683         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1684         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1686 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
1760 <       0,     0,     0,     0,     0,     0,     0,   430,   262,     0,
1686 >       0,     0,     0,     0,     0,     0,     0,   428,   262,     0,
1687         0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1688 <       0,     0,     0,   392,   241,     0,     0,     0,     0,     0,
1688 >       0,     0,     0,   390,   241,     0,     0,     0,     0,     0,
1689       235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1690         0,     0,     0,     0,     0,     0,     0,   131,   290,     0,
1691         0,     0,     0,   285,     0,     0,     0,     0,     0,     0,
1692 <       0,   630,     0,     0,     0,     0,     0,     0,     0,     0,
1693 <      71,    72,     0,    70,    75,    76,     0,    74,     0,     0,
1694 <       0,     0,     0,    48,   307,     0,     0,     0,     0,   302,
1695 <     330,     0,     0,     0,   326,     0,   294,    99,    98,    97,
1696 <     625,   624,   612,   614,    26,    26,    26,    26,    26,    28,
1697 <      27,   618,   619,   623,   621,   620,   626,   627,   628,   629,
1772 <     622,   613,   615,   616,   617,     0,     0,     0,     0,     0,
1773 <       0,     0,     0,     0,     0,     0,     0,     0,   196,     0,
1692 >     610,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1693 >      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1694 >       0,     0,    48,   307,     0,     0,     0,     0,   302,   330,
1695 >       0,     0,     0,   326,     0,   294,    99,    98,    97,   605,
1696 >     604,   596,    26,    26,    26,    26,    26,    28,    27,   598,
1697 >     599,   603,   601,   600,   606,   607,   608,   609,   602,   597,
1698         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1699 <       0,     0,     0,   347,     0,     0,   401,   414,     0,     0,
1700 <       0,   416,   502,   506,   522,   588,   536,   500,   530,   533,
1701 <     501,   490,   489,   491,   492,   493,   509,   498,   499,   512,
1702 <     497,   511,   510,   505,   504,   503,   531,   488,   529,   586,
1703 <     587,   526,   523,   573,   566,   583,   584,   567,   568,   569,
1704 <     570,   578,   571,   581,   585,   574,   579,   575,   580,   572,
1705 <     577,   576,   582,     0,   565,   528,   548,   542,   559,   560,
1706 <     543,   544,   545,   546,   554,   547,   557,   561,   550,   555,
1707 <     551,   556,   549,   553,   552,   558,     0,   541,   521,   524,
1708 <     535,   495,   496,   525,   514,   519,   520,   517,   518,   515,
1709 <     516,   508,   507,    34,    34,    34,    36,    35,   589,   534,
1710 <     537,   527,   532,   494,   513,     0,     0,     0,     0,     0,
1711 <       0,     0,     0,   251,     0,     0,     0,   386,     0,     0,
1712 <       0,   246,   242,   245,   227,   106,     0,     0,   118,     0,
1713 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1714 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   284,
1715 <     646,   641,   645,   643,   647,   642,   644,    83,    89,    81,
1716 <      85,    84,    78,    77,    79,    67,     0,    68,     0,    82,
1717 <      80,    88,    86,    87,     0,     0,     0,   301,     0,     0,
1718 <     325,   299,    29,    30,    31,    32,    33,   223,   224,   217,
1719 <     219,   221,   220,   218,   213,   225,   216,   214,   215,   222,
1720 <     368,   370,   371,   383,   380,   376,   377,   379,   378,     0,
1721 <     375,   365,   381,   382,   364,   369,   367,   384,   366,   407,
1722 <     408,   428,   429,   421,     0,   420,   563,     0,   539,     0,
1723 <      37,    38,    39,   265,   266,   275,   272,   277,   274,   273,
1724 <     279,   276,   278,   271,     0,   270,   264,   282,   281,   280,
1725 <     263,   399,   391,     0,   390,   398,   233,   234,   232,     0,
1726 <     231,   249,   248,     0,     0,     0,   114,     0,     0,     0,
1727 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1728 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1729 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1730 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1731 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1732 <     143,   292,   293,   291,    69,    73,   308,   314,   320,   323,
1733 <     316,   322,   317,   321,   319,   315,   318,     0,   313,   309,
1734 <     331,   336,   342,   345,   338,   344,   339,   343,   341,   337,
1735 <     340,     0,   335,   373,     0,   418,     0,   564,   540,   268,
1736 <       0,   388,     0,   229,     0,   247,   244,   243,     0,     0,
1737 <       0,     0,   108,   173,     0,   149,     0,   311,     0,   333,
1738 <       0,   374,   419,   269,   389,   230,   115,   124,   127,   126,
1739 <     123,   128,   125,   122,     0,   121,   117,   116,   174,   150,
1740 <     312,   334,   119,     0,   120
1699 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1700 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   347,
1701 >       0,     0,   399,   412,     0,     0,     0,   414,   493,   497,
1702 >     511,   577,   525,   491,   519,   522,   492,   483,   482,   484,
1703 >     485,   486,   500,   489,   490,   501,   488,   496,   495,   494,
1704 >     520,   481,   518,   575,   576,   515,   512,   562,   555,   572,
1705 >     573,   556,   557,   558,   559,   567,   560,   570,   574,   563,
1706 >     568,   564,   569,   561,   566,   565,   571,     0,   554,   517,
1707 >     537,   531,   548,   549,   532,   533,   534,   535,   543,   536,
1708 >     546,   550,   539,   544,   540,   545,   538,   542,   541,   547,
1709 >       0,   530,   510,   513,   524,   487,   514,   503,   508,   509,
1710 >     506,   507,   504,   505,   499,   498,   523,   526,   516,   521,
1711 >     502,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1712 >       0,     0,     0,   384,     0,     0,     0,   246,   242,   245,
1713 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1714 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1715 >       0,   130,     0,     0,     0,   284,   620,   624,   622,   625,
1716 >     621,   623,    83,    89,    81,    85,    84,    78,    77,    79,
1717 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1718 >       0,     0,   301,     0,     0,   325,   299,    29,    30,    31,
1719 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1720 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1721 >     368,   370,   371,   381,   378,   376,   377,     0,   375,   365,
1722 >     379,   380,   364,   369,   367,   382,   366,   405,   406,   426,
1723 >     427,   419,     0,   418,   552,     0,   528,     0,   265,   266,
1724 >     275,   272,   277,   274,   273,   279,   276,   278,   271,     0,
1725 >     270,   264,   282,   281,   280,   263,   397,   389,     0,   388,
1726 >     396,   233,   234,   232,     0,   231,   249,   248,     0,     0,
1727 >       0,   114,     0,     0,     0,     0,   109,   147,   145,   187,
1728 >     184,   183,   176,   178,   194,   188,   191,   186,   177,   192,
1729 >     180,   189,   193,   181,   190,   185,   179,   182,     0,   175,
1730 >     142,   144,   146,   158,   152,   169,   170,   153,   154,   155,
1731 >     156,   164,   157,   167,   171,   160,   165,   161,   166,   159,
1732 >     163,   162,   168,     0,   151,   143,   292,   293,   291,    69,
1733 >      73,   308,   314,   320,   323,   316,   322,   317,   321,   319,
1734 >     315,   318,     0,   313,   309,   331,   336,   342,   345,   338,
1735 >     344,   339,   343,   341,   337,   340,     0,   335,    37,    38,
1736 >      39,   373,     0,   416,     0,   553,   529,   268,     0,   386,
1737 >       0,   229,     0,   247,   244,   243,     0,     0,     0,     0,
1738 >     108,   173,     0,   149,     0,   311,     0,   333,     0,   374,
1739 >     417,   269,   387,   230,   115,   124,   127,   126,   123,   128,
1740 >     125,   122,     0,   121,   117,   116,   174,   150,   312,   334,
1741 >     119,     0,   120
1742   };
1743  
1744   /* YYDEFGOTO[NTERM-NUM].  */
1745   static const yytype_int16 yydefgoto[] =
1746   {
1747 <      -1,     1,    24,   819,   820,   966,   967,    25,   248,   249,
1748 <     250,   251,    26,   287,   288,   289,   290,   782,   783,   786,
1749 <     787,   291,   292,   293,   294,   295,   296,   297,   298,   299,
1750 <     300,   301,   302,   303,    27,    71,    72,    73,    74,    75,
1751 <      28,   240,   241,   242,   243,   244,  1000,  1001,  1002,  1003,
1752 <    1004,  1138,  1264,  1265,    29,    60,   528,   529,   530,   531,
1753 <     532,   533,   534,   535,   536,   754,  1188,  1189,   537,   750,
1754 <    1163,  1164,    30,    49,   351,   352,   353,   354,   355,   356,
1755 <     357,   358,   359,   360,   361,   362,   363,   364,   365,    31,
1756 <      57,   503,   735,  1129,  1130,   504,   505,   506,  1135,   992,
1757 <     993,   507,   508,    32,    55,   479,   480,   481,   482,   483,
1758 <     484,   485,   721,  1114,  1115,   486,   487,   488,    33,    61,
1759 <     542,   543,   544,   545,   546,    34,   308,   309,   310,    35,
1760 <      64,   578,   579,   580,   581,   582,   796,  1207,  1208,    36,
1761 <      65,   586,   587,   588,   589,   802,  1221,  1222,    37,    50,
1762 <     380,   381,   382,   383,   384,   385,   386,   387,   388,   389,
1763 <     638,  1079,  1080,   390,   391,   392,   393,   394,    38,    56,
1764 <     493,   730,  1123,  1124,   494,   495,   496,   497,    39,    51,
1765 <     398,   399,   400,   401,    40,   120,   121,   122,    41,    53,
1766 <     409,   657,  1094,  1095,   410,   411,   412,   413,    42,   179,
1767 <     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1768 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1769 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1770 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1771 <     220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1772 <     447,   946,   947,   230,   445,   923,   924,   231,   232,   233,
1773 <     234,    43,    95,    96,    97,    98,    99,   100,   101,   102,
1774 <     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1775 <     113,   114,    44,   262,   263,   264,   265,   266,   267,   268,
1851 <     269,   270
1747 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1748 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1749 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1750 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1751 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1752 >     950,  1083,  1212,  1213,    29,    60,   499,   500,   501,   502,
1753 >     503,   504,   505,   506,   507,   714,  1133,  1134,   508,   710,
1754 >    1108,  1109,    30,    49,   327,   328,   329,   330,   331,   332,
1755 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1756 >      57,   474,   695,  1074,  1075,   475,   476,   477,  1080,   938,
1757 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1758 >     455,   456,   681,  1059,  1060,   457,   458,   459,    33,    61,
1759 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1760 >      64,   548,   549,   550,   551,   552,   755,  1152,  1153,    36,
1761 >      65,   556,   557,   558,   559,   761,  1166,  1167,    37,    50,
1762 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1763 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1764 >     464,   690,  1068,  1069,   465,   466,   467,   468,    39,    51,
1765 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1766 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1767 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1768 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1769 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1770 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1771 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1772 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1773 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1774 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1775 >     249,   250
1776   };
1777  
1778   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1779     STATE-NUM.  */
1780 < #define YYPACT_NINF -784
1780 > #define YYPACT_NINF -745
1781   static const yytype_int16 yypact[] =
1782   {
1783 <    -784,   688,  -784,  -234,  -225,  -219,  -784,  -784,  -784,  -217,
1784 <    -784,  -206,  -784,  -784,  -784,  -204,  -201,  -784,  -784,  -198,
1785 <    -196,  -784,  -784,  -193,  -784,  -784,  -784,  -784,  -784,  -784,
1786 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1787 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,   106,   597,  -186,
1788 <    -171,  -169,    15,  -158,   378,  -152,  -144,  -123,     3,    60,
1789 <    -113,   -96,   663,   431,   -84,   -68,    22,   -55,   -50,   -45,
1790 <     -36,    19,  -784,  -784,  -784,  -784,  -784,   -18,   -13,    26,
1791 <      28,    33,    37,    44,    50,    70,    81,    84,    86,    87,
1792 <      89,    92,    93,    94,    96,    11,  -784,  -784,  -784,  -784,
1793 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1794 <    -784,  -784,  -784,  -784,  -784,   755,   459,    13,  -784,    97,
1795 <      29,  -784,  -784,    24,  -784,    99,   100,   101,   103,   108,
1796 <     112,   115,   116,   119,   120,   124,   128,   130,   131,   133,
1797 <     136,   137,   138,   147,   152,   153,   154,   156,   158,   159,
1798 <     162,   169,   171,   173,   175,   177,  -784,   178,  -784,   179,
1799 <     184,   190,   193,   194,   195,   196,   198,   199,   200,   203,
1800 <     204,   206,   207,   210,   212,   217,   219,   220,   221,   129,
1801 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1802 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1803 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1804 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1805 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1806 <    -784,  -784,  -784,  -784,  -784,   516,    63,   270,    91,   222,
1807 <      17,  -784,  -784,  -784,   110,   164,   225,   231,    73,  -784,
1808 <    -784,  -784,   483,    88,  -784,   232,   234,   236,   238,   239,
1809 <     242,   243,    18,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1810 <    -784,   247,   245,   246,   248,   255,   261,   263,   264,   266,
1811 <     268,   272,   274,   275,   276,   277,   280,   174,  -784,  -784,
1812 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1813 <    -784,  -784,  -784,  -784,     2,     4,  -784,   283,    56,  -784,
1814 <    -784,  -784,   240,   288,   361,   287,  -784,   402,   420,   356,
1815 <     359,   426,   426,   429,   430,   432,   367,   370,   437,   426,
1816 <     372,   386,   388,   389,   390,   328,  -784,   330,   323,   335,
1817 <     336,   337,   339,   341,   342,   345,   347,   349,   350,   352,
1818 <     355,   267,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1819 <    -784,  -784,  -784,  -784,  -784,  -784,   331,   357,   358,   360,
1820 <     364,  -784,   365,   366,   369,   376,   379,   380,   384,   387,
1821 <     326,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1822 <    -784,  -784,  -784,  -784,  -784,  -784,   391,   392,    21,  -784,
1823 <    -784,  -784,   444,   362,  -784,  -784,   394,   395,  -784,  -784,
1824 <      14,  -784,  -784,  -784,   439,   426,   426,   496,   466,   467,
1825 <     525,   513,   469,   426,   477,   426,   547,   548,   549,   484,
1826 <     487,   488,   426,   534,   492,   559,   560,   426,   562,   563,
1827 <     546,   568,   569,   508,   512,   447,   520,   453,   426,   426,
1828 <     523,   426,   524,   526,   529,   104,   107,   536,   538,   426,
1829 <     426,   579,   570,   426,   544,   552,   556,   561,   480,  -784,
1830 <     494,   504,   505,  -784,   506,   510,   511,   517,   518,     5,
1831 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1832 <     521,  -784,   522,  -784,    42,  -784,  -784,  -784,   497,  -784,
1833 <     527,   528,   531,  -784,    12,  -784,  -784,  -784,  -784,  -784,
1834 <     577,   499,  -784,   514,  -784,   629,   630,   539,  -784,   540,
1835 <     541,   543,  -784,   545,   550,   551,  -784,   553,    69,  -784,
1836 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,   542,   554,
1837 <     555,   566,    16,  -784,  -784,  -784,  -784,   589,   592,   595,
1838 <     652,   613,   617,   426,   564,  -784,  -784,   666,   618,   670,
1839 <     673,   674,   676,   677,   679,   144,   161,   681,   682,   705,
1840 <     685,   687,   575,  -784,   578,   574,  -784,   576,    85,  -784,
1841 <    -784,  -784,  -784,   580,   581,  -784,    62,  -784,  -784,  -784,
1842 <     692,   582,  -784,   583,   588,   590,  -784,   591,   593,   594,
1843 <     596,   233,   598,   599,   603,   604,   608,   609,   612,   614,
1844 <     615,   616,   619,   620,   621,   622,  -784,  -784,   721,   724,
1845 <     426,   727,   749,   750,   756,   734,   764,   765,   426,   426,
1846 <     579,   636,  -784,  -784,   748,   126,   759,   710,   647,   767,
1847 <     768,   769,   770,   785,   771,   773,   774,   654,  -784,   775,
1848 <     783,   675,  -784,   680,  -784,   787,   792,   684,   683,  -784,
1849 <     689,   693,   701,   704,   709,   712,   716,   718,   722,   726,
1850 <     728,   730,   731,   732,   733,   735,   736,   737,   738,   739,
1851 <     740,   741,   742,   743,   744,   745,   746,   747,   751,   752,
1852 <     753,   686,   757,   725,   758,   760,   761,   762,   763,   766,
1853 <     772,   776,   777,   778,   779,   780,   781,   782,   784,    41,
1854 <     786,   788,   789,   790,   791,   793,   794,  -784,  -784,   803,
1855 <     800,   702,   821,   853,   835,   836,   838,   795,  -784,   859,
1856 <     796,   860,   797,  -784,  -784,   798,   861,   865,   887,   802,
1857 <    -784,   804,  -784,    23,   805,   806,  -784,  -784,   867,   825,
1858 <     807,   875,   876,   878,   808,   879,   809,  -784,  -784,   880,
1859 <     881,   882,   812,  -784,   813,   814,   815,   816,   817,   818,
1860 <     819,  -784,   820,   822,   823,   824,   826,   827,   828,   829,
1861 <    -784,  -784,  -207,  -784,  -784,  -784,  -182,  -784,   830,   831,
1862 <     832,   833,   834,  -784,  -784,   884,   837,   885,   839,  -784,
1863 <    -784,   886,   840,   841,  -784,   842,  -784,  -784,  -784,  -784,
1864 <    -784,  -784,  -784,  -784,   426,   426,   426,   426,   426,  -784,
1865 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1866 <    -784,  -784,  -784,  -784,  -784,   844,   845,   846,   847,   848,
1867 <     849,   850,   851,   852,   854,   855,   856,   857,  -784,   858,
1868 <     862,   863,   864,   866,    66,   868,   869,   870,   871,   872,
1869 <     873,   874,   877,  -784,   883,   888,  -784,  -784,   889,   890,
1870 <     891,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1871 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1872 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1873 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1874 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1875 <    -784,  -784,  -784,  -177,  -784,  -784,  -784,  -784,  -784,  -784,
1876 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1877 <    -784,  -784,  -784,  -784,  -784,  -784,  -176,  -784,  -784,  -784,
1878 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1879 <    -784,  -784,  -784,   579,   579,   579,  -784,  -784,  -784,  -784,
1880 <    -784,  -784,  -784,  -784,  -784,   892,   893,   639,   894,   895,
1881 <     896,   897,   898,  -784,   899,   902,   900,  -784,   -54,   901,
1882 <     903,   914,   799,  -784,  -784,  -784,   904,   905,  -784,   906,
1883 <      25,  -784,  -784,  -784,  -784,  -784,  -784,   907,   910,   515,
1884 <     911,   912,   913,   754,   915,  -784,   916,   917,   918,  -784,
1885 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1886 <    -784,  -784,  -784,  -784,  -784,  -784,   144,  -784,   161,  -784,
1887 <    -784,  -784,  -784,  -784,   919,   434,   920,  -784,   921,   565,
1888 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1889 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1890 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -175,
1891 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1892 <    -784,  -784,  -784,  -784,  -135,  -784,  -784,   686,  -784,   725,
1893 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1894 <    -784,  -784,  -784,  -784,  -130,  -784,  -784,  -784,  -784,  -784,
1895 <    -784,  -784,  -784,   -81,  -784,  -784,  -784,  -784,  -784,   -65,
1896 <    -784,  -784,  -784,   924,   887,   922,  -784,   909,   923,  -105,
1897 <     925,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1898 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1899 <    -784,  -784,  -784,   -39,  -784,  -784,  -784,  -784,  -784,  -784,
1900 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1901 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,   -32,  -784,
1902 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1903 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,   -31,  -784,  -784,
1904 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1905 <    -784,    -8,  -784,  -784,    66,  -784,   891,  -784,  -784,  -784,
1982 <     639,  -784,   902,  -784,   -54,  -784,  -784,  -784,   927,   363,
1983 <     928,   929,  -784,  -784,   515,  -784,   754,  -784,   434,  -784,
1984 <     565,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1985 <    -784,  -784,  -784,  -784,    -7,  -784,  -784,  -784,  -784,  -784,
1986 <    -784,  -784,  -784,   363,  -784
1783 >    -745,   615,  -745,  -209,  -208,  -192,  -745,  -745,  -745,  -190,
1784 >    -745,  -183,  -745,  -745,  -745,  -169,  -167,  -745,  -745,  -144,
1785 >    -137,  -745,  -745,  -132,  -745,  -745,  -745,  -745,  -745,  -745,
1786 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1787 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   292,   784,  -111,
1788 >    -102,   -93,    22,   -90,   389,   -80,   -74,   -72,    50,    15,
1789 >     -65,   -60,   299,   388,   -54,   -34,    18,  -176,   -58,   -32,
1790 >     -22,     3,  -745,  -745,  -745,  -745,  -745,   -15,    -9,    26,
1791 >      38,    67,    69,    75,    80,    82,    88,    90,    93,   100,
1792 >     107,   195,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1793 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   569,   505,    13,
1794 >    -745,   115,    12,  -745,  -745,   258,  -745,   117,   122,   129,
1795 >     131,   140,   141,   144,   145,   146,   154,   155,   156,   159,
1796 >     161,   165,   166,   168,   170,   174,   175,   176,   177,   180,
1797 >     190,   194,   197,   199,   203,   204,  -745,   205,  -745,   206,
1798 >     209,   211,   212,   215,   219,   221,   224,   225,   229,   230,
1799 >     233,   234,   236,   237,   239,   240,    36,  -745,  -745,  -745,
1800 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1801 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1802 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1803 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1804 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   343,    60,   284,
1805 >    -157,   241,    43,  -745,  -745,  -745,    66,   113,   242,   245,
1806 >      99,  -745,  -745,  -745,   348,    62,  -745,   249,   253,   264,
1807 >     266,   267,   271,    16,  -745,  -745,  -745,  -745,  -745,  -745,
1808 >    -745,   268,   273,   274,   280,   281,   285,   287,   290,   294,
1809 >     295,   296,   297,   306,   307,   308,   309,    74,  -745,  -745,
1810 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1811 >    -745,  -745,  -745,  -745,   220,   277,  -745,   310,    20,  -745,
1812 >    -745,  -745,   252,   370,   384,   302,  -745,   410,   430,   371,
1813 >     432,   432,   433,   434,   436,   379,   390,   453,   432,   395,
1814 >     396,   342,  -745,   345,   349,   350,   352,   354,   355,   357,
1815 >     360,   361,   362,   363,   365,   366,   369,   152,  -745,  -745,
1816 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1817 >    -745,  -745,   346,   372,   381,   385,   386,  -745,   392,   393,
1818 >     397,   400,   401,   405,   407,   408,   270,  -745,  -745,  -745,
1819 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1820 >    -745,  -745,   409,   413,    51,  -745,  -745,  -745,   445,   351,
1821 >    -745,  -745,   414,   417,  -745,  -745,     8,  -745,  -745,  -745,
1822 >     428,   432,   432,   502,   446,   447,   508,   495,   454,   432,
1823 >     461,   432,   528,   536,   537,   480,   485,   493,   432,   556,
1824 >     557,   432,   562,   563,   548,   567,   568,   512,   513,   456,
1825 >     519,   459,   432,   432,   521,   522,   523,   524,    14,    54,
1826 >     530,   532,   432,   432,   570,   432,   533,   535,   538,   474,
1827 >    -745,   481,   479,   483,  -745,   484,   488,   492,   498,   501,
1828 >     128,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1829 >    -745,   503,  -745,   506,  -745,    19,  -745,  -745,  -745,   514,
1830 >    -745,   515,   518,   520,  -745,   116,  -745,  -745,  -745,  -745,
1831 >    -745,   539,   516,  -745,   496,  -745,   602,   612,   526,  -745,
1832 >     527,   531,   534,  -745,   540,   544,   545,  -745,   553,   183,
1833 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   541,
1834 >     560,   561,   573,    11,  -745,  -745,  -745,  -745,   572,   575,
1835 >     621,   584,   585,   432,   542,  -745,  -745,   629,   586,   630,
1836 >     632,   636,   637,   663,   670,   112,   196,   684,   691,   674,
1837 >     696,   701,   605,  -745,   619,   617,  -745,   622,    59,  -745,
1838 >    -745,  -745,  -745,   627,   626,  -745,   110,  -745,  -745,  -745,
1839 >     719,   633,  -745,   635,   638,   639,  -745,   641,   642,   646,
1840 >     265,   647,   648,   649,   650,   651,   652,   653,   654,   655,
1841 >     657,   658,  -745,  -745,   771,   774,   432,   775,   776,   777,
1842 >     778,   761,   782,   783,   432,   785,   785,   669,  -745,  -745,
1843 >     768,   164,   769,   728,   671,   772,   773,   779,   780,   792,
1844 >     781,   786,   787,   680,  -745,   788,   789,   681,  -745,   685,
1845 >    -745,   790,   791,   683,   687,  -745,   695,   697,   698,   699,
1846 >     700,   702,   703,   704,   705,   706,   707,   708,   709,   710,
1847 >     711,   712,   713,   714,   715,   716,   717,   718,   720,   721,
1848 >     722,   723,   724,   725,   726,   600,   727,   628,   729,   730,
1849 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1850 >     741,   742,   743,   744,   745,   746,   747,  -745,  -745,   798,
1851 >     803,   748,   816,   843,   846,   847,   849,   753,  -745,   851,
1852 >     752,   853,   757,  -745,  -745,   755,   856,   857,   876,   762,
1853 >    -745,   763,  -745,   187,   764,   765,  -745,  -745,   863,   822,
1854 >     766,   865,   867,   868,   770,   869,   793,  -745,  -745,   871,
1855 >     872,   873,   794,  -745,   795,   796,   797,   799,   800,   801,
1856 >    -745,   802,   804,   805,   806,   807,   808,   809,   810,  -745,
1857 >    -745,  -196,  -745,  -745,  -745,  -179,  -745,   811,   812,   813,
1858 >     814,   815,  -745,  -745,   874,   817,   875,   818,  -745,  -745,
1859 >     877,   819,   821,  -745,   823,  -745,  -745,  -745,  -745,  -745,
1860 >    -745,  -745,   432,   432,   432,   432,   432,  -745,  -745,  -745,
1861 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1862 >     824,   825,   826,   827,   828,   829,   830,   831,   832,   833,
1863 >     834,    79,   835,   836,  -745,   837,   838,   839,   840,   841,
1864 >      -1,   842,   844,   845,   848,   850,   852,   854,   855,  -745,
1865 >     858,   859,  -745,  -745,   860,   861,   878,  -745,  -745,  -745,
1866 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1867 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1868 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1869 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1870 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -178,  -745,  -745,
1871 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1872 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1873 >    -173,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1874 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1875 >    -745,   862,   864,   693,   866,   870,   879,   880,   881,  -745,
1876 >     882,   883,   884,  -745,   -36,   885,   886,   894,   887,  -745,
1877 >    -745,  -745,   888,   889,  -745,   890,    86,  -745,  -745,  -745,
1878 >    -745,  -745,  -745,   895,   896,   517,   897,   898,   899,   656,
1879 >     900,  -745,   901,   902,   903,  -745,  -745,  -745,  -745,  -745,
1880 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1881 >    -745,   112,  -745,   196,  -745,  -745,  -745,  -745,  -745,   904,
1882 >     464,   905,  -745,   906,   529,  -745,  -745,  -745,  -745,  -745,
1883 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1884 >    -745,  -745,  -745,   785,   785,   785,  -745,  -745,  -745,  -745,
1885 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -168,  -745,  -745,
1886 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1887 >    -745,  -745,  -160,  -745,  -745,   600,  -745,   628,  -745,  -745,
1888 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -159,
1889 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -57,  -745,
1890 >    -745,  -745,  -745,  -745,   -38,  -745,  -745,  -745,   907,   876,
1891 >     908,  -745,   913,   891,   -88,   909,  -745,  -745,  -745,  -745,
1892 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1893 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    -7,  -745,
1894 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1895 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1896 >    -745,  -745,  -745,    63,  -745,  -745,  -745,  -745,  -745,  -745,
1897 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1898 >    -745,  -745,    94,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1899 >    -745,  -745,  -745,  -745,  -745,  -745,   101,  -745,  -745,  -745,
1900 >    -745,  -745,    -1,  -745,   878,  -745,  -745,  -745,   693,  -745,
1901 >     883,  -745,   -36,  -745,  -745,  -745,   910,   403,   911,   912,
1902 >    -745,  -745,   517,  -745,   656,  -745,   464,  -745,   529,  -745,
1903 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1904 >    -745,  -745,   104,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1905 >    -745,   403,  -745
1906   };
1907  
1908   /* YYPGOTO[NTERM-NUM].  */
1909   static const yytype_int16 yypgoto[] =
1910   {
1911 <    -784,  -784,  -784,  -783,  -320,  -745,  -461,  -784,  -784,   926,
1912 <    -784,  -784,  -784,  -784,   843,  -784,  -784,  -784,    -9,  -784,
1913 <       6,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1914 <    -784,  -784,  -784,  -784,  -784,  -784,   960,  -784,  -784,  -784,
1915 <    -784,  -784,   811,  -784,  -784,  -784,  -784,    52,  -784,  -784,
1916 <    -784,  -784,  -784,  -208,  -784,  -784,  -784,   600,  -784,  -784,
1917 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -167,  -784,  -784,
1918 <    -784,  -164,  -784,  -784,  -784,   908,  -784,  -784,  -784,  -784,
1919 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1920 <    -784,  -784,  -784,  -784,  -165,  -784,   601,  -784,  -784,  -784,
1921 <     -53,  -784,  -784,  -784,  -784,  -784,   624,  -784,  -784,  -784,
1922 <    -784,  -784,  -784,  -784,  -148,  -784,  -784,  -784,  -784,  -784,
1923 <    -784,   567,  -784,  -784,  -784,  -784,  -784,   930,  -784,  -784,
1924 <    -784,  -784,   533,  -784,  -784,  -784,  -784,  -784,  -129,  -784,
1925 <    -784,  -784,   537,  -784,  -784,  -784,  -784,  -146,  -784,  -784,
1926 <    -784,   801,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1927 <    -784,  -784,  -104,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1928 <    -784,  -784,  -784,  -110,  -784,   631,  -784,  -784,  -784,  -784,
1929 <    -784,   810,  -784,  -784,  -784,  -784,  1004,  -784,  -784,  -784,
1930 <    -784,  -784,  -784,  -100,  -784,   719,  -784,  -784,  -784,  -784,
1931 <     952,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1932 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1933 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1934 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1935 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1936 <    -784,  -784,    36,  -784,  -784,  -784,    49,  -784,  -784,  -784,
1937 <    -784,  -784,  -784,  1054,  -784,  -784,  -784,  -784,  -784,  -784,
1938 <    -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,  -784,
1939 <    -784,  -784,  -784,  -784,   931,  -784,  -784,  -784,  -784,  -784,
2021 <    -784,  -784
1911 >    -745,  -745,  -745,  -744,  -298,  -659,  -595,  -745,  -745,   767,
1912 >    -745,  -745,  -745,  -745,   750,  -745,  -745,  -745,    17,  -745,
1913 >      10,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1914 >    -745,  -745,  -745,  -745,  -745,  -745,   924,  -745,  -745,  -745,
1915 >    -745,  -745,   914,  -745,  -745,  -745,  -745,    53,  -745,  -745,
1916 >    -745,  -745,  -745,  -225,  -745,  -745,  -745,   504,  -745,  -745,
1917 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -193,  -745,  -745,
1918 >    -745,  -188,  -745,  -745,  -745,   675,  -745,  -745,  -745,  -745,
1919 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1920 >    -745,  -745,  -745,  -745,  -170,  -745,   558,  -745,  -745,  -745,
1921 >     -48,  -745,  -745,  -745,  -745,  -745,   610,  -745,  -745,  -745,
1922 >    -745,  -745,  -745,  -745,  -117,  -745,  -745,  -745,  -745,  -745,
1923 >    -745,   550,  -745,  -745,  -745,  -745,  -745,   892,  -745,  -745,
1924 >    -745,  -745,   543,  -745,  -745,  -745,  -745,  -745,  -131,  -745,
1925 >    -745,  -745,   511,  -745,  -745,  -745,  -745,  -128,  -745,  -745,
1926 >    -745,   820,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1927 >    -745,  -745,  -101,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1928 >    -745,  -745,  -745,  -103,  -745,   614,  -745,  -745,  -745,  -745,
1929 >    -745,   754,  -745,  -745,  -745,  -745,   969,  -745,  -745,  -745,
1930 >    -745,  -745,  -745,   -92,  -745,   749,  -745,  -745,  -745,  -745,
1931 >     917,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1932 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1933 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1934 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1935 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    39,  -745,
1936 >    -745,  -745,    40,  -745,  -745,  -745,  -745,  -745,   996,  -745,
1937 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1938 >    -745,  -745,  -745,  -745,  -745,   915,  -745,  -745,  -745,  -745,
1939 >    -745,  -745
1940   };
1941  
1942   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
# Line 2027 | Line 1945 | static const yytype_int16 yypgoto[] =
1945   #define YYTABLE_NINF -108
1946   static const yytype_int16 yytable[] =
1947   {
1948 <     710,   602,   603,   574,   238,   583,   470,   709,  1126,   610,
1949 <      45,    46,    76,   498,   395,   405,   118,   538,   238,   254,
1950 <      67,    47,   395,   306,   996,   405,   996,    48,   471,    52,
1951 <     118,  1052,  1053,  1054,  1055,  1056,   539,  1035,    77,    78,
1952 <      54,  1036,    58,   489,    79,    59,    80,   472,    62,    68,
1953 <      63,   473,   255,    66,   963,   964,   965,   306,   499,    69,
1954 <     115,   245,  1037,   583,   489,   256,  1038,  1096,  1098,  1223,
1955 <     519,  1097,  1099,  1224,   245,   116,  1075,   117,  1076,   500,
1956 <     257,   258,   259,   260,   501,   396,   574,   119,   123,   538,
1957 <      81,    82,   520,   396,   235,   661,   662,    83,    84,    85,
1958 <     261,   119,   236,   669,   575,   671,   584,    67,   539,  1225,
1959 <    1240,   521,   678,  1226,  1229,   522,   406,   683,  1230,    86,
1960 <      87,    70,   540,   237,   307,   997,   406,   997,   694,   695,
1961 <     124,   697,   474,   252,    88,    89,    68,   125,   126,   707,
1962 <     708,   475,   476,   712,   502,    90,    69,   127,   397,   407,
1963 <     253,   541,  1127,   709,    91,   128,   397,  1128,   307,   407,
1964 <     246,   129,   304,  1231,   584,   130,   131,  1232,   132,   847,
1965 <     576,   523,   585,   246,   133,   271,   477,   490,   305,  1233,
1966 <     134,   135,   408,  1234,   136,   137,   138,   575,   247,   311,
1967 <     139,   998,   408,   998,   540,   140,   524,   312,   490,   141,
1968 <     142,   247,   313,   143,   272,  1243,   144,   145,    70,  1244,
1969 <     491,   314,  1245,  1247,   146,   525,  1246,  1248,  1100,  1101,
1970 <    1102,   147,   148,   541,   149,   150,   151,   152,   153,   317,
1971 <     585,   491,   577,   770,   318,   478,  1249,  1272,   239,   154,
1972 <    1250,  1273,   273,    92,    93,    94,  -107,   155,   156,   157,
1973 <     727,   158,   239,   576,   159,   160,   335,   739,   161,   658,
1974 <    -107,   762,   511,   554,   315,   999,   651,   999,   337,   162,
1975 <    1140,   498,   492,   319,   403,   320,   274,  1077,   275,   276,
1976 <     321,   526,   701,   702,   322,   703,   704,   732,   338,   339,
1977 <    1078,   323,   340,   492,   163,   780,   781,   324,   164,   527,
1978 <     837,   591,   165,   166,   167,   168,   169,   803,   845,   846,
1979 <     170,   171,   784,   785,   756,   577,   499,   325,   517,   277,
1980 <     172,   278,   279,   280,   281,   850,   851,   366,   326,   367,
1981 <     798,   327,   368,   328,   329,   509,   330,   500,   282,   331,
1982 <     332,   333,   501,   334,   402,   601,   414,   415,   416,   369,
1983 <     417,   173,   174,   513,   175,   418,   341,   342,   343,   419,
1984 <     176,   344,   420,   421,   283,   177,   422,   423,   370,   345,
1985 <     178,   424,   371,   593,   468,   425,   284,   426,   427,   124,
1986 <     428,   346,   347,   429,   430,   431,   125,   126,   814,   815,
1987 <     816,   817,   818,   372,   432,   373,   127,   348,   349,   433,
1988 <     434,   435,   502,   436,   128,   437,   438,   374,   514,   439,
1989 <     129,   285,   286,  1257,   130,   131,   440,   132,   441,   572,
1990 <     442,   594,   443,   133,   444,   446,   448,   350,   375,   134,
1991 <     135,   449,   271,   136,   137,   138,  1258,   450,  1259,   139,
1992 <     451,   452,   453,   454,   140,   455,   456,   457,   141,   142,
1993 <     458,   459,   143,   460,   461,   144,   145,   462,   376,   463,
1994 <     366,   272,   367,   146,   464,   368,   465,   466,   467,   510,
1995 <     147,   148,   515,   149,   150,   151,   152,   153,   516,   547,
1996 <    1260,   548,   369,   549,   519,   550,   551,   377,   154,   552,
1997 <     553,   556,   557,   558,   595,   559,   155,   156,   157,   273,
1998 <     158,   370,   560,   159,   160,   371,   520,   161,   561,  1197,
1999 <     562,   563,   631,   564,   597,   565,   378,   470,   162,   566,
2000 <    1144,   567,   568,   569,   570,   521,   372,   571,   373,   522,
2001 <     590,   596,   598,   274,   599,   275,   276,   600,   601,   471,
2002 <     374,   604,   605,   163,   606,   607,  1145,   164,   608,   609,
2003 <     611,   165,   166,   167,   168,   169,  1261,  1262,   472,   170,
2004 <     171,   375,   473,   379,   612,  1146,   613,   614,   615,   172,
2005 <     618,   647,   616,  1147,   617,   633,   277,   653,   278,   279,
2006 <     280,   281,   619,   620,   621,   523,   622,  1198,   623,   624,
2007 <    1148,   376,   625,  1263,   626,   282,   627,   628,    76,   629,
2008 <     173,   174,   630,   175,   634,   635,   654,   636,   663,   176,
2009 <     524,   637,   639,   640,   177,  1149,   641,   660,  1199,   178,
2010 <     377,   283,  1150,   642,    77,    78,   643,   644,  1200,   525,
2011 <      79,   645,    80,   284,   646,  1201,  1151,   666,   649,   650,
2012 <    1211,   655,   656,   474,   664,   665,   667,   668,  1202,   378,
2013 <    1203,  1204,   475,   476,  1152,   670,  1153,  1154,  1105,   672,
2014 <     673,   674,   675,  1205,   254,   676,   677,   679,   285,   286,
2015 <     680,   681,   682,  1206,   684,   685,    81,    82,  1241,   686,
2016 <     687,   688,  1106,    83,    84,    85,   689,   477,     2,     3,
2017 <     690,   709,  1107,     4,   691,   526,   379,   255,   692,  1108,
2018 <     693,   696,   698,   711,   699,    86,    87,   700,     5,  1155,
2019 <     256,     6,     7,   527,   705,  1109,   706,     8,  1212,  1156,
2020 <      88,    89,   713,  1157,   717,   257,   258,   259,   260,  1158,
2021 <     714,    90,     9,  1159,   715,  1160,    10,    11,   718,   716,
2022 <      91,   734,  1110,   742,  1161,   261,   478,    12,   903,  1213,
2023 <    1111,   719,   720,   722,  1162,   741,   337,   723,   724,  1214,
2024 <     743,    13,   744,   745,   725,   726,  1215,   764,   729,   731,
2025 <     765,    14,    15,   766,   736,   737,   338,   339,   738,  1216,
2026 <     340,  1217,  1218,   746,   747,   767,   758,   926,   748,    16,
2027 <     749,   768,   751,  1112,  1219,   769,   773,   752,   753,   772,
2028 <     755,   759,   760,   774,  1220,    17,   775,   776,   771,   777,
2029 <     778,  1113,   779,   761,   788,   789,  1168,   790,   791,   793,
2030 <     792,   795,   794,   797,   800,   805,   806,   807,   801,    92,
2031 <      93,    94,   808,   835,   809,   810,   836,   811,   812,   838,
2032 <     813,    18,   821,   822,   341,   342,   343,   823,   824,   344,
2033 <      19,    20,   825,   826,    21,    22,   827,   345,   828,   829,
2034 <     830,   839,   840,   831,   832,   833,   834,   842,   841,   346,
2035 <     347,   904,   905,   906,   907,   908,   843,   844,   909,   910,
2036 <     848,   849,   911,   912,   913,   348,   349,   914,   853,   915,
2037 <     916,   917,   852,   918,   854,   919,   920,   859,   863,   921,
2038 <     855,   856,   857,   858,   860,   922,   861,   862,   864,    23,
2039 <     927,   928,   929,   930,   931,   350,   865,   932,   933,   866,
2040 <     868,   934,   935,   936,   867,   869,   937,   871,   938,   939,
2041 <     940,   870,   941,   872,   942,   943,   975,   873,   944,  1169,
2042 <    1170,  1171,  1172,  1173,   945,   874,  1174,  1175,   875,   977,
2043 <    1176,  1177,  1178,   876,   978,  1179,   877,  1180,  1181,  1182,
2044 <     878,  1183,   879,  1184,  1185,   979,   880,  1186,   980,   981,
2045 <     881,   982,   882,  1187,   883,   884,   885,   886,   976,   887,
2046 <     888,   889,   890,   891,   892,   893,   894,   895,   896,   897,
2047 <     898,   899,   984,   986,   989,   900,   901,   902,   990,   991,
2048 <    1007,   925,   948,  1008,   949,   950,   951,   952,  1010,  1011,
2049 <     953,  1012,  1014,  1016,  1017,  1018,   954,  1044,  1046,  1048,
2050 <     955,   956,   957,   958,   959,   960,   961,  1194,   962,  1093,
2051 <     968,   316,   969,   970,   971,   972,  1235,   973,   974,   983,
2052 <    1122,   987,  1238,   985,  1195,   988,   994,  1134,   995,  1005,
2053 <    1006,   512,  1141,  1015,  1009,  1013,  1019,  1020,  1021,  1022,
2054 <    1023,  1024,  1025,  1026,  1027,  1274,  1028,  1029,  1030,  1255,
2055 <    1031,  1032,  1033,  1034,  1039,  1040,  1041,  1042,  1043,  1269,
2056 <    1268,  1236,  1253,  1047,  1045,  1050,  1051,  1049,  1057,  1058,
2057 <    1059,  1060,  1061,  1062,  1063,  1064,  1065,  1133,  1066,  1067,
2058 <    1068,  1069,  1070,   728,  1271,   740,  1071,  1072,  1073,   763,
2059 <    1074,   799,  1081,  1082,  1083,  1084,  1085,  1086,  1087,  1270,
2060 <    1251,  1088,  1254,   804,   404,   733,  1252,  1089,   757,   659,
2061 <     573,   469,  1090,  1091,  1092,  1228,  1103,  1104,  1116,  1117,
2144 <    1118,  1119,  1120,  1121,  1125,  1131,  1227,  1132,  1136,   336,
2145 <       0,  1142,  1137,  1139,  1143,  1165,  1166,  1167,     0,  1190,
2146 <    1191,  1192,  1193,  1196,  1209,  1210,  1237,     0,     0,  1242,
2147 <    1239,  1256,  1266,  1267,   518,     0,     0,     0,     0,     0,
2148 <       0,   648,     0,     0,     0,     0,     0,     0,     0,     0,
2149 <       0,     0,     0,   555,     0,     0,     0,     0,     0,     0,
2150 <       0,     0,     0,     0,     0,     0,     0,     0,   652,     0,
2151 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1948 >     802,   803,   571,   572,    67,    45,    46,  1025,    47,   381,
1949 >     579,   801,   509,   110,   371,  1071,   227,   236,   980,   286,
1950 >     460,   286,   981,   110,    48,   510,    52,    68,   997,   998,
1951 >     999,  1000,  1001,    54,    69,   982,  1044,   116,   291,   983,
1952 >    1045,  1046,   117,   118,   220,  1047,  1171,    58,   119,    59,
1953 >    1172,   220,   371,   237,  1173,  1177,   120,   480,  1174,  1178,
1954 >     544,   460,   121,   509,   122,   123,   124,   238,   239,   240,
1955 >     241,   125,    62,   111,   372,   251,   510,   126,   127,    63,
1956 >     128,   129,   130,   111,    66,   242,   131,   942,  1013,  1014,
1957 >    1015,   132,    70,   627,   628,   133,   134,   382,   252,   135,
1958 >     227,   635,   228,   637,   511,   107,  1188,   287,   136,   287,
1959 >     644,   553,   372,   647,   108,   137,   138,   469,   139,   140,
1960 >     141,   142,   143,   109,   658,   659,   115,   383,   229,   441,
1961 >     512,   253,   373,   144,   670,   671,   217,   673,   461,   145,
1962 >     146,   147,   218,   148,   219,   442,   149,   150,   545,  1072,
1963 >     151,   234,   470,   313,  1073,   511,   235,  1179,   384,   292,
1964 >     443,  1180,   284,   254,   444,   255,   256,   314,   315,   462,
1965 >     373,   316,   471,   664,   665,   943,  1181,   472,   801,   461,
1966 >    1182,   512,   285,   152,   490,   293,   228,   153,   942,  1026,
1967 >     154,   155,   156,   157,   158,   294,    76,   159,   160,   554,
1968 >     491,   257,   297,   258,   259,   260,   261,  1191,   298,   546,
1969 >     462,  1192,   229,   666,   667,   492,    77,    78,   295,   493,
1970 >     262,   544,    79,   624,   463,   729,   722,   379,   317,   318,
1971 >     319,   524,   473,   320,   692,   561,   944,   161,   162,   163,
1972 >     445,   321,   164,   299,   263,   739,   740,   165,   446,   447,
1973 >     221,   439,   322,   323,   264,   300,  -107,   221,   482,   381,
1974 >     555,    80,    81,  -107,   547,   463,   617,   324,    82,    83,
1975 >      84,   342,   494,   343,   757,   344,   943,  1193,   553,   484,
1976 >     448,  1194,   265,   266,   301,   469,   302,   345,   792,   542,
1977 >      85,    86,   303,    67,   325,   495,   800,   304,   945,   305,
1978 >     236,  1085,   346,    87,    88,   306,   347,   307,  1195,   545,
1979 >     308,   496,  1196,    89,   488,  1197,    68,   309,  1220,  1198,
1980 >     470,    90,  1221,    69,   310,   762,   348,   485,   349,   743,
1981 >     744,   699,   378,   449,   390,   326,   237,   944,   350,   391,
1982 >     471,   806,   807,   687,   441,   472,   392,   382,   393,   490,
1983 >     238,   239,   240,   241,  1168,  1169,  1170,   394,   395,   351,
1984 >     442,   396,   397,   398,   570,   491,   554,   597,   242,   563,
1985 >     546,   399,   400,   401,   497,   443,   402,   383,   403,   444,
1986 >     492,    70,   404,   405,   493,   406,   352,   407,   498,   251,
1987 >     116,   408,   409,   410,   411,   117,   118,   412,   716,   945,
1988 >     473,   119,   772,   773,   774,   775,   776,   413,   384,   120,
1989 >     311,   414,   252,   353,   415,   121,   416,   122,   123,   124,
1990 >     417,   418,   420,   422,   125,   547,   423,   555,   424,   425,
1991 >     126,   127,   426,   128,   129,   130,   427,   494,   428,   131,
1992 >     354,   429,   430,  1205,   132,   253,   431,   432,   133,   134,
1993 >     433,   434,   135,   435,   436,   445,   437,   438,   481,   486,
1994 >     495,   136,   487,   446,   447,  1206,   518,  1207,   137,   138,
1995 >     519,   139,   140,   141,   142,   143,   496,   254,   355,   255,
1996 >     256,   520,   526,   521,   522,   613,   144,   564,   523,  1189,
1997 >     527,   528,   145,   146,   147,   448,   148,   529,   530,   149,
1998 >     150,   565,   531,   151,   532,  1208,   342,   533,   343,   567,
1999 >     344,   534,   535,   536,   537,   257,   566,   258,   259,   260,
2000 >     261,  1089,   345,   538,   539,   540,   541,   560,  1142,   568,
2001 >     569,   570,   573,   574,   262,   575,   152,   346,   576,   497,
2002 >     153,   347,  1090,   154,   155,   156,   157,   158,   449,   577,
2003 >     159,   160,   578,   498,   580,   581,   582,  1091,   263,   583,
2004 >     599,   348,   619,   349,  1092,   620,   584,   585,   264,   586,
2005 >     313,   587,   588,   350,   589,  1209,  1210,   590,   591,   592,
2006 >     593,  1093,   594,   595,   314,   315,   596,   626,   316,   600,
2007 >     161,   162,   163,  1156,   351,   164,   265,   266,   601,  1143,
2008 >     165,   629,   602,   603,  1094,   630,   631,   632,  1211,   605,
2009 >     606,  1095,   633,   634,   607,     2,     3,   608,   609,     4,
2010 >     636,   352,   610,  1096,   611,   612,   615,   638,  1144,     5,
2011 >     616,   621,     6,     7,   622,   639,   640,  1145,     8,   641,
2012 >    1097,  1098,  1099,  1146,   642,   317,   318,   319,   353,     9,
2013 >     320,   857,   643,    10,    11,   645,   646,  1147,   321,  1148,
2014 >    1149,   648,   649,    12,  1157,   650,   651,   652,  1150,   322,
2015 >     323,   653,   654,   655,  1151,   354,   657,    13,   656,   880,
2016 >     660,   661,   662,   663,   324,    14,    15,   672,   677,   668,
2017 >    1100,   669,   674,  1158,   675,   678,   679,   676,   701,  1101,
2018 >     680,   682,  1159,    16,  1102,   683,  1050,  1113,  1160,   684,
2019 >    1103,   325,   703,   355,  1104,   685,  1105,    17,   686,   704,
2020 >     689,  1106,  1161,   691,  1162,  1163,  1051,  1107,   694,   705,
2021 >     702,   724,   696,  1164,   725,   697,  1052,   698,   726,  1165,
2022 >     706,   707,  1053,   727,   728,   732,   731,   733,   708,   734,
2023 >      18,   709,   326,   735,   736,   718,   730,   711,  1054,    19,
2024 >      20,   712,   713,    21,    22,   858,   859,   860,   861,   862,
2025 >     715,   863,   864,   749,   865,   866,   867,   719,   720,   868,
2026 >     737,   869,   870,  1055,   871,    76,   872,   738,   873,   874,
2027 >     721,  1056,   875,   881,   882,   883,   884,   885,   876,   886,
2028 >     887,   747,   888,   889,   890,    77,    78,   891,   748,   892,
2029 >     893,    79,   894,   750,   895,    23,   896,   897,   751,   752,
2030 >     898,  1114,  1115,  1116,  1117,  1118,   899,  1119,  1120,  1057,
2031 >    1121,  1122,  1123,   753,   754,  1124,   764,  1125,  1126,   756,
2032 >    1127,   759,  1128,   760,  1129,  1130,  1058,   765,  1131,   766,
2033 >      80,    81,   767,   768,  1132,   769,   770,    82,    83,    84,
2034 >     771,   779,   780,   781,   782,   783,   784,   785,   786,   787,
2035 >     790,   788,   789,   791,   793,   794,   795,   796,   797,    85,
2036 >      86,   798,   799,   804,   801,   805,   808,   809,   810,   811,
2037 >     812,   815,    87,    88,   819,   822,   813,   814,   816,   823,
2038 >     826,   827,    89,   817,   818,   820,   821,   824,   825,   828,
2039 >      90,   829,   830,   831,   832,   921,   833,   834,   835,   836,
2040 >     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
2041 >     847,   848,   849,   924,   850,   851,   852,   853,   854,   855,
2042 >     856,   879,   925,   902,   903,   904,   905,   906,   907,   908,
2043 >     909,   910,   911,   912,   913,   914,   915,   916,   917,   918,
2044 >     919,   920,   922,   926,   927,   923,   928,   929,   930,   931,
2045 >     932,   933,   934,   935,   936,   937,   940,   941,   951,   952,
2046 >     953,   954,   956,   955,   957,   958,   960,   959,   962,   963,
2047 >     964,   989,   991,  1140,   993,   296,  1222,   489,  1139,  1086,
2048 >    1041,  1217,   598,   717,  1216,  1067,  1183,   961,   965,   966,
2049 >     967,   968,  1203,   969,   970,   971,   972,   543,   973,   974,
2050 >     975,   976,   977,   978,   979,   984,   985,   986,   987,   988,
2051 >    1186,  1184,   992,   700,   990,   995,   994,   996,  1002,  1003,
2052 >    1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,
2053 >    1019,  1020,  1021,  1022,  1023,  1024,  1029,  1078,  1030,  1031,
2054 >     688,  1201,  1032,   723,  1033,  1218,  1034,   763,  1035,  1036,
2055 >    1219,  1199,  1037,  1038,  1039,  1040,  1048,  1202,  1049,   693,
2056 >    1061,   380,  1200,   440,  1062,  1175,  1176,   312,     0,     0,
2057 >       0,   758,     0,  1063,  1064,  1065,  1066,     0,  1070,  1076,
2058 >    1077,     0,  1081,     0,     0,  1079,  1082,  1084,  1187,  1087,
2059 >    1088,  1110,  1111,  1112,  1135,  1136,  1137,  1138,  1141,  1154,
2060 >    1155,     0,  1185,  1190,  1204,  1214,  1215,     0,   618,     0,
2061 >       0,     0,     0,     0,     0,   625,   483,     0,     0,     0,
2062         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2063 <       0,     0,     0,     0,     0,     0,     0,     0,   592,     0,
2063 >       0,     0,     0,     0,     0,     0,     0,     0,   525,     0,
2064         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2065 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   632
2065 >       0,     0,     0,     0,     0,     0,   614,     0,     0,     0,
2066 >     562
2067   };
2068  
2069 < #define yypact_value_is_default(yystate) \
2070 <  ((yystate) == (-784))
2069 > #define yypact_value_is_default(Yystate) \
2070 >  (!!((Yystate) == (-745)))
2071  
2072 < #define yytable_value_is_error(yytable_value) \
2072 > #define yytable_value_is_error(Yytable_value) \
2073    YYID (0)
2074  
2075   static const yytype_int16 yycheck[] =
2076   {
2077 <     461,   321,   322,     1,     1,     1,     1,   112,    62,   329,
2078 <     244,   245,     1,     1,     1,     1,     1,     1,     1,     1,
2079 <       1,   246,     1,     1,     1,     1,     1,   246,    23,   246,
2080 <       1,   814,   815,   816,   817,   818,    20,   244,    27,    28,
2081 <     246,   248,   246,     1,    33,   246,    35,    42,   246,    30,
2082 <     246,    46,    34,   246,    13,    14,    15,     1,    46,    40,
2083 <     246,     1,   244,     1,     1,    47,   248,   244,   244,   244,
2084 <       1,   248,   248,   248,     1,   246,    10,   246,    12,    67,
2085 <      62,    63,    64,    65,    72,    72,     1,    72,   246,     1,
2086 <      79,    80,    23,    72,   246,   415,   416,    86,    87,    88,
2087 <      82,    72,   246,   423,   102,   425,   102,     1,    20,   244,
2088 <     215,    42,   432,   248,   244,    46,   102,   437,   248,   108,
2089 <     109,   102,   106,   246,   102,   102,   102,   102,   448,   449,
2090 <       1,   451,   127,   246,   123,   124,    30,     8,     9,   459,
2091 <     460,   136,   137,   463,   132,   134,    40,    18,   135,   135,
2092 <     246,   135,   206,   112,   143,    26,   135,   211,   102,   135,
2093 <     100,    32,   246,   244,   102,    36,    37,   248,    39,   630,
2094 <     168,   102,   168,   100,    45,     1,   171,   135,   246,   244,
2095 <      51,    52,   168,   248,    55,    56,    57,   102,   128,   244,
2096 <      61,   168,   168,   168,   106,    66,   127,   247,   135,    70,
2097 <      71,   128,   247,    74,    30,   244,    77,    78,   102,   248,
2098 <     168,   247,   244,   244,    85,   146,   248,   248,   963,   964,
2099 <     965,    92,    93,   135,    95,    96,    97,    98,    99,   247,
2100 <     168,   168,   230,   553,   247,   230,   244,   244,   235,   110,
2101 <     248,   248,    68,   232,   233,   234,   243,   118,   119,   120,
2102 <     245,   122,   235,   168,   125,   126,   245,   245,   129,   245,
2103 <     243,   245,   245,   245,   245,   242,   245,   242,     1,   140,
2104 <     245,     1,   230,   247,   245,   247,   102,   211,   104,   105,
2105 <     247,   212,   178,   179,   247,   178,   179,   245,    21,    22,
2106 <     224,   247,    25,   230,   165,   151,   152,   247,   169,   230,
2107 <     620,   245,   173,   174,   175,   176,   177,   245,   628,   629,
2108 <     181,   182,   151,   152,   245,   230,    46,   247,   245,   145,
2109 <     191,   147,   148,   149,   150,   199,   200,     1,   247,     3,
2110 <     245,   247,     6,   247,   247,   244,   247,    67,   164,   247,
2111 <     247,   247,    72,   247,   247,   112,   247,   247,   247,    23,
2112 <     247,   222,   223,   243,   225,   247,    89,    90,    91,   247,
2113 <     231,    94,   247,   247,   190,   236,   247,   247,    42,   102,
2114 <     241,   247,    46,   133,   245,   247,   202,   247,   247,     1,
2115 <     247,   114,   115,   247,   247,   247,     8,     9,   155,   156,
2116 <     157,   158,   159,    67,   247,    69,    18,   130,   131,   247,
2117 <     247,   247,   132,   247,    26,   247,   247,    81,   244,   247,
2118 <      32,   237,   238,    50,    36,    37,   247,    39,   247,   245,
2119 <     247,   133,   247,    45,   247,   247,   247,   160,   102,    51,
2120 <      52,   247,     1,    55,    56,    57,    73,   247,    75,    61,
2121 <     247,   247,   247,   247,    66,   247,   247,   247,    70,    71,
2122 <     247,   247,    74,   247,   247,    77,    78,   247,   132,   247,
2123 <       1,    30,     3,    85,   247,     6,   247,   247,   247,   247,
2124 <      92,    93,   247,    95,    96,    97,    98,    99,   247,   247,
2125 <     117,   247,    23,   247,     1,   247,   247,   161,   110,   247,
2126 <     247,   244,   247,   247,   133,   247,   118,   119,   120,    68,
2127 <     122,    42,   247,   125,   126,    46,    23,   129,   247,    75,
2128 <     247,   247,   245,   247,   112,   247,   190,     1,   140,   247,
2129 <       5,   247,   247,   247,   247,    42,    67,   247,    69,    46,
2130 <     247,   244,   112,   102,   178,   104,   105,   178,   112,    23,
2131 <      81,   112,   112,   165,   112,   178,    31,   169,   178,   112,
2132 <     178,   173,   174,   175,   176,   177,   193,   194,    42,   181,
2133 <     182,   102,    46,   237,   178,    50,   178,   178,   178,   191,
2134 <     247,   245,   244,    58,   244,   244,   145,   133,   147,   148,
2135 <     149,   150,   247,   247,   247,   102,   247,   153,   247,   247,
2136 <      75,   132,   247,   230,   247,   164,   247,   247,     1,   247,
2137 <     222,   223,   247,   225,   247,   247,   244,   247,   112,   231,
2138 <     127,   247,   247,   247,   236,   100,   247,   178,   184,   241,
2139 <     161,   190,   107,   247,    27,    28,   247,   247,   194,   146,
2140 <      33,   247,    35,   202,   247,   201,   121,   112,   247,   247,
2141 <      75,   247,   247,   127,   178,   178,   133,   178,   214,   190,
2142 <     216,   217,   136,   137,   139,   178,   141,   142,    19,   112,
2143 <     112,   112,   178,   229,     1,   178,   178,   133,   237,   238,
2144 <     178,   112,   112,   239,   112,   112,    79,    80,  1139,   133,
2145 <     112,   112,    43,    86,    87,    88,   178,   171,     0,     1,
2146 <     178,   112,    53,     5,   247,   212,   237,    34,   178,    60,
2147 <     247,   178,   178,   133,   178,   108,   109,   178,    20,   194,
2148 <      47,    23,    24,   230,   178,    76,   178,    29,   153,   204,
2149 <     123,   124,   178,   208,   244,    62,    63,    64,    65,   214,
2150 <     178,   134,    44,   218,   178,   220,    48,    49,   244,   178,
2151 <     143,   244,   103,   244,   229,    82,   230,    59,    62,   184,
2152 <     111,   247,   247,   247,   239,   178,     1,   247,   247,   194,
2153 <     246,    73,   133,   133,   247,   247,   201,   178,   247,   247,
2154 <     178,    83,    84,   178,   247,   247,    21,    22,   247,   214,
2155 <      25,   216,   217,   244,   244,   133,   244,    62,   247,   101,
2156 <     247,   178,   247,   154,   229,   178,   178,   247,   247,   133,
2157 <     247,   247,   247,   133,   239,   117,   133,   133,   244,   133,
2158 <     133,   172,   133,   247,   133,   133,    62,   112,   133,   244,
2159 <     133,   247,   244,   247,   244,   133,   244,   244,   247,   232,
2160 <     233,   234,   244,   112,   244,   244,   112,   244,   244,   112,
2161 <     244,   153,   244,   244,    89,    90,    91,   244,   244,    94,
2162 <     162,   163,   244,   244,   166,   167,   244,   102,   244,   244,
2163 <     244,   112,   112,   244,   244,   244,   244,   133,   112,   114,
2164 <     115,   185,   186,   187,   188,   189,   112,   112,   192,   193,
2165 <     244,   133,   196,   197,   198,   130,   131,   201,   178,   203,
2166 <     204,   205,   133,   207,   247,   209,   210,   112,   244,   213,
2167 <     133,   133,   133,   133,   133,   219,   133,   133,   133,   221,
2168 <     185,   186,   187,   188,   189,   160,   133,   192,   193,   244,
2169 <     133,   196,   197,   198,   244,   133,   201,   244,   203,   204,
2170 <     205,   247,   207,   244,   209,   210,   133,   244,   213,   185,
2171 <     186,   187,   188,   189,   219,   244,   192,   193,   244,   247,
2172 <     196,   197,   198,   244,   133,   201,   244,   203,   204,   205,
2173 <     244,   207,   244,   209,   210,   112,   244,   213,   133,   133,
2174 <     244,   133,   244,   219,   244,   244,   244,   244,   178,   244,
2175 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2176 <     244,   244,   133,   133,   133,   244,   244,   244,   133,   112,
2177 <     133,   244,   244,   178,   244,   244,   244,   244,   133,   133,
2178 <     244,   133,   133,   133,   133,   133,   244,   133,   133,   133,
2179 <     244,   244,   244,   244,   244,   244,   244,  1036,   244,   138,
2180 <     244,    71,   244,   244,   244,   244,   112,   244,   244,   244,
2181 <     138,   244,   133,   247,  1038,   247,   244,   248,   244,   244,
2182 <     244,   240,  1000,   244,   247,   247,   244,   244,   244,   244,
2183 <     244,   244,   244,   244,   244,  1273,   244,   244,   244,  1234,
2184 <     244,   244,   244,   244,   244,   244,   244,   244,   244,  1246,
2185 <    1244,  1134,  1230,   244,   247,   244,   244,   247,   244,   244,
2186 <     244,   244,   244,   244,   244,   244,   244,   183,   244,   244,
2187 <     244,   244,   244,   479,  1250,   504,   244,   244,   244,   542,
2188 <     244,   578,   244,   244,   244,   244,   244,   244,   244,  1248,
2189 <    1224,   244,  1232,   586,   120,   494,  1226,   244,   528,   410,
2190 <     287,   179,   244,   244,   244,  1099,   244,   244,   244,   244,
2280 <     244,   244,   244,   244,   244,   244,  1097,   244,   244,    95,
2281 <      -1,   244,   247,   247,   244,   244,   244,   244,    -1,   244,
2282 <     244,   244,   244,   244,   244,   244,   244,    -1,    -1,   244,
2283 <     247,   244,   244,   244,   248,    -1,    -1,    -1,    -1,    -1,
2284 <      -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2285 <      -1,    -1,    -1,   262,    -1,    -1,    -1,    -1,    -1,    -1,
2286 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   398,    -1,
2077 >     595,   596,   300,   301,     1,   214,   215,     8,   216,     1,
2078 >     308,    99,     1,     1,     1,    51,     1,     1,   214,     1,
2079 >       1,     1,   218,     1,   216,    14,   216,    24,   772,   773,
2080 >     774,   775,   776,   216,    31,   214,   214,     1,   214,   218,
2081 >     218,   214,     6,     7,     1,   218,   214,   216,    12,   216,
2082 >     218,     1,     1,    37,   214,   214,    20,   214,   218,   218,
2083 >       1,     1,    26,     1,    28,    29,    30,    51,    52,    53,
2084 >      54,    35,   216,    61,    61,     1,    14,    41,    42,   216,
2085 >      44,    45,    46,    61,   216,    69,    50,     1,     9,    10,
2086 >      11,    55,    89,   391,   392,    59,    60,    89,    24,    63,
2087 >       1,   399,    87,   401,    93,   216,   194,    89,    72,    89,
2088 >     408,     1,    61,   411,   216,    79,    80,     1,    82,    83,
2089 >      84,    85,    86,   216,   422,   423,   216,   119,   113,     1,
2090 >     119,    57,   119,    97,   432,   433,   216,   435,   119,   103,
2091 >     104,   105,   216,   107,   216,    17,   110,   111,    89,   185,
2092 >     114,   216,    36,     1,   190,    93,   216,   214,   150,   217,
2093 >      32,   218,   216,    89,    36,    91,    92,    15,    16,   150,
2094 >     119,    19,    56,   159,   160,    89,   214,    61,    99,   119,
2095 >     218,   119,   216,   147,     1,   217,    87,   151,     1,   190,
2096 >     154,   155,   156,   157,   158,   217,     1,   161,   162,    89,
2097 >      17,   127,   217,   129,   130,   131,   132,   214,   217,   150,
2098 >     150,   218,   113,   159,   160,    32,    21,    22,   215,    36,
2099 >     146,     1,    27,   215,   205,   523,   215,   215,    76,    77,
2100 >      78,   215,   116,    81,   215,   215,   150,   201,   202,   203,
2101 >     112,    89,   206,   217,   170,   133,   134,   211,   120,   121,
2102 >     207,   215,   100,   101,   180,   217,   213,   207,   215,     1,
2103 >     150,    66,    67,   213,   205,   205,   215,   115,    73,    74,
2104 >      75,     1,    89,     3,   215,     5,    89,   214,     1,   213,
2105 >     152,   218,   208,   209,   217,     1,   217,    17,   586,   215,
2106 >      95,    96,   217,     1,   142,   112,   594,   217,   212,   217,
2107 >       1,   215,    32,   108,   109,   217,    36,   217,   214,    89,
2108 >     217,   128,   218,   118,   215,   214,    24,   217,   214,   218,
2109 >      36,   126,   218,    31,   217,   215,    56,   214,    58,   133,
2110 >     134,   215,   217,   205,   217,   183,    37,   150,    68,   217,
2111 >      56,   177,   178,   215,     1,    61,   217,    89,   217,     1,
2112 >      51,    52,    53,    54,  1013,  1014,  1015,   217,   217,    89,
2113 >      17,   217,   217,   217,    99,    17,    89,   215,    69,   117,
2114 >     150,   217,   217,   217,   191,    32,   217,   119,   217,    36,
2115 >      32,    89,   217,   217,    36,   217,   116,   217,   205,     1,
2116 >       1,   217,   217,   217,   217,     6,     7,   217,   215,   212,
2117 >     116,    12,   137,   138,   139,   140,   141,   217,   150,    20,
2118 >     215,   217,    24,   143,   217,    26,   217,    28,    29,    30,
2119 >     217,   217,   217,   217,    35,   205,   217,   150,   217,   217,
2120 >      41,    42,   217,    44,    45,    46,   217,    89,   217,    50,
2121 >     170,   217,   217,    40,    55,    57,   217,   217,    59,    60,
2122 >     217,   217,    63,   217,   217,   112,   217,   217,   217,   217,
2123 >     112,    72,   217,   120,   121,    62,   217,    64,    79,    80,
2124 >     217,    82,    83,    84,    85,    86,   128,    89,   208,    91,
2125 >      92,   217,   214,   217,   217,   215,    97,   117,   217,  1084,
2126 >     217,   217,   103,   104,   105,   152,   107,   217,   217,   110,
2127 >     111,   117,   217,   114,   217,   102,     1,   217,     3,    99,
2128 >       5,   217,   217,   217,   217,   127,   214,   129,   130,   131,
2129 >     132,     4,    17,   217,   217,   217,   217,   217,    64,    99,
2130 >     159,    99,    99,    99,   146,    99,   147,    32,   159,   191,
2131 >     151,    36,    25,   154,   155,   156,   157,   158,   205,   159,
2132 >     161,   162,    99,   205,   159,   159,   214,    40,   170,   214,
2133 >     214,    56,   117,    58,    47,   214,   217,   217,   180,   217,
2134 >       1,   217,   217,    68,   217,   172,   173,   217,   217,   217,
2135 >     217,    64,   217,   217,    15,    16,   217,   159,    19,   217,
2136 >     201,   202,   203,    64,    89,   206,   208,   209,   217,   135,
2137 >     211,    99,   217,   217,    87,   159,   159,    99,   205,   217,
2138 >     217,    94,   117,   159,   217,     0,     1,   217,   217,     4,
2139 >     159,   116,   217,   106,   217,   217,   217,    99,   164,    14,
2140 >     217,   217,    17,    18,   217,    99,    99,   173,    23,   159,
2141 >     123,   124,   125,   179,   159,    76,    77,    78,   143,    34,
2142 >      81,    51,   159,    38,    39,    99,    99,   193,    89,   195,
2143 >     196,    99,    99,    48,   135,   117,    99,    99,   204,   100,
2144 >     101,   159,   159,   217,   210,   170,   217,    62,   159,    51,
2145 >     159,   159,   159,   159,   115,    70,    71,   117,   214,   159,
2146 >     173,   159,   159,   164,   159,   214,   217,   159,   159,   182,
2147 >     217,   217,   173,    88,   187,   217,    13,    51,   179,   217,
2148 >     193,   142,   216,   208,   197,   217,   199,   102,   217,   117,
2149 >     217,   204,   193,   217,   195,   196,    33,   210,   214,   117,
2150 >     214,   159,   217,   204,   159,   217,    43,   217,   117,   210,
2151 >     214,   214,    49,   159,   159,   159,   117,   117,   217,   117,
2152 >     135,   217,   183,   117,   117,   214,   214,   217,    65,   144,
2153 >     145,   217,   217,   148,   149,   165,   166,   167,   168,   169,
2154 >     217,   171,   172,    99,   174,   175,   176,   217,   217,   179,
2155 >     117,   181,   182,    90,   184,     1,   186,   117,   188,   189,
2156 >     217,    98,   192,   165,   166,   167,   168,   169,   198,   171,
2157 >     172,   117,   174,   175,   176,    21,    22,   179,   117,   181,
2158 >     182,    27,   184,   117,   186,   200,   188,   189,   117,   214,
2159 >     192,   165,   166,   167,   168,   169,   198,   171,   172,   136,
2160 >     174,   175,   176,   214,   217,   179,   117,   181,   182,   217,
2161 >     184,   214,   186,   217,   188,   189,   153,   214,   192,   214,
2162 >      66,    67,   214,   214,   198,   214,   214,    73,    74,    75,
2163 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2164 >      99,   214,   214,    99,    99,    99,    99,    99,   117,    95,
2165 >      96,    99,    99,   214,    99,   117,   117,   159,   217,   117,
2166 >     117,    99,   108,   109,   214,   214,   117,   117,   117,   214,
2167 >     217,   214,   118,   117,   117,   117,   117,   117,   117,   214,
2168 >     126,   214,   214,   214,   214,   117,   214,   214,   214,   214,
2169 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2170 >     214,   214,   214,   117,   214,   214,   214,   214,   214,   214,
2171 >     214,   214,    99,   214,   214,   214,   214,   214,   214,   214,
2172 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2173 >     214,   214,   159,   117,   117,   217,   117,   214,   117,   217,
2174 >     117,   214,   217,   117,   117,    99,   214,   214,   214,   214,
2175 >     117,   159,   117,   217,   117,   117,   117,   217,   117,   117,
2176 >     117,   117,   117,   983,   117,    71,  1221,   230,   981,   946,
2177 >     122,  1194,   327,   499,  1192,   122,    99,   214,   214,   214,
2178 >     214,   214,  1182,   214,   214,   214,   214,   267,   214,   214,
2179 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2180 >     117,  1079,   214,   475,   217,   214,   217,   214,   214,   214,
2181 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2182 >     214,   214,   214,   214,   214,   214,   214,   163,   214,   214,
2183 >     450,  1178,   214,   513,   214,  1196,   214,   556,   214,   214,
2184 >    1198,  1172,   214,   214,   214,   214,   214,  1180,   214,   465,
2185 >     214,   112,  1174,   166,   214,  1045,  1047,    91,    -1,    -1,
2186 >      -1,   548,    -1,   214,   214,   214,   214,    -1,   214,   214,
2187 >     214,    -1,   214,    -1,    -1,   218,   217,   217,   217,   214,
2188 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2189 >     214,    -1,   214,   214,   214,   214,   214,    -1,   374,    -1,
2190 >      -1,    -1,    -1,    -1,    -1,   386,   222,    -1,    -1,    -1,
2191        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2192 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   243,    -1,
2193        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2194 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   308,    -1,
2195 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2291 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   351
2194 >      -1,    -1,    -1,    -1,    -1,    -1,   356,    -1,    -1,    -1,
2195 >     288
2196   };
2197  
2198   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2199     symbol of state STATE-NUM.  */
2200   static const yytype_uint16 yystos[] =
2201   {
2202 <       0,   250,     0,     1,     5,    20,    23,    24,    29,    44,
2203 <      48,    49,    59,    73,    83,    84,   101,   117,   153,   162,
2204 <     163,   166,   167,   221,   251,   256,   261,   283,   289,   303,
2205 <     321,   338,   352,   367,   374,   378,   388,   397,   417,   427,
2206 <     433,   437,   447,   510,   531,   244,   245,   246,   246,   322,
2207 <     398,   428,   246,   438,   246,   353,   418,   339,   246,   246,
2208 <     304,   368,   246,   246,   379,   389,   246,     1,    30,    40,
2209 <     102,   284,   285,   286,   287,   288,     1,    27,    28,    33,
2210 <      35,    79,    80,    86,    87,    88,   108,   109,   123,   124,
2211 <     134,   143,   232,   233,   234,   511,   512,   513,   514,   515,
2212 <     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
2213 <     526,   527,   528,   529,   530,   246,   246,   246,     1,    72,
2214 <     434,   435,   436,   246,     1,     8,     9,    18,    26,    32,
2215 <      36,    37,    39,    45,    51,    52,    55,    56,    57,    61,
2216 <      66,    70,    71,    74,    77,    78,    85,    92,    93,    95,
2217 <      96,    97,    98,    99,   110,   118,   119,   120,   122,   125,
2218 <     126,   129,   140,   165,   169,   173,   174,   175,   176,   177,
2219 <     181,   182,   191,   222,   223,   225,   231,   236,   241,   448,
2220 <     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
2221 <     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
2222 <     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
2223 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
2224 <     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
2225 <     502,   506,   507,   508,   509,   246,   246,   246,     1,   235,
2226 <     290,   291,   292,   293,   294,     1,   100,   128,   257,   258,
2227 <     259,   260,   246,   246,     1,    34,    47,    62,    63,    64,
2228 <      65,    82,   532,   533,   534,   535,   536,   537,   538,   539,
2229 <     540,     1,    30,    68,   102,   104,   105,   145,   147,   148,
2230 <     149,   150,   164,   190,   202,   237,   238,   262,   263,   264,
2231 <     265,   270,   271,   272,   273,   274,   275,   276,   277,   278,
2232 <     279,   280,   281,   282,   246,   246,     1,   102,   375,   376,
2233 <     377,   244,   247,   247,   247,   245,   285,   247,   247,   247,
2234 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2235 <     247,   247,   247,   247,   247,   245,   512,     1,    21,    22,
2236 <      25,    89,    90,    91,    94,   102,   114,   115,   130,   131,
2237 <     160,   323,   324,   325,   326,   327,   328,   329,   330,   331,
2238 <     332,   333,   334,   335,   336,   337,     1,     3,     6,    23,
2239 <      42,    46,    67,    69,    81,   102,   132,   161,   190,   237,
2240 <     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
2241 <     412,   413,   414,   415,   416,     1,    72,   135,   429,   430,
2242 <     431,   432,   247,   245,   435,     1,   102,   135,   168,   439,
2243 <     443,   444,   445,   446,   247,   247,   247,   247,   247,   247,
2244 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2245 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2246 <     247,   247,   247,   247,   247,   503,   247,   499,   247,   247,
2247 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2248 <     247,   247,   247,   247,   247,   247,   247,   247,   245,   449,
2249 <       1,    23,    42,    46,   127,   136,   137,   171,   230,   354,
2250 <     355,   356,   357,   358,   359,   360,   364,   365,   366,     1,
2251 <     135,   168,   230,   419,   423,   424,   425,   426,     1,    46,
2252 <      67,    72,   132,   340,   344,   345,   346,   350,   351,   244,
2253 <     247,   245,   291,   243,   244,   247,   247,   245,   258,     1,
2254 <      23,    42,    46,   102,   127,   146,   212,   230,   305,   306,
2255 <     307,   308,   309,   310,   311,   312,   313,   317,     1,    20,
2256 <     106,   135,   369,   370,   371,   372,   373,   247,   247,   247,
2257 <     247,   247,   247,   247,   245,   533,   244,   247,   247,   247,
2258 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2259 <     247,   247,   245,   263,     1,   102,   168,   230,   380,   381,
2260 <     382,   383,   384,     1,   102,   168,   390,   391,   392,   393,
2261 <     247,   245,   376,   133,   133,   133,   244,   112,   112,   178,
2262 <     178,   112,   253,   253,   112,   112,   112,   178,   178,   112,
2263 <     253,   178,   178,   178,   178,   178,   244,   244,   247,   247,
2264 <     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2265 <     247,   245,   324,   244,   247,   247,   247,   247,   409,   247,
2266 <     247,   247,   247,   247,   247,   247,   247,   245,   400,   247,
2267 <     247,   245,   430,   133,   244,   247,   247,   440,   245,   444,
2268 <     178,   253,   253,   112,   178,   178,   112,   133,   178,   253,
2269 <     178,   253,   112,   112,   112,   178,   178,   178,   253,   133,
2270 <     178,   112,   112,   253,   112,   112,   133,   112,   112,   178,
2271 <     178,   247,   178,   247,   253,   253,   178,   253,   178,   178,
2272 <     178,   178,   179,   178,   179,   178,   178,   253,   253,   112,
2273 <     255,   133,   253,   178,   178,   178,   178,   244,   244,   247,
2274 <     247,   361,   247,   247,   247,   247,   247,   245,   355,   247,
2275 <     420,   247,   245,   424,   244,   341,   247,   247,   247,   245,
2276 <     345,   178,   244,   246,   133,   133,   244,   244,   247,   247,
2277 <     318,   247,   247,   247,   314,   247,   245,   306,   244,   247,
2278 <     247,   247,   245,   370,   178,   178,   178,   133,   178,   178,
2279 <     253,   244,   133,   178,   133,   133,   133,   133,   133,   133,
2280 <     151,   152,   266,   267,   151,   152,   268,   269,   133,   133,
2281 <     112,   133,   133,   244,   244,   247,   385,   247,   245,   381,
2282 <     244,   247,   394,   245,   391,   133,   244,   244,   244,   244,
2283 <     244,   244,   244,   244,   155,   156,   157,   158,   159,   252,
2284 <     253,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2285 <     244,   244,   244,   244,   244,   112,   112,   253,   112,   112,
2286 <     112,   112,   133,   112,   112,   253,   253,   255,   244,   133,
2287 <     199,   200,   133,   178,   247,   133,   133,   133,   133,   112,
2288 <     133,   133,   133,   244,   133,   133,   244,   244,   133,   133,
2289 <     247,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2290 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2291 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2292 <     244,   244,   244,    62,   185,   186,   187,   188,   189,   192,
2293 <     193,   196,   197,   198,   201,   203,   204,   205,   207,   209,
2294 <     210,   213,   219,   504,   505,   244,    62,   185,   186,   187,
2295 <     188,   189,   192,   193,   196,   197,   198,   201,   203,   204,
2296 <     205,   207,   209,   210,   213,   219,   500,   501,   244,   244,
2297 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2298 <     244,   244,   244,    13,    14,    15,   254,   255,   244,   244,
2299 <     244,   244,   244,   244,   244,   133,   178,   247,   133,   112,
2300 <     133,   133,   133,   244,   133,   247,   133,   244,   247,   133,
2301 <     133,   112,   348,   349,   244,   244,     1,   102,   168,   242,
2302 <     295,   296,   297,   298,   299,   244,   244,   133,   178,   247,
2303 <     133,   133,   133,   247,   133,   244,   133,   133,   133,   244,
2304 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2305 <     244,   244,   244,   244,   244,   244,   248,   244,   248,   244,
2306 <     244,   244,   244,   244,   133,   247,   133,   244,   133,   247,
2307 <     244,   244,   252,   252,   252,   252,   252,   244,   244,   244,
2308 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2309 <     244,   244,   244,   244,   244,    10,    12,   211,   224,   410,
2310 <     411,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2311 <     244,   244,   244,   138,   441,   442,   244,   248,   244,   248,
2312 <     254,   254,   254,   244,   244,    19,    43,    53,    60,    76,
2313 <     103,   111,   154,   172,   362,   363,   244,   244,   244,   244,
2314 <     244,   244,   138,   421,   422,   244,    62,   206,   211,   342,
2315 <     343,   244,   244,   183,   248,   347,   244,   247,   300,   247,
2316 <     245,   296,   244,   244,     5,    31,    50,    58,    75,   100,
2317 <     107,   121,   139,   141,   142,   194,   204,   208,   214,   218,
2318 <     220,   229,   239,   319,   320,   244,   244,   244,    62,   185,
2319 <     186,   187,   188,   189,   192,   193,   196,   197,   198,   201,
2320 <     203,   204,   205,   207,   209,   210,   213,   219,   315,   316,
2321 <     244,   244,   244,   244,   267,   269,   244,    75,   153,   184,
2322 <     194,   201,   214,   216,   217,   229,   239,   386,   387,   244,
2323 <     244,    75,   153,   184,   194,   201,   214,   216,   217,   229,
2324 <     239,   395,   396,   244,   248,   244,   248,   505,   501,   244,
2421 <     248,   244,   248,   244,   248,   112,   349,   244,   133,   247,
2422 <     215,   255,   244,   244,   248,   244,   248,   244,   248,   244,
2423 <     248,   411,   442,   363,   422,   343,   244,    50,    73,    75,
2424 <     117,   193,   194,   230,   301,   302,   244,   244,   320,   316,
2425 <     387,   396,   244,   248,   302
2202 >       0,   220,     0,     1,     4,    14,    17,    18,    23,    34,
2203 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2204 >     145,   148,   149,   200,   221,   226,   231,   253,   259,   273,
2205 >     291,   308,   322,   337,   344,   348,   358,   367,   387,   397,
2206 >     403,   407,   417,   475,   492,   214,   215,   216,   216,   292,
2207 >     368,   398,   216,   408,   216,   323,   388,   309,   216,   216,
2208 >     274,   338,   216,   216,   349,   359,   216,     1,    24,    31,
2209 >      89,   254,   255,   256,   257,   258,     1,    21,    22,    27,
2210 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2211 >     126,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2212 >     485,   486,   487,   488,   489,   490,   491,   216,   216,   216,
2213 >       1,    61,   404,   405,   406,   216,     1,     6,     7,    12,
2214 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2215 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2216 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2217 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2218 >     162,   201,   202,   203,   206,   211,   418,   419,   420,   421,
2219 >     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
2220 >     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
2221 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2222 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2223 >     462,   463,   464,   468,   472,   473,   474,   216,   216,   216,
2224 >       1,   207,   260,   261,   262,   263,   264,     1,    87,   113,
2225 >     227,   228,   229,   230,   216,   216,     1,    37,    51,    52,
2226 >      53,    54,    69,   493,   494,   495,   496,   497,   498,   499,
2227 >     500,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2228 >     131,   132,   146,   170,   180,   208,   209,   232,   233,   234,
2229 >     235,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2230 >     249,   250,   251,   252,   216,   216,     1,    89,   345,   346,
2231 >     347,   214,   217,   217,   217,   215,   255,   217,   217,   217,
2232 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2233 >     217,   215,   477,     1,    15,    16,    19,    76,    77,    78,
2234 >      81,    89,   100,   101,   115,   142,   183,   293,   294,   295,
2235 >     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2236 >     306,   307,     1,     3,     5,    17,    32,    36,    56,    58,
2237 >      68,    89,   116,   143,   170,   208,   369,   370,   371,   372,
2238 >     373,   374,   375,   376,   377,   378,   382,   383,   384,   385,
2239 >     386,     1,    61,   119,   399,   400,   401,   402,   217,   215,
2240 >     405,     1,    89,   119,   150,   409,   413,   414,   415,   416,
2241 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2242 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2243 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   469,
2244 >     217,   465,   217,   217,   217,   217,   217,   217,   217,   217,
2245 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   215,
2246 >     419,     1,    17,    32,    36,   112,   120,   121,   152,   205,
2247 >     324,   325,   326,   327,   328,   329,   330,   334,   335,   336,
2248 >       1,   119,   150,   205,   389,   393,   394,   395,   396,     1,
2249 >      36,    56,    61,   116,   310,   314,   315,   316,   320,   321,
2250 >     214,   217,   215,   261,   213,   214,   217,   217,   215,   228,
2251 >       1,    17,    32,    36,    89,   112,   128,   191,   205,   275,
2252 >     276,   277,   278,   279,   280,   281,   282,   283,   287,     1,
2253 >      14,    93,   119,   339,   340,   341,   342,   343,   217,   217,
2254 >     217,   217,   217,   217,   215,   494,   214,   217,   217,   217,
2255 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2256 >     217,   217,   215,   233,     1,    89,   150,   205,   350,   351,
2257 >     352,   353,   354,     1,    89,   150,   360,   361,   362,   363,
2258 >     217,   215,   346,   117,   117,   117,   214,    99,    99,   159,
2259 >      99,   223,   223,    99,    99,    99,   159,   159,    99,   223,
2260 >     159,   159,   214,   214,   217,   217,   217,   217,   217,   217,
2261 >     217,   217,   217,   217,   217,   217,   217,   215,   294,   214,
2262 >     217,   217,   217,   217,   379,   217,   217,   217,   217,   217,
2263 >     217,   217,   217,   215,   370,   217,   217,   215,   400,   117,
2264 >     214,   217,   217,   410,   215,   414,   159,   223,   223,    99,
2265 >     159,   159,    99,   117,   159,   223,   159,   223,    99,    99,
2266 >      99,   159,   159,   159,   223,    99,    99,   223,    99,    99,
2267 >     117,    99,    99,   159,   159,   217,   159,   217,   223,   223,
2268 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2269 >     223,   223,   117,   223,   159,   159,   159,   214,   214,   217,
2270 >     217,   331,   217,   217,   217,   217,   217,   215,   325,   217,
2271 >     390,   217,   215,   394,   214,   311,   217,   217,   217,   215,
2272 >     315,   159,   214,   216,   117,   117,   214,   214,   217,   217,
2273 >     288,   217,   217,   217,   284,   217,   215,   276,   214,   217,
2274 >     217,   217,   215,   340,   159,   159,   117,   159,   159,   223,
2275 >     214,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2276 >     134,   236,   237,   133,   134,   238,   239,   117,   117,    99,
2277 >     117,   117,   214,   214,   217,   355,   217,   215,   351,   214,
2278 >     217,   364,   215,   361,   117,   214,   214,   214,   214,   214,
2279 >     214,   214,   137,   138,   139,   140,   141,   222,   223,   214,
2280 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2281 >      99,    99,   223,    99,    99,    99,    99,   117,    99,    99,
2282 >     223,    99,   225,   225,   214,   117,   177,   178,   117,   159,
2283 >     217,   117,   117,   117,   117,    99,   117,   117,   117,   214,
2284 >     117,   117,   214,   214,   117,   117,   217,   214,   214,   214,
2285 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2286 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2287 >     214,   214,   214,   214,   214,   214,   214,    51,   165,   166,
2288 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2289 >     182,   184,   186,   188,   189,   192,   198,   470,   471,   214,
2290 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2291 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2292 >     466,   467,   214,   214,   214,   214,   214,   214,   214,   214,
2293 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2294 >     214,   117,   159,   217,   117,    99,   117,   117,   117,   214,
2295 >     117,   217,   117,   214,   217,   117,   117,    99,   318,   319,
2296 >     214,   214,     1,    89,   150,   212,   265,   266,   267,   268,
2297 >     269,   214,   214,   117,   159,   217,   117,   117,   117,   217,
2298 >     117,   214,   117,   117,   117,   214,   214,   214,   214,   214,
2299 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2300 >     214,   218,   214,   218,   214,   214,   214,   214,   214,   117,
2301 >     217,   117,   214,   117,   217,   214,   214,   222,   222,   222,
2302 >     222,   222,   214,   214,   214,   214,   214,   214,   214,   214,
2303 >     214,   214,   214,     9,    10,    11,   224,   225,   214,   214,
2304 >     214,   214,   214,   214,   214,     8,   190,   380,   381,   214,
2305 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2306 >     214,   122,   411,   412,   214,   218,   214,   218,   214,   214,
2307 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   332,
2308 >     333,   214,   214,   214,   214,   214,   214,   122,   391,   392,
2309 >     214,    51,   185,   190,   312,   313,   214,   214,   163,   218,
2310 >     317,   214,   217,   270,   217,   215,   266,   214,   214,     4,
2311 >      25,    40,    47,    64,    87,    94,   106,   123,   124,   125,
2312 >     173,   182,   187,   193,   197,   199,   204,   210,   289,   290,
2313 >     214,   214,   214,    51,   165,   166,   167,   168,   169,   171,
2314 >     172,   174,   175,   176,   179,   181,   182,   184,   186,   188,
2315 >     189,   192,   198,   285,   286,   214,   214,   214,   214,   237,
2316 >     239,   214,    64,   135,   164,   173,   179,   193,   195,   196,
2317 >     204,   210,   356,   357,   214,   214,    64,   135,   164,   173,
2318 >     179,   193,   195,   196,   204,   210,   365,   366,   224,   224,
2319 >     224,   214,   218,   214,   218,   471,   467,   214,   218,   214,
2320 >     218,   214,   218,    99,   319,   214,   117,   217,   194,   225,
2321 >     214,   214,   218,   214,   218,   214,   218,   214,   218,   381,
2322 >     412,   333,   392,   313,   214,    40,    62,    64,   102,   172,
2323 >     173,   205,   271,   272,   214,   214,   290,   286,   357,   366,
2324 >     214,   218,   272
2325   };
2326  
2327   #define yyerrok         (yyerrstatus = 0)
# Line 2469 | Line 2368 | do
2368      }                                                           \
2369   while (YYID (0))
2370  
2371 <
2371 > /* Error token number */
2372   #define YYTERROR        1
2373   #define YYERRCODE       256
2374  
2476 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2477   If N is 0, then set CURRENT to the empty location which ends
2478   the previous symbol: RHS[0] (always defined).  */
2479
2480 #ifndef YYLLOC_DEFAULT
2481 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2482    do                                                                  \
2483      if (YYID (N))                                                     \
2484        {                                                               \
2485          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2486          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2487          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2488          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2489        }                                                               \
2490      else                                                              \
2491        {                                                               \
2492          (Current).first_line   = (Current).last_line   =              \
2493            YYRHSLOC (Rhs, 0).last_line;                                \
2494          (Current).first_column = (Current).last_column =              \
2495            YYRHSLOC (Rhs, 0).last_column;                              \
2496        }                                                               \
2497    while (YYID (0))
2498 #endif
2499
2500 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2501
2502
2375  
2376   /* This macro is provided for backward compatibility. */
2505
2377   #ifndef YY_LOCATION_PRINT
2378   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2379   #endif
2380  
2381  
2382   /* YYLEX -- calling `yylex' with the right arguments.  */
2512
2383   #ifdef YYLEX_PARAM
2384   # define YYLEX yylex (YYLEX_PARAM)
2385   #else
# Line 2974 | Line 2844 | yydestruct (yymsg, yytype, yyvaluep)
2844   /* The lookahead symbol.  */
2845   int yychar;
2846  
2847 +
2848 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2849 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2850 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2851 + #endif
2852 + #ifndef YY_INITIAL_VALUE
2853 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2854 + #endif
2855 +
2856   /* The semantic value of the lookahead symbol.  */
2857 < YYSTYPE yylval;
2857 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2858  
2859   /* Number of syntax errors so far.  */
2860   int yynerrs;
# Line 3033 | Line 2912 | yyparse ()
2912    int yyn;
2913    int yyresult;
2914    /* Lookahead token as an internal (translated) token number.  */
2915 <  int yytoken;
2915 >  int yytoken = 0;
2916    /* The variables used to return semantic value and location from the
2917       action routines.  */
2918    YYSTYPE yyval;
# Line 3051 | Line 2930 | yyparse ()
2930       Keep to zero when no symbol should be popped.  */
2931    int yylen = 0;
2932  
2933 <  yytoken = 0;
2934 <  yyss = yyssa;
3056 <  yyvs = yyvsa;
2933 >  yyssp = yyss = yyssa;
2934 >  yyvsp = yyvs = yyvsa;
2935    yystacksize = YYINITDEPTH;
2936  
2937    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3062 | Line 2940 | yyparse ()
2940    yyerrstatus = 0;
2941    yynerrs = 0;
2942    yychar = YYEMPTY; /* Cause a token to be read.  */
3065
3066  /* Initialize stack pointers.
3067     Waste one element of value and location stack
3068     so that they stay on the same level as the state stack.
3069     The wasted elements are never initialized.  */
3070  yyssp = yyss;
3071  yyvsp = yyvs;
3072
2943    goto yysetstate;
2944  
2945   /*------------------------------------------------------------.
# Line 3210 | Line 3080 | yybackup:
3080    yychar = YYEMPTY;
3081  
3082    yystate = yyn;
3083 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3084    *++yyvsp = yylval;
3085 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3086  
3087    goto yynewstate;
3088  
# Line 3247 | Line 3119 | yyreduce:
3119    switch (yyn)
3120      {
3121          case 26:
3122 <
3123 < /* Line 1788 of yacc.c  */
3252 < #line 386 "conf_parser.y"
3122 > /* Line 1778 of yacc.c  */
3123 > #line 383 "conf_parser.y"
3124      { (yyval.number) = 0; }
3125      break;
3126  
3127    case 28:
3128 <
3129 < /* Line 1788 of yacc.c  */
3259 < #line 388 "conf_parser.y"
3128 > /* Line 1778 of yacc.c  */
3129 > #line 385 "conf_parser.y"
3130      {
3131                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3132                  }
3133      break;
3134  
3135    case 29:
3136 <
3137 < /* Line 1788 of yacc.c  */
3268 < #line 392 "conf_parser.y"
3136 > /* Line 1778 of yacc.c  */
3137 > #line 389 "conf_parser.y"
3138      {
3139                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3140                  }
3141      break;
3142  
3143    case 30:
3144 <
3145 < /* Line 1788 of yacc.c  */
3277 < #line 396 "conf_parser.y"
3144 > /* Line 1778 of yacc.c  */
3145 > #line 393 "conf_parser.y"
3146      {
3147                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3148                  }
3149      break;
3150  
3151    case 31:
3152 <
3153 < /* Line 1788 of yacc.c  */
3286 < #line 400 "conf_parser.y"
3152 > /* Line 1778 of yacc.c  */
3153 > #line 397 "conf_parser.y"
3154      {
3155                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3156                  }
3157      break;
3158  
3159    case 32:
3160 <
3161 < /* Line 1788 of yacc.c  */
3295 < #line 404 "conf_parser.y"
3160 > /* Line 1778 of yacc.c  */
3161 > #line 401 "conf_parser.y"
3162      {
3163                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3164                  }
3165      break;
3166  
3167    case 33:
3168 <
3169 < /* Line 1788 of yacc.c  */
3304 < #line 408 "conf_parser.y"
3168 > /* Line 1778 of yacc.c  */
3169 > #line 405 "conf_parser.y"
3170      {
3171                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3172                  }
3173      break;
3174  
3175    case 34:
3176 <
3177 < /* Line 1788 of yacc.c  */
3313 < #line 413 "conf_parser.y"
3176 > /* Line 1778 of yacc.c  */
3177 > #line 410 "conf_parser.y"
3178      { (yyval.number) = 0; }
3179      break;
3180  
3181    case 36:
3182 <
3183 < /* Line 1788 of yacc.c  */
3320 < #line 414 "conf_parser.y"
3182 > /* Line 1778 of yacc.c  */
3183 > #line 411 "conf_parser.y"
3184      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3185      break;
3186  
3187    case 37:
3188 <
3189 < /* Line 1788 of yacc.c  */
3327 < #line 415 "conf_parser.y"
3188 > /* Line 1778 of yacc.c  */
3189 > #line 412 "conf_parser.y"
3190      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3191      break;
3192  
3193    case 38:
3194 <
3195 < /* Line 1788 of yacc.c  */
3334 < #line 416 "conf_parser.y"
3194 > /* Line 1778 of yacc.c  */
3195 > #line 413 "conf_parser.y"
3196      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3197      break;
3198  
3199    case 39:
3200 <
3201 < /* Line 1788 of yacc.c  */
3341 < #line 417 "conf_parser.y"
3200 > /* Line 1778 of yacc.c  */
3201 > #line 414 "conf_parser.y"
3202      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3203      break;
3204  
3205    case 46:
3206 <
3207 < /* Line 1788 of yacc.c  */
3348 < #line 431 "conf_parser.y"
3206 > /* Line 1778 of yacc.c  */
3207 > #line 428 "conf_parser.y"
3208      {
3209    if (conf_parser_ctx.pass == 2)
3210      add_conf_module(libio_basename(yylval.string));
# Line 3353 | Line 3212 | yyreduce:
3212      break;
3213  
3214    case 47:
3215 <
3216 < /* Line 1788 of yacc.c  */
3358 < #line 437 "conf_parser.y"
3215 > /* Line 1778 of yacc.c  */
3216 > #line 434 "conf_parser.y"
3217      {
3218    if (conf_parser_ctx.pass == 2)
3219      mod_add_path(yylval.string);
# Line 3363 | Line 3221 | yyreduce:
3221      break;
3222  
3223    case 71:
3224 <
3225 < /* Line 1788 of yacc.c  */
3368 < #line 462 "conf_parser.y"
3224 > /* Line 1778 of yacc.c  */
3225 > #line 459 "conf_parser.y"
3226      {
3227   #ifdef HAVE_LIBCRYPTO
3228    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3375 | Line 3232 | yyreduce:
3232      break;
3233  
3234    case 72:
3235 <
3236 < /* Line 1788 of yacc.c  */
3380 < #line 468 "conf_parser.y"
3235 > /* Line 1778 of yacc.c  */
3236 > #line 465 "conf_parser.y"
3237      {
3238   #ifdef HAVE_LIBCRYPTO
3239    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3387 | Line 3243 | yyreduce:
3243      break;
3244  
3245    case 75:
3246 <
3247 < /* Line 1788 of yacc.c  */
3392 < #line 477 "conf_parser.y"
3246 > /* Line 1778 of yacc.c  */
3247 > #line 474 "conf_parser.y"
3248      {
3249   #ifdef HAVE_LIBCRYPTO
3250    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3399 | Line 3254 | yyreduce:
3254      break;
3255  
3256    case 76:
3257 <
3258 < /* Line 1788 of yacc.c  */
3404 < #line 483 "conf_parser.y"
3257 > /* Line 1778 of yacc.c  */
3258 > #line 480 "conf_parser.y"
3259      {
3260   #ifdef HAVE_LIBCRYPTO
3261    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3411 | Line 3265 | yyreduce:
3265      break;
3266  
3267    case 77:
3268 <
3269 < /* Line 1788 of yacc.c  */
3416 < #line 491 "conf_parser.y"
3268 > /* Line 1778 of yacc.c  */
3269 > #line 488 "conf_parser.y"
3270      {
3271   #ifdef HAVE_LIBCRYPTO
3272    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3454 | Line 3307 | yyreduce:
3307      break;
3308  
3309    case 78:
3310 <
3311 < /* Line 1788 of yacc.c  */
3459 < #line 530 "conf_parser.y"
3310 > /* Line 1778 of yacc.c  */
3311 > #line 527 "conf_parser.y"
3312      {
3313   #ifdef HAVE_LIBCRYPTO
3314    if (conf_parser_ctx.pass == 1)
# Line 3475 | Line 3327 | yyreduce:
3327        ServerInfo.rsa_private_key_file = NULL;
3328      }
3329  
3330 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3330 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3331  
3332      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3333      {
# Line 3517 | Line 3369 | yyreduce:
3369      break;
3370  
3371    case 79:
3372 <
3373 < /* Line 1788 of yacc.c  */
3522 < #line 589 "conf_parser.y"
3372 > /* Line 1778 of yacc.c  */
3373 > #line 586 "conf_parser.y"
3374      {
3375   /* TBD - XXX: error reporting */
3376   #ifdef HAVE_LIBCRYPTO
# Line 3549 | Line 3400 | yyreduce:
3400      break;
3401  
3402    case 80:
3403 <
3404 < /* Line 1788 of yacc.c  */
3554 < #line 617 "conf_parser.y"
3403 > /* Line 1778 of yacc.c  */
3404 > #line 614 "conf_parser.y"
3405      {
3406   #ifdef HAVE_LIBCRYPTO
3407    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3561 | Line 3411 | yyreduce:
3411      break;
3412  
3413    case 81:
3414 <
3415 < /* Line 1788 of yacc.c  */
3566 < #line 625 "conf_parser.y"
3414 > /* Line 1778 of yacc.c  */
3415 > #line 622 "conf_parser.y"
3416      {
3417    /* this isn't rehashable */
3418    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3419    {
3420      if (valid_servname(yylval.string))
3421 <      DupString(ServerInfo.name, yylval.string);
3421 >      ServerInfo.name = xstrdup(yylval.string);
3422      else
3423      {
3424        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
# Line 3580 | Line 3429 | yyreduce:
3429      break;
3430  
3431    case 82:
3432 <
3433 < /* Line 1788 of yacc.c  */
3585 < #line 640 "conf_parser.y"
3432 > /* Line 1778 of yacc.c  */
3433 > #line 637 "conf_parser.y"
3434      {
3435    /* this isn't rehashable */
3436    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3437    {
3438      if (valid_sid(yylval.string))
3439 <      DupString(ServerInfo.sid, yylval.string);
3439 >      ServerInfo.sid = xstrdup(yylval.string);
3440      else
3441      {
3442        ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
# Line 3599 | Line 3447 | yyreduce:
3447      break;
3448  
3449    case 83:
3450 <
3451 < /* Line 1788 of yacc.c  */
3604 < #line 655 "conf_parser.y"
3450 > /* Line 1778 of yacc.c  */
3451 > #line 652 "conf_parser.y"
3452      {
3453    if (conf_parser_ctx.pass == 2)
3454    {
3455      MyFree(ServerInfo.description);
3456 <    DupString(ServerInfo.description,yylval.string);
3456 >    ServerInfo.description = xstrdup(yylval.string);
3457    }
3458   }
3459      break;
3460  
3461    case 84:
3462 <
3463 < /* Line 1788 of yacc.c  */
3617 < #line 664 "conf_parser.y"
3462 > /* Line 1778 of yacc.c  */
3463 > #line 661 "conf_parser.y"
3464      {
3465    if (conf_parser_ctx.pass == 2)
3466    {
# Line 3624 | Line 3470 | yyreduce:
3470        p = '\0';
3471  
3472      MyFree(ServerInfo.network_name);
3473 <    DupString(ServerInfo.network_name, yylval.string);
3473 >    ServerInfo.network_name = xstrdup(yylval.string);
3474    }
3475   }
3476      break;
3477  
3478    case 85:
3479 <
3480 < /* Line 1788 of yacc.c  */
3635 < #line 678 "conf_parser.y"
3479 > /* Line 1778 of yacc.c  */
3480 > #line 675 "conf_parser.y"
3481      {
3482    if (conf_parser_ctx.pass == 2)
3483    {
3484      MyFree(ServerInfo.network_desc);
3485 <    DupString(ServerInfo.network_desc, yylval.string);
3485 >    ServerInfo.network_desc = xstrdup(yylval.string);
3486    }
3487   }
3488      break;
3489  
3490    case 86:
3491 <
3492 < /* Line 1788 of yacc.c  */
3648 < #line 687 "conf_parser.y"
3491 > /* Line 1778 of yacc.c  */
3492 > #line 684 "conf_parser.y"
3493      {
3494    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3495    {
# Line 3675 | Line 3519 | yyreduce:
3519      break;
3520  
3521    case 87:
3522 <
3523 < /* Line 1788 of yacc.c  */
3680 < #line 715 "conf_parser.y"
3522 > /* Line 1778 of yacc.c  */
3523 > #line 712 "conf_parser.y"
3524      {
3525   #ifdef IPV6
3526    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3709 | Line 3552 | yyreduce:
3552      break;
3553  
3554    case 88:
3555 <
3556 < /* Line 1788 of yacc.c  */
3714 < #line 745 "conf_parser.y"
3555 > /* Line 1778 of yacc.c  */
3556 > #line 742 "conf_parser.y"
3557      {
3558    if (conf_parser_ctx.pass == 2)
3559    {
# Line 3736 | Line 3578 | yyreduce:
3578      break;
3579  
3580    case 89:
3581 <
3582 < /* Line 1788 of yacc.c  */
3741 < #line 768 "conf_parser.y"
3581 > /* Line 1778 of yacc.c  */
3582 > #line 765 "conf_parser.y"
3583      {
3584    if (conf_parser_ctx.pass == 2)
3585      ServerInfo.hub = yylval.number;
# Line 3746 | Line 3587 | yyreduce:
3587      break;
3588  
3589    case 97:
3590 <
3591 < /* Line 1788 of yacc.c  */
3751 < #line 783 "conf_parser.y"
3590 > /* Line 1778 of yacc.c  */
3591 > #line 780 "conf_parser.y"
3592      {
3593    if (conf_parser_ctx.pass == 2)
3594    {
3595      MyFree(AdminInfo.name);
3596 <    DupString(AdminInfo.name, yylval.string);
3596 >    AdminInfo.name = xstrdup(yylval.string);
3597    }
3598   }
3599      break;
3600  
3601    case 98:
3602 <
3603 < /* Line 1788 of yacc.c  */
3764 < #line 792 "conf_parser.y"
3602 > /* Line 1778 of yacc.c  */
3603 > #line 789 "conf_parser.y"
3604      {
3605    if (conf_parser_ctx.pass == 2)
3606    {
3607      MyFree(AdminInfo.email);
3608 <    DupString(AdminInfo.email, yylval.string);
3608 >    AdminInfo.email = xstrdup(yylval.string);
3609    }
3610   }
3611      break;
3612  
3613    case 99:
3614 <
3615 < /* Line 1788 of yacc.c  */
3777 < #line 801 "conf_parser.y"
3614 > /* Line 1778 of yacc.c  */
3615 > #line 798 "conf_parser.y"
3616      {
3617    if (conf_parser_ctx.pass == 2)
3618    {
3619      MyFree(AdminInfo.description);
3620 <    DupString(AdminInfo.description, yylval.string);
3620 >    AdminInfo.description = xstrdup(yylval.string);
3621    }
3622   }
3623      break;
3624  
3625    case 106:
3626 <
3627 < /* Line 1788 of yacc.c  */
3790 < #line 819 "conf_parser.y"
3626 > /* Line 1778 of yacc.c  */
3627 > #line 816 "conf_parser.y"
3628      {
3629    if (conf_parser_ctx.pass == 2)
3630      ConfigLoggingEntry.use_logging = yylval.number;
# Line 3795 | Line 3632 | yyreduce:
3632      break;
3633  
3634    case 107:
3635 <
3636 < /* Line 1788 of yacc.c  */
3800 < #line 825 "conf_parser.y"
3635 > /* Line 1778 of yacc.c  */
3636 > #line 822 "conf_parser.y"
3637      {
3638 <  lfile[0] = '\0';
3639 <  ltype = 0;
3804 <  lsize = 0;
3638 >  if (conf_parser_ctx.pass == 2)
3639 >    reset_block_state();
3640   }
3641      break;
3642  
3643    case 108:
3644 <
3645 < /* Line 1788 of yacc.c  */
3811 < #line 830 "conf_parser.y"
3644 > /* Line 1778 of yacc.c  */
3645 > #line 826 "conf_parser.y"
3646      {
3647 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3648 <    log_add_file(ltype, lsize, lfile);
3647 >  if (conf_parser_ctx.pass != 2)
3648 >    break;
3649 >
3650 >  if (block_state.type.value && block_state.file.buf[0])
3651 >    log_add_file(block_state.type.value, block_state.size.value,
3652 >                 block_state.file.buf);
3653   }
3654      break;
3655  
3656    case 115:
3657 <
3820 < /* Line 1788 of yacc.c  */
3657 > /* Line 1778 of yacc.c  */
3658   #line 842 "conf_parser.y"
3659      {
3660 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3660 >  if (conf_parser_ctx.pass != 2)
3661 >    break;
3662 >
3663 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3664   }
3665      break;
3666  
3667    case 116:
3668 <
3669 < /* Line 1788 of yacc.c  */
3830 < #line 847 "conf_parser.y"
3668 > /* Line 1778 of yacc.c  */
3669 > #line 850 "conf_parser.y"
3670      {
3671 <  lsize = (yyvsp[(3) - (4)].number);
3671 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3672   }
3673      break;
3674  
3675    case 117:
3676 <
3677 < /* Line 1788 of yacc.c  */
3839 < #line 850 "conf_parser.y"
3676 > /* Line 1778 of yacc.c  */
3677 > #line 853 "conf_parser.y"
3678      {
3679 <  lsize = 0;
3679 >  block_state.size.value = 0;
3680   }
3681      break;
3682  
3683    case 118:
3684 <
3685 < /* Line 1788 of yacc.c  */
3848 < #line 855 "conf_parser.y"
3684 > /* Line 1778 of yacc.c  */
3685 > #line 858 "conf_parser.y"
3686      {
3687    if (conf_parser_ctx.pass == 2)
3688 <    ltype = 0;
3688 >    block_state.type.value = 0;
3689   }
3690      break;
3691  
3692    case 122:
3693 <
3694 < /* Line 1788 of yacc.c  */
3858 < #line 862 "conf_parser.y"
3693 > /* Line 1778 of yacc.c  */
3694 > #line 865 "conf_parser.y"
3695      {
3696    if (conf_parser_ctx.pass == 2)
3697 <    ltype = LOG_TYPE_USER;
3697 >    block_state.type.value = LOG_TYPE_USER;
3698   }
3699      break;
3700  
3701    case 123:
3702 <
3703 < /* Line 1788 of yacc.c  */
3868 < #line 866 "conf_parser.y"
3702 > /* Line 1778 of yacc.c  */
3703 > #line 869 "conf_parser.y"
3704      {
3705    if (conf_parser_ctx.pass == 2)
3706 <    ltype = LOG_TYPE_OPER;
3706 >    block_state.type.value = LOG_TYPE_OPER;
3707   }
3708      break;
3709  
3710    case 124:
3711 <
3712 < /* Line 1788 of yacc.c  */
3878 < #line 870 "conf_parser.y"
3711 > /* Line 1778 of yacc.c  */
3712 > #line 873 "conf_parser.y"
3713      {
3714    if (conf_parser_ctx.pass == 2)
3715 <    ltype = LOG_TYPE_GLINE;
3715 >    block_state.type.value = LOG_TYPE_GLINE;
3716   }
3717      break;
3718  
3719    case 125:
3720 <
3721 < /* Line 1788 of yacc.c  */
3888 < #line 874 "conf_parser.y"
3720 > /* Line 1778 of yacc.c  */
3721 > #line 877 "conf_parser.y"
3722      {
3723    if (conf_parser_ctx.pass == 2)
3724 <    ltype = LOG_TYPE_DLINE;
3724 >    block_state.type.value = LOG_TYPE_DLINE;
3725   }
3726      break;
3727  
3728    case 126:
3729 <
3730 < /* Line 1788 of yacc.c  */
3898 < #line 878 "conf_parser.y"
3729 > /* Line 1778 of yacc.c  */
3730 > #line 881 "conf_parser.y"
3731      {
3732    if (conf_parser_ctx.pass == 2)
3733 <    ltype = LOG_TYPE_KLINE;
3733 >    block_state.type.value = LOG_TYPE_KLINE;
3734   }
3735      break;
3736  
3737    case 127:
3738 <
3739 < /* Line 1788 of yacc.c  */
3908 < #line 882 "conf_parser.y"
3738 > /* Line 1778 of yacc.c  */
3739 > #line 885 "conf_parser.y"
3740      {
3741    if (conf_parser_ctx.pass == 2)
3742 <    ltype = LOG_TYPE_KILL;
3742 >    block_state.type.value = LOG_TYPE_KILL;
3743   }
3744      break;
3745  
3746    case 128:
3747 <
3748 < /* Line 1788 of yacc.c  */
3918 < #line 886 "conf_parser.y"
3747 > /* Line 1778 of yacc.c  */
3748 > #line 889 "conf_parser.y"
3749      {
3750    if (conf_parser_ctx.pass == 2)
3751 <    ltype = LOG_TYPE_DEBUG;
3751 >    block_state.type.value = LOG_TYPE_DEBUG;
3752   }
3753      break;
3754  
3755    case 129:
3756 <
3757 < /* Line 1788 of yacc.c  */
3928 < #line 896 "conf_parser.y"
3756 > /* Line 1778 of yacc.c  */
3757 > #line 899 "conf_parser.y"
3758      {
3759 <  if (conf_parser_ctx.pass == 2)
3760 <  {
3761 <    yy_conf = make_conf_item(OPER_TYPE);
3762 <    yy_aconf = map_to_conf(yy_conf);
3763 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3935 <  }
3936 <  else
3937 <  {
3938 <    MyFree(class_name);
3939 <    class_name = NULL;
3940 <  }
3759 >  if (conf_parser_ctx.pass != 2)
3760 >    break;
3761 >
3762 >  reset_block_state();
3763 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3764   }
3765      break;
3766  
3767    case 130:
3768 <
3769 < /* Line 1788 of yacc.c  */
3947 < #line 909 "conf_parser.y"
3768 > /* Line 1778 of yacc.c  */
3769 > #line 906 "conf_parser.y"
3770      {
3771 <  if (conf_parser_ctx.pass == 2)
3950 <  {
3951 <    struct CollectItem *yy_tmp;
3952 <    dlink_node *ptr;
3953 <    dlink_node *next_ptr;
3771 >  dlink_node *ptr = NULL;
3772  
3773 <    conf_add_class_to_conf(yy_conf, class_name);
3774 <
3957 <    /* Now, make sure there is a copy of the "base" given oper
3958 <     * block in each of the collected copies
3959 <     */
3960 <
3961 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3962 <    {
3963 <      struct AccessItem *new_aconf;
3964 <      struct ConfItem *new_conf;
3965 <      yy_tmp = ptr->data;
3773 >  if (conf_parser_ctx.pass != 2)
3774 >    break;
3775  
3776 <      new_conf = make_conf_item(OPER_TYPE);
3777 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3776 >  if (!block_state.name.buf[0])
3777 >    break;
3778 > #ifdef HAVE_LIBCRYPTO
3779 >  if (!(block_state.file.buf[0] ||
3780 >        block_state.rpass.buf[0]))
3781 >    break;
3782 > #else
3783 >  if (!block_state.rpass.buf[0])
3784 >    break;
3785 > #endif
3786  
3787 <      new_aconf->flags = yy_aconf->flags;
3787 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3788 >  {
3789 >    struct MaskItem *conf = NULL;
3790 >    struct split_nuh_item nuh;
3791  
3792 <      if (yy_conf->name != NULL)
3793 <        DupString(new_conf->name, yy_conf->name);
3794 <      if (yy_tmp->user != NULL)
3795 <        DupString(new_aconf->user, yy_tmp->user);
3796 <      else
3797 <        DupString(new_aconf->user, "*");
3798 <      if (yy_tmp->host != NULL)
3799 <        DupString(new_aconf->host, yy_tmp->host);
3980 <      else
3981 <        DupString(new_aconf->host, "*");
3792 >    nuh.nuhmask  = ptr->data;
3793 >    nuh.nickptr  = NULL;
3794 >    nuh.userptr  = block_state.user.buf;
3795 >    nuh.hostptr  = block_state.host.buf;
3796 >    nuh.nicksize = 0;
3797 >    nuh.usersize = sizeof(block_state.user.buf);
3798 >    nuh.hostsize = sizeof(block_state.host.buf);
3799 >    split_nuh(&nuh);
3800  
3801 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3802 <                                     &new_aconf->bits);
3801 >    conf        = conf_make(CONF_OPER);
3802 >    conf->name  = xstrdup(block_state.name.buf);
3803 >    conf->user  = xstrdup(block_state.user.buf);
3804 >    conf->host  = xstrdup(block_state.host.buf);
3805 >
3806 >    if (block_state.rpass.buf[0])
3807 >      conf->passwd = xstrdup(block_state.rpass.buf);
3808 >
3809 >    conf->flags = block_state.flags.value;
3810 >    conf->modes = block_state.modes.value;
3811 >    conf->port  = block_state.port.value;
3812 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3813  
3814 <      conf_add_class_to_conf(new_conf, class_name);
3987 <      if (yy_aconf->passwd != NULL)
3988 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3814 >    conf_add_class_to_conf(conf, block_state.class.buf);
3815  
3990      new_aconf->port = yy_aconf->port;
3816   #ifdef HAVE_LIBCRYPTO
3817 <      if (yy_aconf->rsa_public_key_file != NULL)
3818 <      {
3819 <        BIO *file;
3820 <
3996 <        DupString(new_aconf->rsa_public_key_file,
3997 <                  yy_aconf->rsa_public_key_file);
3817 >    if (block_state.file.buf[0])
3818 >    {
3819 >      BIO *file = NULL;
3820 >      RSA *pkey = NULL;
3821  
3822 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3823 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
3824 <                                                           NULL, 0, NULL);
3825 <        BIO_set_close(file, BIO_CLOSE);
4003 <        BIO_free(file);
3822 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3823 >      {
3824 >        yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3825 >        break;
3826        }
4005 #endif
3827  
3828 < #ifdef HAVE_LIBCRYPTO
4008 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4009 <          && yy_tmp->host)
4010 < #else
4011 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4012 < #endif
3828 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3829        {
3830 <        conf_add_class_to_conf(new_conf, class_name);
3831 <        if (yy_tmp->name != NULL)
4016 <          DupString(new_conf->name, yy_tmp->name);
3830 >        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3831 >        break;
3832        }
3833  
3834 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3835 <      free_collect_item(yy_tmp);
3834 >      conf->rsa_public_key = pkey;
3835 >      BIO_set_close(file, BIO_CLOSE);
3836 >      BIO_free(file);
3837      }
3838 <
4023 <    yy_conf = NULL;
4024 <    yy_aconf = NULL;
4025 <
4026 <
4027 <    MyFree(class_name);
4028 <    class_name = NULL;
3838 > #endif /* HAVE_LIBCRYPTO */
3839    }
3840   }
3841      break;
3842  
3843    case 142:
3844 <
3845 < /* Line 1788 of yacc.c  */
4036 < #line 999 "conf_parser.y"
3844 > /* Line 1778 of yacc.c  */
3845 > #line 984 "conf_parser.y"
3846      {
3847    if (conf_parser_ctx.pass == 2)
3848 <  {
4040 <    MyFree(yy_conf->name);
4041 <    DupString(yy_conf->name, yylval.string);
4042 <  }
3848 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3849   }
3850      break;
3851  
3852    case 143:
3853 <
3854 < /* Line 1788 of yacc.c  */
4049 < #line 1008 "conf_parser.y"
3853 > /* Line 1778 of yacc.c  */
3854 > #line 990 "conf_parser.y"
3855      {
3856    if (conf_parser_ctx.pass == 2)
3857 <  {
4053 <    struct split_nuh_item nuh;
4054 <
4055 <    nuh.nuhmask  = yylval.string;
4056 <    nuh.nickptr  = NULL;
4057 <    nuh.userptr  = userbuf;
4058 <    nuh.hostptr  = hostbuf;
4059 <
4060 <    nuh.nicksize = 0;
4061 <    nuh.usersize = sizeof(userbuf);
4062 <    nuh.hostsize = sizeof(hostbuf);
4063 <
4064 <    split_nuh(&nuh);
4065 <
4066 <    if (yy_aconf->user == NULL)
4067 <    {
4068 <      DupString(yy_aconf->user, userbuf);
4069 <      DupString(yy_aconf->host, hostbuf);
4070 <
4071 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
4072 <                                    &yy_aconf->bits);
4073 <    }
4074 <    else
4075 <    {
4076 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
4077 <
4078 <      DupString(yy_tmp->user, userbuf);
4079 <      DupString(yy_tmp->host, hostbuf);
4080 <
4081 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4082 <    }
4083 <  }
3857 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3858   }
3859      break;
3860  
3861    case 144:
3862 <
3863 < /* Line 1788 of yacc.c  */
4090 < #line 1045 "conf_parser.y"
3862 > /* Line 1778 of yacc.c  */
3863 > #line 996 "conf_parser.y"
3864      {
3865    if (conf_parser_ctx.pass == 2)
3866 <  {
4094 <    if (yy_aconf->passwd != NULL)
4095 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4096 <
4097 <    MyFree(yy_aconf->passwd);
4098 <    DupString(yy_aconf->passwd, yylval.string);
4099 <  }
3866 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3867   }
3868      break;
3869  
3870    case 145:
3871 <
3872 < /* Line 1788 of yacc.c  */
4106 < #line 1057 "conf_parser.y"
3871 > /* Line 1778 of yacc.c  */
3872 > #line 1002 "conf_parser.y"
3873      {
3874    if (conf_parser_ctx.pass == 2)
3875    {
3876      if (yylval.number)
3877 <      SetConfEncrypted(yy_aconf);
3877 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3878      else
3879 <      ClearConfEncrypted(yy_aconf);
3879 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3880    }
3881   }
3882      break;
3883  
3884    case 146:
3885 <
3886 < /* Line 1788 of yacc.c  */
4121 < #line 1068 "conf_parser.y"
3885 > /* Line 1778 of yacc.c  */
3886 > #line 1013 "conf_parser.y"
3887      {
4123 #ifdef HAVE_LIBCRYPTO
3888    if (conf_parser_ctx.pass == 2)
3889 <  {
4126 <    BIO *file;
4127 <
4128 <    if (yy_aconf->rsa_public_key != NULL)
4129 <    {
4130 <      RSA_free(yy_aconf->rsa_public_key);
4131 <      yy_aconf->rsa_public_key = NULL;
4132 <    }
4133 <
4134 <    if (yy_aconf->rsa_public_key_file != NULL)
4135 <    {
4136 <      MyFree(yy_aconf->rsa_public_key_file);
4137 <      yy_aconf->rsa_public_key_file = NULL;
4138 <    }
4139 <
4140 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4141 <    file = BIO_new_file(yylval.string, "r");
4142 <
4143 <    if (file == NULL)
4144 <    {
4145 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4146 <      break;
4147 <    }
4148 <
4149 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
4150 <
4151 <    if (yy_aconf->rsa_public_key == NULL)
4152 <    {
4153 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4154 <      break;
4155 <    }
4156 <
4157 <    BIO_set_close(file, BIO_CLOSE);
4158 <    BIO_free(file);
4159 <  }
4160 < #endif /* HAVE_LIBCRYPTO */
3889 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3890   }
3891      break;
3892  
3893    case 147:
3894 <
3895 < /* Line 1788 of yacc.c  */
4167 < #line 1110 "conf_parser.y"
3894 > /* Line 1778 of yacc.c  */
3895 > #line 1019 "conf_parser.y"
3896      {
3897    if (conf_parser_ctx.pass == 2)
3898 <  {
4171 <    MyFree(class_name);
4172 <    DupString(class_name, yylval.string);
4173 <  }
3898 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3899   }
3900      break;
3901  
3902    case 148:
3903 <
3904 < /* Line 1788 of yacc.c  */
4180 < #line 1119 "conf_parser.y"
3903 > /* Line 1778 of yacc.c  */
3904 > #line 1025 "conf_parser.y"
3905      {
3906    if (conf_parser_ctx.pass == 2)
3907 <    yy_aconf->modes = 0;
3907 >    block_state.modes.value = 0;
3908   }
3909      break;
3910  
3911    case 152:
3912 <
3913 < /* Line 1788 of yacc.c  */
4190 < #line 1126 "conf_parser.y"
3912 > /* Line 1778 of yacc.c  */
3913 > #line 1032 "conf_parser.y"
3914      {
3915    if (conf_parser_ctx.pass == 2)
3916 <    yy_aconf->modes |= UMODE_BOTS;
3916 >    block_state.modes.value |= UMODE_BOTS;
3917   }
3918      break;
3919  
3920    case 153:
3921 <
3922 < /* Line 1788 of yacc.c  */
4200 < #line 1130 "conf_parser.y"
3921 > /* Line 1778 of yacc.c  */
3922 > #line 1036 "conf_parser.y"
3923      {
3924    if (conf_parser_ctx.pass == 2)
3925 <    yy_aconf->modes |= UMODE_CCONN;
3925 >    block_state.modes.value |= UMODE_CCONN;
3926   }
3927      break;
3928  
3929    case 154:
3930 <
3931 < /* Line 1788 of yacc.c  */
4210 < #line 1134 "conf_parser.y"
3930 > /* Line 1778 of yacc.c  */
3931 > #line 1040 "conf_parser.y"
3932      {
3933    if (conf_parser_ctx.pass == 2)
3934 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3934 >    block_state.modes.value |= UMODE_CCONN_FULL;
3935   }
3936      break;
3937  
3938    case 155:
3939 <
3940 < /* Line 1788 of yacc.c  */
4220 < #line 1138 "conf_parser.y"
3939 > /* Line 1778 of yacc.c  */
3940 > #line 1044 "conf_parser.y"
3941      {
3942    if (conf_parser_ctx.pass == 2)
3943 <    yy_aconf->modes |= UMODE_DEAF;
3943 >    block_state.modes.value |= UMODE_DEAF;
3944   }
3945      break;
3946  
3947    case 156:
3948 <
3949 < /* Line 1788 of yacc.c  */
4230 < #line 1142 "conf_parser.y"
3948 > /* Line 1778 of yacc.c  */
3949 > #line 1048 "conf_parser.y"
3950      {
3951    if (conf_parser_ctx.pass == 2)
3952 <    yy_aconf->modes |= UMODE_DEBUG;
3952 >    block_state.modes.value |= UMODE_DEBUG;
3953   }
3954      break;
3955  
3956    case 157:
3957 <
3958 < /* Line 1788 of yacc.c  */
4240 < #line 1146 "conf_parser.y"
3957 > /* Line 1778 of yacc.c  */
3958 > #line 1052 "conf_parser.y"
3959      {
3960    if (conf_parser_ctx.pass == 2)
3961 <    yy_aconf->modes |= UMODE_FULL;
3961 >    block_state.modes.value |= UMODE_FULL;
3962   }
3963      break;
3964  
3965    case 158:
3966 <
3967 < /* Line 1788 of yacc.c  */
4250 < #line 1150 "conf_parser.y"
3966 > /* Line 1778 of yacc.c  */
3967 > #line 1056 "conf_parser.y"
3968      {
3969    if (conf_parser_ctx.pass == 2)
3970 <    yy_aconf->modes |= UMODE_HIDDEN;
3970 >    block_state.modes.value |= UMODE_HIDDEN;
3971   }
3972      break;
3973  
3974    case 159:
3975 <
3976 < /* Line 1788 of yacc.c  */
4260 < #line 1154 "conf_parser.y"
3975 > /* Line 1778 of yacc.c  */
3976 > #line 1060 "conf_parser.y"
3977      {
3978    if (conf_parser_ctx.pass == 2)
3979 <    yy_aconf->modes |= UMODE_SKILL;
3979 >    block_state.modes.value |= UMODE_SKILL;
3980   }
3981      break;
3982  
3983    case 160:
3984 <
3985 < /* Line 1788 of yacc.c  */
4270 < #line 1158 "conf_parser.y"
3984 > /* Line 1778 of yacc.c  */
3985 > #line 1064 "conf_parser.y"
3986      {
3987    if (conf_parser_ctx.pass == 2)
3988 <    yy_aconf->modes |= UMODE_NCHANGE;
3988 >    block_state.modes.value |= UMODE_NCHANGE;
3989   }
3990      break;
3991  
3992    case 161:
3993 <
3994 < /* Line 1788 of yacc.c  */
4280 < #line 1162 "conf_parser.y"
3993 > /* Line 1778 of yacc.c  */
3994 > #line 1068 "conf_parser.y"
3995      {
3996    if (conf_parser_ctx.pass == 2)
3997 <    yy_aconf->modes |= UMODE_REJ;
3997 >    block_state.modes.value |= UMODE_REJ;
3998   }
3999      break;
4000  
4001    case 162:
4002 <
4003 < /* Line 1788 of yacc.c  */
4290 < #line 1166 "conf_parser.y"
4002 > /* Line 1778 of yacc.c  */
4003 > #line 1072 "conf_parser.y"
4004      {
4005    if (conf_parser_ctx.pass == 2)
4006 <    yy_aconf->modes |= UMODE_UNAUTH;
4006 >    block_state.modes.value |= UMODE_UNAUTH;
4007   }
4008      break;
4009  
4010    case 163:
4011 <
4012 < /* Line 1788 of yacc.c  */
4300 < #line 1170 "conf_parser.y"
4011 > /* Line 1778 of yacc.c  */
4012 > #line 1076 "conf_parser.y"
4013      {
4014    if (conf_parser_ctx.pass == 2)
4015 <    yy_aconf->modes |= UMODE_SPY;
4015 >    block_state.modes.value |= UMODE_SPY;
4016   }
4017      break;
4018  
4019    case 164:
4020 <
4021 < /* Line 1788 of yacc.c  */
4310 < #line 1174 "conf_parser.y"
4020 > /* Line 1778 of yacc.c  */
4021 > #line 1080 "conf_parser.y"
4022      {
4023    if (conf_parser_ctx.pass == 2)
4024 <    yy_aconf->modes |= UMODE_EXTERNAL;
4024 >    block_state.modes.value |= UMODE_EXTERNAL;
4025   }
4026      break;
4027  
4028    case 165:
4029 <
4030 < /* Line 1788 of yacc.c  */
4320 < #line 1178 "conf_parser.y"
4029 > /* Line 1778 of yacc.c  */
4030 > #line 1084 "conf_parser.y"
4031      {
4032    if (conf_parser_ctx.pass == 2)
4033 <    yy_aconf->modes |= UMODE_OPERWALL;
4033 >    block_state.modes.value |= UMODE_OPERWALL;
4034   }
4035      break;
4036  
4037    case 166:
4038 <
4039 < /* Line 1788 of yacc.c  */
4330 < #line 1182 "conf_parser.y"
4038 > /* Line 1778 of yacc.c  */
4039 > #line 1088 "conf_parser.y"
4040      {
4041    if (conf_parser_ctx.pass == 2)
4042 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4042 >    block_state.modes.value |= UMODE_SERVNOTICE;
4043   }
4044      break;
4045  
4046    case 167:
4047 <
4048 < /* Line 1788 of yacc.c  */
4340 < #line 1186 "conf_parser.y"
4047 > /* Line 1778 of yacc.c  */
4048 > #line 1092 "conf_parser.y"
4049      {
4050    if (conf_parser_ctx.pass == 2)
4051 <    yy_aconf->modes |= UMODE_INVISIBLE;
4051 >    block_state.modes.value |= UMODE_INVISIBLE;
4052   }
4053      break;
4054  
4055    case 168:
4056 <
4057 < /* Line 1788 of yacc.c  */
4350 < #line 1190 "conf_parser.y"
4056 > /* Line 1778 of yacc.c  */
4057 > #line 1096 "conf_parser.y"
4058      {
4059    if (conf_parser_ctx.pass == 2)
4060 <    yy_aconf->modes |= UMODE_WALLOP;
4060 >    block_state.modes.value |= UMODE_WALLOP;
4061   }
4062      break;
4063  
4064    case 169:
4065 <
4066 < /* Line 1788 of yacc.c  */
4360 < #line 1194 "conf_parser.y"
4065 > /* Line 1778 of yacc.c  */
4066 > #line 1100 "conf_parser.y"
4067      {
4068    if (conf_parser_ctx.pass == 2)
4069 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4069 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4070   }
4071      break;
4072  
4073    case 170:
4074 <
4075 < /* Line 1788 of yacc.c  */
4370 < #line 1198 "conf_parser.y"
4074 > /* Line 1778 of yacc.c  */
4075 > #line 1104 "conf_parser.y"
4076      {
4077    if (conf_parser_ctx.pass == 2)
4078 <    yy_aconf->modes |= UMODE_CALLERID;
4078 >    block_state.modes.value |= UMODE_CALLERID;
4079   }
4080      break;
4081  
4082    case 171:
4083 <
4084 < /* Line 1788 of yacc.c  */
4380 < #line 1202 "conf_parser.y"
4083 > /* Line 1778 of yacc.c  */
4084 > #line 1108 "conf_parser.y"
4085      {
4086    if (conf_parser_ctx.pass == 2)
4087 <    yy_aconf->modes |= UMODE_LOCOPS;
4087 >    block_state.modes.value |= UMODE_LOCOPS;
4088   }
4089      break;
4090  
4091    case 172:
4092 <
4093 < /* Line 1788 of yacc.c  */
4390 < #line 1208 "conf_parser.y"
4092 > /* Line 1778 of yacc.c  */
4093 > #line 1114 "conf_parser.y"
4094      {
4095    if (conf_parser_ctx.pass == 2)
4096 <    yy_aconf->port = 0;
4096 >    block_state.port.value = 0;
4097   }
4098      break;
4099  
4100    case 176:
4101 <
4102 < /* Line 1788 of yacc.c  */
4400 < #line 1215 "conf_parser.y"
4101 > /* Line 1778 of yacc.c  */
4102 > #line 1121 "conf_parser.y"
4103      {
4104    if (conf_parser_ctx.pass == 2)
4105 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4105 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4106   }
4107      break;
4108  
4109    case 177:
4110 <
4111 < /* Line 1788 of yacc.c  */
4410 < #line 1219 "conf_parser.y"
4110 > /* Line 1778 of yacc.c  */
4111 > #line 1125 "conf_parser.y"
4112      {
4113    if (conf_parser_ctx.pass == 2)
4114 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4114 >    block_state.port.value |= OPER_FLAG_REMOTE;
4115   }
4116      break;
4117  
4118    case 178:
4119 <
4120 < /* Line 1788 of yacc.c  */
4420 < #line 1223 "conf_parser.y"
4119 > /* Line 1778 of yacc.c  */
4120 > #line 1129 "conf_parser.y"
4121      {
4122    if (conf_parser_ctx.pass == 2)
4123 <    yy_aconf->port |= OPER_FLAG_K;
4123 >    block_state.port.value |= OPER_FLAG_K;
4124   }
4125      break;
4126  
4127    case 179:
4128 <
4129 < /* Line 1788 of yacc.c  */
4430 < #line 1227 "conf_parser.y"
4128 > /* Line 1778 of yacc.c  */
4129 > #line 1133 "conf_parser.y"
4130      {
4131    if (conf_parser_ctx.pass == 2)
4132 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4132 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4133   }
4134      break;
4135  
4136    case 180:
4137 <
4138 < /* Line 1788 of yacc.c  */
4440 < #line 1231 "conf_parser.y"
4137 > /* Line 1778 of yacc.c  */
4138 > #line 1137 "conf_parser.y"
4139      {
4140    if (conf_parser_ctx.pass == 2)
4141 <    yy_aconf->port |= OPER_FLAG_DLINE;
4141 >    block_state.port.value |= OPER_FLAG_DLINE;
4142   }
4143      break;
4144  
4145    case 181:
4146 <
4147 < /* Line 1788 of yacc.c  */
4450 < #line 1235 "conf_parser.y"
4146 > /* Line 1778 of yacc.c  */
4147 > #line 1141 "conf_parser.y"
4148      {
4149    if (conf_parser_ctx.pass == 2)
4150 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4150 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4151   }
4152      break;
4153  
4154    case 182:
4155 <
4156 < /* Line 1788 of yacc.c  */
4460 < #line 1239 "conf_parser.y"
4155 > /* Line 1778 of yacc.c  */
4156 > #line 1145 "conf_parser.y"
4157      {
4158    if (conf_parser_ctx.pass == 2)
4159 <    yy_aconf->port |= OPER_FLAG_X;
4159 >    block_state.port.value |= OPER_FLAG_X;
4160   }
4161      break;
4162  
4163    case 183:
4164 <
4165 < /* Line 1788 of yacc.c  */
4470 < #line 1243 "conf_parser.y"
4164 > /* Line 1778 of yacc.c  */
4165 > #line 1149 "conf_parser.y"
4166      {
4167    if (conf_parser_ctx.pass == 2)
4168 <    yy_aconf->port |= OPER_FLAG_GLINE;
4168 >    block_state.port.value |= OPER_FLAG_GLINE;
4169   }
4170      break;
4171  
4172    case 184:
4173 <
4174 < /* Line 1788 of yacc.c  */
4480 < #line 1247 "conf_parser.y"
4173 > /* Line 1778 of yacc.c  */
4174 > #line 1153 "conf_parser.y"
4175      {
4176    if (conf_parser_ctx.pass == 2)
4177 <    yy_aconf->port |= OPER_FLAG_DIE;
4177 >    block_state.port.value |= OPER_FLAG_DIE;
4178   }
4179      break;
4180  
4181    case 185:
4182 <
4183 < /* Line 1788 of yacc.c  */
4490 < #line 1251 "conf_parser.y"
4182 > /* Line 1778 of yacc.c  */
4183 > #line 1157 "conf_parser.y"
4184      {
4185    if (conf_parser_ctx.pass == 2)
4186 <    yy_aconf->port |= OPER_FLAG_RESTART;
4186 >    block_state.port.value |= OPER_FLAG_RESTART;
4187   }
4188      break;
4189  
4190    case 186:
4191 <
4192 < /* Line 1788 of yacc.c  */
4500 < #line 1255 "conf_parser.y"
4191 > /* Line 1778 of yacc.c  */
4192 > #line 1161 "conf_parser.y"
4193      {
4194    if (conf_parser_ctx.pass == 2)
4195 <    yy_aconf->port |= OPER_FLAG_REHASH;
4195 >    block_state.port.value |= OPER_FLAG_REHASH;
4196   }
4197      break;
4198  
4199    case 187:
4200 <
4201 < /* Line 1788 of yacc.c  */
4510 < #line 1259 "conf_parser.y"
4200 > /* Line 1778 of yacc.c  */
4201 > #line 1165 "conf_parser.y"
4202      {
4203    if (conf_parser_ctx.pass == 2)
4204 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4204 >    block_state.port.value |= OPER_FLAG_ADMIN;
4205   }
4206      break;
4207  
4208    case 188:
4209 <
4210 < /* Line 1788 of yacc.c  */
4520 < #line 1263 "conf_parser.y"
4209 > /* Line 1778 of yacc.c  */
4210 > #line 1169 "conf_parser.y"
4211      {
4212    if (conf_parser_ctx.pass == 2)
4213 <    yy_aconf->port |= OPER_FLAG_N;
4213 >    block_state.port.value |= OPER_FLAG_N;
4214   }
4215      break;
4216  
4217    case 189:
4218 <
4219 < /* Line 1788 of yacc.c  */
4530 < #line 1267 "conf_parser.y"
4218 > /* Line 1778 of yacc.c  */
4219 > #line 1173 "conf_parser.y"
4220      {
4221    if (conf_parser_ctx.pass == 2)
4222 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4222 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4223   }
4224      break;
4225  
4226    case 190:
4227 <
4228 < /* Line 1788 of yacc.c  */
4540 < #line 1271 "conf_parser.y"
4227 > /* Line 1778 of yacc.c  */
4228 > #line 1177 "conf_parser.y"
4229      {
4230    if (conf_parser_ctx.pass == 2)
4231 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4231 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4232   }
4233      break;
4234  
4235    case 191:
4236 <
4237 < /* Line 1788 of yacc.c  */
4550 < #line 1275 "conf_parser.y"
4236 > /* Line 1778 of yacc.c  */
4237 > #line 1181 "conf_parser.y"
4238      {
4239    if (conf_parser_ctx.pass == 2)
4240 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4240 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4241   }
4242      break;
4243  
4244    case 192:
4245 <
4246 < /* Line 1788 of yacc.c  */
4560 < #line 1279 "conf_parser.y"
4245 > /* Line 1778 of yacc.c  */
4246 > #line 1185 "conf_parser.y"
4247      {
4248    if (conf_parser_ctx.pass == 2)
4249 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4249 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4250   }
4251      break;
4252  
4253    case 193:
4254 <
4255 < /* Line 1788 of yacc.c  */
4570 < #line 1283 "conf_parser.y"
4254 > /* Line 1778 of yacc.c  */
4255 > #line 1189 "conf_parser.y"
4256      {
4257    if (conf_parser_ctx.pass == 2)
4258 <    yy_aconf->port |= OPER_FLAG_SET;
4258 >    block_state.port.value |= OPER_FLAG_SET;
4259   }
4260      break;
4261  
4262    case 194:
4263 <
4264 < /* Line 1788 of yacc.c  */
4580 < #line 1287 "conf_parser.y"
4263 > /* Line 1778 of yacc.c  */
4264 > #line 1193 "conf_parser.y"
4265      {
4266    if (conf_parser_ctx.pass == 2)
4267 <    yy_aconf->port |= OPER_FLAG_MODULE;
4267 >    block_state.port.value |= OPER_FLAG_MODULE;
4268   }
4269      break;
4270  
4271    case 195:
4272 <
4273 < /* Line 1788 of yacc.c  */
4590 < #line 1297 "conf_parser.y"
4272 > /* Line 1778 of yacc.c  */
4273 > #line 1203 "conf_parser.y"
4274      {
4275 <  if (conf_parser_ctx.pass == 1)
4593 <  {
4594 <    yy_conf = make_conf_item(CLASS_TYPE);
4595 <    yy_class = map_to_conf(yy_conf);
4596 <  }
4597 < }
4275 >  if (conf_parser_ctx.pass != 1)
4276      break;
4277  
4278 <  case 196:
4601 <
4602 < /* Line 1788 of yacc.c  */
4603 < #line 1304 "conf_parser.y"
4604 <    {
4605 <  if (conf_parser_ctx.pass == 1)
4606 <  {
4607 <    struct ConfItem *cconf = NULL;
4608 <    struct ClassItem *class = NULL;
4278 >  reset_block_state();
4279  
4280 <    if (yy_class_name == NULL)
4281 <      delete_conf_item(yy_conf);
4282 <    else
4283 <    {
4284 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4615 <
4616 <      if (cconf != NULL)                /* The class existed already */
4617 <      {
4618 <        int user_count = 0;
4280 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4281 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4282 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4283 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4284 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4285  
4286 <        rebuild_cidr_class(cconf, yy_class);
4287 <
4622 <        class = map_to_conf(cconf);
4623 <
4624 <        user_count = class->curr_user_count;
4625 <        memcpy(class, yy_class, sizeof(*class));
4626 <        class->curr_user_count = user_count;
4627 <        class->active = 1;
4286 > }
4287 >    break;
4288  
4289 <        delete_conf_item(yy_conf);
4289 >  case 196:
4290 > /* Line 1778 of yacc.c  */
4291 > #line 1216 "conf_parser.y"
4292 >    {
4293 >  struct ClassItem *class = NULL;
4294  
4295 <        MyFree(cconf->name);            /* Allows case change of class name */
4296 <        cconf->name = yy_class_name;
4633 <      }
4634 <      else      /* Brand new class */
4635 <      {
4636 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4637 <        yy_conf->name = yy_class_name;
4638 <        yy_class->active = 1;
4639 <      }
4640 <    }
4295 >  if (conf_parser_ctx.pass != 1)
4296 >    break;
4297  
4298 <    yy_class_name = NULL;
4299 <  }
4298 >  if (!block_state.class.buf[0])
4299 >    break;
4300 >
4301 >  if (!(class = class_find(block_state.class.buf, 0)))
4302 >    class = class_make();
4303 >
4304 >  class->active = 1;
4305 >  MyFree(class->name);
4306 >  class->name = xstrdup(block_state.class.buf);
4307 >  class->ping_freq = block_state.ping_freq.value;
4308 >  class->max_perip = block_state.max_perip.value;
4309 >  class->con_freq = block_state.con_freq.value;
4310 >  class->max_total = block_state.max_total.value;
4311 >  class->max_global = block_state.max_global.value;
4312 >  class->max_local = block_state.max_local.value;
4313 >  class->max_ident = block_state.max_ident.value;
4314 >  class->max_sendq = block_state.max_sendq.value;
4315 >  class->max_recvq = block_state.max_recvq.value;
4316 >
4317 >  if (class->number_per_cidr && block_state.number_per_cidr.value)
4318 >    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4319 >        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4320 >      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4321 >          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4322 >        rebuild_cidr_list(class);
4323 >
4324 >  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4325 >  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4326 >  class->number_per_cidr = block_state.number_per_cidr.value;
4327   }
4328      break;
4329  
4330    case 213:
4331 <
4332 < /* Line 1788 of yacc.c  */
4650 < #line 1362 "conf_parser.y"
4331 > /* Line 1778 of yacc.c  */
4332 > #line 1268 "conf_parser.y"
4333      {
4334    if (conf_parser_ctx.pass == 1)
4335 <  {
4654 <    MyFree(yy_class_name);
4655 <    DupString(yy_class_name, yylval.string);
4656 <  }
4335 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4336   }
4337      break;
4338  
4339    case 214:
4340 <
4341 < /* Line 1788 of yacc.c  */
4663 < #line 1371 "conf_parser.y"
4340 > /* Line 1778 of yacc.c  */
4341 > #line 1274 "conf_parser.y"
4342      {
4343    if (conf_parser_ctx.pass == 1)
4344 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4344 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4345   }
4346      break;
4347  
4348    case 215:
4349 <
4350 < /* Line 1788 of yacc.c  */
4673 < #line 1377 "conf_parser.y"
4349 > /* Line 1778 of yacc.c  */
4350 > #line 1280 "conf_parser.y"
4351      {
4352    if (conf_parser_ctx.pass == 1)
4353 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4353 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4354   }
4355      break;
4356  
4357    case 216:
4358 <
4359 < /* Line 1788 of yacc.c  */
4683 < #line 1383 "conf_parser.y"
4358 > /* Line 1778 of yacc.c  */
4359 > #line 1286 "conf_parser.y"
4360      {
4361    if (conf_parser_ctx.pass == 1)
4362 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4362 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4363   }
4364      break;
4365  
4366    case 217:
4367 <
4368 < /* Line 1788 of yacc.c  */
4693 < #line 1389 "conf_parser.y"
4367 > /* Line 1778 of yacc.c  */
4368 > #line 1292 "conf_parser.y"
4369      {
4370    if (conf_parser_ctx.pass == 1)
4371 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4371 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4372   }
4373      break;
4374  
4375    case 218:
4376 <
4377 < /* Line 1788 of yacc.c  */
4703 < #line 1395 "conf_parser.y"
4376 > /* Line 1778 of yacc.c  */
4377 > #line 1298 "conf_parser.y"
4378      {
4379    if (conf_parser_ctx.pass == 1)
4380 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4380 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4381   }
4382      break;
4383  
4384    case 219:
4385 <
4386 < /* Line 1788 of yacc.c  */
4713 < #line 1401 "conf_parser.y"
4385 > /* Line 1778 of yacc.c  */
4386 > #line 1304 "conf_parser.y"
4387      {
4388    if (conf_parser_ctx.pass == 1)
4389 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4389 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4390   }
4391      break;
4392  
4393    case 220:
4394 <
4395 < /* Line 1788 of yacc.c  */
4723 < #line 1407 "conf_parser.y"
4394 > /* Line 1778 of yacc.c  */
4395 > #line 1310 "conf_parser.y"
4396      {
4397    if (conf_parser_ctx.pass == 1)
4398 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4398 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4399   }
4400      break;
4401  
4402    case 221:
4403 <
4404 < /* Line 1788 of yacc.c  */
4733 < #line 1413 "conf_parser.y"
4403 > /* Line 1778 of yacc.c  */
4404 > #line 1316 "conf_parser.y"
4405      {
4406    if (conf_parser_ctx.pass == 1)
4407 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4407 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4408   }
4409      break;
4410  
4411    case 222:
4412 <
4413 < /* Line 1788 of yacc.c  */
4743 < #line 1419 "conf_parser.y"
4412 > /* Line 1778 of yacc.c  */
4413 > #line 1322 "conf_parser.y"
4414      {
4415    if (conf_parser_ctx.pass == 1)
4416 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4416 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4417 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4418   }
4419      break;
4420  
4421    case 223:
4422 <
4423 < /* Line 1788 of yacc.c  */
4753 < #line 1425 "conf_parser.y"
4422 > /* Line 1778 of yacc.c  */
4423 > #line 1329 "conf_parser.y"
4424      {
4425    if (conf_parser_ctx.pass == 1)
4426 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4426 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4427   }
4428      break;
4429  
4430    case 224:
4431 <
4432 < /* Line 1788 of yacc.c  */
4763 < #line 1431 "conf_parser.y"
4431 > /* Line 1778 of yacc.c  */
4432 > #line 1335 "conf_parser.y"
4433      {
4434    if (conf_parser_ctx.pass == 1)
4435 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4435 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4436   }
4437      break;
4438  
4439    case 225:
4440 <
4441 < /* Line 1788 of yacc.c  */
4773 < #line 1437 "conf_parser.y"
4440 > /* Line 1778 of yacc.c  */
4441 > #line 1341 "conf_parser.y"
4442      {
4443    if (conf_parser_ctx.pass == 1)
4444 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4444 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4445   }
4446      break;
4447  
4448    case 226:
4449 <
4450 < /* Line 1788 of yacc.c  */
4783 < #line 1446 "conf_parser.y"
4449 > /* Line 1778 of yacc.c  */
4450 > #line 1350 "conf_parser.y"
4451      {
4452    if (conf_parser_ctx.pass == 2)
4453 <  {
4787 <    listener_address = NULL;
4788 <    listener_flags = 0;
4789 <  }
4790 < }
4791 <    break;
4792 <
4793 <  case 227:
4794 <
4795 < /* Line 1788 of yacc.c  */
4796 < #line 1453 "conf_parser.y"
4797 <    {
4798 <  if (conf_parser_ctx.pass == 2)
4799 <  {
4800 <    MyFree(listener_address);
4801 <    listener_address = NULL;
4802 <  }
4453 >    reset_block_state();
4454   }
4455      break;
4456  
4457    case 228:
4458 <
4459 < /* Line 1788 of yacc.c  */
4809 < #line 1462 "conf_parser.y"
4458 > /* Line 1778 of yacc.c  */
4459 > #line 1356 "conf_parser.y"
4460      {
4461 <  listener_flags = 0;
4461 >  block_state.flags.value = 0;
4462   }
4463      break;
4464  
4465    case 232:
4466 <
4467 < /* Line 1788 of yacc.c  */
4818 < #line 1468 "conf_parser.y"
4466 > /* Line 1778 of yacc.c  */
4467 > #line 1362 "conf_parser.y"
4468      {
4469    if (conf_parser_ctx.pass == 2)
4470 <    listener_flags |= LISTENER_SSL;
4470 >    block_state.flags.value |= LISTENER_SSL;
4471   }
4472      break;
4473  
4474    case 233:
4475 <
4476 < /* Line 1788 of yacc.c  */
4828 < #line 1472 "conf_parser.y"
4475 > /* Line 1778 of yacc.c  */
4476 > #line 1366 "conf_parser.y"
4477      {
4478    if (conf_parser_ctx.pass == 2)
4479 <    listener_flags |= LISTENER_HIDDEN;
4479 >    block_state.flags.value |= LISTENER_HIDDEN;
4480   }
4481      break;
4482  
4483    case 234:
4484 <
4485 < /* Line 1788 of yacc.c  */
4838 < #line 1476 "conf_parser.y"
4484 > /* Line 1778 of yacc.c  */
4485 > #line 1370 "conf_parser.y"
4486      {
4487    if (conf_parser_ctx.pass == 2)
4488 <    listener_flags |= LISTENER_SERVER;
4488 >   block_state.flags.value |= LISTENER_SERVER;
4489   }
4490      break;
4491  
4492    case 242:
4493 <
4494 < /* Line 1788 of yacc.c  */
4495 < #line 1486 "conf_parser.y"
4849 <    { listener_flags = 0; }
4493 > /* Line 1778 of yacc.c  */
4494 > #line 1378 "conf_parser.y"
4495 >    { block_state.flags.value = 0; }
4496      break;
4497  
4498    case 246:
4499 <
4500 < /* Line 1788 of yacc.c  */
4855 < #line 1491 "conf_parser.y"
4499 > /* Line 1778 of yacc.c  */
4500 > #line 1383 "conf_parser.y"
4501      {
4502    if (conf_parser_ctx.pass == 2)
4503    {
4504 <    if ((listener_flags & LISTENER_SSL))
4504 >    if (block_state.flags.value & LISTENER_SSL)
4505   #ifdef HAVE_LIBCRYPTO
4506        if (!ServerInfo.server_ctx)
4507   #endif
# Line 4864 | Line 4509 | yyreduce:
4509          yyerror("SSL not available - port closed");
4510          break;
4511        }
4512 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4512 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4513    }
4514   }
4515      break;
4516  
4517    case 247:
4518 <
4519 < /* Line 1788 of yacc.c  */
4875 < #line 1505 "conf_parser.y"
4518 > /* Line 1778 of yacc.c  */
4519 > #line 1397 "conf_parser.y"
4520      {
4521    if (conf_parser_ctx.pass == 2)
4522    {
4523      int i;
4524  
4525 <    if ((listener_flags & LISTENER_SSL))
4525 >    if (block_state.flags.value & LISTENER_SSL)
4526   #ifdef HAVE_LIBCRYPTO
4527        if (!ServerInfo.server_ctx)
4528   #endif
# Line 4888 | Line 4532 | yyreduce:
4532        }
4533  
4534      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4535 <      add_listener(i, listener_address, listener_flags);
4535 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4536    }
4537   }
4538      break;
4539  
4540    case 248:
4541 <
4542 < /* Line 1788 of yacc.c  */
4899 < #line 1525 "conf_parser.y"
4541 > /* Line 1778 of yacc.c  */
4542 > #line 1417 "conf_parser.y"
4543      {
4544    if (conf_parser_ctx.pass == 2)
4545 <  {
4903 <    MyFree(listener_address);
4904 <    DupString(listener_address, yylval.string);
4905 <  }
4545 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4546   }
4547      break;
4548  
4549    case 249:
4550 <
4551 < /* Line 1788 of yacc.c  */
4912 < #line 1534 "conf_parser.y"
4550 > /* Line 1778 of yacc.c  */
4551 > #line 1423 "conf_parser.y"
4552      {
4553    if (conf_parser_ctx.pass == 2)
4554 <  {
4916 <    MyFree(listener_address);
4917 <    DupString(listener_address, yylval.string);
4918 <  }
4554 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4555   }
4556      break;
4557  
4558    case 250:
4559 <
4560 < /* Line 1788 of yacc.c  */
4925 < #line 1546 "conf_parser.y"
4559 > /* Line 1778 of yacc.c  */
4560 > #line 1432 "conf_parser.y"
4561      {
4562    if (conf_parser_ctx.pass == 2)
4563 <  {
4929 <    yy_conf = make_conf_item(CLIENT_TYPE);
4930 <    yy_aconf = map_to_conf(yy_conf);
4931 <  }
4932 <  else
4933 <  {
4934 <    MyFree(class_name);
4935 <    class_name = NULL;
4936 <  }
4563 >    reset_block_state();
4564   }
4565      break;
4566  
4567    case 251:
4568 <
4569 < /* Line 1788 of yacc.c  */
4943 < #line 1558 "conf_parser.y"
4568 > /* Line 1778 of yacc.c  */
4569 > #line 1436 "conf_parser.y"
4570      {
4571 <  if (conf_parser_ctx.pass == 2)
4946 <  {
4947 <    struct CollectItem *yy_tmp = NULL;
4948 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4949 <
4950 <    if (yy_aconf->user && yy_aconf->host)
4951 <    {
4952 <      conf_add_class_to_conf(yy_conf, class_name);
4953 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4954 <    }
4955 <    else
4956 <      delete_conf_item(yy_conf);
4957 <
4958 <    /* copy over settings from first struct */
4959 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4960 <    {
4961 <      struct AccessItem *new_aconf;
4962 <      struct ConfItem *new_conf;
4963 <
4964 <      new_conf = make_conf_item(CLIENT_TYPE);
4965 <      new_aconf = map_to_conf(new_conf);
4966 <
4967 <      yy_tmp = ptr->data;
4968 <
4969 <      assert(yy_tmp->user && yy_tmp->host);
4970 <
4971 <      if (yy_aconf->passwd != NULL)
4972 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4973 <      if (yy_conf->name != NULL)
4974 <        DupString(new_conf->name, yy_conf->name);
4975 <      if (yy_aconf->passwd != NULL)
4976 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4977 <
4978 <      new_aconf->flags = yy_aconf->flags;
4979 <      new_aconf->port  = yy_aconf->port;
4571 >  dlink_node *ptr = NULL;
4572  
4573 <      DupString(new_aconf->user, yy_tmp->user);
4982 <      collapse(new_aconf->user);
4983 <
4984 <      DupString(new_aconf->host, yy_tmp->host);
4985 <      collapse(new_aconf->host);
4986 <
4987 <      conf_add_class_to_conf(new_conf, class_name);
4988 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4989 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4990 <      free_collect_item(yy_tmp);
4991 <    }
4992 <
4993 <    MyFree(class_name);
4994 <    class_name = NULL;
4995 <    yy_conf = NULL;
4996 <    yy_aconf = NULL;
4997 <  }
4998 < }
4573 >  if (conf_parser_ctx.pass != 2)
4574      break;
4575  
4576 <  case 263:
5002 <
5003 < /* Line 1788 of yacc.c  */
5004 < #line 1620 "conf_parser.y"
5005 <    {
5006 <  if (conf_parser_ctx.pass == 2)
4576 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4577    {
4578 <    struct CollectItem *yy_tmp = NULL;
4578 >    struct MaskItem *conf = NULL;
4579      struct split_nuh_item nuh;
4580  
4581 <    nuh.nuhmask  = yylval.string;
4581 >    nuh.nuhmask  = ptr->data;
4582      nuh.nickptr  = NULL;
4583 <    nuh.userptr  = userbuf;
4584 <    nuh.hostptr  = hostbuf;
5015 <
4583 >    nuh.userptr  = block_state.user.buf;
4584 >    nuh.hostptr  = block_state.host.buf;
4585      nuh.nicksize = 0;
4586 <    nuh.usersize = sizeof(userbuf);
4587 <    nuh.hostsize = sizeof(hostbuf);
5019 <
4586 >    nuh.usersize = sizeof(block_state.user.buf);
4587 >    nuh.hostsize = sizeof(block_state.host.buf);
4588      split_nuh(&nuh);
4589  
4590 <    if (yy_aconf->user == NULL)
4591 <    {
4592 <      DupString(yy_aconf->user, userbuf);
4593 <      DupString(yy_aconf->host, hostbuf);
4594 <    }
4595 <    else
4596 <    {
4597 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4590 >    conf        = conf_make(CONF_CLIENT);
4591 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4592 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4593 >
4594 >    if (block_state.rpass.buf[0])
4595 >      conf->passwd = xstrdup(block_state.rpass.buf);
4596 >    if (block_state.name.buf[0])
4597 >      conf->passwd = xstrdup(block_state.name.buf);
4598  
4599 <      DupString(yy_tmp->user, userbuf);
4600 <      DupString(yy_tmp->host, hostbuf);
4599 >    conf->flags = block_state.flags.value;
4600 >    conf->port  = block_state.port.value;
4601  
4602 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4603 <    }
4602 >    conf_add_class_to_conf(conf, block_state.class.buf);
4603 >    add_conf_by_address(CONF_CLIENT, conf);
4604    }
4605   }
4606      break;
4607  
4608 <  case 264:
4609 <
4610 < /* Line 1788 of yacc.c  */
5043 < #line 1655 "conf_parser.y"
4608 >  case 263:
4609 > /* Line 1778 of yacc.c  */
4610 > #line 1479 "conf_parser.y"
4611      {
4612    if (conf_parser_ctx.pass == 2)
4613 <  {
4614 <    /* be paranoid */
4615 <    if (yy_aconf->passwd != NULL)
5049 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4613 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4614 > }
4615 >    break;
4616  
4617 <    MyFree(yy_aconf->passwd);
4618 <    DupString(yy_aconf->passwd, yylval.string);
4619 <  }
4617 >  case 264:
4618 > /* Line 1778 of yacc.c  */
4619 > #line 1485 "conf_parser.y"
4620 >    {
4621 >  if (conf_parser_ctx.pass == 2)
4622 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4623   }
4624      break;
4625  
4626    case 265:
4627 <
4628 < /* Line 1788 of yacc.c  */
5060 < #line 1668 "conf_parser.y"
4627 > /* Line 1778 of yacc.c  */
4628 > #line 1491 "conf_parser.y"
4629      {
4630    if (conf_parser_ctx.pass == 2)
4631 <  {
5064 <    MyFree(class_name);
5065 <    DupString(class_name, yylval.string);
5066 <  }
4631 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4632   }
4633      break;
4634  
4635    case 266:
4636 <
4637 < /* Line 1788 of yacc.c  */
5073 < #line 1677 "conf_parser.y"
4636 > /* Line 1778 of yacc.c  */
4637 > #line 1497 "conf_parser.y"
4638      {
4639    if (conf_parser_ctx.pass == 2)
4640    {
4641      if (yylval.number)
4642 <      SetConfEncrypted(yy_aconf);
4642 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4643      else
4644 <      ClearConfEncrypted(yy_aconf);
4644 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4645    }
4646   }
4647      break;
4648  
4649    case 267:
4650 <
4651 < /* Line 1788 of yacc.c  */
5088 < #line 1688 "conf_parser.y"
4650 > /* Line 1778 of yacc.c  */
4651 > #line 1508 "conf_parser.y"
4652      {
4653 +  if (conf_parser_ctx.pass == 2)
4654 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4655   }
4656      break;
4657  
4658    case 271:
4659 <
4660 < /* Line 1788 of yacc.c  */
5096 < #line 1693 "conf_parser.y"
4659 > /* Line 1778 of yacc.c  */
4660 > #line 1515 "conf_parser.y"
4661      {
4662    if (conf_parser_ctx.pass == 2)
4663 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4663 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4664   }
4665      break;
4666  
4667    case 272:
4668 <
4669 < /* Line 1788 of yacc.c  */
5106 < #line 1697 "conf_parser.y"
4668 > /* Line 1778 of yacc.c  */
4669 > #line 1519 "conf_parser.y"
4670      {
4671    if (conf_parser_ctx.pass == 2)
4672 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4672 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4673   }
4674      break;
4675  
4676    case 273:
4677 <
4678 < /* Line 1788 of yacc.c  */
5116 < #line 1701 "conf_parser.y"
4677 > /* Line 1778 of yacc.c  */
4678 > #line 1523 "conf_parser.y"
4679      {
4680    if (conf_parser_ctx.pass == 2)
4681 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4681 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4682   }
4683      break;
4684  
4685    case 274:
4686 <
4687 < /* Line 1788 of yacc.c  */
5126 < #line 1705 "conf_parser.y"
4686 > /* Line 1778 of yacc.c  */
4687 > #line 1527 "conf_parser.y"
4688      {
4689    if (conf_parser_ctx.pass == 2)
4690 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4690 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4691   }
4692      break;
4693  
4694    case 275:
4695 <
4696 < /* Line 1788 of yacc.c  */
5136 < #line 1709 "conf_parser.y"
4695 > /* Line 1778 of yacc.c  */
4696 > #line 1531 "conf_parser.y"
4697      {
4698    if (conf_parser_ctx.pass == 2)
4699 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4699 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4700   }
4701      break;
4702  
4703    case 276:
4704 <
4705 < /* Line 1788 of yacc.c  */
5146 < #line 1713 "conf_parser.y"
4704 > /* Line 1778 of yacc.c  */
4705 > #line 1535 "conf_parser.y"
4706      {
4707    if (conf_parser_ctx.pass == 2)
4708 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4708 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4709   }
4710      break;
4711  
4712    case 277:
4713 <
4714 < /* Line 1788 of yacc.c  */
5156 < #line 1717 "conf_parser.y"
4713 > /* Line 1778 of yacc.c  */
4714 > #line 1539 "conf_parser.y"
4715      {
4716    if (conf_parser_ctx.pass == 2)
4717 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4717 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4718   }
4719      break;
4720  
4721    case 278:
4722 <
4723 < /* Line 1788 of yacc.c  */
5166 < #line 1721 "conf_parser.y"
4722 > /* Line 1778 of yacc.c  */
4723 > #line 1543 "conf_parser.y"
4724      {
4725    if (conf_parser_ctx.pass == 2)
4726 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4726 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4727   }
4728      break;
4729  
4730    case 279:
4731 <
4732 < /* Line 1788 of yacc.c  */
5176 < #line 1725 "conf_parser.y"
4731 > /* Line 1778 of yacc.c  */
4732 > #line 1547 "conf_parser.y"
4733      {
4734    if (conf_parser_ctx.pass == 2)
4735 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4735 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4736   }
4737      break;
4738  
4739    case 280:
4740 <
4741 < /* Line 1788 of yacc.c  */
5186 < #line 1732 "conf_parser.y"
4740 > /* Line 1778 of yacc.c  */
4741 > #line 1553 "conf_parser.y"
4742      {
4743 <  if (conf_parser_ctx.pass == 2)
4744 <  {
5190 <    MyFree(yy_conf->name);
4743 >  if (conf_parser_ctx.pass != 2)
4744 >    break;
4745  
4746 <    if (strlen(yylval.string) < HOSTLEN)
4747 <    {    
4748 <      DupString(yy_conf->name, yylval.string);
4749 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5196 <    }
5197 <    else
5198 <    {
5199 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5200 <      yy_conf->name = NULL;
5201 <    }
4746 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4747 >  {
4748 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4749 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4750    }
4751 +  else
4752 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4753   }
4754      break;
4755  
4756    case 281:
4757 <
4758 < /* Line 1788 of yacc.c  */
5209 < #line 1751 "conf_parser.y"
4757 > /* Line 1778 of yacc.c  */
4758 > #line 1567 "conf_parser.y"
4759      {
4760 <  if (conf_parser_ctx.pass == 2)
4761 <  {
4762 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4763 <    MyFree(yy_conf->name);
4764 <    DupString(yy_conf->name, yylval.string);
5216 <  }
4760 >  if (conf_parser_ctx.pass != 2)
4761 >    break;
4762 >
4763 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4764 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4765   }
4766      break;
4767  
4768    case 282:
4769 <
4770 < /* Line 1788 of yacc.c  */
5223 < #line 1761 "conf_parser.y"
4769 > /* Line 1778 of yacc.c  */
4770 > #line 1576 "conf_parser.y"
4771      {
4772 <  if (conf_parser_ctx.pass == 2)
4773 <  {
4774 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4775 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4776 <  }
4772 >  if (conf_parser_ctx.pass != 2)
4773 >    break;
4774 >
4775 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4776 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4777   }
4778      break;
4779  
4780    case 283:
4781 <
4782 < /* Line 1788 of yacc.c  */
5236 < #line 1774 "conf_parser.y"
4781 > /* Line 1778 of yacc.c  */
4782 > #line 1589 "conf_parser.y"
4783      {
4784 <  if (conf_parser_ctx.pass == 2)
5239 <  {
5240 <    MyFree(resv_reason);
5241 <    resv_reason = NULL;
5242 <  }
5243 < }
4784 >  if (conf_parser_ctx.pass != 2)
4785      break;
4786  
4787 <  case 284:
4788 <
5248 < /* Line 1788 of yacc.c  */
5249 < #line 1781 "conf_parser.y"
5250 <    {
5251 <  if (conf_parser_ctx.pass == 2)
5252 <  {
5253 <    MyFree(resv_reason);
5254 <    resv_reason = NULL;
5255 <  }
4787 >  reset_block_state();
4788 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4789   }
4790      break;
4791  
4792    case 291:
4793 <
4794 < /* Line 1788 of yacc.c  */
5262 < #line 1793 "conf_parser.y"
4793 > /* Line 1778 of yacc.c  */
4794 > #line 1601 "conf_parser.y"
4795      {
4796    if (conf_parser_ctx.pass == 2)
4797 <  {
5266 <    MyFree(resv_reason);
5267 <    DupString(resv_reason, yylval.string);
5268 <  }
4797 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4798   }
4799      break;
4800  
4801    case 292:
4802 <
4803 < /* Line 1788 of yacc.c  */
5275 < #line 1802 "conf_parser.y"
5276 <    {
5277 <  if (conf_parser_ctx.pass == 2)
5278 <  {
5279 <    if (IsChanPrefix(*yylval.string))
4802 > /* Line 1778 of yacc.c  */
4803 > #line 1607 "conf_parser.y"
4804      {
4805 <      char def_reason[] = "No reason";
4805 >  if (conf_parser_ctx.pass != 2)
4806 >    break;
4807  
4808 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4809 <    }
5285 <  }
5286 <  /* ignore it for now.. but we really should make a warning if
5287 <   * its an erroneous name --fl_ */
4808 >  if (IsChanPrefix(*yylval.string))
4809 >    create_channel_resv(yylval.string, block_state.rpass.buf, 1);
4810   }
4811      break;
4812  
4813    case 293:
4814 <
4815 < /* Line 1788 of yacc.c  */
5294 < #line 1817 "conf_parser.y"
4814 > /* Line 1778 of yacc.c  */
4815 > #line 1616 "conf_parser.y"
4816      {
4817    if (conf_parser_ctx.pass == 2)
4818 <  {
5298 <    char def_reason[] = "No reason";
5299 <
5300 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5301 <  }
4818 >    create_nick_resv(yylval.string, block_state.rpass.buf, 1);
4819   }
4820      break;
4821  
4822    case 299:
4823 <
4824 < /* Line 1788 of yacc.c  */
5308 < #line 1835 "conf_parser.y"
4823 > /* Line 1778 of yacc.c  */
4824 > #line 1630 "conf_parser.y"
4825      {
4826    if (conf_parser_ctx.pass == 2)
4827    {
4828      if (valid_servname(yylval.string))
4829      {
4830 <      yy_conf = make_conf_item(SERVICE_TYPE);
4831 <      DupString(yy_conf->name, yylval.string);
4830 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4831 >      conf->name = xstrdup(yylval.string);
4832      }
4833    }
4834   }
4835      break;
4836  
4837    case 300:
4838 <
4839 < /* Line 1788 of yacc.c  */
5324 < #line 1850 "conf_parser.y"
4838 > /* Line 1778 of yacc.c  */
4839 > #line 1645 "conf_parser.y"
4840      {
4841 <  if (conf_parser_ctx.pass == 2)
4842 <  {
4843 <    yy_conf = make_conf_item(ULINE_TYPE);
4844 <    yy_match_item = map_to_conf(yy_conf);
4845 <    yy_match_item->action = SHARED_ALL;
4846 <  }
4841 >  if (conf_parser_ctx.pass != 2)
4842 >    break;
4843 >
4844 >  reset_block_state();
4845 >
4846 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4847 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4848 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4849 >  block_state.flags.value = SHARED_ALL;
4850   }
4851      break;
4852  
4853    case 301:
4854 <
4855 < /* Line 1788 of yacc.c  */
5338 < #line 1858 "conf_parser.y"
4854 > /* Line 1778 of yacc.c  */
4855 > #line 1656 "conf_parser.y"
4856      {
4857 <  if (conf_parser_ctx.pass == 2)
4858 <  {
4859 <    yy_conf = NULL;
4860 <  }
4857 >  struct MaskItem *conf = NULL;
4858 >
4859 >  if (conf_parser_ctx.pass != 2)
4860 >    break;
4861 >
4862 >  conf = conf_make(CONF_ULINE);
4863 >  conf->flags = block_state.flags.value;
4864 >  conf->name = xstrdup(block_state.name.buf);
4865 >  conf->user = xstrdup(block_state.user.buf);
4866 >  conf->user = xstrdup(block_state.host.buf);
4867   }
4868      break;
4869  
4870    case 308:
4871 <
4872 < /* Line 1788 of yacc.c  */
5350 < #line 1869 "conf_parser.y"
4871 > /* Line 1778 of yacc.c  */
4872 > #line 1673 "conf_parser.y"
4873      {
4874    if (conf_parser_ctx.pass == 2)
4875 <  {
5354 <    MyFree(yy_conf->name);
5355 <    DupString(yy_conf->name, yylval.string);
5356 <  }
4875 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4876   }
4877      break;
4878  
4879    case 309:
4880 <
4881 < /* Line 1788 of yacc.c  */
5363 < #line 1878 "conf_parser.y"
4880 > /* Line 1778 of yacc.c  */
4881 > #line 1679 "conf_parser.y"
4882      {
4883    if (conf_parser_ctx.pass == 2)
4884    {
# Line 5368 | Line 4886 | yyreduce:
4886  
4887      nuh.nuhmask  = yylval.string;
4888      nuh.nickptr  = NULL;
4889 <    nuh.userptr  = userbuf;
4890 <    nuh.hostptr  = hostbuf;
4889 >    nuh.userptr  = block_state.user.buf;
4890 >    nuh.hostptr  = block_state.host.buf;
4891  
4892      nuh.nicksize = 0;
4893 <    nuh.usersize = sizeof(userbuf);
4894 <    nuh.hostsize = sizeof(hostbuf);
4893 >    nuh.usersize = sizeof(block_state.user.buf);
4894 >    nuh.hostsize = sizeof(block_state.host.buf);
4895  
4896      split_nuh(&nuh);
5379
5380    DupString(yy_match_item->user, userbuf);
5381    DupString(yy_match_item->host, hostbuf);
4897    }
4898   }
4899      break;
4900  
4901    case 310:
4902 <
4903 < /* Line 1788 of yacc.c  */
5389 < #line 1900 "conf_parser.y"
4902 > /* Line 1778 of yacc.c  */
4903 > #line 1698 "conf_parser.y"
4904      {
4905    if (conf_parser_ctx.pass == 2)
4906 <    yy_match_item->action = 0;
4906 >    block_state.flags.value = 0;
4907   }
4908      break;
4909  
4910    case 314:
4911 <
4912 < /* Line 1788 of yacc.c  */
5399 < #line 1907 "conf_parser.y"
4911 > /* Line 1778 of yacc.c  */
4912 > #line 1705 "conf_parser.y"
4913      {
4914    if (conf_parser_ctx.pass == 2)
4915 <    yy_match_item->action |= SHARED_KLINE;
4915 >    block_state.flags.value |= SHARED_KLINE;
4916   }
4917      break;
4918  
4919    case 315:
4920 <
4921 < /* Line 1788 of yacc.c  */
5409 < #line 1911 "conf_parser.y"
4920 > /* Line 1778 of yacc.c  */
4921 > #line 1709 "conf_parser.y"
4922      {
4923    if (conf_parser_ctx.pass == 2)
4924 <    yy_match_item->action |= SHARED_UNKLINE;
4924 >    block_state.flags.value |= SHARED_UNKLINE;
4925   }
4926      break;
4927  
4928    case 316:
4929 <
4930 < /* Line 1788 of yacc.c  */
5419 < #line 1915 "conf_parser.y"
4929 > /* Line 1778 of yacc.c  */
4930 > #line 1713 "conf_parser.y"
4931      {
4932    if (conf_parser_ctx.pass == 2)
4933 <    yy_match_item->action |= SHARED_DLINE;
4933 >    block_state.flags.value |= SHARED_DLINE;
4934   }
4935      break;
4936  
4937    case 317:
4938 <
4939 < /* Line 1788 of yacc.c  */
5429 < #line 1919 "conf_parser.y"
4938 > /* Line 1778 of yacc.c  */
4939 > #line 1717 "conf_parser.y"
4940      {
4941    if (conf_parser_ctx.pass == 2)
4942 <    yy_match_item->action |= SHARED_UNDLINE;
4942 >    block_state.flags.value |= SHARED_UNDLINE;
4943   }
4944      break;
4945  
4946    case 318:
4947 <
4948 < /* Line 1788 of yacc.c  */
5439 < #line 1923 "conf_parser.y"
4947 > /* Line 1778 of yacc.c  */
4948 > #line 1721 "conf_parser.y"
4949      {
4950    if (conf_parser_ctx.pass == 2)
4951 <    yy_match_item->action |= SHARED_XLINE;
4951 >    block_state.flags.value |= SHARED_XLINE;
4952   }
4953      break;
4954  
4955    case 319:
4956 <
4957 < /* Line 1788 of yacc.c  */
5449 < #line 1927 "conf_parser.y"
4956 > /* Line 1778 of yacc.c  */
4957 > #line 1725 "conf_parser.y"
4958      {
4959    if (conf_parser_ctx.pass == 2)
4960 <    yy_match_item->action |= SHARED_UNXLINE;
4960 >    block_state.flags.value |= SHARED_UNXLINE;
4961   }
4962      break;
4963  
4964    case 320:
4965 <
4966 < /* Line 1788 of yacc.c  */
5459 < #line 1931 "conf_parser.y"
4965 > /* Line 1778 of yacc.c  */
4966 > #line 1729 "conf_parser.y"
4967      {
4968    if (conf_parser_ctx.pass == 2)
4969 <    yy_match_item->action |= SHARED_RESV;
4969 >    block_state.flags.value |= SHARED_RESV;
4970   }
4971      break;
4972  
4973    case 321:
4974 <
4975 < /* Line 1788 of yacc.c  */
5469 < #line 1935 "conf_parser.y"
4974 > /* Line 1778 of yacc.c  */
4975 > #line 1733 "conf_parser.y"
4976      {
4977    if (conf_parser_ctx.pass == 2)
4978 <    yy_match_item->action |= SHARED_UNRESV;
4978 >    block_state.flags.value |= SHARED_UNRESV;
4979   }
4980      break;
4981  
4982    case 322:
4983 <
4984 < /* Line 1788 of yacc.c  */
5479 < #line 1939 "conf_parser.y"
4983 > /* Line 1778 of yacc.c  */
4984 > #line 1737 "conf_parser.y"
4985      {
4986    if (conf_parser_ctx.pass == 2)
4987 <    yy_match_item->action |= SHARED_LOCOPS;
4987 >    block_state.flags.value |= SHARED_LOCOPS;
4988   }
4989      break;
4990  
4991    case 323:
4992 <
4993 < /* Line 1788 of yacc.c  */
5489 < #line 1943 "conf_parser.y"
4992 > /* Line 1778 of yacc.c  */
4993 > #line 1741 "conf_parser.y"
4994      {
4995    if (conf_parser_ctx.pass == 2)
4996 <    yy_match_item->action = SHARED_ALL;
4996 >    block_state.flags.value = SHARED_ALL;
4997   }
4998      break;
4999  
5000    case 324:
5001 <
5002 < /* Line 1788 of yacc.c  */
5499 < #line 1952 "conf_parser.y"
5001 > /* Line 1778 of yacc.c  */
5002 > #line 1750 "conf_parser.y"
5003      {
5004 <  if (conf_parser_ctx.pass == 2)
5005 <  {
5006 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5007 <    yy_conf->flags = SHARED_ALL;
5008 <  }
5004 >  if (conf_parser_ctx.pass != 2)
5005 >    break;
5006 >
5007 >  reset_block_state();
5008 >
5009 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5010 >  block_state.flags.value = SHARED_ALL;
5011   }
5012      break;
5013  
5014    case 325:
5015 <
5016 < /* Line 1788 of yacc.c  */
5512 < #line 1959 "conf_parser.y"
5015 > /* Line 1778 of yacc.c  */
5016 > #line 1759 "conf_parser.y"
5017      {
5018 <  if (conf_parser_ctx.pass == 2)
5019 <  {
5020 <    if (yy_conf->name == NULL)
5021 <      DupString(yy_conf->name, "*");
5022 <    yy_conf = NULL;
5023 <  }
5018 >  struct MaskItem *conf = NULL;
5019 >
5020 >  if (conf_parser_ctx.pass != 2)
5021 >    break;
5022 >
5023 >  conf = conf_make(CONF_CLUSTER);
5024 >  conf->flags = block_state.flags.value;
5025 >  conf->name = xstrdup(block_state.name.buf);
5026   }
5027      break;
5028  
5029    case 331:
5030 <
5031 < /* Line 1788 of yacc.c  */
5526 < #line 1972 "conf_parser.y"
5030 > /* Line 1778 of yacc.c  */
5031 > #line 1774 "conf_parser.y"
5032      {
5033    if (conf_parser_ctx.pass == 2)
5034 <    DupString(yy_conf->name, yylval.string);
5034 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5035   }
5036      break;
5037  
5038    case 332:
5039 <
5040 < /* Line 1788 of yacc.c  */
5536 < #line 1978 "conf_parser.y"
5039 > /* Line 1778 of yacc.c  */
5040 > #line 1780 "conf_parser.y"
5041      {
5042    if (conf_parser_ctx.pass == 2)
5043 <    yy_conf->flags = 0;
5043 >    block_state.flags.value = 0;
5044   }
5045      break;
5046  
5047    case 336:
5048 <
5049 < /* Line 1788 of yacc.c  */
5546 < #line 1985 "conf_parser.y"
5048 > /* Line 1778 of yacc.c  */
5049 > #line 1787 "conf_parser.y"
5050      {
5051    if (conf_parser_ctx.pass == 2)
5052 <    yy_conf->flags |= SHARED_KLINE;
5052 >    block_state.flags.value |= SHARED_KLINE;
5053   }
5054      break;
5055  
5056    case 337:
5057 <
5058 < /* Line 1788 of yacc.c  */
5556 < #line 1989 "conf_parser.y"
5057 > /* Line 1778 of yacc.c  */
5058 > #line 1791 "conf_parser.y"
5059      {
5060    if (conf_parser_ctx.pass == 2)
5061 <    yy_conf->flags |= SHARED_UNKLINE;
5061 >    block_state.flags.value |= SHARED_UNKLINE;
5062   }
5063      break;
5064  
5065    case 338:
5066 <
5067 < /* Line 1788 of yacc.c  */
5566 < #line 1993 "conf_parser.y"
5066 > /* Line 1778 of yacc.c  */
5067 > #line 1795 "conf_parser.y"
5068      {
5069    if (conf_parser_ctx.pass == 2)
5070 <    yy_conf->flags |= SHARED_DLINE;
5070 >    block_state.flags.value |= SHARED_DLINE;
5071   }
5072      break;
5073  
5074    case 339:
5075 <
5076 < /* Line 1788 of yacc.c  */
5576 < #line 1997 "conf_parser.y"
5075 > /* Line 1778 of yacc.c  */
5076 > #line 1799 "conf_parser.y"
5077      {
5078    if (conf_parser_ctx.pass == 2)
5079 <    yy_conf->flags |= SHARED_UNDLINE;
5079 >    block_state.flags.value |= SHARED_UNDLINE;
5080   }
5081      break;
5082  
5083    case 340:
5084 <
5085 < /* Line 1788 of yacc.c  */
5586 < #line 2001 "conf_parser.y"
5084 > /* Line 1778 of yacc.c  */
5085 > #line 1803 "conf_parser.y"
5086      {
5087    if (conf_parser_ctx.pass == 2)
5088 <    yy_conf->flags |= SHARED_XLINE;
5088 >    block_state.flags.value |= SHARED_XLINE;
5089   }
5090      break;
5091  
5092    case 341:
5093 <
5094 < /* Line 1788 of yacc.c  */
5596 < #line 2005 "conf_parser.y"
5093 > /* Line 1778 of yacc.c  */
5094 > #line 1807 "conf_parser.y"
5095      {
5096    if (conf_parser_ctx.pass == 2)
5097 <    yy_conf->flags |= SHARED_UNXLINE;
5097 >    block_state.flags.value |= SHARED_UNXLINE;
5098   }
5099      break;
5100  
5101    case 342:
5102 <
5103 < /* Line 1788 of yacc.c  */
5606 < #line 2009 "conf_parser.y"
5102 > /* Line 1778 of yacc.c  */
5103 > #line 1811 "conf_parser.y"
5104      {
5105    if (conf_parser_ctx.pass == 2)
5106 <    yy_conf->flags |= SHARED_RESV;
5106 >    block_state.flags.value |= SHARED_RESV;
5107   }
5108      break;
5109  
5110    case 343:
5111 <
5112 < /* Line 1788 of yacc.c  */
5616 < #line 2013 "conf_parser.y"
5111 > /* Line 1778 of yacc.c  */
5112 > #line 1815 "conf_parser.y"
5113      {
5114    if (conf_parser_ctx.pass == 2)
5115 <    yy_conf->flags |= SHARED_UNRESV;
5115 >    block_state.flags.value |= SHARED_UNRESV;
5116   }
5117      break;
5118  
5119    case 344:
5120 <
5121 < /* Line 1788 of yacc.c  */
5626 < #line 2017 "conf_parser.y"
5120 > /* Line 1778 of yacc.c  */
5121 > #line 1819 "conf_parser.y"
5122      {
5123    if (conf_parser_ctx.pass == 2)
5124 <    yy_conf->flags |= SHARED_LOCOPS;
5124 >    block_state.flags.value |= SHARED_LOCOPS;
5125   }
5126      break;
5127  
5128    case 345:
5129 <
5130 < /* Line 1788 of yacc.c  */
5636 < #line 2021 "conf_parser.y"
5129 > /* Line 1778 of yacc.c  */
5130 > #line 1823 "conf_parser.y"
5131      {
5132    if (conf_parser_ctx.pass == 2)
5133 <    yy_conf->flags = SHARED_ALL;
5133 >    block_state.flags.value = SHARED_ALL;
5134   }
5135      break;
5136  
5137    case 346:
5138 <
5139 < /* Line 1788 of yacc.c  */
5646 < #line 2030 "conf_parser.y"
5138 > /* Line 1778 of yacc.c  */
5139 > #line 1832 "conf_parser.y"
5140      {
5648  if (conf_parser_ctx.pass == 2)
5649  {
5650    yy_conf = make_conf_item(SERVER_TYPE);
5651    yy_aconf = map_to_conf(yy_conf);
5141  
5142 <    /* defaults */
5143 <    yy_aconf->port = PORTNUM;
5144 <  }
5145 <  else
5146 <  {
5658 <    MyFree(class_name);
5659 <    class_name = NULL;
5660 <  }
5142 >  if (conf_parser_ctx.pass != 2)
5143 >    break;
5144 >
5145 >  reset_block_state();
5146 >  block_state.port.value = PORTNUM;
5147   }
5148      break;
5149  
5150    case 347:
5151 <
5152 < /* Line 1788 of yacc.c  */
5667 < #line 2045 "conf_parser.y"
5151 > /* Line 1778 of yacc.c  */
5152 > #line 1840 "conf_parser.y"
5153      {
5154 <  if (conf_parser_ctx.pass == 2)
5155 <  {
5671 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5672 <    {
5673 <      if (conf_add_server(yy_conf, class_name) == -1)
5674 <        delete_conf_item(yy_conf);
5675 <    }
5676 <    else
5677 <    {
5678 <      if (yy_conf->name != NULL)
5679 <      {
5680 <        if (yy_aconf->host == NULL)
5681 <          yyerror("Ignoring connect block -- missing host");
5682 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5683 <          yyerror("Ignoring connect block -- missing password");
5684 <      }
5685 <
5686 <      /* XXX
5687 <       * This fixes a try_connections() core (caused by invalid class_ptr
5688 <       * pointers) reported by metalrock. That's an ugly fix, but there
5689 <       * is currently no better way. The entire config subsystem needs an
5690 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5691 <       * a doubly linked list immediately without any sanity checks!  -Michael
5692 <       */
5693 <      delete_conf_item(yy_conf);
5694 <    }
5154 >  struct MaskItem *conf = NULL;
5155 >  struct addrinfo hints, *res;
5156  
5157 <    MyFree(class_name);
5697 <    class_name = NULL;
5698 <    yy_conf = NULL;
5699 <    yy_aconf = NULL;
5700 <  }
5701 < }
5157 >  if (conf_parser_ctx.pass != 2)
5158      break;
5159  
5160 <  case 364:
5161 <
5706 < /* Line 1788 of yacc.c  */
5707 < #line 2089 "conf_parser.y"
5708 <    {
5709 <  if (conf_parser_ctx.pass == 2)
5710 <  {
5711 <    MyFree(yy_conf->name);
5712 <    DupString(yy_conf->name, yylval.string);
5713 <  }
5714 < }
5160 >  if (!block_state.name.buf[0] ||
5161 >      !block_state.host.buf[0])
5162      break;
5163  
5164 <  case 365:
5164 >  if (!(block_state.rpass.buf[0] ||
5165 >        block_state.spass.buf[0]))
5166 >    break;
5167  
5168 < /* Line 1788 of yacc.c  */
5169 < #line 2098 "conf_parser.y"
5721 <    {
5722 <  if (conf_parser_ctx.pass == 2)
5723 <  {
5724 <    MyFree(yy_aconf->host);
5725 <    DupString(yy_aconf->host, yylval.string);
5726 <  }
5727 < }
5168 >  if (has_wildcards(block_state.name.buf) ||
5169 >      has_wildcards(block_state.host.buf))
5170      break;
5171  
5172 <  case 366:
5172 >  conf = conf_make(CONF_SERVER);
5173 >  conf->port = block_state.port.value;
5174 >  conf->flags = block_state.flags.value;
5175 >  conf->aftype = block_state.aftype.value;
5176 >  conf->host = xstrdup(block_state.host.buf);
5177 >  conf->name = xstrdup(block_state.name.buf);
5178 >  conf->passwd = xstrdup(block_state.rpass.buf);
5179 >  conf->spasswd = xstrdup(block_state.spass.buf);
5180 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5181  
5182 < /* Line 1788 of yacc.c  */
5183 < #line 2107 "conf_parser.y"
5734 <    {
5735 <  if (conf_parser_ctx.pass == 2)
5736 <  {
5737 <    struct addrinfo hints, *res;
5182 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5183 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5184  
5185 +  if (block_state.bind.buf[0])
5186 +  {
5187      memset(&hints, 0, sizeof(hints));
5188  
5189      hints.ai_family   = AF_UNSPEC;
5190      hints.ai_socktype = SOCK_STREAM;
5191      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5192  
5193 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5194 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5193 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5194 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5195      else
5196      {
5197        assert(res != NULL);
5198  
5199 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5200 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5201 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5199 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5200 >      conf->bind.ss.ss_family = res->ai_family;
5201 >      conf->bind.ss_len = res->ai_addrlen;
5202        freeaddrinfo(res);
5203      }
5204    }
5205 +
5206 +  conf_add_class_to_conf(conf, block_state.class.buf);
5207 +  lookup_confhost(conf);
5208   }
5209      break;
5210  
5211 <  case 367:
5211 >  case 364:
5212 > /* Line 1778 of yacc.c  */
5213 > #line 1906 "conf_parser.y"
5214 >    {
5215 >  if (conf_parser_ctx.pass == 2)
5216 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5217 > }
5218 >    break;
5219  
5220 < /* Line 1788 of yacc.c  */
5221 < #line 2133 "conf_parser.y"
5220 >  case 365:
5221 > /* Line 1778 of yacc.c  */
5222 > #line 1912 "conf_parser.y"
5223      {
5224    if (conf_parser_ctx.pass == 2)
5225 <  {
5226 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5227 <      yyerror("Server passwords cannot begin with a colon");
5769 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5770 <      yyerror("Server passwords cannot contain spaces");
5771 <    else {
5772 <      if (yy_aconf->spasswd != NULL)
5773 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5225 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5226 > }
5227 >    break;
5228  
5229 <      MyFree(yy_aconf->spasswd);
5230 <      DupString(yy_aconf->spasswd, yylval.string);
5231 <    }
5232 <  }
5229 >  case 366:
5230 > /* Line 1778 of yacc.c  */
5231 > #line 1918 "conf_parser.y"
5232 >    {
5233 >  if (conf_parser_ctx.pass == 2)
5234 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5235   }
5236      break;
5237  
5238 <  case 368:
5238 >  case 367:
5239 > /* Line 1778 of yacc.c  */
5240 > #line 1924 "conf_parser.y"
5241 >    {
5242 >  if (conf_parser_ctx.pass != 2)
5243 >    break;
5244  
5245 < /* Line 1788 of yacc.c  */
5246 < #line 2151 "conf_parser.y"
5245 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5246 >    yyerror("Server passwords cannot begin with a colon");
5247 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5248 >    yyerror("Server passwords cannot contain spaces");
5249 >  else
5250 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5251 > }
5252 >    break;
5253 >
5254 >  case 368:
5255 > /* Line 1778 of yacc.c  */
5256 > #line 1937 "conf_parser.y"
5257      {
5258 <  if (conf_parser_ctx.pass == 2)
5259 <  {
5789 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5790 <      yyerror("Server passwords cannot begin with a colon");
5791 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5792 <      yyerror("Server passwords cannot contain spaces");
5793 <    else {
5794 <      if (yy_aconf->passwd != NULL)
5795 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5258 >  if (conf_parser_ctx.pass != 2)
5259 >    break;
5260  
5261 <      MyFree(yy_aconf->passwd);
5262 <      DupString(yy_aconf->passwd, yylval.string);
5263 <    }
5264 <  }
5261 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5262 >    yyerror("Server passwords cannot begin with a colon");
5263 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5264 >    yyerror("Server passwords cannot contain spaces");
5265 >  else
5266 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5267   }
5268      break;
5269  
5270    case 369:
5271 <
5272 < /* Line 1788 of yacc.c  */
5807 < #line 2169 "conf_parser.y"
5271 > /* Line 1778 of yacc.c  */
5272 > #line 1950 "conf_parser.y"
5273      {
5274    if (conf_parser_ctx.pass == 2)
5275 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5275 >    block_state.port.value = (yyvsp[(3) - (4)].number);
5276   }
5277      break;
5278  
5279    case 370:
5280 <
5281 < /* Line 1788 of yacc.c  */
5817 < #line 2175 "conf_parser.y"
5280 > /* Line 1778 of yacc.c  */
5281 > #line 1956 "conf_parser.y"
5282      {
5283    if (conf_parser_ctx.pass == 2)
5284 <    yy_aconf->aftype = AF_INET;
5284 >    block_state.aftype.value = AF_INET;
5285   }
5286      break;
5287  
5288    case 371:
5289 <
5290 < /* Line 1788 of yacc.c  */
5827 < #line 2179 "conf_parser.y"
5289 > /* Line 1778 of yacc.c  */
5290 > #line 1960 "conf_parser.y"
5291      {
5292   #ifdef IPV6
5293    if (conf_parser_ctx.pass == 2)
5294 <    yy_aconf->aftype = AF_INET6;
5294 >    block_state.aftype.value = AF_INET6;
5295   #endif
5296   }
5297      break;
5298  
5299    case 372:
5300 <
5301 < /* Line 1788 of yacc.c  */
5839 < #line 2187 "conf_parser.y"
5300 > /* Line 1778 of yacc.c  */
5301 > #line 1968 "conf_parser.y"
5302      {
5303 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5304   }
5305      break;
5306  
5307    case 376:
5308 <
5309 < /* Line 1788 of yacc.c  */
5847 < #line 2192 "conf_parser.y"
5308 > /* Line 1778 of yacc.c  */
5309 > #line 1974 "conf_parser.y"
5310      {
5311    if (conf_parser_ctx.pass == 2)
5312 <    SetConfAllowAutoConn(yy_aconf);
5312 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5313   }
5314      break;
5315  
5316    case 377:
5317 <
5318 < /* Line 1788 of yacc.c  */
5857 < #line 2196 "conf_parser.y"
5317 > /* Line 1778 of yacc.c  */
5318 > #line 1978 "conf_parser.y"
5319      {
5320    if (conf_parser_ctx.pass == 2)
5321 <    SetConfAwayBurst(yy_aconf);
5321 >    block_state.flags.value |= CONF_FLAGS_SSL;
5322   }
5323      break;
5324  
5325    case 378:
5326 <
5327 < /* Line 1788 of yacc.c  */
5867 < #line 2200 "conf_parser.y"
5326 > /* Line 1778 of yacc.c  */
5327 > #line 1984 "conf_parser.y"
5328      {
5329    if (conf_parser_ctx.pass == 2)
5330 <    SetConfTopicBurst(yy_aconf);
5330 >  {
5331 >    if (yylval.number)
5332 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5333 >    else
5334 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5335 >  }
5336   }
5337      break;
5338  
5339    case 379:
5340 <
5341 < /* Line 1788 of yacc.c  */
5877 < #line 2204 "conf_parser.y"
5340 > /* Line 1778 of yacc.c  */
5341 > #line 1995 "conf_parser.y"
5342      {
5343    if (conf_parser_ctx.pass == 2)
5344 <    SetConfSSL(yy_aconf);
5344 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5345   }
5346      break;
5347  
5348    case 380:
5349 <
5350 < /* Line 1788 of yacc.c  */
5887 < #line 2210 "conf_parser.y"
5349 > /* Line 1778 of yacc.c  */
5350 > #line 2001 "conf_parser.y"
5351      {
5352    if (conf_parser_ctx.pass == 2)
5353 <  {
5891 <    if (yylval.number)
5892 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5893 <    else
5894 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5895 <  }
5353 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5354   }
5355      break;
5356  
5357    case 381:
5358 <
5359 < /* Line 1788 of yacc.c  */
5902 < #line 2221 "conf_parser.y"
5358 > /* Line 1778 of yacc.c  */
5359 > #line 2007 "conf_parser.y"
5360      {
5361    if (conf_parser_ctx.pass == 2)
5362 <  {
5906 <    char *mask;
5907 <
5908 <    DupString(mask, yylval.string);
5909 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5910 <  }
5362 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5363   }
5364      break;
5365  
5366    case 382:
5367 <
5368 < /* Line 1788 of yacc.c  */
5917 < #line 2232 "conf_parser.y"
5367 > /* Line 1778 of yacc.c  */
5368 > #line 2013 "conf_parser.y"
5369      {
5370 + #ifdef HAVE_LIBCRYPTO
5371    if (conf_parser_ctx.pass == 2)
5372 <  {
5373 <    char *mask;
5374 <
5375 <    DupString(mask, yylval.string);
5376 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5925 <  }
5372 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5373 > #else
5374 >  if (conf_parser_ctx.pass == 2)
5375 >    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5376 > #endif
5377   }
5378      break;
5379  
5380    case 383:
5381 <
5382 < /* Line 1788 of yacc.c  */
5932 < #line 2243 "conf_parser.y"
5381 > /* Line 1778 of yacc.c  */
5382 > #line 2028 "conf_parser.y"
5383      {
5384    if (conf_parser_ctx.pass == 2)
5385 <  {
5936 <    MyFree(class_name);
5937 <    DupString(class_name, yylval.string);
5938 <  }
5385 >    reset_block_state();
5386   }
5387      break;
5388  
5389    case 384:
5390 <
5391 < /* Line 1788 of yacc.c  */
5945 < #line 2252 "conf_parser.y"
5390 > /* Line 1778 of yacc.c  */
5391 > #line 2032 "conf_parser.y"
5392      {
5393 < #ifdef HAVE_LIBCRYPTO
5948 <  if (conf_parser_ctx.pass == 2)
5949 <  {
5950 <    MyFree(yy_aconf->cipher_list);
5951 <    DupString(yy_aconf->cipher_list, yylval.string);
5952 <  }
5953 < #else
5954 <  if (conf_parser_ctx.pass == 2)
5955 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5956 < #endif
5957 < }
5958 <    break;
5393 >  struct MaskItem *conf = NULL;
5394  
5395 <  case 385:
5395 >  if (conf_parser_ctx.pass != 2)
5396 >    break;
5397  
5398 < /* Line 1788 of yacc.c  */
5399 < #line 2270 "conf_parser.y"
5964 <    {
5965 <  if (conf_parser_ctx.pass == 2)
5966 <  {
5967 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5968 <    regex_ban = 0;
5969 <  }
5970 < }
5398 >  if (!block_state.user.buf[0] ||
5399 >      !block_state.host.buf[0])
5400      break;
5401  
5973  case 386:
5402  
5403 < /* Line 1788 of yacc.c  */
5976 < #line 2277 "conf_parser.y"
5977 <    {
5978 <  if (conf_parser_ctx.pass == 2)
5403 >  if (block_state.port.value == 1)
5404    {
5980    if (userbuf[0] && hostbuf[0])
5981    {
5982      if (regex_ban)
5983      {
5405   #ifdef HAVE_LIBPCRE
5406 <        void *exp_user = NULL;
5407 <        void *exp_host = NULL;
5408 <        const char *errptr = NULL;
5409 <
5410 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5411 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5412 <        {
5413 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5414 <               errptr);
5415 <          break;
5416 <        }
5406 >    void *exp_user = NULL;
5407 >    void *exp_host = NULL;
5408 >    const char *errptr = NULL;
5409 >
5410 >    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5411 >        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5412 >    {
5413 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5414 >           errptr);
5415 >      break;
5416 >    }
5417  
5418 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5419 <        yy_aconf->regexuser = exp_user;
5420 <        yy_aconf->regexhost = exp_host;
5418 >    conf = conf_make(CONF_RKLINE);
5419 >    conf->regexuser = exp_user;
5420 >    conf->regexhost = exp_host;
5421  
5422 <        DupString(yy_aconf->user, userbuf);
5423 <        DupString(yy_aconf->host, hostbuf);
5422 >    conf->user = xstrdup(block_state.user.buf);
5423 >    conf->host = xstrdup(block_state.host.buf);
5424  
5425 <        if (reasonbuf[0])
5426 <          DupString(yy_aconf->reason, reasonbuf);
5427 <        else
5428 <          DupString(yy_aconf->reason, "No reason");
5425 >    if (block_state.rpass.buf[0])
5426 >      conf->reason = xstrdup(block_state.rpass.buf);
5427 >    else
5428 >      conf->reason = xstrdup(CONF_NOREASON);
5429   #else
5430 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5431 <        break;
5430 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5431 >    break;
5432   #endif
5433 <      }
5434 <      else
5435 <      {
5436 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
6016 <
6017 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5433 >  }
5434 >  else
5435 >  {
5436 >    conf = conf_make(CONF_KLINE);
5437  
5438 <        DupString(yy_aconf->user, userbuf);
5439 <        DupString(yy_aconf->host, hostbuf);
5438 >    conf->user = xstrdup(block_state.user.buf);
5439 >    conf->host = xstrdup(block_state.host.buf);
5440  
5441 <        if (reasonbuf[0])
5442 <          DupString(yy_aconf->reason, reasonbuf);
5443 <        else
5444 <          DupString(yy_aconf->reason, "No reason");
5445 <        add_conf_by_address(CONF_KLINE, yy_aconf);
6027 <      }
6028 <    }
6029 <
6030 <    yy_aconf = NULL;
5441 >    if (block_state.rpass.buf[0])
5442 >      conf->reason = xstrdup(block_state.rpass.buf);
5443 >    else
5444 >      conf->reason = xstrdup(CONF_NOREASON);
5445 >    add_conf_by_address(CONF_KLINE, conf);
5446    }
5447   }
5448      break;
5449  
5450 <  case 387:
5451 <
5452 < /* Line 1788 of yacc.c  */
6038 < #line 2335 "conf_parser.y"
5450 >  case 385:
5451 > /* Line 1778 of yacc.c  */
5452 > #line 2090 "conf_parser.y"
5453      {
5454 +  if (conf_parser_ctx.pass == 2)
5455 +    block_state.port.value = 0;
5456   }
5457      break;
5458  
5459 <  case 391:
5460 <
5461 < /* Line 1788 of yacc.c  */
6046 < #line 2340 "conf_parser.y"
5459 >  case 389:
5460 > /* Line 1778 of yacc.c  */
5461 > #line 2097 "conf_parser.y"
5462      {
5463    if (conf_parser_ctx.pass == 2)
5464 <    regex_ban = 1;
5464 >    block_state.port.value = 1;
5465   }
5466      break;
5467  
5468 <  case 398:
5469 <
5470 < /* Line 1788 of yacc.c  */
6056 < #line 2349 "conf_parser.y"
5468 >  case 396:
5469 > /* Line 1778 of yacc.c  */
5470 > #line 2106 "conf_parser.y"
5471      {
5472 +
5473    if (conf_parser_ctx.pass == 2)
5474    {
5475      struct split_nuh_item nuh;
5476  
5477      nuh.nuhmask  = yylval.string;
5478      nuh.nickptr  = NULL;
5479 <    nuh.userptr  = userbuf;
5480 <    nuh.hostptr  = hostbuf;
5479 >    nuh.userptr  = block_state.user.buf;
5480 >    nuh.hostptr  = block_state.host.buf;
5481  
5482      nuh.nicksize = 0;
5483 <    nuh.usersize = sizeof(userbuf);
5484 <    nuh.hostsize = sizeof(hostbuf);
5483 >    nuh.usersize = sizeof(block_state.user.buf);
5484 >    nuh.hostsize = sizeof(block_state.host.buf);
5485  
5486      split_nuh(&nuh);
5487    }
5488   }
5489      break;
5490  
5491 <  case 399:
5492 <
5493 < /* Line 1788 of yacc.c  */
6079 < #line 2368 "conf_parser.y"
5491 >  case 397:
5492 > /* Line 1778 of yacc.c  */
5493 > #line 2126 "conf_parser.y"
5494      {
5495    if (conf_parser_ctx.pass == 2)
5496 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5496 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5497   }
5498      break;
5499  
5500 <  case 400:
5501 <
5502 < /* Line 1788 of yacc.c  */
6089 < #line 2377 "conf_parser.y"
5500 >  case 398:
5501 > /* Line 1778 of yacc.c  */
5502 > #line 2135 "conf_parser.y"
5503      {
5504    if (conf_parser_ctx.pass == 2)
5505 <    hostbuf[0] = reasonbuf[0] = '\0';
5505 >    reset_block_state();
5506   }
5507      break;
5508  
5509 <  case 401:
5510 <
5511 < /* Line 1788 of yacc.c  */
6099 < #line 2381 "conf_parser.y"
6100 <    {
6101 <  if (conf_parser_ctx.pass == 2)
6102 <  {
6103 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5509 >  case 399:
5510 > /* Line 1778 of yacc.c  */
5511 > #line 2139 "conf_parser.y"
5512      {
5513 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5513 >  struct MaskItem *conf = NULL;
5514 >
5515 >  if (conf_parser_ctx.pass != 2)
5516 >    break;
5517  
5518 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5519 <      DupString(yy_aconf->host, hostbuf);
5518 >  if (!block_state.addr.buf[0])
5519 >    break;
5520  
5521 <      if (reasonbuf[0])
5522 <        DupString(yy_aconf->reason, reasonbuf);
5523 <      else
5524 <        DupString(yy_aconf->reason, "No reason");
5525 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5526 <      yy_aconf = NULL;
5527 <    }
5521 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5522 >  {
5523 >    conf = conf_make(CONF_DLINE);
5524 >    conf->host = xstrdup(block_state.addr.buf);
5525 >
5526 >    if (block_state.rpass.buf[0])
5527 >      conf->reason = xstrdup(block_state.rpass.buf);
5528 >    else
5529 >      conf->reason = xstrdup(CONF_NOREASON);
5530 >    add_conf_by_address(CONF_DLINE, conf);
5531    }
5532   }
5533      break;
5534  
5535 <  case 407:
5536 <
5537 < /* Line 1788 of yacc.c  */
6124 < #line 2405 "conf_parser.y"
5535 >  case 405:
5536 > /* Line 1778 of yacc.c  */
5537 > #line 2165 "conf_parser.y"
5538      {
5539    if (conf_parser_ctx.pass == 2)
5540 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5540 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5541   }
5542      break;
5543  
5544 <  case 408:
5545 <
5546 < /* Line 1788 of yacc.c  */
6134 < #line 2411 "conf_parser.y"
5544 >  case 406:
5545 > /* Line 1778 of yacc.c  */
5546 > #line 2171 "conf_parser.y"
5547      {
5548    if (conf_parser_ctx.pass == 2)
5549 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5549 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5550   }
5551      break;
5552  
5553 <  case 414:
5554 <
5555 < /* Line 1788 of yacc.c  */
6144 < #line 2425 "conf_parser.y"
5553 >  case 412:
5554 > /* Line 1778 of yacc.c  */
5555 > #line 2185 "conf_parser.y"
5556      {
5557    if (conf_parser_ctx.pass == 2)
5558    {
5559      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5560      {
5561 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5562 <      DupString(yy_aconf->host, yylval.string);
5561 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5562 >      conf->host = xstrdup(yylval.string);
5563  
5564 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6154 <      yy_aconf = NULL;
5564 >      add_conf_by_address(CONF_EXEMPT, conf);
5565      }
5566    }
5567   }
5568      break;
5569  
5570 <  case 415:
5571 <
5572 < /* Line 1788 of yacc.c  */
6163 < #line 2443 "conf_parser.y"
5570 >  case 413:
5571 > /* Line 1778 of yacc.c  */
5572 > #line 2202 "conf_parser.y"
5573      {
5574    if (conf_parser_ctx.pass == 2)
5575 <  {
6167 <    regex_ban = 0;
6168 <    reasonbuf[0] = gecos_name[0] = '\0';
6169 <  }
5575 >    reset_block_state();
5576   }
5577      break;
5578  
5579 <  case 416:
5580 <
5581 < /* Line 1788 of yacc.c  */
6176 < #line 2450 "conf_parser.y"
5579 >  case 414:
5580 > /* Line 1778 of yacc.c  */
5581 > #line 2206 "conf_parser.y"
5582      {
5583 <  if (conf_parser_ctx.pass == 2)
5583 >  struct MaskItem *conf = NULL;
5584 >
5585 >  if (conf_parser_ctx.pass != 2)
5586 >    break;
5587 >
5588 >  if (!block_state.name.buf[0])
5589 >    break;
5590 >
5591 >  if (block_state.port.value == 1)
5592    {
6180    if (gecos_name[0])
6181    {
6182      if (regex_ban)
6183      {
5593   #ifdef HAVE_LIBPCRE
5594 <        void *exp_p = NULL;
5595 <        const char *errptr = NULL;
5594 >    void *exp_p = NULL;
5595 >    const char *errptr = NULL;
5596  
5597 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5598 <        {
5599 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5600 <               errptr);
5601 <          break;
5602 <        }
5597 >    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5598 >    {
5599 >      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5600 >           errptr);
5601 >      break;
5602 >    }
5603  
5604 <        yy_conf = make_conf_item(RXLINE_TYPE);
5605 <        yy_conf->regexpname = exp_p;
5604 >    conf = conf_make(CONF_RXLINE);
5605 >    conf->regexuser = exp_p;
5606   #else
5607 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5608 <        break;
5607 >    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5608 >    break;
5609   #endif
5610 <      }
5611 <      else
5612 <        yy_conf = make_conf_item(XLINE_TYPE);
5610 >  }
5611 >  else
5612 >    conf = conf_make(CONF_XLINE);
5613  
5614 <      yy_match_item = map_to_conf(yy_conf);
6206 <      DupString(yy_conf->name, gecos_name);
5614 >  conf->name = xstrdup(block_state.name.buf);
5615  
5616 <      if (reasonbuf[0])
5617 <        DupString(yy_match_item->reason, reasonbuf);
5618 <      else
5619 <        DupString(yy_match_item->reason, "No reason");
6212 <    }
6213 <  }
5616 >  if (block_state.rpass.buf[0])
5617 >    conf->reason = xstrdup(block_state.rpass.buf);
5618 >  else
5619 >    conf->reason = xstrdup(CONF_NOREASON);
5620   }
5621      break;
5622  
5623 <  case 417:
5624 <
5625 < /* Line 1788 of yacc.c  */
6220 < #line 2490 "conf_parser.y"
5623 >  case 415:
5624 > /* Line 1778 of yacc.c  */
5625 > #line 2247 "conf_parser.y"
5626      {
5627 +  if (conf_parser_ctx.pass == 2)
5628 +    block_state.port.value = 0;
5629   }
5630      break;
5631  
5632 <  case 421:
5633 <
5634 < /* Line 1788 of yacc.c  */
6228 < #line 2495 "conf_parser.y"
5632 >  case 419:
5633 > /* Line 1778 of yacc.c  */
5634 > #line 2254 "conf_parser.y"
5635      {
5636    if (conf_parser_ctx.pass == 2)
5637 <    regex_ban = 1;
5637 >    block_state.port.value = 1;
5638   }
5639      break;
5640  
5641 <  case 428:
5642 <
5643 < /* Line 1788 of yacc.c  */
6238 < #line 2504 "conf_parser.y"
5641 >  case 426:
5642 > /* Line 1778 of yacc.c  */
5643 > #line 2263 "conf_parser.y"
5644      {
5645    if (conf_parser_ctx.pass == 2)
5646 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5646 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5647   }
5648      break;
5649  
5650 <  case 429:
5651 <
5652 < /* Line 1788 of yacc.c  */
6248 < #line 2510 "conf_parser.y"
5650 >  case 427:
5651 > /* Line 1778 of yacc.c  */
5652 > #line 2269 "conf_parser.y"
5653      {
5654    if (conf_parser_ctx.pass == 2)
5655 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5655 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5656   }
5657      break;
5658  
5659 <  case 488:
5660 <
5661 < /* Line 1788 of yacc.c  */
6258 < #line 2556 "conf_parser.y"
5659 >  case 481:
5660 > /* Line 1778 of yacc.c  */
5661 > #line 2314 "conf_parser.y"
5662      {
5663    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5664   }
5665      break;
5666  
5667 <  case 489:
5668 <
5669 < /* Line 1788 of yacc.c  */
6267 < #line 2561 "conf_parser.y"
5667 >  case 482:
5668 > /* Line 1778 of yacc.c  */
5669 > #line 2319 "conf_parser.y"
5670      {
5671    if (conf_parser_ctx.pass == 2)
5672      ConfigFileEntry.glines = yylval.number;
5673   }
5674      break;
5675  
5676 <  case 490:
5677 <
5678 < /* Line 1788 of yacc.c  */
6277 < #line 2567 "conf_parser.y"
5676 >  case 483:
5677 > /* Line 1778 of yacc.c  */
5678 > #line 2325 "conf_parser.y"
5679      {
5680    if (conf_parser_ctx.pass == 2)
5681      ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5682   }
5683      break;
5684  
5685 <  case 491:
5686 <
5687 < /* Line 1788 of yacc.c  */
6287 < #line 2573 "conf_parser.y"
5685 >  case 484:
5686 > /* Line 1778 of yacc.c  */
5687 > #line 2331 "conf_parser.y"
5688      {
5689    if (conf_parser_ctx.pass == 2)
5690      ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5691   }
5692      break;
5693  
5694 <  case 492:
5695 <
5696 < /* Line 1788 of yacc.c  */
6297 < #line 2579 "conf_parser.y"
5694 >  case 485:
5695 > /* Line 1778 of yacc.c  */
5696 > #line 2337 "conf_parser.y"
5697      {
5698    ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5699   }
5700      break;
5701  
5702 <  case 493:
5703 <
5704 < /* Line 1788 of yacc.c  */
6306 < #line 2584 "conf_parser.y"
5702 >  case 486:
5703 > /* Line 1778 of yacc.c  */
5704 > #line 2342 "conf_parser.y"
5705      {
5706    ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5707   }
5708      break;
5709  
5710 <  case 494:
5711 <
5712 < /* Line 1788 of yacc.c  */
6315 < #line 2589 "conf_parser.y"
6316 <    {
6317 <  ConfigFileEntry.use_whois_actually = yylval.number;
6318 < }
6319 <    break;
6320 <
6321 <  case 495:
6322 <
6323 < /* Line 1788 of yacc.c  */
6324 < #line 2594 "conf_parser.y"
6325 <    {
6326 <  GlobalSetOptions.rejecttime = yylval.number;
6327 < }
6328 <    break;
6329 <
6330 <  case 496:
6331 <
6332 < /* Line 1788 of yacc.c  */
6333 < #line 2599 "conf_parser.y"
5710 >  case 487:
5711 > /* Line 1778 of yacc.c  */
5712 > #line 2347 "conf_parser.y"
5713      {
5714    ConfigFileEntry.tkline_expire_notices = yylval.number;
5715   }
5716      break;
5717  
5718 <  case 497:
5719 <
5720 < /* Line 1788 of yacc.c  */
6342 < #line 2604 "conf_parser.y"
5718 >  case 488:
5719 > /* Line 1778 of yacc.c  */
5720 > #line 2352 "conf_parser.y"
5721      {
5722    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5723   }
5724      break;
5725  
5726 <  case 498:
5727 <
5728 < /* Line 1788 of yacc.c  */
6351 < #line 2609 "conf_parser.y"
5726 >  case 489:
5727 > /* Line 1778 of yacc.c  */
5728 > #line 2357 "conf_parser.y"
5729      {
5730    ConfigFileEntry.hide_spoof_ips = yylval.number;
5731   }
5732      break;
5733  
5734 <  case 499:
5735 <
5736 < /* Line 1788 of yacc.c  */
6360 < #line 2614 "conf_parser.y"
5734 >  case 490:
5735 > /* Line 1778 of yacc.c  */
5736 > #line 2362 "conf_parser.y"
5737      {
5738    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5739   }
5740      break;
5741  
5742 <  case 500:
5743 <
5744 < /* Line 1788 of yacc.c  */
6369 < #line 2619 "conf_parser.y"
5742 >  case 491:
5743 > /* Line 1778 of yacc.c  */
5744 > #line 2367 "conf_parser.y"
5745      {
5746    ConfigFileEntry.disable_remote = yylval.number;
5747   }
5748      break;
5749  
5750 <  case 501:
5751 <
5752 < /* Line 1788 of yacc.c  */
6378 < #line 2624 "conf_parser.y"
5750 >  case 492:
5751 > /* Line 1778 of yacc.c  */
5752 > #line 2372 "conf_parser.y"
5753      {
5754    ConfigFileEntry.failed_oper_notice = yylval.number;
5755   }
5756      break;
5757  
5758 <  case 502:
5759 <
5760 < /* Line 1788 of yacc.c  */
6387 < #line 2629 "conf_parser.y"
5758 >  case 493:
5759 > /* Line 1778 of yacc.c  */
5760 > #line 2377 "conf_parser.y"
5761      {
5762    ConfigFileEntry.anti_nick_flood = yylval.number;
5763   }
5764      break;
5765  
5766 <  case 503:
5767 <
5768 < /* Line 1788 of yacc.c  */
6396 < #line 2634 "conf_parser.y"
5766 >  case 494:
5767 > /* Line 1778 of yacc.c  */
5768 > #line 2382 "conf_parser.y"
5769      {
5770    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5771   }
5772      break;
5773  
5774 <  case 504:
5775 <
5776 < /* Line 1788 of yacc.c  */
6405 < #line 2639 "conf_parser.y"
5774 >  case 495:
5775 > /* Line 1778 of yacc.c  */
5776 > #line 2387 "conf_parser.y"
5777      {
5778    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5779   }
5780      break;
5781  
5782 <  case 505:
5783 <
5784 < /* Line 1788 of yacc.c  */
6414 < #line 2644 "conf_parser.y"
5782 >  case 496:
5783 > /* Line 1778 of yacc.c  */
5784 > #line 2392 "conf_parser.y"
5785      {
5786    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5787   }
5788      break;
5789  
5790 <  case 506:
5791 <
5792 < /* Line 1788 of yacc.c  */
6423 < #line 2649 "conf_parser.y"
5790 >  case 497:
5791 > /* Line 1778 of yacc.c  */
5792 > #line 2397 "conf_parser.y"
5793      {
5794    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5795   }
5796      break;
5797  
5798 <  case 507:
5799 <
5800 < /* Line 1788 of yacc.c  */
6432 < #line 2654 "conf_parser.y"
5798 >  case 498:
5799 > /* Line 1778 of yacc.c  */
5800 > #line 2402 "conf_parser.y"
5801      {
5802    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5803   }
5804      break;
5805  
5806 <  case 508:
5807 <
5808 < /* Line 1788 of yacc.c  */
6441 < #line 2659 "conf_parser.y"
5806 >  case 499:
5807 > /* Line 1778 of yacc.c  */
5808 > #line 2407 "conf_parser.y"
5809      {
5810    if (conf_parser_ctx.pass == 2)
5811      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5812   }
5813      break;
5814  
5815 <  case 509:
5816 <
5817 < /* Line 1788 of yacc.c  */
6451 < #line 2665 "conf_parser.y"
5815 >  case 500:
5816 > /* Line 1778 of yacc.c  */
5817 > #line 2413 "conf_parser.y"
5818      {
5819    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5820    {
# Line 6460 | Line 5826 | yyreduce:
5826   }
5827      break;
5828  
5829 <  case 510:
5830 <
5831 < /* Line 1788 of yacc.c  */
6466 < #line 2676 "conf_parser.y"
6467 <    {
6468 <  ConfigFileEntry.kline_with_reason = yylval.number;
6469 < }
6470 <    break;
6471 <
6472 <  case 511:
6473 <
6474 < /* Line 1788 of yacc.c  */
6475 < #line 2681 "conf_parser.y"
6476 <    {
6477 <  if (conf_parser_ctx.pass == 2)
6478 <  {
6479 <    MyFree(ConfigFileEntry.kline_reason);
6480 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6481 <  }
6482 < }
6483 <    break;
6484 <
6485 <  case 512:
6486 <
6487 < /* Line 1788 of yacc.c  */
6488 < #line 2690 "conf_parser.y"
5829 >  case 501:
5830 > /* Line 1778 of yacc.c  */
5831 > #line 2424 "conf_parser.y"
5832      {
5833    ConfigFileEntry.invisible_on_connect = yylval.number;
5834   }
5835      break;
5836  
5837 <  case 513:
5838 <
5839 < /* Line 1788 of yacc.c  */
6497 < #line 2695 "conf_parser.y"
5837 >  case 502:
5838 > /* Line 1778 of yacc.c  */
5839 > #line 2429 "conf_parser.y"
5840      {
5841    ConfigFileEntry.warn_no_nline = yylval.number;
5842   }
5843      break;
5844  
5845 <  case 514:
5846 <
5847 < /* Line 1788 of yacc.c  */
6506 < #line 2700 "conf_parser.y"
5845 >  case 503:
5846 > /* Line 1778 of yacc.c  */
5847 > #line 2434 "conf_parser.y"
5848      {
5849    ConfigFileEntry.stats_e_disabled = yylval.number;
5850   }
5851      break;
5852  
5853 <  case 515:
5854 <
5855 < /* Line 1788 of yacc.c  */
6515 < #line 2705 "conf_parser.y"
5853 >  case 504:
5854 > /* Line 1778 of yacc.c  */
5855 > #line 2439 "conf_parser.y"
5856      {
5857    ConfigFileEntry.stats_o_oper_only = yylval.number;
5858   }
5859      break;
5860  
5861 <  case 516:
5862 <
5863 < /* Line 1788 of yacc.c  */
6524 < #line 2710 "conf_parser.y"
5861 >  case 505:
5862 > /* Line 1778 of yacc.c  */
5863 > #line 2444 "conf_parser.y"
5864      {
5865    ConfigFileEntry.stats_P_oper_only = yylval.number;
5866   }
5867      break;
5868  
5869 <  case 517:
5870 <
5871 < /* Line 1788 of yacc.c  */
6533 < #line 2715 "conf_parser.y"
5869 >  case 506:
5870 > /* Line 1778 of yacc.c  */
5871 > #line 2449 "conf_parser.y"
5872      {
5873    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5874   }
5875      break;
5876  
5877 <  case 518:
5878 <
5879 < /* Line 1788 of yacc.c  */
6542 < #line 2718 "conf_parser.y"
5877 >  case 507:
5878 > /* Line 1778 of yacc.c  */
5879 > #line 2452 "conf_parser.y"
5880      {
5881    ConfigFileEntry.stats_k_oper_only = 1;
5882   }
5883      break;
5884  
5885 <  case 519:
5886 <
5887 < /* Line 1788 of yacc.c  */
6551 < #line 2723 "conf_parser.y"
5885 >  case 508:
5886 > /* Line 1778 of yacc.c  */
5887 > #line 2457 "conf_parser.y"
5888      {
5889    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5890   }
5891      break;
5892  
5893 <  case 520:
5894 <
5895 < /* Line 1788 of yacc.c  */
6560 < #line 2726 "conf_parser.y"
5893 >  case 509:
5894 > /* Line 1778 of yacc.c  */
5895 > #line 2460 "conf_parser.y"
5896      {
5897    ConfigFileEntry.stats_i_oper_only = 1;
5898   }
5899      break;
5900  
5901 <  case 521:
5902 <
5903 < /* Line 1788 of yacc.c  */
6569 < #line 2731 "conf_parser.y"
5901 >  case 510:
5902 > /* Line 1778 of yacc.c  */
5903 > #line 2465 "conf_parser.y"
5904      {
5905    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5906   }
5907      break;
5908  
5909 <  case 522:
5910 <
5911 < /* Line 1788 of yacc.c  */
6578 < #line 2736 "conf_parser.y"
5909 >  case 511:
5910 > /* Line 1778 of yacc.c  */
5911 > #line 2470 "conf_parser.y"
5912      {
5913    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5914   }
5915      break;
5916  
5917 <  case 523:
5918 <
5919 < /* Line 1788 of yacc.c  */
6587 < #line 2741 "conf_parser.y"
5917 >  case 512:
5918 > /* Line 1778 of yacc.c  */
5919 > #line 2475 "conf_parser.y"
5920      {
5921    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5922   }
5923      break;
5924  
5925 <  case 524:
5926 <
5927 < /* Line 1788 of yacc.c  */
6596 < #line 2746 "conf_parser.y"
5925 >  case 513:
5926 > /* Line 1778 of yacc.c  */
5927 > #line 2480 "conf_parser.y"
5928      {
5929    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5930   }
5931      break;
5932  
5933 <  case 525:
5934 <
5935 < /* Line 1788 of yacc.c  */
6605 < #line 2751 "conf_parser.y"
5933 >  case 514:
5934 > /* Line 1778 of yacc.c  */
5935 > #line 2485 "conf_parser.y"
5936      {
5937    ConfigFileEntry.short_motd = yylval.number;
5938   }
5939      break;
5940  
5941 <  case 526:
5942 <
5943 < /* Line 1788 of yacc.c  */
6614 < #line 2756 "conf_parser.y"
5941 >  case 515:
5942 > /* Line 1778 of yacc.c  */
5943 > #line 2490 "conf_parser.y"
5944      {
5945    ConfigFileEntry.no_oper_flood = yylval.number;
5946   }
5947      break;
5948  
5949 <  case 527:
5950 <
5951 < /* Line 1788 of yacc.c  */
6623 < #line 2761 "conf_parser.y"
5949 >  case 516:
5950 > /* Line 1778 of yacc.c  */
5951 > #line 2495 "conf_parser.y"
5952      {
5953    ConfigFileEntry.true_no_oper_flood = yylval.number;
5954   }
5955      break;
5956  
5957 <  case 528:
5958 <
5959 < /* Line 1788 of yacc.c  */
6632 < #line 2766 "conf_parser.y"
5957 >  case 517:
5958 > /* Line 1778 of yacc.c  */
5959 > #line 2500 "conf_parser.y"
5960      {
5961    ConfigFileEntry.oper_pass_resv = yylval.number;
5962   }
5963      break;
5964  
5965 <  case 529:
5966 <
5967 < /* Line 1788 of yacc.c  */
6641 < #line 2771 "conf_parser.y"
5965 >  case 518:
5966 > /* Line 1778 of yacc.c  */
5967 > #line 2505 "conf_parser.y"
5968      {
5969    if (conf_parser_ctx.pass == 2)
5970    {
# Line 6650 | Line 5976 | yyreduce:
5976   }
5977      break;
5978  
5979 <  case 530:
5980 <
5981 < /* Line 1788 of yacc.c  */
6656 < #line 2782 "conf_parser.y"
5979 >  case 519:
5980 > /* Line 1778 of yacc.c  */
5981 > #line 2516 "conf_parser.y"
5982      {
5983    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5984   }
5985      break;
5986  
5987 <  case 531:
5988 <
5989 < /* Line 1788 of yacc.c  */
6665 < #line 2787 "conf_parser.y"
5987 >  case 520:
5988 > /* Line 1778 of yacc.c  */
5989 > #line 2521 "conf_parser.y"
5990      {
5991    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5992   }
5993      break;
5994  
5995 <  case 532:
5996 <
5997 < /* Line 1788 of yacc.c  */
6674 < #line 2792 "conf_parser.y"
5995 >  case 521:
5996 > /* Line 1778 of yacc.c  */
5997 > #line 2526 "conf_parser.y"
5998      {
5999    ConfigFileEntry.use_egd = yylval.number;
6000   }
6001      break;
6002  
6003 <  case 533:
6004 <
6005 < /* Line 1788 of yacc.c  */
6683 < #line 2797 "conf_parser.y"
6003 >  case 522:
6004 > /* Line 1778 of yacc.c  */
6005 > #line 2531 "conf_parser.y"
6006      {
6007    if (conf_parser_ctx.pass == 2)
6008    {
6009      MyFree(ConfigFileEntry.egdpool_path);
6010 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6010 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6011    }
6012   }
6013      break;
6014  
6015 <  case 534:
6016 <
6017 < /* Line 1788 of yacc.c  */
6696 < #line 2806 "conf_parser.y"
6015 >  case 523:
6016 > /* Line 1778 of yacc.c  */
6017 > #line 2540 "conf_parser.y"
6018      {
6019    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6020    {
6021      MyFree(ConfigFileEntry.service_name);
6022 <    DupString(ConfigFileEntry.service_name, yylval.string);
6022 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6023    }
6024   }
6025      break;
6026  
6027 <  case 535:
6028 <
6029 < /* Line 1788 of yacc.c  */
6709 < #line 2815 "conf_parser.y"
6027 >  case 524:
6028 > /* Line 1778 of yacc.c  */
6029 > #line 2549 "conf_parser.y"
6030      {
6031    ConfigFileEntry.ping_cookie = yylval.number;
6032   }
6033      break;
6034  
6035 <  case 536:
6036 <
6037 < /* Line 1788 of yacc.c  */
6718 < #line 2820 "conf_parser.y"
6035 >  case 525:
6036 > /* Line 1778 of yacc.c  */
6037 > #line 2554 "conf_parser.y"
6038      {
6039    ConfigFileEntry.disable_auth = yylval.number;
6040   }
6041      break;
6042  
6043 <  case 537:
6044 <
6045 < /* Line 1788 of yacc.c  */
6727 < #line 2825 "conf_parser.y"
6043 >  case 526:
6044 > /* Line 1778 of yacc.c  */
6045 > #line 2559 "conf_parser.y"
6046      {
6047    ConfigFileEntry.throttle_time = yylval.number;
6048   }
6049      break;
6050  
6051 <  case 538:
6052 <
6053 < /* Line 1788 of yacc.c  */
6736 < #line 2830 "conf_parser.y"
6051 >  case 527:
6052 > /* Line 1778 of yacc.c  */
6053 > #line 2564 "conf_parser.y"
6054      {
6055    ConfigFileEntry.oper_umodes = 0;
6056   }
6057      break;
6058  
6059 <  case 542:
6060 <
6061 < /* Line 1788 of yacc.c  */
6745 < #line 2836 "conf_parser.y"
6059 >  case 531:
6060 > /* Line 1778 of yacc.c  */
6061 > #line 2570 "conf_parser.y"
6062      {
6063    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6064   }
6065      break;
6066  
6067 <  case 543:
6068 <
6069 < /* Line 1788 of yacc.c  */
6754 < #line 2839 "conf_parser.y"
6067 >  case 532:
6068 > /* Line 1778 of yacc.c  */
6069 > #line 2573 "conf_parser.y"
6070      {
6071    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6072   }
6073      break;
6074  
6075 <  case 544:
6076 <
6077 < /* Line 1788 of yacc.c  */
6763 < #line 2842 "conf_parser.y"
6075 >  case 533:
6076 > /* Line 1778 of yacc.c  */
6077 > #line 2576 "conf_parser.y"
6078      {
6079    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6080   }
6081      break;
6082  
6083 <  case 545:
6084 <
6085 < /* Line 1788 of yacc.c  */
6772 < #line 2845 "conf_parser.y"
6083 >  case 534:
6084 > /* Line 1778 of yacc.c  */
6085 > #line 2579 "conf_parser.y"
6086      {
6087    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6088   }
6089      break;
6090  
6091 <  case 546:
6092 <
6093 < /* Line 1788 of yacc.c  */
6781 < #line 2848 "conf_parser.y"
6091 >  case 535:
6092 > /* Line 1778 of yacc.c  */
6093 > #line 2582 "conf_parser.y"
6094      {
6095    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6096   }
6097      break;
6098  
6099 <  case 547:
6100 <
6101 < /* Line 1788 of yacc.c  */
6790 < #line 2851 "conf_parser.y"
6099 >  case 536:
6100 > /* Line 1778 of yacc.c  */
6101 > #line 2585 "conf_parser.y"
6102      {
6103    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6104   }
6105      break;
6106  
6107 <  case 548:
6108 <
6109 < /* Line 1788 of yacc.c  */
6799 < #line 2854 "conf_parser.y"
6107 >  case 537:
6108 > /* Line 1778 of yacc.c  */
6109 > #line 2588 "conf_parser.y"
6110      {
6111    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6112   }
6113      break;
6114  
6115 <  case 549:
6116 <
6117 < /* Line 1788 of yacc.c  */
6808 < #line 2857 "conf_parser.y"
6115 >  case 538:
6116 > /* Line 1778 of yacc.c  */
6117 > #line 2591 "conf_parser.y"
6118      {
6119    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6120   }
6121      break;
6122  
6123 <  case 550:
6124 <
6125 < /* Line 1788 of yacc.c  */
6817 < #line 2860 "conf_parser.y"
6123 >  case 539:
6124 > /* Line 1778 of yacc.c  */
6125 > #line 2594 "conf_parser.y"
6126      {
6127    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6128   }
6129      break;
6130  
6131 <  case 551:
6132 <
6133 < /* Line 1788 of yacc.c  */
6826 < #line 2863 "conf_parser.y"
6131 >  case 540:
6132 > /* Line 1778 of yacc.c  */
6133 > #line 2597 "conf_parser.y"
6134      {
6135    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6136   }
6137      break;
6138  
6139 <  case 552:
6140 <
6141 < /* Line 1788 of yacc.c  */
6835 < #line 2866 "conf_parser.y"
6139 >  case 541:
6140 > /* Line 1778 of yacc.c  */
6141 > #line 2600 "conf_parser.y"
6142      {
6143    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6144   }
6145      break;
6146  
6147 <  case 553:
6148 <
6149 < /* Line 1788 of yacc.c  */
6844 < #line 2869 "conf_parser.y"
6147 >  case 542:
6148 > /* Line 1778 of yacc.c  */
6149 > #line 2603 "conf_parser.y"
6150      {
6151    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6152   }
6153      break;
6154  
6155 <  case 554:
6156 <
6157 < /* Line 1788 of yacc.c  */
6853 < #line 2872 "conf_parser.y"
6155 >  case 543:
6156 > /* Line 1778 of yacc.c  */
6157 > #line 2606 "conf_parser.y"
6158      {
6159    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6160   }
6161      break;
6162  
6163 <  case 555:
6164 <
6165 < /* Line 1788 of yacc.c  */
6862 < #line 2875 "conf_parser.y"
6163 >  case 544:
6164 > /* Line 1778 of yacc.c  */
6165 > #line 2609 "conf_parser.y"
6166      {
6167    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6168   }
6169      break;
6170  
6171 <  case 556:
6172 <
6173 < /* Line 1788 of yacc.c  */
6871 < #line 2878 "conf_parser.y"
6171 >  case 545:
6172 > /* Line 1778 of yacc.c  */
6173 > #line 2612 "conf_parser.y"
6174      {
6175    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6176   }
6177      break;
6178  
6179 <  case 557:
6180 <
6181 < /* Line 1788 of yacc.c  */
6880 < #line 2881 "conf_parser.y"
6179 >  case 546:
6180 > /* Line 1778 of yacc.c  */
6181 > #line 2615 "conf_parser.y"
6182      {
6183    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6184   }
6185      break;
6186  
6187 <  case 558:
6188 <
6189 < /* Line 1788 of yacc.c  */
6889 < #line 2884 "conf_parser.y"
6187 >  case 547:
6188 > /* Line 1778 of yacc.c  */
6189 > #line 2618 "conf_parser.y"
6190      {
6191    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6192   }
6193      break;
6194  
6195 <  case 559:
6196 <
6197 < /* Line 1788 of yacc.c  */
6898 < #line 2887 "conf_parser.y"
6195 >  case 548:
6196 > /* Line 1778 of yacc.c  */
6197 > #line 2621 "conf_parser.y"
6198      {
6199    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6200   }
6201      break;
6202  
6203 <  case 560:
6204 <
6205 < /* Line 1788 of yacc.c  */
6907 < #line 2890 "conf_parser.y"
6203 >  case 549:
6204 > /* Line 1778 of yacc.c  */
6205 > #line 2624 "conf_parser.y"
6206      {
6207    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6208   }
6209      break;
6210  
6211 <  case 561:
6212 <
6213 < /* Line 1788 of yacc.c  */
6916 < #line 2893 "conf_parser.y"
6211 >  case 550:
6212 > /* Line 1778 of yacc.c  */
6213 > #line 2627 "conf_parser.y"
6214      {
6215    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6216   }
6217      break;
6218  
6219 <  case 562:
6220 <
6221 < /* Line 1788 of yacc.c  */
6925 < #line 2898 "conf_parser.y"
6219 >  case 551:
6220 > /* Line 1778 of yacc.c  */
6221 > #line 2632 "conf_parser.y"
6222      {
6223    ConfigFileEntry.oper_only_umodes = 0;
6224   }
6225      break;
6226  
6227 <  case 566:
6228 <
6229 < /* Line 1788 of yacc.c  */
6934 < #line 2904 "conf_parser.y"
6227 >  case 555:
6228 > /* Line 1778 of yacc.c  */
6229 > #line 2638 "conf_parser.y"
6230      {
6231    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6232   }
6233      break;
6234  
6235 <  case 567:
6236 <
6237 < /* Line 1788 of yacc.c  */
6943 < #line 2907 "conf_parser.y"
6235 >  case 556:
6236 > /* Line 1778 of yacc.c  */
6237 > #line 2641 "conf_parser.y"
6238      {
6239    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6240   }
6241      break;
6242  
6243 <  case 568:
6244 <
6245 < /* Line 1788 of yacc.c  */
6952 < #line 2910 "conf_parser.y"
6243 >  case 557:
6244 > /* Line 1778 of yacc.c  */
6245 > #line 2644 "conf_parser.y"
6246      {
6247    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6248   }
6249      break;
6250  
6251 <  case 569:
6252 <
6253 < /* Line 1788 of yacc.c  */
6961 < #line 2913 "conf_parser.y"
6251 >  case 558:
6252 > /* Line 1778 of yacc.c  */
6253 > #line 2647 "conf_parser.y"
6254      {
6255    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6256   }
6257      break;
6258  
6259 <  case 570:
6260 <
6261 < /* Line 1788 of yacc.c  */
6970 < #line 2916 "conf_parser.y"
6259 >  case 559:
6260 > /* Line 1778 of yacc.c  */
6261 > #line 2650 "conf_parser.y"
6262      {
6263    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6264   }
6265      break;
6266  
6267 <  case 571:
6268 <
6269 < /* Line 1788 of yacc.c  */
6979 < #line 2919 "conf_parser.y"
6267 >  case 560:
6268 > /* Line 1778 of yacc.c  */
6269 > #line 2653 "conf_parser.y"
6270      {
6271    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6272   }
6273      break;
6274  
6275 <  case 572:
6276 <
6277 < /* Line 1788 of yacc.c  */
6988 < #line 2922 "conf_parser.y"
6275 >  case 561:
6276 > /* Line 1778 of yacc.c  */
6277 > #line 2656 "conf_parser.y"
6278      {
6279    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6280   }
6281      break;
6282  
6283 <  case 573:
6284 <
6285 < /* Line 1788 of yacc.c  */
6997 < #line 2925 "conf_parser.y"
6283 >  case 562:
6284 > /* Line 1778 of yacc.c  */
6285 > #line 2659 "conf_parser.y"
6286      {
6287    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6288   }
6289      break;
6290  
6291 <  case 574:
6292 <
6293 < /* Line 1788 of yacc.c  */
7006 < #line 2928 "conf_parser.y"
6291 >  case 563:
6292 > /* Line 1778 of yacc.c  */
6293 > #line 2662 "conf_parser.y"
6294      {
6295    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6296   }
6297      break;
6298  
6299 <  case 575:
6300 <
6301 < /* Line 1788 of yacc.c  */
7015 < #line 2931 "conf_parser.y"
6299 >  case 564:
6300 > /* Line 1778 of yacc.c  */
6301 > #line 2665 "conf_parser.y"
6302      {
6303    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6304   }
6305      break;
6306  
6307 <  case 576:
6308 <
6309 < /* Line 1788 of yacc.c  */
7024 < #line 2934 "conf_parser.y"
6307 >  case 565:
6308 > /* Line 1778 of yacc.c  */
6309 > #line 2668 "conf_parser.y"
6310      {
6311    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6312   }
6313      break;
6314  
6315 <  case 577:
6316 <
6317 < /* Line 1788 of yacc.c  */
7033 < #line 2937 "conf_parser.y"
6315 >  case 566:
6316 > /* Line 1778 of yacc.c  */
6317 > #line 2671 "conf_parser.y"
6318      {
6319    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6320   }
6321      break;
6322  
6323 <  case 578:
6324 <
6325 < /* Line 1788 of yacc.c  */
7042 < #line 2940 "conf_parser.y"
6323 >  case 567:
6324 > /* Line 1778 of yacc.c  */
6325 > #line 2674 "conf_parser.y"
6326      {
6327    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6328   }
6329      break;
6330  
6331 <  case 579:
6332 <
6333 < /* Line 1788 of yacc.c  */
7051 < #line 2943 "conf_parser.y"
6331 >  case 568:
6332 > /* Line 1778 of yacc.c  */
6333 > #line 2677 "conf_parser.y"
6334      {
6335    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6336   }
6337      break;
6338  
6339 <  case 580:
6340 <
6341 < /* Line 1788 of yacc.c  */
7060 < #line 2946 "conf_parser.y"
6339 >  case 569:
6340 > /* Line 1778 of yacc.c  */
6341 > #line 2680 "conf_parser.y"
6342      {
6343    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6344   }
6345      break;
6346  
6347 <  case 581:
6348 <
6349 < /* Line 1788 of yacc.c  */
7069 < #line 2949 "conf_parser.y"
6347 >  case 570:
6348 > /* Line 1778 of yacc.c  */
6349 > #line 2683 "conf_parser.y"
6350      {
6351    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6352   }
6353      break;
6354  
6355 <  case 582:
6356 <
6357 < /* Line 1788 of yacc.c  */
7078 < #line 2952 "conf_parser.y"
6355 >  case 571:
6356 > /* Line 1778 of yacc.c  */
6357 > #line 2686 "conf_parser.y"
6358      {
6359    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6360   }
6361      break;
6362  
6363 <  case 583:
6364 <
6365 < /* Line 1788 of yacc.c  */
7087 < #line 2955 "conf_parser.y"
6363 >  case 572:
6364 > /* Line 1778 of yacc.c  */
6365 > #line 2689 "conf_parser.y"
6366      {
6367    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6368   }
6369      break;
6370  
6371 <  case 584:
6372 <
6373 < /* Line 1788 of yacc.c  */
7096 < #line 2958 "conf_parser.y"
6371 >  case 573:
6372 > /* Line 1778 of yacc.c  */
6373 > #line 2692 "conf_parser.y"
6374      {
6375    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6376   }
6377      break;
6378  
6379 <  case 585:
6380 <
6381 < /* Line 1788 of yacc.c  */
7105 < #line 2961 "conf_parser.y"
6379 >  case 574:
6380 > /* Line 1778 of yacc.c  */
6381 > #line 2695 "conf_parser.y"
6382      {
6383    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6384   }
6385      break;
6386  
6387 <  case 586:
6388 <
6389 < /* Line 1788 of yacc.c  */
7114 < #line 2966 "conf_parser.y"
6387 >  case 575:
6388 > /* Line 1778 of yacc.c  */
6389 > #line 2700 "conf_parser.y"
6390      {
6391    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6392   }
6393      break;
6394  
6395 <  case 587:
6396 <
6397 < /* Line 1788 of yacc.c  */
7123 < #line 2971 "conf_parser.y"
6395 >  case 576:
6396 > /* Line 1778 of yacc.c  */
6397 > #line 2705 "conf_parser.y"
6398      {
6399    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6400   }
6401      break;
6402  
6403 <  case 588:
6404 <
6405 < /* Line 1788 of yacc.c  */
7132 < #line 2976 "conf_parser.y"
6403 >  case 577:
6404 > /* Line 1778 of yacc.c  */
6405 > #line 2710 "conf_parser.y"
6406      {
6407    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6408   }
6409      break;
6410  
6411 <  case 589:
6412 <
6413 < /* Line 1788 of yacc.c  */
7141 < #line 2981 "conf_parser.y"
7142 <    {
7143 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7144 < }
7145 <    break;
7146 <
7147 <  case 612:
7148 <
7149 < /* Line 1788 of yacc.c  */
7150 < #line 3005 "conf_parser.y"
6411 >  case 596:
6412 > /* Line 1778 of yacc.c  */
6413 > #line 2733 "conf_parser.y"
6414      {
6415    ConfigChannel.disable_fake_channels = yylval.number;
6416   }
6417      break;
6418  
6419 <  case 613:
6420 <
6421 < /* Line 1788 of yacc.c  */
7159 < #line 3010 "conf_parser.y"
6419 >  case 597:
6420 > /* Line 1778 of yacc.c  */
6421 > #line 2738 "conf_parser.y"
6422      {
6423    ConfigChannel.restrict_channels = yylval.number;
6424   }
6425      break;
6426  
6427 <  case 614:
6428 <
6429 < /* Line 1788 of yacc.c  */
7168 < #line 3015 "conf_parser.y"
7169 <    {
7170 <  ConfigChannel.disable_local_channels = yylval.number;
7171 < }
7172 <    break;
7173 <
7174 <  case 615:
7175 <
7176 < /* Line 1788 of yacc.c  */
7177 < #line 3020 "conf_parser.y"
7178 <    {
7179 <  ConfigChannel.use_except = yylval.number;
7180 < }
7181 <    break;
7182 <
7183 <  case 616:
7184 <
7185 < /* Line 1788 of yacc.c  */
7186 < #line 3025 "conf_parser.y"
7187 <    {
7188 <  ConfigChannel.use_invex = yylval.number;
7189 < }
7190 <    break;
7191 <
7192 <  case 617:
7193 <
7194 < /* Line 1788 of yacc.c  */
7195 < #line 3030 "conf_parser.y"
7196 <    {
7197 <  ConfigChannel.use_knock = yylval.number;
7198 < }
7199 <    break;
7200 <
7201 <  case 618:
7202 <
7203 < /* Line 1788 of yacc.c  */
7204 < #line 3035 "conf_parser.y"
6427 >  case 598:
6428 > /* Line 1778 of yacc.c  */
6429 > #line 2743 "conf_parser.y"
6430      {
6431    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6432   }
6433      break;
6434  
6435 <  case 619:
6436 <
6437 < /* Line 1788 of yacc.c  */
7213 < #line 3040 "conf_parser.y"
6435 >  case 599:
6436 > /* Line 1778 of yacc.c  */
6437 > #line 2748 "conf_parser.y"
6438      {
6439    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6440   }
6441      break;
6442  
6443 <  case 620:
6444 <
6445 < /* Line 1788 of yacc.c  */
7222 < #line 3045 "conf_parser.y"
6443 >  case 600:
6444 > /* Line 1778 of yacc.c  */
6445 > #line 2753 "conf_parser.y"
6446      {
6447    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6448   }
6449      break;
6450  
6451 <  case 621:
6452 <
6453 < /* Line 1788 of yacc.c  */
7231 < #line 3050 "conf_parser.y"
6451 >  case 601:
6452 > /* Line 1778 of yacc.c  */
6453 > #line 2758 "conf_parser.y"
6454      {
6455    ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6456   }
6457      break;
6458  
6459 <  case 622:
6460 <
6461 < /* Line 1788 of yacc.c  */
7240 < #line 3055 "conf_parser.y"
6459 >  case 602:
6460 > /* Line 1778 of yacc.c  */
6461 > #line 2763 "conf_parser.y"
6462      {
6463    ConfigChannel.quiet_on_ban = yylval.number;
6464   }
6465      break;
6466  
6467 <  case 623:
6468 <
6469 < /* Line 1788 of yacc.c  */
7249 < #line 3060 "conf_parser.y"
6467 >  case 603:
6468 > /* Line 1778 of yacc.c  */
6469 > #line 2768 "conf_parser.y"
6470      {
6471    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6472   }
6473      break;
6474  
6475 <  case 624:
6476 <
6477 < /* Line 1788 of yacc.c  */
7258 < #line 3065 "conf_parser.y"
6475 >  case 604:
6476 > /* Line 1778 of yacc.c  */
6477 > #line 2773 "conf_parser.y"
6478      {
6479    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6480   }
6481      break;
6482  
6483 <  case 625:
6484 <
6485 < /* Line 1788 of yacc.c  */
7267 < #line 3070 "conf_parser.y"
6483 >  case 605:
6484 > /* Line 1778 of yacc.c  */
6485 > #line 2778 "conf_parser.y"
6486      {
6487    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6488   }
6489      break;
6490  
6491 <  case 626:
6492 <
6493 < /* Line 1788 of yacc.c  */
7276 < #line 3075 "conf_parser.y"
6491 >  case 606:
6492 > /* Line 1778 of yacc.c  */
6493 > #line 2783 "conf_parser.y"
6494      {
6495    ConfigChannel.no_create_on_split = yylval.number;
6496   }
6497      break;
6498  
6499 <  case 627:
6500 <
6501 < /* Line 1788 of yacc.c  */
7285 < #line 3080 "conf_parser.y"
6499 >  case 607:
6500 > /* Line 1778 of yacc.c  */
6501 > #line 2788 "conf_parser.y"
6502      {
6503    ConfigChannel.no_join_on_split = yylval.number;
6504   }
6505      break;
6506  
6507 <  case 628:
6508 <
6509 < /* Line 1788 of yacc.c  */
7294 < #line 3085 "conf_parser.y"
6507 >  case 608:
6508 > /* Line 1778 of yacc.c  */
6509 > #line 2793 "conf_parser.y"
6510      {
6511    GlobalSetOptions.joinfloodcount = yylval.number;
6512   }
6513      break;
6514  
6515 <  case 629:
6516 <
6517 < /* Line 1788 of yacc.c  */
7303 < #line 3090 "conf_parser.y"
6515 >  case 609:
6516 > /* Line 1778 of yacc.c  */
6517 > #line 2798 "conf_parser.y"
6518      {
6519    GlobalSetOptions.joinfloodtime = yylval.number;
6520   }
6521      break;
6522  
6523 <  case 641:
6524 <
6525 < /* Line 1788 of yacc.c  */
7312 < #line 3109 "conf_parser.y"
6523 >  case 620:
6524 > /* Line 1778 of yacc.c  */
6525 > #line 2816 "conf_parser.y"
6526      {
6527    if (conf_parser_ctx.pass == 2)
6528      ConfigServerHide.flatten_links = yylval.number;
6529   }
6530      break;
6531  
6532 <  case 642:
6533 <
6534 < /* Line 1788 of yacc.c  */
7322 < #line 3115 "conf_parser.y"
6532 >  case 621:
6533 > /* Line 1778 of yacc.c  */
6534 > #line 2822 "conf_parser.y"
6535      {
6536    if (conf_parser_ctx.pass == 2)
6537      ConfigServerHide.hide_servers = yylval.number;
6538   }
6539      break;
6540  
6541 <  case 643:
6542 <
6543 < /* Line 1788 of yacc.c  */
7332 < #line 3121 "conf_parser.y"
6541 >  case 622:
6542 > /* Line 1778 of yacc.c  */
6543 > #line 2828 "conf_parser.y"
6544      {
6545    if (conf_parser_ctx.pass == 2)
6546    {
6547      MyFree(ConfigServerHide.hidden_name);
6548 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6548 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6549    }
6550   }
6551      break;
6552  
6553 <  case 644:
6554 <
6555 < /* Line 1788 of yacc.c  */
7345 < #line 3130 "conf_parser.y"
6553 >  case 623:
6554 > /* Line 1778 of yacc.c  */
6555 > #line 2837 "conf_parser.y"
6556      {
6557    if (conf_parser_ctx.pass == 2)
6558    {
# Line 7357 | Line 6567 | yyreduce:
6567   }
6568      break;
6569  
6570 <  case 645:
6571 <
6572 < /* Line 1788 of yacc.c  */
7363 < #line 3144 "conf_parser.y"
6570 >  case 624:
6571 > /* Line 1778 of yacc.c  */
6572 > #line 2851 "conf_parser.y"
6573      {
6574    if (conf_parser_ctx.pass == 2)
6575      ConfigServerHide.hidden = yylval.number;
6576   }
6577      break;
6578  
6579 <  case 646:
6580 <
6581 < /* Line 1788 of yacc.c  */
7373 < #line 3150 "conf_parser.y"
7374 <    {
7375 <  if (conf_parser_ctx.pass == 2)
7376 <    ConfigServerHide.disable_hidden = yylval.number;
7377 < }
7378 <    break;
7379 <
7380 <  case 647:
7381 <
7382 < /* Line 1788 of yacc.c  */
7383 < #line 3156 "conf_parser.y"
6579 >  case 625:
6580 > /* Line 1778 of yacc.c  */
6581 > #line 2857 "conf_parser.y"
6582      {
6583    if (conf_parser_ctx.pass == 2)
6584      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7388 | Line 6586 | yyreduce:
6586      break;
6587  
6588  
6589 <
6590 < /* Line 1788 of yacc.c  */
7393 < #line 7394 "conf_parser.c"
6589 > /* Line 1778 of yacc.c  */
6590 > #line 6591 "conf_parser.c"
6591        default: break;
6592      }
6593    /* User semantic actions sometimes alter yychar, and that requires
# Line 7553 | Line 6750 | yyerrlab1:
6750        YY_STACK_PRINT (yyss, yyssp);
6751      }
6752  
6753 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6754    *++yyvsp = yylval;
6755 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6756  
6757  
6758    /* Shift the error token.  */
# Line 7619 | Line 6818 | yyreturn:
6818   }
6819  
6820  
7622

Diff Legend

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