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/trunk/src/conf_parser.c (file contents):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

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

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 1622 by michael, Thu Nov 1 13:16:37 2012 UTC vs.
Revision 1715 by michael, Mon Dec 24 15:19:32 2012 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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