Re: monit upload to stable-proposed-updates
On Sat, Sep 12, 2015 at 09:52:54AM +0100, Adam D. Barratt wrote:
> On Sat, 2015-09-12 at 11:48 +0300, Sergey Kirpichev wrote:
> > I would like to make an upload to stable in order to fix bug
> > #796989 (umask bug) in the monit package.
> >
> > The full patch between this new package version and the version
> > 1:5.9-1 currently in Jessie is attached (mostly it's come from
> > upstream, tokens.h and y.tab.c are automatically updated with yacc).
>
> There doesn't appear to have been an attachment.
Just for record, attached.
> As requested in
> https://lists.debian.org/debian-devel-announce/2015/05/msg00005.html ,
> please file a properly user-tagged bug against release.debian.org
> (preferably using reportbug). It's all too easy for individual mails to
> the list to get lost.
Sorry, I'll do.
diff -Nru monit-5.9/debian/changelog monit-5.9/debian/changelog
--- monit-5.9/debian/changelog 2014-09-30 14:24:21.000000000 +0400
+++ monit-5.9/debian/changelog 2015-09-12 11:35:51.000000000 +0300
@@ -1,3 +1,9 @@
+monit (1:5.9-1+jessie1) unstable; urgency=medium
+
+ * Fix umask-related regression between 5.8.1 and 5.9 (Closes: #796989)
+
+ -- Sergey B Kirpichev <skirpichev@gmail.com> Sat, 12 Sep 2015 11:34:20 +0300
+
monit (1:5.9-1) unstable; urgency=medium
* Imported Upstream version 5.9
diff -Nru monit-5.9/debian/patches/13_umask_fix.patch monit-5.9/debian/patches/13_umask_fix.patch
--- monit-5.9/debian/patches/13_umask_fix.patch 1970-01-01 03:00:00.000000000 +0300
+++ monit-5.9/debian/patches/13_umask_fix.patch 2015-09-12 11:35:51.000000000 +0300
@@ -0,0 +1,7179 @@
+Description: Restore the umask when executing start/stop/restart programs
+ and check program.
+Bug-Debian: http://bugs.debian.org/796989
+Origin: https://bitbucket.org/tildeslash/monit/commits/4e68a4
+Forwarded: not-needed
+
+---
+ libmonit/src/system/Command.c | 24
+ libmonit/src/system/Command.h | 16
+ libmonit/src/system/Process.h | 12
+ libmonit/test/CommandTest.c | 5
+ src/control.c | 1
+ src/p.y | 1
+ src/tokens.h | 480 ++--
+ src/y.tab.c | 4109 ++++++++++++++++++++++++------------------
+ 8 files changed, 2689 insertions(+), 1959 deletions(-)
+
+--- a/libmonit/src/system/Command.c
++++ b/libmonit/src/system/Command.c
+@@ -63,6 +63,7 @@
+ struct T {
+ uid_t uid;
+ gid_t gid;
++ mode_t umask;
+ List_T env;
+ List_T args;
+ char **_env;
+@@ -75,6 +76,7 @@
+ pid_t pid;
+ uid_t uid;
+ gid_t gid;
++ mode_t umask;
+ int status;
+ int stdin_pipe[2];
+ int stdout_pipe[2];
+@@ -252,6 +254,12 @@
+ }
+
+
++mode_t Process_getUmask(Process_T P) {
++ assert(P);
++ return P->umask;
++}
++
++
+ const char *Process_getDir(Process_T P) {
+ assert(P);
+ if (! P->working_directory) {
+@@ -411,6 +419,18 @@
+ }
+
+
++void Command_setUmask(T C, mode_t umask) {
++ assert(C);
++ C->umask = umask;
++}
++
++
++mode_t Command_getUmask(T C) {
++ assert(C);
++ return C->umask;
++}
++
++
+ void Command_setDir(T C, const char *dir) {
+ assert(C);
+ if (dir) { // Allow to set a NULL directory, meaning the calling process's current directory
+@@ -510,6 +530,10 @@
+ P->uid = (setuid(C->uid) != 0) ? ERROR("Command: Cannot change process uid to '%d' -- %s\n", C->uid, System_getLastError()), getuid() : C->uid;
+ else
+ P->uid = getuid();
++ if (C->umask) {
++ P->umask = C->umask;
++ umask(P->umask);
++ }
+ setsid(); // Loose controlling terminal
+ setupChildPipes(P);
+ // Close all descriptors except stdio
+--- a/libmonit/src/system/Command.h
++++ b/libmonit/src/system/Command.h
+@@ -136,6 +136,22 @@
+
+
+ /**
++ * Set the file creation mode mask the sub-process should switch to on exec.
++ * @param C A Command object
++ * @param umask The file creation mode mask the sub-process should switch to when executed
++ */
++void Command_setUmask(T C, mode_t umask);
++
++
++/**
++ * Returns the file creation mode mask the Command should switch to on exec.
++ * @param C A Command object
++ * @return The umask the sub-process should switch to when executed
++ */
++mode_t Command_getUmask(T C);
++
++
++/**
+ * Returns the Process timeout. Default is no timeout. The timeout
+ * is set with Command_setOnTimeout().
+ * @param C A Command object
+--- a/libmonit/src/system/Process.h
++++ b/libmonit/src/system/Process.h
+@@ -77,7 +77,7 @@
+ /**
+ * Returns the user id of the sub-process
+ * @param P A Process object
+- * @return The user id the sub-process
++ * @return The user id of the sub-process
+ */
+ uid_t Process_getUid(T P);
+
+@@ -85,12 +85,20 @@
+ /**
+ * Returns the group id of the sub-process
+ * @param P A Process object
+- * @return The group id the sub-process
++ * @return The group id of the sub-process
+ */
+ gid_t Process_getGid(T P);
+
+
+ /**
++ * Returns the file creation mode mask of the sub-process
++ * @param P A Process object
++ * @return The umask of the sub-process
++ */
++mode_t Process_getUmask(T P);
++
++
++/**
+ * Returns the Process timeout.
+ * @param P A Process object
+ * @return The number of seconds this Process has until exit before
+--- a/libmonit/test/CommandTest.c
++++ b/libmonit/test/CommandTest.c
+@@ -104,18 +104,21 @@
+ }
+ printf("=> Test1: OK\n\n");
+
+- printf("=> Test2: set and get uid/gid\n");
++ printf("=> Test2: set and get uid/gid/umask\n");
+ {
+ Command_T c = Command_new("/bin/sh", "-c", "ps -aef|grep monit", NULL);
+ assert(c);
+ // Check that default is 0
+ assert(Command_getUid(c) == 0);
+ assert(Command_getGid(c) == 0);
++ assert(Command_getUmask(c) == 0);
+ // set and test uid and gid
+ Command_setUid(c,42);
+ assert(Command_getUid(c) == 42);
+ Command_setGid(c,148);
+ assert(Command_getGid(c) == 148);
++ Command_setUmask(c,0222);
++ assert(Command_getUmask(c) == 0222);
+ Command_free(&c);
+ assert(!c);
+ }
+--- a/src/control.c
++++ b/src/control.c
+@@ -109,6 +109,7 @@
+ Command_setUid(C, c->uid);
+ if (c->has_gid)
+ Command_setGid(C, c->gid);
++ Command_setUmask(C, Run.umask);
+ Command_setEnv(C, "MONIT_DATE", Time_string(Time_now(), (char[26]){}));
+ Command_setEnv(C, "MONIT_SERVICE", S->name);
+ Command_setEnv(C, "MONIT_HOST", Run.system->name);
+--- a/src/p.y
++++ b/src/p.y
+@@ -2145,6 +2145,7 @@
+ if (s->program->args->has_gid) {
+ Command_setGid(s->program->C, s->program->args->gid);
+ }
++ Command_setUmask(s->program->C, Run.umask);
+ }
+ }
+
+--- a/src/tokens.h
++++ b/src/tokens.h
+@@ -1,19 +1,19 @@
+-/* A Bison parser, made by GNU Bison 3.0.2. */
++/* A Bison parser, made by GNU Bison 2.5. */
+
+ /* Bison interface for Yacc-like parsers in C
+-
+- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+-
++
++ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
++
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+-
++
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+-
++
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+@@ -26,235 +26,227 @@
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+-
++
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+-#ifndef YY_YY_SRC_Y_TAB_H_INCLUDED
+-# define YY_YY_SRC_Y_TAB_H_INCLUDED
+-/* Debug traces. */
+-#ifndef YYDEBUG
+-# define YYDEBUG 1
+-#endif
+-#if YYDEBUG
+-extern int yydebug;
+-#endif
+
+-/* Token type. */
++/* Tokens. */
+ #ifndef YYTOKENTYPE
+ # define YYTOKENTYPE
+- enum yytokentype
+- {
+- IF = 258,
+- ELSE = 259,
+- THEN = 260,
+- OR = 261,
+- FAILED = 262,
+- SET = 263,
+- LOGFILE = 264,
+- FACILITY = 265,
+- DAEMON = 266,
+- SYSLOG = 267,
+- MAILSERVER = 268,
+- HTTPD = 269,
+- ALLOW = 270,
+- ADDRESS = 271,
+- INIT = 272,
+- READONLY = 273,
+- CLEARTEXT = 274,
+- MD5HASH = 275,
+- SHA1HASH = 276,
+- CRYPT = 277,
+- DELAY = 278,
+- PEMFILE = 279,
+- ENABLE = 280,
+- DISABLE = 281,
+- HTTPDSSL = 282,
+- CLIENTPEMFILE = 283,
+- ALLOWSELFCERTIFICATION = 284,
+- IDFILE = 285,
+- STATEFILE = 286,
+- SEND = 287,
+- EXPECT = 288,
+- EXPECTBUFFER = 289,
+- CYCLE = 290,
+- COUNT = 291,
+- REMINDER = 292,
+- PIDFILE = 293,
+- START = 294,
+- STOP = 295,
+- PATHTOK = 296,
+- HOST = 297,
+- HOSTNAME = 298,
+- PORT = 299,
+- TYPE = 300,
+- UDP = 301,
+- TCP = 302,
+- TCPSSL = 303,
+- PROTOCOL = 304,
+- CONNECTION = 305,
+- ALERT = 306,
+- NOALERT = 307,
+- MAILFORMAT = 308,
+- UNIXSOCKET = 309,
+- SIGNATURE = 310,
+- TIMEOUT = 311,
+- RETRY = 312,
+- RESTART = 313,
+- CHECKSUM = 314,
+- EVERY = 315,
+- NOTEVERY = 316,
+- DEFAULT = 317,
+- HTTP = 318,
+- HTTPS = 319,
+- APACHESTATUS = 320,
+- FTP = 321,
+- SMTP = 322,
+- SMTPS = 323,
+- POP = 324,
+- IMAP = 325,
+- CLAMAV = 326,
+- NNTP = 327,
+- NTP3 = 328,
+- MYSQL = 329,
+- DNS = 330,
+- WEBSOCKET = 331,
+- SSH = 332,
+- DWP = 333,
+- LDAP2 = 334,
+- LDAP3 = 335,
+- RDATE = 336,
+- RSYNC = 337,
+- TNS = 338,
+- PGSQL = 339,
+- POSTFIXPOLICY = 340,
+- SIP = 341,
+- LMTP = 342,
+- GPS = 343,
+- RADIUS = 344,
+- MEMCACHE = 345,
+- STRING = 346,
+- PATH = 347,
+- MAILADDR = 348,
+- MAILFROM = 349,
+- MAILREPLYTO = 350,
+- MAILSUBJECT = 351,
+- MAILBODY = 352,
+- SERVICENAME = 353,
+- STRINGNAME = 354,
+- NUMBER = 355,
+- PERCENT = 356,
+- LOGLIMIT = 357,
+- CLOSELIMIT = 358,
+- DNSLIMIT = 359,
+- KEEPALIVELIMIT = 360,
+- REPLYLIMIT = 361,
+- REQUESTLIMIT = 362,
+- STARTLIMIT = 363,
+- WAITLIMIT = 364,
+- GRACEFULLIMIT = 365,
+- CLEANUPLIMIT = 366,
+- REAL = 367,
+- CHECKPROC = 368,
+- CHECKFILESYS = 369,
+- CHECKFILE = 370,
+- CHECKDIR = 371,
+- CHECKHOST = 372,
+- CHECKSYSTEM = 373,
+- CHECKFIFO = 374,
+- CHECKPROGRAM = 375,
+- CHILDREN = 376,
+- SYSTEM = 377,
+- STATUS = 378,
+- ORIGIN = 379,
+- VERSIONOPT = 380,
+- RESOURCE = 381,
+- MEMORY = 382,
+- TOTALMEMORY = 383,
+- LOADAVG1 = 384,
+- LOADAVG5 = 385,
+- LOADAVG15 = 386,
+- SWAP = 387,
+- MODE = 388,
+- ACTIVE = 389,
+- PASSIVE = 390,
+- MANUAL = 391,
+- CPU = 392,
+- TOTALCPU = 393,
+- CPUUSER = 394,
+- CPUSYSTEM = 395,
+- CPUWAIT = 396,
+- GROUP = 397,
+- REQUEST = 398,
+- DEPENDS = 399,
+- BASEDIR = 400,
+- SLOT = 401,
+- EVENTQUEUE = 402,
+- SECRET = 403,
+- HOSTHEADER = 404,
+- UID = 405,
+- EUID = 406,
+- GID = 407,
+- MMONIT = 408,
+- INSTANCE = 409,
+- USERNAME = 410,
+- PASSWORD = 411,
+- TIMESTAMP = 412,
+- CHANGED = 413,
+- SECOND = 414,
+- MINUTE = 415,
+- HOUR = 416,
+- DAY = 417,
+- SSLAUTO = 418,
+- SSLV2 = 419,
+- SSLV3 = 420,
+- TLSV1 = 421,
+- TLSV11 = 422,
+- TLSV12 = 423,
+- CERTMD5 = 424,
+- BYTE = 425,
+- KILOBYTE = 426,
+- MEGABYTE = 427,
+- GIGABYTE = 428,
+- INODE = 429,
+- SPACE = 430,
+- PERMISSION = 431,
+- SIZE = 432,
+- MATCH = 433,
+- NOT = 434,
+- IGNORE = 435,
+- ACTION = 436,
+- UPTIME = 437,
+- EXEC = 438,
+- UNMONITOR = 439,
+- PING = 440,
+- ICMP = 441,
+- ICMPECHO = 442,
+- NONEXIST = 443,
+- EXIST = 444,
+- INVALID = 445,
+- DATA = 446,
+- RECOVERED = 447,
+- PASSED = 448,
+- SUCCEEDED = 449,
+- URL = 450,
+- CONTENT = 451,
+- PID = 452,
+- PPID = 453,
+- FSFLAG = 454,
+- REGISTER = 455,
+- CREDENTIALS = 456,
+- URLOBJECT = 457,
+- TARGET = 458,
+- TIMESPEC = 459,
+- HTTPHEADER = 460,
+- MAXFORWARD = 461,
+- FIPS = 462,
+- GREATER = 463,
+- LESS = 464,
+- EQUAL = 465,
+- NOTEQUAL = 466
+- };
++ /* Put the tokens into the symbol table, so that GDB and other debuggers
++ know about them. */
++ enum yytokentype {
++ IF = 258,
++ ELSE = 259,
++ THEN = 260,
++ OR = 261,
++ FAILED = 262,
++ SET = 263,
++ LOGFILE = 264,
++ FACILITY = 265,
++ DAEMON = 266,
++ SYSLOG = 267,
++ MAILSERVER = 268,
++ HTTPD = 269,
++ ALLOW = 270,
++ ADDRESS = 271,
++ INIT = 272,
++ READONLY = 273,
++ CLEARTEXT = 274,
++ MD5HASH = 275,
++ SHA1HASH = 276,
++ CRYPT = 277,
++ DELAY = 278,
++ PEMFILE = 279,
++ ENABLE = 280,
++ DISABLE = 281,
++ HTTPDSSL = 282,
++ CLIENTPEMFILE = 283,
++ ALLOWSELFCERTIFICATION = 284,
++ IDFILE = 285,
++ STATEFILE = 286,
++ SEND = 287,
++ EXPECT = 288,
++ EXPECTBUFFER = 289,
++ CYCLE = 290,
++ COUNT = 291,
++ REMINDER = 292,
++ PIDFILE = 293,
++ START = 294,
++ STOP = 295,
++ PATHTOK = 296,
++ HOST = 297,
++ HOSTNAME = 298,
++ PORT = 299,
++ TYPE = 300,
++ UDP = 301,
++ TCP = 302,
++ TCPSSL = 303,
++ PROTOCOL = 304,
++ CONNECTION = 305,
++ ALERT = 306,
++ NOALERT = 307,
++ MAILFORMAT = 308,
++ UNIXSOCKET = 309,
++ SIGNATURE = 310,
++ TIMEOUT = 311,
++ RETRY = 312,
++ RESTART = 313,
++ CHECKSUM = 314,
++ EVERY = 315,
++ NOTEVERY = 316,
++ DEFAULT = 317,
++ HTTP = 318,
++ HTTPS = 319,
++ APACHESTATUS = 320,
++ FTP = 321,
++ SMTP = 322,
++ SMTPS = 323,
++ POP = 324,
++ IMAP = 325,
++ CLAMAV = 326,
++ NNTP = 327,
++ NTP3 = 328,
++ MYSQL = 329,
++ DNS = 330,
++ WEBSOCKET = 331,
++ SSH = 332,
++ DWP = 333,
++ LDAP2 = 334,
++ LDAP3 = 335,
++ RDATE = 336,
++ RSYNC = 337,
++ TNS = 338,
++ PGSQL = 339,
++ POSTFIXPOLICY = 340,
++ SIP = 341,
++ LMTP = 342,
++ GPS = 343,
++ RADIUS = 344,
++ MEMCACHE = 345,
++ STRING = 346,
++ PATH = 347,
++ MAILADDR = 348,
++ MAILFROM = 349,
++ MAILREPLYTO = 350,
++ MAILSUBJECT = 351,
++ MAILBODY = 352,
++ SERVICENAME = 353,
++ STRINGNAME = 354,
++ NUMBER = 355,
++ PERCENT = 356,
++ LOGLIMIT = 357,
++ CLOSELIMIT = 358,
++ DNSLIMIT = 359,
++ KEEPALIVELIMIT = 360,
++ REPLYLIMIT = 361,
++ REQUESTLIMIT = 362,
++ STARTLIMIT = 363,
++ WAITLIMIT = 364,
++ GRACEFULLIMIT = 365,
++ CLEANUPLIMIT = 366,
++ REAL = 367,
++ CHECKPROC = 368,
++ CHECKFILESYS = 369,
++ CHECKFILE = 370,
++ CHECKDIR = 371,
++ CHECKHOST = 372,
++ CHECKSYSTEM = 373,
++ CHECKFIFO = 374,
++ CHECKPROGRAM = 375,
++ CHILDREN = 376,
++ SYSTEM = 377,
++ STATUS = 378,
++ ORIGIN = 379,
++ VERSIONOPT = 380,
++ RESOURCE = 381,
++ MEMORY = 382,
++ TOTALMEMORY = 383,
++ LOADAVG1 = 384,
++ LOADAVG5 = 385,
++ LOADAVG15 = 386,
++ SWAP = 387,
++ MODE = 388,
++ ACTIVE = 389,
++ PASSIVE = 390,
++ MANUAL = 391,
++ CPU = 392,
++ TOTALCPU = 393,
++ CPUUSER = 394,
++ CPUSYSTEM = 395,
++ CPUWAIT = 396,
++ GROUP = 397,
++ REQUEST = 398,
++ DEPENDS = 399,
++ BASEDIR = 400,
++ SLOT = 401,
++ EVENTQUEUE = 402,
++ SECRET = 403,
++ HOSTHEADER = 404,
++ UID = 405,
++ EUID = 406,
++ GID = 407,
++ MMONIT = 408,
++ INSTANCE = 409,
++ USERNAME = 410,
++ PASSWORD = 411,
++ TIMESTAMP = 412,
++ CHANGED = 413,
++ SECOND = 414,
++ MINUTE = 415,
++ HOUR = 416,
++ DAY = 417,
++ SSLAUTO = 418,
++ SSLV2 = 419,
++ SSLV3 = 420,
++ TLSV1 = 421,
++ TLSV11 = 422,
++ TLSV12 = 423,
++ CERTMD5 = 424,
++ BYTE = 425,
++ KILOBYTE = 426,
++ MEGABYTE = 427,
++ GIGABYTE = 428,
++ INODE = 429,
++ SPACE = 430,
++ PERMISSION = 431,
++ SIZE = 432,
++ MATCH = 433,
++ NOT = 434,
++ IGNORE = 435,
++ ACTION = 436,
++ UPTIME = 437,
++ EXEC = 438,
++ UNMONITOR = 439,
++ PING = 440,
++ ICMP = 441,
++ ICMPECHO = 442,
++ NONEXIST = 443,
++ EXIST = 444,
++ INVALID = 445,
++ DATA = 446,
++ RECOVERED = 447,
++ PASSED = 448,
++ SUCCEEDED = 449,
++ URL = 450,
++ CONTENT = 451,
++ PID = 452,
++ PPID = 453,
++ FSFLAG = 454,
++ REGISTER = 455,
++ CREDENTIALS = 456,
++ URLOBJECT = 457,
++ TARGET = 458,
++ TIMESPEC = 459,
++ HTTPHEADER = 460,
++ MAXFORWARD = 461,
++ FIPS = 462,
++ NOTEQUAL = 463,
++ EQUAL = 464,
++ LESS = 465,
++ GREATER = 466
++ };
+ #endif
+ /* Tokens. */
+ #define IF 258
+@@ -462,32 +454,36 @@
+ #define HTTPHEADER 460
+ #define MAXFORWARD 461
+ #define FIPS 462
+-#define GREATER 463
+-#define LESS 464
+-#define EQUAL 465
+-#define NOTEQUAL 466
++#define NOTEQUAL 463
++#define EQUAL 464
++#define LESS 465
++#define GREATER 466
++
++
++
+
+-/* Value type. */
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-typedef union YYSTYPE YYSTYPE;
+-union YYSTYPE
++typedef union YYSTYPE
+ {
+-#line 260 "src/p.y" /* yacc.c:1909 */
++
++/* Line 2068 of yacc.c */
++#line 260 "src/p.y"
+
+ URL_T url;
+ float real;
+ int number;
+ char *string;
+
+-#line 483 "src/y.tab.h" /* yacc.c:1909 */
+-};
++
++
++/* Line 2068 of yacc.c */
++#line 481 "src/y.tab.h"
++} YYSTYPE;
+ # define YYSTYPE_IS_TRIVIAL 1
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ #endif
+
+-
+ extern YYSTYPE yylval;
+
+-int yyparse (void);
+
+-#endif /* !YY_YY_SRC_Y_TAB_H_INCLUDED */
+--- a/src/y.tab.c
++++ b/src/y.tab.c
+@@ -1,20 +1,20 @@
+ #include <config.h>
+-/* A Bison parser, made by GNU Bison 3.0.2. */
++/* A Bison parser, made by GNU Bison 2.5. */
+
+ /* Bison implementation for Yacc-like parsers in C
+-
+- Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+-
++
++ Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
++
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+-
++
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+-
++
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+@@ -27,7 +27,7 @@
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+-
++
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+@@ -45,7 +45,7 @@
+ #define YYBISON 1
+
+ /* Bison version. */
+-#define YYBISON_VERSION "3.0.2"
++#define YYBISON_VERSION "2.5"
+
+ /* Skeleton name. */
+ #define YYSKELETON_NAME "yacc.c"
+@@ -59,11 +59,15 @@
+ /* Pull parsers. */
+ #define YYPULL 1
+
++/* Using locations. */
++#define YYLSP_NEEDED 0
+
+
+
+ /* Copy the first part of user declarations. */
+-#line 26 "src/p.y" /* yacc.c:339 */
++
++/* Line 268 of yacc.c */
++#line 26 "src/p.y"
+
+
+ /*
+@@ -297,15 +301,14 @@
+ static int verifyMaxForward(int);
+
+
+-#line 300 "src/y.tab.c" /* yacc.c:339 */
+
+-# ifndef YY_NULLPTR
+-# if defined __cplusplus && 201103L <= __cplusplus
+-# define YY_NULLPTR nullptr
+-# else
+-# define YY_NULLPTR 0
+-# endif
+-# endif
++/* Line 268 of yacc.c */
++#line 306 "src/y.tab.c"
++
++/* Enabling traces. */
++#ifndef YYDEBUG
++# define YYDEBUG 1
++#endif
+
+ /* Enabling verbose error messages. */
+ #ifdef YYERROR_VERBOSE
+@@ -315,233 +318,228 @@
+ # define YYERROR_VERBOSE 0
+ #endif
+
+-/* In a future release of Bison, this section will be replaced
+- by #include "y.tab.h". */
+-#ifndef YY_YY_SRC_Y_TAB_H_INCLUDED
+-# define YY_YY_SRC_Y_TAB_H_INCLUDED
+-/* Debug traces. */
+-#ifndef YYDEBUG
+-# define YYDEBUG 1
+-#endif
+-#if YYDEBUG
+-extern int yydebug;
++/* Enabling the token table. */
++#ifndef YYTOKEN_TABLE
++# define YYTOKEN_TABLE 0
+ #endif
+
+-/* Token type. */
++
++/* Tokens. */
+ #ifndef YYTOKENTYPE
+ # define YYTOKENTYPE
+- enum yytokentype
+- {
+- IF = 258,
+- ELSE = 259,
+- THEN = 260,
+- OR = 261,
+- FAILED = 262,
+- SET = 263,
+- LOGFILE = 264,
+- FACILITY = 265,
+- DAEMON = 266,
+- SYSLOG = 267,
+- MAILSERVER = 268,
+- HTTPD = 269,
+- ALLOW = 270,
+- ADDRESS = 271,
+- INIT = 272,
+- READONLY = 273,
+- CLEARTEXT = 274,
+- MD5HASH = 275,
+- SHA1HASH = 276,
+- CRYPT = 277,
+- DELAY = 278,
+- PEMFILE = 279,
+- ENABLE = 280,
+- DISABLE = 281,
+- HTTPDSSL = 282,
+- CLIENTPEMFILE = 283,
+- ALLOWSELFCERTIFICATION = 284,
+- IDFILE = 285,
+- STATEFILE = 286,
+- SEND = 287,
+- EXPECT = 288,
+- EXPECTBUFFER = 289,
+- CYCLE = 290,
+- COUNT = 291,
+- REMINDER = 292,
+- PIDFILE = 293,
+- START = 294,
+- STOP = 295,
+- PATHTOK = 296,
+- HOST = 297,
+- HOSTNAME = 298,
+- PORT = 299,
+- TYPE = 300,
+- UDP = 301,
+- TCP = 302,
+- TCPSSL = 303,
+- PROTOCOL = 304,
+- CONNECTION = 305,
+- ALERT = 306,
+- NOALERT = 307,
+- MAILFORMAT = 308,
+- UNIXSOCKET = 309,
+- SIGNATURE = 310,
+- TIMEOUT = 311,
+- RETRY = 312,
+- RESTART = 313,
+- CHECKSUM = 314,
+- EVERY = 315,
+- NOTEVERY = 316,
+- DEFAULT = 317,
+- HTTP = 318,
+- HTTPS = 319,
+- APACHESTATUS = 320,
+- FTP = 321,
+- SMTP = 322,
+- SMTPS = 323,
+- POP = 324,
+- IMAP = 325,
+- CLAMAV = 326,
+- NNTP = 327,
+- NTP3 = 328,
+- MYSQL = 329,
+- DNS = 330,
+- WEBSOCKET = 331,
+- SSH = 332,
+- DWP = 333,
+- LDAP2 = 334,
+- LDAP3 = 335,
+- RDATE = 336,
+- RSYNC = 337,
+- TNS = 338,
+- PGSQL = 339,
+- POSTFIXPOLICY = 340,
+- SIP = 341,
+- LMTP = 342,
+- GPS = 343,
+- RADIUS = 344,
+- MEMCACHE = 345,
+- STRING = 346,
+- PATH = 347,
+- MAILADDR = 348,
+- MAILFROM = 349,
+- MAILREPLYTO = 350,
+- MAILSUBJECT = 351,
+- MAILBODY = 352,
+- SERVICENAME = 353,
+- STRINGNAME = 354,
+- NUMBER = 355,
+- PERCENT = 356,
+- LOGLIMIT = 357,
+- CLOSELIMIT = 358,
+- DNSLIMIT = 359,
+- KEEPALIVELIMIT = 360,
+- REPLYLIMIT = 361,
+- REQUESTLIMIT = 362,
+- STARTLIMIT = 363,
+- WAITLIMIT = 364,
+- GRACEFULLIMIT = 365,
+- CLEANUPLIMIT = 366,
+- REAL = 367,
+- CHECKPROC = 368,
+- CHECKFILESYS = 369,
+- CHECKFILE = 370,
+- CHECKDIR = 371,
+- CHECKHOST = 372,
+- CHECKSYSTEM = 373,
+- CHECKFIFO = 374,
+- CHECKPROGRAM = 375,
+- CHILDREN = 376,
+- SYSTEM = 377,
+- STATUS = 378,
+- ORIGIN = 379,
+- VERSIONOPT = 380,
+- RESOURCE = 381,
+- MEMORY = 382,
+- TOTALMEMORY = 383,
+- LOADAVG1 = 384,
+- LOADAVG5 = 385,
+- LOADAVG15 = 386,
+- SWAP = 387,
+- MODE = 388,
+- ACTIVE = 389,
+- PASSIVE = 390,
+- MANUAL = 391,
+- CPU = 392,
+- TOTALCPU = 393,
+- CPUUSER = 394,
+- CPUSYSTEM = 395,
+- CPUWAIT = 396,
+- GROUP = 397,
+- REQUEST = 398,
+- DEPENDS = 399,
+- BASEDIR = 400,
+- SLOT = 401,
+- EVENTQUEUE = 402,
+- SECRET = 403,
+- HOSTHEADER = 404,
+- UID = 405,
+- EUID = 406,
+- GID = 407,
+- MMONIT = 408,
+- INSTANCE = 409,
+- USERNAME = 410,
+- PASSWORD = 411,
+- TIMESTAMP = 412,
+- CHANGED = 413,
+- SECOND = 414,
+- MINUTE = 415,
+- HOUR = 416,
+- DAY = 417,
+- SSLAUTO = 418,
+- SSLV2 = 419,
+- SSLV3 = 420,
+- TLSV1 = 421,
+- TLSV11 = 422,
+- TLSV12 = 423,
+- CERTMD5 = 424,
+- BYTE = 425,
+- KILOBYTE = 426,
+- MEGABYTE = 427,
+- GIGABYTE = 428,
+- INODE = 429,
+- SPACE = 430,
+- PERMISSION = 431,
+- SIZE = 432,
+- MATCH = 433,
+- NOT = 434,
+- IGNORE = 435,
+- ACTION = 436,
+- UPTIME = 437,
+- EXEC = 438,
+- UNMONITOR = 439,
+- PING = 440,
+- ICMP = 441,
+- ICMPECHO = 442,
+- NONEXIST = 443,
+- EXIST = 444,
+- INVALID = 445,
+- DATA = 446,
+- RECOVERED = 447,
+- PASSED = 448,
+- SUCCEEDED = 449,
+- URL = 450,
+- CONTENT = 451,
+- PID = 452,
+- PPID = 453,
+- FSFLAG = 454,
+- REGISTER = 455,
+- CREDENTIALS = 456,
+- URLOBJECT = 457,
+- TARGET = 458,
+- TIMESPEC = 459,
+- HTTPHEADER = 460,
+- MAXFORWARD = 461,
+- FIPS = 462,
+- GREATER = 463,
+- LESS = 464,
+- EQUAL = 465,
+- NOTEQUAL = 466
+- };
++ /* Put the tokens into the symbol table, so that GDB and other debuggers
++ know about them. */
++ enum yytokentype {
++ IF = 258,
++ ELSE = 259,
++ THEN = 260,
++ OR = 261,
++ FAILED = 262,
++ SET = 263,
++ LOGFILE = 264,
++ FACILITY = 265,
++ DAEMON = 266,
++ SYSLOG = 267,
++ MAILSERVER = 268,
++ HTTPD = 269,
++ ALLOW = 270,
++ ADDRESS = 271,
++ INIT = 272,
++ READONLY = 273,
++ CLEARTEXT = 274,
++ MD5HASH = 275,
++ SHA1HASH = 276,
++ CRYPT = 277,
++ DELAY = 278,
++ PEMFILE = 279,
++ ENABLE = 280,
++ DISABLE = 281,
++ HTTPDSSL = 282,
++ CLIENTPEMFILE = 283,
++ ALLOWSELFCERTIFICATION = 284,
++ IDFILE = 285,
++ STATEFILE = 286,
++ SEND = 287,
++ EXPECT = 288,
++ EXPECTBUFFER = 289,
++ CYCLE = 290,
++ COUNT = 291,
++ REMINDER = 292,
++ PIDFILE = 293,
++ START = 294,
++ STOP = 295,
++ PATHTOK = 296,
++ HOST = 297,
++ HOSTNAME = 298,
++ PORT = 299,
++ TYPE = 300,
++ UDP = 301,
++ TCP = 302,
++ TCPSSL = 303,
++ PROTOCOL = 304,
++ CONNECTION = 305,
++ ALERT = 306,
++ NOALERT = 307,
++ MAILFORMAT = 308,
++ UNIXSOCKET = 309,
++ SIGNATURE = 310,
++ TIMEOUT = 311,
++ RETRY = 312,
++ RESTART = 313,
++ CHECKSUM = 314,
++ EVERY = 315,
++ NOTEVERY = 316,
++ DEFAULT = 317,
++ HTTP = 318,
++ HTTPS = 319,
++ APACHESTATUS = 320,
++ FTP = 321,
++ SMTP = 322,
++ SMTPS = 323,
++ POP = 324,
++ IMAP = 325,
++ CLAMAV = 326,
++ NNTP = 327,
++ NTP3 = 328,
++ MYSQL = 329,
++ DNS = 330,
++ WEBSOCKET = 331,
++ SSH = 332,
++ DWP = 333,
++ LDAP2 = 334,
++ LDAP3 = 335,
++ RDATE = 336,
++ RSYNC = 337,
++ TNS = 338,
++ PGSQL = 339,
++ POSTFIXPOLICY = 340,
++ SIP = 341,
++ LMTP = 342,
++ GPS = 343,
++ RADIUS = 344,
++ MEMCACHE = 345,
++ STRING = 346,
++ PATH = 347,
++ MAILADDR = 348,
++ MAILFROM = 349,
++ MAILREPLYTO = 350,
++ MAILSUBJECT = 351,
++ MAILBODY = 352,
++ SERVICENAME = 353,
++ STRINGNAME = 354,
++ NUMBER = 355,
++ PERCENT = 356,
++ LOGLIMIT = 357,
++ CLOSELIMIT = 358,
++ DNSLIMIT = 359,
++ KEEPALIVELIMIT = 360,
++ REPLYLIMIT = 361,
++ REQUESTLIMIT = 362,
++ STARTLIMIT = 363,
++ WAITLIMIT = 364,
++ GRACEFULLIMIT = 365,
++ CLEANUPLIMIT = 366,
++ REAL = 367,
++ CHECKPROC = 368,
++ CHECKFILESYS = 369,
++ CHECKFILE = 370,
++ CHECKDIR = 371,
++ CHECKHOST = 372,
++ CHECKSYSTEM = 373,
++ CHECKFIFO = 374,
++ CHECKPROGRAM = 375,
++ CHILDREN = 376,
++ SYSTEM = 377,
++ STATUS = 378,
++ ORIGIN = 379,
++ VERSIONOPT = 380,
++ RESOURCE = 381,
++ MEMORY = 382,
++ TOTALMEMORY = 383,
++ LOADAVG1 = 384,
++ LOADAVG5 = 385,
++ LOADAVG15 = 386,
++ SWAP = 387,
++ MODE = 388,
++ ACTIVE = 389,
++ PASSIVE = 390,
++ MANUAL = 391,
++ CPU = 392,
++ TOTALCPU = 393,
++ CPUUSER = 394,
++ CPUSYSTEM = 395,
++ CPUWAIT = 396,
++ GROUP = 397,
++ REQUEST = 398,
++ DEPENDS = 399,
++ BASEDIR = 400,
++ SLOT = 401,
++ EVENTQUEUE = 402,
++ SECRET = 403,
++ HOSTHEADER = 404,
++ UID = 405,
++ EUID = 406,
++ GID = 407,
++ MMONIT = 408,
++ INSTANCE = 409,
++ USERNAME = 410,
++ PASSWORD = 411,
++ TIMESTAMP = 412,
++ CHANGED = 413,
++ SECOND = 414,
++ MINUTE = 415,
++ HOUR = 416,
++ DAY = 417,
++ SSLAUTO = 418,
++ SSLV2 = 419,
++ SSLV3 = 420,
++ TLSV1 = 421,
++ TLSV11 = 422,
++ TLSV12 = 423,
++ CERTMD5 = 424,
++ BYTE = 425,
++ KILOBYTE = 426,
++ MEGABYTE = 427,
++ GIGABYTE = 428,
++ INODE = 429,
++ SPACE = 430,
++ PERMISSION = 431,
++ SIZE = 432,
++ MATCH = 433,
++ NOT = 434,
++ IGNORE = 435,
++ ACTION = 436,
++ UPTIME = 437,
++ EXEC = 438,
++ UNMONITOR = 439,
++ PING = 440,
++ ICMP = 441,
++ ICMPECHO = 442,
++ NONEXIST = 443,
++ EXIST = 444,
++ INVALID = 445,
++ DATA = 446,
++ RECOVERED = 447,
++ PASSED = 448,
++ SUCCEEDED = 449,
++ URL = 450,
++ CONTENT = 451,
++ PID = 452,
++ PPID = 453,
++ FSFLAG = 454,
++ REGISTER = 455,
++ CREDENTIALS = 456,
++ URLOBJECT = 457,
++ TARGET = 458,
++ TIMESPEC = 459,
++ HTTPHEADER = 460,
++ MAXFORWARD = 461,
++ FIPS = 462,
++ NOTEQUAL = 463,
++ EQUAL = 464,
++ LESS = 465,
++ GREATER = 466
++ };
+ #endif
+ /* Tokens. */
+ #define IF 258
+@@ -749,39 +747,42 @@
+ #define HTTPHEADER 460
+ #define MAXFORWARD 461
+ #define FIPS 462
+-#define GREATER 463
+-#define LESS 464
+-#define EQUAL 465
+-#define NOTEQUAL 466
++#define NOTEQUAL 463
++#define EQUAL 464
++#define LESS 465
++#define GREATER 466
++
++
++
+
+-/* Value type. */
+ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+-typedef union YYSTYPE YYSTYPE;
+-union YYSTYPE
++typedef union YYSTYPE
+ {
+-#line 260 "src/p.y" /* yacc.c:355 */
++
++/* Line 293 of yacc.c */
++#line 260 "src/p.y"
+
+ URL_T url;
+ float real;
+ int number;
+ char *string;
+
+-#line 769 "src/y.tab.c" /* yacc.c:355 */
+-};
++
++
++/* Line 293 of yacc.c */
++#line 773 "src/y.tab.c"
++} YYSTYPE;
+ # define YYSTYPE_IS_TRIVIAL 1
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+ # define YYSTYPE_IS_DECLARED 1
+ #endif
+
+
+-extern YYSTYPE yylval;
+-
+-int yyparse (void);
+-
+-#endif /* !YY_YY_SRC_Y_TAB_H_INCLUDED */
+-
+ /* Copy the second part of user declarations. */
+
+-#line 784 "src/y.tab.c" /* yacc.c:358 */
++
++/* Line 343 of yacc.c */
++#line 785 "src/y.tab.c"
+
+ #ifdef short
+ # undef short
+@@ -795,8 +796,11 @@
+
+ #ifdef YYTYPE_INT8
+ typedef YYTYPE_INT8 yytype_int8;
+-#else
++#elif (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ typedef signed char yytype_int8;
++#else
++typedef short int yytype_int8;
+ #endif
+
+ #ifdef YYTYPE_UINT16
+@@ -816,7 +820,8 @@
+ # define YYSIZE_T __SIZE_TYPE__
+ # elif defined size_t
+ # define YYSIZE_T size_t
+-# elif ! defined YYSIZE_T
++# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+ # define YYSIZE_T size_t
+ # else
+@@ -830,68 +835,39 @@
+ # if defined YYENABLE_NLS && YYENABLE_NLS
+ # if ENABLE_NLS
+ # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+-# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
++# define YY_(msgid) dgettext ("bison-runtime", msgid)
+ # endif
+ # endif
+ # ifndef YY_
+-# define YY_(Msgid) Msgid
+-# endif
+-#endif
+-
+-#ifndef YY_ATTRIBUTE
+-# if (defined __GNUC__ \
+- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
+- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
+-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
+-# else
+-# define YY_ATTRIBUTE(Spec) /* empty */
+-# endif
+-#endif
+-
+-#ifndef YY_ATTRIBUTE_PURE
+-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
+-#endif
+-
+-#ifndef YY_ATTRIBUTE_UNUSED
+-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
+-#endif
+-
+-#if !defined _Noreturn \
+- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
+-# if defined _MSC_VER && 1200 <= _MSC_VER
+-# define _Noreturn __declspec (noreturn)
+-# else
+-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
++# define YY_(msgid) msgid
+ # endif
+ #endif
+
+ /* Suppress unused-variable warnings by "using" E. */
+ #if ! defined lint || defined __GNUC__
+-# define YYUSE(E) ((void) (E))
++# define YYUSE(e) ((void) (e))
+ #else
+-# define YYUSE(E) /* empty */
++# define YYUSE(e) /* empty */
+ #endif
+
+-#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
+-/* Suppress an incorrect diagnostic about yylval being uninitialized. */
+-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+- _Pragma ("GCC diagnostic push") \
+- _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
+- _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+-# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
+- _Pragma ("GCC diagnostic pop")
++/* Identity function, used to suppress warnings about constant conditions. */
++#ifndef lint
++# define YYID(n) (n)
+ #else
+-# define YY_INITIAL_VALUE(Value) Value
+-#endif
+-#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+-# define YY_IGNORE_MAYBE_UNINITIALIZED_END
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static int
++YYID (int yyi)
++#else
++static int
++YYID (yyi)
++ int yyi;
+ #endif
+-#ifndef YY_INITIAL_VALUE
+-# define YY_INITIAL_VALUE(Value) /* Nothing. */
++{
++ return yyi;
++}
+ #endif
+
+-
+ #if ! defined yyoverflow || YYERROR_VERBOSE
+
+ /* The parser invokes alloca or malloc; define the necessary symbols. */
+@@ -909,9 +885,9 @@
+ # define alloca _alloca
+ # else
+ # define YYSTACK_ALLOC alloca
+-# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
++# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+- /* Use EXIT_SUCCESS as a witness for stdlib.h. */
+ # ifndef EXIT_SUCCESS
+ # define EXIT_SUCCESS 0
+ # endif
+@@ -921,8 +897,8 @@
+ # endif
+
+ # ifdef YYSTACK_ALLOC
+- /* Pacify GCC's 'empty if-body' warning. */
+-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
++ /* Pacify GCC's `empty if-body' warning. */
++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+ # ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+@@ -938,7 +914,7 @@
+ # endif
+ # if (defined __cplusplus && ! defined EXIT_SUCCESS \
+ && ! ((defined YYMALLOC || defined malloc) \
+- && (defined YYFREE || defined free)))
++ && (defined YYFREE || defined free)))
+ # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+ # ifndef EXIT_SUCCESS
+ # define EXIT_SUCCESS 0
+@@ -946,13 +922,15 @@
+ # endif
+ # ifndef YYMALLOC
+ # define YYMALLOC malloc
+-# if ! defined malloc && ! defined EXIT_SUCCESS
++# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+ # endif
+ # endif
+ # ifndef YYFREE
+ # define YYFREE free
+-# if ! defined free && ! defined EXIT_SUCCESS
++# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ void free (void *); /* INFRINGES ON USER NAME SPACE */
+ # endif
+ # endif
+@@ -962,7 +940,7 @@
+
+ #if (! defined yyoverflow \
+ && (! defined __cplusplus \
+- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+ /* A type that is properly aligned for any stack member. */
+ union yyalloc
+@@ -987,35 +965,35 @@
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+-# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+- do \
+- { \
+- YYSIZE_T yynewbytes; \
+- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+- Stack = &yyptr->Stack_alloc; \
+- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+- yyptr += yynewbytes / sizeof (*yyptr); \
+- } \
+- while (0)
++# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
++ do \
++ { \
++ YYSIZE_T yynewbytes; \
++ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
++ Stack = &yyptr->Stack_alloc; \
++ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
++ yyptr += yynewbytes / sizeof (*yyptr); \
++ } \
++ while (YYID (0))
+
+ #endif
+
+ #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+-/* Copy COUNT objects from SRC to DST. The source and destination do
++/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+ # ifndef YYCOPY
+ # if defined __GNUC__ && 1 < __GNUC__
+-# define YYCOPY(Dst, Src, Count) \
+- __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
++# define YYCOPY(To, From, Count) \
++ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+ # else
+-# define YYCOPY(Dst, Src, Count) \
+- do \
+- { \
+- YYSIZE_T yyi; \
+- for (yyi = 0; yyi < (Count); yyi++) \
+- (Dst)[yyi] = (Src)[yyi]; \
+- } \
+- while (0)
++# define YYCOPY(To, From, Count) \
++ do \
++ { \
++ YYSIZE_T yyi; \
++ for (yyi = 0; yyi < (Count); yyi++) \
++ (To)[yyi] = (From)[yyi]; \
++ } \
++ while (YYID (0))
+ # endif
+ # endif
+ #endif /* !YYCOPY_NEEDED */
+@@ -1031,19 +1009,17 @@
+ #define YYNNTS 172
+ /* YYNRULES -- Number of rules. */
+ #define YYNRULES 533
+-/* YYNSTATES -- Number of states. */
++/* YYNRULES -- Number of states. */
+ #define YYNSTATES 946
+
+-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
+- by yylex, with out-of-bounds checking. */
++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+ #define YYUNDEFTOK 2
+ #define YYMAXUTOK 466
+
+-#define YYTRANSLATE(YYX) \
++#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+-/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
+- as returned by yylex, without out-of-bounds checking. */
++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+ static const yytype_uint8 yytranslate[] =
+ {
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+@@ -1096,7 +1072,241 @@
+ };
+
+ #if YYDEBUG
+- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
++ YYRHS. */
++static const yytype_uint16 yyprhs[] =
++{
++ 0, 0, 3, 4, 6, 8, 11, 13, 15, 17,
++ 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
++ 39, 42, 45, 48, 51, 54, 57, 60, 63, 64,
++ 67, 69, 71, 73, 75, 77, 79, 81, 83, 85,
++ 87, 89, 91, 93, 95, 97, 99, 101, 103, 105,
++ 106, 109, 111, 113, 115, 117, 119, 121, 123, 125,
++ 127, 129, 131, 133, 135, 137, 139, 141, 143, 144,
++ 147, 149, 151, 153, 155, 157, 159, 161, 163, 165,
++ 167, 169, 171, 173, 175, 177, 179, 180, 183, 185,
++ 187, 189, 191, 193, 195, 197, 199, 201, 203, 205,
++ 207, 209, 211, 213, 216, 218, 220, 222, 224, 226,
++ 228, 230, 232, 234, 236, 238, 240, 241, 244, 246,
++ 248, 250, 252, 254, 256, 258, 260, 262, 263, 266,
++ 268, 270, 272, 274, 276, 278, 280, 282, 284, 286,
++ 288, 290, 292, 294, 295, 298, 300, 302, 304, 306,
++ 308, 310, 312, 314, 316, 318, 323, 331, 340, 345,
++ 346, 350, 355, 358, 361, 365, 369, 375, 380, 387,
++ 392, 396, 400, 404, 408, 411, 415, 420, 421, 424,
++ 430, 436, 442, 444, 447, 453, 461, 462, 465, 467,
++ 469, 471, 473, 476, 479, 480, 483, 485, 487, 489,
++ 492, 495, 498, 501, 503, 505, 508, 511, 514, 517,
++ 520, 523, 526, 528, 534, 539, 542, 546, 550, 554,
++ 555, 560, 561, 567, 568, 574, 575, 581, 584, 586,
++ 589, 591, 592, 594, 599, 604, 609, 614, 619, 624,
++ 629, 634, 639, 642, 647, 653, 660, 664, 669, 673,
++ 678, 682, 687, 689, 692, 694, 697, 699, 701, 704,
++ 707, 710, 713, 714, 717, 720, 721, 724, 725, 728,
++ 742, 754, 766, 777, 787, 788, 791, 794, 797, 798,
++ 801, 806, 809, 810, 813, 814, 816, 818, 820, 822,
++ 824, 826, 827, 831, 834, 837, 840, 843, 847, 851,
++ 854, 857, 860, 863, 866, 871, 874, 877, 880, 883,
++ 886, 889, 892, 895, 898, 901, 904, 907, 910, 914,
++ 917, 921, 923, 925, 928, 931, 934, 936, 939, 942,
++ 945, 948, 951, 952, 955, 958, 959, 962, 963, 966,
++ 968, 970, 972, 974, 978, 982, 985, 988, 991, 992,
++ 995, 998, 1000, 1004, 1009, 1014, 1019, 1024, 1029, 1034,
++ 1039, 1044, 1049, 1054, 1062, 1069, 1076, 1086, 1087, 1090,
++ 1091, 1095, 1096, 1100, 1101, 1105, 1106, 1109, 1117, 1125,
++ 1126, 1130, 1132, 1134, 1138, 1145, 1153, 1155, 1158, 1161,
++ 1163, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182,
++ 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202,
++ 1204, 1206, 1208, 1210, 1211, 1216, 1218, 1221, 1223, 1225,
++ 1227, 1229, 1233, 1236, 1239, 1242, 1245, 1248, 1251, 1254,
++ 1256, 1259, 1261, 1270, 1277, 1284, 1286, 1289, 1291, 1293,
++ 1295, 1297, 1304, 1306, 1309, 1311, 1313, 1315, 1317, 1322,
++ 1327, 1332, 1334, 1336, 1338, 1343, 1348, 1353, 1358, 1363,
++ 1368, 1372, 1376, 1378, 1380, 1382, 1384, 1386, 1396, 1403,
++ 1404, 1406, 1408, 1410, 1412, 1414, 1415, 1417, 1419, 1421,
++ 1423, 1425, 1428, 1432, 1434, 1436, 1438, 1440, 1442, 1444,
++ 1445, 1448, 1452, 1453, 1456, 1460, 1461, 1468, 1475, 1482,
++ 1491, 1502, 1510, 1511, 1513, 1515, 1524, 1534, 1544, 1554,
++ 1561, 1562, 1564, 1566, 1568, 1570, 1579, 1587, 1595, 1600,
++ 1605, 1606, 1608, 1618, 1625, 1634, 1643, 1652, 1661, 1670,
++ 1679, 1682, 1683, 1686
++};
++
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yytype_int16 yyrhs[] =
++{
++ 219, 0, -1, -1, 220, -1, 221, -1, 220, 221,
++ -1, 238, -1, 239, -1, 244, -1, 245, -1, 249,
++ -1, 253, -1, 254, -1, 255, -1, 248, -1, 246,
++ -1, 247, -1, 241, -1, 242, -1, 243, -1, 280,
++ 222, -1, 281, 224, -1, 282, 226, -1, 283, 228,
++ -1, 284, 230, -1, 285, 232, -1, 286, 234, -1,
++ 287, 236, -1, -1, 222, 223, -1, 288, -1, 289,
++ -1, 290, -1, 324, -1, 325, -1, 326, -1, 385,
++ -1, 386, -1, 387, -1, 327, -1, 298, -1, 299,
++ -1, 333, -1, 336, -1, 344, -1, 345, -1, 346,
++ -1, 347, -1, 351, -1, -1, 224, 225, -1, 288,
++ -1, 289, -1, 290, -1, 324, -1, 366, -1, 333,
++ -1, 344, -1, 336, -1, 381, -1, 385, -1, 387,
++ -1, 375, -1, 384, -1, 382, -1, 345, -1, 346,
++ -1, 347, -1, -1, 226, 227, -1, 288, -1, 289,
++ -1, 290, -1, 324, -1, 333, -1, 344, -1, 336,
++ -1, 381, -1, 385, -1, 387, -1, 345, -1, 346,
++ -1, 347, -1, 377, -1, 378, -1, 379, -1, -1,
++ 228, 229, -1, 288, -1, 289, -1, 290, -1, 324,
++ -1, 366, -1, 333, -1, 344, -1, 336, -1, 381,
++ -1, 385, -1, 387, -1, 345, -1, 346, -1, 347,
++ -1, 231, -1, 230, 231, -1, 288, -1, 289, -1,
++ 290, -1, 324, -1, 298, -1, 300, -1, 333, -1,
++ 336, -1, 344, -1, 345, -1, 346, -1, 347, -1,
++ -1, 232, 233, -1, 288, -1, 289, -1, 290, -1,
++ 333, -1, 336, -1, 344, -1, 346, -1, 347, -1,
++ 354, -1, -1, 234, 235, -1, 288, -1, 289, -1,
++ 290, -1, 324, -1, 366, -1, 333, -1, 344, -1,
++ 336, -1, 381, -1, 385, -1, 387, -1, 345, -1,
++ 346, -1, 347, -1, -1, 236, 237, -1, 288, -1,
++ 289, -1, 290, -1, 333, -1, 324, -1, 336, -1,
++ 344, -1, 346, -1, 347, -1, 350, -1, 8, 337,
++ 341, 389, -1, 8, 337, 212, 339, 213, 341, 389,
++ -1, 8, 337, 179, 212, 339, 213, 341, 389, -1,
++ 8, 11, 100, 240, -1, -1, 39, 23, 100, -1,
++ 8, 34, 100, 380, -1, 8, 17, -1, 8, 207,
++ -1, 8, 9, 92, -1, 8, 9, 12, -1, 8,
++ 9, 12, 10, 91, -1, 8, 147, 145, 92, -1,
++ 8, 147, 145, 92, 146, 100, -1, 8, 147, 146,
++ 100, -1, 8, 30, 92, -1, 8, 31, 92, -1,
++ 8, 38, 92, -1, 8, 153, 250, -1, 251, 252,
++ -1, 250, 251, 252, -1, 202, 331, 306, 305, -1,
++ -1, 200, 201, -1, 8, 13, 256, 331, 297, -1,
++ 8, 53, 212, 342, 213, -1, 8, 14, 44, 100,
++ 258, -1, 257, -1, 256, 257, -1, 91, 295, 296,
++ 306, 305, -1, 91, 44, 100, 295, 296, 306, 305,
++ -1, -1, 258, 259, -1, 260, -1, 265, -1, 268,
++ -1, 272, -1, 264, 261, -1, 263, 261, -1, -1,
++ 261, 262, -1, 269, -1, 270, -1, 271, -1, 27,
++ 25, -1, 25, 27, -1, 27, 26, -1, 26, 27,
++ -1, 266, -1, 267, -1, 55, 25, -1, 25, 55,
++ -1, 55, 26, -1, 26, 55, -1, 16, 91, -1,
++ 24, 92, -1, 28, 92, -1, 29, -1, 15, 91,
++ 214, 91, 279, -1, 15, 215, 91, 279, -1, 15,
++ 92, -1, 15, 19, 92, -1, 15, 20, 92, -1,
++ 15, 22, 92, -1, -1, 15, 92, 273, 277, -1,
++ -1, 15, 19, 92, 274, 277, -1, -1, 15, 20,
++ 92, 275, 277, -1, -1, 15, 22, 92, 276, 277,
++ -1, 15, 91, -1, 278, -1, 277, 278, -1, 91,
++ -1, -1, 18, -1, 113, 98, 38, 92, -1, 113,
++ 98, 41, 92, -1, 113, 98, 178, 91, -1, 113,
++ 98, 178, 92, -1, 115, 98, 41, 92, -1, 114,
++ 98, 41, 92, -1, 114, 98, 41, 91, -1, 116,
++ 98, 41, 92, -1, 117, 98, 16, 91, -1, 118,
++ 98, -1, 119, 98, 41, 92, -1, 120, 98, 41,
++ 291, 330, -1, 120, 98, 41, 291, 292, 330, -1,
++ 39, 291, 329, -1, 39, 291, 292, 329, -1, 40,
++ 291, 329, -1, 40, 291, 292, 329, -1, 58, 291,
++ 329, -1, 58, 291, 292, 329, -1, 293, -1, 291,
++ 293, -1, 294, -1, 292, 294, -1, 91, -1, 92,
++ -1, 150, 91, -1, 152, 91, -1, 150, 100, -1,
++ 152, 100, -1, -1, 155, 93, -1, 155, 91, -1,
++ -1, 156, 91, -1, -1, 43, 91, -1, 3, 7,
++ 301, 302, 304, 307, 334, 331, 332, 372, 5, 370,
++ 374, -1, 3, 7, 195, 202, 334, 331, 332, 372,
++ 5, 370, 374, -1, 3, 7, 303, 304, 307, 331,
++ 332, 372, 5, 370, 374, -1, 3, 7, 186, 388,
++ 328, 331, 372, 5, 370, 374, -1, 3, 7, 185,
++ 328, 331, 372, 5, 370, 374, -1, -1, 42, 91,
++ -1, 44, 100, -1, 54, 92, -1, -1, 45, 47,
++ -1, 45, 48, 306, 305, -1, 45, 46, -1, -1,
++ 169, 91, -1, -1, 164, -1, 165, -1, 166, -1,
++ 167, -1, 168, -1, 163, -1, -1, 49, 65, 322,
++ -1, 49, 62, -1, 49, 75, -1, 49, 78, -1,
++ 49, 66, -1, 49, 63, 314, -1, 49, 64, 314,
++ -1, 49, 70, -1, 49, 71, -1, 49, 79, -1,
++ 49, 80, -1, 49, 74, -1, 49, 86, 312, 313,
++ -1, 49, 72, -1, 49, 73, -1, 49, 85, -1,
++ 49, 69, -1, 49, 67, -1, 49, 68, -1, 49,
++ 77, -1, 49, 81, -1, 49, 82, -1, 49, 83,
++ -1, 49, 84, -1, 49, 87, -1, 49, 88, -1,
++ 49, 89, 321, -1, 49, 90, -1, 49, 76, 310,
++ -1, 308, -1, 309, -1, 308, 309, -1, 32, 91,
++ -1, 33, 91, -1, 311, -1, 310, 311, -1, 124,
++ 91, -1, 143, 92, -1, 42, 91, -1, 125, 100,
++ -1, -1, 203, 93, -1, 203, 91, -1, -1, 206,
++ 100, -1, -1, 314, 315, -1, 317, -1, 318, -1,
++ 316, -1, 319, -1, 216, 320, 217, -1, 123, 367,
++ 100, -1, 143, 92, -1, 59, 91, -1, 149, 91,
++ -1, -1, 320, 205, -1, 148, 91, -1, 323, -1,
++ 322, 6, 323, -1, 102, 367, 100, 101, -1, 103,
++ 367, 100, 101, -1, 104, 367, 100, 101, -1, 105,
++ 367, 100, 101, -1, 106, 367, 100, 101, -1, 107,
++ 367, 100, 101, -1, 108, 367, 100, 101, -1, 109,
++ 367, 100, 101, -1, 110, 367, 100, 101, -1, 111,
++ 367, 100, 101, -1, 3, 179, 189, 372, 5, 370,
++ 374, -1, 3, 158, 197, 372, 5, 370, -1, 3,
++ 158, 198, 372, 5, 370, -1, 3, 182, 367, 100,
++ 368, 372, 5, 370, 374, -1, -1, 36, 100, -1,
++ -1, 56, 100, 159, -1, -1, 56, 100, 159, -1,
++ -1, 56, 100, 159, -1, -1, 57, 100, -1, 3,
++ 100, 58, 100, 35, 5, 370, -1, 3, 100, 58,
++ 100, 35, 5, 56, -1, -1, 196, 335, 91, -1,
++ 209, -1, 208, -1, 337, 341, 389, -1, 337, 212,
++ 339, 213, 341, 389, -1, 337, 179, 212, 339, 213,
++ 341, 389, -1, 338, -1, 51, 93, -1, 52, 93,
++ -1, 340, -1, 339, 340, -1, 181, -1, 59, -1,
++ 50, -1, 196, -1, 191, -1, 183, -1, 199, -1,
++ 152, -1, 186, -1, 154, -1, 190, -1, 188, -1,
++ 176, -1, 197, -1, 198, -1, 126, -1, 177, -1,
++ 123, -1, 56, -1, 157, -1, 150, -1, 182, -1,
++ -1, 53, 212, 342, 213, -1, 343, -1, 342, 343,
++ -1, 94, -1, 95, -1, 96, -1, 97, -1, 60,
++ 100, 35, -1, 60, 204, -1, 61, 204, -1, 133,
++ 134, -1, 133, 135, -1, 133, 136, -1, 142, 99,
++ -1, 144, 348, -1, 349, -1, 348, 349, -1, 98,
++ -1, 3, 123, 367, 100, 372, 5, 370, 374, -1,
++ 3, 158, 123, 372, 5, 370, -1, 3, 352, 372,
++ 5, 370, 374, -1, 353, -1, 352, 353, -1, 357,
++ -1, 360, -1, 362, -1, 363, -1, 3, 355, 372,
++ 5, 370, 374, -1, 356, -1, 355, 356, -1, 363,
++ -1, 360, -1, 361, -1, 358, -1, 137, 367, 100,
++ 101, -1, 138, 367, 100, 101, -1, 359, 367, 100,
++ 101, -1, 139, -1, 140, -1, 141, -1, 127, 367,
++ 365, 380, -1, 127, 367, 100, 101, -1, 128, 367,
++ 365, 380, -1, 128, 367, 100, 101, -1, 132, 367,
++ 365, 380, -1, 132, 367, 100, 101, -1, 121, 367,
++ 100, -1, 364, 367, 365, -1, 129, -1, 130, -1,
++ 131, -1, 112, -1, 100, -1, 3, 157, 367, 100,
++ 368, 372, 5, 370, 374, -1, 3, 158, 157, 372,
++ 5, 370, -1, -1, 211, -1, 210, -1, 209, -1,
++ 208, -1, 158, -1, -1, 159, -1, 160, -1, 161,
++ -1, 162, -1, 51, -1, 183, 291, -1, 183, 291,
++ 292, -1, 58, -1, 39, -1, 40, -1, 184, -1,
++ 369, -1, 369, -1, -1, 100, 35, -1, 100, 100,
++ 35, -1, -1, 100, 35, -1, 100, 100, 35, -1,
++ -1, 4, 3, 192, 373, 5, 371, -1, 4, 3,
++ 193, 373, 5, 371, -1, 4, 3, 194, 373, 5,
++ 371, -1, 3, 7, 376, 59, 372, 5, 370, 374,
++ -1, 3, 7, 376, 59, 33, 91, 372, 5, 370,
++ 374, -1, 3, 158, 376, 59, 372, 5, 370, -1,
++ -1, 20, -1, 21, -1, 3, 174, 367, 100, 372,
++ 5, 370, 374, -1, 3, 174, 367, 100, 101, 372,
++ 5, 370, 374, -1, 3, 175, 367, 365, 380, 372,
++ 5, 370, 374, -1, 3, 175, 367, 100, 101, 372,
++ 5, 370, 374, -1, 3, 158, 199, 372, 5, 370,
++ -1, -1, 170, -1, 171, -1, 172, -1, 173, -1,
++ 3, 7, 176, 100, 372, 5, 370, 374, -1, 3,
++ 383, 178, 92, 372, 5, 370, -1, 3, 383, 178,
++ 91, 372, 5, 370, -1, 180, 383, 178, 92, -1,
++ 180, 383, 178, 91, -1, -1, 179, -1, 3, 177,
++ 367, 100, 380, 372, 5, 370, 374, -1, 3, 158,
++ 177, 372, 5, 370, -1, 3, 7, 150, 91, 372,
++ 5, 370, 374, -1, 3, 7, 150, 100, 372, 5,
++ 370, 374, -1, 3, 7, 151, 91, 372, 5, 370,
++ 374, -1, 3, 7, 151, 100, 372, 5, 370, 374,
++ -1, 3, 7, 152, 91, 372, 5, 370, 374, -1,
++ 3, 7, 152, 100, 372, 5, 370, 374, -1, 45,
++ 187, -1, -1, 37, 100, -1, 37, 100, 35, -1
++};
++
++/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+ static const yytype_uint16 yyrline[] =
+ {
+ 0, 306, 306, 307, 310, 311, 314, 315, 316, 317,
+@@ -1156,7 +1366,7 @@
+ };
+ #endif
+
+-#if YYDEBUG || YYERROR_VERBOSE || 0
++#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+ /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+ static const char *const yytname[] =
+@@ -1193,8 +1403,8 @@
+ "UNMONITOR", "PING", "ICMP", "ICMPECHO", "NONEXIST", "EXIST", "INVALID",
+ "DATA", "RECOVERED", "PASSED", "SUCCEEDED", "URL", "CONTENT", "PID",
+ "PPID", "FSFLAG", "REGISTER", "CREDENTIALS", "URLOBJECT", "TARGET",
+- "TIMESPEC", "HTTPHEADER", "MAXFORWARD", "FIPS", "GREATER", "LESS",
+- "EQUAL", "NOTEQUAL", "'{'", "'}'", "':'", "'@'", "'['", "']'", "$accept",
++ "TIMESPEC", "HTTPHEADER", "MAXFORWARD", "FIPS", "NOTEQUAL", "EQUAL",
++ "LESS", "GREATER", "'{'", "'}'", "':'", "'@'", "'['", "']'", "$accept",
+ "cfgfile", "statement_list", "statement", "optproclist", "optproc",
+ "optfilelist", "optfile", "optfilesyslist", "optfilesys", "optdirlist",
+ "optdir", "opthostlist", "opthost", "optsystemlist", "optsystem",
+@@ -1227,13 +1437,13 @@
+ "resourceloadavg", "value", "timestamp", "operator", "time", "action",
+ "action1", "action2", "rate1", "rate2", "recovery", "checksum",
+ "hashtype", "inode", "space", "fsflag", "unit", "permission", "match",
+- "matchflagnot", "size", "uid", "euid", "gid", "icmptype", "reminder", YY_NULLPTR
++ "matchflagnot", "size", "uid", "euid", "gid", "icmptype", "reminder", 0
+ };
+ #endif
+
+ # ifdef YYPRINT
+-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
+- (internal) symbol number NUM (which must be that of a token). */
++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
++ token YYLEX-NUM. */
+ static const yytype_uint16 yytoknum[] =
+ {
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+@@ -1261,120 +1471,127 @@
+ };
+ # endif
+
+-#define YYPACT_NINF -679
+-
+-#define yypact_value_is_default(Yystate) \
+- (!!((Yystate) == (-679)))
+-
+-#define YYTABLE_NINF -226
+-
+-#define yytable_value_is_error(Yytable_value) \
+- 0
++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
++static const yytype_uint16 yyr1[] =
++{
++ 0, 218, 219, 219, 220, 220, 221, 221, 221, 221,
++ 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
++ 221, 221, 221, 221, 221, 221, 221, 221, 222, 222,
++ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
++ 223, 223, 223, 223, 223, 223, 223, 223, 223, 224,
++ 224, 225, 225, 225, 225, 225, 225, 225, 225, 225,
++ 225, 225, 225, 225, 225, 225, 225, 225, 226, 226,
++ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
++ 227, 227, 227, 227, 227, 227, 228, 228, 229, 229,
++ 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
++ 229, 229, 230, 230, 231, 231, 231, 231, 231, 231,
++ 231, 231, 231, 231, 231, 231, 232, 232, 233, 233,
++ 233, 233, 233, 233, 233, 233, 233, 234, 234, 235,
++ 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
++ 235, 235, 235, 236, 236, 237, 237, 237, 237, 237,
++ 237, 237, 237, 237, 237, 238, 238, 238, 239, 240,
++ 240, 241, 242, 243, 244, 244, 244, 245, 245, 245,
++ 246, 247, 248, 249, 250, 250, 251, 252, 252, 253,
++ 254, 255, 256, 256, 257, 257, 258, 258, 259, 259,
++ 259, 259, 260, 260, 261, 261, 262, 262, 262, 263,
++ 263, 264, 264, 265, 265, 266, 266, 267, 267, 268,
++ 269, 270, 271, 272, 272, 272, 272, 272, 272, 273,
++ 272, 274, 272, 275, 272, 276, 272, 272, 277, 277,
++ 278, 279, 279, 280, 280, 280, 280, 281, 282, 282,
++ 283, 284, 285, 286, 287, 287, 288, 288, 289, 289,
++ 290, 290, 291, 291, 292, 292, 293, 293, 294, 294,
++ 294, 294, 295, 295, 295, 296, 296, 297, 297, 298,
++ 298, 299, 300, 300, 301, 301, 302, 303, 304, 304,
++ 304, 304, 305, 305, 306, 306, 306, 306, 306, 306,
++ 306, 307, 307, 307, 307, 307, 307, 307, 307, 307,
++ 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
++ 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
++ 307, 307, 308, 308, 309, 309, 310, 310, 311, 311,
++ 311, 311, 312, 312, 312, 313, 313, 314, 314, 315,
++ 315, 315, 315, 315, 316, 317, 318, 319, 320, 320,
++ 321, 322, 322, 323, 323, 323, 323, 323, 323, 323,
++ 323, 323, 323, 324, 325, 326, 327, 328, 328, 329,
++ 329, 330, 330, 331, 331, 332, 332, 333, 333, 334,
++ 334, 335, 335, 336, 336, 336, 336, 337, 338, 339,
++ 339, 340, 340, 340, 340, 340, 340, 340, 340, 340,
++ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
++ 340, 340, 340, 341, 341, 342, 342, 343, 343, 343,
++ 343, 344, 344, 344, 345, 345, 345, 346, 347, 348,
++ 348, 349, 350, 350, 351, 352, 352, 353, 353, 353,
++ 353, 354, 355, 355, 356, 356, 356, 356, 357, 357,
++ 358, 359, 359, 359, 360, 360, 360, 360, 361, 361,
++ 362, 363, 364, 364, 364, 365, 365, 366, 366, 367,
++ 367, 367, 367, 367, 367, 368, 368, 368, 368, 368,
++ 369, 369, 369, 369, 369, 369, 369, 370, 371, 372,
++ 372, 372, 373, 373, 373, 374, 374, 374, 374, 375,
++ 375, 375, 376, 376, 376, 377, 377, 378, 378, 379,
++ 380, 380, 380, 380, 380, 381, 382, 382, 382, 382,
++ 383, 383, 384, 384, 385, 385, 386, 386, 387, 387,
++ 388, 389, 389, 389
++};
+
+- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+- STATE-NUM. */
+-static const yytype_int16 yypact[] =
++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
++static const yytype_uint8 yyr2[] =
+ {
+- 514, 250, -51, -35, -27, -11, 3, 42, 52, 65,
+- 145, 514, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, 284, -679, -679, -679, 16, 74, 107, 221, -679,
+- 176, 198, 226, 279, 292, 180, 137, 196, -679, -21,
+- -3, 372, 377, 393, 411, -679, 397, 415, -679, -679,
+- 451, 96, 700, 716, 7, 286, 286, 343, 286, -52,
+- 273, 289, 381, 391, 284, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, 37, -679, -679, -679, -679, -679,
+- 436, 716, 585, 482, -679, 456, -18, 0, -679, 405,
+- -679, -679, 260, -679, -679, 424, 425, 407, 475, 196,
+- 349, 331, 339, 612, 530, 485, 491, 367, 379, 517,
+- 519, 523, 524, 286, 237, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, 15, 443, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, 27, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, 26, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, 47,
+- 559, 452, -679, -679, 230, -679, 230, -679, 230, 609,
+- -679, -679, -679, -679, -679, -679, -679, 391, -679, -679,
+- 435, 612, 530, 685, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, 256,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, 558, 625, -679, 551, -14, 497, 555, -679, 613,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -43, -679, 513, -679, 277, 349, 459, -679, 424, 612,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, 356, -679, 567, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, 236, 201, 191, 191,
+- 191, -679, -679, -679, 191, 191, 326, 191, 734, -679,
+- -679, -679, -679, -679, 191, 101, 191, 62, 191, 452,
+- 492, -679, 494, 231, 470, 191, 191, 516, 583, 639,
+- 633, 477, 636, 584, 600, 601, -36, 150, -6, -679,
+- -679, -679, -6, -679, -6, -679, -679, -679, 612, 422,
+- -679, 191, -679, -679, -679, 691, -679, -679, 191, -679,
+- -679, -679, 191, 579, -679, 604, 550, -679, -679, 615,
+- 277, 548, 617, -679, 395, -679, -679, 610, -679, -679,
+- -679, -679, -679, -679, 540, -679, -679, 23, 500, 661,
+- -679, 680, 620, 73, -679, 630, 225, 240, 259, 679,
+- -679, -679, -679, -679, -679, 628, 41, 59, 637, 645,
+- 600, 600, 646, -4, -679, 725, 87, -679, -679, 647,
+- 677, 649, 600, 600, 694, 650, 449, 466, 600, 654,
+- 166, -679, 657, 475, 572, 639, 569, 663, 679, 735,
+- 770, 619, -679, -679, -679, -679, -679, -679, -679, -679,
+- 535, 661, 179, -679, 774, 682, 683, 600, -679, 497,
+- -679, 540, -679, -679, 20, 689, 33, 51, 545, 556,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- 690, -679, -679, 661, 530, -679, 627, -679, -679, 600,
+- 600, 600, 600, 600, 600, 488, 35, -679, 686, -679,
+- 260, 695, 260, 696, 698, 779, 787, 401, -679, 755,
+- 91, -679, -679, 600, 28, 401, 796, 799, 600, 260,
+- 600, 600, -679, -679, 800, 486, 705, 260, -679, 600,
+- -679, 475, 386, 475, -679, 35, 802, 91, -679, 661,
+- 530, 726, 260, 91, 727, 600, 824, 277, -679, 743,
+- 748, 749, 629, 763, 765, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, 380, 380, -679, 530, -679, -679,
+- 852, 854, 864, 865, 868, 869, -679, -679, 277, 788,
+- 810, 858, 475, 557, -679, -679, -679, -679, -679, -679,
+- -679, 91, 91, -679, -679, -679, -679, 600, -679, -679,
+- -679, -679, -679, 286, -679, -679, 874, 897, 812, 899,
+- 600, 91, 91, 900, 600, 901, 902, 91, 600, 903,
+- 600, 600, 904, 600, -679, -679, 819, 855, 569, 290,
+- 874, 530, -679, -679, -679, 874, -679, 906, 91, 540,
+- 825, 859, 860, 861, 862, 931, 863, 866, -679, -679,
+- -679, -679, -679, -679, 91, 91, 91, 91, 91, 91,
+- 540, -679, -679, -679, -679, -679, 789, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, 214, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, 751, -679, -679,
+- 808, -679, 855, -679, -679, -679, 952, 220, 956, -679,
+- 91, 600, 91, 955, -679, -679, 91, 957, 91, 91,
+- -679, 958, 91, 959, 960, 91, 961, -679, 867, 600,
+- 475, -679, -679, -679, -679, -679, 91, -679, -679, 862,
+- 862, 862, 931, -679, 862, -679, -679, -679, -679, -679,
+- 874, 874, 874, 874, 874, 874, -679, 103, 103, 191,
+- 191, 191, 191, 191, 191, 191, 191, 191, 191, 962,
+- -679, 870, 878, 871, 880, 214, -679, 167, 764, 882,
+- -679, 600, 91, 239, 255, 874, 969, 874, 91, -679,
+- 91, -679, -679, 91, 874, 91, 91, 874, 91, -679,
+- 970, 855, 874, 862, 862, 862, -679, -679, -679, -679,
+- -679, -679, -679, -679, 885, 191, 886, 888, -679, -679,
+- -679, -679, -679, -679, 877, 881, 883, 884, 887, 889,
+- 890, 891, 892, 893, 789, -679, -679, -679, -679, -679,
+- -679, -679, 894, -679, -679, 975, 874, 895, 895, 895,
+- -679, 91, -679, 874, 874, 874, -679, 874, 874, -679,
+- 874, 91, 600, -679, -679, 896, -679, -679, 92, 898,
+- 905, 907, 908, 909, 910, 911, 912, 913, 914, -679,
+- -679, 91, -679, 10, 977, 980, 981, 874, -679, -679,
+- -679, -679, -679, -679, 874, 983, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, 874,
+- -679, 963, 91, 91, 91, -679, -679, 91, -679, -679,
+- -679, -679, -679, -679, 874, -679
++ 0, 2, 0, 1, 1, 2, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 2, 2, 2, 2, 2, 2, 2, 2, 0, 2,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
++ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 0, 2,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 0, 2, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 0, 2, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 0, 2, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 4, 7, 8, 4, 0,
++ 3, 4, 2, 2, 3, 3, 5, 4, 6, 4,
++ 3, 3, 3, 3, 2, 3, 4, 0, 2, 5,
++ 5, 5, 1, 2, 5, 7, 0, 2, 1, 1,
++ 1, 1, 2, 2, 0, 2, 1, 1, 1, 2,
++ 2, 2, 2, 1, 1, 2, 2, 2, 2, 2,
++ 2, 2, 1, 5, 4, 2, 3, 3, 3, 0,
++ 4, 0, 5, 0, 5, 0, 5, 2, 1, 2,
++ 1, 0, 1, 4, 4, 4, 4, 4, 4, 4,
++ 4, 4, 2, 4, 5, 6, 3, 4, 3, 4,
++ 3, 4, 1, 2, 1, 2, 1, 1, 2, 2,
++ 2, 2, 0, 2, 2, 0, 2, 0, 2, 13,
++ 11, 11, 10, 9, 0, 2, 2, 2, 0, 2,
++ 4, 2, 0, 2, 0, 1, 1, 1, 1, 1,
++ 1, 0, 3, 2, 2, 2, 2, 3, 3, 2,
++ 2, 2, 2, 2, 4, 2, 2, 2, 2, 2,
++ 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
++ 3, 1, 1, 2, 2, 2, 1, 2, 2, 2,
++ 2, 2, 0, 2, 2, 0, 2, 0, 2, 1,
++ 1, 1, 1, 3, 3, 2, 2, 2, 0, 2,
++ 2, 1, 3, 4, 4, 4, 4, 4, 4, 4,
++ 4, 4, 4, 7, 6, 6, 9, 0, 2, 0,
++ 3, 0, 3, 0, 3, 0, 2, 7, 7, 0,
++ 3, 1, 1, 3, 6, 7, 1, 2, 2, 1,
++ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
++ 1, 1, 1, 0, 4, 1, 2, 1, 1, 1,
++ 1, 3, 2, 2, 2, 2, 2, 2, 2, 1,
++ 2, 1, 8, 6, 6, 1, 2, 1, 1, 1,
++ 1, 6, 1, 2, 1, 1, 1, 1, 4, 4,
++ 4, 1, 1, 1, 4, 4, 4, 4, 4, 4,
++ 3, 3, 1, 1, 1, 1, 1, 9, 6, 0,
++ 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
++ 1, 2, 3, 1, 1, 1, 1, 1, 1, 0,
++ 2, 3, 0, 2, 3, 0, 6, 6, 6, 8,
++ 10, 7, 0, 1, 1, 8, 9, 9, 9, 6,
++ 0, 1, 1, 1, 1, 8, 7, 7, 4, 4,
++ 0, 1, 9, 6, 8, 8, 8, 8, 8, 8,
++ 2, 0, 2, 3
+ };
+
+- /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+- Performed when YYTABLE does not specify something else to do. Zero
+- means the default is an error. */
++/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
++ Performed when YYTABLE doesn't specify something else to do. Zero
++ means the default is an error. */
+ static const yytype_uint16 yydefact[] =
+ {
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+@@ -1420,7 +1637,7 @@
+ 284, 0, 0, 179, 181, 180, 416, 0, 290, 285,
+ 286, 287, 288, 289, 282, 175, 178, 0, 0, 413,
+ 390, 532, 0, 371, 244, 0, 0, 0, 0, 278,
+- 474, 470, 471, 472, 473, 0, 0, 0, 0, 0,
++ 474, 473, 472, 471, 470, 0, 0, 0, 0, 0,
+ 489, 489, 0, 0, 436, 0, 0, 503, 504, 0,
+ 0, 0, 489, 489, 0, 0, 0, 0, 489, 0,
+ 0, 275, 0, 373, 0, 367, 379, 0, 278, 0,
+@@ -1442,7 +1659,7 @@
+ 449, 0, 0, 476, 477, 478, 479, 489, 491, 484,
+ 485, 480, 483, 0, 486, 487, 495, 0, 0, 0,
+ 489, 0, 0, 0, 489, 0, 0, 0, 489, 0,
+- 489, 489, 0, 489, 381, 382, 0, 375, 379, 0,
++ 489, 489, 0, 489, 382, 381, 0, 375, 379, 0,
+ 495, 531, 384, 459, 458, 495, 450, 0, 0, 282,
+ 216, 217, 218, 0, 0, 231, 0, 0, 212, 195,
+ 196, 197, 198, 157, 0, 0, 0, 0, 0, 0,
+@@ -1474,30 +1691,7 @@
+ 488, 496, 497, 498, 495, 269
+ };
+
+- /* YYPGOTO[NTERM-NUM]. */
+-static const yytype_int16 yypgoto[] =
+-{
+- -679, -679, -679, 986, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, 926, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, 915, 717, -679, -679, -679, -679, 919,
+- -679, -679, -679, 498, -679, -679, -679, -679, -679, -679,
+- -679, -679, -679, -679, -679, -679, -679, -679, -679, -195,
+- -491, 241, -679, -679, -679, -679, -679, -679, -679, -679,
+- 438, 603, 681, -65, -201, -202, -351, 608, 518, -679,
+- 945, -679, -679, -679, -679, -679, 549, -472, -387, 453,
+- -679, 406, -679, 227, -679, -679, 325, -679, -679, -679,
+- -679, -679, -679, -679, -679, 169, 423, -679, -679, -679,
+- 560, -165, 598, -108, -678, 776, 368, -679, 785, 1026,
+- -679, -151, -263, -76, 740, -256, 790, 32, 823, 827,
+- -679, 813, -679, -679, -679, 693, -679, -679, 644, -679,
+- -679, -679, -203, -679, -679, -177, -679, -380, 18, -319,
+- 487, -294, -508, -332, -355, -262, -560, -679, 687, -679,
+- -679, -679, 43, 299, -679, 916, -679, 13, -679, 208,
+- -679, -210
+-};
+-
+- /* YYDEFGOTO[NTERM-NUM]. */
++/* YYDEFGOTO[NTERM-NUM]. */
+ static const yytype_int16 yydefgoto[] =
+ {
+ -1, 10, 11, 12, 60, 125, 61, 147, 62, 166,
+@@ -1520,9 +1714,135 @@
+ 465, 315
+ };
+
+- /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
+- positive, shift that token. If negative, reduce the rule whose
+- number is the opposite. If YYTABLE_NINF, syntax error. */
++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
++ STATE-NUM. */
++#define YYPACT_NINF -679
++static const yytype_int16 yypact[] =
++{
++ 514, 250, -51, -35, -27, -11, 3, 42, 52, 65,
++ 145, 514, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, 284, -679, -679, -679, 16, 74, 107, 221, -679,
++ 176, 198, 226, 279, 292, 180, 137, 196, -679, -21,
++ -3, 372, 377, 386, 418, -679, 397, 415, -679, -679,
++ 451, 96, 700, 716, 7, 286, 286, 343, 286, -52,
++ 273, 289, 390, 382, 284, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, 37, -679, -679, -679, -679, -679,
++ 436, 716, 585, 482, -679, 456, -18, 0, -679, 405,
++ -679, -679, 260, -679, -679, 424, 425, 407, 475, 196,
++ 349, 331, 339, 612, 530, 485, 491, 367, 379, 517,
++ 519, 523, 524, 286, 237, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, 15, 443, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, 27, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, 26, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, 47,
++ 559, 452, -679, -679, 230, -679, 230, -679, 230, 609,
++ -679, -679, -679, -679, -679, -679, -679, 382, -679, -679,
++ 435, 612, 530, 685, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, 256,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, 557, 626, -679, 551, -14, 497, 555, -679, 613,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -43, -679, 513, -679, 277, 349, 459, -679, 424, 612,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, 356, -679, 567, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, 236, 201, 191, 191,
++ 191, -679, -679, -679, 191, 191, 326, 191, 734, -679,
++ -679, -679, -679, -679, 191, 101, 191, 62, 191, 452,
++ 492, -679, 494, 231, 470, 191, 191, 516, 583, 639,
++ 633, 477, 636, 584, 600, 601, -36, 150, -6, -679,
++ -679, -679, -6, -679, -6, -679, -679, -679, 612, 422,
++ -679, 191, -679, -679, -679, 691, -679, -679, 191, -679,
++ -679, -679, 191, 579, -679, 604, 550, -679, -679, 615,
++ 277, 548, 617, -679, 395, -679, -679, 610, -679, -679,
++ -679, -679, -679, -679, 540, -679, -679, 23, 500, 661,
++ -679, 680, 620, 73, -679, 630, 225, 240, 259, 679,
++ -679, -679, -679, -679, -679, 628, 41, 59, 637, 645,
++ 600, 600, 646, -4, -679, 725, 87, -679, -679, 647,
++ 677, 649, 600, 600, 694, 650, 449, 466, 600, 654,
++ 166, -679, 657, 475, 572, 639, 569, 663, 679, 735,
++ 770, 619, -679, -679, -679, -679, -679, -679, -679, -679,
++ 535, 661, 179, -679, 774, 682, 683, 600, -679, 497,
++ -679, 540, -679, -679, 20, 689, 33, 51, 545, 556,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ 690, -679, -679, 661, 530, -679, 625, -679, -679, 600,
++ 600, 600, 600, 600, 600, 488, 35, -679, 686, -679,
++ 260, 695, 260, 696, 698, 781, 787, 401, -679, 755,
++ 91, -679, -679, 600, 28, 401, 796, 799, 600, 260,
++ 600, 600, -679, -679, 800, 486, 705, 260, -679, 600,
++ -679, 475, 381, 475, -679, 35, 802, 91, -679, 661,
++ 530, 726, 260, 91, 727, 600, 824, 277, -679, 743,
++ 748, 749, 629, 763, 765, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, 380, 380, -679, 530, -679, -679,
++ 852, 854, 864, 865, 868, 869, -679, -679, 277, 788,
++ 810, 858, 475, 564, -679, -679, -679, -679, -679, -679,
++ -679, 91, 91, -679, -679, -679, -679, 600, -679, -679,
++ -679, -679, -679, 286, -679, -679, 874, 897, 812, 899,
++ 600, 91, 91, 900, 600, 901, 902, 91, 600, 903,
++ 600, 600, 904, 600, -679, -679, 819, 855, 569, 290,
++ 874, 530, -679, -679, -679, 874, -679, 906, 91, 540,
++ 825, 859, 860, 861, 862, 931, 863, 866, -679, -679,
++ -679, -679, -679, -679, 91, 91, 91, 91, 91, 91,
++ 540, -679, -679, -679, -679, -679, 789, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, 214, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, 751, -679, -679,
++ 808, -679, 855, -679, -679, -679, 952, 220, 956, -679,
++ 91, 600, 91, 955, -679, -679, 91, 957, 91, 91,
++ -679, 958, 91, 959, 960, 91, 961, -679, 867, 600,
++ 475, -679, -679, -679, -679, -679, 91, -679, -679, 862,
++ 862, 862, 931, -679, 862, -679, -679, -679, -679, -679,
++ 874, 874, 874, 874, 874, 874, -679, 103, 103, 191,
++ 191, 191, 191, 191, 191, 191, 191, 191, 191, 962,
++ -679, 870, 878, 871, 880, 214, -679, 167, 764, 882,
++ -679, 600, 91, 239, 255, 874, 969, 874, 91, -679,
++ 91, -679, -679, 91, 874, 91, 91, 874, 91, -679,
++ 970, 855, 874, 862, 862, 862, -679, -679, -679, -679,
++ -679, -679, -679, -679, 885, 191, 886, 888, -679, -679,
++ -679, -679, -679, -679, 877, 881, 883, 884, 887, 889,
++ 890, 891, 892, 893, 789, -679, -679, -679, -679, -679,
++ -679, -679, 894, -679, -679, 975, 874, 895, 895, 895,
++ -679, 91, -679, 874, 874, 874, -679, 874, 874, -679,
++ 874, 91, 600, -679, -679, 896, -679, -679, 92, 898,
++ 905, 907, 908, 909, 910, 911, 912, 913, 914, -679,
++ -679, 91, -679, 10, 977, 980, 981, 874, -679, -679,
++ -679, -679, -679, -679, 874, 983, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, 874,
++ -679, 963, 91, 91, 91, -679, -679, 91, -679, -679,
++ -679, -679, -679, -679, 874, -679
++};
++
++/* YYPGOTO[NTERM-NUM]. */
++static const yytype_int16 yypgoto[] =
++{
++ -679, -679, -679, 986, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, 926, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, 915, 717, -679, -679, -679, -679, 919,
++ -679, -679, -679, 498, -679, -679, -679, -679, -679, -679,
++ -679, -679, -679, -679, -679, -679, -679, -679, -679, -195,
++ -491, 241, -679, -679, -679, -679, -679, -679, -679, -679,
++ 438, 603, 681, -65, -201, -202, -351, 608, 518, -679,
++ 945, -679, -679, -679, -679, -679, 549, -472, -387, 453,
++ -679, 406, -679, 227, -679, -679, 325, -679, -679, -679,
++ -679, -679, -679, -679, -679, 169, 423, -679, -679, -679,
++ 560, -165, 598, -108, -678, 776, 368, -679, 785, 1026,
++ -679, -151, -263, -76, 740, -256, 790, 32, 823, 827,
++ -679, 813, -679, -679, -679, 693, -679, -679, 644, -679,
++ -679, -679, -203, -679, -679, -177, -679, -380, 18, -319,
++ 487, -294, -508, -332, -355, -262, -560, -679, 687, -679,
++ -679, -679, 43, 299, -679, 916, -679, 13, -679, 208,
++ -679, -210
++};
++
++/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
++ positive, shift that token. If negative, reduce the rule which
++ number is the opposite. If YYTABLE_NINF, syntax error. */
++#define YYTABLE_NINF -226
+ static const yytype_int16 yytable[] =
+ {
+ 284, 206, 369, 208, 369, 372, 369, 374, 222, 470,
+@@ -1567,13 +1887,13 @@
+ 246, 367, 105, 929, 820, 336, 361, 46, 108, 431,
+ 432, 433, 434, 47, 676, 570, 290, 449, 677, 678,
+ 494, 495, 291, 118, 393, 292, 201, 71, 119, 337,
+- 496, 497, 498, 212, 213, 214, 72, 121, 73, 944,
+- 271, 272, 273, 274, 120, 201, 207, 597, 122, 223,
++ 496, 497, 498, 212, 213, 214, 72, 120, 73, 944,
++ 271, 272, 273, 274, 121, 201, 207, 597, 122, 223,
+ 408, 409, 410, 411, 412, 413, 865, 867, 868, 869,
+ 499, 754, 476, 653, 124, 657, 123, 48, 318, 319,
+ 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
+ 320, 321, 290, 633, 634, 65, 66, 211, 291, 293,
+- 215, 292, 294, 131, 151, 170, 188, 44, 67, 216,
++ 216, 292, 294, 131, 151, 170, 188, 44, 67, 215,
+ 65, 66, 261, 661, 68, 262, 69, 70, 126, 148,
+ 167, 185, 44, 67, 722, 270, 295, 283, 296, 68,
+ 297, 69, 70, 298, 238, 254, 885, 282, 276, 277,
+@@ -1583,13 +1903,13 @@
+ 290, 289, 308, 309, 310, 311, 291, 552, 553, 292,
+ 623, 624, 625, 626, 823, 824, 825, 314, 727, 419,
+ 590, 591, 295, 616, 296, 618, 297, 316, 72, 298,
+- 73, 592, 593, 317, 71, 290, 443, 648, 249, 609,
+- 610, 291, 644, 72, 292, 73, 654, 655, 299, 300,
++ 73, 592, 593, 317, 71, 290, 443, 648, 249, 654,
++ 655, 291, 644, 72, 292, 73, 609, 610, 299, 300,
+ 651, 942, 943, 301, 302, 303, 905, 906, 304, 322,
+ 305, 323, 306, 307, 324, 664, 325, 363, 308, 309,
+ 310, 311, 351, 293, 65, 66, 294, 2, 3, 4,
+ 5, 6, 7, 8, 9, 481, 44, 67, 940, 940,
+- 940, 364, 821, 68, 376, 69, 70, 378, 395, 394,
++ 940, 364, 821, 68, 376, 69, 70, 378, 394, 395,
+ 295, 396, 296, 399, 297, 401, 402, 298, 293, 407,
+ 416, 294, 290, 127, 149, 168, 186, 421, 291, 458,
+ 456, 292, 457, 452, 461, 462, 299, 300, 464, 466,
+@@ -1603,7 +1923,7 @@
+ 549, 44, 67, 548, 555, 65, 66, 558, 68, 560,
+ 69, 70, 295, 564, 296, 562, 297, 44, 67, 298,
+ 566, 227, 237, 253, 68, 567, 69, 70, 568, 573,
+- 585, 596, 574, 575, 621, 200, 599, 615, 299, 300,
++ 585, 596, 574, 575, 599, 200, 621, 615, 299, 300,
+ 628, 443, 622, 301, 302, 303, 617, 619, 304, 620,
+ 305, 641, 306, 307, 642, 647, 650, 659, 308, 309,
+ 310, 311, 329, 330, 331, 332, 333, 381, 329, 330,
+@@ -1634,6 +1954,12 @@
+ 0, 0, 352
+ };
+
++#define yypact_value_is_default(yystate) \
++ ((yystate) == (-679))
++
++#define yytable_value_is_error(yytable_value) \
++ YYID (0)
++
+ static const yytype_int16 yycheck[] =
+ {
+ 108, 66, 204, 68, 206, 206, 208, 208, 84, 364,
+@@ -1678,13 +2004,13 @@
+ 91, 152, 212, 901, 749, 158, 195, 147, 202, 208,
+ 209, 210, 211, 153, 24, 481, 50, 176, 28, 29,
+ 15, 16, 56, 41, 158, 59, 179, 133, 41, 182,
+- 25, 26, 27, 134, 135, 136, 142, 16, 144, 937,
+- 170, 171, 172, 173, 41, 179, 93, 513, 41, 3,
++ 25, 26, 27, 134, 135, 136, 142, 41, 144, 937,
++ 170, 171, 172, 173, 16, 179, 93, 513, 41, 3,
+ 163, 164, 165, 166, 167, 168, 801, 192, 193, 194,
+ 55, 661, 803, 561, 3, 563, 41, 207, 91, 92,
+ 779, 780, 781, 782, 783, 784, 785, 786, 787, 788,
+ 91, 92, 50, 183, 184, 39, 40, 204, 56, 123,
+- 99, 59, 126, 60, 61, 62, 63, 51, 52, 98,
++ 98, 59, 126, 60, 61, 62, 63, 51, 52, 99,
+ 39, 40, 10, 569, 58, 39, 60, 61, 60, 61,
+ 62, 63, 51, 52, 612, 100, 150, 100, 152, 58,
+ 154, 60, 61, 157, 91, 92, 835, 92, 94, 95,
+@@ -1694,13 +2020,13 @@
+ 50, 212, 196, 197, 198, 199, 56, 91, 92, 59,
+ 159, 160, 161, 162, 759, 760, 761, 37, 633, 213,
+ 25, 26, 150, 530, 152, 532, 154, 92, 142, 157,
+- 144, 25, 26, 92, 133, 50, 100, 101, 3, 32,
+- 33, 56, 549, 142, 59, 144, 210, 211, 176, 177,
++ 144, 25, 26, 92, 133, 50, 100, 101, 3, 208,
++ 209, 56, 549, 142, 59, 144, 32, 33, 176, 177,
+ 557, 933, 934, 181, 182, 183, 868, 869, 186, 92,
+ 188, 92, 190, 191, 91, 572, 92, 58, 196, 197,
+ 198, 199, 179, 123, 39, 40, 126, 113, 114, 115,
+ 116, 117, 118, 119, 120, 213, 51, 52, 932, 933,
+- 934, 189, 750, 58, 35, 60, 61, 212, 23, 91,
++ 934, 189, 750, 58, 35, 60, 61, 212, 91, 23,
+ 150, 100, 152, 156, 154, 100, 43, 157, 123, 146,
+ 201, 126, 50, 60, 61, 62, 63, 100, 56, 199,
+ 178, 59, 178, 157, 91, 36, 176, 177, 45, 202,
+@@ -1714,7 +2040,7 @@
+ 100, 51, 52, 59, 100, 39, 40, 100, 58, 187,
+ 60, 61, 150, 100, 152, 196, 154, 51, 52, 157,
+ 35, 90, 91, 92, 58, 5, 60, 61, 159, 5,
+- 91, 91, 100, 100, 5, 100, 159, 101, 176, 177,
++ 91, 91, 100, 100, 159, 100, 5, 101, 176, 177,
+ 35, 100, 5, 181, 182, 183, 101, 101, 186, 101,
+ 188, 5, 190, 191, 5, 5, 101, 5, 196, 197,
+ 198, 199, 127, 128, 129, 130, 131, 132, 127, 128,
+@@ -1745,8 +2071,8 @@
+ -1, -1, 146
+ };
+
+- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+- symbol of state STATE-NUM. */
++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
++ symbol of state STATE-NUM. */
+ static const yytype_uint16 yystos[] =
+ {
+ 0, 8, 113, 114, 115, 116, 117, 118, 119, 120,
+@@ -1814,7 +2140,7 @@
+ 101, 5, 5, 159, 160, 161, 162, 368, 35, 39,
+ 40, 51, 58, 183, 184, 369, 370, 372, 33, 372,
+ 368, 5, 5, 372, 380, 372, 372, 5, 101, 372,
+- 101, 380, 372, 331, 210, 211, 335, 331, 307, 5,
++ 101, 380, 372, 331, 208, 209, 335, 331, 307, 5,
+ 370, 341, 389, 101, 380, 370, 101, 372, 5, 306,
+ 92, 92, 92, 214, 273, 91, 24, 28, 29, 262,
+ 269, 270, 271, 389, 5, 5, 5, 5, 5, 5,
+@@ -1846,159 +2172,94 @@
+ 369, 371, 371, 371, 370, 374
+ };
+
+- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+-static const yytype_uint16 yyr1[] =
+-{
+- 0, 218, 219, 219, 220, 220, 221, 221, 221, 221,
+- 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
+- 221, 221, 221, 221, 221, 221, 221, 221, 222, 222,
+- 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+- 223, 223, 223, 223, 223, 223, 223, 223, 223, 224,
+- 224, 225, 225, 225, 225, 225, 225, 225, 225, 225,
+- 225, 225, 225, 225, 225, 225, 225, 225, 226, 226,
+- 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+- 227, 227, 227, 227, 227, 227, 228, 228, 229, 229,
+- 229, 229, 229, 229, 229, 229, 229, 229, 229, 229,
+- 229, 229, 230, 230, 231, 231, 231, 231, 231, 231,
+- 231, 231, 231, 231, 231, 231, 232, 232, 233, 233,
+- 233, 233, 233, 233, 233, 233, 233, 234, 234, 235,
+- 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
+- 235, 235, 235, 236, 236, 237, 237, 237, 237, 237,
+- 237, 237, 237, 237, 237, 238, 238, 238, 239, 240,
+- 240, 241, 242, 243, 244, 244, 244, 245, 245, 245,
+- 246, 247, 248, 249, 250, 250, 251, 252, 252, 253,
+- 254, 255, 256, 256, 257, 257, 258, 258, 259, 259,
+- 259, 259, 260, 260, 261, 261, 262, 262, 262, 263,
+- 263, 264, 264, 265, 265, 266, 266, 267, 267, 268,
+- 269, 270, 271, 272, 272, 272, 272, 272, 272, 273,
+- 272, 274, 272, 275, 272, 276, 272, 272, 277, 277,
+- 278, 279, 279, 280, 280, 280, 280, 281, 282, 282,
+- 283, 284, 285, 286, 287, 287, 288, 288, 289, 289,
+- 290, 290, 291, 291, 292, 292, 293, 293, 294, 294,
+- 294, 294, 295, 295, 295, 296, 296, 297, 297, 298,
+- 298, 299, 300, 300, 301, 301, 302, 303, 304, 304,
+- 304, 304, 305, 305, 306, 306, 306, 306, 306, 306,
+- 306, 307, 307, 307, 307, 307, 307, 307, 307, 307,
+- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
+- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
+- 307, 307, 308, 308, 309, 309, 310, 310, 311, 311,
+- 311, 311, 312, 312, 312, 313, 313, 314, 314, 315,
+- 315, 315, 315, 315, 316, 317, 318, 319, 320, 320,
+- 321, 322, 322, 323, 323, 323, 323, 323, 323, 323,
+- 323, 323, 323, 324, 325, 326, 327, 328, 328, 329,
+- 329, 330, 330, 331, 331, 332, 332, 333, 333, 334,
+- 334, 335, 335, 336, 336, 336, 336, 337, 338, 339,
+- 339, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+- 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+- 340, 340, 340, 341, 341, 342, 342, 343, 343, 343,
+- 343, 344, 344, 344, 345, 345, 345, 346, 347, 348,
+- 348, 349, 350, 350, 351, 352, 352, 353, 353, 353,
+- 353, 354, 355, 355, 356, 356, 356, 356, 357, 357,
+- 358, 359, 359, 359, 360, 360, 360, 360, 361, 361,
+- 362, 363, 364, 364, 364, 365, 365, 366, 366, 367,
+- 367, 367, 367, 367, 367, 368, 368, 368, 368, 368,
+- 369, 369, 369, 369, 369, 369, 369, 370, 371, 372,
+- 372, 372, 373, 373, 373, 374, 374, 374, 374, 375,
+- 375, 375, 376, 376, 376, 377, 377, 378, 378, 379,
+- 380, 380, 380, 380, 380, 381, 382, 382, 382, 382,
+- 383, 383, 384, 384, 385, 385, 386, 386, 387, 387,
+- 388, 389, 389, 389
+-};
++#define yyerrok (yyerrstatus = 0)
++#define yyclearin (yychar = YYEMPTY)
++#define YYEMPTY (-2)
++#define YYEOF 0
++
++#define YYACCEPT goto yyacceptlab
++#define YYABORT goto yyabortlab
++#define YYERROR goto yyerrorlab
++
++
++/* Like YYERROR except do call yyerror. This remains here temporarily
++ to ease the transition to the new meaning of YYERROR, for GCC.
++ Once GCC version 2 has supplanted version 1, this can go. However,
++ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
++ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
++ discussed. */
++
++#define YYFAIL goto yyerrlab
++#if defined YYFAIL
++ /* This is here to suppress warnings from the GCC cpp's
++ -Wunused-macros. Normally we don't worry about that warning, but
++ some users do, and we want to make it easy for users to remove
++ YYFAIL uses, which will produce warnings from Bison 2.5. */
++#endif
+
+- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+-static const yytype_uint8 yyr2[] =
+-{
+- 0, 2, 0, 1, 1, 2, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 2, 2, 2, 2, 2, 2, 2, 2, 0, 2,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 0, 2,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 0, 2, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 2, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 0, 2, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 0, 2, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 0, 2, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 4, 7, 8, 4, 0,
+- 3, 4, 2, 2, 3, 3, 5, 4, 6, 4,
+- 3, 3, 3, 3, 2, 3, 4, 0, 2, 5,
+- 5, 5, 1, 2, 5, 7, 0, 2, 1, 1,
+- 1, 1, 2, 2, 0, 2, 1, 1, 1, 2,
+- 2, 2, 2, 1, 1, 2, 2, 2, 2, 2,
+- 2, 2, 1, 5, 4, 2, 3, 3, 3, 0,
+- 4, 0, 5, 0, 5, 0, 5, 2, 1, 2,
+- 1, 0, 1, 4, 4, 4, 4, 4, 4, 4,
+- 4, 4, 2, 4, 5, 6, 3, 4, 3, 4,
+- 3, 4, 1, 2, 1, 2, 1, 1, 2, 2,
+- 2, 2, 0, 2, 2, 0, 2, 0, 2, 13,
+- 11, 11, 10, 9, 0, 2, 2, 2, 0, 2,
+- 4, 2, 0, 2, 0, 1, 1, 1, 1, 1,
+- 1, 0, 3, 2, 2, 2, 2, 3, 3, 2,
+- 2, 2, 2, 2, 4, 2, 2, 2, 2, 2,
+- 2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
+- 3, 1, 1, 2, 2, 2, 1, 2, 2, 2,
+- 2, 2, 0, 2, 2, 0, 2, 0, 2, 1,
+- 1, 1, 1, 3, 3, 2, 2, 2, 0, 2,
+- 2, 1, 3, 4, 4, 4, 4, 4, 4, 4,
+- 4, 4, 4, 7, 6, 6, 9, 0, 2, 0,
+- 3, 0, 3, 0, 3, 0, 2, 7, 7, 0,
+- 3, 1, 1, 3, 6, 7, 1, 2, 2, 1,
+- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+- 1, 1, 1, 0, 4, 1, 2, 1, 1, 1,
+- 1, 3, 2, 2, 2, 2, 2, 2, 2, 1,
+- 2, 1, 8, 6, 6, 1, 2, 1, 1, 1,
+- 1, 6, 1, 2, 1, 1, 1, 1, 4, 4,
+- 4, 1, 1, 1, 4, 4, 4, 4, 4, 4,
+- 3, 3, 1, 1, 1, 1, 1, 9, 6, 0,
+- 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
+- 1, 2, 3, 1, 1, 1, 1, 1, 1, 0,
+- 2, 3, 0, 2, 3, 0, 6, 6, 6, 8,
+- 10, 7, 0, 1, 1, 8, 9, 9, 9, 6,
+- 0, 1, 1, 1, 1, 8, 7, 7, 4, 4,
+- 0, 1, 9, 6, 8, 8, 8, 8, 8, 8,
+- 2, 0, 2, 3
+-};
++#define YYRECOVERING() (!!yyerrstatus)
+
++#define YYBACKUP(Token, Value) \
++do \
++ if (yychar == YYEMPTY && yylen == 1) \
++ { \
++ yychar = (Token); \
++ yylval = (Value); \
++ YYPOPSTACK (1); \
++ goto yybackup; \
++ } \
++ else \
++ { \
++ yyerror (YY_("syntax error: cannot back up")); \
++ YYERROR; \
++ } \
++while (YYID (0))
++
++
++#define YYTERROR 1
++#define YYERRCODE 256
++
++
++/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
++ If N is 0, then set CURRENT to the empty location which ends
++ the previous symbol: RHS[0] (always defined). */
++
++#define YYRHSLOC(Rhs, K) ((Rhs)[K])
++#ifndef YYLLOC_DEFAULT
++# define YYLLOC_DEFAULT(Current, Rhs, N) \
++ do \
++ if (YYID (N)) \
++ { \
++ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
++ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
++ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
++ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
++ } \
++ else \
++ { \
++ (Current).first_line = (Current).last_line = \
++ YYRHSLOC (Rhs, 0).last_line; \
++ (Current).first_column = (Current).last_column = \
++ YYRHSLOC (Rhs, 0).last_column; \
++ } \
++ while (YYID (0))
++#endif
+
+-#define yyerrok (yyerrstatus = 0)
+-#define yyclearin (yychar = YYEMPTY)
+-#define YYEMPTY (-2)
+-#define YYEOF 0
+-
+-#define YYACCEPT goto yyacceptlab
+-#define YYABORT goto yyabortlab
+-#define YYERROR goto yyerrorlab
+
++/* This macro is provided for backward compatibility. */
+
+-#define YYRECOVERING() (!!yyerrstatus)
++#ifndef YY_LOCATION_PRINT
++# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
++#endif
+
+-#define YYBACKUP(Token, Value) \
+-do \
+- if (yychar == YYEMPTY) \
+- { \
+- yychar = (Token); \
+- yylval = (Value); \
+- YYPOPSTACK (yylen); \
+- yystate = *yyssp; \
+- goto yybackup; \
+- } \
+- else \
+- { \
+- yyerror (YY_("syntax error: cannot back up")); \
+- YYERROR; \
+- } \
+-while (0)
+-
+-/* Error token number */
+-#define YYTERROR 1
+-#define YYERRCODE 256
+
++/* YYLEX -- calling `yylex' with the right arguments. */
+
++#ifdef YYLEX_PARAM
++# define YYLEX yylex (YYLEX_PARAM)
++#else
++# define YYLEX yylex ()
++#endif
+
+ /* Enable debugging if requested. */
+ #if YYDEBUG
+@@ -2008,46 +2269,54 @@
+ # define YYFPRINTF fprintf
+ # endif
+
+-# define YYDPRINTF(Args) \
+-do { \
+- if (yydebug) \
+- YYFPRINTF Args; \
+-} while (0)
+-
+-/* This macro is provided for backward compatibility. */
+-#ifndef YY_LOCATION_PRINT
+-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+-#endif
++# define YYDPRINTF(Args) \
++do { \
++ if (yydebug) \
++ YYFPRINTF Args; \
++} while (YYID (0))
++
++# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
++do { \
++ if (yydebug) \
++ { \
++ YYFPRINTF (stderr, "%s ", Title); \
++ yy_symbol_print (stderr, \
++ Type, Value); \
++ YYFPRINTF (stderr, "\n"); \
++ } \
++} while (YYID (0))
+
+
+-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+-do { \
+- if (yydebug) \
+- { \
+- YYFPRINTF (stderr, "%s ", Title); \
+- yy_symbol_print (stderr, \
+- Type, Value); \
+- YYFPRINTF (stderr, "\n"); \
+- } \
+-} while (0)
+-
+-
+-/*----------------------------------------.
+-| Print this symbol's value on YYOUTPUT. |
+-`----------------------------------------*/
++/*--------------------------------.
++| Print this symbol on YYOUTPUT. |
++`--------------------------------*/
+
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_value_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
+ {
+- FILE *yyo = yyoutput;
+- YYUSE (yyo);
+ if (!yyvaluep)
+ return;
+ # ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# else
++ YYUSE (yyoutput);
+ # endif
+- YYUSE (yytype);
++ switch (yytype)
++ {
++ default:
++ break;
++ }
+ }
+
+
+@@ -2055,11 +2324,22 @@
+ | Print this symbol on YYOUTPUT. |
+ `--------------------------------*/
+
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
++#else
++static void
++yy_symbol_print (yyoutput, yytype, yyvaluep)
++ FILE *yyoutput;
++ int yytype;
++ YYSTYPE const * const yyvaluep;
++#endif
+ {
+- YYFPRINTF (yyoutput, "%s %s (",
+- yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
++ if (yytype < YYNTOKENS)
++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++ else
++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+@@ -2070,8 +2350,16 @@
+ | TOP (included). |
+ `------------------------------------------------------------------*/
+
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+ yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
++#else
++static void
++yy_stack_print (yybottom, yytop)
++ yytype_int16 *yybottom;
++ yytype_int16 *yytop;
++#endif
+ {
+ YYFPRINTF (stderr, "Stack now");
+ for (; yybottom <= yytop; yybottom++)
+@@ -2082,42 +2370,49 @@
+ YYFPRINTF (stderr, "\n");
+ }
+
+-# define YY_STACK_PRINT(Bottom, Top) \
+-do { \
+- if (yydebug) \
+- yy_stack_print ((Bottom), (Top)); \
+-} while (0)
++# define YY_STACK_PRINT(Bottom, Top) \
++do { \
++ if (yydebug) \
++ yy_stack_print ((Bottom), (Top)); \
++} while (YYID (0))
+
+
+ /*------------------------------------------------.
+ | Report that the YYRULE is going to be reduced. |
+ `------------------------------------------------*/
+
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++static void
++yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
++#else
+ static void
+-yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
++yy_reduce_print (yyvsp, yyrule)
++ YYSTYPE *yyvsp;
++ int yyrule;
++#endif
+ {
+- unsigned long int yylno = yyrline[yyrule];
+ int yynrhs = yyr2[yyrule];
+ int yyi;
++ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+- yyrule - 1, yylno);
++ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
+- yy_symbol_print (stderr,
+- yystos[yyssp[yyi + 1 - yynrhs]],
+- &(yyvsp[(yyi + 1) - (yynrhs)])
+- );
++ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
++ &(yyvsp[(yyi + 1) - (yynrhs)])
++ );
+ YYFPRINTF (stderr, "\n");
+ }
+ }
+
+-# define YY_REDUCE_PRINT(Rule) \
+-do { \
+- if (yydebug) \
+- yy_reduce_print (yyssp, yyvsp, Rule); \
+-} while (0)
++# define YY_REDUCE_PRINT(Rule) \
++do { \
++ if (yydebug) \
++ yy_reduce_print (yyvsp, Rule); \
++} while (YYID (0))
+
+ /* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+@@ -2131,7 +2426,7 @@
+
+
+ /* YYINITDEPTH -- initial size of the parser's stacks. */
+-#ifndef YYINITDEPTH
++#ifndef YYINITDEPTH
+ # define YYINITDEPTH 200
+ #endif
+
+@@ -2154,8 +2449,15 @@
+ # define yystrlen strlen
+ # else
+ /* Return the length of YYSTR. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static YYSIZE_T
+ yystrlen (const char *yystr)
++#else
++static YYSIZE_T
++yystrlen (yystr)
++ const char *yystr;
++#endif
+ {
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+@@ -2171,8 +2473,16 @@
+ # else
+ /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static char *
+ yystpcpy (char *yydest, const char *yysrc)
++#else
++static char *
++yystpcpy (yydest, yysrc)
++ char *yydest;
++ const char *yysrc;
++#endif
+ {
+ char *yyd = yydest;
+ const char *yys = yysrc;
+@@ -2202,27 +2512,27 @@
+ char const *yyp = yystr;
+
+ for (;;)
+- switch (*++yyp)
+- {
+- case '\'':
+- case ',':
+- goto do_not_strip_quotes;
+-
+- case '\\':
+- if (*++yyp != '\\')
+- goto do_not_strip_quotes;
+- /* Fall through. */
+- default:
+- if (yyres)
+- yyres[yyn] = *yyp;
+- yyn++;
+- break;
+-
+- case '"':
+- if (yyres)
+- yyres[yyn] = '\0';
+- return yyn;
+- }
++ switch (*++yyp)
++ {
++ case '\'':
++ case ',':
++ goto do_not_strip_quotes;
++
++ case '\\':
++ if (*++yyp != '\\')
++ goto do_not_strip_quotes;
++ /* Fall through. */
++ default:
++ if (yyres)
++ yyres[yyn] = *yyp;
++ yyn++;
++ break;
++
++ case '"':
++ if (yyres)
++ yyres[yyn] = '\0';
++ return yyn;
++ }
+ do_not_strip_quotes: ;
+ }
+
+@@ -2245,11 +2555,12 @@
+ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+ {
+- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
++ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
++ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+- const char *yyformat = YY_NULLPTR;
++ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+@@ -2257,6 +2568,10 @@
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
++ - Assume YYFAIL is not used. It's too flawed to consider. See
++ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
++ for details. YYERROR is fine as it does not invoke this
++ function.
+ - If this state is a consistent state with a default action, then
+ the only way this function was invoked is if the default action
+ is an error action. In that case, don't check for expected
+@@ -2305,13 +2620,11 @@
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+- {
+- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+- if (! (yysize <= yysize1
+- && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+- return 2;
+- yysize = yysize1;
+- }
++ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
++ if (! (yysize <= yysize1
++ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
++ return 2;
++ yysize = yysize1;
+ }
+ }
+ }
+@@ -2331,12 +2644,10 @@
+ # undef YYCASE_
+ }
+
+- {
+- YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
+- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+- return 2;
+- yysize = yysize1;
+- }
++ yysize1 = yysize + yystrlen (yyformat);
++ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
++ return 2;
++ yysize = yysize1;
+
+ if (*yymsg_alloc < yysize)
+ {
+@@ -2373,20 +2684,48 @@
+ | Release the memory associated to this symbol. |
+ `-----------------------------------------------*/
+
++/*ARGSUSED*/
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ static void
+ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yydestruct (yymsg, yytype, yyvaluep)
++ const char *yymsg;
++ int yytype;
++ YYSTYPE *yyvaluep;
++#endif
+ {
+ YYUSE (yyvaluep);
++
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+- YYUSE (yytype);
+- YY_IGNORE_MAYBE_UNINITIALIZED_END
++ switch (yytype)
++ {
++
++ default:
++ break;
++ }
+ }
+
+
++/* Prevent warnings from -Wmissing-prototypes. */
++#ifdef YYPARSE_PARAM
++#if defined __STDC__ || defined __cplusplus
++int yyparse (void *YYPARSE_PARAM);
++#else
++int yyparse ();
++#endif
++#else /* ! YYPARSE_PARAM */
++#if defined __STDC__ || defined __cplusplus
++int yyparse (void);
++#else
++int yyparse ();
++#endif
++#endif /* ! YYPARSE_PARAM */
+
+
+ /* The lookahead symbol. */
+@@ -2394,6 +2733,7 @@
+
+ /* The semantic value of the lookahead symbol. */
+ YYSTYPE yylval;
++
+ /* Number of syntax errors so far. */
+ int yynerrs;
+
+@@ -2402,18 +2742,37 @@
+ | yyparse. |
+ `----------*/
+
++#ifdef YYPARSE_PARAM
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
++int
++yyparse (void *YYPARSE_PARAM)
++#else
++int
++yyparse (YYPARSE_PARAM)
++ void *YYPARSE_PARAM;
++#endif
++#else /* ! YYPARSE_PARAM */
++#if (defined __STDC__ || defined __C99__FUNC__ \
++ || defined __cplusplus || defined _MSC_VER)
+ int
+ yyparse (void)
++#else
++int
++yyparse ()
++
++#endif
++#endif
+ {
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+
+ /* The stacks and their tools:
+- 'yyss': related to states.
+- 'yyvs': related to semantic values.
++ `yyss': related to states.
++ `yyvs': related to semantic values.
+
+- Refer to the stacks through separate pointers, to allow yyoverflow
++ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+@@ -2431,7 +2790,7 @@
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+- int yytoken = 0;
++ int yytoken;
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+@@ -2449,8 +2808,9 @@
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+- yyssp = yyss = yyssa;
+- yyvsp = yyvs = yyvsa;
++ yytoken = 0;
++ yyss = yyssa;
++ yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+@@ -2459,6 +2819,14 @@
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
++
++ /* Initialize stack pointers.
++ Waste one element of value and location stack
++ so that they stay on the same level as the state stack.
++ The wasted elements are never initialized. */
++ yyssp = yyss;
++ yyvsp = yyvs;
++
+ goto yysetstate;
+
+ /*------------------------------------------------------------.
+@@ -2479,23 +2847,23 @@
+
+ #ifdef yyoverflow
+ {
+- /* Give user a chance to reallocate the stack. Use copies of
+- these so that the &'s don't force the real ones into
+- memory. */
+- YYSTYPE *yyvs1 = yyvs;
+- yytype_int16 *yyss1 = yyss;
+-
+- /* Each stack pointer address is followed by the size of the
+- data in use in that stack, in bytes. This used to be a
+- conditional around just the two extra args, but that might
+- be undefined if yyoverflow is a macro. */
+- yyoverflow (YY_("memory exhausted"),
+- &yyss1, yysize * sizeof (*yyssp),
+- &yyvs1, yysize * sizeof (*yyvsp),
+- &yystacksize);
++ /* Give user a chance to reallocate the stack. Use copies of
++ these so that the &'s don't force the real ones into
++ memory. */
++ YYSTYPE *yyvs1 = yyvs;
++ yytype_int16 *yyss1 = yyss;
++
++ /* Each stack pointer address is followed by the size of the
++ data in use in that stack, in bytes. This used to be a
++ conditional around just the two extra args, but that might
++ be undefined if yyoverflow is a macro. */
++ yyoverflow (YY_("memory exhausted"),
++ &yyss1, yysize * sizeof (*yyssp),
++ &yyvs1, yysize * sizeof (*yyvsp),
++ &yystacksize);
+
+- yyss = yyss1;
+- yyvs = yyvs1;
++ yyss = yyss1;
++ yyvs = yyvs1;
+ }
+ #else /* no yyoverflow */
+ # ifndef YYSTACK_RELOCATE
+@@ -2503,22 +2871,22 @@
+ # else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+- goto yyexhaustedlab;
++ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+- yystacksize = YYMAXDEPTH;
++ yystacksize = YYMAXDEPTH;
+
+ {
+- yytype_int16 *yyss1 = yyss;
+- union yyalloc *yyptr =
+- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+- if (! yyptr)
+- goto yyexhaustedlab;
+- YYSTACK_RELOCATE (yyss_alloc, yyss);
+- YYSTACK_RELOCATE (yyvs_alloc, yyvs);
++ yytype_int16 *yyss1 = yyss;
++ union yyalloc *yyptr =
++ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
++ if (! yyptr)
++ goto yyexhaustedlab;
++ YYSTACK_RELOCATE (yyss_alloc, yyss);
++ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+ # undef YYSTACK_RELOCATE
+- if (yyss1 != yyssa)
+- YYSTACK_FREE (yyss1);
++ if (yyss1 != yyssa)
++ YYSTACK_FREE (yyss1);
+ }
+ # endif
+ #endif /* no yyoverflow */
+@@ -2527,10 +2895,10 @@
+ yyvsp = yyvs + yysize - 1;
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+- (unsigned long int) yystacksize));
++ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+- YYABORT;
++ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+@@ -2559,7 +2927,7 @@
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+- yychar = yylex ();
++ yychar = YYLEX;
+ }
+
+ if (yychar <= YYEOF)
+@@ -2599,9 +2967,7 @@
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
+- YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+ goto yynewstate;
+
+@@ -2624,7 +2990,7 @@
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+- '$$ = $1'.
++ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+@@ -2638,195 +3004,218 @@
+ switch (yyn)
+ {
+ case 155:
+-#line 497 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 497 "src/p.y"
+ {
+ mailset.events = Event_All;
+- addmail((yyvsp[-2].string), &mailset, &Run.maillist);
++ addmail((yyvsp[(2) - (4)].string), &mailset, &Run.maillist);
+ }
+-#line 2646 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 156:
+-#line 501 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 501 "src/p.y"
+ {
+- addmail((yyvsp[-5].string), &mailset, &Run.maillist);
++ addmail((yyvsp[(2) - (7)].string), &mailset, &Run.maillist);
+ }
+-#line 2654 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 157:
+-#line 504 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 504 "src/p.y"
+ {
+ mailset.events = ~mailset.events;
+- addmail((yyvsp[-6].string), &mailset, &Run.maillist);
++ addmail((yyvsp[(2) - (8)].string), &mailset, &Run.maillist);
+ }
+-#line 2663 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 158:
+-#line 510 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 510 "src/p.y"
+ {
+ if (!Run.isdaemon || ihp.daemon) {
+ ihp.daemon = TRUE;
+ Run.isdaemon = TRUE;
+- Run.polltime = (yyvsp[-1].number);
+- Run.startdelay = (yyvsp[0].number);
++ Run.polltime = (yyvsp[(3) - (4)].number);
++ Run.startdelay = (yyvsp[(4) - (4)].number);
+ }
+ }
+-#line 2676 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 159:
+-#line 520 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 520 "src/p.y"
+ { (yyval.number) = START_DELAY; }
+-#line 2682 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 160:
+-#line 521 "src/p.y" /* yacc.c:1646 */
+- { (yyval.number) = (yyvsp[0].number); }
+-#line 2688 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 521 "src/p.y"
++ { (yyval.number) = (yyvsp[(3) - (3)].number); }
+ break;
+
+ case 161:
+-#line 524 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 524 "src/p.y"
+ {
+- Run.expectbuffer = (yyvsp[-1].number) * (yyvsp[0].number);
++ Run.expectbuffer = (yyvsp[(3) - (4)].number) * (yyvsp[(4) - (4)].number);
+ if (Run.expectbuffer > EXPECT_BUFFER_MAX)
+ yyerror("Maximum value for expect buffer is 100 KB");
+ }
+-#line 2698 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 162:
+-#line 531 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 531 "src/p.y"
+ {
+ Run.init = TRUE;
+ }
+-#line 2706 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 163:
+-#line 536 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 536 "src/p.y"
+ {
+ #ifdef OPENSSL_FIPS
+ Run.fipsEnabled = TRUE;
+ #endif
+ }
+-#line 2716 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 164:
+-#line 543 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 543 "src/p.y"
+ {
+ if (!Run.logfile || ihp.logfile) {
+ ihp.logfile = TRUE;
+- setlogfile((yyvsp[0].string));
++ setlogfile((yyvsp[(3) - (3)].string));
+ Run.use_syslog = FALSE;
+ Run.dolog =TRUE;
+ }
+ }
+-#line 2729 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 165:
+-#line 551 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 551 "src/p.y"
+ {
+ setsyslog(NULL);
+ }
+-#line 2737 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 166:
+-#line 554 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 554 "src/p.y"
+ {
+- setsyslog((yyvsp[0].string)); FREE((yyvsp[0].string));
++ setsyslog((yyvsp[(5) - (5)].string)); FREE((yyvsp[(5) - (5)].string));
+ }
+-#line 2745 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 167:
+-#line 559 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 559 "src/p.y"
+ {
+- Run.eventlist_dir = (yyvsp[0].string);
++ Run.eventlist_dir = (yyvsp[(4) - (4)].string);
+ }
+-#line 2753 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 168:
+-#line 562 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 562 "src/p.y"
+ {
+- Run.eventlist_dir = (yyvsp[-2].string);
+- Run.eventlist_slots = (yyvsp[0].number);
++ Run.eventlist_dir = (yyvsp[(4) - (6)].string);
++ Run.eventlist_slots = (yyvsp[(6) - (6)].number);
+ }
+-#line 2762 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 169:
+-#line 566 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 566 "src/p.y"
+ {
+ Run.eventlist_dir = Str_dup(MYEVENTLISTBASE);
+- Run.eventlist_slots = (yyvsp[0].number);
++ Run.eventlist_slots = (yyvsp[(4) - (4)].number);
+ }
+-#line 2771 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 170:
+-#line 572 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 572 "src/p.y"
+ {
+- Run.idfile = (yyvsp[0].string);
++ Run.idfile = (yyvsp[(3) - (3)].string);
+ }
+-#line 2779 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 171:
+-#line 577 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 577 "src/p.y"
+ {
+- Run.statefile = (yyvsp[0].string);
++ Run.statefile = (yyvsp[(3) - (3)].string);
+ }
+-#line 2787 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 172:
+-#line 582 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 582 "src/p.y"
+ {
+ if (!Run.pidfile || ihp.pidfile) {
+ ihp.pidfile = TRUE;
+- setpidfile((yyvsp[0].string));
++ setpidfile((yyvsp[(3) - (3)].string));
+ }
+ }
+-#line 2798 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 176:
+-#line 597 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 597 "src/p.y"
+ {
+- check_hostname(((yyvsp[-3].url))->hostname);
+- addmmonit((yyvsp[-3].url), (yyvsp[-2].number), (yyvsp[-1].number), (yyvsp[0].string));
++ check_hostname(((yyvsp[(1) - (4)].url))->hostname);
++ addmmonit((yyvsp[(1) - (4)].url), (yyvsp[(2) - (4)].number), (yyvsp[(3) - (4)].number), (yyvsp[(4) - (4)].string));
+ }
+-#line 2807 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 178:
+-#line 604 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 604 "src/p.y"
+ {
+ Run.dommonitcredentials = FALSE;
+ }
+-#line 2815 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 179:
+-#line 609 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 609 "src/p.y"
+ {
+- if (((yyvsp[-1].number)) > SMTP_TIMEOUT)
+- Run.mailserver_timeout = (yyvsp[-1].number);
+- Run.mail_hostname = (yyvsp[0].string);
++ if (((yyvsp[(4) - (5)].number)) > SMTP_TIMEOUT)
++ Run.mailserver_timeout = (yyvsp[(4) - (5)].number);
++ Run.mail_hostname = (yyvsp[(5) - (5)].string);
+ }
+-#line 2825 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 180:
+-#line 616 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 616 "src/p.y"
+ {
+ Run.MailFormat.from = mailset.from ? mailset.from : Str_dup(ALERT_FROM);
+ Run.MailFormat.replyto = mailset.replyto ? mailset.replyto : NULL;
+@@ -2834,73 +3223,78 @@
+ Run.MailFormat.message = mailset.message ? mailset.message : Str_dup(ALERT_MESSAGE);
+ reset_mailset();
+ }
+-#line 2837 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 181:
+-#line 625 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 625 "src/p.y"
+ {
+ Run.dohttpd = TRUE;
+- Run.httpdport = (yyvsp[-1].number);
++ Run.httpdport = (yyvsp[(4) - (5)].number);
+ }
+-#line 2846 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 184:
+-#line 635 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 635 "src/p.y"
+ {
+ /* Restore the current text overriden by lookahead */
+ FREE(argyytext);
+- argyytext = Str_dup((yyvsp[-4].string));
++ argyytext = Str_dup((yyvsp[(1) - (5)].string));
+
+- check_hostname((yyvsp[-4].string));
+- mailserverset.host = (yyvsp[-4].string);
+- mailserverset.username = (yyvsp[-3].string);
+- mailserverset.password = (yyvsp[-2].string);
+- mailserverset.ssl.version = (yyvsp[-1].number);
++ check_hostname((yyvsp[(1) - (5)].string));
++ mailserverset.host = (yyvsp[(1) - (5)].string);
++ mailserverset.username = (yyvsp[(2) - (5)].string);
++ mailserverset.password = (yyvsp[(3) - (5)].string);
++ mailserverset.ssl.version = (yyvsp[(4) - (5)].number);
+ if (mailserverset.ssl.version != SSL_VERSION_NONE) {
+ mailserverset.ssl.use_ssl = TRUE;
+ if (mailserverset.ssl.version == SSL_VERSION_SSLV2 || mailserverset.ssl.version == SSL_VERSION_SSLV3)
+ mailserverset.port = PORT_SMTPS;
+- mailserverset.ssl.certmd5 = (yyvsp[0].string);
++ mailserverset.ssl.certmd5 = (yyvsp[(5) - (5)].string);
+ }
+ addmailserver(&mailserverset);
+ }
+-#line 2869 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 185:
+-#line 653 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 653 "src/p.y"
+ {
+ /* Restore the current text overriden by lookahead */
+ FREE(argyytext);
+- argyytext = Str_dup((yyvsp[-6].string));
++ argyytext = Str_dup((yyvsp[(1) - (7)].string));
+
+- check_hostname((yyvsp[-6].string));
+- mailserverset.host = (yyvsp[-6].string);
+- mailserverset.port = (yyvsp[-4].number);
+- mailserverset.username = (yyvsp[-3].string);
+- mailserverset.password = (yyvsp[-2].string);
+- mailserverset.ssl.version = (yyvsp[-1].number);
++ check_hostname((yyvsp[(1) - (7)].string));
++ mailserverset.host = (yyvsp[(1) - (7)].string);
++ mailserverset.port = (yyvsp[(3) - (7)].number);
++ mailserverset.username = (yyvsp[(4) - (7)].string);
++ mailserverset.password = (yyvsp[(5) - (7)].string);
++ mailserverset.ssl.version = (yyvsp[(6) - (7)].number);
+ if (mailserverset.ssl.version != SSL_VERSION_NONE) {
+ mailserverset.ssl.use_ssl = TRUE;
+- mailserverset.ssl.certmd5 = (yyvsp[0].string);
++ mailserverset.ssl.certmd5 = (yyvsp[(7) - (7)].string);
+ }
+ addmailserver(&mailserverset);
+ }
+-#line 2891 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 192:
+-#line 682 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 682 "src/p.y"
+ {
+ Run.httpdssl = FALSE;
+ }
+-#line 2899 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 193:
+-#line 685 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 685 "src/p.y"
+ {
+ Run.httpdssl = TRUE;
+ if (! have_ssl())
+@@ -2910,2303 +3304,2585 @@
+ else if (! file_checkStat(Run.httpsslpem, "SSL server PEM file", S_IRWXU))
+ yyerror("SSL server PEM file permissions check failed");
+ }
+-#line 2913 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 203:
+-#line 713 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 713 "src/p.y"
+ { Run.httpdsig = TRUE; }
+-#line 2919 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 204:
+-#line 714 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 714 "src/p.y"
+ { Run.httpdsig = FALSE; }
+-#line 2925 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 209:
+-#line 725 "src/p.y" /* yacc.c:1646 */
+- { Run.bind_addr = (yyvsp[0].string); }
+-#line 2931 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 725 "src/p.y"
++ { Run.bind_addr = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 210:
+-#line 728 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 728 "src/p.y"
+ {
+- Run.httpsslpem = (yyvsp[0].string);
++ Run.httpsslpem = (yyvsp[(2) - (2)].string);
+ }
+-#line 2939 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 211:
+-#line 733 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 733 "src/p.y"
+ {
+- Run.httpsslclientpem = (yyvsp[0].string);
++ Run.httpsslclientpem = (yyvsp[(2) - (2)].string);
+ Run.clientssl = TRUE;
+ if (!file_checkStat(Run.httpsslclientpem, "SSL client PEM file", S_IRWXU | S_IRGRP | S_IROTH))
+ yyerror2("SSL client PEM file has too loose permissions");
+ }
+-#line 2950 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 212:
+-#line 741 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 741 "src/p.y"
+ {
+ Run.allowselfcert = TRUE;
+ }
+-#line 2958 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 213:
+-#line 746 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 746 "src/p.y"
+ {
+- addcredentials((yyvsp[-3].string),(yyvsp[-1].string), DIGEST_CLEARTEXT, (yyvsp[0].number));
++ addcredentials((yyvsp[(2) - (5)].string),(yyvsp[(4) - (5)].string), DIGEST_CLEARTEXT, (yyvsp[(5) - (5)].number));
+ }
+-#line 2966 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 214:
+-#line 749 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 749 "src/p.y"
+ {
+ #ifdef HAVE_LIBPAM
+- addpamauth((yyvsp[-1].string), (yyvsp[0].number));
++ addpamauth((yyvsp[(3) - (4)].string), (yyvsp[(4) - (4)].number));
+ #else
+ yyerror("PAM is not supported");
+- FREE((yyvsp[-1].string));
++ FREE((yyvsp[(3) - (4)].string));
+ #endif
+ }
+-#line 2979 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 215:
+-#line 757 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 757 "src/p.y"
+ {
+- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_CLEARTEXT);
+- FREE((yyvsp[0].string));
++ addhtpasswdentry((yyvsp[(2) - (2)].string), NULL, DIGEST_CLEARTEXT);
++ FREE((yyvsp[(2) - (2)].string));
+ }
+-#line 2988 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 216:
+-#line 761 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 761 "src/p.y"
+ {
+- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_CLEARTEXT);
+- FREE((yyvsp[0].string));
++ addhtpasswdentry((yyvsp[(3) - (3)].string), NULL, DIGEST_CLEARTEXT);
++ FREE((yyvsp[(3) - (3)].string));
+ }
+-#line 2997 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 217:
+-#line 765 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 765 "src/p.y"
+ {
+- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_MD5);
+- FREE((yyvsp[0].string));
++ addhtpasswdentry((yyvsp[(3) - (3)].string), NULL, DIGEST_MD5);
++ FREE((yyvsp[(3) - (3)].string));
+ }
+-#line 3006 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 218:
+-#line 769 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 769 "src/p.y"
+ {
+- addhtpasswdentry((yyvsp[0].string), NULL, DIGEST_CRYPT);
+- FREE((yyvsp[0].string));
++ addhtpasswdentry((yyvsp[(3) - (3)].string), NULL, DIGEST_CRYPT);
++ FREE((yyvsp[(3) - (3)].string));
+ }
+-#line 3015 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 219:
+-#line 773 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 773 "src/p.y"
+ {
+- htpasswd_file = (yyvsp[0].string);
++ htpasswd_file = (yyvsp[(2) - (2)].string);
+ digesttype = CLEARTEXT;
+ }
+-#line 3024 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 220:
+-#line 777 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 777 "src/p.y"
+ {
+ FREE(htpasswd_file);
+ }
+-#line 3032 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 221:
+-#line 780 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 780 "src/p.y"
+ {
+- htpasswd_file = (yyvsp[0].string);
++ htpasswd_file = (yyvsp[(3) - (3)].string);
+ digesttype = DIGEST_CLEARTEXT;
+ }
+-#line 3041 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 222:
+-#line 784 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 784 "src/p.y"
+ {
+ FREE(htpasswd_file);
+ }
+-#line 3049 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 223:
+-#line 787 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 787 "src/p.y"
+ {
+- htpasswd_file = (yyvsp[0].string);
++ htpasswd_file = (yyvsp[(3) - (3)].string);
+ digesttype = DIGEST_MD5;
+ }
+-#line 3058 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 224:
+-#line 791 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 791 "src/p.y"
+ {
+ FREE(htpasswd_file);
+ }
+-#line 3066 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 225:
+-#line 794 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 794 "src/p.y"
+ {
+- htpasswd_file = (yyvsp[0].string);
++ htpasswd_file = (yyvsp[(3) - (3)].string);
+ digesttype = DIGEST_CRYPT;
+ }
+-#line 3075 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 226:
+-#line 798 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 798 "src/p.y"
+ {
+ FREE(htpasswd_file);
+ }
+-#line 3083 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 227:
+-#line 801 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 801 "src/p.y"
+ {
+- if (! (add_net_allow((yyvsp[0].string)) || add_host_allow((yyvsp[0].string)))) {
+- yyerror2("Erroneous network or host identifier %s", (yyvsp[0].string));
++ if (! (add_net_allow((yyvsp[(2) - (2)].string)) || add_host_allow((yyvsp[(2) - (2)].string)))) {
++ yyerror2("Erroneous network or host identifier %s", (yyvsp[(2) - (2)].string));
+ }
+- FREE((yyvsp[0].string));
++ FREE((yyvsp[(2) - (2)].string));
+ }
+-#line 3094 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 230:
+-#line 813 "src/p.y" /* yacc.c:1646 */
+- { addhtpasswdentry(htpasswd_file, (yyvsp[0].string), digesttype);
+- FREE((yyvsp[0].string)); }
+-#line 3101 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 813 "src/p.y"
++ { addhtpasswdentry(htpasswd_file, (yyvsp[(1) - (1)].string), digesttype);
++ FREE((yyvsp[(1) - (1)].string)); }
+ break;
+
+ case 231:
+-#line 817 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 817 "src/p.y"
+ { (yyval.number) = FALSE; }
+-#line 3107 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 232:
+-#line 818 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 818 "src/p.y"
+ { (yyval.number) = TRUE; }
+-#line 3113 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 233:
+-#line 821 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 821 "src/p.y"
+ {
+- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process);
++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process);
+ }
+-#line 3121 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 234:
+-#line 824 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 824 "src/p.y"
+ {
+- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process);
++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process);
+ }
+-#line 3129 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 235:
+-#line 827 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 827 "src/p.y"
+ {
+- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process);
++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process);
+ matchset.ignore = FALSE;
+ matchset.match_path = NULL;
+- matchset.match_string = Str_dup((yyvsp[0].string));
++ matchset.match_string = Str_dup((yyvsp[(4) - (4)].string));
+ addmatch(&matchset, ACTION_IGNORE, 0);
+ }
+-#line 3141 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 236:
+-#line 834 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 834 "src/p.y"
+ {
+- createservice(TYPE_PROCESS, (yyvsp[-2].string), (yyvsp[0].string), check_process);
++ createservice(TYPE_PROCESS, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_process);
+ matchset.ignore = FALSE;
+ matchset.match_path = NULL;
+- matchset.match_string = Str_dup((yyvsp[0].string));
++ matchset.match_string = Str_dup((yyvsp[(4) - (4)].string));
+ addmatch(&matchset, ACTION_IGNORE, 0);
+ }
+-#line 3153 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 237:
+-#line 843 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 843 "src/p.y"
+ {
+- createservice(TYPE_FILE, (yyvsp[-2].string), (yyvsp[0].string), check_file);
++ createservice(TYPE_FILE, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_file);
+ }
+-#line 3161 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 238:
+-#line 848 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 848 "src/p.y"
+ {
+- createservice(TYPE_FILESYSTEM, (yyvsp[-2].string), (yyvsp[0].string), check_filesystem);
++ createservice(TYPE_FILESYSTEM, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_filesystem);
+ }
+-#line 3169 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 239:
+-#line 851 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 851 "src/p.y"
+ {
+- createservice(TYPE_FILESYSTEM, (yyvsp[-2].string), (yyvsp[0].string), check_filesystem);
++ createservice(TYPE_FILESYSTEM, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_filesystem);
+ }
+-#line 3177 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 240:
+-#line 856 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 856 "src/p.y"
+ {
+- createservice(TYPE_DIRECTORY, (yyvsp[-2].string), (yyvsp[0].string), check_directory);
++ createservice(TYPE_DIRECTORY, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_directory);
+ }
+-#line 3185 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 241:
+-#line 861 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 861 "src/p.y"
+ {
+- check_hostname((yyvsp[0].string));
+- createservice(TYPE_HOST, (yyvsp[-2].string), (yyvsp[0].string), check_remote_host);
++ check_hostname((yyvsp[(4) - (4)].string));
++ createservice(TYPE_HOST, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_remote_host);
+ }
+-#line 3194 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 242:
+-#line 867 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 867 "src/p.y"
+ {
+ char hostname[STRLEN];
+ if (Util_getfqdnhostname(hostname, sizeof(hostname))) {
+ LogError("Cannot get system hostname\n");
+ cfg_errflag++;
+ }
+- char *servicename = (yyvsp[0].string);
++ char *servicename = (yyvsp[(2) - (2)].string);
+ Util_replaceString(&servicename, "$HOST", hostname);
+ Run.system = createservice(TYPE_SYSTEM, servicename, Str_dup(""), check_system); // The name given in the 'check system' statement overrides system hostname
+ }
+-#line 3209 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 243:
+-#line 879 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 879 "src/p.y"
+ {
+- createservice(TYPE_FIFO, (yyvsp[-2].string), (yyvsp[0].string), check_fifo);
++ createservice(TYPE_FIFO, (yyvsp[(2) - (4)].string), (yyvsp[(4) - (4)].string), check_fifo);
+ }
+-#line 3217 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 244:
+-#line 884 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 884 "src/p.y"
+ {
+ command_t c = command; // Current command
+ check_exec(c->arg[0]);
+- createservice(TYPE_PROGRAM, (yyvsp[-3].string), Str_dup(c->arg[0]), check_program);
+- current->program->timeout = (yyvsp[0].number);
++ createservice(TYPE_PROGRAM, (yyvsp[(2) - (5)].string), Str_dup(c->arg[0]), check_program);
++ current->program->timeout = (yyvsp[(5) - (5)].number);
+ current->program->output = StringBuffer_create(64);
+ }
+-#line 3229 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 245:
+-#line 891 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 891 "src/p.y"
+ {
+ command_t c = command; // Current command
+ check_exec(c->arg[0]);
+- createservice(TYPE_PROGRAM, (yyvsp[-4].string), Str_dup(c->arg[0]), check_program);
+- current->program->timeout = (yyvsp[-1].number);
++ createservice(TYPE_PROGRAM, (yyvsp[(2) - (6)].string), Str_dup(c->arg[0]), check_program);
++ current->program->timeout = (yyvsp[(5) - (6)].number);
+ current->program->output = StringBuffer_create(64);
+ }
+-#line 3241 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 246:
+-#line 900 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 900 "src/p.y"
+ {
+- addcommand(START, (yyvsp[0].number));
++ addcommand(START, (yyvsp[(3) - (3)].number));
+ }
+-#line 3249 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 247:
+-#line 903 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 903 "src/p.y"
+ {
+- addcommand(START, (yyvsp[0].number));
++ addcommand(START, (yyvsp[(4) - (4)].number));
+ }
+-#line 3257 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 248:
+-#line 908 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 908 "src/p.y"
+ {
+- addcommand(STOP, (yyvsp[0].number));
++ addcommand(STOP, (yyvsp[(3) - (3)].number));
+ }
+-#line 3265 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 249:
+-#line 911 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 911 "src/p.y"
+ {
+- addcommand(STOP, (yyvsp[0].number));
++ addcommand(STOP, (yyvsp[(4) - (4)].number));
+ }
+-#line 3273 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 250:
+-#line 917 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 917 "src/p.y"
+ {
+- addcommand(RESTART, (yyvsp[0].number));
++ addcommand(RESTART, (yyvsp[(3) - (3)].number));
+ }
+-#line 3281 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 251:
+-#line 920 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 920 "src/p.y"
+ {
+- addcommand(RESTART, (yyvsp[0].number));
++ addcommand(RESTART, (yyvsp[(4) - (4)].number));
+ }
+-#line 3289 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 256:
+-#line 933 "src/p.y" /* yacc.c:1646 */
+- { addargument((yyvsp[0].string)); }
+-#line 3295 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 933 "src/p.y"
++ { addargument((yyvsp[(1) - (1)].string)); }
+ break;
+
+ case 257:
+-#line 934 "src/p.y" /* yacc.c:1646 */
+- { addargument((yyvsp[0].string)); }
+-#line 3301 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 934 "src/p.y"
++ { addargument((yyvsp[(1) - (1)].string)); }
+ break;
+
+ case 258:
+-#line 937 "src/p.y" /* yacc.c:1646 */
+- { addeuid( get_uid((yyvsp[0].string), 0) ); FREE((yyvsp[0].string)); }
+-#line 3307 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 937 "src/p.y"
++ { addeuid( get_uid((yyvsp[(2) - (2)].string), 0) ); FREE((yyvsp[(2) - (2)].string)); }
+ break;
+
+ case 259:
+-#line 938 "src/p.y" /* yacc.c:1646 */
+- { addegid( get_gid((yyvsp[0].string), 0) ); FREE((yyvsp[0].string)); }
+-#line 3313 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 938 "src/p.y"
++ { addegid( get_gid((yyvsp[(2) - (2)].string), 0) ); FREE((yyvsp[(2) - (2)].string)); }
+ break;
+
+ case 260:
+-#line 939 "src/p.y" /* yacc.c:1646 */
+- { addeuid( get_uid(NULL, (yyvsp[0].number)) ); }
+-#line 3319 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 939 "src/p.y"
++ { addeuid( get_uid(NULL, (yyvsp[(2) - (2)].number)) ); }
+ break;
+
+ case 261:
+-#line 940 "src/p.y" /* yacc.c:1646 */
+- { addegid( get_gid(NULL, (yyvsp[0].number)) ); }
+-#line 3325 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 940 "src/p.y"
++ { addegid( get_gid(NULL, (yyvsp[(2) - (2)].number)) ); }
+ break;
+
+ case 262:
+-#line 943 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 943 "src/p.y"
+ { (yyval.string) = NULL; }
+-#line 3331 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 263:
+-#line 944 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 3337 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 944 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 264:
+-#line 945 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 3343 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 945 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 265:
+-#line 948 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 948 "src/p.y"
+ { (yyval.string) = NULL; }
+-#line 3349 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 266:
+-#line 949 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 3355 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 949 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 267:
+-#line 952 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 952 "src/p.y"
+ { (yyval.string) = NULL; }
+-#line 3361 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 268:
+-#line 953 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 3367 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 953 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 269:
+-#line 957 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 957 "src/p.y"
+ {
+- portset.timeout = (yyvsp[-5].number);
+- portset.retry = (yyvsp[-4].number);
++ portset.timeout = (yyvsp[(8) - (13)].number);
++ portset.retry = (yyvsp[(9) - (13)].number);
+ /* This is a workaround to support content match without having to create
+ an URL object. 'urloption' creates the Request_T object we need minus the
+ URL object, but with enough information to perform content test.
+ TODO: Parser is in need of refactoring */
+ portset.url_request = urlrequest;
+- addeventaction(&(portset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ addeventaction(&(portset).action, (yyvsp[(12) - (13)].number), (yyvsp[(13) - (13)].number));
+ addport(&portset);
+ }
+-#line 3383 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 270:
+-#line 969 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 969 "src/p.y"
+ {
+- prepare_urlrequest((yyvsp[-7].url));
+- portset.timeout = (yyvsp[-5].number);
+- portset.retry = (yyvsp[-4].number);
+- addeventaction(&(portset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ prepare_urlrequest((yyvsp[(4) - (11)].url));
++ portset.timeout = (yyvsp[(6) - (11)].number);
++ portset.retry = (yyvsp[(7) - (11)].number);
++ addeventaction(&(portset).action, (yyvsp[(10) - (11)].number), (yyvsp[(11) - (11)].number));
+ addport(&portset);
+ }
+-#line 3395 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 271:
+-#line 979 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 979 "src/p.y"
+ {
+- portset.timeout = (yyvsp[-5].number);
+- portset.retry = (yyvsp[-4].number);
+- addeventaction(&(portset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ portset.timeout = (yyvsp[(6) - (11)].number);
++ portset.retry = (yyvsp[(7) - (11)].number);
++ addeventaction(&(portset).action, (yyvsp[(10) - (11)].number), (yyvsp[(11) - (11)].number));
+ addport(&portset);
+ }
+-#line 3406 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 272:
+-#line 987 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 987 "src/p.y"
+ {
+- icmpset.type = (yyvsp[-6].number);
+- icmpset.count = (yyvsp[-5].number);
+- icmpset.timeout = (yyvsp[-4].number);
+- addeventaction(&(icmpset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ icmpset.type = (yyvsp[(4) - (10)].number);
++ icmpset.count = (yyvsp[(5) - (10)].number);
++ icmpset.timeout = (yyvsp[(6) - (10)].number);
++ addeventaction(&(icmpset).action, (yyvsp[(9) - (10)].number), (yyvsp[(10) - (10)].number));
+ addicmp(&icmpset);
+ }
+-#line 3418 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 273:
+-#line 994 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 994 "src/p.y"
+ {
+ icmpset.type = ICMP_ECHO;
+- icmpset.count = (yyvsp[-5].number);
+- icmpset.timeout = (yyvsp[-4].number);
+- addeventaction(&(icmpset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ icmpset.count = (yyvsp[(4) - (9)].number);
++ icmpset.timeout = (yyvsp[(5) - (9)].number);
++ addeventaction(&(icmpset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ addicmp(&icmpset);
+ }
+-#line 3430 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 274:
+-#line 1003 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1003 "src/p.y"
+ {
+ if (current->type == TYPE_HOST)
+ portset.hostname = Str_dup(current->path);
+ else
+ portset.hostname = Str_dup(LOCALHOST);
+ }
+-#line 3441 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 275:
+-#line 1009 "src/p.y" /* yacc.c:1646 */
+- { check_hostname((yyvsp[0].string)); portset.hostname = (yyvsp[0].string); }
+-#line 3447 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1009 "src/p.y"
++ { check_hostname((yyvsp[(2) - (2)].string)); portset.hostname = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 276:
+-#line 1012 "src/p.y" /* yacc.c:1646 */
+- { portset.port = (yyvsp[0].number); portset.family = AF_INET; }
+-#line 3453 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1012 "src/p.y"
++ { portset.port = (yyvsp[(2) - (2)].number); portset.family = AF_INET; }
+ break;
+
+ case 277:
+-#line 1015 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1015 "src/p.y"
+ {
+- portset.pathname = (yyvsp[0].string); portset.family = AF_UNIX;
++ portset.pathname = (yyvsp[(2) - (2)].string); portset.family = AF_UNIX;
+ }
+-#line 3461 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 278:
+-#line 1020 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1020 "src/p.y"
+ {
+ portset.type = SOCK_STREAM;
+ }
+-#line 3469 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 279:
+-#line 1023 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1023 "src/p.y"
+ {
+ portset.type = SOCK_STREAM;
+ }
+-#line 3477 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 280:
+-#line 1026 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1026 "src/p.y"
+ {
+ portset.type = SOCK_STREAM;
+ portset.SSL.use_ssl = TRUE;
+- portset.SSL.version = (yyvsp[-1].number);
++ portset.SSL.version = (yyvsp[(3) - (4)].number);
+ if (portset.SSL.version == SSL_VERSION_NONE)
+ portset.SSL.version = SSL_VERSION_AUTO;
+- portset.SSL.certmd5 = (yyvsp[0].string);
++ portset.SSL.certmd5 = (yyvsp[(4) - (4)].string);
+ }
+-#line 3490 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 281:
+-#line 1034 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1034 "src/p.y"
+ {
+ portset.type = SOCK_DGRAM;
+ }
+-#line 3498 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 282:
+-#line 1039 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1039 "src/p.y"
+ { (yyval.string) = NULL; }
+-#line 3504 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 283:
+-#line 1040 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 3510 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1040 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 284:
+-#line 1043 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1043 "src/p.y"
+ { (yyval.number) = SSL_VERSION_NONE; }
+-#line 3516 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 285:
+-#line 1044 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1044 "src/p.y"
+ { (yyval.number) = SSL_VERSION_SSLV2; }
+-#line 3522 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 286:
+-#line 1045 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1045 "src/p.y"
+ { (yyval.number) = SSL_VERSION_SSLV3; }
+-#line 3528 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 287:
+-#line 1046 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1046 "src/p.y"
+ { (yyval.number) = SSL_VERSION_TLSV1; }
+-#line 3534 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 288:
+-#line 1048 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1048 "src/p.y"
+ {
+ #ifndef HAVE_TLSV1_1_CLIENT_METHOD
+ yyerror("Your SSL Library does not support TLS version 1.1");
+ #endif
+ (yyval.number) = SSL_VERSION_TLSV11;
+ }
+-#line 3545 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 289:
+-#line 1055 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1055 "src/p.y"
+ {
+ #ifndef HAVE_TLSV1_1_CLIENT_METHOD
+ yyerror("Your SSL Library does not support TLS version 1.2");
+ #endif
+ (yyval.number) = SSL_VERSION_TLSV12;
+ }
+-#line 3556 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 290:
+-#line 1061 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1061 "src/p.y"
+ { (yyval.number) = SSL_VERSION_AUTO; }
+-#line 3562 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 291:
+-#line 1064 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1064 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_DEFAULT);
+ }
+-#line 3570 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 292:
+-#line 1067 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1067 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_APACHESTATUS);
+ }
+-#line 3578 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 293:
+-#line 1070 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1070 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_DEFAULT);
+ }
+-#line 3586 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 294:
+-#line 1073 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1073 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_DNS);
+ }
+-#line 3594 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 295:
+-#line 1076 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1076 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_DWP);
+ }
+-#line 3602 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 296:
+-#line 1079 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1079 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_FTP);
+ }
+-#line 3610 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 297:
+-#line 1082 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1082 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_HTTP);
+ }
+-#line 3618 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 298:
+-#line 1085 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1085 "src/p.y"
+ {
+ portset.type = SOCK_STREAM;
+ portset.SSL.use_ssl = TRUE;
+ portset.SSL.version = SSL_VERSION_AUTO;
+ portset.protocol = Protocol_get(Protocol_HTTP);
+ }
+-#line 3629 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 299:
+-#line 1091 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1091 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_IMAP);
+ }
+-#line 3637 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 300:
+-#line 1094 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1094 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_CLAMAV);
+ }
+-#line 3645 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 301:
+-#line 1097 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1097 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_LDAP2);
+ }
+-#line 3653 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 302:
+-#line 1100 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1100 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_LDAP3);
+ }
+-#line 3661 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 303:
+-#line 1103 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1103 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_MYSQL);
+ }
+-#line 3669 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 304:
+-#line 1106 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1106 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_SIP);
+ }
+-#line 3677 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 305:
+-#line 1109 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1109 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_NNTP);
+ }
+-#line 3685 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 306:
+-#line 1112 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1112 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_NTP3);
+ portset.type = SOCK_DGRAM;
+ }
+-#line 3694 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 307:
+-#line 1116 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1116 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_POSTFIXPOLICY);
+ }
+-#line 3702 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 308:
+-#line 1119 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1119 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_POP);
+ }
+-#line 3710 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 309:
+-#line 1122 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1122 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_SMTP);
+ }
+-#line 3718 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 310:
+-#line 1125 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1125 "src/p.y"
+ {
+ portset.type = SOCK_STREAM;
+ portset.SSL.use_ssl = TRUE;
+ portset.SSL.version = SSL_VERSION_AUTO;
+ portset.protocol = Protocol_get(Protocol_SMTP);
+ }
+-#line 3729 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 311:
+-#line 1131 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1131 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_SSH);
+ }
+-#line 3737 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 312:
+-#line 1134 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1134 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_RDATE);
+ }
+-#line 3745 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 313:
+-#line 1137 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1137 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_RSYNC);
+ }
+-#line 3753 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 314:
+-#line 1140 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1140 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_TNS);
+ }
+-#line 3761 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 315:
+-#line 1143 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1143 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_PGSQL);
+ }
+-#line 3769 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 316:
+-#line 1146 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1146 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_LMTP);
+ }
+-#line 3777 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 317:
+-#line 1149 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1149 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_GPS);
+ }
+-#line 3785 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 318:
+-#line 1152 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1152 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_RADIUS);
+ }
+-#line 3793 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 319:
+-#line 1155 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1155 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_MEMCACHE);
+ }
+-#line 3801 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 320:
+-#line 1158 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1158 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_WEBSOCKET);
+ }
+-#line 3809 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 321:
+-#line 1161 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1161 "src/p.y"
+ {
+ portset.protocol = Protocol_get(Protocol_GENERIC);
+ }
+-#line 3817 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 324:
+-#line 1170 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1170 "src/p.y"
+ {
+- addgeneric(&portset, (yyvsp[0].string), NULL);
++ addgeneric(&portset, (yyvsp[(2) - (2)].string), NULL);
+ }
+-#line 3825 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 325:
+-#line 1173 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1173 "src/p.y"
+ {
+- addgeneric(&portset, NULL, (yyvsp[0].string));
++ addgeneric(&portset, NULL, (yyvsp[(2) - (2)].string));
+ }
+-#line 3833 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 328:
+-#line 1182 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1182 "src/p.y"
+ {
+- portset.pathname = (yyvsp[0].string);
++ portset.pathname = (yyvsp[(2) - (2)].string);
+ }
+-#line 3841 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 329:
+-#line 1185 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1185 "src/p.y"
+ {
+- portset.request = (yyvsp[0].string);
++ portset.request = (yyvsp[(2) - (2)].string);
+ }
+-#line 3849 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 330:
+-#line 1188 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1188 "src/p.y"
+ {
+- portset.request_hostheader = (yyvsp[0].string);
++ portset.request_hostheader = (yyvsp[(2) - (2)].string);
+ }
+-#line 3857 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 331:
+-#line 1191 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1191 "src/p.y"
+ {
+- portset.version = (yyvsp[0].number);
++ portset.version = (yyvsp[(2) - (2)].number);
+ }
+-#line 3865 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 333:
+-#line 1197 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1197 "src/p.y"
+ {
+- portset.request = (yyvsp[0].string);
++ portset.request = (yyvsp[(2) - (2)].string);
+ }
+-#line 3873 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 334:
+-#line 1200 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1200 "src/p.y"
+ {
+- portset.request = (yyvsp[0].string);
++ portset.request = (yyvsp[(2) - (2)].string);
+ }
+-#line 3881 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 336:
+-#line 1206 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1206 "src/p.y"
+ {
+- portset.maxforward = verifyMaxForward((yyvsp[0].number));
++ portset.maxforward = verifyMaxForward((yyvsp[(2) - (2)].number));
+ }
+-#line 3889 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 344:
+-#line 1222 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1222 "src/p.y"
+ {
+- portset.operator = (yyvsp[-1].number);
+- portset.status = (yyvsp[0].number);
++ portset.operator = (yyvsp[(2) - (3)].number);
++ portset.status = (yyvsp[(3) - (3)].number);
+ }
+-#line 3898 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 345:
+-#line 1228 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1228 "src/p.y"
+ {
+- portset.request = Util_urlEncode((yyvsp[0].string));
+- FREE((yyvsp[0].string));
++ portset.request = Util_urlEncode((yyvsp[(2) - (2)].string));
++ FREE((yyvsp[(2) - (2)].string));
+ }
+-#line 3907 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 346:
+-#line 1234 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1234 "src/p.y"
+ {
+- portset.request_checksum = (yyvsp[0].string);
++ portset.request_checksum = (yyvsp[(2) - (2)].string);
+ }
+-#line 3915 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 347:
+-#line 1239 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1239 "src/p.y"
+ {
+- portset.request_hostheader = (yyvsp[0].string);
++ portset.request_hostheader = (yyvsp[(2) - (2)].string);
+ }
+-#line 3923 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 349:
+-#line 1245 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1245 "src/p.y"
+ {
+ if (! portset.http_headers) {
+ portset.http_headers = List_new();
+ }
+- List_append(portset.http_headers, (yyvsp[0].string));
++ List_append(portset.http_headers, (yyvsp[(2) - (2)].string));
+ }
+-#line 3934 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 350:
+-#line 1253 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1253 "src/p.y"
+ {
+- portset.request = (yyvsp[0].string);
++ portset.request = (yyvsp[(2) - (2)].string);
+ }
+-#line 3942 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 353:
+-#line 1262 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1262 "src/p.y"
+ {
+- portset.ApacheStatus.loglimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.loglimit = (yyvsp[-1].number);
++ portset.ApacheStatus.loglimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.loglimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 3951 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 354:
+-#line 1266 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1266 "src/p.y"
+ {
+- portset.ApacheStatus.closelimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.closelimit = (yyvsp[-1].number);
++ portset.ApacheStatus.closelimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.closelimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 3960 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 355:
+-#line 1270 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1270 "src/p.y"
+ {
+- portset.ApacheStatus.dnslimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.dnslimit = (yyvsp[-1].number);
++ portset.ApacheStatus.dnslimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.dnslimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 3969 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 356:
+-#line 1274 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1274 "src/p.y"
+ {
+- portset.ApacheStatus.keepalivelimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.keepalivelimit = (yyvsp[-1].number);
++ portset.ApacheStatus.keepalivelimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.keepalivelimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 3978 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 357:
+-#line 1278 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1278 "src/p.y"
+ {
+- portset.ApacheStatus.replylimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.replylimit = (yyvsp[-1].number);
++ portset.ApacheStatus.replylimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.replylimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 3987 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 358:
+-#line 1282 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1282 "src/p.y"
+ {
+- portset.ApacheStatus.requestlimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.requestlimit = (yyvsp[-1].number);
++ portset.ApacheStatus.requestlimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.requestlimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 3996 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 359:
+-#line 1286 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1286 "src/p.y"
+ {
+- portset.ApacheStatus.startlimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.startlimit = (yyvsp[-1].number);
++ portset.ApacheStatus.startlimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.startlimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 4005 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 360:
+-#line 1290 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1290 "src/p.y"
+ {
+- portset.ApacheStatus.waitlimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.waitlimit = (yyvsp[-1].number);
++ portset.ApacheStatus.waitlimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.waitlimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 4014 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 361:
+-#line 1294 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1294 "src/p.y"
+ {
+- portset.ApacheStatus.gracefullimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.gracefullimit = (yyvsp[-1].number);
++ portset.ApacheStatus.gracefullimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.gracefullimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 4023 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 362:
+-#line 1298 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1298 "src/p.y"
+ {
+- portset.ApacheStatus.cleanuplimitOP = (yyvsp[-2].number);
+- portset.ApacheStatus.cleanuplimit = (yyvsp[-1].number);
++ portset.ApacheStatus.cleanuplimitOP = (yyvsp[(2) - (4)].number);
++ portset.ApacheStatus.cleanuplimit = (yyvsp[(3) - (4)].number);
+ }
+-#line 4032 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 363:
+-#line 1304 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1304 "src/p.y"
+ {
+- seteventaction(&(current)->action_NONEXIST, (yyvsp[-1].number), (yyvsp[0].number));
++ seteventaction(&(current)->action_NONEXIST, (yyvsp[(6) - (7)].number), (yyvsp[(7) - (7)].number));
+ }
+-#line 4040 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 364:
+-#line 1310 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1310 "src/p.y"
+ {
+- seteventaction(&(current)->action_PID, (yyvsp[0].number), ACTION_IGNORE);
++ seteventaction(&(current)->action_PID, (yyvsp[(6) - (6)].number), ACTION_IGNORE);
+ }
+-#line 4048 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 365:
+-#line 1315 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1315 "src/p.y"
+ {
+- seteventaction(&(current)->action_PPID, (yyvsp[0].number), ACTION_IGNORE);
++ seteventaction(&(current)->action_PPID, (yyvsp[(6) - (6)].number), ACTION_IGNORE);
+ }
+-#line 4056 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 366:
+-#line 1320 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1320 "src/p.y"
+ {
+- uptimeset.operator = (yyvsp[-6].number);
+- uptimeset.uptime = ((unsigned long long)(yyvsp[-5].number) * (yyvsp[-4].number));
+- addeventaction(&(uptimeset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ uptimeset.operator = (yyvsp[(3) - (9)].number);
++ uptimeset.uptime = ((unsigned long long)(yyvsp[(4) - (9)].number) * (yyvsp[(5) - (9)].number));
++ addeventaction(&(uptimeset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ adduptime(&uptimeset);
+ }
+-#line 4067 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 367:
+-#line 1327 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1327 "src/p.y"
+ {
+ (yyval.number) = ICMP_ATTEMPT_COUNT;
+ }
+-#line 4075 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 368:
+-#line 1330 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1330 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
++ (yyval.number) = (yyvsp[(2) - (2)].number);
+ }
+-#line 4083 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 369:
+-#line 1335 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1335 "src/p.y"
+ {
+ (yyval.number) = EXEC_TIMEOUT;
+ }
+-#line 4091 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 370:
+-#line 1338 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1338 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[-1].number);
++ (yyval.number) = (yyvsp[(2) - (3)].number);
+ }
+-#line 4099 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 371:
+-#line 1343 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1343 "src/p.y"
+ {
+ (yyval.number) = PROGRAM_TIMEOUT; // Default program status check timeout is 5 min
+ }
+-#line 4107 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 372:
+-#line 1346 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1346 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[-1].number);
++ (yyval.number) = (yyvsp[(2) - (3)].number);
+ }
+-#line 4115 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 373:
+-#line 1351 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1351 "src/p.y"
+ {
+ (yyval.number) = NET_TIMEOUT; // timeout is in milliseconds
+ }
+-#line 4123 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 374:
+-#line 1354 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1354 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[-1].number) * 1000; // net timeout is in milliseconds internally
++ (yyval.number) = (yyvsp[(2) - (3)].number) * 1000; // net timeout is in milliseconds internally
+ }
+-#line 4131 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 375:
+-#line 1359 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1359 "src/p.y"
+ {
+ (yyval.number) = 1;
+ }
+-#line 4139 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 376:
+-#line 1362 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1362 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
++ (yyval.number) = (yyvsp[(2) - (2)].number);
+ }
+-#line 4147 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 377:
+-#line 1367 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1367 "src/p.y"
+ {
+- actionrateset.count = (yyvsp[-5].number);
+- actionrateset.cycle = (yyvsp[-3].number);
+- addeventaction(&(actionrateset).action, (yyvsp[0].number), ACTION_ALERT);
++ actionrateset.count = (yyvsp[(2) - (7)].number);
++ actionrateset.cycle = (yyvsp[(4) - (7)].number);
++ addeventaction(&(actionrateset).action, (yyvsp[(7) - (7)].number), ACTION_ALERT);
+ addactionrate(&actionrateset);
+ }
+-#line 4158 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 378:
+-#line 1373 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1373 "src/p.y"
+ {
+- actionrateset.count = (yyvsp[-5].number);
+- actionrateset.cycle = (yyvsp[-3].number);
++ actionrateset.count = (yyvsp[(2) - (7)].number);
++ actionrateset.cycle = (yyvsp[(4) - (7)].number);
+ addeventaction(&(actionrateset).action, ACTION_UNMONITOR, ACTION_ALERT);
+ addactionrate(&actionrateset);
+ }
+-#line 4169 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 380:
+-#line 1382 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1382 "src/p.y"
+ {
+- seturlrequest((yyvsp[-1].number), (yyvsp[0].string));
+- FREE((yyvsp[0].string));
++ seturlrequest((yyvsp[(2) - (3)].number), (yyvsp[(3) - (3)].string));
++ FREE((yyvsp[(3) - (3)].string));
+ }
+-#line 4178 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 381:
+-#line 1388 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1388 "src/p.y"
+ { (yyval.number) = Operator_Equal; }
+-#line 4184 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 382:
+-#line 1389 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1389 "src/p.y"
+ { (yyval.number) = Operator_NotEqual; }
+-#line 4190 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 383:
+-#line 1392 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1392 "src/p.y"
+ {
+ mailset.events = Event_All;
+- addmail((yyvsp[-2].string), &mailset, ¤t->maillist);
++ addmail((yyvsp[(1) - (3)].string), &mailset, ¤t->maillist);
+ }
+-#line 4199 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 384:
+-#line 1396 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1396 "src/p.y"
+ {
+- addmail((yyvsp[-5].string), &mailset, ¤t->maillist);
++ addmail((yyvsp[(1) - (6)].string), &mailset, ¤t->maillist);
+ }
+-#line 4207 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 385:
+-#line 1399 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1399 "src/p.y"
+ {
+ mailset.events = ~mailset.events;
+- addmail((yyvsp[-6].string), &mailset, ¤t->maillist);
++ addmail((yyvsp[(1) - (7)].string), &mailset, ¤t->maillist);
+ }
+-#line 4216 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 386:
+-#line 1403 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1403 "src/p.y"
+ {
+- addmail((yyvsp[0].string), &mailset, ¤t->maillist);
++ addmail((yyvsp[(1) - (1)].string), &mailset, ¤t->maillist);
+ }
+-#line 4224 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 387:
+-#line 1408 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 4230 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1408 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 388:
+-#line 1411 "src/p.y" /* yacc.c:1646 */
+- { (yyval.string) = (yyvsp[0].string); }
+-#line 4236 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1411 "src/p.y"
++ { (yyval.string) = (yyvsp[(2) - (2)].string); }
+ break;
+
+ case 391:
+-#line 1418 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1418 "src/p.y"
+ { mailset.events |= Event_Action; }
+-#line 4242 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 392:
+-#line 1419 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1419 "src/p.y"
+ { mailset.events |= Event_Checksum; }
+-#line 4248 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 393:
+-#line 1420 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1420 "src/p.y"
+ { mailset.events |= Event_Connection; }
+-#line 4254 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 394:
+-#line 1421 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1421 "src/p.y"
+ { mailset.events |= Event_Content; }
+-#line 4260 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 395:
+-#line 1422 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1422 "src/p.y"
+ { mailset.events |= Event_Data; }
+-#line 4266 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 396:
+-#line 1423 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1423 "src/p.y"
+ { mailset.events |= Event_Exec; }
+-#line 4272 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 397:
+-#line 1424 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1424 "src/p.y"
+ { mailset.events |= Event_Fsflag; }
+-#line 4278 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 398:
+-#line 1425 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1425 "src/p.y"
+ { mailset.events |= Event_Gid; }
+-#line 4284 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 399:
+-#line 1426 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1426 "src/p.y"
+ { mailset.events |= Event_Icmp; }
+-#line 4290 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 400:
+-#line 1427 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1427 "src/p.y"
+ { mailset.events |= Event_Instance; }
+-#line 4296 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 401:
+-#line 1428 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1428 "src/p.y"
+ { mailset.events |= Event_Invalid; }
+-#line 4302 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 402:
+-#line 1429 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1429 "src/p.y"
+ { mailset.events |= Event_Nonexist; }
+-#line 4308 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 403:
+-#line 1430 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1430 "src/p.y"
+ { mailset.events |= Event_Permission; }
+-#line 4314 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 404:
+-#line 1431 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1431 "src/p.y"
+ { mailset.events |= Event_Pid; }
+-#line 4320 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 405:
+-#line 1432 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1432 "src/p.y"
+ { mailset.events |= Event_PPid; }
+-#line 4326 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 406:
+-#line 1433 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1433 "src/p.y"
+ { mailset.events |= Event_Resource; }
+-#line 4332 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 407:
+-#line 1434 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1434 "src/p.y"
+ { mailset.events |= Event_Size; }
+-#line 4338 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 408:
+-#line 1435 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1435 "src/p.y"
+ { mailset.events |= Event_Status; }
+-#line 4344 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 409:
+-#line 1436 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1436 "src/p.y"
+ { mailset.events |= Event_Timeout; }
+-#line 4350 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 410:
+-#line 1437 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1437 "src/p.y"
+ { mailset.events |= Event_Timestamp; }
+-#line 4356 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 411:
+-#line 1438 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1438 "src/p.y"
+ { mailset.events |= Event_Uid; }
+-#line 4362 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 412:
+-#line 1439 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1439 "src/p.y"
+ { mailset.events |= Event_Uptime; }
+-#line 4368 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 417:
+-#line 1450 "src/p.y" /* yacc.c:1646 */
+- { mailset.from = (yyvsp[0].string); }
+-#line 4374 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1450 "src/p.y"
++ { mailset.from = (yyvsp[(1) - (1)].string); }
+ break;
+
+ case 418:
+-#line 1451 "src/p.y" /* yacc.c:1646 */
+- { mailset.replyto = (yyvsp[0].string); }
+-#line 4380 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1451 "src/p.y"
++ { mailset.replyto = (yyvsp[(1) - (1)].string); }
+ break;
+
+ case 419:
+-#line 1452 "src/p.y" /* yacc.c:1646 */
+- { mailset.subject = (yyvsp[0].string); }
+-#line 4386 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1452 "src/p.y"
++ { mailset.subject = (yyvsp[(1) - (1)].string); }
+ break;
+
+ case 420:
+-#line 1453 "src/p.y" /* yacc.c:1646 */
+- { mailset.message = (yyvsp[0].string); }
+-#line 4392 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1453 "src/p.y"
++ { mailset.message = (yyvsp[(1) - (1)].string); }
+ break;
+
+ case 421:
+-#line 1456 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1456 "src/p.y"
+ {
+ current->every.type = EVERY_SKIPCYCLES;
+- current->every.spec.cycle.number = (yyvsp[-1].number);
++ current->every.spec.cycle.number = (yyvsp[(2) - (3)].number);
+ }
+-#line 4401 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 422:
+-#line 1460 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1460 "src/p.y"
+ {
+ current->every.type = EVERY_CRON;
+- current->every.spec.cron = (yyvsp[0].string);
++ current->every.spec.cron = (yyvsp[(2) - (2)].string);
+ }
+-#line 4410 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 423:
+-#line 1464 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1464 "src/p.y"
+ {
+ current->every.type = EVERY_NOTINCRON;
+- current->every.spec.cron = (yyvsp[0].string);
++ current->every.spec.cron = (yyvsp[(2) - (2)].string);
+ }
+-#line 4419 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 424:
+-#line 1470 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1470 "src/p.y"
+ {
+ current->mode = MODE_ACTIVE;
+ }
+-#line 4427 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 425:
+-#line 1473 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1473 "src/p.y"
+ {
+ current->mode = MODE_PASSIVE;
+ }
+-#line 4435 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 426:
+-#line 1476 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1476 "src/p.y"
+ {
+ current->mode = MODE_MANUAL;
+ current->monitor = MONITOR_NOT;
+ }
+-#line 4444 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 427:
+-#line 1482 "src/p.y" /* yacc.c:1646 */
+- { addservicegroup((yyvsp[0].string)); FREE((yyvsp[0].string));}
+-#line 4450 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1482 "src/p.y"
++ { addservicegroup((yyvsp[(2) - (2)].string)); FREE((yyvsp[(2) - (2)].string));}
+ break;
+
+ case 431:
+-#line 1493 "src/p.y" /* yacc.c:1646 */
+- { adddependant((yyvsp[0].string)); }
+-#line 4456 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1493 "src/p.y"
++ { adddependant((yyvsp[(1) - (1)].string)); }
+ break;
+
+ case 432:
+-#line 1496 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1496 "src/p.y"
+ {
+ statusset.initialized = TRUE;
+- statusset.operator = (yyvsp[-5].number);
+- statusset.return_value = (yyvsp[-4].number);
+- addeventaction(&(statusset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ statusset.operator = (yyvsp[(3) - (8)].number);
++ statusset.return_value = (yyvsp[(4) - (8)].number);
++ addeventaction(&(statusset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ addstatus(&statusset);
+ }
+-#line 4468 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 433:
+-#line 1503 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1503 "src/p.y"
+ {
+ statusset.initialized = FALSE;
+ statusset.operator = Operator_Changed;
+ statusset.return_value = 0;
+- addeventaction(&(statusset).action, (yyvsp[0].number), ACTION_IGNORE);
++ addeventaction(&(statusset).action, (yyvsp[(6) - (6)].number), ACTION_IGNORE);
+ addstatus(&statusset);
+ }
+-#line 4480 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 434:
+-#line 1512 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1512 "src/p.y"
+ {
+- addeventaction(&(resourceset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ addeventaction(&(resourceset).action, (yyvsp[(5) - (6)].number), (yyvsp[(6) - (6)].number));
+ addresource(&resourceset);
+ }
+-#line 4489 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 441:
+-#line 1528 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1528 "src/p.y"
+ {
+- addeventaction(&(resourceset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ addeventaction(&(resourceset).action, (yyvsp[(5) - (6)].number), (yyvsp[(6) - (6)].number));
+ addresource(&resourceset);
+ }
+-#line 4498 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 448:
+-#line 1544 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1544 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_CPU_PERCENT;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = ((yyvsp[-1].number) * 10);
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10);
+ }
+-#line 4508 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 449:
+-#line 1549 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1549 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_TOTAL_CPU_PERCENT;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = ((yyvsp[-1].number) * 10);
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10);
+ }
+-#line 4518 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 450:
+-#line 1556 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1556 "src/p.y"
+ {
+- resourceset.resource_id = (yyvsp[-3].number);
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = ((yyvsp[-1].number) * 10);
++ resourceset.resource_id = (yyvsp[(1) - (4)].number);
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10);
+ }
+-#line 4528 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 451:
+-#line 1563 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1563 "src/p.y"
+ { (yyval.number) = RESOURCE_ID_CPUUSER; }
+-#line 4534 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 452:
+-#line 1564 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1564 "src/p.y"
+ { (yyval.number) = RESOURCE_ID_CPUSYSTEM; }
+-#line 4540 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 453:
+-#line 1565 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1565 "src/p.y"
+ { (yyval.number) = RESOURCE_ID_CPUWAIT; }
+-#line 4546 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 454:
+-#line 1568 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1568 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_MEM_KBYTE;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = (int) ((yyvsp[-1].real) * ((yyvsp[0].number) / 1024.0));
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = (int) ((yyvsp[(3) - (4)].real) * ((yyvsp[(4) - (4)].number) / 1024.0));
+ }
+-#line 4556 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 455:
+-#line 1573 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1573 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_MEM_PERCENT;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = ((yyvsp[-1].number) * 10);
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10);
+ }
+-#line 4566 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 456:
+-#line 1578 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1578 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_TOTAL_MEM_KBYTE;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = (int) ((yyvsp[-1].real) * ((yyvsp[0].number) / 1024.0));
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = (int) ((yyvsp[(3) - (4)].real) * ((yyvsp[(4) - (4)].number) / 1024.0));
+ }
+-#line 4576 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 457:
+-#line 1583 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1583 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_TOTAL_MEM_PERCENT;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = ((yyvsp[-1].number) * 10);
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10);
+ }
+-#line 4586 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 458:
+-#line 1590 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1590 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_SWAP_KBYTE;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = (int) ((yyvsp[-1].real) * ((yyvsp[0].number) / 1024.0));
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = (int) ((yyvsp[(3) - (4)].real) * ((yyvsp[(4) - (4)].number) / 1024.0));
+ }
+-#line 4596 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 459:
+-#line 1595 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1595 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_SWAP_PERCENT;
+- resourceset.operator = (yyvsp[-2].number);
+- resourceset.limit = ((yyvsp[-1].number) * 10);
++ resourceset.operator = (yyvsp[(2) - (4)].number);
++ resourceset.limit = ((yyvsp[(3) - (4)].number) * 10);
+ }
+-#line 4606 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 460:
+-#line 1602 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1602 "src/p.y"
+ {
+ resourceset.resource_id = RESOURCE_ID_CHILDREN;
+- resourceset.operator = (yyvsp[-1].number);
+- resourceset.limit = (int) (yyvsp[0].number);
++ resourceset.operator = (yyvsp[(2) - (3)].number);
++ resourceset.limit = (int) (yyvsp[(3) - (3)].number);
+ }
+-#line 4616 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 461:
+-#line 1609 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1609 "src/p.y"
+ {
+- resourceset.resource_id = (yyvsp[-2].number);
+- resourceset.operator = (yyvsp[-1].number);
+- resourceset.limit = (int) ((yyvsp[0].real) * 10.0);
++ resourceset.resource_id = (yyvsp[(1) - (3)].number);
++ resourceset.operator = (yyvsp[(2) - (3)].number);
++ resourceset.limit = (int) ((yyvsp[(3) - (3)].real) * 10.0);
+ }
+-#line 4626 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 462:
+-#line 1616 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1616 "src/p.y"
+ { (yyval.number) = RESOURCE_ID_LOAD1; }
+-#line 4632 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 463:
+-#line 1617 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1617 "src/p.y"
+ { (yyval.number) = RESOURCE_ID_LOAD5; }
+-#line 4638 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 464:
+-#line 1618 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1618 "src/p.y"
+ { (yyval.number) = RESOURCE_ID_LOAD15; }
+-#line 4644 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 465:
+-#line 1621 "src/p.y" /* yacc.c:1646 */
+- { (yyval.real) = (yyvsp[0].real); }
+-#line 4650 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1621 "src/p.y"
++ { (yyval.real) = (yyvsp[(1) - (1)].real); }
+ break;
+
+ case 466:
+-#line 1622 "src/p.y" /* yacc.c:1646 */
+- { (yyval.real) = (float) (yyvsp[0].number); }
+-#line 4656 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1622 "src/p.y"
++ { (yyval.real) = (float) (yyvsp[(1) - (1)].number); }
+ break;
+
+ case 467:
+-#line 1625 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1625 "src/p.y"
+ {
+- timestampset.operator = (yyvsp[-6].number);
+- timestampset.time = ((yyvsp[-5].number) * (yyvsp[-4].number));
+- addeventaction(&(timestampset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ timestampset.operator = (yyvsp[(3) - (9)].number);
++ timestampset.time = ((yyvsp[(4) - (9)].number) * (yyvsp[(5) - (9)].number));
++ addeventaction(&(timestampset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ addtimestamp(×tampset, FALSE);
+ }
+-#line 4667 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 468:
+-#line 1631 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1631 "src/p.y"
+ {
+ timestampset.test_changes = TRUE;
+- addeventaction(&(timestampset).action, (yyvsp[0].number), ACTION_IGNORE);
++ addeventaction(&(timestampset).action, (yyvsp[(6) - (6)].number), ACTION_IGNORE);
+ addtimestamp(×tampset, TRUE);
+ }
+-#line 4677 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 469:
+-#line 1638 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1638 "src/p.y"
+ { (yyval.number) = Operator_Equal; }
+-#line 4683 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 470:
+-#line 1639 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1639 "src/p.y"
+ { (yyval.number) = Operator_Greater; }
+-#line 4689 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 471:
+-#line 1640 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1640 "src/p.y"
+ { (yyval.number) = Operator_Less; }
+-#line 4695 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 472:
+-#line 1641 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1641 "src/p.y"
+ { (yyval.number) = Operator_Equal; }
+-#line 4701 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 473:
+-#line 1642 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1642 "src/p.y"
+ { (yyval.number) = Operator_NotEqual; }
+-#line 4707 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 474:
+-#line 1643 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1643 "src/p.y"
+ { (yyval.number) = Operator_Changed; }
+-#line 4713 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 475:
+-#line 1646 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1646 "src/p.y"
+ { (yyval.number) = TIME_SECOND; }
+-#line 4719 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 476:
+-#line 1647 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1647 "src/p.y"
+ { (yyval.number) = TIME_SECOND; }
+-#line 4725 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 477:
+-#line 1648 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1648 "src/p.y"
+ { (yyval.number) = TIME_MINUTE; }
+-#line 4731 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 478:
+-#line 1649 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1649 "src/p.y"
+ { (yyval.number) = TIME_HOUR; }
+-#line 4737 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 479:
+-#line 1650 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1650 "src/p.y"
+ { (yyval.number) = TIME_DAY; }
+-#line 4743 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 480:
+-#line 1653 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1653 "src/p.y"
+ { (yyval.number) = ACTION_ALERT; }
+-#line 4749 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 481:
+-#line 1654 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1654 "src/p.y"
+ { (yyval.number) = ACTION_EXEC; }
+-#line 4755 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 482:
+-#line 1655 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1655 "src/p.y"
+ { (yyval.number) = ACTION_EXEC; }
+-#line 4761 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 483:
+-#line 1656 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1656 "src/p.y"
+ { (yyval.number) = ACTION_RESTART; }
+-#line 4767 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 484:
+-#line 1657 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1657 "src/p.y"
+ { (yyval.number) = ACTION_START; }
+-#line 4773 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 485:
+-#line 1658 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1658 "src/p.y"
+ { (yyval.number) = ACTION_STOP; }
+-#line 4779 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 486:
+-#line 1659 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1659 "src/p.y"
+ { (yyval.number) = ACTION_UNMONITOR; }
+-#line 4785 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 487:
+-#line 1662 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1662 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
+- if ((yyvsp[0].number) == ACTION_EXEC && command) {
++ (yyval.number) = (yyvsp[(1) - (1)].number);
++ if ((yyvsp[(1) - (1)].number) == ACTION_EXEC && command) {
+ command1 = command;
+ command = NULL;
+ }
+ }
+-#line 4797 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 488:
+-#line 1671 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1671 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
+- if ((yyvsp[0].number) == ACTION_EXEC && command) {
++ (yyval.number) = (yyvsp[(1) - (1)].number);
++ if ((yyvsp[(1) - (1)].number) == ACTION_EXEC && command) {
+ command2 = command;
+ command = NULL;
+ }
+ }
+-#line 4809 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 490:
+-#line 1681 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1681 "src/p.y"
+ {
+- rate1.count = (yyvsp[-1].number);
+- rate1.cycles = (yyvsp[-1].number);
++ rate1.count = (yyvsp[(1) - (2)].number);
++ rate1.cycles = (yyvsp[(1) - (2)].number);
+ if (rate1.cycles < 1 || rate1.cycles > BITMAP_MAX)
+ yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX);
+ }
+-#line 4820 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 491:
+-#line 1687 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1687 "src/p.y"
+ {
+- rate1.count = (yyvsp[-2].number);
+- rate1.cycles = (yyvsp[-1].number);
++ rate1.count = (yyvsp[(1) - (3)].number);
++ rate1.cycles = (yyvsp[(2) - (3)].number);
+ if (rate1.cycles < 1 || rate1.cycles > BITMAP_MAX)
+ yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX);
+ if (rate1.count < 1 || rate1.count > rate1.cycles)
+ yyerror2("The number of events must be bigger then 0 and less than poll cycles");
+ }
+-#line 4833 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 493:
+-#line 1698 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1698 "src/p.y"
+ {
+- rate2.count = (yyvsp[-1].number);
+- rate2.cycles = (yyvsp[-1].number);
++ rate2.count = (yyvsp[(1) - (2)].number);
++ rate2.cycles = (yyvsp[(1) - (2)].number);
+ if (rate2.cycles < 1 || rate2.cycles > BITMAP_MAX)
+ yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX);
+ }
+-#line 4844 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 494:
+-#line 1704 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1704 "src/p.y"
+ {
+- rate2.count = (yyvsp[-2].number);
+- rate2.cycles = (yyvsp[-1].number);
++ rate2.count = (yyvsp[(1) - (3)].number);
++ rate2.cycles = (yyvsp[(2) - (3)].number);
+ if (rate2.cycles < 1 || rate2.cycles > BITMAP_MAX)
+ yyerror2("The number of cycles must be between 1 and %d", BITMAP_MAX);
+ if (rate2.count < 1 || rate2.count > rate2.cycles)
+ yyerror2("The number of events must be bigger then 0 and less than poll cycles");
+ }
+-#line 4857 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 495:
+-#line 1714 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1714 "src/p.y"
+ {
+ (yyval.number) = ACTION_ALERT;
+ }
+-#line 4865 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 496:
+-#line 1717 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1717 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
++ (yyval.number) = (yyvsp[(6) - (6)].number);
+ }
+-#line 4873 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 497:
+-#line 1720 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1720 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
++ (yyval.number) = (yyvsp[(6) - (6)].number);
+ }
+-#line 4881 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 498:
+-#line 1723 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1723 "src/p.y"
+ {
+- (yyval.number) = (yyvsp[0].number);
++ (yyval.number) = (yyvsp[(6) - (6)].number);
+ }
+-#line 4889 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 499:
+-#line 1728 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1728 "src/p.y"
+ {
+- addeventaction(&(checksumset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ addeventaction(&(checksumset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ addchecksum(&checksumset);
+ }
+-#line 4898 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 500:
+-#line 1733 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1733 "src/p.y"
+ {
+- snprintf(checksumset.hash, sizeof(checksumset.hash), "%s", (yyvsp[-4].string));
+- FREE((yyvsp[-4].string));
+- addeventaction(&(checksumset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ snprintf(checksumset.hash, sizeof(checksumset.hash), "%s", (yyvsp[(6) - (10)].string));
++ FREE((yyvsp[(6) - (10)].string));
++ addeventaction(&(checksumset).action, (yyvsp[(9) - (10)].number), (yyvsp[(10) - (10)].number));
+ addchecksum(&checksumset);
+ }
+-#line 4909 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 501:
+-#line 1739 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1739 "src/p.y"
+ {
+ checksumset.test_changes = TRUE;
+- addeventaction(&(checksumset).action, (yyvsp[0].number), ACTION_IGNORE);
++ addeventaction(&(checksumset).action, (yyvsp[(7) - (7)].number), ACTION_IGNORE);
+ addchecksum(&checksumset);
+ }
+-#line 4919 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 502:
+-#line 1745 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1745 "src/p.y"
+ { checksumset.type = HASH_UNKNOWN; }
+-#line 4925 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 503:
+-#line 1746 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1746 "src/p.y"
+ { checksumset.type = HASH_MD5; }
+-#line 4931 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 504:
+-#line 1747 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1747 "src/p.y"
+ { checksumset.type = HASH_SHA1; }
+-#line 4937 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 505:
+-#line 1750 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1750 "src/p.y"
+ {
+ filesystemset.resource = RESOURCE_ID_INODE;
+- filesystemset.operator = (yyvsp[-5].number);
+- filesystemset.limit_absolute = (yyvsp[-4].number);
+- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ filesystemset.operator = (yyvsp[(3) - (8)].number);
++ filesystemset.limit_absolute = (yyvsp[(4) - (8)].number);
++ addeventaction(&(filesystemset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ addfilesystem(&filesystemset);
+ }
+-#line 4949 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 506:
+-#line 1757 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1757 "src/p.y"
+ {
+ filesystemset.resource = RESOURCE_ID_INODE;
+- filesystemset.operator = (yyvsp[-6].number);
+- filesystemset.limit_percent = (int)((yyvsp[-5].number) * 10);
+- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ filesystemset.operator = (yyvsp[(3) - (9)].number);
++ filesystemset.limit_percent = (int)((yyvsp[(4) - (9)].number) * 10);
++ addeventaction(&(filesystemset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ addfilesystem(&filesystemset);
+ }
+-#line 4961 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 507:
+-#line 1766 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1766 "src/p.y"
+ {
+ if (! filesystem_usage(current))
+ yyerror2("Cannot read usage of filesystem %s", current->path);
+ filesystemset.resource = RESOURCE_ID_SPACE;
+- filesystemset.operator = (yyvsp[-6].number);
+- filesystemset.limit_absolute = (long long)((double)(yyvsp[-5].real) / (double)current->inf->priv.filesystem.f_bsize * (double)(yyvsp[-4].number));
+- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ filesystemset.operator = (yyvsp[(3) - (9)].number);
++ filesystemset.limit_absolute = (long long)((double)(yyvsp[(4) - (9)].real) / (double)current->inf->priv.filesystem.f_bsize * (double)(yyvsp[(5) - (9)].number));
++ addeventaction(&(filesystemset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ addfilesystem(&filesystemset);
+ }
+-#line 4975 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 508:
+-#line 1775 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1775 "src/p.y"
+ {
+ filesystemset.resource = RESOURCE_ID_SPACE;
+- filesystemset.operator = (yyvsp[-6].number);
+- filesystemset.limit_percent = (int)((yyvsp[-5].number) * 10);
+- addeventaction(&(filesystemset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ filesystemset.operator = (yyvsp[(3) - (9)].number);
++ filesystemset.limit_percent = (int)((yyvsp[(4) - (9)].number) * 10);
++ addeventaction(&(filesystemset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ addfilesystem(&filesystemset);
+ }
+-#line 4987 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 509:
+-#line 1784 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1784 "src/p.y"
+ {
+- seteventaction(&(current)->action_FSFLAG, (yyvsp[0].number), ACTION_IGNORE);
++ seteventaction(&(current)->action_FSFLAG, (yyvsp[(6) - (6)].number), ACTION_IGNORE);
+ }
+-#line 4995 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 510:
+-#line 1789 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1789 "src/p.y"
+ { (yyval.number) = UNIT_BYTE; }
+-#line 5001 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 511:
+-#line 1790 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1790 "src/p.y"
+ { (yyval.number) = UNIT_BYTE; }
+-#line 5007 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 512:
+-#line 1791 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1791 "src/p.y"
+ { (yyval.number) = UNIT_KILOBYTE; }
+-#line 5013 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 513:
+-#line 1792 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1792 "src/p.y"
+ { (yyval.number) = UNIT_MEGABYTE; }
+-#line 5019 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 514:
+-#line 1793 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1793 "src/p.y"
+ { (yyval.number) = UNIT_GIGABYTE; }
+-#line 5025 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 515:
+-#line 1796 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1796 "src/p.y"
+ {
+- permset.perm = check_perm((yyvsp[-4].number));
+- addeventaction(&(permset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ permset.perm = check_perm((yyvsp[(4) - (8)].number));
++ addeventaction(&(permset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ addperm(&permset);
+ }
+-#line 5035 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 516:
+-#line 1803 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1803 "src/p.y"
+ {
+ matchset.ignore = FALSE;
+- matchset.match_path = (yyvsp[-3].string);
++ matchset.match_path = (yyvsp[(4) - (7)].string);
+ matchset.match_string = NULL;
+- addmatchpath(&matchset, (yyvsp[0].number));
+- FREE((yyvsp[-3].string));
++ addmatchpath(&matchset, (yyvsp[(7) - (7)].number));
++ FREE((yyvsp[(4) - (7)].string));
+ }
+-#line 5047 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 517:
+-#line 1810 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1810 "src/p.y"
+ {
+ matchset.ignore = FALSE;
+ matchset.match_path = NULL;
+- matchset.match_string = (yyvsp[-3].string);
+- addmatch(&matchset, (yyvsp[0].number), 0);
++ matchset.match_string = (yyvsp[(4) - (7)].string);
++ addmatch(&matchset, (yyvsp[(7) - (7)].number), 0);
+ }
+-#line 5058 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 518:
+-#line 1816 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1816 "src/p.y"
+ {
+ matchset.ignore = TRUE;
+- matchset.match_path = (yyvsp[0].string);
++ matchset.match_path = (yyvsp[(4) - (4)].string);
+ matchset.match_string = NULL;
+ addmatchpath(&matchset, ACTION_IGNORE);
+- FREE((yyvsp[0].string));
++ FREE((yyvsp[(4) - (4)].string));
+ }
+-#line 5070 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 519:
+-#line 1823 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1823 "src/p.y"
+ {
+ matchset.ignore = TRUE;
+ matchset.match_path = NULL;
+- matchset.match_string = (yyvsp[0].string);
++ matchset.match_string = (yyvsp[(4) - (4)].string);
+ addmatch(&matchset, ACTION_IGNORE, 0);
+ }
+-#line 5081 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 520:
+-#line 1831 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1831 "src/p.y"
+ {
+ matchset.not = FALSE;
+ }
+-#line 5089 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 521:
+-#line 1834 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1834 "src/p.y"
+ {
+ matchset.not = TRUE;
+ }
+-#line 5097 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 522:
+-#line 1840 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1840 "src/p.y"
+ {
+- sizeset.operator = (yyvsp[-6].number);
+- sizeset.size = ((unsigned long long)(yyvsp[-5].number) * (yyvsp[-4].number));
+- addeventaction(&(sizeset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ sizeset.operator = (yyvsp[(3) - (9)].number);
++ sizeset.size = ((unsigned long long)(yyvsp[(4) - (9)].number) * (yyvsp[(5) - (9)].number));
++ addeventaction(&(sizeset).action, (yyvsp[(8) - (9)].number), (yyvsp[(9) - (9)].number));
+ addsize(&sizeset);
+ }
+-#line 5108 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 523:
+-#line 1846 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1846 "src/p.y"
+ {
+ sizeset.test_changes = TRUE;
+- addeventaction(&(sizeset).action, (yyvsp[0].number), ACTION_IGNORE);
++ addeventaction(&(sizeset).action, (yyvsp[(6) - (6)].number), ACTION_IGNORE);
+ addsize(&sizeset);
+ }
+-#line 5118 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 524:
+-#line 1853 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1853 "src/p.y"
+ {
+- uidset.uid = get_uid((yyvsp[-4].string), 0);
+- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ uidset.uid = get_uid((yyvsp[(4) - (8)].string), 0);
++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ current->uid = adduid(&uidset);
+- FREE((yyvsp[-4].string));
++ FREE((yyvsp[(4) - (8)].string));
+ }
+-#line 5129 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 525:
+-#line 1859 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1859 "src/p.y"
+ {
+- uidset.uid = get_uid(NULL, (yyvsp[-4].number));
+- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ uidset.uid = get_uid(NULL, (yyvsp[(4) - (8)].number));
++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ current->uid = adduid(&uidset);
+ }
+-#line 5139 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 526:
+-#line 1866 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1866 "src/p.y"
+ {
+- uidset.uid = get_uid((yyvsp[-4].string), 0);
+- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ uidset.uid = get_uid((yyvsp[(4) - (8)].string), 0);
++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ current->euid = adduid(&uidset);
+- FREE((yyvsp[-4].string));
++ FREE((yyvsp[(4) - (8)].string));
+ }
+-#line 5150 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 527:
+-#line 1872 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1872 "src/p.y"
+ {
+- uidset.uid = get_uid(NULL, (yyvsp[-4].number));
+- addeventaction(&(uidset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ uidset.uid = get_uid(NULL, (yyvsp[(4) - (8)].number));
++ addeventaction(&(uidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ current->euid = adduid(&uidset);
+ }
+-#line 5160 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 528:
+-#line 1879 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1879 "src/p.y"
+ {
+- gidset.gid = get_gid((yyvsp[-4].string), 0);
+- addeventaction(&(gidset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ gidset.gid = get_gid((yyvsp[(4) - (8)].string), 0);
++ addeventaction(&(gidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ current->gid = addgid(&gidset);
+- FREE((yyvsp[-4].string));
++ FREE((yyvsp[(4) - (8)].string));
+ }
+-#line 5171 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 529:
+-#line 1885 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1885 "src/p.y"
+ {
+- gidset.gid = get_gid(NULL, (yyvsp[-4].number));
+- addeventaction(&(gidset).action, (yyvsp[-1].number), (yyvsp[0].number));
++ gidset.gid = get_gid(NULL, (yyvsp[(4) - (8)].number));
++ addeventaction(&(gidset).action, (yyvsp[(7) - (8)].number), (yyvsp[(8) - (8)].number));
+ current->gid = addgid(&gidset);
+ }
+-#line 5181 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 530:
+-#line 1892 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1892 "src/p.y"
+ { (yyval.number) = ICMP_ECHO; }
+-#line 5187 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 531:
+-#line 1895 "src/p.y" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1895 "src/p.y"
+ { mailset.reminder = 0; }
+-#line 5193 "src/y.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 532:
+-#line 1896 "src/p.y" /* yacc.c:1646 */
+- { mailset.reminder = (yyvsp[0].number); }
+-#line 5199 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1896 "src/p.y"
++ { mailset.reminder = (yyvsp[(2) - (2)].number); }
+ break;
+
+ case 533:
+-#line 1897 "src/p.y" /* yacc.c:1646 */
+- { mailset.reminder = (yyvsp[-1].number); }
+-#line 5205 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 1897 "src/p.y"
++ { mailset.reminder = (yyvsp[(2) - (3)].number); }
+ break;
+
+
+-#line 5209 "src/y.tab.c" /* yacc.c:1646 */
++
++/* Line 1806 of yacc.c */
++#line 5885 "src/y.tab.c"
+ default: break;
+ }
+ /* User semantic actions sometimes alter yychar, and that requires
+@@ -5228,7 +5904,7 @@
+
+ *++yyvsp = yyval;
+
+- /* Now 'shift' the result of the reduction. Determine what state
++ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+@@ -5243,9 +5919,9 @@
+ goto yynewstate;
+
+
+-/*--------------------------------------.
+-| yyerrlab -- here on detecting error. |
+-`--------------------------------------*/
++/*------------------------------------.
++| yyerrlab -- here on detecting error |
++`------------------------------------*/
+ yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+@@ -5296,20 +5972,20 @@
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+- error, discard it. */
++ error, discard it. */
+
+ if (yychar <= YYEOF)
+- {
+- /* Return failure if at end of input. */
+- if (yychar == YYEOF)
+- YYABORT;
+- }
++ {
++ /* Return failure if at end of input. */
++ if (yychar == YYEOF)
++ YYABORT;
++ }
+ else
+- {
+- yydestruct ("Error: discarding",
+- yytoken, &yylval);
+- yychar = YYEMPTY;
+- }
++ {
++ yydestruct ("Error: discarding",
++ yytoken, &yylval);
++ yychar = YYEMPTY;
++ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+@@ -5328,7 +6004,7 @@
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+- /* Do not reclaim the symbols of the rule whose action triggered
++ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+@@ -5341,37 +6017,35 @@
+ | yyerrlab1 -- common code for both syntax error and YYERROR. |
+ `-------------------------------------------------------------*/
+ yyerrlab1:
+- yyerrstatus = 3; /* Each real token shifted decrements this. */
++ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (!yypact_value_is_default (yyn))
+- {
+- yyn += YYTERROR;
+- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+- {
+- yyn = yytable[yyn];
+- if (0 < yyn)
+- break;
+- }
+- }
++ {
++ yyn += YYTERROR;
++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
++ {
++ yyn = yytable[yyn];
++ if (0 < yyn)
++ break;
++ }
++ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+- YYABORT;
++ YYABORT;
+
+
+ yydestruct ("Error: popping",
+- yystos[yystate], yyvsp);
++ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+- YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
+ *++yyvsp = yylval;
+- YY_IGNORE_MAYBE_UNINITIALIZED_END
+
+
+ /* Shift the error token. */
+@@ -5395,7 +6069,7 @@
+ yyresult = 1;
+ goto yyreturn;
+
+-#if !defined yyoverflow || YYERROR_VERBOSE
++#if !defined(yyoverflow) || YYERROR_VERBOSE
+ /*-------------------------------------------------.
+ | yyexhaustedlab -- memory exhaustion comes here. |
+ `-------------------------------------------------*/
+@@ -5414,14 +6088,14 @@
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
+- /* Do not reclaim the symbols of the rule whose action triggered
++ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+- yystos[*yyssp], yyvsp);
++ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
+ #ifndef yyoverflow
+@@ -5432,9 +6106,14 @@
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ #endif
+- return yyresult;
++ /* Make sure YYID is used. */
++ return YYID (yyresult);
+ }
+-#line 1900 "src/p.y" /* yacc.c:1906 */
++
++
++
++/* Line 2067 of yacc.c */
++#line 1900 "src/p.y"
+
+
+
+@@ -5683,6 +6362,7 @@
+ if (s->program->args->has_gid) {
+ Command_setGid(s->program->C, s->program->args->gid);
+ }
++ Command_setUmask(s->program->C, Run.umask);
+ }
+ }
+
+@@ -7246,3 +7926,4 @@
+ return copy;
+ }
+
++
diff -Nru monit-5.9/debian/patches/series monit-5.9/debian/patches/series
--- monit-5.9/debian/patches/series 2014-09-30 14:24:21.000000000 +0400
+++ monit-5.9/debian/patches/series 2015-09-12 11:35:51.000000000 +0300
@@ -2,3 +2,4 @@
05_monitrc.patch
11_enable_hurd.patch
12_FTBFS_on_kfreebsd.patch
+13_umask_fix.patch
Reply to: