diff --git a/doc/examples/kea4/all-keys.json b/doc/examples/kea4/all-keys.json index 617d3a9fcc..1b8072d823 100644 --- a/doc/examples/kea4/all-keys.json +++ b/doc/examples/kea4/all-keys.json @@ -375,7 +375,10 @@ "type": "postgresql", // User name to be used to access the database. - "user": "keatest" + "user": "keatest", + + // TCP user timeout while communicating with the database. + "tcp-user-timeout": 100 }, { // Name of the database to connect to. @@ -408,7 +411,13 @@ "on-fail": "stop-retry-exit", // Connection connect timeout. - "connect-timeout": 100 + "connect-timeout": 100, + + // Data read from the database timeout. + "read-timeout": 120, + + // Data write to the database timeout. + "write-timeout": 180 } ], diff --git a/doc/examples/kea6/all-keys.json b/doc/examples/kea6/all-keys.json index eaff53d4a1..7ddf259901 100644 --- a/doc/examples/kea6/all-keys.json +++ b/doc/examples/kea6/all-keys.json @@ -332,7 +332,10 @@ "type": "postgresql", // User name to be used to access the database. - "user": "keatest" + "user": "keatest", + + // TCP user timeout while communicating with the database. + "tcp-user-timeout": 100 }, { // Name of the database to connect to. @@ -365,7 +368,13 @@ "on-fail": "stop-retry-exit", // Connection connect timeout. - "connect-timeout": 100 + "connect-timeout": 100, + + // Data read from the database timeout. + "read-timeout": 120, + + // Data write to the database timeout. + "write-timeout": 180 } ], diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index 2450ea84b0..09a57b46bb 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -692,8 +692,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 218 -#define YY_END_OF_BUFFER 219 +#define YY_NUM_RULES 221 +#define YY_END_OF_BUFFER 222 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -701,242 +701,246 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2124] = +static const flex_int16_t yy_accept[2163] = { 0, - 211, 211, 0, 0, 0, 0, 0, 0, 0, 0, - 219, 217, 10, 11, 217, 1, 211, 208, 211, 211, - 217, 210, 209, 217, 217, 217, 217, 217, 204, 205, - 217, 217, 217, 206, 207, 5, 5, 5, 217, 217, - 217, 10, 11, 0, 0, 199, 0, 0, 0, 0, + 214, 214, 0, 0, 0, 0, 0, 0, 0, 0, + 222, 220, 10, 11, 220, 1, 214, 211, 214, 214, + 220, 213, 212, 220, 220, 220, 220, 220, 207, 208, + 220, 220, 220, 209, 210, 5, 5, 5, 220, 220, + 220, 10, 11, 0, 0, 202, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 214, + 214, 0, 213, 214, 3, 2, 6, 0, 214, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, + + 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 204, 206, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 211, 211, - 0, 210, 211, 3, 2, 6, 0, 211, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 219, 217, 0, + 216, 215, 0, 0, 0, 0, 0, 0, 0, 179, + 0, 178, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 201, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 0, 0, 218, 215, 0, 0, 0, 0, 0, 0, + 180, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, + 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, + 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 88, 0, 42, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 122, 0, 0, 35, 0, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 12, 184, 183, 0, 0, + + 0, 0, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 185, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 142, 110, 0, 0, 0, 0, 0, 0, + 115, 36, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 117, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 216, 214, 0, 213, 212, 0, 0, 0, - 0, 0, 0, 0, 176, 0, 175, 0, 0, 96, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 215, 212, 0, 0, 0, - 0, 0, 0, 177, 0, 179, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 0, 82, 0, 0, - 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, - 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 119, 0, 0, 35, 0, 0, 39, 0, - 0, 0, 0, 0, 0, 12, 181, 180, 0, 0, - 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 0, 0, 182, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, + 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 109, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 139, 107, 0, 0, - 0, 0, 0, 0, 112, 36, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 114, 43, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 158, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, + 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, + 0, 0, 57, 0, 0, 0, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, + 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 189, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, + 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, - - 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 0, 0, 0, 0, 0, 0, 0, 130, 0, - 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 124, 0, 23, 0, - 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 168, 0, 0, 0, 0, - 79, 0, 0, 0, 0, 0, 0, 138, 0, 38, - - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, - 0, 0, 0, 0, 103, 104, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, - 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 190, 0, 80, 94, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, - 0, 0, 0, 0, 0, 165, 0, 0, 163, 0, - 0, 154, 153, 0, 0, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 0, 178, 0, 0, 0, 0, - 0, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 136, 0, 15, 0, - 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, - - 61, 0, 0, 131, 0, 0, 0, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 86, 0, 184, 0, 0, 189, 0, - 106, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, - - 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, - 192, 0, 0, 116, 31, 0, 0, 0, 152, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 0, 0, 0, 0, 28, 0, - 0, 166, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, - 105, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 127, 0, 23, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 137, 0, 0, 0, 30, 0, 0, - 0, 0, 188, 0, 0, 0, 0, 0, 148, 0, + 171, 0, 0, 0, 0, 82, 0, 0, 0, 0, + 0, 0, 141, 0, 38, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 0, 0, 191, 0, - 78, 0, 48, 0, 0, 0, 185, 183, 0, 32, + 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, + 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 172, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, - 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, - 0, 0, 91, 0, 0, 0, 0, 0, 49, 0, - 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 173, 0, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 151, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 144, 0, 59, 58, - 20, 0, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 193, 0, 83, 97, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, + 0, 0, 0, 0, 168, 0, 0, 166, 0, 0, + 157, 156, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 0, 0, 0, 0, 0, 181, 0, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 0, 0, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, + 0, 0, 0, 0, 0, 0, 0, 139, 0, 15, + 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 64, 0, 0, 134, 0, 0, 0, 125, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 89, 0, 0, 187, + 0, 0, 192, 0, 109, 0, 0, 0, 199, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, - 51, 0, 64, 0, 46, 171, 0, 97, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, - 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, - 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, - 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, - 73, 0, 0, 0, 0, 149, 0, 0, 0, 0, - 0, 194, 197, 170, 0, 117, 98, 0, 0, 0, - 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, - 0, 0, 146, 0, 71, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 0, 174, 198, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 27, 25, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, + 0, 0, 0, 47, 0, 0, 195, 0, 0, 119, + 31, 0, 0, 0, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 190, 0, 163, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 0, 0, 0, 0, 28, 0, 0, 169, 0, 0, + 0, 55, 0, 0, 0, 0, 0, 111, 0, 0, - 0, 0, 0, 75, 0, 0, 101, 0, 67, 0, - 0, 0, 0, 0, 0, 0, 0, 66, 0, 142, - 26, 193, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 60, 0, 0, 108, 0, 0, + 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 140, 0, 0, 0, 30, 0, 0, 0, 0, 191, + 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 21, 0, 0, 194, 0, 81, 0, 51, + 0, 0, 0, 0, 188, 186, 0, 32, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 0, 0, 0, 124, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94, 0, 0, 0, 0, 0, 52, 0, 0, 0, + 0, 48, 153, 0, 0, 0, 0, 0, 0, 0, + 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 176, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 154, 0, 164, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 147, 0, 62, 61, 20, + 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 146, 0, 0, 0, 0, 0, 54, + 0, 67, 0, 49, 174, 0, 100, 0, 0, 0, + 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, + 0, 0, 0, 77, 0, 0, 0, 0, 0, 16, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 76, + 0, 0, 0, 0, 152, 0, 0, 0, 0, 0, + 197, 200, 173, 0, 120, 101, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, + 0, 149, 0, 74, 0, 65, 0, 0, 0, 0, + + 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, + 0, 143, 0, 0, 177, 201, 198, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 73, 0, 0, 0, 0, 27, 25, 0, + 0, 0, 78, 0, 0, 104, 0, 70, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 0, 145, 26, + 196, 0 } ; static const YY_CHAR yy_ec[256] = @@ -983,274 +987,277 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[2132] = +static const flex_int16_t yy_base[2171] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2511, 2512, 34, 2507, 145, 0, 207, 2512, 214, 221, - 13, 228, 2512, 2487, 118, 25, 2, 6, 2512, 2512, - 73, 11, 17, 2512, 2512, 2512, 104, 2495, 2448, 0, - 2485, 108, 2502, 24, 262, 2512, 2444, 67, 2450, 84, - 75, 88, 224, 91, 89, 290, 220, 2442, 206, 285, - 236, 204, 197, 60, 291, 2451, 247, 308, 315, 214, - 286, 2434, 212, 320, 344, 318, 2453, 0, 373, 394, - 387, 401, 415, 2512, 0, 2512, 420, 431, 236, 314, - 238, 326, 368, 309, 2512, 2450, 2491, 2512, 263, 2512, + 2552, 2553, 34, 2548, 145, 0, 207, 2553, 214, 221, + 13, 228, 2553, 2528, 118, 25, 2, 6, 2553, 2553, + 73, 11, 17, 2553, 2553, 2553, 104, 2536, 2489, 0, + 2526, 108, 2543, 24, 262, 2553, 2485, 67, 2491, 84, + 75, 88, 224, 91, 89, 290, 220, 2483, 206, 285, + 236, 204, 197, 60, 291, 2492, 247, 308, 315, 214, + 286, 2475, 212, 320, 344, 318, 2494, 335, 0, 385, + 401, 415, 422, 427, 2553, 0, 2553, 441, 446, 236, + 314, 238, 326, 353, 309, 2553, 2491, 2532, 2553, 263, - 437, 2478, 308, 2447, 395, 10, 388, 334, 401, 359, - 241, 2488, 0, 498, 400, 2430, 2427, 2431, 405, 2427, - 80, 2435, 405, 2421, 2422, 2427, 78, 2437, 2420, 2429, - 2419, 2428, 376, 395, 408, 2421, 2419, 412, 2467, 2471, - 2417, 2410, 2463, 2403, 174, 2424, 2424, 2418, 406, 2411, - 2409, 2410, 2402, 2407, 2401, 420, 2412, 450, 2397, 2396, - 2410, 429, 2396, 418, 433, 2390, 494, 427, 432, 2411, - 2408, 2409, 451, 2407, 2442, 2441, 469, 2388, 432, 2389, - 456, 2381, 2398, 2390, 0, 437, 475, 481, 473, 479, - 493, 2389, 2512, 2434, 506, 2383, 498, 498, 511, 2437, + 2553, 440, 2519, 308, 2488, 364, 10, 329, 359, 384, + 391, 241, 2529, 0, 501, 408, 2471, 2468, 2472, 418, + 2468, 80, 2476, 422, 2462, 2463, 2468, 78, 2478, 2461, + 2470, 2460, 2469, 341, 343, 340, 2462, 2460, 410, 2508, + 2512, 2458, 2451, 2504, 2444, 174, 2465, 2465, 2459, 340, + 2452, 2450, 2451, 2443, 2448, 2442, 429, 2453, 412, 2438, + 2437, 2451, 425, 2437, 422, 447, 2431, 497, 436, 471, + 2452, 2449, 2450, 432, 2448, 2483, 2482, 450, 446, 2429, + 471, 2430, 478, 2422, 2439, 2431, 2433, 0, 477, 483, + 473, 496, 489, 515, 2429, 2553, 2474, 530, 2423, 499, - 523, 2436, 507, 2435, 2512, 2512, 560, 512, 536, 2394, - 2386, 2373, 2384, 2388, 2389, 2369, 2380, 2384, 2381, 2380, - 502, 530, 2418, 2382, 2363, 2360, 2368, 2363, 2377, 2373, - 2364, 2360, 2372, 2372, 2363, 2366, 2346, 2350, 2363, 2365, - 2362, 2354, 2344, 2362, 2512, 2347, 2356, 508, 2394, 2340, - 2349, 2391, 2338, 2348, 2351, 553, 2347, 2386, 2331, 2333, - 2344, 2382, 2327, 2385, 2339, 2319, 2334, 554, 2324, 2330, - 523, 2321, 2319, 2319, 2325, 2316, 2315, 2322, 2312, 2371, - 2327, 2326, 2320, 510, 2327, 2322, 2314, 2304, 2319, 2318, - 2313, 2317, 2298, 2314, 2300, 2306, 2313, 2295, 529, 2300, + 523, 530, 2477, 535, 2476, 532, 2475, 2553, 2553, 578, + 441, 543, 2434, 2426, 2413, 2424, 2428, 2429, 2409, 2420, + 2424, 2421, 2420, 475, 516, 2458, 2422, 2403, 2400, 2408, + 2403, 2417, 2413, 2404, 2400, 2412, 2412, 2403, 2406, 2386, + 2390, 2403, 2405, 2402, 2394, 2384, 2402, 2553, 2387, 2396, + 523, 2434, 2380, 2389, 2431, 2378, 2388, 2391, 510, 2387, + 2426, 2371, 2373, 2384, 2422, 2367, 2425, 2379, 2359, 2374, + 560, 2364, 2370, 522, 2361, 2359, 2359, 2365, 2356, 2355, + 2362, 2352, 2411, 2367, 2366, 2360, 513, 2367, 2362, 2354, + 2344, 2359, 2358, 2353, 2357, 2338, 2354, 2340, 2346, 2353, - 2297, 2296, 2295, 2290, 2304, 541, 2303, 2346, 2305, 517, - 2296, 566, 2512, 2512, 569, 2512, 2512, 2283, 540, 556, - 2331, 571, 2341, 564, 2512, 2340, 2512, 2334, 614, 2512, - 2296, 573, 2273, 2282, 2330, 2290, 2273, 2290, 2326, 2286, - 2269, 2275, 2327, 2282, 2285, 2276, 2279, 2265, 2276, 2320, - 2314, 2272, 2269, 601, 2275, 2315, 2250, 2308, 2261, 2256, - 2253, 2256, 2303, 2260, 2249, 2265, 2299, 2245, 638, 2259, - 2244, 2243, 2256, 2254, 2252, 2252, 2251, 2246, 2253, 2248, - 2244, 583, 2242, 2245, 2240, 2226, 2238, 2234, 2284, 552, - 2278, 2512, 2242, 2276, 2226, 2225, 2224, 2217, 2219, 2231, + 2335, 527, 2340, 2337, 2336, 573, 2335, 2330, 2344, 570, + 2343, 2386, 2345, 520, 2336, 2324, 560, 2553, 2553, 572, + 2553, 2553, 2322, 544, 568, 2370, 573, 2380, 576, 2553, + 2379, 2553, 2373, 626, 2553, 2335, 575, 2312, 2321, 2369, + 2329, 2312, 2329, 2365, 2325, 2308, 2314, 2366, 2321, 2324, + 2315, 2318, 2304, 2315, 2359, 2353, 2311, 2308, 601, 2314, + 2354, 2289, 2347, 2300, 2295, 2292, 2295, 2342, 2299, 2288, + 2304, 2338, 2284, 624, 2298, 2283, 2282, 2295, 2293, 2291, + 2291, 2290, 2285, 2292, 2287, 2283, 552, 2281, 2284, 2279, + 2265, 2277, 2273, 2323, 585, 2317, 2553, 2281, 2315, 2265, - 2222, 2229, 2210, 2227, 2222, 594, 2269, 2222, 2219, 2222, - 2512, 2221, 2210, 2210, 2222, 588, 2197, 2198, 2219, 2210, - 2200, 2251, 2196, 2210, 598, 2196, 2208, 2207, 2206, 2201, - 2243, 2203, 2202, 2201, 2200, 2192, 2242, 2201, 2181, 2239, - 2512, 2181, 2180, 648, 2193, 2512, 2512, 2192, 2181, 2173, - 589, 2232, 2231, 2512, 2230, 2512, 623, 689, 2189, 630, - 2228, 2170, 2181, 2220, 2173, 2175, 2177, 2164, 2172, 2160, - 2512, 2165, 2158, 2170, 2173, 2160, 2159, 2512, 615, 2161, - 2158, 607, 2156, 2158, 2512, 2203, 2165, 2162, 2147, 2160, - 2160, 2154, 662, 2161, 2149, 2142, 2193, 2512, 2140, 2156, + 2264, 2263, 2256, 2258, 2270, 2261, 2268, 2249, 2266, 2261, + 607, 2308, 2261, 2258, 2261, 2553, 2260, 606, 2250, 2262, + 574, 2237, 2238, 2259, 2250, 2240, 2291, 2236, 2250, 605, + 2236, 2248, 2247, 2246, 2241, 2283, 2243, 2242, 2241, 2240, + 2223, 2231, 2281, 2240, 2220, 2278, 2553, 2220, 2219, 650, + 2232, 2230, 2553, 2553, 2230, 2219, 2211, 596, 2270, 2269, + 2553, 2268, 2553, 630, 678, 2227, 621, 2266, 2208, 2219, + 2258, 2211, 2213, 2215, 2202, 2210, 2198, 2553, 2203, 2196, + 2208, 2211, 2198, 2197, 2553, 618, 2199, 2196, 648, 2194, + 2196, 2553, 2241, 2203, 2200, 2185, 2198, 2198, 2192, 652, - 2190, 2151, 2149, 2147, 2148, 2132, 2141, 2183, 2134, 2133, - 2128, 2127, 2178, 2122, 573, 2141, 2115, 2122, 2127, 2137, - 2171, 2175, 2512, 2120, 2116, 2114, 2123, 2122, 2116, 2123, - 2107, 2107, 2117, 2105, 2119, 2119, 2107, 2103, 2101, 2512, - 2158, 2512, 2100, 2111, 2150, 2095, 2100, 2109, 2103, 2097, - 2106, 2148, 2142, 2104, 2088, 2083, 2103, 2078, 2084, 611, - 2098, 2091, 2095, 2078, 2136, 2077, 2077, 2128, 2073, 2074, - 2073, 2089, 2512, 2085, 2122, 2512, 2073, 2071, 2512, 2082, - 2118, 2078, 2062, 2079, 2119, 2512, 2512, 2512, 639, 635, - 2059, 674, 2512, 2069, 2068, 618, 2075, 2055, 2065, 2107, + 2199, 2187, 2180, 2231, 2553, 2178, 2194, 2228, 2189, 2187, + 2185, 2186, 2170, 2179, 2221, 2172, 2171, 2166, 2165, 2216, + 2160, 619, 2179, 2153, 2160, 2165, 2175, 2209, 2213, 2553, + 2158, 2154, 2152, 2161, 2160, 2154, 2161, 2145, 2145, 2155, + 2143, 2157, 2157, 2145, 2141, 2139, 2553, 2196, 2553, 2138, + 2149, 2188, 2133, 2132, 2137, 2146, 2140, 2134, 2143, 2185, + 2179, 2141, 2125, 2120, 2140, 2115, 2121, 636, 2135, 2128, + 2132, 2115, 2173, 2114, 2114, 2165, 2110, 2111, 2110, 2108, + 2125, 2553, 2121, 2158, 2553, 2109, 2107, 2553, 2118, 2154, + 2153, 2113, 2097, 2114, 2154, 2553, 2553, 2553, 653, 652, - 2052, 2105, 2050, 2060, 2102, 2047, 2054, 2047, 2059, 2041, - 2041, 2056, 2055, 625, 2054, 2053, 2053, 2035, 2040, 2081, - 2048, 2045, 2039, 2084, 2028, 2044, 2042, 2042, 2512, 2027, - 2024, 2082, 2037, 2029, 2035, 2026, 2034, 2019, 2070, 2034, - 2016, 2028, 2020, 586, 2011, 2010, 2004, 2009, 2024, 2021, - 2022, 2001, 2011, 2017, 2060, 2015, 2007, 1998, 2512, 1999, - 2001, 2010, 2002, 2007, 2046, 2045, 1996, 16, 2005, 2042, - 1987, 2040, 1987, 1990, 1983, 2512, 1997, 1976, 1980, 1994, - 1986, 2031, 1983, 1990, 2028, 2512, 1973, 1987, 1986, 1989, - 1970, 2022, 2021, 1968, 2019, 1979, 1963, 2016, 2015, 2512, + 2094, 703, 2553, 2104, 2103, 642, 2110, 2090, 2100, 2142, + 2087, 2140, 2085, 2095, 2137, 2082, 2089, 2082, 2094, 2076, + 2076, 2091, 2090, 604, 2089, 2088, 2088, 2070, 2075, 2116, + 2083, 2080, 2074, 2119, 2063, 2079, 2077, 2077, 2553, 2062, + 2059, 2117, 2072, 2064, 2070, 2061, 2069, 2054, 2105, 2069, + 2051, 2063, 2055, 668, 2046, 2045, 2039, 2044, 2059, 2056, + 2057, 2036, 2046, 2052, 2095, 2050, 2042, 2033, 2553, 2034, + 2036, 2045, 2037, 2042, 2081, 2080, 2031, 16, 2040, 2077, + 2022, 2075, 2022, 2025, 2018, 2553, 2032, 2011, 2015, 2029, + 2024, 2020, 2065, 2017, 2024, 2062, 2553, 2007, 2021, 2020, - 1960, 1974, 1973, 684, 1974, 1973, 1955, 2008, 1972, 1967, - 1950, 1955, 1957, 2512, 1959, 194, 2512, 654, 660, 214, - 225, 299, 315, 338, 388, 454, 465, 545, 567, 625, - 670, 682, 645, 660, 682, 684, 638, 641, 670, 675, - 661, 664, 676, 676, 660, 717, 670, 680, 683, 721, - 684, 677, 687, 684, 686, 733, 696, 741, 698, 699, - 2512, 703, 698, 689, 704, 709, 706, 694, 710, 709, - 697, 711, 709, 717, 753, 715, 760, 761, 711, 703, - 713, 760, 718, 768, 2512, 769, 722, 724, 720, 714, - 717, 775, 771, 734, 723, 736, 2512, 726, 737, 726, + 2023, 2004, 2056, 2055, 2002, 2053, 2013, 1997, 2050, 2049, + 2553, 1994, 2008, 2007, 702, 2008, 2007, 2000, 188, 263, + 243, 322, 325, 351, 370, 437, 2553, 472, 513, 2553, + 653, 671, 571, 584, 602, 654, 674, 669, 658, 660, + 674, 675, 722, 686, 729, 689, 690, 726, 731, 685, + 685, 695, 700, 686, 689, 700, 700, 684, 741, 694, + 704, 707, 745, 708, 701, 705, 702, 704, 751, 714, + 759, 716, 717, 2553, 721, 716, 707, 722, 727, 724, + 712, 728, 727, 715, 729, 727, 735, 771, 733, 778, + 779, 729, 721, 731, 778, 736, 786, 2553, 787, 740, - 739, 729, 742, 786, 787, 730, 741, 726, 749, 728, - 734, 789, 753, 737, 749, 793, 794, 741, 796, 760, - 755, 760, 758, 802, 744, 756, 759, 763, 755, 752, - 2512, 816, 775, 776, 777, 767, 770, 781, 766, 773, - 779, 771, 785, 825, 801, 775, 789, 794, 791, 773, - 780, 794, 839, 796, 793, 794, 792, 801, 2512, 797, - 792, 807, 804, 790, 792, 811, 808, 796, 803, 804, - 813, 817, 853, 816, 806, 804, 803, 814, 810, 866, - 813, 824, 809, 810, 816, 832, 822, 869, 2512, 833, - 833, 826, 837, 835, 880, 822, 824, 843, 840, 828, + 742, 738, 732, 735, 793, 789, 752, 741, 754, 2553, + 744, 755, 744, 757, 747, 760, 804, 805, 748, 759, + 744, 767, 758, 747, 753, 808, 772, 756, 768, 812, + 813, 760, 815, 779, 774, 779, 777, 821, 763, 775, + 778, 782, 774, 771, 2553, 835, 794, 795, 783, 797, + 787, 790, 801, 786, 793, 799, 800, 792, 806, 846, + 822, 796, 810, 815, 812, 794, 801, 815, 860, 817, + 814, 815, 813, 822, 2553, 818, 813, 828, 825, 811, + 813, 832, 829, 817, 824, 825, 834, 838, 874, 837, + 827, 825, 824, 835, 831, 887, 834, 845, 830, 831, - 826, 888, 845, 831, 837, 835, 2512, 2512, 845, 850, - 855, 843, 853, 855, 2512, 2512, 856, 843, 861, 848, - 842, 2512, 847, 865, 852, 902, 853, 905, 851, 855, - 873, 914, 2512, 2512, 859, 863, 862, 859, 919, 872, - 862, 863, 859, 872, 883, 884, 879, 880, 882, 875, - 877, 873, 879, 879, 881, 896, 879, 938, 895, 900, - 877, 900, 886, 885, 2512, 892, 893, 942, 894, 907, - 945, 903, 893, 908, 909, 896, 928, 936, 958, 906, - 901, 956, 957, 919, 959, 2512, 965, 908, 924, 928, - 969, 919, 918, 913, 914, 926, 921, 917, 920, 921, + 837, 853, 843, 890, 2553, 854, 854, 847, 858, 856, + 901, 843, 845, 864, 861, 849, 847, 909, 866, 852, + 858, 856, 2553, 2553, 866, 871, 876, 864, 874, 876, + 2553, 2553, 877, 864, 882, 869, 863, 2553, 868, 886, + 873, 923, 874, 926, 872, 876, 894, 935, 2553, 2553, + 880, 884, 883, 880, 896, 941, 894, 884, 885, 881, + 894, 905, 906, 901, 902, 904, 897, 899, 895, 901, + 901, 903, 918, 901, 960, 917, 922, 899, 922, 908, + 907, 2553, 914, 915, 964, 965, 917, 930, 968, 926, + 916, 931, 925, 933, 920, 952, 960, 982, 930, 925, - 931, 941, 977, 925, 943, 935, 930, 988, 945, 946, - 937, 2512, 951, 940, 943, 951, 953, 938, 954, 951, - 949, 996, 962, 946, 947, 2512, 963, 966, 949, 960, - 1009, 952, 971, 2512, 970, 973, 959, 954, 972, 1012, - 970, 966, 963, 1016, 1017, 979, 965, 983, 982, 983, - 969, 984, 976, 983, 973, 991, 990, 977, 994, 2512, - 986, 992, 995, 1040, 2512, 989, 994, 1038, 990, 1002, - 996, 997, 995, 997, 1007, 1052, 996, 997, 997, 1056, - 1000, 1012, 1005, 2512, 1001, 1009, 1007, 1058, 1000, 1021, - 1007, 1009, 1010, 1016, 1024, 1015, 1020, 1030, 1031, 1036, + 980, 981, 943, 983, 2553, 989, 932, 948, 952, 993, + 943, 942, 937, 938, 950, 945, 941, 944, 945, 955, + 965, 1001, 949, 967, 959, 954, 1012, 969, 970, 961, + 2553, 975, 964, 967, 975, 977, 962, 978, 975, 973, + 1020, 986, 970, 971, 2553, 987, 990, 973, 984, 1033, + 976, 995, 2553, 994, 997, 983, 978, 996, 1036, 994, + 990, 987, 1040, 1041, 1003, 989, 1007, 1006, 1007, 993, + 1008, 1000, 1007, 997, 1015, 1014, 1001, 1018, 2553, 1010, + 1016, 1019, 1064, 1011, 2553, 1014, 1019, 1064, 1015, 1027, + 1021, 1022, 1020, 1022, 1032, 1077, 1021, 1022, 1022, 1081, - 1077, 1049, 1054, 2512, 1036, 1033, 1029, 1043, 1026, 1026, - 2512, 1027, 1087, 1030, 2512, 1041, 1031, 1051, 1050, 1041, - 1052, 1095, 1056, 1049, 1053, 1057, 1040, 1057, 1048, 1103, - 1050, 2512, 1100, 1049, 1052, 1070, 1052, 1053, 1053, 1074, - 1071, 1076, 1064, 1078, 1064, 1072, 1081, 1061, 1076, 1083, - 1125, 1121, 2512, 1127, 1128, 1070, 1080, 1090, 1074, 1094, - 1082, 1078, 1085, 1094, 1082, 1089, 1090, 1102, 1143, 1090, - 1088, 1090, 1107, 1148, 1098, 1097, 1103, 1101, 1099, 1094, - 1155, 1106, 1157, 1153, 1159, 2512, 1116, 1109, 1100, 1119, - 1107, 1117, 1118, 1114, 1127, 1127, 2512, 1111, 1107, 1114, + 1025, 1037, 1030, 2553, 1026, 1034, 1032, 1083, 1025, 1046, + 1033, 1034, 1035, 1036, 1042, 1050, 1041, 1046, 1056, 1057, + 1058, 1063, 1104, 1076, 1081, 2553, 1063, 1060, 1056, 1070, + 1053, 1053, 2553, 1054, 1114, 1057, 2553, 1068, 1058, 1078, + 1077, 1068, 1079, 1122, 1083, 1076, 1080, 1084, 1067, 1084, + 1075, 1130, 1077, 2553, 1127, 1076, 1079, 1097, 1079, 1080, + 1080, 1101, 1098, 1103, 1091, 1105, 1091, 1099, 1108, 1088, + 1103, 1110, 1152, 1148, 2553, 1154, 1155, 1097, 1107, 1117, + 1101, 1121, 1109, 1105, 1112, 1121, 1109, 1116, 1117, 1129, + 1170, 1117, 1115, 1117, 1134, 1175, 1125, 1124, 1130, 1128, - 2512, 1115, 1175, 1134, 1115, 1134, 1135, 1137, 1176, 1129, - 1183, 1184, 1141, 1135, 1133, 1144, 1143, 1127, 1132, 1150, - 2512, 1172, 1163, 1195, 1135, 1157, 1152, 1152, 1156, 1201, - 2512, 1144, 1144, 1147, 1164, 1159, 1163, 1158, 2512, 1150, - 1167, 1147, 1168, 1158, 1209, 1162, 2512, 1176, 1176, 1214, - 1161, 1170, 1218, 1176, 1181, 1167, 1227, 1170, 1184, 1182, - 1174, 1180, 1176, 1194, 1195, 1196, 2512, 1186, 2512, 1196, - 2512, 1181, 1192, 1183, 1202, 1195, 1193, 1186, 1198, 1242, - 1206, 1195, 1202, 1203, 1209, 2512, 1202, 1254, 1195, 1256, - 2512, 1257, 1199, 1205, 1212, 1256, 1218, 2512, 1219, 2512, + 1126, 1121, 1182, 1133, 1184, 1180, 1186, 2553, 1127, 1144, + 1137, 1128, 1147, 1135, 1145, 1146, 1142, 1155, 1155, 2553, + 1139, 1136, 1142, 2553, 1143, 1203, 1162, 1143, 1162, 1163, + 1165, 1204, 1157, 1211, 1212, 1165, 1170, 1164, 1162, 1173, + 1172, 1156, 1161, 1167, 1180, 2553, 1202, 1193, 1225, 1165, + 1187, 1182, 1182, 1186, 1231, 2553, 1174, 1174, 1177, 1194, + 1189, 1193, 1188, 2553, 1180, 1197, 1177, 1198, 1188, 1239, + 1192, 2553, 1206, 1206, 1244, 1191, 1200, 1248, 1206, 1211, + 1197, 1257, 1200, 1214, 1212, 1204, 1210, 1206, 1224, 1225, + 1226, 2553, 1216, 2553, 1226, 2553, 1211, 1222, 1213, 1232, - 1206, 2512, 1208, 1222, 1227, 1210, 1269, 1226, 1227, 1267, - 1219, 1224, 1275, 1271, 1224, 1278, 2512, 1229, 1226, 1281, - 1282, 1239, 1240, 1242, 2512, 2512, 1228, 1282, 1231, 1247, - 1290, 1232, 1244, 1249, 1264, 1295, 2512, 1252, 1245, 1254, - 1245, 1256, 2512, 1301, 1238, 1249, 1264, 1300, 1252, 1263, - 1264, 1265, 1262, 1306, 1269, 1259, 1269, 1275, 1262, 1258, - 1318, 1314, 1272, 1316, 1323, 1280, 2512, 1282, 1273, 1276, - 1285, 1286, 1283, 1273, 1276, 1276, 1287, 1282, 1337, 1284, - 1339, 1282, 1287, 1342, 1338, 1279, 1295, 1288, 1291, 1304, - 1305, 1303, 1352, 2512, 1305, 2512, 2512, 1311, 1303, 1313, + 1225, 1223, 1216, 1228, 1272, 1236, 1225, 1232, 1233, 1239, + 2553, 1232, 1284, 1225, 1286, 2553, 1287, 1229, 1235, 1242, + 1286, 1248, 2553, 1249, 2553, 1236, 2553, 1236, 1239, 1253, + 1258, 1241, 1300, 1257, 1258, 1298, 1250, 1255, 1306, 1302, + 1255, 1309, 2553, 1260, 1257, 1312, 1313, 1270, 1271, 1273, + 2553, 2553, 1265, 1260, 1314, 1263, 1279, 1322, 1264, 1276, + 1265, 1282, 1297, 1328, 2553, 1285, 1278, 1287, 1278, 1289, + 2553, 1334, 1271, 1282, 1297, 1333, 1285, 1296, 1297, 1298, + 1295, 1339, 1302, 1292, 1302, 1308, 1295, 1291, 1351, 1347, + 1305, 1349, 1357, 1314, 2553, 1315, 1306, 1309, 1318, 1319, - 1298, 1354, 1301, 1301, 1362, 1306, 1316, 1365, 2512, 1313, - 1314, 1316, 1369, 1310, 1313, 2512, 1331, 1332, 2512, 1332, - 1320, 2512, 2512, 1333, 1316, 1336, 1322, 1324, 1383, 1333, - 2512, 1385, 1334, 1387, 1367, 2512, 1389, 1346, 1391, 1342, - 1389, 2512, 1337, 1396, 1346, 1340, 1337, 1340, 1342, 1359, - 1398, 1351, 1363, 1366, 1354, 1357, 1350, 1357, 1348, 2512, - 1356, 1371, 1356, 2512, 1358, 1359, 1413, 1375, 1375, 1378, - 1378, 1375, 1419, 1381, 1373, 1374, 2512, 1375, 2512, 1385, - 1377, 2512, 1383, 1388, 1389, 1386, 1430, 1378, 1393, 1394, - 1386, 2512, 1383, 1384, 1384, 1390, 1389, 1387, 1441, 1402, + 1316, 1306, 1309, 1309, 1320, 1315, 1370, 1317, 1372, 1315, + 1320, 1375, 1371, 1312, 1328, 1321, 1324, 1337, 1338, 1336, + 1385, 2553, 1338, 2553, 2553, 1344, 1336, 1346, 1331, 1387, + 1334, 1334, 1395, 1396, 1340, 1350, 1399, 2553, 1347, 1348, + 1350, 1403, 1344, 1347, 2553, 1365, 1366, 2553, 1366, 1354, + 2553, 2553, 1367, 1350, 1370, 1371, 1357, 1359, 1418, 1368, + 2553, 1420, 1369, 1363, 1423, 1403, 2553, 1425, 1382, 1427, + 1378, 1425, 2553, 1373, 1432, 1382, 1376, 1373, 1376, 1378, + 1395, 1434, 1387, 1399, 1402, 1390, 1393, 1386, 1393, 1384, + 2553, 1392, 1407, 1392, 2553, 1394, 1395, 1449, 1411, 1411, - 2512, 1443, 1390, 2512, 1391, 1392, 1398, 2512, 1407, 1401, - 1456, 1403, 1396, 1408, 1403, 1413, 1424, 1417, 1423, 1467, - 1420, 2512, 1429, 2512, 1426, 2512, 1423, 1446, 2512, 1473, - 2512, 1431, 1416, 1476, 2512, 1477, 1434, 1439, 1421, 1481, - 1477, 1441, 1438, 1434, 1427, 1482, 1440, 1441, 1431, 1436, - 1448, 1493, 1448, 1496, 1492, 1456, 1457, 1453, 1497, 1445, - 1450, 1448, 1507, 1458, 1464, 1452, 1511, 1507, 1470, 1514, - 1475, 1464, 1458, 1518, 1460, 1461, 1475, 1478, 1478, 1524, - 1466, 1483, 1479, 1477, 1484, 1468, 1526, 1527, 1528, 1491, - 1484, 1483, 1483, 1478, 1496, 2512, 1487, 1493, 1498, 1485, + 1414, 1414, 1411, 1455, 1417, 1409, 1410, 2553, 1411, 2553, + 1421, 1413, 2553, 1419, 1424, 1425, 1422, 1466, 1414, 1429, + 1430, 1422, 2553, 1419, 1420, 1420, 1426, 1425, 1423, 1477, + 1438, 2553, 2553, 1479, 1426, 2553, 1427, 1428, 1434, 2553, + 1443, 1437, 1492, 1439, 1432, 1444, 1439, 1449, 1460, 1453, + 1459, 1449, 1504, 1457, 2553, 1466, 2553, 1463, 1508, 2553, + 1461, 1484, 2553, 1511, 2553, 1469, 1454, 1514, 2553, 1515, + 1472, 1477, 1459, 1519, 1515, 1479, 1476, 1472, 1465, 1520, + 1478, 1479, 1469, 1474, 1486, 1531, 1486, 1534, 1530, 1494, + 1495, 1491, 1535, 1483, 1488, 1486, 1545, 1496, 1502, 1490, - 1486, 1485, 1487, 1542, 2512, 1483, 1501, 1550, 1508, 1521, - 2512, 1553, 1506, 2512, 2512, 1497, 1508, 1557, 2512, 1503, - 1508, 1506, 1556, 1514, 1519, 1507, 1524, 1513, 1511, 1525, - 1512, 2512, 1514, 2512, 1517, 1526, 1569, 1512, 1517, 1577, - 1525, 1535, 1537, 2512, 1582, 1578, 1536, 1580, 2512, 1531, - 1587, 2512, 1530, 1545, 1533, 2512, 1543, 1544, 1593, 1551, - 1555, 2512, 1591, 1557, 1533, 1551, 1552, 1561, 1543, 1550, - 1562, 1561, 1552, 1602, 1554, 1550, 1610, 1552, 1553, 1613, - 1609, 1615, 1565, 1617, 1570, 1575, 1568, 2512, 1621, 1622, - 2512, 1571, 1624, 1566, 2512, 1569, 1579, 1623, 1571, 1586, + 1549, 1545, 1508, 1552, 1513, 1502, 1496, 1556, 1498, 1499, + 1513, 1516, 1516, 1562, 1504, 1521, 1517, 1515, 1522, 1506, + 1564, 1565, 1566, 1529, 1522, 1521, 1521, 1516, 1534, 2553, + 1525, 1531, 1536, 1523, 1524, 1523, 1525, 1580, 1526, 2553, + 1522, 1540, 1589, 2553, 1547, 1560, 2553, 1592, 1545, 2553, + 2553, 1536, 1547, 1596, 2553, 1542, 1547, 1545, 1595, 1553, + 1558, 1547, 1563, 1552, 1550, 1564, 1551, 2553, 1553, 2553, + 1556, 1565, 1608, 1551, 1556, 1616, 1564, 1574, 1576, 2553, + 1621, 1617, 1575, 1619, 2553, 1570, 1626, 2553, 1569, 1584, + 1572, 2553, 1582, 1583, 1632, 1590, 1594, 2553, 1630, 1596, - 1573, 1588, 1574, 1581, 1581, 1636, 1593, 1594, 1582, 1596, - 1582, 1642, 1595, 2512, 1639, 1590, 1587, 2512, 1589, 1602, - 1589, 1610, 2512, 1607, 1652, 1605, 1602, 1603, 2512, 1656, - 1615, 1598, 1600, 1616, 1609, 1599, 1615, 1616, 1625, 1615, - 1667, 1627, 1611, 1620, 1666, 2512, 1624, 1673, 2512, 1622, - 2512, 1616, 2512, 1623, 1677, 1673, 2512, 2512, 1636, 2512, - 1676, 1638, 1639, 1624, 1625, 1633, 1687, 1635, 1684, 1685, - 1640, 2512, 1635, 1653, 1640, 1653, 1648, 2512, 1645, 1650, - 1648, 1700, 1657, 1702, 1650, 1647, 1647, 2512, 1662, 1663, - 1664, 2512, 1665, 1655, 1667, 1712, 1665, 1714, 1656, 1664, + 1572, 1590, 1591, 1600, 1582, 1589, 1601, 1600, 1591, 1641, + 1593, 1589, 1649, 1591, 1592, 1652, 1648, 1654, 1604, 1656, + 1609, 1599, 1615, 1608, 2553, 1661, 1662, 2553, 1611, 1664, + 1606, 2553, 1609, 1619, 1663, 1611, 1626, 1613, 1628, 1614, + 1621, 1621, 1676, 1633, 1634, 1622, 1636, 1622, 1682, 1635, + 2553, 1679, 1630, 1627, 2553, 1629, 1642, 1629, 1650, 2553, + 1647, 1692, 1645, 1642, 1643, 2553, 1696, 1655, 1638, 1640, + 1656, 1649, 1639, 1655, 1656, 1665, 1655, 1707, 1667, 1651, + 1660, 1706, 2553, 1664, 1713, 2553, 1662, 2553, 1656, 2553, + 1663, 1717, 1718, 1715, 2553, 2553, 1677, 2553, 1717, 1679, - 1665, 1678, 2512, 1679, 1660, 1661, 1668, 1670, 2512, 1684, - 1681, 1721, 1682, 2512, 1686, 1671, 1671, 1686, 1679, 1678, - 1689, 1676, 2512, 1692, 1680, 1683, 1739, 1679, 1698, 1700, - 1693, 1692, 1701, 1703, 1707, 2512, 1697, 2512, 1701, 1692, - 1751, 1694, 1753, 1754, 1755, 1713, 1757, 2512, 1699, 2512, - 1754, 1716, 1717, 1704, 1712, 1723, 1710, 1721, 1707, 1705, - 1713, 1712, 1717, 1709, 1774, 1727, 1728, 1718, 1735, 1734, - 1775, 1719, 1738, 1739, 2512, 1744, 1737, 1742, 1729, 1744, - 1789, 1746, 1749, 1748, 1737, 1746, 2512, 1795, 2512, 2512, - 2512, 1756, 2512, 1797, 1739, 1799, 1800, 1743, 1802, 1750, + 1680, 1665, 1666, 1674, 1728, 1676, 1725, 1726, 1681, 2553, + 1676, 1694, 1681, 1694, 1689, 2553, 1686, 1691, 1689, 1741, + 1698, 1743, 1691, 1688, 1688, 2553, 1703, 1704, 1705, 2553, + 1706, 1696, 1708, 1753, 1706, 1755, 1697, 1705, 1706, 1719, + 2553, 1720, 1701, 1702, 1709, 1711, 2553, 1725, 1722, 1762, + 1723, 2553, 2553, 1727, 1712, 1712, 1727, 1720, 1719, 1730, + 1717, 2553, 1733, 1721, 1724, 1780, 1720, 1739, 1741, 1734, + 1733, 1742, 1744, 1748, 2553, 1738, 2553, 1742, 1733, 1792, + 1735, 1794, 1795, 1796, 1754, 1798, 2553, 1740, 2553, 1795, + 1757, 1758, 1745, 1753, 1764, 1751, 1762, 1748, 1746, 1754, - 1799, 1800, 1762, 1802, 1748, 1752, 1770, 1811, 1770, 2512, - 1761, 1751, 1810, 1776, 1769, 1765, 1819, 1762, 1764, 1763, - 1770, 1766, 1825, 1769, 2512, 1774, 1784, 1787, 1770, 1778, - 2512, 1773, 2512, 1785, 2512, 2512, 1790, 2512, 1791, 1791, - 1782, 1838, 1782, 1792, 1777, 1790, 2512, 1792, 1800, 1845, - 1786, 1788, 1785, 1809, 2512, 1796, 1803, 1804, 1807, 1796, - 2512, 1850, 1797, 1805, 1799, 1815, 1814, 1817, 1810, 1805, - 1805, 1817, 1812, 2512, 1823, 1811, 1864, 1815, 1827, 1872, - 2512, 1818, 1830, 1875, 1824, 1826, 1824, 1825, 1880, 1833, - 1820, 1835, 1840, 1837, 1886, 1887, 1888, 1845, 1890, 1891, + 1753, 1758, 1750, 1815, 1768, 1769, 1759, 1776, 1775, 1816, + 1760, 1779, 1780, 2553, 1785, 1778, 1783, 1770, 1785, 1830, + 1787, 1790, 1789, 1778, 1787, 2553, 1836, 2553, 2553, 2553, + 1797, 2553, 1838, 1780, 1840, 1841, 1784, 1843, 1791, 1840, + 1841, 1803, 1843, 1789, 1793, 1811, 1852, 1811, 2553, 1802, + 1792, 1851, 1817, 1810, 1806, 1860, 1803, 1805, 1804, 1811, + 1807, 1866, 1810, 2553, 1815, 1825, 1828, 1811, 1819, 2553, + 1814, 2553, 1826, 2553, 2553, 1831, 2553, 1832, 1832, 1823, + 1879, 1823, 1833, 1818, 1831, 2553, 1833, 1841, 1886, 1827, + 1829, 1826, 1850, 2553, 1837, 1844, 1845, 1848, 1837, 2553, - 1835, 1839, 1835, 1851, 1834, 1846, 1840, 2512, 1856, 1900, - 2512, 1857, 1842, 1860, 1851, 2512, 1852, 1866, 1862, 1855, - 1855, 2512, 2512, 2512, 1910, 2512, 2512, 1853, 1861, 1856, - 1909, 1875, 1872, 1917, 1878, 2512, 1919, 1861, 1921, 1864, - 1877, 1876, 1877, 1867, 1874, 2512, 1869, 1929, 1882, 1891, - 1884, 1928, 2512, 1875, 2512, 1887, 2512, 1931, 1937, 1879, - 1895, 1940, 1941, 1942, 2512, 1899, 1893, 1886, 1906, 1903, - 1895, 1899, 2512, 1946, 1895, 2512, 2512, 2512, 1895, 1903, - 1950, 1910, 1903, 1958, 1906, 1906, 1902, 1904, 1963, 1964, - 1906, 1922, 1907, 2512, 1968, 1915, 1922, 1971, 2512, 2512, + 1891, 1838, 1846, 1840, 1856, 1855, 1858, 1851, 1846, 1846, + 1858, 1853, 2553, 1864, 1852, 1905, 1856, 1868, 1913, 2553, + 1859, 1871, 1916, 1865, 1867, 1865, 1866, 1921, 1874, 1861, + 1876, 1881, 1878, 1927, 1928, 1929, 1886, 1931, 1932, 1876, + 1880, 1876, 1892, 1875, 1887, 1881, 2553, 1897, 1941, 2553, + 1898, 1883, 1901, 1892, 2553, 1893, 1907, 1903, 1896, 1896, + 2553, 2553, 2553, 1951, 2553, 2553, 1894, 1902, 1897, 1950, + 1916, 1913, 1958, 1919, 2553, 1960, 1902, 1962, 1905, 1918, + 1917, 1918, 1908, 1915, 2553, 1910, 1970, 1923, 1932, 1925, + 1969, 2553, 1916, 2553, 1928, 2553, 1972, 1978, 1920, 1936, - 1924, 1973, 1921, 2512, 1925, 1924, 2512, 1925, 2512, 1919, - 1919, 1936, 1937, 1982, 1928, 1984, 1985, 2512, 1986, 2512, - 2512, 2512, 2512, 1992, 1995, 1998, 1999, 2001, 2004, 2007, - 2010 + 1981, 1982, 1983, 2553, 1940, 1934, 1927, 1947, 1944, 1936, + 1940, 2553, 1987, 1936, 2553, 2553, 2553, 1936, 1944, 1991, + 1951, 1944, 1999, 1947, 1947, 1943, 1945, 2004, 2005, 1947, + 1963, 1948, 2553, 2009, 1956, 1963, 2012, 2553, 2553, 1965, + 2014, 1962, 2553, 1966, 1965, 2553, 1966, 2553, 1960, 1960, + 1977, 1978, 2023, 1969, 2025, 2026, 2553, 2027, 2553, 2553, + 2553, 2553, 2033, 2036, 2039, 2040, 2042, 2045, 2048, 2051 } ; -static const flex_int16_t yy_def[2132] = +static const flex_int16_t yy_def[2171] = { 0, - 2124, 2124, 2125, 2125, 2124, 2124, 2124, 2124, 2124, 2124, - 2123, 2123, 2123, 2123, 2123, 2126, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2127, - 2123, 2123, 2123, 2128, 15, 2123, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2129, 45, 45, 45, 45, + 2163, 2163, 2164, 2164, 2163, 2163, 2163, 2163, 2163, 2163, + 2162, 2162, 2162, 2162, 2162, 2165, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2166, + 2162, 2162, 2162, 2167, 15, 2162, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2168, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2126, 2123, 2123, - 2123, 2123, 2123, 2123, 2130, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2127, 2123, 2128, 2123, + 45, 45, 45, 45, 45, 45, 45, 45, 2165, 2162, + 2162, 2162, 2162, 2162, 2162, 2169, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2166, 2162, 2167, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2131, 45, 2129, 45, 45, 45, 45, 45, 45, + 2162, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2170, 45, 2168, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2130, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2169, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 45, 45, 45, 45, - 45, 45, 45, 2131, 2123, 2123, 114, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2170, 2162, 2162, 115, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1258,227 +1265,230 @@ static const flex_int16_t yy_def[2132] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 45, 45, - 45, 45, 45, 45, 2123, 45, 2123, 45, 114, 2123, + 45, 45, 45, 45, 45, 45, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 45, 45, 45, 45, 45, 45, 2162, + 45, 2162, 45, 115, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 2123, 2123, 2123, 45, 45, - 45, 45, 45, 2123, 45, 2123, 45, 114, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 45, 45, + 45, 45, 2162, 2162, 2162, 45, 45, 45, 45, 45, + 2162, 45, 2162, 45, 115, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 2123, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2123, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 2162, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 45, 2162, 45, 45, 2162, 45, 45, + 45, 2162, 45, 45, 45, 2162, 2162, 2162, 45, 45, + + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2162, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2162, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 45, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2162, 2162, 45, 45, 45, 45, 45, 45, + 2162, 2162, 45, 45, 45, 45, 45, 2162, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2162, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2162, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 2162, 45, 45, 45, 2162, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 2162, 45, 2162, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2162, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 2162, 45, 2162, 45, 2162, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, + 2162, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2123, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 2162, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 2162, 45, 45, + 2162, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 2162, 45, 45, 45, 45, 45, 2162, 45, 45, 45, + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2162, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 2162, + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, + 45, 2162, 2162, 45, 45, 2162, 45, 45, 45, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 2162, 45, 45, 2162, + 45, 45, 2162, 45, 2162, 45, 45, 45, 2162, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2123, 45, 45, 2123, 45, 45, 2123, 45, - 45, 2123, 45, 45, 45, 2123, 2123, 2123, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2123, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2123, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2123, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 2123, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 2162, 45, 45, 2162, 45, 45, 2162, + 2162, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2162, 45, 2162, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 45, 2162, 45, 45, 2162, 45, 45, + 45, 2162, 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 2162, 45, 45, + 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2123, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2123, 45, + 2162, 45, 45, 45, 2162, 45, 45, 45, 45, 2162, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2162, 45, 45, 2162, 45, 2162, 45, 2162, + 45, 45, 45, 45, 2162, 2162, 45, 2162, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 2123, 45, 45, - 45, 45, 45, 45, 2123, 2123, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2123, 2123, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2162, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, + 2162, 45, 45, 45, 45, 45, 2162, 45, 45, 45, + 45, 2162, 2162, 45, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 2162, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 2162, 2162, 2162, + 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2123, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 2123, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, - - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 2123, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 2123, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 2123, 45, 2123, - - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, - 45, 45, 45, 45, 2123, 2123, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 2123, 2123, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 2123, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 2123, 45, - 45, 2123, 2123, 45, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2123, - 45, 45, 45, 2123, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 2123, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - - 2123, 45, 45, 2123, 45, 45, 45, 2123, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 2123, 45, 2123, 45, 45, 2123, 45, - 2123, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 2123, 45, 45, 2123, 2123, 45, 45, 45, 2123, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 2123, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 45, 45, 2123, 45, - 45, 2123, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2123, 45, 45, - 2123, 45, 45, 45, 2123, 45, 45, 45, 45, 45, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 2162, + 45, 2162, 45, 2162, 2162, 45, 2162, 45, 45, 45, + 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 45, 2123, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 2123, 45, + 45, 45, 2162, 45, 45, 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 2123, 45, - 2123, 45, 2123, 45, 45, 45, 2123, 2123, 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 2123, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2123, 45, 45, - 45, 2123, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 45, 2162, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 2162, 2162, 2162, 45, 2162, 2162, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2162, 45, 45, 45, 45, 45, + 45, 2162, 45, 2162, 45, 2162, 45, 45, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 2123, 45, - 45, 45, 45, 2123, 45, 45, 45, 45, 45, 45, - 45, 45, 2123, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 2123, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2123, 45, 2123, + 45, 45, 45, 2162, 45, 45, 45, 45, 45, 45, + 45, 2162, 45, 45, 2162, 2162, 2162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 2123, 2123, - 2123, 45, 2123, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2123, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 2123, 45, 2123, 45, 2123, 2123, 45, 2123, 45, 45, - 45, 45, 45, 45, 45, 45, 2123, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 45, 45, 45, 45, - 2123, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 2123, 45, 45, - 2123, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 2123, 2123, 2123, 45, 2123, 2123, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2123, 45, 45, 45, 45, - 45, 45, 2123, 45, 2123, 45, 2123, 45, 45, 45, - 45, 45, 45, 45, 2123, 45, 45, 45, 45, 45, - 45, 45, 2123, 45, 45, 2123, 2123, 2123, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2123, 45, 45, 45, 45, 2123, 2123, - - 45, 45, 45, 2123, 45, 45, 2123, 45, 2123, 45, - 45, 45, 45, 45, 45, 45, 45, 2123, 45, 2123, - 2123, 2123, 0, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123 + 45, 45, 2162, 45, 45, 45, 45, 2162, 2162, 45, + 45, 45, 2162, 45, 45, 2162, 45, 2162, 45, 45, + 45, 45, 45, 45, 45, 45, 2162, 45, 2162, 2162, + 2162, 0, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162 } ; -static const flex_int16_t yy_nxt[2586] = +static const flex_int16_t yy_nxt[2627] = { 0, - 2123, 13, 14, 13, 2123, 15, 16, 2123, 17, 18, + 2162, 13, 14, 13, 2162, 15, 16, 2162, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 797, 37, 14, 37, 85, 25, 26, 38, 100, - 2123, 27, 37, 14, 37, 42, 28, 42, 38, 90, - 91, 29, 198, 30, 13, 14, 13, 89, 90, 25, - 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 798, 13, 14, 13, 33, 40, 101, 90, 91, 198, - 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, + 85, 810, 37, 14, 37, 86, 25, 26, 38, 101, + 2162, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 92, 29, 201, 30, 13, 14, 13, 90, 91, 25, + 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, + 811, 13, 14, 13, 33, 40, 102, 91, 92, 201, + 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, - 23, 24, 13, 14, 13, 89, 39, 103, 25, 26, + 23, 24, 13, 14, 13, 90, 39, 104, 25, 26, - 13, 14, 13, 27, 39, 42, 105, 42, 28, 42, - 106, 42, 41, 29, 107, 30, 110, 111, 92, 138, - 41, 25, 31, 103, 226, 227, 87, 139, 87, 105, - 32, 88, 88, 88, 88, 88, 33, 107, 106, 110, - 217, 111, 218, 34, 35, 44, 44, 44, 45, 45, + 13, 14, 13, 27, 39, 42, 106, 42, 28, 42, + 107, 42, 41, 29, 108, 30, 111, 112, 93, 139, + 41, 25, 31, 104, 229, 230, 88, 140, 88, 106, + 32, 89, 89, 89, 89, 89, 33, 108, 107, 111, + 220, 112, 221, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 45, 45, 45, 48, 45, 45, 49, 45, 50, 45, 51, 45, 52, 45, 45, 45, @@ -1486,287 +1496,292 @@ static const flex_int16_t yy_nxt[2586] = 57, 58, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 55, 45, 45, 45, 45, 45, 79, 250, - 80, 80, 80, 80, 80, 79, 105, 82, 82, 82, - 82, 82, 251, 81, 83, 83, 83, 83, 83, 79, - 81, 82, 82, 82, 82, 82, 136, 81, 108, 105, - 103, 119, 843, 137, 81, 120, 81, 166, 109, 121, - 135, 167, 122, 81, 157, 123, 186, 203, 100, 124, - 81, 108, 158, 846, 159, 188, 115, 81, 45, 160, - 161, 131, 116, 132, 45, 117, 109, 45, 847, 45, - 203, 45, 186, 45, 133, 113, 145, 146, 45, 45, + 76, 77, 78, 45, 45, 45, 45, 45, 80, 253, + 81, 81, 81, 81, 81, 80, 106, 83, 83, 83, + 83, 83, 254, 82, 84, 84, 84, 84, 84, 80, + 82, 83, 83, 83, 83, 83, 137, 82, 109, 106, + 104, 120, 850, 138, 82, 121, 82, 167, 110, 122, + 136, 168, 123, 82, 158, 124, 189, 206, 101, 125, + 82, 109, 159, 851, 160, 191, 116, 82, 45, 161, + 162, 132, 117, 133, 45, 118, 110, 45, 852, 45, + 206, 45, 189, 45, 134, 114, 146, 147, 45, 45, - 147, 45, 45, 188, 134, 101, 148, 45, 45, 45, + 148, 45, 45, 191, 135, 102, 149, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 125, 162, 45, 126, 127, 163, 45, 128, 129, 140, - 45, 107, 141, 110, 187, 164, 188, 195, 45, 142, - 130, 143, 45, 149, 45, 114, 186, 150, 175, 176, - 154, 151, 155, 848, 156, 168, 181, 200, 108, 169, - 187, 849, 170, 152, 191, 195, 182, 153, 109, 171, - 172, 183, 189, 850, 173, 174, 83, 83, 83, 83, - 83, 108, 202, 177, 200, 87, 178, 87, 187, 81, + 126, 163, 45, 127, 128, 164, 45, 129, 130, 141, + 45, 108, 142, 111, 190, 165, 191, 198, 45, 143, + 131, 144, 45, 150, 45, 115, 189, 151, 176, 177, + 155, 152, 156, 112, 157, 169, 183, 202, 109, 170, + 190, 853, 171, 153, 194, 198, 184, 154, 110, 172, + 173, 185, 192, 190, 174, 175, 236, 112, 237, 240, + 854, 178, 203, 179, 200, 202, 180, 187, 84, 84, - 88, 88, 88, 88, 88, 79, 179, 80, 80, 80, - 80, 80, 79, 180, 82, 82, 82, 82, 82, 202, - 81, 233, 81, 234, 190, 197, 199, 81, 83, 83, - 83, 83, 83, 88, 88, 88, 88, 88, 201, 195, - 851, 81, 99, 81, 88, 88, 88, 88, 88, 99, - 81, 197, 213, 220, 199, 235, 208, 237, 199, 236, - 265, 214, 221, 222, 81, 215, 201, 209, 241, 201, - 255, 242, 312, 238, 256, 243, 270, 275, 278, 99, - 276, 277, 279, 99, 290, 291, 199, 99, 263, 202, - 292, 271, 272, 273, 293, 99, 298, 306, 294, 99, + 84, 84, 84, 238, 258, 241, 181, 239, 259, 193, + 855, 82, 80, 182, 81, 81, 81, 81, 81, 203, + 200, 204, 268, 88, 205, 88, 856, 82, 89, 89, + 89, 89, 89, 80, 82, 83, 83, 83, 83, 83, + 84, 84, 84, 84, 84, 100, 335, 198, 82, 204, + 82, 205, 100, 82, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 211, 216, 244, 202, 269, 245, + 223, 82, 273, 246, 217, 212, 82, 301, 218, 224, + 225, 278, 100, 203, 279, 280, 100, 274, 275, 276, + 100, 302, 281, 293, 294, 202, 282, 266, 100, 319, - 312, 99, 99, 206, 281, 313, 266, 314, 312, 313, - 299, 207, 207, 207, 207, 207, 308, 330, 852, 314, - 207, 207, 207, 207, 207, 207, 303, 443, 320, 323, - 314, 313, 304, 322, 853, 316, 315, 324, 328, 282, - 283, 284, 317, 207, 207, 207, 207, 207, 207, 326, - 285, 320, 286, 373, 287, 288, 323, 289, 320, 344, - 324, 322, 345, 382, 396, 328, 415, 326, 401, 416, - 374, 331, 326, 329, 329, 329, 329, 329, 402, 444, - 346, 332, 329, 329, 329, 329, 329, 329, 347, 431, - 326, 432, 446, 449, 348, 446, 451, 453, 455, 540, + 336, 857, 100, 307, 100, 100, 209, 284, 204, 308, + 306, 205, 317, 318, 210, 210, 210, 210, 210, 318, + 387, 858, 319, 210, 210, 210, 210, 210, 210, 295, + 449, 317, 349, 296, 327, 350, 310, 297, 312, 318, + 317, 319, 285, 286, 287, 321, 210, 210, 210, 210, + 210, 210, 325, 288, 328, 289, 329, 290, 291, 320, + 292, 331, 327, 333, 322, 325, 351, 406, 378, 420, + 401, 859, 421, 388, 352, 325, 389, 407, 330, 329, + 353, 328, 450, 441, 331, 379, 453, 436, 337, 437, + 333, 334, 334, 334, 334, 334, 331, 456, 453, 460, - 397, 854, 524, 450, 439, 329, 329, 329, 329, 329, - 329, 482, 525, 451, 398, 446, 383, 483, 447, 384, - 453, 694, 651, 855, 585, 451, 455, 458, 458, 458, - 458, 458, 652, 773, 774, 856, 458, 458, 458, 458, - 458, 458, 460, 498, 514, 515, 550, 560, 499, 516, - 551, 561, 585, 579, 589, 617, 590, 541, 580, 458, - 458, 458, 458, 458, 458, 585, 609, 629, 618, 719, - 619, 718, 630, 695, 610, 724, 611, 612, 613, 717, - 614, 589, 725, 590, 721, 743, 845, 859, 744, 831, - 844, 860, 864, 592, 865, 866, 500, 719, 718, 867, + 334, 334, 334, 334, 334, 334, 402, 457, 458, 453, + 462, 489, 547, 521, 522, 458, 554, 490, 523, 331, + 403, 454, 460, 334, 334, 334, 334, 334, 334, 505, + 862, 595, 558, 445, 506, 531, 559, 458, 462, 465, + 465, 465, 465, 465, 467, 532, 705, 863, 465, 465, + 465, 465, 465, 465, 568, 588, 595, 639, 569, 595, + 589, 599, 640, 600, 756, 555, 864, 757, 661, 619, + 548, 465, 465, 465, 465, 465, 465, 620, 662, 621, + 622, 623, 507, 624, 602, 731, 732, 508, 599, 860, + 600, 45, 45, 45, 45, 45, 627, 861, 706, 737, - 832, 501, 45, 45, 45, 45, 45, 861, 862, 845, - 863, 45, 45, 45, 45, 45, 45, 857, 844, 868, - 869, 870, 871, 858, 872, 873, 874, 875, 876, 877, - 878, 879, 880, 881, 45, 45, 45, 45, 45, 45, - 882, 883, 886, 887, 888, 884, 889, 890, 891, 885, - 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, - 902, 903, 904, 905, 906, 907, 908, 909, 910, 911, - 913, 914, 912, 915, 916, 917, 918, 919, 920, 921, - 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, - 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, + 45, 45, 45, 45, 45, 45, 738, 845, 730, 628, + 865, 629, 731, 734, 732, 786, 787, 860, 846, 866, + 861, 867, 868, 45, 45, 45, 45, 45, 45, 869, + 870, 871, 872, 873, 875, 876, 880, 877, 878, 874, + 879, 881, 882, 883, 884, 885, 886, 887, 888, 889, + 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, + 902, 903, 904, 900, 905, 906, 907, 901, 908, 909, + 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, + 920, 921, 922, 923, 924, 925, 926, 927, 929, 930, + 928, 931, 932, 933, 934, 935, 936, 937, 938, 939, - 942, 943, 944, 945, 946, 947, 948, 949, 950, 952, - 953, 954, 957, 958, 959, 951, 962, 960, 955, 963, - 964, 965, 956, 961, 966, 967, 968, 969, 970, 971, - 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 978, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, - 1021, 1022, 1023, 1024, 1025, 1026, 1028, 1029, 1030, 1031, - 1027, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, + 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 969, 970, + 971, 974, 975, 976, 968, 979, 977, 972, 980, 981, + 982, 973, 978, 983, 984, 985, 986, 987, 988, 989, + 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, + 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, + 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, + 1020, 1021, 1022, 1023, 1024, 997, 1025, 1026, 1027, 1028, + 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, - 1051, 1053, 1054, 1055, 1052, 1056, 1057, 1058, 1059, 1060, - 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, - 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, - 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, - 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, - 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, - 1121, 1122, 1123, 1124, 1125, 1103, 1126, 1127, 1102, 1128, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1047, 1048, 1049, + 1050, 1046, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, + 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, + 1069, 1070, 1072, 1073, 1074, 1071, 1075, 1076, 1077, 1078, + 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, + 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, + 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, + 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, + 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, - 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, - 1149, 1150, 1151, 1152, 1153, 1155, 1156, 1157, 1158, 1159, - 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, - 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1180, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1179, - 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, - 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, - 1210, 1211, 1154, 1212, 1213, 1214, 1215, 1216, 1217, 1218, - 1219, 1220, 1221, 1222, 1224, 1223, 1225, 1226, 1227, 1228, - 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, + 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1125, + 1148, 1149, 1124, 1150, 1151, 1152, 1153, 1154, 1155, 1156, + 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1202, 1203, 1204, 1205, 1206, 1207, 1208, + 1209, 1210, 1211, 1201, 1212, 1213, 1214, 1215, 1216, 1217, + 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 1233, 1176, 1234, 1235, 1236, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, - 1249, 1222, 1223, 1250, 1251, 1252, 1253, 1254, 1255, 1256, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 1249, 1248, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1271, 1273, 1274, 1275, 1270, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, - 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, - 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1272, 1315, 1316, - 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, - 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, + 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1247, 1248, + 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, + 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, + 1296, 1298, 1299, 1300, 1295, 1301, 1302, 1303, 1304, 1305, + 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, + 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, + 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, - 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, - 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, - 1357, 1335, 1358, 1359, 1360, 1361, 1362, 1336, 1363, 1364, + 1336, 1337, 1338, 1339, 1297, 1340, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, - 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, - 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, - 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1414, 1415, - 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, + 1385, 1363, 1386, 1387, 1388, 1389, 1390, 1364, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, + 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, + 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, - 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1444, 1445, 1446, - 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, - 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1435, 1464, 1465, - 1413, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, + 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1443, + 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, + 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, + 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, - 1443, 1485, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1486, - 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, - 1504, 1505, 1506, 1507, 1508, 1510, 1511, 1514, 1512, 1509, - 1513, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, - 1524, 1525, 1526, 1528, 1529, 1530, 1531, 1527, 1532, 1533, + 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, + 1466, 1442, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, + 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, + 1513, 1514, 1515, 1474, 1516, 1518, 1519, 1520, 1521, 1522, + 1523, 1524, 1517, 1525, 1526, 1527, 1528, 1529, 1530, 1531, - 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, 1549, 1528, 1550, 1551, 1552, - 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, - 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, - 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1595, - 1592, 1596, 1597, 1593, 1598, 1599, 1594, 1600, 1601, 1602, - 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, - 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1623, - 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1622, + 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1542, + 1543, 1546, 1544, 1541, 1545, 1547, 1548, 1549, 1550, 1551, + 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1562, + 1563, 1564, 1565, 1561, 1566, 1567, 1568, 1569, 1570, 1571, + 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, + 1582, 1583, 1562, 1584, 1585, 1586, 1587, 1588, 1589, 1590, + 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, + 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, + 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, + 1621, 1622, 1623, 1624, 1625, 1629, 1626, 1630, 1631, 1627, - 1633, 1634, 1635, 1636, 1610, 1637, 1638, 1639, 1640, 1641, - 1642, 1643, 1644, 1646, 1647, 1648, 1649, 1650, 1651, 1652, - 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, - 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, - 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, - 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, - 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, - 1645, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, - 1712, 1713, 1714, 1715, 1716, 1690, 1717, 1718, 1719, 1720, + 1632, 1633, 1628, 1634, 1635, 1636, 1637, 1638, 1639, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, + 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1659, 1660, 1661, + 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1658, 1669, 1670, + 1671, 1672, 1646, 1673, 1674, 1675, 1676, 1677, 1678, 1679, + 1680, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, + 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, + 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, + 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, - 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, - 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, - 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, - 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, - 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, - 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, - 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, - 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, - 1812, 1813, 1814, 1815, 1811, 1816, 1817, 1818, 1819, 1820, - 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, + 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1681, 1739, + 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, + 1750, 1751, 1752, 1753, 1727, 1754, 1755, 1756, 1757, 1758, + 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, + 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, + 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, + 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, + 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, + 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, + 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, - 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, - 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, - 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, - 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, - 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, - 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, - 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, - 1901, 1902, 1903, 1904, 1905, 1907, 1908, 1906, 1909, 1910, - 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, - 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, + 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, + 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, + 1850, 1851, 1852, 1853, 1849, 1854, 1855, 1856, 1857, 1858, + 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, + 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, + 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, + 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, + 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, + 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, + 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, - 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, - 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, - 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, - 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, - 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, - 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, - 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, - 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, - 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, + 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, + 1939, 1940, 1941, 1942, 1943, 1944, 1946, 1947, 1945, 1948, + 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, + 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, + 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, + 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, + 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, + 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, - 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, - 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, - 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, - 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, - 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, - 2081, 2082, 2084, 2083, 2085, 2086, 2087, 2088, 2089, 2090, - 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, - 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, - 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, - 2121, 2122, 12, 12, 12, 36, 36, 36, 78, 97, + 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, + 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, + 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, + 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, + 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, + 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, + 2119, 2120, 2121, 2123, 2122, 2124, 2125, 2126, 2127, 2128, - 78, 99, 99, 99, 112, 112, 112, 185, 842, 185, - 204, 204, 204, 841, 840, 839, 838, 837, 836, 835, - 834, 833, 830, 829, 828, 827, 826, 825, 824, 823, - 822, 821, 820, 819, 818, 817, 816, 815, 814, 813, - 812, 811, 810, 809, 808, 807, 806, 805, 804, 803, - 802, 801, 800, 799, 796, 795, 794, 793, 792, 791, - 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, - 780, 779, 778, 777, 776, 775, 772, 771, 770, 769, - 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, - 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, + 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, + 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, + 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, + 2159, 2160, 2161, 12, 12, 12, 36, 36, 36, 79, + 98, 79, 100, 100, 100, 113, 113, 113, 188, 849, + 188, 207, 207, 207, 848, 847, 844, 843, 842, 841, + 840, 839, 838, 837, 836, 835, 834, 833, 832, 831, + 830, 829, 828, 827, 826, 825, 824, 823, 822, 821, + 820, 819, 818, 817, 816, 815, 814, 813, 812, 809, + 808, 807, 806, 805, 804, 803, 802, 801, 800, 799, - 748, 747, 746, 745, 742, 741, 740, 739, 738, 737, - 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, - 726, 723, 722, 720, 717, 716, 715, 714, 713, 712, - 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, - 701, 700, 699, 698, 697, 696, 693, 692, 691, 690, - 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, - 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, - 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, - 659, 658, 657, 656, 655, 654, 653, 650, 649, 648, - 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, + 798, 797, 796, 795, 794, 793, 792, 791, 790, 789, + 788, 785, 784, 783, 782, 781, 780, 779, 778, 777, + 776, 775, 774, 773, 772, 771, 770, 769, 768, 767, + 766, 765, 764, 763, 762, 761, 760, 759, 758, 755, + 754, 753, 752, 751, 750, 749, 748, 747, 746, 745, + 744, 743, 742, 741, 740, 739, 736, 735, 733, 730, + 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, + 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, + 709, 708, 707, 704, 703, 702, 701, 700, 699, 698, + 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, - 637, 636, 635, 634, 633, 632, 631, 628, 627, 626, - 625, 624, 623, 622, 621, 620, 616, 615, 608, 607, - 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, - 596, 595, 594, 593, 591, 588, 587, 586, 584, 583, - 582, 581, 578, 577, 576, 575, 574, 573, 572, 571, - 570, 569, 568, 567, 566, 565, 564, 563, 562, 559, - 558, 557, 556, 555, 554, 553, 552, 549, 548, 547, - 546, 545, 544, 543, 542, 539, 538, 537, 536, 535, - 534, 533, 532, 531, 530, 529, 528, 527, 526, 523, - 522, 521, 520, 519, 518, 517, 513, 512, 511, 510, + 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, + 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, + 667, 666, 665, 664, 663, 660, 659, 658, 657, 656, + 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, + 645, 644, 643, 642, 641, 638, 637, 636, 635, 634, + 633, 632, 631, 630, 626, 625, 618, 617, 616, 615, + 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, + 604, 603, 601, 598, 597, 596, 594, 593, 592, 591, + 590, 587, 586, 585, 584, 583, 582, 581, 580, 579, + 578, 577, 576, 575, 574, 573, 572, 571, 570, 567, - 509, 508, 507, 506, 505, 504, 503, 502, 497, 496, - 495, 494, 493, 492, 491, 490, 489, 488, 487, 486, - 485, 484, 481, 480, 479, 478, 477, 476, 475, 474, - 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, - 463, 462, 461, 459, 457, 456, 454, 452, 448, 445, - 442, 441, 440, 438, 437, 436, 435, 434, 433, 430, - 429, 428, 427, 426, 425, 424, 423, 422, 421, 420, - 419, 418, 417, 414, 413, 412, 411, 410, 409, 408, - 407, 406, 405, 404, 403, 400, 399, 395, 394, 393, - 392, 391, 390, 389, 388, 387, 386, 385, 381, 380, + 566, 565, 564, 563, 562, 561, 560, 557, 556, 553, + 552, 551, 550, 549, 546, 545, 544, 543, 542, 541, + 540, 539, 538, 537, 536, 535, 534, 533, 530, 529, + 528, 527, 526, 525, 524, 520, 519, 518, 517, 516, + 515, 514, 513, 512, 511, 510, 509, 504, 503, 502, + 501, 500, 499, 498, 497, 496, 495, 494, 493, 492, + 491, 488, 487, 486, 485, 484, 483, 482, 481, 480, + 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, + 469, 468, 466, 464, 463, 461, 459, 455, 452, 451, + 448, 447, 446, 444, 443, 442, 440, 439, 438, 435, - 379, 378, 377, 376, 375, 372, 371, 370, 369, 368, - 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, - 357, 356, 355, 354, 353, 352, 351, 350, 349, 343, - 342, 341, 340, 339, 338, 337, 336, 335, 334, 333, - 205, 327, 325, 321, 319, 318, 311, 310, 309, 307, - 305, 302, 301, 300, 297, 296, 295, 280, 274, 269, - 268, 267, 264, 262, 261, 260, 259, 258, 257, 254, - 253, 252, 249, 248, 247, 246, 245, 244, 240, 239, - 232, 231, 230, 229, 228, 225, 224, 223, 219, 216, - 212, 211, 210, 205, 196, 194, 193, 192, 184, 165, + 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, + 424, 423, 422, 419, 418, 417, 416, 415, 414, 413, + 412, 411, 410, 409, 408, 405, 404, 400, 399, 398, + 397, 396, 395, 394, 393, 392, 391, 390, 386, 385, + 384, 383, 382, 381, 380, 377, 376, 375, 374, 373, + 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, + 362, 361, 360, 359, 358, 357, 356, 355, 354, 348, + 347, 346, 345, 344, 343, 342, 341, 340, 339, 338, + 208, 332, 330, 326, 324, 323, 316, 315, 314, 313, + 311, 309, 305, 304, 303, 300, 299, 298, 283, 277, - 144, 118, 104, 102, 43, 98, 96, 95, 86, 43, - 2123, 11, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123 + 272, 271, 270, 267, 265, 264, 263, 262, 261, 260, + 257, 256, 255, 252, 251, 250, 249, 248, 247, 243, + 242, 235, 234, 233, 232, 231, 228, 227, 226, 222, + 219, 215, 214, 213, 208, 199, 197, 196, 195, 186, + 166, 145, 119, 105, 103, 43, 99, 97, 96, 87, + 43, 2162, 11, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162 } ; -static const flex_int16_t yy_chk[2586] = +static const flex_int16_t yy_chk[2627] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 668, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 678, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, - 28, 1, 106, 1, 5, 5, 5, 26, 32, 1, + 28, 1, 107, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 668, 8, 8, 8, 1, 8, 44, 27, 28, 106, + 678, 8, 8, 8, 1, 8, 44, 27, 28, 107, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 48, 2, 2, 10, 10, 10, 2, 6, 37, 50, 37, 2, 42, 51, 42, 9, 2, 52, 2, 54, 55, 31, 64, - 10, 2, 2, 48, 127, 127, 25, 64, 25, 50, + 10, 2, 2, 48, 128, 128, 25, 64, 25, 50, 2, 25, 25, 25, 25, 25, 2, 52, 51, 54, - 121, 55, 121, 2, 2, 15, 15, 15, 15, 15, + 122, 55, 122, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1774,267 +1789,272 @@ static const flex_int16_t yy_chk[2586] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 145, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 146, 17, 17, 17, 17, 17, 19, 62, 19, 19, 19, - 19, 19, 145, 17, 20, 20, 20, 20, 20, 22, + 19, 19, 146, 17, 20, 20, 20, 20, 20, 22, 19, 22, 22, 22, 22, 22, 63, 20, 53, 62, - 57, 59, 716, 63, 22, 59, 17, 73, 53, 59, - 62, 73, 59, 19, 70, 59, 89, 111, 99, 59, - 20, 53, 70, 720, 70, 91, 57, 22, 45, 70, + 57, 59, 719, 63, 22, 59, 17, 73, 53, 59, + 62, 73, 59, 19, 70, 59, 90, 112, 100, 59, + 20, 53, 70, 720, 70, 92, 57, 22, 45, 70, 70, 61, 57, 61, 45, 57, 53, 45, 721, 45, - 111, 45, 89, 45, 61, 56, 67, 67, 45, 45, + 112, 45, 90, 45, 61, 56, 67, 67, 45, 45, - 67, 45, 56, 91, 61, 99, 67, 45, 45, 45, + 67, 45, 56, 92, 61, 100, 67, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 60, 71, 56, 60, 60, 71, 56, 60, 60, 65, - 56, 69, 65, 76, 90, 71, 94, 103, 56, 65, - 60, 65, 56, 68, 56, 56, 92, 68, 75, 75, - 69, 68, 69, 722, 69, 74, 76, 108, 75, 74, - 90, 723, 74, 68, 94, 103, 76, 68, 75, 74, - 74, 76, 92, 724, 74, 74, 79, 79, 79, 79, - 79, 75, 110, 75, 108, 81, 75, 81, 93, 79, + 56, 69, 65, 76, 91, 71, 95, 104, 56, 65, + 60, 65, 56, 68, 56, 56, 93, 68, 75, 75, + 69, 68, 69, 78, 69, 74, 76, 108, 75, 74, + 91, 722, 74, 68, 95, 104, 76, 68, 75, 74, + 74, 76, 93, 94, 74, 74, 134, 78, 134, 136, + 723, 75, 109, 75, 106, 108, 75, 78, 80, 80, - 81, 81, 81, 81, 81, 80, 75, 80, 80, 80, - 80, 80, 82, 75, 82, 82, 82, 82, 82, 110, - 80, 133, 79, 133, 93, 105, 107, 82, 83, 83, - 83, 83, 83, 87, 87, 87, 87, 87, 109, 115, - 725, 83, 101, 80, 88, 88, 88, 88, 88, 101, - 82, 105, 119, 123, 107, 134, 115, 135, 156, 134, - 158, 119, 123, 123, 83, 119, 109, 115, 138, 179, - 149, 138, 186, 135, 149, 138, 162, 164, 165, 101, - 164, 164, 165, 101, 168, 168, 156, 101, 156, 181, - 169, 162, 162, 162, 169, 101, 173, 179, 169, 101, + 80, 80, 80, 135, 150, 136, 75, 135, 150, 94, + 724, 80, 81, 75, 81, 81, 81, 81, 81, 109, + 106, 110, 159, 82, 111, 82, 725, 81, 82, 82, + 82, 82, 82, 83, 80, 83, 83, 83, 83, 83, + 84, 84, 84, 84, 84, 102, 211, 116, 83, 110, + 81, 111, 102, 84, 88, 88, 88, 88, 88, 89, + 89, 89, 89, 89, 116, 120, 139, 157, 159, 139, + 124, 83, 163, 139, 120, 116, 84, 174, 120, 124, + 124, 165, 102, 178, 165, 165, 102, 163, 163, 163, + 102, 174, 166, 169, 169, 157, 166, 157, 102, 191, - 186, 101, 101, 114, 167, 187, 158, 188, 189, 190, - 173, 114, 114, 114, 114, 114, 181, 208, 726, 191, - 114, 114, 114, 114, 114, 114, 177, 310, 195, 198, - 188, 187, 177, 197, 727, 190, 189, 199, 203, 167, - 167, 167, 191, 114, 114, 114, 114, 114, 114, 201, - 167, 195, 167, 248, 167, 167, 198, 167, 209, 221, - 199, 197, 221, 256, 268, 203, 284, 306, 271, 284, - 248, 208, 201, 207, 207, 207, 207, 207, 271, 310, - 222, 209, 207, 207, 207, 207, 207, 207, 222, 299, - 306, 299, 312, 319, 222, 315, 320, 322, 324, 406, + 211, 726, 102, 179, 102, 102, 115, 168, 181, 179, + 178, 183, 189, 190, 115, 115, 115, 115, 115, 193, + 259, 728, 191, 115, 115, 115, 115, 115, 115, 170, + 314, 192, 224, 170, 200, 224, 181, 170, 183, 190, + 189, 194, 168, 168, 168, 193, 115, 115, 115, 115, + 115, 115, 198, 168, 201, 168, 202, 168, 168, 192, + 168, 204, 200, 206, 194, 212, 225, 274, 251, 287, + 271, 729, 287, 259, 225, 198, 259, 274, 306, 202, + 225, 201, 314, 306, 204, 251, 317, 302, 212, 302, + 206, 210, 210, 210, 210, 210, 310, 324, 320, 327, - 268, 728, 390, 319, 306, 207, 207, 207, 207, 207, - 207, 354, 390, 332, 268, 312, 256, 354, 315, 256, - 322, 560, 515, 729, 451, 320, 324, 329, 329, 329, - 329, 329, 515, 644, 644, 730, 329, 329, 329, 329, - 329, 329, 332, 369, 382, 382, 416, 425, 369, 382, - 416, 425, 451, 444, 457, 482, 457, 406, 444, 329, - 329, 329, 329, 329, 329, 460, 479, 493, 482, 590, - 482, 589, 493, 560, 479, 596, 479, 479, 479, 592, - 479, 457, 596, 457, 592, 614, 719, 732, 614, 704, - 718, 733, 735, 460, 736, 737, 369, 590, 589, 738, + 210, 210, 210, 210, 210, 210, 271, 324, 325, 317, + 329, 359, 411, 387, 387, 337, 418, 359, 387, 310, + 271, 320, 327, 210, 210, 210, 210, 210, 210, 374, + 733, 458, 421, 310, 374, 395, 421, 325, 329, 334, + 334, 334, 334, 334, 337, 395, 568, 734, 334, 334, + 334, 334, 334, 334, 430, 450, 467, 500, 430, 458, + 450, 464, 500, 464, 624, 418, 735, 624, 522, 486, + 411, 334, 334, 334, 334, 334, 334, 486, 522, 486, + 486, 486, 374, 486, 467, 599, 600, 374, 464, 731, + 464, 465, 465, 465, 465, 465, 489, 732, 568, 606, - 704, 369, 458, 458, 458, 458, 458, 734, 734, 719, - 734, 458, 458, 458, 458, 458, 458, 731, 718, 739, - 740, 741, 742, 731, 743, 744, 745, 746, 747, 748, - 749, 750, 751, 752, 458, 458, 458, 458, 458, 458, - 753, 754, 755, 756, 757, 754, 758, 759, 760, 754, - 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, - 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, - 782, 783, 781, 784, 786, 787, 788, 789, 790, 791, - 792, 793, 794, 795, 796, 798, 799, 800, 801, 802, - 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, + 465, 465, 465, 465, 465, 465, 606, 715, 602, 489, + 736, 489, 599, 602, 600, 654, 654, 731, 715, 737, + 732, 738, 739, 465, 465, 465, 465, 465, 465, 740, + 741, 742, 743, 744, 745, 746, 748, 747, 747, 744, + 747, 749, 750, 751, 752, 753, 754, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 768, 769, 770, 767, 771, 772, 773, 767, 775, 776, + 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, + 794, 797, 799, 800, 801, 802, 803, 804, 805, 806, - 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, - 823, 823, 824, 825, 826, 821, 828, 827, 823, 829, - 830, 832, 823, 827, 833, 834, 835, 836, 837, 838, - 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, - 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, - 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, - 870, 871, 872, 873, 845, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, - 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, - 895, 900, 901, 902, 903, 904, 905, 906, 909, 910, + 807, 808, 809, 811, 812, 813, 814, 815, 816, 817, + 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, + 837, 838, 839, 840, 835, 842, 841, 837, 843, 844, + 846, 837, 841, 847, 848, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, + 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, + 874, 876, 877, 878, 879, 880, 881, 882, 883, 884, + 885, 886, 887, 888, 889, 861, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, - 911, 912, 913, 914, 917, 918, 919, 920, 921, 923, - 924, 925, 926, 927, 924, 928, 929, 930, 931, 932, - 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, - 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, - 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, - 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, - 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, - 997, 998, 999, 1000, 1001, 978, 1002, 1003, 977, 1004, - 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1013, 1014, 1015, + 904, 906, 907, 908, 909, 910, 911, 912, 913, 914, + 915, 911, 916, 917, 918, 919, 920, 921, 922, 925, + 926, 927, 928, 929, 930, 933, 934, 935, 936, 937, + 939, 940, 941, 942, 943, 940, 944, 945, 946, 947, + 948, 951, 952, 953, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, + 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, + 980, 981, 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1006, 1007, 1008, 1009, 1010, 1011, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, - 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1035, 1036, 1037, - 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, - 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, - 1058, 1059, 1061, 1062, 1063, 1064, 1066, 1067, 1068, 1056, - 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, - 1079, 1080, 1081, 1082, 1083, 1085, 1086, 1087, 1088, 1089, - 1090, 1091, 1031, 1092, 1093, 1094, 1095, 1096, 1097, 1098, - 1099, 1100, 1101, 1102, 1105, 1103, 1106, 1107, 1108, 1109, - 1110, 1112, 1113, 1114, 1116, 1117, 1118, 1119, 1120, 1121, + 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 997, + 1021, 1022, 996, 1023, 1024, 1025, 1026, 1027, 1028, 1029, + 1030, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, + 1041, 1042, 1043, 1044, 1046, 1047, 1048, 1049, 1050, 1051, + 1052, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, + 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, + 1073, 1074, 1075, 1076, 1077, 1078, 1080, 1081, 1082, 1083, + 1084, 1086, 1087, 1075, 1088, 1089, 1090, 1091, 1092, 1093, + 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, + 1105, 1106, 1107, 1108, 1109, 1110, 1050, 1111, 1112, 1113, - 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, - 1133, 1102, 1103, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1154, 1155, 1156, 1157, 1158, 1154, 1159, 1160, - 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, - 1181, 1182, 1183, 1184, 1185, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1196, 1198, 1199, 1155, 1200, 1202, - 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, - 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1222, 1223, + 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, + 1124, 1127, 1125, 1128, 1129, 1130, 1131, 1132, 1134, 1135, + 1136, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, + 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1155, 1124, 1125, + 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, + 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1176, + 1177, 1178, 1179, 1180, 1176, 1181, 1182, 1183, 1184, 1185, + 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, + 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, + 1206, 1207, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, - 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1232, 1233, 1234, - 1235, 1236, 1237, 1238, 1240, 1241, 1242, 1243, 1244, 1245, - 1246, 1222, 1248, 1249, 1250, 1251, 1252, 1223, 1253, 1254, - 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1268, 1270, 1272, 1273, 1274, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1287, 1288, - 1289, 1290, 1292, 1293, 1294, 1295, 1296, 1297, 1299, 1301, - 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, - 1313, 1314, 1315, 1316, 1318, 1319, 1320, 1321, 1322, 1323, - 1324, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, + 1217, 1218, 1219, 1221, 1177, 1222, 1223, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1247, 1248, + 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1257, 1258, 1259, + 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 1247, 1273, 1274, 1275, 1276, 1277, 1248, 1278, 1279, + 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, + 1290, 1291, 1293, 1295, 1297, 1298, 1299, 1300, 1301, 1302, + 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1312, 1313, + 1314, 1315, 1317, 1318, 1319, 1320, 1321, 1322, 1324, 1326, - 1336, 1338, 1339, 1340, 1341, 1342, 1344, 1345, 1346, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1335, 1365, 1366, - 1310, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, - 1344, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1395, 1387, - 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, - 1408, 1410, 1411, 1412, 1413, 1414, 1415, 1418, 1417, 1413, - 1417, 1420, 1421, 1424, 1425, 1426, 1427, 1428, 1429, 1430, - 1432, 1433, 1434, 1435, 1437, 1438, 1439, 1434, 1440, 1441, + 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, + 1338, 1339, 1340, 1341, 1342, 1344, 1345, 1346, 1347, 1348, + 1349, 1350, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, + 1361, 1362, 1363, 1364, 1366, 1367, 1368, 1369, 1370, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + 1363, 1336, 1393, 1394, 1396, 1397, 1398, 1399, 1400, 1401, + 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, + 1412, 1413, 1414, 1372, 1415, 1416, 1417, 1418, 1419, 1420, + 1421, 1423, 1415, 1426, 1427, 1428, 1429, 1430, 1431, 1432, - 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, - 1453, 1454, 1455, 1456, 1457, 1458, 1435, 1459, 1461, 1462, - 1463, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, - 1474, 1475, 1476, 1478, 1480, 1481, 1483, 1484, 1485, 1486, - 1487, 1488, 1489, 1490, 1491, 1493, 1494, 1495, 1496, 1497, - 1498, 1499, 1500, 1502, 1503, 1505, 1506, 1507, 1509, 1510, - 1509, 1511, 1512, 1509, 1513, 1514, 1509, 1515, 1516, 1517, - 1518, 1519, 1520, 1521, 1523, 1525, 1527, 1528, 1530, 1532, - 1533, 1534, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1542, + 1433, 1434, 1435, 1436, 1437, 1439, 1440, 1441, 1442, 1443, + 1444, 1447, 1446, 1442, 1446, 1449, 1450, 1453, 1454, 1455, + 1456, 1457, 1458, 1459, 1460, 1462, 1463, 1464, 1465, 1466, + 1468, 1469, 1470, 1465, 1471, 1472, 1474, 1475, 1476, 1477, + 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, + 1488, 1489, 1466, 1490, 1492, 1493, 1494, 1496, 1497, 1498, + 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1509, + 1511, 1512, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, + 1522, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1534, + 1535, 1537, 1538, 1539, 1541, 1542, 1541, 1543, 1544, 1541, - 1553, 1554, 1555, 1556, 1528, 1557, 1558, 1559, 1560, 1561, - 1562, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, - 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, - 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, - 1591, 1592, 1593, 1594, 1595, 1597, 1598, 1599, 1600, 1601, - 1602, 1603, 1604, 1606, 1607, 1608, 1609, 1610, 1612, 1613, - 1616, 1617, 1618, 1620, 1621, 1622, 1623, 1624, 1625, 1626, - 1563, 1627, 1628, 1629, 1630, 1631, 1633, 1635, 1636, 1637, - 1638, 1639, 1640, 1641, 1642, 1610, 1643, 1645, 1646, 1647, - 1648, 1650, 1651, 1653, 1654, 1655, 1657, 1658, 1659, 1660, + 1545, 1546, 1541, 1547, 1548, 1549, 1550, 1551, 1552, 1553, + 1554, 1556, 1558, 1559, 1561, 1562, 1564, 1566, 1567, 1568, + 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, + 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1576, 1587, 1588, + 1589, 1590, 1562, 1591, 1592, 1593, 1594, 1595, 1596, 1596, + 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, + 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, + 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, + 1627, 1628, 1629, 1631, 1632, 1633, 1634, 1635, 1636, 1637, + 1638, 1639, 1641, 1642, 1643, 1645, 1646, 1648, 1649, 1652, - 1661, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1686, 1687, 1689, 1690, 1692, 1693, - 1694, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1715, - 1716, 1717, 1719, 1720, 1721, 1722, 1724, 1725, 1726, 1727, - 1728, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, - 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1747, 1748, 1750, - 1752, 1754, 1755, 1756, 1750, 1759, 1761, 1762, 1763, 1764, - 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1773, 1774, 1775, + 1653, 1654, 1656, 1657, 1658, 1659, 1660, 1661, 1597, 1662, + 1663, 1664, 1665, 1666, 1667, 1669, 1671, 1672, 1673, 1674, + 1675, 1676, 1677, 1678, 1646, 1679, 1681, 1682, 1683, 1684, + 1686, 1687, 1689, 1690, 1691, 1693, 1694, 1695, 1696, 1697, + 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, + 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, + 1719, 1720, 1721, 1722, 1723, 1724, 1726, 1727, 1729, 1730, + 1731, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1752, + 1753, 1754, 1756, 1757, 1758, 1759, 1761, 1762, 1763, 1764, - 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, - 1787, 1789, 1790, 1791, 1793, 1794, 1795, 1796, 1797, 1798, - 1799, 1800, 1801, 1802, 1804, 1805, 1806, 1807, 1808, 1810, - 1811, 1812, 1813, 1815, 1816, 1817, 1818, 1819, 1820, 1821, - 1822, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, - 1833, 1834, 1835, 1837, 1839, 1840, 1841, 1842, 1843, 1844, - 1845, 1846, 1847, 1849, 1851, 1852, 1853, 1854, 1855, 1856, - 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1861, 1864, 1865, - 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1876, - 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, + 1765, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, + 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1784, 1785, 1787, + 1789, 1791, 1792, 1793, 1787, 1794, 1797, 1799, 1800, 1801, + 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1811, 1812, + 1813, 1814, 1815, 1817, 1818, 1819, 1820, 1821, 1822, 1823, + 1824, 1825, 1827, 1828, 1829, 1831, 1832, 1833, 1834, 1835, + 1836, 1837, 1838, 1839, 1840, 1842, 1843, 1844, 1845, 1846, + 1848, 1849, 1850, 1851, 1854, 1855, 1856, 1857, 1858, 1859, + 1860, 1861, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, + 1871, 1872, 1873, 1874, 1876, 1878, 1879, 1880, 1881, 1882, - 1888, 1892, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, - 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1911, 1912, - 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, - 1923, 1924, 1926, 1927, 1928, 1929, 1930, 1932, 1934, 1937, - 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1948, 1949, - 1950, 1951, 1952, 1953, 1954, 1956, 1957, 1958, 1959, 1960, - 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, - 1972, 1973, 1975, 1976, 1977, 1978, 1979, 1980, 1982, 1983, - 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, - 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 1883, 1884, 1885, 1886, 1888, 1890, 1891, 1892, 1893, 1894, + 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1900, 1903, + 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, + 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, + 1925, 1927, 1931, 1933, 1934, 1935, 1936, 1937, 1938, 1939, + 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1950, + 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, + 1961, 1962, 1963, 1965, 1966, 1967, 1968, 1969, 1971, 1973, + 1976, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1987, + 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1998, - 2004, 2005, 2006, 2007, 2009, 2010, 2012, 2013, 2014, 2015, - 2017, 2018, 2019, 2020, 2021, 2025, 2028, 2029, 2030, 2031, - 2032, 2033, 2034, 2035, 2037, 2038, 2039, 2040, 2041, 2042, - 2043, 2044, 2045, 2047, 2048, 2049, 2050, 2051, 2052, 2054, - 2056, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2066, 2067, - 2068, 2069, 2070, 2069, 2071, 2072, 2074, 2075, 2079, 2080, - 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, - 2091, 2092, 2093, 2095, 2096, 2097, 2098, 2101, 2102, 2103, - 2105, 2106, 2108, 2110, 2111, 2112, 2113, 2114, 2115, 2116, - 2117, 2119, 2124, 2124, 2124, 2125, 2125, 2125, 2126, 2127, + 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, 2011, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2021, + 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, + 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, + 2042, 2043, 2044, 2045, 2046, 2048, 2049, 2051, 2052, 2053, + 2054, 2056, 2057, 2058, 2059, 2060, 2064, 2067, 2068, 2069, + 2070, 2071, 2072, 2073, 2074, 2076, 2077, 2078, 2079, 2080, + 2081, 2082, 2083, 2084, 2086, 2087, 2088, 2089, 2090, 2091, + 2093, 2095, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2105, + 2106, 2107, 2108, 2109, 2108, 2110, 2111, 2113, 2114, 2118, - 2126, 2128, 2128, 2128, 2129, 2129, 2129, 2130, 715, 2130, - 2131, 2131, 2131, 713, 712, 711, 710, 709, 708, 707, - 706, 705, 703, 702, 701, 699, 698, 697, 696, 695, - 694, 693, 692, 691, 690, 689, 688, 687, 685, 684, - 683, 682, 681, 680, 679, 678, 677, 675, 674, 673, - 672, 671, 670, 669, 667, 666, 665, 664, 663, 662, - 661, 660, 658, 657, 656, 655, 654, 653, 652, 651, - 650, 649, 648, 647, 646, 645, 643, 642, 641, 640, - 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, - 628, 627, 626, 625, 624, 623, 622, 621, 620, 619, + 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, + 2129, 2130, 2131, 2132, 2134, 2135, 2136, 2137, 2140, 2141, + 2142, 2144, 2145, 2147, 2149, 2150, 2151, 2152, 2153, 2154, + 2155, 2156, 2158, 2163, 2163, 2163, 2164, 2164, 2164, 2165, + 2166, 2165, 2167, 2167, 2167, 2168, 2168, 2168, 2169, 718, + 2169, 2170, 2170, 2170, 717, 716, 714, 713, 712, 710, + 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, + 699, 698, 696, 695, 694, 693, 692, 691, 690, 689, + 688, 687, 685, 684, 683, 682, 681, 680, 679, 677, + 676, 675, 674, 673, 672, 671, 670, 668, 667, 666, - 618, 617, 616, 615, 613, 612, 611, 610, 609, 608, - 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, - 597, 595, 594, 591, 585, 584, 583, 582, 581, 580, - 578, 577, 575, 574, 572, 571, 570, 569, 568, 567, - 566, 565, 564, 563, 562, 561, 559, 558, 557, 556, - 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, - 545, 544, 543, 541, 539, 538, 537, 536, 535, 534, - 533, 532, 531, 530, 529, 528, 527, 526, 525, 524, - 522, 521, 520, 519, 518, 517, 516, 514, 513, 512, - 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, + 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, + 655, 653, 652, 651, 650, 649, 648, 647, 646, 645, + 644, 643, 642, 641, 640, 638, 637, 636, 635, 634, + 633, 632, 631, 630, 629, 628, 627, 626, 625, 623, + 622, 621, 620, 619, 618, 617, 616, 615, 614, 613, + 612, 611, 610, 609, 608, 607, 605, 604, 601, 595, + 594, 593, 592, 591, 590, 589, 587, 586, 584, 583, + 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, + 571, 570, 569, 567, 566, 565, 564, 563, 562, 561, + 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, - 501, 500, 499, 497, 496, 495, 494, 492, 491, 490, - 489, 488, 487, 486, 484, 483, 481, 480, 477, 476, - 475, 474, 473, 472, 470, 469, 468, 467, 466, 465, - 464, 463, 462, 461, 459, 455, 453, 452, 450, 449, - 448, 445, 443, 442, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 431, 430, 429, 428, 427, 426, 424, - 423, 422, 421, 420, 419, 418, 417, 415, 414, 413, - 412, 410, 409, 408, 407, 405, 404, 403, 402, 401, - 400, 399, 398, 397, 396, 395, 394, 393, 391, 389, - 388, 387, 386, 385, 384, 383, 381, 380, 379, 378, + 550, 548, 546, 545, 544, 543, 542, 541, 540, 539, + 538, 537, 536, 535, 534, 533, 532, 531, 529, 528, + 527, 526, 525, 524, 523, 521, 520, 519, 518, 517, + 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, + 506, 504, 503, 502, 501, 499, 498, 497, 496, 495, + 494, 493, 491, 490, 488, 487, 484, 483, 482, 481, + 480, 479, 477, 476, 475, 474, 473, 472, 471, 470, + 469, 468, 466, 462, 460, 459, 457, 456, 455, 452, + 451, 449, 448, 446, 445, 444, 443, 442, 441, 440, + 439, 438, 437, 436, 435, 434, 433, 432, 431, 429, - 377, 376, 375, 374, 373, 372, 371, 370, 368, 367, - 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, - 356, 355, 353, 352, 351, 350, 349, 348, 347, 346, - 345, 344, 343, 342, 341, 340, 339, 338, 337, 336, - 335, 334, 333, 331, 328, 326, 323, 321, 318, 311, - 309, 308, 307, 305, 304, 303, 302, 301, 300, 298, - 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, - 287, 286, 285, 283, 282, 281, 280, 279, 278, 277, - 276, 275, 274, 273, 272, 270, 269, 267, 266, 265, - 264, 263, 262, 261, 260, 259, 258, 257, 255, 254, + 428, 427, 426, 425, 424, 423, 422, 420, 419, 417, + 415, 414, 413, 412, 410, 409, 408, 407, 406, 405, + 404, 403, 402, 401, 400, 399, 398, 396, 394, 393, + 392, 391, 390, 389, 388, 386, 385, 384, 383, 382, + 381, 380, 379, 378, 377, 376, 375, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 360, 358, 357, 356, 355, 354, 353, 352, 351, 350, + 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, + 339, 338, 336, 333, 331, 328, 326, 323, 316, 315, + 313, 312, 311, 309, 308, 307, 305, 304, 303, 301, - 253, 252, 251, 250, 249, 247, 246, 244, 243, 242, - 241, 240, 239, 238, 237, 236, 235, 234, 233, 232, - 231, 230, 229, 228, 227, 226, 225, 224, 223, 220, - 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, - 204, 202, 200, 196, 194, 192, 184, 183, 182, 180, - 178, 176, 175, 174, 172, 171, 170, 166, 163, 161, - 160, 159, 157, 155, 154, 153, 152, 151, 150, 148, - 147, 146, 144, 143, 142, 141, 140, 139, 137, 136, - 132, 131, 130, 129, 128, 126, 125, 124, 122, 120, - 118, 117, 116, 112, 104, 102, 97, 96, 77, 72, + 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, + 290, 289, 288, 286, 285, 284, 283, 282, 281, 280, + 279, 278, 277, 276, 275, 273, 272, 270, 269, 268, + 267, 266, 265, 264, 263, 262, 261, 260, 258, 257, + 256, 255, 254, 253, 252, 250, 249, 247, 246, 245, + 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, + 234, 233, 232, 231, 230, 229, 228, 227, 226, 223, + 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, + 207, 205, 203, 199, 197, 195, 187, 186, 185, 184, + 182, 180, 177, 176, 175, 173, 172, 171, 167, 164, - 66, 58, 49, 47, 43, 41, 39, 38, 24, 14, - 11, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, - 2123, 2123, 2123, 2123, 2123 + 162, 161, 160, 158, 156, 155, 154, 153, 152, 151, + 149, 148, 147, 145, 144, 143, 142, 141, 140, 138, + 137, 133, 132, 131, 130, 129, 127, 126, 125, 123, + 121, 119, 118, 117, 113, 105, 103, 98, 97, 77, + 72, 66, 58, 49, 47, 43, 41, 39, 38, 24, + 14, 11, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, 2162, + 2162, 2162, 2162, 2162, 2162, 2162 } ; static yy_state_type yy_last_accepting_state; @@ -2043,32 +2063,32 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[218] = +static const flex_int16_t yy_rule_linenum[221] = { 0, 146, 148, 150, 155, 156, 161, 162, 163, 175, 178, 183, 190, 199, 208, 217, 226, 235, 244, 253, 263, 272, 281, 290, 299, 308, 317, 326, 335, 344, 353, 362, 371, 380, 389, 398, 410, 419, 428, 437, 448, - 459, 470, 481, 492, 503, 514, 525, 536, 545, 554, - 563, 574, 583, 594, 605, 616, 627, 639, 651, 663, - 674, 685, 694, 703, 712, 723, 732, 741, 752, 763, - 774, 785, 796, 807, 818, 829, 839, 850, 859, 869, - 883, 899, 908, 917, 926, 935, 957, 979, 988, 998, - 1007, 1018, 1027, 1036, 1045, 1054, 1063, 1074, 1085, 1096, + 459, 470, 481, 492, 503, 514, 525, 536, 547, 558, + 569, 578, 587, 596, 607, 616, 627, 638, 649, 660, + 672, 684, 696, 707, 718, 727, 736, 745, 756, 765, + 774, 785, 796, 807, 818, 829, 840, 851, 862, 872, + 883, 892, 902, 916, 932, 941, 950, 959, 968, 990, + 1012, 1021, 1031, 1040, 1051, 1060, 1069, 1078, 1087, 1096, - 1106, 1115, 1126, 1137, 1148, 1159, 1171, 1180, 1189, 1198, - 1207, 1216, 1225, 1234, 1243, 1252, 1262, 1273, 1285, 1294, - 1303, 1312, 1322, 1332, 1342, 1352, 1362, 1372, 1381, 1391, - 1400, 1409, 1418, 1427, 1437, 1447, 1456, 1466, 1475, 1484, - 1493, 1502, 1511, 1520, 1529, 1538, 1547, 1556, 1565, 1574, - 1583, 1592, 1601, 1610, 1619, 1628, 1637, 1646, 1655, 1664, - 1673, 1682, 1691, 1700, 1709, 1718, 1727, 1736, 1745, 1754, - 1763, 1772, 1781, 1793, 1805, 1815, 1825, 1835, 1845, 1855, - 1865, 1875, 1885, 1895, 1904, 1913, 1922, 1931, 1942, 1953, - 1966, 1979, 1992, 2001, 2010, 2019, 2028, 2037, 2047, 2148, + 1107, 1118, 1129, 1139, 1148, 1159, 1170, 1181, 1192, 1204, + 1213, 1222, 1231, 1240, 1249, 1258, 1267, 1276, 1285, 1295, + 1306, 1318, 1327, 1336, 1345, 1355, 1365, 1375, 1385, 1395, + 1405, 1414, 1424, 1433, 1442, 1451, 1460, 1470, 1480, 1489, + 1499, 1508, 1517, 1526, 1535, 1544, 1553, 1562, 1571, 1580, + 1589, 1598, 1607, 1616, 1625, 1634, 1643, 1652, 1661, 1670, + 1679, 1688, 1697, 1706, 1715, 1724, 1733, 1742, 1751, 1760, + 1769, 1778, 1787, 1796, 1805, 1814, 1826, 1838, 1848, 1858, + 1868, 1878, 1888, 1898, 1908, 1918, 1928, 1937, 1946, 1955, + 1964, 1975, 1986, 1999, 2012, 2025, 2034, 2043, 2052, 2061, - 2164, 2213, 2221, 2236, 2237, 2238, 2239, 2240, 2241, 2243, - 2261, 2274, 2279, 2283, 2285, 2287, 2289 + 2070, 2080, 2181, 2197, 2246, 2254, 2269, 2270, 2271, 2272, + 2273, 2274, 2276, 2294, 2307, 2312, 2316, 2318, 2320, 2322 } ; /* The intent behind this definition is that it'll catch @@ -2122,7 +2142,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) -#line 2125 "dhcp4_lexer.cc" +#line 2145 "dhcp4_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2148,8 +2168,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 2151 "dhcp4_lexer.cc" -#line 2152 "dhcp4_lexer.cc" +#line 2171 "dhcp4_lexer.cc" +#line 2172 "dhcp4_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2477,7 +2497,7 @@ YY_DECL } -#line 2480 "dhcp4_lexer.cc" +#line 2500 "dhcp4_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2506,13 +2526,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2124 ) + if ( yy_current_state >= 2163 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2123 ); + while ( yy_current_state != 2162 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2531,13 +2551,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 218 ) + else if ( yy_act < 221 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 218 ) + else if ( yy_act == 221 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 219 ) + else if ( yy_act == 222 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3075,9 +3095,9 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_RECONNECT_WAIT_TIME(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_READ_TIMEOUT(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("read-timeout", driver.loc_); } } YY_BREAK @@ -3089,15 +3109,57 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_WRITE_TIMEOUT(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("write-timeout", driver.loc_); } } YY_BREAK case 48: YY_RULE_SETUP #line 536 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_TCP_USER_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("tcp-user-timeout", driver.loc_); + } +} + YY_BREAK +case 49: +YY_RULE_SETUP +#line 547 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_RECONNECT_WAIT_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_); + } +} + YY_BREAK +case 50: +YY_RULE_SETUP +#line 558 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_); + } +} + YY_BREAK +case 51: +YY_RULE_SETUP +#line 569 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_ON_FAIL: @@ -3107,9 +3169,9 @@ YY_RULE_SETUP } } YY_BREAK -case 49: +case 52: YY_RULE_SETUP -#line 545 "dhcp4_lexer.ll" +#line 578 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_ON_FAIL: @@ -3119,9 +3181,9 @@ YY_RULE_SETUP } } YY_BREAK -case 50: +case 53: YY_RULE_SETUP -#line 554 "dhcp4_lexer.ll" +#line 587 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DATABASE_ON_FAIL: @@ -3131,9 +3193,9 @@ YY_RULE_SETUP } } YY_BREAK -case 51: +case 54: YY_RULE_SETUP -#line 563 "dhcp4_lexer.ll" +#line 596 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3145,9 +3207,9 @@ YY_RULE_SETUP } } YY_BREAK -case 52: +case 55: YY_RULE_SETUP -#line 574 "dhcp4_lexer.ll" +#line 607 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3157,48 +3219,6 @@ YY_RULE_SETUP } } YY_BREAK -case 53: -YY_RULE_SETUP -#line 583 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::LEASE_DATABASE: - case isc::dhcp::Parser4Context::HOSTS_DATABASE: - case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_TRUST_ANCHOR(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_); - } -} - YY_BREAK -case 54: -YY_RULE_SETUP -#line 594 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::LEASE_DATABASE: - case isc::dhcp::Parser4Context::HOSTS_DATABASE: - case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_); - } -} - YY_BREAK -case 55: -YY_RULE_SETUP -#line 605 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::LEASE_DATABASE: - case isc::dhcp::Parser4Context::HOSTS_DATABASE: - case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_); - } -} - YY_BREAK case 56: YY_RULE_SETUP #line 616 "dhcp4_lexer.ll" @@ -3207,15 +3227,57 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::LEASE_DATABASE: case isc::dhcp::Parser4Context::HOSTS_DATABASE: case isc::dhcp::Parser4Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_TRUST_ANCHOR(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_); } } YY_BREAK case 57: YY_RULE_SETUP #line 627 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_); + } +} + YY_BREAK +case 58: +YY_RULE_SETUP +#line 638 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_); + } +} + YY_BREAK +case 59: +YY_RULE_SETUP +#line 649 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_); + } +} + YY_BREAK +case 60: +YY_RULE_SETUP +#line 660 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3228,9 +3290,9 @@ YY_RULE_SETUP } } YY_BREAK -case 58: +case 61: YY_RULE_SETUP -#line 639 "dhcp4_lexer.ll" +#line 672 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3243,9 +3305,9 @@ YY_RULE_SETUP } } YY_BREAK -case 59: +case 62: YY_RULE_SETUP -#line 651 "dhcp4_lexer.ll" +#line 684 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3258,9 +3320,9 @@ YY_RULE_SETUP } } YY_BREAK -case 60: +case 63: YY_RULE_SETUP -#line 663 "dhcp4_lexer.ll" +#line 696 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3272,9 +3334,9 @@ YY_RULE_SETUP } } YY_BREAK -case 61: +case 64: YY_RULE_SETUP -#line 674 "dhcp4_lexer.ll" +#line 707 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3286,9 +3348,9 @@ YY_RULE_SETUP } } YY_BREAK -case 62: +case 65: YY_RULE_SETUP -#line 685 "dhcp4_lexer.ll" +#line 718 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3298,9 +3360,9 @@ YY_RULE_SETUP } } YY_BREAK -case 63: +case 66: YY_RULE_SETUP -#line 694 "dhcp4_lexer.ll" +#line 727 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3310,9 +3372,9 @@ YY_RULE_SETUP } } YY_BREAK -case 64: +case 67: YY_RULE_SETUP -#line 703 "dhcp4_lexer.ll" +#line 736 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3322,9 +3384,9 @@ YY_RULE_SETUP } } YY_BREAK -case 65: +case 68: YY_RULE_SETUP -#line 712 "dhcp4_lexer.ll" +#line 745 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3336,9 +3398,9 @@ YY_RULE_SETUP } } YY_BREAK -case 66: +case 69: YY_RULE_SETUP -#line 723 "dhcp4_lexer.ll" +#line 756 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3348,9 +3410,9 @@ YY_RULE_SETUP } } YY_BREAK -case 67: +case 70: YY_RULE_SETUP -#line 732 "dhcp4_lexer.ll" +#line 765 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3360,48 +3422,6 @@ YY_RULE_SETUP } } YY_BREAK -case 68: -YY_RULE_SETUP -#line 741 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - case isc::dhcp::Parser4Context::SUBNET4: - case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_SEND_UPDATES(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_); - } -} - YY_BREAK -case 69: -YY_RULE_SETUP -#line 752 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - case isc::dhcp::Parser4Context::SUBNET4: - case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_); - } -} - YY_BREAK -case 70: -YY_RULE_SETUP -#line 763 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - case isc::dhcp::Parser4Context::SUBNET4: - case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_); - } -} - YY_BREAK case 71: YY_RULE_SETUP #line 774 "dhcp4_lexer.ll" @@ -3410,9 +3430,9 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DDNS_SEND_UPDATES(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_); } } YY_BREAK @@ -3424,9 +3444,9 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_GENERATED_PREFIX(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_); } } YY_BREAK @@ -3438,9 +3458,9 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_); } } YY_BREAK @@ -3452,9 +3472,9 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_); } } YY_BREAK @@ -3466,15 +3486,57 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_DDNS_USE_CONFLICT_RESOLUTION(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_DDNS_GENERATED_PREFIX(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_); } } YY_BREAK case 76: YY_RULE_SETUP #line 829 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_); + } +} + YY_BREAK +case 77: +YY_RULE_SETUP +#line 840 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_); + } +} + YY_BREAK +case 78: +YY_RULE_SETUP +#line 851 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_DDNS_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + YY_BREAK +case 79: +YY_RULE_SETUP +#line 862 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3485,9 +3547,9 @@ YY_RULE_SETUP } } YY_BREAK -case 77: +case 80: YY_RULE_SETUP -#line 839 "dhcp4_lexer.ll" +#line 872 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3499,9 +3561,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 81: YY_RULE_SETUP -#line 850 "dhcp4_lexer.ll" +#line 883 "dhcp4_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3511,9 +3573,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 82: YY_RULE_SETUP -#line 859 "dhcp4_lexer.ll" +#line 892 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3524,9 +3586,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 83: YY_RULE_SETUP -#line 869 "dhcp4_lexer.ll" +#line 902 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3541,9 +3603,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 84: YY_RULE_SETUP -#line 883 "dhcp4_lexer.ll" +#line 916 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: @@ -3560,9 +3622,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 85: YY_RULE_SETUP -#line 899 "dhcp4_lexer.ll" +#line 932 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3572,9 +3634,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 86: YY_RULE_SETUP -#line 908 "dhcp4_lexer.ll" +#line 941 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -3584,9 +3646,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 87: YY_RULE_SETUP -#line 917 "dhcp4_lexer.ll" +#line 950 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3596,9 +3658,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 88: YY_RULE_SETUP -#line 926 "dhcp4_lexer.ll" +#line 959 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::POOLS: @@ -3608,9 +3670,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 89: YY_RULE_SETUP -#line 935 "dhcp4_lexer.ll" +#line 968 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3633,9 +3695,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 90: YY_RULE_SETUP -#line 957 "dhcp4_lexer.ll" +#line 990 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3658,9 +3720,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 91: YY_RULE_SETUP -#line 979 "dhcp4_lexer.ll" +#line 1012 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3670,9 +3732,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 92: YY_RULE_SETUP -#line 988 "dhcp4_lexer.ll" +#line 1021 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3683,9 +3745,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 93: YY_RULE_SETUP -#line 998 "dhcp4_lexer.ll" +#line 1031 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -3695,9 +3757,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 94: YY_RULE_SETUP -#line 1007 "dhcp4_lexer.ll" +#line 1040 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3709,9 +3771,9 @@ YY_RULE_SETUP } } YY_BREAK -case 92: +case 95: YY_RULE_SETUP -#line 1018 "dhcp4_lexer.ll" +#line 1051 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3721,9 +3783,9 @@ YY_RULE_SETUP } } YY_BREAK -case 93: +case 96: YY_RULE_SETUP -#line 1027 "dhcp4_lexer.ll" +#line 1060 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3733,9 +3795,9 @@ YY_RULE_SETUP } } YY_BREAK -case 94: +case 97: YY_RULE_SETUP -#line 1036 "dhcp4_lexer.ll" +#line 1069 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3745,9 +3807,9 @@ YY_RULE_SETUP } } YY_BREAK -case 95: +case 98: YY_RULE_SETUP -#line 1045 "dhcp4_lexer.ll" +#line 1078 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3757,9 +3819,9 @@ YY_RULE_SETUP } } YY_BREAK -case 96: +case 99: YY_RULE_SETUP -#line 1054 "dhcp4_lexer.ll" +#line 1087 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATION_MODE: @@ -3769,9 +3831,9 @@ YY_RULE_SETUP } } YY_BREAK -case 97: +case 100: YY_RULE_SETUP -#line 1063 "dhcp4_lexer.ll" +#line 1096 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3783,9 +3845,9 @@ YY_RULE_SETUP } } YY_BREAK -case 98: +case 101: YY_RULE_SETUP -#line 1074 "dhcp4_lexer.ll" +#line 1107 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3797,9 +3859,9 @@ YY_RULE_SETUP } } YY_BREAK -case 99: +case 102: YY_RULE_SETUP -#line 1085 "dhcp4_lexer.ll" +#line 1118 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3811,9 +3873,9 @@ YY_RULE_SETUP } } YY_BREAK -case 100: +case 103: YY_RULE_SETUP -#line 1096 "dhcp4_lexer.ll" +#line 1129 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -3824,9 +3886,9 @@ YY_RULE_SETUP } } YY_BREAK -case 101: +case 104: YY_RULE_SETUP -#line 1106 "dhcp4_lexer.ll" +#line 1139 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3836,48 +3898,6 @@ YY_RULE_SETUP } } YY_BREAK -case 102: -YY_RULE_SETUP -#line 1115 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - case isc::dhcp::Parser4Context::SUBNET4: - case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_CALCULATE_TEE_TIMES(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_); - } -} - YY_BREAK -case 103: -YY_RULE_SETUP -#line 1126 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - case isc::dhcp::Parser4Context::SUBNET4: - case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_); - } -} - YY_BREAK -case 104: -YY_RULE_SETUP -#line 1137 "dhcp4_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser4Context::DHCP4: - case isc::dhcp::Parser4Context::SUBNET4: - case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_); - default: - return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_); - } -} - YY_BREAK case 105: YY_RULE_SETUP #line 1148 "dhcp4_lexer.ll" @@ -3886,15 +3906,57 @@ YY_RULE_SETUP case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::SUBNET4: case isc::dhcp::Parser4Context::SHARED_NETWORK: - return isc::dhcp::Dhcp4Parser::make_CACHE_THRESHOLD(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_CALCULATE_TEE_TIMES(driver.loc_); default: - return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_); + return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_); } } YY_BREAK case 106: YY_RULE_SETUP #line 1159 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_); + } +} + YY_BREAK +case 107: +YY_RULE_SETUP +#line 1170 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_); + } +} + YY_BREAK +case 108: +YY_RULE_SETUP +#line 1181 "dhcp4_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::DHCP4: + case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::SHARED_NETWORK: + return isc::dhcp::Dhcp4Parser::make_CACHE_THRESHOLD(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_); + } +} + YY_BREAK +case 109: +YY_RULE_SETUP +#line 1192 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3906,9 +3968,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 110: YY_RULE_SETUP -#line 1171 "dhcp4_lexer.ll" +#line 1204 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -3918,9 +3980,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 111: YY_RULE_SETUP -#line 1180 "dhcp4_lexer.ll" +#line 1213 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3930,9 +3992,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 112: YY_RULE_SETUP -#line 1189 "dhcp4_lexer.ll" +#line 1222 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3942,9 +4004,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 113: YY_RULE_SETUP -#line 1198 "dhcp4_lexer.ll" +#line 1231 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -3954,9 +4016,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 114: YY_RULE_SETUP -#line 1207 "dhcp4_lexer.ll" +#line 1240 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3966,9 +4028,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 115: YY_RULE_SETUP -#line 1216 "dhcp4_lexer.ll" +#line 1249 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3978,9 +4040,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 116: YY_RULE_SETUP -#line 1225 "dhcp4_lexer.ll" +#line 1258 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -3990,9 +4052,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 117: YY_RULE_SETUP -#line 1234 "dhcp4_lexer.ll" +#line 1267 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OUTPUT_OPTIONS: @@ -4002,9 +4064,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 118: YY_RULE_SETUP -#line 1243 "dhcp4_lexer.ll" +#line 1276 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LOGGERS: @@ -4014,9 +4076,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 119: YY_RULE_SETUP -#line 1252 "dhcp4_lexer.ll" +#line 1285 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4027,9 +4089,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 120: YY_RULE_SETUP -#line 1262 "dhcp4_lexer.ll" +#line 1295 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4041,9 +4103,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 121: YY_RULE_SETUP -#line 1273 "dhcp4_lexer.ll" +#line 1306 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4056,9 +4118,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 122: YY_RULE_SETUP -#line 1285 "dhcp4_lexer.ll" +#line 1318 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4068,9 +4130,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 123: YY_RULE_SETUP -#line 1294 "dhcp4_lexer.ll" +#line 1327 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4080,9 +4142,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 124: YY_RULE_SETUP -#line 1303 "dhcp4_lexer.ll" +#line 1336 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4092,9 +4154,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 125: YY_RULE_SETUP -#line 1312 "dhcp4_lexer.ll" +#line 1345 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4105,9 +4167,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 126: YY_RULE_SETUP -#line 1322 "dhcp4_lexer.ll" +#line 1355 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4118,9 +4180,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 127: YY_RULE_SETUP -#line 1332 "dhcp4_lexer.ll" +#line 1365 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4131,9 +4193,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 128: YY_RULE_SETUP -#line 1342 "dhcp4_lexer.ll" +#line 1375 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4144,9 +4206,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 129: YY_RULE_SETUP -#line 1352 "dhcp4_lexer.ll" +#line 1385 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4157,9 +4219,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 130: YY_RULE_SETUP -#line 1362 "dhcp4_lexer.ll" +#line 1395 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4170,9 +4232,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 131: YY_RULE_SETUP -#line 1372 "dhcp4_lexer.ll" +#line 1405 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4182,9 +4244,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 132: YY_RULE_SETUP -#line 1381 "dhcp4_lexer.ll" +#line 1414 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4195,9 +4257,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 133: YY_RULE_SETUP -#line 1391 "dhcp4_lexer.ll" +#line 1424 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -4207,9 +4269,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 134: YY_RULE_SETUP -#line 1400 "dhcp4_lexer.ll" +#line 1433 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4219,9 +4281,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 135: YY_RULE_SETUP -#line 1409 "dhcp4_lexer.ll" +#line 1442 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4231,9 +4293,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 136: YY_RULE_SETUP -#line 1418 "dhcp4_lexer.ll" +#line 1451 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4243,9 +4305,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 137: YY_RULE_SETUP -#line 1427 "dhcp4_lexer.ll" +#line 1460 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4256,9 +4318,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 138: YY_RULE_SETUP -#line 1437 "dhcp4_lexer.ll" +#line 1470 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4269,9 +4331,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 139: YY_RULE_SETUP -#line 1447 "dhcp4_lexer.ll" +#line 1480 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4281,9 +4343,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 140: YY_RULE_SETUP -#line 1456 "dhcp4_lexer.ll" +#line 1489 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4293,9 +4355,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 141: YY_RULE_SETUP -#line 1466 "dhcp4_lexer.ll" +#line 1499 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4305,9 +4367,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 142: YY_RULE_SETUP -#line 1475 "dhcp4_lexer.ll" +#line 1508 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4317,9 +4379,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 143: YY_RULE_SETUP -#line 1484 "dhcp4_lexer.ll" +#line 1517 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4329,9 +4391,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 144: YY_RULE_SETUP -#line 1493 "dhcp4_lexer.ll" +#line 1526 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4341,9 +4403,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 145: YY_RULE_SETUP -#line 1502 "dhcp4_lexer.ll" +#line 1535 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4353,9 +4415,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 146: YY_RULE_SETUP -#line 1511 "dhcp4_lexer.ll" +#line 1544 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4365,9 +4427,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 147: YY_RULE_SETUP -#line 1520 "dhcp4_lexer.ll" +#line 1553 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4377,9 +4439,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 148: YY_RULE_SETUP -#line 1529 "dhcp4_lexer.ll" +#line 1562 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4389,9 +4451,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 149: YY_RULE_SETUP -#line 1538 "dhcp4_lexer.ll" +#line 1571 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4401,9 +4463,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 150: YY_RULE_SETUP -#line 1547 "dhcp4_lexer.ll" +#line 1580 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4413,9 +4475,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 151: YY_RULE_SETUP -#line 1556 "dhcp4_lexer.ll" +#line 1589 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4425,9 +4487,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 152: YY_RULE_SETUP -#line 1565 "dhcp4_lexer.ll" +#line 1598 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4437,9 +4499,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 153: YY_RULE_SETUP -#line 1574 "dhcp4_lexer.ll" +#line 1607 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4449,9 +4511,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 154: YY_RULE_SETUP -#line 1583 "dhcp4_lexer.ll" +#line 1616 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4461,9 +4523,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 155: YY_RULE_SETUP -#line 1592 "dhcp4_lexer.ll" +#line 1625 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4473,9 +4535,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 156: YY_RULE_SETUP -#line 1601 "dhcp4_lexer.ll" +#line 1634 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4485,9 +4547,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 157: YY_RULE_SETUP -#line 1610 "dhcp4_lexer.ll" +#line 1643 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4497,9 +4559,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 158: YY_RULE_SETUP -#line 1619 "dhcp4_lexer.ll" +#line 1652 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4509,9 +4571,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 159: YY_RULE_SETUP -#line 1628 "dhcp4_lexer.ll" +#line 1661 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4521,9 +4583,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 160: YY_RULE_SETUP -#line 1637 "dhcp4_lexer.ll" +#line 1670 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4533,9 +4595,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 161: YY_RULE_SETUP -#line 1646 "dhcp4_lexer.ll" +#line 1679 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4545,9 +4607,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 162: YY_RULE_SETUP -#line 1655 "dhcp4_lexer.ll" +#line 1688 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4557,9 +4619,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 163: YY_RULE_SETUP -#line 1664 "dhcp4_lexer.ll" +#line 1697 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4569,9 +4631,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 164: YY_RULE_SETUP -#line 1673 "dhcp4_lexer.ll" +#line 1706 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4581,9 +4643,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 165: YY_RULE_SETUP -#line 1682 "dhcp4_lexer.ll" +#line 1715 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4593,9 +4655,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 166: YY_RULE_SETUP -#line 1691 "dhcp4_lexer.ll" +#line 1724 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4605,9 +4667,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 167: YY_RULE_SETUP -#line 1700 "dhcp4_lexer.ll" +#line 1733 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4617,9 +4679,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 168: YY_RULE_SETUP -#line 1709 "dhcp4_lexer.ll" +#line 1742 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4629,9 +4691,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 169: YY_RULE_SETUP -#line 1718 "dhcp4_lexer.ll" +#line 1751 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4641,9 +4703,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 170: YY_RULE_SETUP -#line 1727 "dhcp4_lexer.ll" +#line 1760 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4653,9 +4715,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 171: YY_RULE_SETUP -#line 1736 "dhcp4_lexer.ll" +#line 1769 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4665,9 +4727,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 172: YY_RULE_SETUP -#line 1745 "dhcp4_lexer.ll" +#line 1778 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4677,9 +4739,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 173: YY_RULE_SETUP -#line 1754 "dhcp4_lexer.ll" +#line 1787 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4689,9 +4751,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 174: YY_RULE_SETUP -#line 1763 "dhcp4_lexer.ll" +#line 1796 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4701,9 +4763,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 175: YY_RULE_SETUP -#line 1772 "dhcp4_lexer.ll" +#line 1805 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4713,9 +4775,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 176: YY_RULE_SETUP -#line 1781 "dhcp4_lexer.ll" +#line 1814 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4728,9 +4790,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 177: YY_RULE_SETUP -#line 1793 "dhcp4_lexer.ll" +#line 1826 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4743,9 +4805,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 178: YY_RULE_SETUP -#line 1805 "dhcp4_lexer.ll" +#line 1838 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4756,9 +4818,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 176: +case 179: YY_RULE_SETUP -#line 1815 "dhcp4_lexer.ll" +#line 1848 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -4769,9 +4831,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 177: +case 180: YY_RULE_SETUP -#line 1825 "dhcp4_lexer.ll" +#line 1858 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -4782,52 +4844,13 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 178: -YY_RULE_SETUP -#line 1835 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 179: -YY_RULE_SETUP -#line 1845 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK -case 180: -YY_RULE_SETUP -#line 1855 "dhcp4_lexer.ll" -{ - /* dhcp-ddns value keywords are case insensitive */ - if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); - } - std::string tmp(yytext+1); - tmp.resize(tmp.size() - 1); - return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); -} - YY_BREAK case 181: YY_RULE_SETUP -#line 1865 "dhcp4_lexer.ll" +#line 1868 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { - return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); } std::string tmp(yytext+1); tmp.resize(tmp.size() - 1); @@ -4836,7 +4859,46 @@ YY_RULE_SETUP YY_BREAK case 182: YY_RULE_SETUP -#line 1875 "dhcp4_lexer.ll" +#line 1878 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 183: +YY_RULE_SETUP +#line 1888 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 184: +YY_RULE_SETUP +#line 1898 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 185: +YY_RULE_SETUP +#line 1908 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4847,9 +4909,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 183: +case 186: YY_RULE_SETUP -#line 1885 "dhcp4_lexer.ll" +#line 1918 "dhcp4_lexer.ll" { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -4860,9 +4922,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); } YY_BREAK -case 184: +case 187: YY_RULE_SETUP -#line 1895 "dhcp4_lexer.ll" +#line 1928 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4872,9 +4934,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 188: YY_RULE_SETUP -#line 1904 "dhcp4_lexer.ll" +#line 1937 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4884,9 +4946,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 189: YY_RULE_SETUP -#line 1913 "dhcp4_lexer.ll" +#line 1946 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4896,9 +4958,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 190: YY_RULE_SETUP -#line 1922 "dhcp4_lexer.ll" +#line 1955 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4908,9 +4970,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 191: YY_RULE_SETUP -#line 1931 "dhcp4_lexer.ll" +#line 1964 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4922,9 +4984,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 192: YY_RULE_SETUP -#line 1942 "dhcp4_lexer.ll" +#line 1975 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4936,9 +4998,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 193: YY_RULE_SETUP -#line 1953 "dhcp4_lexer.ll" +#line 1986 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4952,9 +5014,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 194: YY_RULE_SETUP -#line 1966 "dhcp4_lexer.ll" +#line 1999 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4968,9 +5030,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 195: YY_RULE_SETUP -#line 1979 "dhcp4_lexer.ll" +#line 2012 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4984,9 +5046,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 196: YY_RULE_SETUP -#line 1992 "dhcp4_lexer.ll" +#line 2025 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4996,9 +5058,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 197: YY_RULE_SETUP -#line 2001 "dhcp4_lexer.ll" +#line 2034 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5008,9 +5070,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 198: YY_RULE_SETUP -#line 2010 "dhcp4_lexer.ll" +#line 2043 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5020,9 +5082,9 @@ YY_RULE_SETUP } } YY_BREAK -case 196: +case 199: YY_RULE_SETUP -#line 2019 "dhcp4_lexer.ll" +#line 2052 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5032,9 +5094,9 @@ YY_RULE_SETUP } } YY_BREAK -case 197: +case 200: YY_RULE_SETUP -#line 2028 "dhcp4_lexer.ll" +#line 2061 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5044,9 +5106,9 @@ YY_RULE_SETUP } } YY_BREAK -case 198: +case 201: YY_RULE_SETUP -#line 2037 "dhcp4_lexer.ll" +#line 2070 "dhcp4_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5056,9 +5118,9 @@ YY_RULE_SETUP } } YY_BREAK -case 199: +case 202: YY_RULE_SETUP -#line 2047 "dhcp4_lexer.ll" +#line 2080 "dhcp4_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -5160,10 +5222,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 200: -/* rule 200 can match eol */ +case 203: +/* rule 203 can match eol */ YY_RULE_SETUP -#line 2148 "dhcp4_lexer.ll" +#line 2181 "dhcp4_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5180,10 +5242,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 201: -/* rule 201 can match eol */ +case 204: +/* rule 204 can match eol */ YY_RULE_SETUP -#line 2164 "dhcp4_lexer.ll" +#line 2197 "dhcp4_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5233,9 +5295,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 202: +case 205: YY_RULE_SETUP -#line 2213 "dhcp4_lexer.ll" +#line 2246 "dhcp4_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5244,9 +5306,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 203: +case 206: YY_RULE_SETUP -#line 2221 "dhcp4_lexer.ll" +#line 2254 "dhcp4_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5262,39 +5324,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 204: -YY_RULE_SETUP -#line 2236 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 205: -YY_RULE_SETUP -#line 2237 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 206: -YY_RULE_SETUP -#line 2238 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } - YY_BREAK case 207: YY_RULE_SETUP -#line 2239 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } +#line 2269 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 208: YY_RULE_SETUP -#line 2240 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } +#line 2270 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 209: YY_RULE_SETUP -#line 2241 "dhcp4_lexer.ll" -{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } +#line 2271 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 210: YY_RULE_SETUP -#line 2243 "dhcp4_lexer.ll" +#line 2272 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 211: +YY_RULE_SETUP +#line 2273 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 212: +YY_RULE_SETUP +#line 2274 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } + YY_BREAK +case 213: +YY_RULE_SETUP +#line 2276 "dhcp4_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5313,9 +5375,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 211: +case 214: YY_RULE_SETUP -#line 2261 "dhcp4_lexer.ll" +#line 2294 "dhcp4_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5329,43 +5391,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 212: +case 215: YY_RULE_SETUP -#line 2274 "dhcp4_lexer.ll" +#line 2307 "dhcp4_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 213: +case 216: YY_RULE_SETUP -#line 2279 "dhcp4_lexer.ll" +#line 2312 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 214: -YY_RULE_SETUP -#line 2283 "dhcp4_lexer.ll" -driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); - YY_BREAK -case 215: -YY_RULE_SETUP -#line 2285 "dhcp4_lexer.ll" -driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); - YY_BREAK -case 216: -YY_RULE_SETUP -#line 2287 "dhcp4_lexer.ll" -driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); - YY_BREAK case 217: YY_RULE_SETUP -#line 2289 "dhcp4_lexer.ll" +#line 2316 "dhcp4_lexer.ll" +driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); + YY_BREAK +case 218: +YY_RULE_SETUP +#line 2318 "dhcp4_lexer.ll" +driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); + YY_BREAK +case 219: +YY_RULE_SETUP +#line 2320 "dhcp4_lexer.ll" +driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); + YY_BREAK +case 220: +YY_RULE_SETUP +#line 2322 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2291 "dhcp4_lexer.ll" +#line 2324 "dhcp4_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5389,12 +5451,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 218: +case 221: YY_RULE_SETUP -#line 2314 "dhcp4_lexer.ll" +#line 2347 "dhcp4_lexer.ll" ECHO; YY_BREAK -#line 5397 "dhcp4_lexer.cc" +#line 5459 "dhcp4_lexer.cc" case YY_END_OF_BUFFER: { @@ -5713,7 +5775,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2124 ) + if ( yy_current_state >= 2163 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5746,11 +5808,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2124 ) + if ( yy_current_state >= 2163 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2123); + yy_is_jam = (yy_current_state == 2162); return yy_is_jam ? 0 : yy_current_state; } @@ -6499,7 +6561,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2314 "dhcp4_lexer.ll" +#line 2347 "dhcp4_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 41376fe15c..1fbc194a30 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -510,6 +510,39 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"read-timeout\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_READ_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("read-timeout", driver.loc_); + } +} + +\"write-timeout\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_WRITE_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("write-timeout", driver.loc_); + } +} + +\"tcp-user-timeout\" { + switch(driver.ctx_) { + case isc::dhcp::Parser4Context::LEASE_DATABASE: + case isc::dhcp::Parser4Context::HOSTS_DATABASE: + case isc::dhcp::Parser4Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp4Parser::make_TCP_USER_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp4Parser::make_STRING("tcp-user-timeout", driver.loc_); + } +} + \"reconnect-wait-time\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::LEASE_DATABASE: diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 01d05fa235..5a818605d9 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -402,79 +402,79 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 408 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 414 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 420 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 426 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 432 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 438 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 444 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 450 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 456 "dhcp4_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 462 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 468 "dhcp4_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 474 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 290 "dhcp4_parser.yy" +#line 293 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 480 "dhcp4_parser.cc" break; @@ -755,127 +755,127 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 299 "dhcp4_parser.yy" +#line 302 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 761 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 300 "dhcp4_parser.yy" +#line 303 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 767 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 301 "dhcp4_parser.yy" +#line 304 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 773 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 302 "dhcp4_parser.yy" +#line 305 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 779 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 303 "dhcp4_parser.yy" +#line 306 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 785 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 304 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 791 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 305 "dhcp4_parser.yy" +#line 308 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 797 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 306 "dhcp4_parser.yy" +#line 309 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 803 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 307 "dhcp4_parser.yy" +#line 310 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 809 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 308 "dhcp4_parser.yy" +#line 311 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 815 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 309 "dhcp4_parser.yy" +#line 312 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 821 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 310 "dhcp4_parser.yy" +#line 313 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 827 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 311 "dhcp4_parser.yy" +#line 314 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 833 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 319 "dhcp4_parser.yy" +#line 322 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 839 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 320 "dhcp4_parser.yy" +#line 323 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 845 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 321 "dhcp4_parser.yy" +#line 324 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 851 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 322 "dhcp4_parser.yy" +#line 325 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 857 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 323 "dhcp4_parser.yy" +#line 326 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 863 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 324 "dhcp4_parser.yy" +#line 327 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 869 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 325 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 875 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 328 "dhcp4_parser.yy" +#line 331 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -884,7 +884,7 @@ namespace isc { namespace dhcp { break; case 36: // $@14: %empty -#line 333 "dhcp4_parser.yy" +#line 336 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -895,7 +895,7 @@ namespace isc { namespace dhcp { break; case 37: // map2: "{" $@14 map_content "}" -#line 338 "dhcp4_parser.yy" +#line 341 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -905,13 +905,13 @@ namespace isc { namespace dhcp { break; case 38: // map_value: map2 -#line 344 "dhcp4_parser.yy" +#line 347 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 911 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 351 "dhcp4_parser.yy" +#line 354 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -921,7 +921,7 @@ namespace isc { namespace dhcp { break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 356 "dhcp4_parser.yy" +#line 359 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -932,7 +932,7 @@ namespace isc { namespace dhcp { break; case 43: // not_empty_map: not_empty_map "," -#line 362 "dhcp4_parser.yy" +#line 365 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -940,7 +940,7 @@ namespace isc { namespace dhcp { break; case 44: // $@15: %empty -#line 367 "dhcp4_parser.yy" +#line 370 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -949,7 +949,7 @@ namespace isc { namespace dhcp { break; case 45: // list_generic: "[" $@15 list_content "]" -#line 370 "dhcp4_parser.yy" +#line 373 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -957,7 +957,7 @@ namespace isc { namespace dhcp { break; case 48: // not_empty_list: value -#line 378 "dhcp4_parser.yy" +#line 381 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -966,7 +966,7 @@ namespace isc { namespace dhcp { break; case 49: // not_empty_list: not_empty_list "," value -#line 382 "dhcp4_parser.yy" +#line 385 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -975,7 +975,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: not_empty_list "," -#line 386 "dhcp4_parser.yy" +#line 389 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -983,7 +983,7 @@ namespace isc { namespace dhcp { break; case 51: // $@16: %empty -#line 392 "dhcp4_parser.yy" +#line 395 "dhcp4_parser.yy" { // List parsing about to start } @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 394 "dhcp4_parser.yy" +#line 397 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp { break; case 55: // not_empty_list_strings: "constant string" -#line 403 "dhcp4_parser.yy" +#line 406 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1009,7 +1009,7 @@ namespace isc { namespace dhcp { break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 407 "dhcp4_parser.yy" +#line 410 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 411 "dhcp4_parser.yy" +#line 414 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp { break; case 58: // unknown_map_entry: "constant string" ":" -#line 421 "dhcp4_parser.yy" +#line 424 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1037,7 +1037,7 @@ namespace isc { namespace dhcp { break; case 59: // $@17: %empty -#line 430 "dhcp4_parser.yy" +#line 433 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp { break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 435 "dhcp4_parser.yy" +#line 438 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1061,7 +1061,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 445 "dhcp4_parser.yy" +#line 448 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1076,7 +1076,7 @@ namespace isc { namespace dhcp { break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 454 "dhcp4_parser.yy" +#line 457 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1086,7 +1086,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object_comma: global_object "," -#line 462 "dhcp4_parser.yy" +#line 465 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1094,7 +1094,7 @@ namespace isc { namespace dhcp { break; case 65: // $@19: %empty -#line 468 "dhcp4_parser.yy" +#line 471 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1104,7 +1104,7 @@ namespace isc { namespace dhcp { break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 472 "dhcp4_parser.yy" +#line 475 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1113,7 +1113,7 @@ namespace isc { namespace dhcp { break; case 69: // global_params: global_params "," -#line 479 "dhcp4_parser.yy" +#line 482 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1121,7 +1121,7 @@ namespace isc { namespace dhcp { break; case 135: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 553 "dhcp4_parser.yy" +#line 556 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1131,7 +1131,7 @@ namespace isc { namespace dhcp { break; case 136: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 559 "dhcp4_parser.yy" +#line 562 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp { break; case 137: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 565 "dhcp4_parser.yy" +#line 568 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1151,7 +1151,7 @@ namespace isc { namespace dhcp { break; case 138: // renew_timer: "renew-timer" ":" "integer" -#line 571 "dhcp4_parser.yy" +#line 574 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1161,7 +1161,7 @@ namespace isc { namespace dhcp { break; case 139: // rebind_timer: "rebind-timer" ":" "integer" -#line 577 "dhcp4_parser.yy" +#line 580 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1171,7 +1171,7 @@ namespace isc { namespace dhcp { break; case 140: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 583 "dhcp4_parser.yy" +#line 586 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1181,7 +1181,7 @@ namespace isc { namespace dhcp { break; case 141: // t1_percent: "t1-percent" ":" "floating point" -#line 589 "dhcp4_parser.yy" +#line 592 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1191,7 +1191,7 @@ namespace isc { namespace dhcp { break; case 142: // t2_percent: "t2-percent" ":" "floating point" -#line 595 "dhcp4_parser.yy" +#line 598 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1201,7 +1201,7 @@ namespace isc { namespace dhcp { break; case 143: // cache_threshold: "cache-threshold" ":" "floating point" -#line 601 "dhcp4_parser.yy" +#line 604 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1211,7 +1211,7 @@ namespace isc { namespace dhcp { break; case 144: // cache_max_age: "cache-max-age" ":" "integer" -#line 607 "dhcp4_parser.yy" +#line 610 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1221,7 +1221,7 @@ namespace isc { namespace dhcp { break; case 145: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 613 "dhcp4_parser.yy" +#line 616 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1231,7 +1231,7 @@ namespace isc { namespace dhcp { break; case 146: // $@20: %empty -#line 619 "dhcp4_parser.yy" +#line 622 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1240,7 +1240,7 @@ namespace isc { namespace dhcp { break; case 147: // server_tag: "server-tag" $@20 ":" "constant string" -#line 622 "dhcp4_parser.yy" +#line 625 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1250,7 +1250,7 @@ namespace isc { namespace dhcp { break; case 148: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 628 "dhcp4_parser.yy" +#line 631 "dhcp4_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1260,7 +1260,7 @@ namespace isc { namespace dhcp { break; case 149: // $@21: %empty -#line 634 "dhcp4_parser.yy" +#line 637 "dhcp4_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1269,7 +1269,7 @@ namespace isc { namespace dhcp { break; case 150: // allocator: "allocator" $@21 ":" "constant string" -#line 637 "dhcp4_parser.yy" +#line 640 "dhcp4_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1279,7 +1279,7 @@ namespace isc { namespace dhcp { break; case 151: // echo_client_id: "echo-client-id" ":" "boolean" -#line 643 "dhcp4_parser.yy" +#line 646 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1289,7 +1289,7 @@ namespace isc { namespace dhcp { break; case 152: // match_client_id: "match-client-id" ":" "boolean" -#line 649 "dhcp4_parser.yy" +#line 652 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1299,7 +1299,7 @@ namespace isc { namespace dhcp { break; case 153: // authoritative: "authoritative" ":" "boolean" -#line 655 "dhcp4_parser.yy" +#line 658 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1309,7 +1309,7 @@ namespace isc { namespace dhcp { break; case 154: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 661 "dhcp4_parser.yy" +#line 664 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1319,7 +1319,7 @@ namespace isc { namespace dhcp { break; case 155: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 667 "dhcp4_parser.yy" +#line 670 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1329,7 +1329,7 @@ namespace isc { namespace dhcp { break; case 156: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 673 "dhcp4_parser.yy" +#line 676 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1339,7 +1339,7 @@ namespace isc { namespace dhcp { break; case 157: // $@22: %empty -#line 679 "dhcp4_parser.yy" +#line 682 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1348,7 +1348,7 @@ namespace isc { namespace dhcp { break; case 158: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 682 "dhcp4_parser.yy" +#line 685 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1357,7 +1357,7 @@ namespace isc { namespace dhcp { break; case 159: // ddns_replace_client_name_value: "when-present" -#line 688 "dhcp4_parser.yy" +#line 691 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1365,7 +1365,7 @@ namespace isc { namespace dhcp { break; case 160: // ddns_replace_client_name_value: "never" -#line 691 "dhcp4_parser.yy" +#line 694 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1373,7 +1373,7 @@ namespace isc { namespace dhcp { break; case 161: // ddns_replace_client_name_value: "always" -#line 694 "dhcp4_parser.yy" +#line 697 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1381,7 +1381,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_replace_client_name_value: "when-not-present" -#line 697 "dhcp4_parser.yy" +#line 700 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1389,7 +1389,7 @@ namespace isc { namespace dhcp { break; case 163: // ddns_replace_client_name_value: "boolean" -#line 700 "dhcp4_parser.yy" +#line 703 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1398,7 +1398,7 @@ namespace isc { namespace dhcp { break; case 164: // $@23: %empty -#line 706 "dhcp4_parser.yy" +#line 709 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1407,7 +1407,7 @@ namespace isc { namespace dhcp { break; case 165: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 709 "dhcp4_parser.yy" +#line 712 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1417,7 +1417,7 @@ namespace isc { namespace dhcp { break; case 166: // $@24: %empty -#line 715 "dhcp4_parser.yy" +#line 718 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1426,7 +1426,7 @@ namespace isc { namespace dhcp { break; case 167: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 718 "dhcp4_parser.yy" +#line 721 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1436,7 +1436,7 @@ namespace isc { namespace dhcp { break; case 168: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 724 "dhcp4_parser.yy" +#line 727 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1446,7 +1446,7 @@ namespace isc { namespace dhcp { break; case 169: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 730 "dhcp4_parser.yy" +#line 733 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1456,7 +1456,7 @@ namespace isc { namespace dhcp { break; case 170: // $@25: %empty -#line 736 "dhcp4_parser.yy" +#line 739 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1465,7 +1465,7 @@ namespace isc { namespace dhcp { break; case 171: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 739 "dhcp4_parser.yy" +#line 742 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -1475,7 +1475,7 @@ namespace isc { namespace dhcp { break; case 172: // $@26: %empty -#line 745 "dhcp4_parser.yy" +#line 748 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1484,7 +1484,7 @@ namespace isc { namespace dhcp { break; case 173: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 748 "dhcp4_parser.yy" +#line 751 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -1494,7 +1494,7 @@ namespace isc { namespace dhcp { break; case 174: // store_extended_info: "store-extended-info" ":" "boolean" -#line 754 "dhcp4_parser.yy" +#line 757 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1504,7 +1504,7 @@ namespace isc { namespace dhcp { break; case 175: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 760 "dhcp4_parser.yy" +#line 763 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1514,7 +1514,7 @@ namespace isc { namespace dhcp { break; case 176: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 766 "dhcp4_parser.yy" +#line 769 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1524,7 +1524,7 @@ namespace isc { namespace dhcp { break; case 177: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 772 "dhcp4_parser.yy" +#line 775 "dhcp4_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1534,7 +1534,7 @@ namespace isc { namespace dhcp { break; case 178: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 778 "dhcp4_parser.yy" +#line 781 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1544,7 +1544,7 @@ namespace isc { namespace dhcp { break; case 179: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 784 "dhcp4_parser.yy" +#line 787 "dhcp4_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1554,7 +1554,7 @@ namespace isc { namespace dhcp { break; case 180: // $@27: %empty -#line 790 "dhcp4_parser.yy" +#line 793 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1566,7 +1566,7 @@ namespace isc { namespace dhcp { break; case 181: // interfaces_config: "interfaces-config" $@27 ":" "{" interfaces_config_params "}" -#line 796 "dhcp4_parser.yy" +#line 799 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1576,7 +1576,7 @@ namespace isc { namespace dhcp { break; case 184: // interfaces_config_params: interfaces_config_params "," -#line 804 "dhcp4_parser.yy" +#line 807 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1584,7 +1584,7 @@ namespace isc { namespace dhcp { break; case 195: // $@28: %empty -#line 821 "dhcp4_parser.yy" +#line 824 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1594,7 +1594,7 @@ namespace isc { namespace dhcp { break; case 196: // sub_interfaces4: "{" $@28 interfaces_config_params "}" -#line 825 "dhcp4_parser.yy" +#line 828 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed @@ -1603,7 +1603,7 @@ namespace isc { namespace dhcp { break; case 197: // $@29: %empty -#line 830 "dhcp4_parser.yy" +#line 833 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1615,7 +1615,7 @@ namespace isc { namespace dhcp { break; case 198: // interfaces_list: "interfaces" $@29 ":" list_strings -#line 836 "dhcp4_parser.yy" +#line 839 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1624,7 +1624,7 @@ namespace isc { namespace dhcp { break; case 199: // $@30: %empty -#line 841 "dhcp4_parser.yy" +#line 844 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); @@ -1633,7 +1633,7 @@ namespace isc { namespace dhcp { break; case 200: // dhcp_socket_type: "dhcp-socket-type" $@30 ":" socket_type -#line 844 "dhcp4_parser.yy" +#line 847 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1642,19 +1642,19 @@ namespace isc { namespace dhcp { break; case 201: // socket_type: "raw" -#line 849 "dhcp4_parser.yy" +#line 852 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1648 "dhcp4_parser.cc" break; case 202: // socket_type: "udp" -#line 850 "dhcp4_parser.yy" +#line 853 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1654 "dhcp4_parser.cc" break; case 203: // $@31: %empty -#line 853 "dhcp4_parser.yy" +#line 856 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); @@ -1663,7 +1663,7 @@ namespace isc { namespace dhcp { break; case 204: // outbound_interface: "outbound-interface" $@31 ":" outbound_interface_value -#line 856 "dhcp4_parser.yy" +#line 859 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1672,7 +1672,7 @@ namespace isc { namespace dhcp { break; case 205: // outbound_interface_value: "same-as-inbound" -#line 861 "dhcp4_parser.yy" +#line 864 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } @@ -1680,7 +1680,7 @@ namespace isc { namespace dhcp { break; case 206: // outbound_interface_value: "use-routing" -#line 863 "dhcp4_parser.yy" +#line 866 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } @@ -1688,7 +1688,7 @@ namespace isc { namespace dhcp { break; case 207: // re_detect: "re-detect" ":" "boolean" -#line 867 "dhcp4_parser.yy" +#line 870 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1698,7 +1698,7 @@ namespace isc { namespace dhcp { break; case 208: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 873 "dhcp4_parser.yy" +#line 876 "dhcp4_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1708,7 +1708,7 @@ namespace isc { namespace dhcp { break; case 209: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 879 "dhcp4_parser.yy" +#line 882 "dhcp4_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1718,7 +1718,7 @@ namespace isc { namespace dhcp { break; case 210: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 885 "dhcp4_parser.yy" +#line 888 "dhcp4_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1728,7 +1728,7 @@ namespace isc { namespace dhcp { break; case 211: // $@32: %empty -#line 891 "dhcp4_parser.yy" +#line 894 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1740,7 +1740,7 @@ namespace isc { namespace dhcp { break; case 212: // lease_database: "lease-database" $@32 ":" "{" database_map_params "}" -#line 897 "dhcp4_parser.yy" +#line 900 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1751,7 +1751,7 @@ namespace isc { namespace dhcp { break; case 213: // $@33: %empty -#line 904 "dhcp4_parser.yy" +#line 907 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1763,7 +1763,7 @@ namespace isc { namespace dhcp { break; case 214: // sanity_checks: "sanity-checks" $@33 ":" "{" sanity_checks_params "}" -#line 910 "dhcp4_parser.yy" +#line 913 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1772,7 +1772,7 @@ namespace isc { namespace dhcp { break; case 217: // sanity_checks_params: sanity_checks_params "," -#line 917 "dhcp4_parser.yy" +#line 920 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1780,7 +1780,7 @@ namespace isc { namespace dhcp { break; case 220: // $@34: %empty -#line 926 "dhcp4_parser.yy" +#line 929 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1789,7 +1789,7 @@ namespace isc { namespace dhcp { break; case 221: // lease_checks: "lease-checks" $@34 ":" "constant string" -#line 929 "dhcp4_parser.yy" +#line 932 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1809,7 +1809,7 @@ namespace isc { namespace dhcp { break; case 222: // $@35: %empty -#line 945 "dhcp4_parser.yy" +#line 948 "dhcp4_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1818,7 +1818,7 @@ namespace isc { namespace dhcp { break; case 223: // extended_info_checks: "extended-info-checks" $@35 ":" "constant string" -#line 948 "dhcp4_parser.yy" +#line 951 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1837,7 +1837,7 @@ namespace isc { namespace dhcp { break; case 224: // $@36: %empty -#line 963 "dhcp4_parser.yy" +#line 966 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1849,7 +1849,7 @@ namespace isc { namespace dhcp { break; case 225: // hosts_database: "hosts-database" $@36 ":" "{" database_map_params "}" -#line 969 "dhcp4_parser.yy" +#line 972 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1860,7 +1860,7 @@ namespace isc { namespace dhcp { break; case 226: // $@37: %empty -#line 976 "dhcp4_parser.yy" +#line 979 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1872,7 +1872,7 @@ namespace isc { namespace dhcp { break; case 227: // hosts_databases: "hosts-databases" $@37 ":" "[" database_list "]" -#line 982 "dhcp4_parser.yy" +#line 985 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1881,7 +1881,7 @@ namespace isc { namespace dhcp { break; case 232: // not_empty_database_list: not_empty_database_list "," -#line 993 "dhcp4_parser.yy" +#line 996 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1889,7 +1889,7 @@ namespace isc { namespace dhcp { break; case 233: // $@38: %empty -#line 998 "dhcp4_parser.yy" +#line 1001 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1899,7 +1899,7 @@ namespace isc { namespace dhcp { break; case 234: // database: "{" $@38 database_map_params "}" -#line 1002 "dhcp4_parser.yy" +#line 1005 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -1909,15 +1909,15 @@ namespace isc { namespace dhcp { break; case 237: // database_map_params: database_map_params "," -#line 1010 "dhcp4_parser.yy" +#line 1013 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 1917 "dhcp4_parser.cc" break; - case 257: // $@39: %empty -#line 1036 "dhcp4_parser.yy" + case 260: // $@39: %empty +#line 1042 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); @@ -1925,8 +1925,8 @@ namespace isc { namespace dhcp { #line 1926 "dhcp4_parser.cc" break; - case 258: // database_type: "type" $@39 ":" db_type -#line 1039 "dhcp4_parser.yy" + case 261: // database_type: "type" $@39 ":" db_type +#line 1045 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1934,26 +1934,26 @@ namespace isc { namespace dhcp { #line 1935 "dhcp4_parser.cc" break; - case 259: // db_type: "memfile" -#line 1044 "dhcp4_parser.yy" + case 262: // db_type: "memfile" +#line 1050 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1941 "dhcp4_parser.cc" break; - case 260: // db_type: "mysql" -#line 1045 "dhcp4_parser.yy" + case 263: // db_type: "mysql" +#line 1051 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1947 "dhcp4_parser.cc" break; - case 261: // db_type: "postgresql" -#line 1046 "dhcp4_parser.yy" + case 264: // db_type: "postgresql" +#line 1052 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1953 "dhcp4_parser.cc" break; - case 262: // $@40: %empty -#line 1049 "dhcp4_parser.yy" + case 265: // $@40: %empty +#line 1055 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1961,8 +1961,8 @@ namespace isc { namespace dhcp { #line 1962 "dhcp4_parser.cc" break; - case 263: // user: "user" $@40 ":" "constant string" -#line 1052 "dhcp4_parser.yy" + case 266: // user: "user" $@40 ":" "constant string" +#line 1058 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1971,8 +1971,8 @@ namespace isc { namespace dhcp { #line 1972 "dhcp4_parser.cc" break; - case 264: // $@41: %empty -#line 1058 "dhcp4_parser.yy" + case 267: // $@41: %empty +#line 1064 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1980,8 +1980,8 @@ namespace isc { namespace dhcp { #line 1981 "dhcp4_parser.cc" break; - case 265: // password: "password" $@41 ":" "constant string" -#line 1061 "dhcp4_parser.yy" + case 268: // password: "password" $@41 ":" "constant string" +#line 1067 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1990,8 +1990,8 @@ namespace isc { namespace dhcp { #line 1991 "dhcp4_parser.cc" break; - case 266: // $@42: %empty -#line 1067 "dhcp4_parser.yy" + case 269: // $@42: %empty +#line 1073 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1999,8 +1999,8 @@ namespace isc { namespace dhcp { #line 2000 "dhcp4_parser.cc" break; - case 267: // host: "host" $@42 ":" "constant string" -#line 1070 "dhcp4_parser.yy" + case 270: // host: "host" $@42 ":" "constant string" +#line 1076 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -2009,8 +2009,8 @@ namespace isc { namespace dhcp { #line 2010 "dhcp4_parser.cc" break; - case 268: // port: "port" ":" "integer" -#line 1076 "dhcp4_parser.yy" + case 271: // port: "port" ":" "integer" +#line 1082 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2019,8 +2019,8 @@ namespace isc { namespace dhcp { #line 2020 "dhcp4_parser.cc" break; - case 269: // $@43: %empty -#line 1082 "dhcp4_parser.yy" + case 272: // $@43: %empty +#line 1088 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2028,8 +2028,8 @@ namespace isc { namespace dhcp { #line 2029 "dhcp4_parser.cc" break; - case 270: // name: "name" $@43 ":" "constant string" -#line 1085 "dhcp4_parser.yy" + case 273: // name: "name" $@43 ":" "constant string" +#line 1091 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -2038,8 +2038,8 @@ namespace isc { namespace dhcp { #line 2039 "dhcp4_parser.cc" break; - case 271: // persist: "persist" ":" "boolean" -#line 1091 "dhcp4_parser.yy" + case 274: // persist: "persist" ":" "boolean" +#line 1097 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2048,8 +2048,8 @@ namespace isc { namespace dhcp { #line 2049 "dhcp4_parser.cc" break; - case 272: // lfc_interval: "lfc-interval" ":" "integer" -#line 1097 "dhcp4_parser.yy" + case 275: // lfc_interval: "lfc-interval" ":" "integer" +#line 1103 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2058,8 +2058,8 @@ namespace isc { namespace dhcp { #line 2059 "dhcp4_parser.cc" break; - case 273: // readonly: "readonly" ":" "boolean" -#line 1103 "dhcp4_parser.yy" + case 276: // readonly: "readonly" ":" "boolean" +#line 1109 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2068,8 +2068,8 @@ namespace isc { namespace dhcp { #line 2069 "dhcp4_parser.cc" break; - case 274: // connect_timeout: "connect-timeout" ":" "integer" -#line 1109 "dhcp4_parser.yy" + case 277: // connect_timeout: "connect-timeout" ":" "integer" +#line 1115 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2078,150 +2078,180 @@ namespace isc { namespace dhcp { #line 2079 "dhcp4_parser.cc" break; - case 275: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1115 "dhcp4_parser.yy" + case 278: // read_timeout: "read-timeout" ":" "integer" +#line 1121 "dhcp4_parser.yy" + { + ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("read-timeout", n); +} +#line 2089 "dhcp4_parser.cc" + break; + + case 279: // write_timeout: "write-timeout" ":" "integer" +#line 1127 "dhcp4_parser.yy" + { + ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("write-timeout", n); +} +#line 2099 "dhcp4_parser.cc" + break; + + case 280: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1133 "dhcp4_parser.yy" + { + ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-user-timeout", n); +} +#line 2109 "dhcp4_parser.cc" + break; + + case 281: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1139 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2089 "dhcp4_parser.cc" +#line 2119 "dhcp4_parser.cc" break; - case 276: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1121 "dhcp4_parser.yy" + case 282: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1145 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 2099 "dhcp4_parser.cc" +#line 2129 "dhcp4_parser.cc" break; - case 277: // $@44: %empty -#line 1127 "dhcp4_parser.yy" + case 283: // $@44: %empty +#line 1151 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); } -#line 2108 "dhcp4_parser.cc" +#line 2138 "dhcp4_parser.cc" break; - case 278: // on_fail: "on-fail" $@44 ":" on_fail_mode -#line 1130 "dhcp4_parser.yy" + case 284: // on_fail: "on-fail" $@44 ":" on_fail_mode +#line 1154 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2117 "dhcp4_parser.cc" +#line 2147 "dhcp4_parser.cc" break; - case 279: // on_fail_mode: "stop-retry-exit" -#line 1135 "dhcp4_parser.yy" + case 285: // on_fail_mode: "stop-retry-exit" +#line 1159 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2123 "dhcp4_parser.cc" +#line 2153 "dhcp4_parser.cc" break; - case 280: // on_fail_mode: "serve-retry-exit" -#line 1136 "dhcp4_parser.yy" + case 286: // on_fail_mode: "serve-retry-exit" +#line 1160 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2129 "dhcp4_parser.cc" +#line 2159 "dhcp4_parser.cc" break; - case 281: // on_fail_mode: "serve-retry-continue" -#line 1137 "dhcp4_parser.yy" + case 287: // on_fail_mode: "serve-retry-continue" +#line 1161 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } -#line 2135 "dhcp4_parser.cc" +#line 2165 "dhcp4_parser.cc" break; - case 282: // max_row_errors: "max-row-errors" ":" "integer" -#line 1140 "dhcp4_parser.yy" + case 288: // max_row_errors: "max-row-errors" ":" "integer" +#line 1164 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2145 "dhcp4_parser.cc" +#line 2175 "dhcp4_parser.cc" break; - case 283: // $@45: %empty -#line 1146 "dhcp4_parser.yy" + case 289: // $@45: %empty +#line 1170 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2154 "dhcp4_parser.cc" +#line 2184 "dhcp4_parser.cc" break; - case 284: // trust_anchor: "trust-anchor" $@45 ":" "constant string" -#line 1149 "dhcp4_parser.yy" + case 290: // trust_anchor: "trust-anchor" $@45 ":" "constant string" +#line 1173 "dhcp4_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); ctx.leave(); } -#line 2164 "dhcp4_parser.cc" +#line 2194 "dhcp4_parser.cc" break; - case 285: // $@46: %empty -#line 1155 "dhcp4_parser.yy" + case 291: // $@46: %empty +#line 1179 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2173 "dhcp4_parser.cc" +#line 2203 "dhcp4_parser.cc" break; - case 286: // cert_file: "cert-file" $@46 ":" "constant string" -#line 1158 "dhcp4_parser.yy" + case 292: // cert_file: "cert-file" $@46 ":" "constant string" +#line 1182 "dhcp4_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); ctx.leave(); } -#line 2183 "dhcp4_parser.cc" +#line 2213 "dhcp4_parser.cc" break; - case 287: // $@47: %empty -#line 1164 "dhcp4_parser.yy" + case 293: // $@47: %empty +#line 1188 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2192 "dhcp4_parser.cc" +#line 2222 "dhcp4_parser.cc" break; - case 288: // key_file: "key-file" $@47 ":" "constant string" -#line 1167 "dhcp4_parser.yy" + case 294: // key_file: "key-file" $@47 ":" "constant string" +#line 1191 "dhcp4_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); ctx.leave(); } -#line 2202 "dhcp4_parser.cc" +#line 2232 "dhcp4_parser.cc" break; - case 289: // $@48: %empty -#line 1173 "dhcp4_parser.yy" + case 295: // $@48: %empty +#line 1197 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2211 "dhcp4_parser.cc" +#line 2241 "dhcp4_parser.cc" break; - case 290: // cipher_list: "cipher-list" $@48 ":" "constant string" -#line 1176 "dhcp4_parser.yy" + case 296: // cipher_list: "cipher-list" $@48 ":" "constant string" +#line 1200 "dhcp4_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2221 "dhcp4_parser.cc" +#line 2251 "dhcp4_parser.cc" break; - case 291: // $@49: %empty -#line 1182 "dhcp4_parser.yy" + case 297: // $@49: %empty +#line 1206 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2229,73 +2259,73 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2233 "dhcp4_parser.cc" +#line 2263 "dhcp4_parser.cc" break; - case 292: // host_reservation_identifiers: "host-reservation-identifiers" $@49 ":" "[" host_reservation_identifiers_list "]" -#line 1188 "dhcp4_parser.yy" + case 298: // host_reservation_identifiers: "host-reservation-identifiers" $@49 ":" "[" host_reservation_identifiers_list "]" +#line 1212 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2242 "dhcp4_parser.cc" +#line 2272 "dhcp4_parser.cc" break; - case 295: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1195 "dhcp4_parser.yy" + case 301: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1219 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2250 "dhcp4_parser.cc" +#line 2280 "dhcp4_parser.cc" break; - case 301: // duid_id: "duid" -#line 1207 "dhcp4_parser.yy" + case 307: // duid_id: "duid" +#line 1231 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2259 "dhcp4_parser.cc" +#line 2289 "dhcp4_parser.cc" break; - case 302: // hw_address_id: "hw-address" -#line 1212 "dhcp4_parser.yy" + case 308: // hw_address_id: "hw-address" +#line 1236 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2268 "dhcp4_parser.cc" +#line 2298 "dhcp4_parser.cc" break; - case 303: // circuit_id: "circuit-id" -#line 1217 "dhcp4_parser.yy" + case 309: // circuit_id: "circuit-id" +#line 1241 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 2277 "dhcp4_parser.cc" +#line 2307 "dhcp4_parser.cc" break; - case 304: // client_id: "client-id" -#line 1222 "dhcp4_parser.yy" + case 310: // client_id: "client-id" +#line 1246 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 2286 "dhcp4_parser.cc" +#line 2316 "dhcp4_parser.cc" break; - case 305: // flex_id: "flex-id" -#line 1227 "dhcp4_parser.yy" + case 311: // flex_id: "flex-id" +#line 1251 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2295 "dhcp4_parser.cc" +#line 2325 "dhcp4_parser.cc" break; - case 306: // $@50: %empty -#line 1234 "dhcp4_parser.yy" + case 312: // $@50: %empty +#line 1258 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2303,60 +2333,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2307 "dhcp4_parser.cc" +#line 2337 "dhcp4_parser.cc" break; - case 307: // dhcp_multi_threading: "multi-threading" $@50 ":" "{" multi_threading_params "}" -#line 1240 "dhcp4_parser.yy" + case 313: // dhcp_multi_threading: "multi-threading" $@50 ":" "{" multi_threading_params "}" +#line 1264 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2318 "dhcp4_parser.cc" +#line 2348 "dhcp4_parser.cc" break; - case 310: // multi_threading_params: multi_threading_params "," -#line 1249 "dhcp4_parser.yy" + case 316: // multi_threading_params: multi_threading_params "," +#line 1273 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2326 "dhcp4_parser.cc" +#line 2356 "dhcp4_parser.cc" break; - case 317: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1262 "dhcp4_parser.yy" + case 323: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1286 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2336 "dhcp4_parser.cc" +#line 2366 "dhcp4_parser.cc" break; - case 318: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1268 "dhcp4_parser.yy" + case 324: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1292 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2346 "dhcp4_parser.cc" +#line 2376 "dhcp4_parser.cc" break; - case 319: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1274 "dhcp4_parser.yy" + case 325: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1298 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2356 "dhcp4_parser.cc" +#line 2386 "dhcp4_parser.cc" break; - case 320: // $@51: %empty -#line 1280 "dhcp4_parser.yy" + case 326: // $@51: %empty +#line 1304 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2364,113 +2394,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2368 "dhcp4_parser.cc" +#line 2398 "dhcp4_parser.cc" break; - case 321: // hooks_libraries: "hooks-libraries" $@51 ":" "[" hooks_libraries_list "]" -#line 1286 "dhcp4_parser.yy" + case 327: // hooks_libraries: "hooks-libraries" $@51 ":" "[" hooks_libraries_list "]" +#line 1310 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2377 "dhcp4_parser.cc" +#line 2407 "dhcp4_parser.cc" break; - case 326: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1297 "dhcp4_parser.yy" + case 332: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1321 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2385 "dhcp4_parser.cc" +#line 2415 "dhcp4_parser.cc" break; - case 327: // $@52: %empty -#line 1302 "dhcp4_parser.yy" + case 333: // $@52: %empty +#line 1326 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2395 "dhcp4_parser.cc" +#line 2425 "dhcp4_parser.cc" break; - case 328: // hooks_library: "{" $@52 hooks_params "}" -#line 1306 "dhcp4_parser.yy" + case 334: // hooks_library: "{" $@52 hooks_params "}" +#line 1330 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2405 "dhcp4_parser.cc" +#line 2435 "dhcp4_parser.cc" break; - case 329: // $@53: %empty -#line 1312 "dhcp4_parser.yy" + case 335: // $@53: %empty +#line 1336 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2415 "dhcp4_parser.cc" +#line 2445 "dhcp4_parser.cc" break; - case 330: // sub_hooks_library: "{" $@53 hooks_params "}" -#line 1316 "dhcp4_parser.yy" + case 336: // sub_hooks_library: "{" $@53 hooks_params "}" +#line 1340 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2425 "dhcp4_parser.cc" +#line 2455 "dhcp4_parser.cc" break; - case 333: // hooks_params: hooks_params "," -#line 1324 "dhcp4_parser.yy" + case 339: // hooks_params: hooks_params "," +#line 1348 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2433 "dhcp4_parser.cc" +#line 2463 "dhcp4_parser.cc" break; - case 337: // $@54: %empty -#line 1334 "dhcp4_parser.yy" + case 343: // $@54: %empty +#line 1358 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2442 "dhcp4_parser.cc" +#line 2472 "dhcp4_parser.cc" break; - case 338: // library: "library" $@54 ":" "constant string" -#line 1337 "dhcp4_parser.yy" + case 344: // library: "library" $@54 ":" "constant string" +#line 1361 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2452 "dhcp4_parser.cc" +#line 2482 "dhcp4_parser.cc" break; - case 339: // $@55: %empty -#line 1343 "dhcp4_parser.yy" + case 345: // $@55: %empty +#line 1367 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2461 "dhcp4_parser.cc" +#line 2491 "dhcp4_parser.cc" break; - case 340: // parameters: "parameters" $@55 ":" map_value -#line 1346 "dhcp4_parser.yy" + case 346: // parameters: "parameters" $@55 ":" map_value +#line 1370 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2470 "dhcp4_parser.cc" +#line 2500 "dhcp4_parser.cc" break; - case 341: // $@56: %empty -#line 1352 "dhcp4_parser.yy" + case 347: // $@56: %empty +#line 1376 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2478,89 +2508,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2482 "dhcp4_parser.cc" +#line 2512 "dhcp4_parser.cc" break; - case 342: // expired_leases_processing: "expired-leases-processing" $@56 ":" "{" expired_leases_params "}" -#line 1358 "dhcp4_parser.yy" + case 348: // expired_leases_processing: "expired-leases-processing" $@56 ":" "{" expired_leases_params "}" +#line 1382 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2492 "dhcp4_parser.cc" +#line 2522 "dhcp4_parser.cc" break; - case 345: // expired_leases_params: expired_leases_params "," -#line 1366 "dhcp4_parser.yy" + case 351: // expired_leases_params: expired_leases_params "," +#line 1390 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2500 "dhcp4_parser.cc" +#line 2530 "dhcp4_parser.cc" break; - case 352: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1379 "dhcp4_parser.yy" + case 358: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1403 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2510 "dhcp4_parser.cc" +#line 2540 "dhcp4_parser.cc" break; - case 353: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1385 "dhcp4_parser.yy" + case 359: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1409 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2520 "dhcp4_parser.cc" +#line 2550 "dhcp4_parser.cc" break; - case 354: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1391 "dhcp4_parser.yy" + case 360: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1415 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2530 "dhcp4_parser.cc" +#line 2560 "dhcp4_parser.cc" break; - case 355: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1397 "dhcp4_parser.yy" + case 361: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1421 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2540 "dhcp4_parser.cc" +#line 2570 "dhcp4_parser.cc" break; - case 356: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1403 "dhcp4_parser.yy" + case 362: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1427 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2550 "dhcp4_parser.cc" +#line 2580 "dhcp4_parser.cc" break; - case 357: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1409 "dhcp4_parser.yy" + case 363: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1433 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2560 "dhcp4_parser.cc" +#line 2590 "dhcp4_parser.cc" break; - case 358: // $@57: %empty -#line 1418 "dhcp4_parser.yy" + case 364: // $@57: %empty +#line 1442 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2568,38 +2598,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } -#line 2572 "dhcp4_parser.cc" +#line 2602 "dhcp4_parser.cc" break; - case 359: // subnet4_list: "subnet4" $@57 ":" "[" subnet4_list_content "]" -#line 1424 "dhcp4_parser.yy" + case 365: // subnet4_list: "subnet4" $@57 ":" "[" subnet4_list_content "]" +#line 1448 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2581 "dhcp4_parser.cc" +#line 2611 "dhcp4_parser.cc" break; - case 364: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1438 "dhcp4_parser.yy" + case 370: // not_empty_subnet4_list: not_empty_subnet4_list "," +#line 1462 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2589 "dhcp4_parser.cc" +#line 2619 "dhcp4_parser.cc" break; - case 365: // $@58: %empty -#line 1447 "dhcp4_parser.yy" + case 371: // $@58: %empty +#line 1471 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2599 "dhcp4_parser.cc" +#line 2629 "dhcp4_parser.cc" break; - case 366: // subnet4: "{" $@58 subnet4_params "}" -#line 1451 "dhcp4_parser.yy" + case 372: // subnet4: "{" $@58 subnet4_params "}" +#line 1475 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2621,153 +2651,153 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2625 "dhcp4_parser.cc" +#line 2655 "dhcp4_parser.cc" break; - case 367: // $@59: %empty -#line 1473 "dhcp4_parser.yy" + case 373: // $@59: %empty +#line 1497 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2635 "dhcp4_parser.cc" +#line 2665 "dhcp4_parser.cc" break; - case 368: // sub_subnet4: "{" $@59 subnet4_params "}" -#line 1477 "dhcp4_parser.yy" + case 374: // sub_subnet4: "{" $@59 subnet4_params "}" +#line 1501 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2645 "dhcp4_parser.cc" +#line 2675 "dhcp4_parser.cc" break; - case 371: // subnet4_params: subnet4_params "," -#line 1486 "dhcp4_parser.yy" + case 377: // subnet4_params: subnet4_params "," +#line 1510 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2653 "dhcp4_parser.cc" +#line 2683 "dhcp4_parser.cc" break; - case 418: // $@60: %empty -#line 1540 "dhcp4_parser.yy" + case 424: // $@60: %empty +#line 1564 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2662 "dhcp4_parser.cc" +#line 2692 "dhcp4_parser.cc" break; - case 419: // subnet: "subnet" $@60 ":" "constant string" -#line 1543 "dhcp4_parser.yy" + case 425: // subnet: "subnet" $@60 ":" "constant string" +#line 1567 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2672 "dhcp4_parser.cc" +#line 2702 "dhcp4_parser.cc" break; - case 420: // $@61: %empty -#line 1549 "dhcp4_parser.yy" + case 426: // $@61: %empty +#line 1573 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2681 "dhcp4_parser.cc" +#line 2711 "dhcp4_parser.cc" break; - case 421: // subnet_4o6_interface: "4o6-interface" $@61 ":" "constant string" -#line 1552 "dhcp4_parser.yy" + case 427: // subnet_4o6_interface: "4o6-interface" $@61 ":" "constant string" +#line 1576 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } -#line 2691 "dhcp4_parser.cc" +#line 2721 "dhcp4_parser.cc" break; - case 422: // $@62: %empty -#line 1558 "dhcp4_parser.yy" + case 428: // $@62: %empty +#line 1582 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2700 "dhcp4_parser.cc" +#line 2730 "dhcp4_parser.cc" break; - case 423: // subnet_4o6_interface_id: "4o6-interface-id" $@62 ":" "constant string" -#line 1561 "dhcp4_parser.yy" + case 429: // subnet_4o6_interface_id: "4o6-interface-id" $@62 ":" "constant string" +#line 1585 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } -#line 2710 "dhcp4_parser.cc" +#line 2740 "dhcp4_parser.cc" break; - case 424: // $@63: %empty -#line 1567 "dhcp4_parser.yy" + case 430: // $@63: %empty +#line 1591 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2719 "dhcp4_parser.cc" +#line 2749 "dhcp4_parser.cc" break; - case 425: // subnet_4o6_subnet: "4o6-subnet" $@63 ":" "constant string" -#line 1570 "dhcp4_parser.yy" + case 431: // subnet_4o6_subnet: "4o6-subnet" $@63 ":" "constant string" +#line 1594 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } -#line 2729 "dhcp4_parser.cc" +#line 2759 "dhcp4_parser.cc" break; - case 426: // $@64: %empty -#line 1576 "dhcp4_parser.yy" + case 432: // $@64: %empty +#line 1600 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2738 "dhcp4_parser.cc" +#line 2768 "dhcp4_parser.cc" break; - case 427: // interface: "interface" $@64 ":" "constant string" -#line 1579 "dhcp4_parser.yy" + case 433: // interface: "interface" $@64 ":" "constant string" +#line 1603 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2748 "dhcp4_parser.cc" +#line 2778 "dhcp4_parser.cc" break; - case 428: // $@65: %empty -#line 1585 "dhcp4_parser.yy" + case 434: // $@65: %empty +#line 1609 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2757 "dhcp4_parser.cc" +#line 2787 "dhcp4_parser.cc" break; - case 429: // client_class: "client-class" $@65 ":" "constant string" -#line 1588 "dhcp4_parser.yy" + case 435: // client_class: "client-class" $@65 ":" "constant string" +#line 1612 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2767 "dhcp4_parser.cc" +#line 2797 "dhcp4_parser.cc" break; - case 430: // $@66: %empty -#line 1594 "dhcp4_parser.yy" + case 436: // $@66: %empty +#line 1618 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2775,102 +2805,102 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2779 "dhcp4_parser.cc" +#line 2809 "dhcp4_parser.cc" break; - case 431: // require_client_classes: "require-client-classes" $@66 ":" list_strings -#line 1600 "dhcp4_parser.yy" + case 437: // require_client_classes: "require-client-classes" $@66 ":" list_strings +#line 1624 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2788 "dhcp4_parser.cc" +#line 2818 "dhcp4_parser.cc" break; - case 432: // reservations_global: "reservations-global" ":" "boolean" -#line 1605 "dhcp4_parser.yy" + case 438: // reservations_global: "reservations-global" ":" "boolean" +#line 1629 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2798 "dhcp4_parser.cc" +#line 2828 "dhcp4_parser.cc" break; - case 433: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1611 "dhcp4_parser.yy" + case 439: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1635 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2808 "dhcp4_parser.cc" +#line 2838 "dhcp4_parser.cc" break; - case 434: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1617 "dhcp4_parser.yy" + case 440: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1641 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2818 "dhcp4_parser.cc" +#line 2848 "dhcp4_parser.cc" break; - case 435: // $@67: %empty -#line 1623 "dhcp4_parser.yy" + case 441: // $@67: %empty +#line 1647 "dhcp4_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2827 "dhcp4_parser.cc" +#line 2857 "dhcp4_parser.cc" break; - case 436: // reservation_mode: "reservation-mode" $@67 ":" hr_mode -#line 1626 "dhcp4_parser.yy" + case 442: // reservation_mode: "reservation-mode" $@67 ":" hr_mode +#line 1650 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2836 "dhcp4_parser.cc" +#line 2866 "dhcp4_parser.cc" break; - case 437: // hr_mode: "disabled" -#line 1631 "dhcp4_parser.yy" + case 443: // hr_mode: "disabled" +#line 1655 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2842 "dhcp4_parser.cc" +#line 2872 "dhcp4_parser.cc" break; - case 438: // hr_mode: "out-of-pool" -#line 1632 "dhcp4_parser.yy" + case 444: // hr_mode: "out-of-pool" +#line 1656 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2848 "dhcp4_parser.cc" +#line 2878 "dhcp4_parser.cc" break; - case 439: // hr_mode: "global" -#line 1633 "dhcp4_parser.yy" + case 445: // hr_mode: "global" +#line 1657 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2854 "dhcp4_parser.cc" +#line 2884 "dhcp4_parser.cc" break; - case 440: // hr_mode: "all" -#line 1634 "dhcp4_parser.yy" + case 446: // hr_mode: "all" +#line 1658 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2860 "dhcp4_parser.cc" +#line 2890 "dhcp4_parser.cc" break; - case 441: // id: "id" ":" "integer" -#line 1637 "dhcp4_parser.yy" + case 447: // id: "id" ":" "integer" +#line 1661 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2870 "dhcp4_parser.cc" +#line 2900 "dhcp4_parser.cc" break; - case 442: // $@68: %empty -#line 1645 "dhcp4_parser.yy" + case 448: // $@68: %empty +#line 1669 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2878,54 +2908,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2882 "dhcp4_parser.cc" +#line 2912 "dhcp4_parser.cc" break; - case 443: // shared_networks: "shared-networks" $@68 ":" "[" shared_networks_content "]" -#line 1651 "dhcp4_parser.yy" + case 449: // shared_networks: "shared-networks" $@68 ":" "[" shared_networks_content "]" +#line 1675 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2891 "dhcp4_parser.cc" +#line 2921 "dhcp4_parser.cc" break; - case 448: // shared_networks_list: shared_networks_list "," -#line 1664 "dhcp4_parser.yy" + case 454: // shared_networks_list: shared_networks_list "," +#line 1688 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2899 "dhcp4_parser.cc" +#line 2929 "dhcp4_parser.cc" break; - case 449: // $@69: %empty -#line 1669 "dhcp4_parser.yy" + case 455: // $@69: %empty +#line 1693 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2909 "dhcp4_parser.cc" +#line 2939 "dhcp4_parser.cc" break; - case 450: // shared_network: "{" $@69 shared_network_params "}" -#line 1673 "dhcp4_parser.yy" + case 456: // shared_network: "{" $@69 shared_network_params "}" +#line 1697 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 2917 "dhcp4_parser.cc" +#line 2947 "dhcp4_parser.cc" break; - case 453: // shared_network_params: shared_network_params "," -#line 1679 "dhcp4_parser.yy" + case 459: // shared_network_params: shared_network_params "," +#line 1703 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2925 "dhcp4_parser.cc" +#line 2955 "dhcp4_parser.cc" break; - case 495: // $@70: %empty -#line 1731 "dhcp4_parser.yy" + case 501: // $@70: %empty +#line 1755 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2933,55 +2963,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2937 "dhcp4_parser.cc" +#line 2967 "dhcp4_parser.cc" break; - case 496: // option_def_list: "option-def" $@70 ":" "[" option_def_list_content "]" -#line 1737 "dhcp4_parser.yy" + case 502: // option_def_list: "option-def" $@70 ":" "[" option_def_list_content "]" +#line 1761 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2946 "dhcp4_parser.cc" +#line 2976 "dhcp4_parser.cc" break; - case 497: // $@71: %empty -#line 1745 "dhcp4_parser.yy" + case 503: // $@71: %empty +#line 1769 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2955 "dhcp4_parser.cc" +#line 2985 "dhcp4_parser.cc" break; - case 498: // sub_option_def_list: "{" $@71 option_def_list "}" -#line 1748 "dhcp4_parser.yy" + case 504: // sub_option_def_list: "{" $@71 option_def_list "}" +#line 1772 "dhcp4_parser.yy" { // parsing completed } -#line 2963 "dhcp4_parser.cc" +#line 2993 "dhcp4_parser.cc" break; - case 503: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1760 "dhcp4_parser.yy" + case 509: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1784 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2971 "dhcp4_parser.cc" +#line 3001 "dhcp4_parser.cc" break; - case 504: // $@72: %empty -#line 1767 "dhcp4_parser.yy" + case 510: // $@72: %empty +#line 1791 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2981 "dhcp4_parser.cc" +#line 3011 "dhcp4_parser.cc" break; - case 505: // option_def_entry: "{" $@72 option_def_params "}" -#line 1771 "dhcp4_parser.yy" + case 511: // option_def_entry: "{" $@72 option_def_params "}" +#line 1795 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2989,21 +3019,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2993 "dhcp4_parser.cc" +#line 3023 "dhcp4_parser.cc" break; - case 506: // $@73: %empty -#line 1782 "dhcp4_parser.yy" + case 512: // $@73: %empty +#line 1806 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3003 "dhcp4_parser.cc" +#line 3033 "dhcp4_parser.cc" break; - case 507: // sub_option_def: "{" $@73 option_def_params "}" -#line 1786 "dhcp4_parser.yy" + case 513: // sub_option_def: "{" $@73 option_def_params "}" +#line 1810 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3011,115 +3041,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3015 "dhcp4_parser.cc" +#line 3045 "dhcp4_parser.cc" break; - case 512: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1802 "dhcp4_parser.yy" + case 518: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1826 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3023 "dhcp4_parser.cc" +#line 3053 "dhcp4_parser.cc" break; - case 524: // code: "code" ":" "integer" -#line 1821 "dhcp4_parser.yy" + case 530: // code: "code" ":" "integer" +#line 1845 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 3033 "dhcp4_parser.cc" +#line 3063 "dhcp4_parser.cc" break; - case 526: // $@74: %empty -#line 1829 "dhcp4_parser.yy" + case 532: // $@74: %empty +#line 1853 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3042 "dhcp4_parser.cc" +#line 3072 "dhcp4_parser.cc" break; - case 527: // option_def_type: "type" $@74 ":" "constant string" -#line 1832 "dhcp4_parser.yy" + case 533: // option_def_type: "type" $@74 ":" "constant string" +#line 1856 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 3052 "dhcp4_parser.cc" +#line 3082 "dhcp4_parser.cc" break; - case 528: // $@75: %empty -#line 1838 "dhcp4_parser.yy" + case 534: // $@75: %empty +#line 1862 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3061 "dhcp4_parser.cc" +#line 3091 "dhcp4_parser.cc" break; - case 529: // option_def_record_types: "record-types" $@75 ":" "constant string" -#line 1841 "dhcp4_parser.yy" + case 535: // option_def_record_types: "record-types" $@75 ":" "constant string" +#line 1865 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 3071 "dhcp4_parser.cc" +#line 3101 "dhcp4_parser.cc" break; - case 530: // $@76: %empty -#line 1847 "dhcp4_parser.yy" + case 536: // $@76: %empty +#line 1871 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3080 "dhcp4_parser.cc" +#line 3110 "dhcp4_parser.cc" break; - case 531: // space: "space" $@76 ":" "constant string" -#line 1850 "dhcp4_parser.yy" + case 537: // space: "space" $@76 ":" "constant string" +#line 1874 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 3090 "dhcp4_parser.cc" +#line 3120 "dhcp4_parser.cc" break; - case 533: // $@77: %empty -#line 1858 "dhcp4_parser.yy" + case 539: // $@77: %empty +#line 1882 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3099 "dhcp4_parser.cc" +#line 3129 "dhcp4_parser.cc" break; - case 534: // option_def_encapsulate: "encapsulate" $@77 ":" "constant string" -#line 1861 "dhcp4_parser.yy" + case 540: // option_def_encapsulate: "encapsulate" $@77 ":" "constant string" +#line 1885 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 3109 "dhcp4_parser.cc" +#line 3139 "dhcp4_parser.cc" break; - case 535: // option_def_array: "array" ":" "boolean" -#line 1867 "dhcp4_parser.yy" + case 541: // option_def_array: "array" ":" "boolean" +#line 1891 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3119 "dhcp4_parser.cc" +#line 3149 "dhcp4_parser.cc" break; - case 536: // $@78: %empty -#line 1877 "dhcp4_parser.yy" + case 542: // $@78: %empty +#line 1901 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3127,113 +3157,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3131 "dhcp4_parser.cc" +#line 3161 "dhcp4_parser.cc" break; - case 537: // option_data_list: "option-data" $@78 ":" "[" option_data_list_content "]" -#line 1883 "dhcp4_parser.yy" + case 543: // option_data_list: "option-data" $@78 ":" "[" option_data_list_content "]" +#line 1907 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3140 "dhcp4_parser.cc" +#line 3170 "dhcp4_parser.cc" break; - case 542: // not_empty_option_data_list: not_empty_option_data_list "," -#line 1898 "dhcp4_parser.yy" + case 548: // not_empty_option_data_list: not_empty_option_data_list "," +#line 1922 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3148 "dhcp4_parser.cc" +#line 3178 "dhcp4_parser.cc" break; - case 543: // $@79: %empty -#line 1905 "dhcp4_parser.yy" + case 549: // $@79: %empty +#line 1929 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3158 "dhcp4_parser.cc" +#line 3188 "dhcp4_parser.cc" break; - case 544: // option_data_entry: "{" $@79 option_data_params "}" -#line 1909 "dhcp4_parser.yy" + case 550: // option_data_entry: "{" $@79 option_data_params "}" +#line 1933 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3167 "dhcp4_parser.cc" +#line 3197 "dhcp4_parser.cc" break; - case 545: // $@80: %empty -#line 1917 "dhcp4_parser.yy" + case 551: // $@80: %empty +#line 1941 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3177 "dhcp4_parser.cc" +#line 3207 "dhcp4_parser.cc" break; - case 546: // sub_option_data: "{" $@80 option_data_params "}" -#line 1921 "dhcp4_parser.yy" + case 552: // sub_option_data: "{" $@80 option_data_params "}" +#line 1945 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3186 "dhcp4_parser.cc" +#line 3216 "dhcp4_parser.cc" break; - case 551: // not_empty_option_data_params: not_empty_option_data_params "," -#line 1937 "dhcp4_parser.yy" + case 557: // not_empty_option_data_params: not_empty_option_data_params "," +#line 1961 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3194 "dhcp4_parser.cc" +#line 3224 "dhcp4_parser.cc" break; - case 562: // $@81: %empty -#line 1957 "dhcp4_parser.yy" + case 568: // $@81: %empty +#line 1981 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3203 "dhcp4_parser.cc" +#line 3233 "dhcp4_parser.cc" break; - case 563: // option_data_data: "data" $@81 ":" "constant string" -#line 1960 "dhcp4_parser.yy" + case 569: // option_data_data: "data" $@81 ":" "constant string" +#line 1984 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 3213 "dhcp4_parser.cc" +#line 3243 "dhcp4_parser.cc" break; - case 566: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1970 "dhcp4_parser.yy" + case 572: // option_data_csv_format: "csv-format" ":" "boolean" +#line 1994 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 3223 "dhcp4_parser.cc" +#line 3253 "dhcp4_parser.cc" break; - case 567: // option_data_always_send: "always-send" ":" "boolean" -#line 1976 "dhcp4_parser.yy" + case 573: // option_data_always_send: "always-send" ":" "boolean" +#line 2000 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 3233 "dhcp4_parser.cc" +#line 3263 "dhcp4_parser.cc" break; - case 568: // $@82: %empty -#line 1985 "dhcp4_parser.yy" + case 574: // $@82: %empty +#line 2009 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3241,103 +3271,103 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3245 "dhcp4_parser.cc" +#line 3275 "dhcp4_parser.cc" break; - case 569: // pools_list: "pools" $@82 ":" "[" pools_list_content "]" -#line 1991 "dhcp4_parser.yy" + case 575: // pools_list: "pools" $@82 ":" "[" pools_list_content "]" +#line 2015 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3254 "dhcp4_parser.cc" +#line 3284 "dhcp4_parser.cc" break; - case 574: // not_empty_pools_list: not_empty_pools_list "," -#line 2004 "dhcp4_parser.yy" + case 580: // not_empty_pools_list: not_empty_pools_list "," +#line 2028 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3262 "dhcp4_parser.cc" +#line 3292 "dhcp4_parser.cc" break; - case 575: // $@83: %empty -#line 2009 "dhcp4_parser.yy" + case 581: // $@83: %empty +#line 2033 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3272 "dhcp4_parser.cc" +#line 3302 "dhcp4_parser.cc" break; - case 576: // pool_list_entry: "{" $@83 pool_params "}" -#line 2013 "dhcp4_parser.yy" + case 582: // pool_list_entry: "{" $@83 pool_params "}" +#line 2037 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3282 "dhcp4_parser.cc" +#line 3312 "dhcp4_parser.cc" break; - case 577: // $@84: %empty -#line 2019 "dhcp4_parser.yy" + case 583: // $@84: %empty +#line 2043 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3292 "dhcp4_parser.cc" +#line 3322 "dhcp4_parser.cc" break; - case 578: // sub_pool4: "{" $@84 pool_params "}" -#line 2023 "dhcp4_parser.yy" + case 584: // sub_pool4: "{" $@84 pool_params "}" +#line 2047 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3302 "dhcp4_parser.cc" +#line 3332 "dhcp4_parser.cc" break; - case 581: // pool_params: pool_params "," -#line 2031 "dhcp4_parser.yy" + case 587: // pool_params: pool_params "," +#line 2055 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3310 "dhcp4_parser.cc" +#line 3340 "dhcp4_parser.cc" break; - case 589: // $@85: %empty -#line 2045 "dhcp4_parser.yy" + case 595: // $@85: %empty +#line 2069 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3319 "dhcp4_parser.cc" +#line 3349 "dhcp4_parser.cc" break; - case 590: // pool_entry: "pool" $@85 ":" "constant string" -#line 2048 "dhcp4_parser.yy" + case 596: // pool_entry: "pool" $@85 ":" "constant string" +#line 2072 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3329 "dhcp4_parser.cc" +#line 3359 "dhcp4_parser.cc" break; - case 591: // $@86: %empty -#line 2054 "dhcp4_parser.yy" + case 597: // $@86: %empty +#line 2078 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3337 "dhcp4_parser.cc" +#line 3367 "dhcp4_parser.cc" break; - case 592: // user_context: "user-context" $@86 ":" map_value -#line 2056 "dhcp4_parser.yy" + case 598: // user_context: "user-context" $@86 ":" map_value +#line 2080 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3360,19 +3390,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3364 "dhcp4_parser.cc" +#line 3394 "dhcp4_parser.cc" break; - case 593: // $@87: %empty -#line 2079 "dhcp4_parser.yy" + case 599: // $@87: %empty +#line 2103 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3372 "dhcp4_parser.cc" +#line 3402 "dhcp4_parser.cc" break; - case 594: // comment: "comment" $@87 ":" "constant string" -#line 2081 "dhcp4_parser.yy" + case 600: // comment: "comment" $@87 ":" "constant string" +#line 2105 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3397,11 +3427,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3401 "dhcp4_parser.cc" +#line 3431 "dhcp4_parser.cc" break; - case 595: // $@88: %empty -#line 2109 "dhcp4_parser.yy" + case 601: // $@88: %empty +#line 2133 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3409,150 +3439,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3413 "dhcp4_parser.cc" +#line 3443 "dhcp4_parser.cc" break; - case 596: // reservations: "reservations" $@88 ":" "[" reservations_list "]" -#line 2115 "dhcp4_parser.yy" + case 602: // reservations: "reservations" $@88 ":" "[" reservations_list "]" +#line 2139 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3422 "dhcp4_parser.cc" +#line 3452 "dhcp4_parser.cc" break; - case 601: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2126 "dhcp4_parser.yy" + case 607: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2150 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3430 "dhcp4_parser.cc" +#line 3460 "dhcp4_parser.cc" break; - case 602: // $@89: %empty -#line 2131 "dhcp4_parser.yy" + case 608: // $@89: %empty +#line 2155 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3440 "dhcp4_parser.cc" +#line 3470 "dhcp4_parser.cc" break; - case 603: // reservation: "{" $@89 reservation_params "}" -#line 2135 "dhcp4_parser.yy" + case 609: // reservation: "{" $@89 reservation_params "}" +#line 2159 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3449 "dhcp4_parser.cc" +#line 3479 "dhcp4_parser.cc" break; - case 604: // $@90: %empty -#line 2140 "dhcp4_parser.yy" + case 610: // $@90: %empty +#line 2164 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3459 "dhcp4_parser.cc" +#line 3489 "dhcp4_parser.cc" break; - case 605: // sub_reservation: "{" $@90 reservation_params "}" -#line 2144 "dhcp4_parser.yy" + case 611: // sub_reservation: "{" $@90 reservation_params "}" +#line 2168 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3468 "dhcp4_parser.cc" +#line 3498 "dhcp4_parser.cc" break; - case 610: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2155 "dhcp4_parser.yy" + case 616: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2179 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3476 "dhcp4_parser.cc" +#line 3506 "dhcp4_parser.cc" break; - case 626: // $@91: %empty -#line 2178 "dhcp4_parser.yy" + case 632: // $@91: %empty +#line 2202 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3485 "dhcp4_parser.cc" +#line 3515 "dhcp4_parser.cc" break; - case 627: // next_server: "next-server" $@91 ":" "constant string" -#line 2181 "dhcp4_parser.yy" + case 633: // next_server: "next-server" $@91 ":" "constant string" +#line 2205 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } -#line 3495 "dhcp4_parser.cc" +#line 3525 "dhcp4_parser.cc" break; - case 628: // $@92: %empty -#line 2187 "dhcp4_parser.yy" + case 634: // $@92: %empty +#line 2211 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3504 "dhcp4_parser.cc" +#line 3534 "dhcp4_parser.cc" break; - case 629: // server_hostname: "server-hostname" $@92 ":" "constant string" -#line 2190 "dhcp4_parser.yy" + case 635: // server_hostname: "server-hostname" $@92 ":" "constant string" +#line 2214 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 3514 "dhcp4_parser.cc" +#line 3544 "dhcp4_parser.cc" break; - case 630: // $@93: %empty -#line 2196 "dhcp4_parser.yy" + case 636: // $@93: %empty +#line 2220 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3523 "dhcp4_parser.cc" +#line 3553 "dhcp4_parser.cc" break; - case 631: // boot_file_name: "boot-file-name" $@93 ":" "constant string" -#line 2199 "dhcp4_parser.yy" + case 637: // boot_file_name: "boot-file-name" $@93 ":" "constant string" +#line 2223 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } -#line 3533 "dhcp4_parser.cc" +#line 3563 "dhcp4_parser.cc" break; - case 632: // $@94: %empty -#line 2205 "dhcp4_parser.yy" + case 638: // $@94: %empty +#line 2229 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3542 "dhcp4_parser.cc" +#line 3572 "dhcp4_parser.cc" break; - case 633: // ip_address: "ip-address" $@94 ":" "constant string" -#line 2208 "dhcp4_parser.yy" + case 639: // ip_address: "ip-address" $@94 ":" "constant string" +#line 2232 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3552 "dhcp4_parser.cc" +#line 3582 "dhcp4_parser.cc" break; - case 634: // $@95: %empty -#line 2214 "dhcp4_parser.yy" + case 640: // $@95: %empty +#line 2238 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3560,134 +3590,134 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3564 "dhcp4_parser.cc" +#line 3594 "dhcp4_parser.cc" break; - case 635: // ip_addresses: "ip-addresses" $@95 ":" list_strings -#line 2220 "dhcp4_parser.yy" + case 641: // ip_addresses: "ip-addresses" $@95 ":" list_strings +#line 2244 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3573 "dhcp4_parser.cc" +#line 3603 "dhcp4_parser.cc" break; - case 636: // $@96: %empty -#line 2225 "dhcp4_parser.yy" + case 642: // $@96: %empty +#line 2249 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3582 "dhcp4_parser.cc" +#line 3612 "dhcp4_parser.cc" break; - case 637: // duid: "duid" $@96 ":" "constant string" -#line 2228 "dhcp4_parser.yy" + case 643: // duid: "duid" $@96 ":" "constant string" +#line 2252 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3592 "dhcp4_parser.cc" +#line 3622 "dhcp4_parser.cc" break; - case 638: // $@97: %empty -#line 2234 "dhcp4_parser.yy" + case 644: // $@97: %empty +#line 2258 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3601 "dhcp4_parser.cc" +#line 3631 "dhcp4_parser.cc" break; - case 639: // hw_address: "hw-address" $@97 ":" "constant string" -#line 2237 "dhcp4_parser.yy" + case 645: // hw_address: "hw-address" $@97 ":" "constant string" +#line 2261 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3611 "dhcp4_parser.cc" +#line 3641 "dhcp4_parser.cc" break; - case 640: // $@98: %empty -#line 2243 "dhcp4_parser.yy" + case 646: // $@98: %empty +#line 2267 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3620 "dhcp4_parser.cc" +#line 3650 "dhcp4_parser.cc" break; - case 641: // client_id_value: "client-id" $@98 ":" "constant string" -#line 2246 "dhcp4_parser.yy" + case 647: // client_id_value: "client-id" $@98 ":" "constant string" +#line 2270 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 3630 "dhcp4_parser.cc" +#line 3660 "dhcp4_parser.cc" break; - case 642: // $@99: %empty -#line 2252 "dhcp4_parser.yy" + case 648: // $@99: %empty +#line 2276 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3639 "dhcp4_parser.cc" +#line 3669 "dhcp4_parser.cc" break; - case 643: // circuit_id_value: "circuit-id" $@99 ":" "constant string" -#line 2255 "dhcp4_parser.yy" + case 649: // circuit_id_value: "circuit-id" $@99 ":" "constant string" +#line 2279 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 3649 "dhcp4_parser.cc" +#line 3679 "dhcp4_parser.cc" break; - case 644: // $@100: %empty -#line 2261 "dhcp4_parser.yy" + case 650: // $@100: %empty +#line 2285 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3658 "dhcp4_parser.cc" +#line 3688 "dhcp4_parser.cc" break; - case 645: // flex_id_value: "flex-id" $@100 ":" "constant string" -#line 2264 "dhcp4_parser.yy" + case 651: // flex_id_value: "flex-id" $@100 ":" "constant string" +#line 2288 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3668 "dhcp4_parser.cc" +#line 3698 "dhcp4_parser.cc" break; - case 646: // $@101: %empty -#line 2270 "dhcp4_parser.yy" + case 652: // $@101: %empty +#line 2294 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3677 "dhcp4_parser.cc" +#line 3707 "dhcp4_parser.cc" break; - case 647: // hostname: "hostname" $@101 ":" "constant string" -#line 2273 "dhcp4_parser.yy" + case 653: // hostname: "hostname" $@101 ":" "constant string" +#line 2297 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3687 "dhcp4_parser.cc" +#line 3717 "dhcp4_parser.cc" break; - case 648: // $@102: %empty -#line 2279 "dhcp4_parser.yy" + case 654: // $@102: %empty +#line 2303 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3695,20 +3725,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3699 "dhcp4_parser.cc" +#line 3729 "dhcp4_parser.cc" break; - case 649: // reservation_client_classes: "client-classes" $@102 ":" list_strings -#line 2285 "dhcp4_parser.yy" + case 655: // reservation_client_classes: "client-classes" $@102 ":" list_strings +#line 2309 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3708 "dhcp4_parser.cc" +#line 3738 "dhcp4_parser.cc" break; - case 650: // $@103: %empty -#line 2293 "dhcp4_parser.yy" + case 656: // $@103: %empty +#line 2317 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3716,20 +3746,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3720 "dhcp4_parser.cc" +#line 3750 "dhcp4_parser.cc" break; - case 651: // relay: "relay" $@103 ":" "{" relay_map "}" -#line 2299 "dhcp4_parser.yy" + case 657: // relay: "relay" $@103 ":" "{" relay_map "}" +#line 2323 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3729 "dhcp4_parser.cc" +#line 3759 "dhcp4_parser.cc" break; - case 654: // $@104: %empty -#line 2311 "dhcp4_parser.yy" + case 660: // $@104: %empty +#line 2335 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3737,114 +3767,114 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3741 "dhcp4_parser.cc" +#line 3771 "dhcp4_parser.cc" break; - case 655: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]" -#line 2317 "dhcp4_parser.yy" + case 661: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]" +#line 2341 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3750 "dhcp4_parser.cc" +#line 3780 "dhcp4_parser.cc" break; - case 658: // client_classes_list: client_classes_list "," -#line 2324 "dhcp4_parser.yy" + case 664: // client_classes_list: client_classes_list "," +#line 2348 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3758 "dhcp4_parser.cc" +#line 3788 "dhcp4_parser.cc" break; - case 659: // $@105: %empty -#line 2329 "dhcp4_parser.yy" + case 665: // $@105: %empty +#line 2353 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3768 "dhcp4_parser.cc" +#line 3798 "dhcp4_parser.cc" break; - case 660: // client_class_entry: "{" $@105 client_class_params "}" -#line 2333 "dhcp4_parser.yy" + case 666: // client_class_entry: "{" $@105 client_class_params "}" +#line 2357 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3778 "dhcp4_parser.cc" +#line 3808 "dhcp4_parser.cc" break; - case 665: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2345 "dhcp4_parser.yy" + case 671: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2369 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3786 "dhcp4_parser.cc" +#line 3816 "dhcp4_parser.cc" break; - case 682: // $@106: %empty -#line 2369 "dhcp4_parser.yy" + case 688: // $@106: %empty +#line 2393 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3795 "dhcp4_parser.cc" +#line 3825 "dhcp4_parser.cc" break; - case 683: // client_class_test: "test" $@106 ":" "constant string" -#line 2372 "dhcp4_parser.yy" + case 689: // client_class_test: "test" $@106 ":" "constant string" +#line 2396 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3805 "dhcp4_parser.cc" +#line 3835 "dhcp4_parser.cc" break; - case 684: // $@107: %empty -#line 2378 "dhcp4_parser.yy" + case 690: // $@107: %empty +#line 2402 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3814 "dhcp4_parser.cc" +#line 3844 "dhcp4_parser.cc" break; - case 685: // client_class_template_test: "template-test" $@107 ":" "constant string" -#line 2381 "dhcp4_parser.yy" + case 691: // client_class_template_test: "template-test" $@107 ":" "constant string" +#line 2405 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 3824 "dhcp4_parser.cc" +#line 3854 "dhcp4_parser.cc" break; - case 686: // only_if_required: "only-if-required" ":" "boolean" -#line 2387 "dhcp4_parser.yy" + case 692: // only_if_required: "only-if-required" ":" "boolean" +#line 2411 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3834 "dhcp4_parser.cc" +#line 3864 "dhcp4_parser.cc" break; - case 687: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2395 "dhcp4_parser.yy" + case 693: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2419 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3844 "dhcp4_parser.cc" +#line 3874 "dhcp4_parser.cc" break; - case 688: // $@108: %empty -#line 2403 "dhcp4_parser.yy" + case 694: // $@108: %empty +#line 2427 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3852,66 +3882,66 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3856 "dhcp4_parser.cc" +#line 3886 "dhcp4_parser.cc" break; - case 689: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2409 "dhcp4_parser.yy" + case 695: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" +#line 2433 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3865 "dhcp4_parser.cc" +#line 3895 "dhcp4_parser.cc" break; - case 692: // control_socket_params: control_socket_params "," -#line 2416 "dhcp4_parser.yy" + case 698: // control_socket_params: control_socket_params "," +#line 2440 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3873 "dhcp4_parser.cc" +#line 3903 "dhcp4_parser.cc" break; - case 698: // $@109: %empty -#line 2428 "dhcp4_parser.yy" + case 704: // $@109: %empty +#line 2452 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3882 "dhcp4_parser.cc" +#line 3912 "dhcp4_parser.cc" break; - case 699: // control_socket_type: "socket-type" $@109 ":" "constant string" -#line 2431 "dhcp4_parser.yy" + case 705: // control_socket_type: "socket-type" $@109 ":" "constant string" +#line 2455 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3892 "dhcp4_parser.cc" +#line 3922 "dhcp4_parser.cc" break; - case 700: // $@110: %empty -#line 2437 "dhcp4_parser.yy" + case 706: // $@110: %empty +#line 2461 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3901 "dhcp4_parser.cc" +#line 3931 "dhcp4_parser.cc" break; - case 701: // control_socket_name: "socket-name" $@110 ":" "constant string" -#line 2440 "dhcp4_parser.yy" + case 707: // control_socket_name: "socket-name" $@110 ":" "constant string" +#line 2464 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 3911 "dhcp4_parser.cc" +#line 3941 "dhcp4_parser.cc" break; - case 702: // $@111: %empty -#line 2449 "dhcp4_parser.yy" + case 708: // $@111: %empty +#line 2473 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3919,87 +3949,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 3923 "dhcp4_parser.cc" +#line 3953 "dhcp4_parser.cc" break; - case 703: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" -#line 2455 "dhcp4_parser.yy" + case 709: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" +#line 2479 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3934 "dhcp4_parser.cc" +#line 3964 "dhcp4_parser.cc" break; - case 706: // queue_control_params: queue_control_params "," -#line 2464 "dhcp4_parser.yy" + case 712: // queue_control_params: queue_control_params "," +#line 2488 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3942 "dhcp4_parser.cc" +#line 3972 "dhcp4_parser.cc" break; - case 713: // enable_queue: "enable-queue" ":" "boolean" -#line 2477 "dhcp4_parser.yy" + case 719: // enable_queue: "enable-queue" ":" "boolean" +#line 2501 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 3952 "dhcp4_parser.cc" +#line 3982 "dhcp4_parser.cc" break; - case 714: // $@112: %empty -#line 2483 "dhcp4_parser.yy" + case 720: // $@112: %empty +#line 2507 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3961 "dhcp4_parser.cc" +#line 3991 "dhcp4_parser.cc" break; - case 715: // queue_type: "queue-type" $@112 ":" "constant string" -#line 2486 "dhcp4_parser.yy" + case 721: // queue_type: "queue-type" $@112 ":" "constant string" +#line 2510 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 3971 "dhcp4_parser.cc" +#line 4001 "dhcp4_parser.cc" break; - case 716: // capacity: "capacity" ":" "integer" -#line 2492 "dhcp4_parser.yy" + case 722: // capacity: "capacity" ":" "integer" +#line 2516 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 3981 "dhcp4_parser.cc" +#line 4011 "dhcp4_parser.cc" break; - case 717: // $@113: %empty -#line 2498 "dhcp4_parser.yy" + case 723: // $@113: %empty +#line 2522 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3990 "dhcp4_parser.cc" +#line 4020 "dhcp4_parser.cc" break; - case 718: // arbitrary_map_entry: "constant string" $@113 ":" value -#line 2501 "dhcp4_parser.yy" + case 724: // arbitrary_map_entry: "constant string" $@113 ":" value +#line 2525 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3999 "dhcp4_parser.cc" +#line 4029 "dhcp4_parser.cc" break; - case 719: // $@114: %empty -#line 2508 "dhcp4_parser.yy" + case 725: // $@114: %empty +#line 2532 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4007,291 +4037,291 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4011 "dhcp4_parser.cc" +#line 4041 "dhcp4_parser.cc" break; - case 720: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" -#line 2514 "dhcp4_parser.yy" + case 726: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" +#line 2538 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4022 "dhcp4_parser.cc" +#line 4052 "dhcp4_parser.cc" break; - case 721: // $@115: %empty -#line 2521 "dhcp4_parser.yy" + case 727: // $@115: %empty +#line 2545 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4032 "dhcp4_parser.cc" +#line 4062 "dhcp4_parser.cc" break; - case 722: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" -#line 2525 "dhcp4_parser.yy" + case 728: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" +#line 2549 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4042 "dhcp4_parser.cc" +#line 4072 "dhcp4_parser.cc" break; - case 725: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2533 "dhcp4_parser.yy" + case 731: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2557 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4050 "dhcp4_parser.cc" +#line 4080 "dhcp4_parser.cc" break; - case 744: // enable_updates: "enable-updates" ":" "boolean" -#line 2558 "dhcp4_parser.yy" + case 750: // enable_updates: "enable-updates" ":" "boolean" +#line 2582 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4060 "dhcp4_parser.cc" +#line 4090 "dhcp4_parser.cc" break; - case 745: // $@116: %empty -#line 2564 "dhcp4_parser.yy" + case 751: // $@116: %empty +#line 2588 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4069 "dhcp4_parser.cc" +#line 4099 "dhcp4_parser.cc" break; - case 746: // server_ip: "server-ip" $@116 ":" "constant string" -#line 2567 "dhcp4_parser.yy" + case 752: // server_ip: "server-ip" $@116 ":" "constant string" +#line 2591 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4079 "dhcp4_parser.cc" +#line 4109 "dhcp4_parser.cc" break; - case 747: // server_port: "server-port" ":" "integer" -#line 2573 "dhcp4_parser.yy" + case 753: // server_port: "server-port" ":" "integer" +#line 2597 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4089 "dhcp4_parser.cc" +#line 4119 "dhcp4_parser.cc" break; - case 748: // $@117: %empty -#line 2579 "dhcp4_parser.yy" + case 754: // $@117: %empty +#line 2603 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4098 "dhcp4_parser.cc" +#line 4128 "dhcp4_parser.cc" break; - case 749: // sender_ip: "sender-ip" $@117 ":" "constant string" -#line 2582 "dhcp4_parser.yy" + case 755: // sender_ip: "sender-ip" $@117 ":" "constant string" +#line 2606 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4108 "dhcp4_parser.cc" +#line 4138 "dhcp4_parser.cc" break; - case 750: // sender_port: "sender-port" ":" "integer" -#line 2588 "dhcp4_parser.yy" + case 756: // sender_port: "sender-port" ":" "integer" +#line 2612 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4118 "dhcp4_parser.cc" +#line 4148 "dhcp4_parser.cc" break; - case 751: // max_queue_size: "max-queue-size" ":" "integer" -#line 2594 "dhcp4_parser.yy" + case 757: // max_queue_size: "max-queue-size" ":" "integer" +#line 2618 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4128 "dhcp4_parser.cc" +#line 4158 "dhcp4_parser.cc" break; - case 752: // $@118: %empty -#line 2600 "dhcp4_parser.yy" + case 758: // $@118: %empty +#line 2624 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4137 "dhcp4_parser.cc" +#line 4167 "dhcp4_parser.cc" break; - case 753: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value -#line 2603 "dhcp4_parser.yy" + case 759: // ncr_protocol: "ncr-protocol" $@118 ":" ncr_protocol_value +#line 2627 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4146 "dhcp4_parser.cc" +#line 4176 "dhcp4_parser.cc" break; - case 754: // ncr_protocol_value: "udp" -#line 2609 "dhcp4_parser.yy" + case 760: // ncr_protocol_value: "udp" +#line 2633 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4152 "dhcp4_parser.cc" +#line 4182 "dhcp4_parser.cc" break; - case 755: // ncr_protocol_value: "tcp" -#line 2610 "dhcp4_parser.yy" + case 761: // ncr_protocol_value: "tcp" +#line 2634 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4158 "dhcp4_parser.cc" +#line 4188 "dhcp4_parser.cc" break; - case 756: // $@119: %empty -#line 2613 "dhcp4_parser.yy" + case 762: // $@119: %empty +#line 2637 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4167 "dhcp4_parser.cc" +#line 4197 "dhcp4_parser.cc" break; - case 757: // ncr_format: "ncr-format" $@119 ":" "JSON" -#line 2616 "dhcp4_parser.yy" + case 763: // ncr_format: "ncr-format" $@119 ":" "JSON" +#line 2640 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4177 "dhcp4_parser.cc" +#line 4207 "dhcp4_parser.cc" break; - case 758: // $@120: %empty -#line 2623 "dhcp4_parser.yy" + case 764: // $@120: %empty +#line 2647 "dhcp4_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4186 "dhcp4_parser.cc" +#line 4216 "dhcp4_parser.cc" break; - case 759: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string" -#line 2626 "dhcp4_parser.yy" + case 765: // dep_qualifying_suffix: "qualifying-suffix" $@120 ":" "constant string" +#line 2650 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 4196 "dhcp4_parser.cc" +#line 4226 "dhcp4_parser.cc" break; - case 760: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2633 "dhcp4_parser.yy" + case 766: // dep_override_no_update: "override-no-update" ":" "boolean" +#line 2657 "dhcp4_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 4206 "dhcp4_parser.cc" +#line 4236 "dhcp4_parser.cc" break; - case 761: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2640 "dhcp4_parser.yy" + case 767: // dep_override_client_update: "override-client-update" ":" "boolean" +#line 2664 "dhcp4_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 4216 "dhcp4_parser.cc" +#line 4246 "dhcp4_parser.cc" break; - case 762: // $@121: %empty -#line 2647 "dhcp4_parser.yy" + case 768: // $@121: %empty +#line 2671 "dhcp4_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 4225 "dhcp4_parser.cc" +#line 4255 "dhcp4_parser.cc" break; - case 763: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value -#line 2650 "dhcp4_parser.yy" + case 769: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value +#line 2674 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4234 "dhcp4_parser.cc" +#line 4264 "dhcp4_parser.cc" break; - case 764: // $@122: %empty -#line 2656 "dhcp4_parser.yy" + case 770: // $@122: %empty +#line 2680 "dhcp4_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4243 "dhcp4_parser.cc" +#line 4273 "dhcp4_parser.cc" break; - case 765: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" -#line 2659 "dhcp4_parser.yy" + case 771: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" +#line 2683 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 4253 "dhcp4_parser.cc" +#line 4283 "dhcp4_parser.cc" break; - case 766: // $@123: %empty -#line 2666 "dhcp4_parser.yy" + case 772: // $@123: %empty +#line 2690 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4262 "dhcp4_parser.cc" +#line 4292 "dhcp4_parser.cc" break; - case 767: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" -#line 2669 "dhcp4_parser.yy" + case 773: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" +#line 2693 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 4272 "dhcp4_parser.cc" +#line 4302 "dhcp4_parser.cc" break; - case 768: // $@124: %empty -#line 2676 "dhcp4_parser.yy" + case 774: // $@124: %empty +#line 2700 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4281 "dhcp4_parser.cc" +#line 4311 "dhcp4_parser.cc" break; - case 769: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" -#line 2679 "dhcp4_parser.yy" + case 775: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" +#line 2703 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 4291 "dhcp4_parser.cc" +#line 4321 "dhcp4_parser.cc" break; - case 770: // $@125: %empty -#line 2688 "dhcp4_parser.yy" + case 776: // $@125: %empty +#line 2712 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4299,48 +4329,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4303 "dhcp4_parser.cc" +#line 4333 "dhcp4_parser.cc" break; - case 771: // config_control: "config-control" $@125 ":" "{" config_control_params "}" -#line 2694 "dhcp4_parser.yy" + case 777: // config_control: "config-control" $@125 ":" "{" config_control_params "}" +#line 2718 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4313 "dhcp4_parser.cc" +#line 4343 "dhcp4_parser.cc" break; - case 772: // $@126: %empty -#line 2700 "dhcp4_parser.yy" + case 778: // $@126: %empty +#line 2724 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4323 "dhcp4_parser.cc" +#line 4353 "dhcp4_parser.cc" break; - case 773: // sub_config_control: "{" $@126 config_control_params "}" -#line 2704 "dhcp4_parser.yy" + case 779: // sub_config_control: "{" $@126 config_control_params "}" +#line 2728 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 4332 "dhcp4_parser.cc" +#line 4362 "dhcp4_parser.cc" break; - case 776: // config_control_params: config_control_params "," -#line 2712 "dhcp4_parser.yy" + case 782: // config_control_params: config_control_params "," +#line 2736 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4340 "dhcp4_parser.cc" +#line 4370 "dhcp4_parser.cc" break; - case 779: // $@127: %empty -#line 2722 "dhcp4_parser.yy" + case 785: // $@127: %empty +#line 2746 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4348,30 +4378,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4352 "dhcp4_parser.cc" +#line 4382 "dhcp4_parser.cc" break; - case 780: // config_databases: "config-databases" $@127 ":" "[" database_list "]" -#line 2728 "dhcp4_parser.yy" + case 786: // config_databases: "config-databases" $@127 ":" "[" database_list "]" +#line 2752 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4361 "dhcp4_parser.cc" +#line 4391 "dhcp4_parser.cc" break; - case 781: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2733 "dhcp4_parser.yy" + case 787: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2757 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4371 "dhcp4_parser.cc" +#line 4401 "dhcp4_parser.cc" break; - case 782: // $@128: %empty -#line 2741 "dhcp4_parser.yy" + case 788: // $@128: %empty +#line 2765 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4379,83 +4409,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4383 "dhcp4_parser.cc" +#line 4413 "dhcp4_parser.cc" break; - case 783: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" -#line 2747 "dhcp4_parser.yy" + case 789: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" +#line 2771 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4392 "dhcp4_parser.cc" +#line 4422 "dhcp4_parser.cc" break; - case 786: // loggers_entries: loggers_entries "," -#line 2756 "dhcp4_parser.yy" + case 792: // loggers_entries: loggers_entries "," +#line 2780 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4400 "dhcp4_parser.cc" +#line 4430 "dhcp4_parser.cc" break; - case 787: // $@129: %empty -#line 2762 "dhcp4_parser.yy" + case 793: // $@129: %empty +#line 2786 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4410 "dhcp4_parser.cc" +#line 4440 "dhcp4_parser.cc" break; - case 788: // logger_entry: "{" $@129 logger_params "}" -#line 2766 "dhcp4_parser.yy" + case 794: // logger_entry: "{" $@129 logger_params "}" +#line 2790 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4418 "dhcp4_parser.cc" +#line 4448 "dhcp4_parser.cc" break; - case 791: // logger_params: logger_params "," -#line 2772 "dhcp4_parser.yy" + case 797: // logger_params: logger_params "," +#line 2796 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4426 "dhcp4_parser.cc" +#line 4456 "dhcp4_parser.cc" break; - case 799: // debuglevel: "debuglevel" ":" "integer" -#line 2786 "dhcp4_parser.yy" + case 805: // debuglevel: "debuglevel" ":" "integer" +#line 2810 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4436 "dhcp4_parser.cc" +#line 4466 "dhcp4_parser.cc" break; - case 800: // $@130: %empty -#line 2792 "dhcp4_parser.yy" + case 806: // $@130: %empty +#line 2816 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4445 "dhcp4_parser.cc" +#line 4475 "dhcp4_parser.cc" break; - case 801: // severity: "severity" $@130 ":" "constant string" -#line 2795 "dhcp4_parser.yy" + case 807: // severity: "severity" $@130 ":" "constant string" +#line 2819 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4455 "dhcp4_parser.cc" +#line 4485 "dhcp4_parser.cc" break; - case 802: // $@131: %empty -#line 2801 "dhcp4_parser.yy" + case 808: // $@131: %empty +#line 2825 "dhcp4_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4463,122 +4493,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4467 "dhcp4_parser.cc" +#line 4497 "dhcp4_parser.cc" break; - case 803: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" -#line 2807 "dhcp4_parser.yy" + case 809: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" +#line 2831 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4476 "dhcp4_parser.cc" +#line 4506 "dhcp4_parser.cc" break; - case 806: // output_options_list_content: output_options_list_content "," -#line 2814 "dhcp4_parser.yy" + case 812: // output_options_list_content: output_options_list_content "," +#line 2838 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4484 "dhcp4_parser.cc" +#line 4514 "dhcp4_parser.cc" break; - case 807: // $@132: %empty -#line 2819 "dhcp4_parser.yy" + case 813: // $@132: %empty +#line 2843 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4494 "dhcp4_parser.cc" +#line 4524 "dhcp4_parser.cc" break; - case 808: // output_entry: "{" $@132 output_params_list "}" -#line 2823 "dhcp4_parser.yy" + case 814: // output_entry: "{" $@132 output_params_list "}" +#line 2847 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4502 "dhcp4_parser.cc" +#line 4532 "dhcp4_parser.cc" break; - case 811: // output_params_list: output_params_list "," -#line 2829 "dhcp4_parser.yy" + case 817: // output_params_list: output_params_list "," +#line 2853 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4510 "dhcp4_parser.cc" +#line 4540 "dhcp4_parser.cc" break; - case 817: // $@133: %empty -#line 2841 "dhcp4_parser.yy" + case 823: // $@133: %empty +#line 2865 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4519 "dhcp4_parser.cc" +#line 4549 "dhcp4_parser.cc" break; - case 818: // output: "output" $@133 ":" "constant string" -#line 2844 "dhcp4_parser.yy" + case 824: // output: "output" $@133 ":" "constant string" +#line 2868 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4529 "dhcp4_parser.cc" +#line 4559 "dhcp4_parser.cc" break; - case 819: // flush: "flush" ":" "boolean" -#line 2850 "dhcp4_parser.yy" + case 825: // flush: "flush" ":" "boolean" +#line 2874 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4539 "dhcp4_parser.cc" +#line 4569 "dhcp4_parser.cc" break; - case 820: // maxsize: "maxsize" ":" "integer" -#line 2856 "dhcp4_parser.yy" + case 826: // maxsize: "maxsize" ":" "integer" +#line 2880 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4549 "dhcp4_parser.cc" +#line 4579 "dhcp4_parser.cc" break; - case 821: // maxver: "maxver" ":" "integer" -#line 2862 "dhcp4_parser.yy" + case 827: // maxver: "maxver" ":" "integer" +#line 2886 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4559 "dhcp4_parser.cc" +#line 4589 "dhcp4_parser.cc" break; - case 822: // $@134: %empty -#line 2868 "dhcp4_parser.yy" + case 828: // $@134: %empty +#line 2892 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4568 "dhcp4_parser.cc" +#line 4598 "dhcp4_parser.cc" break; - case 823: // pattern: "pattern" $@134 ":" "constant string" -#line 2871 "dhcp4_parser.yy" + case 829: // pattern: "pattern" $@134 ":" "constant string" +#line 2895 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4578 "dhcp4_parser.cc" +#line 4608 "dhcp4_parser.cc" break; - case 824: // $@135: %empty -#line 2877 "dhcp4_parser.yy" + case 830: // $@135: %empty +#line 2901 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4586,48 +4616,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 4590 "dhcp4_parser.cc" +#line 4620 "dhcp4_parser.cc" break; - case 825: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}" -#line 2883 "dhcp4_parser.yy" + case 831: // compatibility: "compatibility" $@135 ":" "{" compatibility_params "}" +#line 2907 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4599 "dhcp4_parser.cc" +#line 4629 "dhcp4_parser.cc" break; - case 828: // compatibility_params: compatibility_params "," -#line 2890 "dhcp4_parser.yy" + case 834: // compatibility_params: compatibility_params "," +#line 2914 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4607 "dhcp4_parser.cc" +#line 4637 "dhcp4_parser.cc" break; - case 832: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 2900 "dhcp4_parser.yy" + case 838: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 2924 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 4617 "dhcp4_parser.cc" +#line 4647 "dhcp4_parser.cc" break; - case 833: // ignore-rai-link-selection: "ignore-rai-link-selection" ":" "boolean" -#line 2906 "dhcp4_parser.yy" + case 839: // ignore-rai-link-selection: "ignore-rai-link-selection" ":" "boolean" +#line 2930 "dhcp4_parser.yy" { ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-rai-link-selection", b); } -#line 4627 "dhcp4_parser.cc" +#line 4657 "dhcp4_parser.cc" break; -#line 4631 "dhcp4_parser.cc" +#line 4661 "dhcp4_parser.cc" default: break; @@ -4979,141 +5009,142 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -980; + const short Dhcp4Parser::yypact_ninf_ = -989; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 219, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 22, 44, 52, 65, 79, 94, - 103, 113, 127, 146, 154, 182, 184, 286, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 44, -156, 59, 140, 133, 682, - 221, 233, 57, 88, -10, -98, 435, 62, -980, 91, - 144, 163, 218, 243, -980, 24, -980, -980, -980, -980, - 293, 304, 319, -980, -980, -980, -980, -980, -980, 337, - 345, 353, 372, 373, 374, 375, 377, 380, 381, 386, - -980, 387, 388, 401, 402, 421, -980, -980, -980, 422, - 425, 426, -980, -980, -980, 427, -980, -980, -980, -980, - -980, 428, 429, 430, -980, -980, -980, -980, -980, 431, - -980, -980, -980, -980, -980, -980, 432, 434, 436, -980, - -980, 438, -980, 49, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, 439, 440, 441, 442, -980, 84, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 443, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, 90, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, 97, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, 445, 298, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, 447, -980, -980, 444, -980, -980, -980, 446, - -980, -980, 448, 454, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, 456, 458, -980, - -980, -980, -980, 450, 462, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, 115, -980, -980, - -980, 463, -980, -980, 465, -980, 466, 472, -980, -980, - 475, 476, -980, -980, -980, -980, -980, -980, -980, 125, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, 477, 128, -980, - -980, -980, -980, 44, 44, -980, 245, 479, -980, -980, - 480, 483, 484, 257, 282, 285, 488, 493, 495, 498, - 502, 504, 302, 303, 305, 307, 308, 309, 311, 314, - 318, 321, 322, 507, 323, 324, 312, 332, 335, 528, - 529, 530, 336, 338, 341, 544, 545, 547, 348, 548, - 556, 557, 561, 563, 359, 361, 364, 571, 574, 576, - 577, 579, 378, 582, 586, 587, 601, 602, 603, 399, - 400, 404, 606, 610, -980, 140, -980, 611, 612, 613, - 409, 410, 413, 414, 133, -980, 618, 619, 620, 621, - 622, 623, 423, 624, 625, 627, 682, -980, 628, 221, - -980, 629, 630, 631, 632, 633, 635, 638, 639, -980, - 233, -980, 640, 641, 449, 642, 643, 644, 451, -980, - 88, 645, 452, 455, -980, -10, 646, 647, 98, -980, - 457, 648, 650, 460, 651, 461, 464, 653, 654, 468, - 470, 655, 659, 661, 665, 435, -980, 666, 467, 62, - -980, -980, -980, 668, 673, 674, 676, 677, -980, -980, - -980, 481, 482, 485, 678, 679, 684, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, 486, -980, - -980, -980, -980, -980, -59, 487, 489, -980, -980, -980, - 685, 689, 691, -980, 496, 696, 698, 497, 256, -980, - -980, -980, 701, 702, 703, 704, 710, -980, 711, 712, - 713, 714, 505, 516, -980, -980, -980, 705, 716, -980, - 719, 297, 313, -980, -980, -980, -980, -980, 519, 520, - 521, 723, 523, 524, -980, 719, 525, 725, -980, 527, - -980, 719, 531, 532, 549, 550, 560, 564, 566, -980, - 567, 568, -980, 569, 570, 572, -980, -980, 573, -980, - -980, -980, 575, 698, -980, -980, 588, 589, -980, 593, - -980, -980, 17, 565, -980, -980, -59, 594, 596, 597, - -980, 729, -980, -980, 44, 140, 62, 133, 325, -980, - -980, -980, 351, 351, 728, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 746, 747, 770, -980, 773, -980, - -980, -980, -980, -980, -980, -980, -980, 179, 776, 778, - 785, 130, -44, -60, 158, 435, -980, -980, 786, -151, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, 797, -980, -980, -980, -980, 242, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, 728, -980, 135, 156, 157, - -980, -980, 160, -980, -980, -980, -980, -980, -980, -980, - 669, 803, 804, 805, 806, 807, 808, -980, 810, -980, - -980, -980, -980, -980, 180, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 187, -980, 809, 813, -980, -980, - 811, 815, -980, -980, 814, 816, -980, -980, 817, 818, - -980, -980, 819, 821, -980, -980, -980, -980, -980, -980, - 138, -980, -980, -980, -980, -980, -980, -980, 176, -980, - -980, 820, 824, -980, -980, 822, 826, -980, 827, 828, - 829, 830, 831, 832, 222, -980, -980, -980, -980, -980, - -980, -980, 833, 834, 835, -980, 224, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, 239, -980, - -980, -980, 836, -980, 837, -980, -980, -980, 240, -980, - -980, -980, -980, -980, 272, -980, 273, -980, 838, 839, - -980, 275, -980, -980, -980, 616, -980, 840, 841, -980, - -980, -980, -980, 842, 843, -980, -980, -980, 844, 847, - 325, -980, 848, 849, 850, 851, 649, 636, 656, 652, - 657, 658, 660, 853, 662, 856, 858, 862, 864, 351, - -980, -980, 351, -980, 728, 682, -980, 746, 88, -980, - 747, -10, -980, 770, 1254, -980, 773, 179, -980, 266, - 776, -980, 233, -980, 778, -98, -980, 785, 663, 664, - 667, 670, 671, 672, 130, -980, 675, 680, 683, -44, - -980, 868, 869, -60, -980, 686, 871, 687, 872, 158, - -980, -980, 198, 786, -980, 688, 690, -151, -980, -980, - 874, 878, 221, -980, 797, 879, -980, -980, 692, 694, - -980, 23, 695, 697, 699, -980, -980, -980, -980, -980, - -980, -980, 206, -980, 700, 706, 707, 708, -980, 279, - -980, 283, -980, 877, -980, 881, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, 287, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 882, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, 883, 889, -980, - -980, -980, -980, -980, -980, 885, -980, 328, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - 709, 717, -980, -980, 720, -980, 44, -980, -980, 892, - -980, -980, -980, -980, -980, 339, -980, -980, -980, -980, - -980, -980, -980, -980, -980, 735, 340, -980, 719, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - 1254, -980, 898, 900, 739, -980, 266, -980, -980, -980, - -980, -980, -980, 903, 715, 904, 198, -980, -980, -980, - -980, -980, 754, 755, -980, -980, 825, -980, 757, -980, - -980, -980, 875, -980, -980, 329, -980, 11, 875, -980, - -980, 905, 906, 907, -980, 342, -980, -980, -980, -980, - -980, -980, -980, 912, 744, 727, 759, 913, 11, -980, - 774, -980, -980, -980, 777, -980, -980, -980 + 417, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 22, 44, 28, 62, 65, 67, + 78, 88, 127, 131, 146, 160, 191, 238, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 44, -159, 54, 140, 133, 679, + -6, 236, 175, 85, 178, -101, 432, 32, -989, 139, + 286, 293, 299, 305, -989, 49, -989, -989, -989, -989, + 313, 314, 321, -989, -989, -989, -989, -989, -989, 334, + 335, 346, 366, 375, 376, 377, 378, 379, 380, 381, + -989, 382, 384, 385, 386, 387, -989, -989, -989, 406, + 408, 414, -989, -989, -989, 415, -989, -989, -989, -989, + -989, 416, 418, 419, -989, -989, -989, -989, -989, 420, + -989, -989, -989, -989, -989, -989, 421, 422, 423, -989, + -989, 425, -989, 51, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, 426, 427, 428, 429, -989, 72, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 430, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, 107, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, 118, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, 413, 433, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, 431, -989, -989, 434, -989, -989, -989, 436, + -989, -989, 435, 438, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, 440, 442, -989, + -989, -989, -989, 443, 439, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, 125, -989, -989, + -989, 444, -989, -989, 446, -989, 449, 451, -989, -989, + 452, 453, -989, -989, -989, -989, -989, -989, -989, 128, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, 454, 138, -989, + -989, -989, -989, 44, 44, -989, 226, 456, -989, -989, + 458, 461, 462, 255, 257, 258, 468, 472, 476, 477, + 479, 480, 277, 278, 281, 282, 284, 285, 291, 295, + 300, 289, 302, 504, 304, 308, 303, 307, 309, 505, + 506, 518, 316, 317, 319, 522, 526, 528, 324, 529, + 537, 540, 541, 543, 336, 339, 340, 545, 546, 551, + 553, 556, 351, 561, 563, 564, 566, 569, 574, 368, + 369, 371, 581, 582, -989, 140, -989, 586, 587, 601, + 394, 395, 398, 399, 133, -989, 606, 622, 623, 624, + 625, 626, 424, 627, 628, 629, 679, -989, 631, -6, + -989, 632, 633, 635, 638, 639, 640, 641, 642, -989, + 236, -989, 643, 644, 441, 645, 646, 648, 445, -989, + 85, 650, 447, 448, -989, 178, 651, 652, -25, -989, + 455, 654, 657, 459, 659, 460, 463, 660, 661, 465, + 467, 662, 664, 667, 668, 432, -989, 670, 470, 32, + -989, -989, -989, 677, 676, 678, 680, 681, -989, -989, + -989, 475, 481, 482, 682, 685, 688, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, 485, -989, + -989, -989, -989, -989, -94, 486, 487, -989, -989, -989, + 696, 697, 698, -989, 496, 701, 700, 499, 149, -989, + -989, -989, 709, 710, 711, 712, 713, -989, 714, 715, + 716, 717, 509, 510, -989, -989, -989, 720, 719, -989, + 722, 183, 209, -989, -989, -989, -989, -989, 519, 520, + 521, 726, 523, 524, -989, 722, 525, 728, -989, 527, + -989, 722, 544, 547, 557, 565, 567, 568, 570, -989, + 571, 572, -989, 576, 583, 584, -989, -989, 585, -989, + -989, -989, 590, 700, -989, -989, 591, 593, -989, 594, + -989, -989, 14, 512, -989, -989, -94, 595, 598, 599, + -989, 732, -989, -989, 44, 140, 32, 133, 254, -989, + -989, -989, 354, 354, 731, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 747, 748, 763, -989, 765, -989, + -989, -989, -989, -989, -989, -989, -989, 31, 766, 768, + 771, 170, -46, -10, 202, 432, -989, -989, 776, -154, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, 788, -989, -989, -989, -989, 101, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, 731, -989, 180, 186, 187, + -989, -989, 188, -989, -989, -989, -989, -989, -989, -989, + 805, 806, 807, 808, 810, 811, 812, 813, 814, 815, + -989, 816, -989, -989, -989, -989, -989, 194, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + 225, -989, 817, 818, -989, -989, 819, 821, -989, -989, + 820, 824, -989, -989, 822, 826, -989, -989, 825, 827, + -989, -989, -989, -989, -989, -989, 57, -989, -989, -989, + -989, -989, -989, -989, 144, -989, -989, 828, 829, -989, + -989, 830, 832, -989, 833, 834, 835, 836, 837, 838, + 243, -989, -989, -989, -989, -989, -989, -989, 839, 840, + 841, -989, 275, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 276, -989, -989, -989, 842, -989, + 843, -989, -989, -989, 288, -989, -989, -989, -989, -989, + 290, -989, 162, -989, 844, 845, -989, 297, -989, -989, + -989, 613, -989, 846, 847, -989, -989, -989, -989, 848, + 849, -989, -989, -989, 850, 853, 254, -989, 856, 857, + 858, 859, 655, 621, 656, 658, 663, 665, 666, 669, + 671, 672, 860, 673, 863, 864, 865, 867, 354, -989, + -989, 354, -989, 731, 679, -989, 747, 85, -989, 748, + 178, -989, 763, 1266, -989, 765, 31, -989, 270, 766, + -989, 236, -989, 768, -101, -989, 771, 674, 675, 683, + 684, 686, 687, 170, -989, 689, 690, 692, -46, -989, + 868, 870, -10, -989, 691, 873, 694, 874, 202, -989, + -989, 142, 776, -989, 693, 695, -154, -989, -989, 880, + 877, -6, -989, 788, 883, -989, -989, 699, 702, -989, + 315, 703, 704, 705, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 318, -989, 706, 707, 708, 723, + -989, 298, -989, 323, -989, 881, -989, 882, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, 329, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, 887, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, 884, + 892, -989, -989, -989, -989, -989, -989, 890, -989, 337, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, 734, 741, -989, -989, 753, -989, 44, -989, + -989, 895, -989, -989, -989, -989, -989, 338, -989, -989, + -989, -989, -989, -989, -989, -989, -989, 760, 344, -989, + 722, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, 1266, -989, 902, 905, 745, -989, 270, -989, + -989, -989, -989, -989, -989, 906, 718, 914, 142, -989, + -989, -989, -989, -989, 761, 780, -989, -989, 915, -989, + 783, -989, -989, -989, 912, -989, -989, 176, -989, -99, + 912, -989, -989, 917, 918, 919, -989, 345, -989, -989, + -989, -989, -989, -989, -989, 920, 787, 721, 725, 921, + -99, -989, 795, -989, -989, -989, 798, -989, -989, -989 }; const short @@ -5123,18 +5154,18 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 59, 5, 65, 7, 195, 9, 367, 11, 577, 13, - 604, 15, 497, 17, 506, 19, 545, 21, 329, 23, - 721, 25, 772, 27, 46, 39, 0, 0, 0, 0, - 0, 606, 0, 508, 547, 0, 0, 0, 48, 0, - 47, 0, 0, 40, 61, 0, 63, 770, 180, 213, - 0, 0, 0, 626, 628, 630, 211, 224, 226, 0, + 59, 5, 65, 7, 195, 9, 373, 11, 583, 13, + 610, 15, 503, 17, 512, 19, 551, 21, 335, 23, + 727, 25, 778, 27, 46, 39, 0, 0, 0, 0, + 0, 612, 0, 514, 553, 0, 0, 0, 48, 0, + 47, 0, 0, 40, 61, 0, 63, 776, 180, 213, + 0, 0, 0, 632, 634, 636, 211, 224, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, 0, 0, 157, 164, 166, 0, - 0, 0, 358, 495, 536, 0, 149, 442, 591, 593, - 435, 0, 0, 0, 291, 654, 595, 320, 341, 0, - 306, 688, 702, 719, 170, 172, 0, 0, 0, 782, - 824, 0, 134, 0, 67, 70, 71, 72, 73, 74, + 0, 0, 364, 501, 542, 0, 149, 448, 597, 599, + 441, 0, 0, 0, 297, 660, 601, 326, 347, 0, + 312, 694, 708, 725, 170, 172, 0, 0, 0, 788, + 830, 0, 134, 0, 67, 70, 71, 72, 73, 74, 108, 109, 110, 111, 112, 75, 103, 132, 133, 92, 93, 94, 116, 117, 118, 119, 120, 121, 122, 123, 114, 115, 124, 125, 126, 128, 129, 130, 78, 79, @@ -5142,26 +5173,26 @@ namespace isc { namespace dhcp { 107, 104, 77, 84, 85, 98, 99, 101, 95, 96, 97, 83, 88, 89, 90, 91, 102, 113, 131, 197, 199, 203, 0, 0, 0, 0, 194, 0, 182, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 420, 422, - 424, 568, 418, 426, 0, 430, 428, 650, 417, 372, - 373, 374, 375, 376, 400, 401, 402, 403, 404, 416, - 390, 391, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 0, 369, 379, 395, 396, 397, 380, - 382, 383, 386, 387, 388, 385, 381, 377, 378, 398, - 399, 384, 392, 393, 394, 389, 589, 588, 584, 585, - 583, 0, 579, 582, 586, 587, 648, 636, 638, 642, - 640, 646, 644, 632, 625, 619, 623, 624, 0, 607, - 608, 620, 621, 622, 616, 611, 617, 613, 614, 615, - 618, 612, 0, 526, 269, 0, 530, 528, 533, 0, - 522, 523, 0, 509, 510, 513, 525, 514, 515, 516, - 532, 517, 518, 519, 520, 521, 562, 0, 0, 560, - 561, 564, 565, 0, 548, 549, 552, 553, 554, 555, - 556, 557, 558, 559, 337, 339, 334, 0, 331, 335, - 336, 0, 758, 745, 0, 748, 0, 0, 752, 756, - 0, 0, 762, 764, 766, 768, 743, 741, 742, 0, - 723, 726, 727, 728, 729, 730, 731, 732, 733, 738, - 734, 735, 736, 737, 739, 740, 779, 0, 0, 774, - 777, 778, 45, 50, 0, 37, 43, 0, 64, 60, + 186, 187, 188, 189, 190, 191, 192, 193, 426, 428, + 430, 574, 424, 432, 0, 436, 434, 656, 423, 378, + 379, 380, 381, 382, 406, 407, 408, 409, 410, 422, + 396, 397, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 0, 375, 385, 401, 402, 403, 386, + 388, 389, 392, 393, 394, 391, 387, 383, 384, 404, + 405, 390, 398, 399, 400, 395, 595, 594, 590, 591, + 589, 0, 585, 588, 592, 593, 654, 642, 644, 648, + 646, 652, 650, 638, 631, 625, 629, 630, 0, 613, + 614, 626, 627, 628, 622, 617, 623, 619, 620, 621, + 624, 618, 0, 532, 272, 0, 536, 534, 539, 0, + 528, 529, 0, 515, 516, 519, 531, 520, 521, 522, + 538, 523, 524, 525, 526, 527, 568, 0, 0, 566, + 567, 570, 571, 0, 554, 555, 558, 559, 560, 561, + 562, 563, 564, 565, 343, 345, 340, 0, 337, 341, + 342, 0, 764, 751, 0, 754, 0, 0, 758, 762, + 0, 0, 768, 770, 772, 774, 749, 747, 748, 0, + 729, 732, 733, 734, 735, 736, 737, 738, 739, 744, + 740, 741, 742, 743, 745, 746, 785, 0, 0, 780, + 783, 784, 45, 50, 0, 37, 43, 0, 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5170,131 +5201,133 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 69, 66, 0, 0, 0, 0, 0, 0, 0, 184, 196, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 371, 368, 0, 581, - 578, 0, 0, 0, 0, 0, 0, 0, 0, 605, - 610, 498, 0, 0, 0, 0, 0, 0, 0, 507, - 512, 0, 0, 0, 546, 551, 0, 0, 333, 330, + 0, 0, 0, 0, 0, 0, 377, 374, 0, 587, + 584, 0, 0, 0, 0, 0, 0, 0, 0, 611, + 616, 504, 0, 0, 0, 0, 0, 0, 0, 513, + 518, 0, 0, 0, 552, 557, 0, 0, 339, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 725, 722, 0, 0, 776, - 773, 49, 41, 0, 0, 0, 0, 0, 151, 152, + 0, 0, 0, 0, 0, 731, 728, 0, 0, 782, + 779, 49, 41, 0, 0, 0, 0, 0, 151, 152, 153, 0, 0, 0, 0, 0, 0, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 0, 175, 176, 154, 155, 156, 0, 0, 0, 168, 169, 174, - 0, 0, 0, 148, 0, 0, 0, 0, 0, 432, - 433, 434, 0, 0, 0, 0, 0, 687, 0, 0, + 0, 0, 0, 148, 0, 0, 0, 0, 0, 438, + 439, 440, 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 177, 178, 179, 0, 0, 68, 0, 0, 0, 207, 208, 209, 210, 183, 0, 0, - 0, 0, 0, 0, 441, 0, 0, 0, 370, 0, - 580, 0, 0, 0, 0, 0, 0, 0, 0, 609, - 0, 0, 524, 0, 0, 0, 535, 511, 0, 566, - 567, 550, 0, 0, 332, 744, 0, 0, 747, 0, - 750, 751, 0, 0, 760, 761, 0, 0, 0, 0, - 724, 0, 781, 775, 0, 0, 0, 0, 0, 627, - 629, 631, 0, 0, 228, 147, 159, 160, 161, 162, - 163, 158, 165, 167, 360, 499, 538, 150, 444, 38, - 592, 594, 437, 438, 439, 440, 436, 0, 0, 597, - 322, 0, 0, 0, 0, 0, 171, 173, 0, 0, - 51, 198, 201, 202, 200, 205, 206, 204, 421, 423, - 425, 570, 419, 427, 431, 429, 0, 590, 649, 637, - 639, 643, 641, 647, 645, 633, 527, 270, 531, 529, - 534, 563, 338, 340, 759, 746, 749, 754, 755, 753, - 757, 763, 765, 767, 769, 228, 42, 0, 0, 0, - 220, 222, 0, 215, 218, 219, 257, 262, 264, 266, - 0, 0, 0, 0, 0, 0, 0, 277, 0, 283, - 285, 287, 289, 256, 0, 235, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 0, 233, 0, 229, 230, 365, - 0, 361, 362, 504, 0, 500, 501, 543, 0, 539, - 540, 449, 0, 445, 446, 301, 302, 303, 304, 305, - 0, 293, 296, 297, 298, 299, 300, 659, 0, 656, - 602, 0, 598, 599, 327, 0, 323, 324, 0, 0, - 0, 0, 0, 0, 0, 343, 346, 347, 348, 349, - 350, 351, 0, 0, 0, 316, 0, 308, 311, 312, - 313, 314, 315, 698, 700, 697, 695, 696, 0, 690, - 693, 694, 0, 714, 0, 717, 710, 711, 0, 704, - 707, 708, 709, 712, 0, 787, 0, 784, 0, 0, - 831, 0, 826, 829, 830, 53, 575, 0, 571, 572, - 634, 652, 653, 0, 0, 62, 771, 181, 0, 0, - 217, 214, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, - 212, 225, 0, 227, 232, 0, 359, 364, 508, 496, - 503, 547, 537, 542, 0, 443, 448, 295, 292, 661, - 658, 655, 606, 596, 601, 0, 321, 326, 0, 0, - 0, 0, 0, 0, 345, 342, 0, 0, 0, 310, - 307, 0, 0, 692, 689, 0, 0, 0, 0, 706, - 703, 720, 0, 786, 783, 0, 0, 828, 825, 55, - 0, 54, 0, 569, 574, 0, 651, 780, 0, 0, - 216, 0, 0, 0, 0, 268, 271, 272, 273, 274, - 275, 276, 0, 282, 0, 0, 0, 0, 236, 0, - 231, 0, 363, 0, 502, 0, 541, 494, 472, 473, - 474, 457, 458, 477, 478, 479, 480, 481, 493, 460, - 461, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 454, 455, 456, 470, 471, 467, 468, 469, - 466, 0, 451, 459, 475, 476, 462, 463, 464, 465, - 447, 294, 682, 684, 0, 677, 678, 679, 680, 681, - 670, 671, 675, 676, 672, 673, 674, 0, 662, 663, - 666, 667, 668, 669, 657, 0, 600, 0, 325, 352, - 353, 354, 355, 356, 357, 344, 317, 318, 319, 309, - 0, 0, 691, 713, 0, 716, 0, 705, 802, 0, - 800, 798, 792, 796, 797, 0, 789, 794, 795, 793, - 785, 832, 833, 827, 52, 57, 0, 573, 0, 221, - 223, 259, 260, 261, 258, 263, 265, 267, 279, 280, - 281, 278, 284, 286, 288, 290, 234, 366, 505, 544, - 453, 450, 0, 0, 0, 660, 665, 603, 328, 699, - 701, 715, 718, 0, 0, 0, 791, 788, 56, 576, - 635, 452, 0, 0, 686, 664, 0, 799, 0, 790, - 683, 685, 0, 801, 807, 0, 804, 0, 806, 803, - 817, 0, 0, 0, 822, 0, 809, 812, 813, 814, - 815, 816, 805, 0, 0, 0, 0, 0, 811, 808, - 0, 819, 820, 821, 0, 810, 818, 823 + 0, 0, 0, 0, 447, 0, 0, 0, 376, 0, + 586, 0, 0, 0, 0, 0, 0, 0, 0, 615, + 0, 0, 530, 0, 0, 0, 541, 517, 0, 572, + 573, 556, 0, 0, 338, 750, 0, 0, 753, 0, + 756, 757, 0, 0, 766, 767, 0, 0, 0, 0, + 730, 0, 787, 781, 0, 0, 0, 0, 0, 633, + 635, 637, 0, 0, 228, 147, 159, 160, 161, 162, + 163, 158, 165, 167, 366, 505, 544, 150, 450, 38, + 598, 600, 443, 444, 445, 446, 442, 0, 0, 603, + 328, 0, 0, 0, 0, 0, 171, 173, 0, 0, + 51, 198, 201, 202, 200, 205, 206, 204, 427, 429, + 431, 576, 425, 433, 437, 435, 0, 596, 655, 643, + 645, 649, 647, 653, 651, 639, 533, 273, 537, 535, + 540, 569, 344, 346, 765, 752, 755, 760, 761, 759, + 763, 769, 771, 773, 775, 228, 42, 0, 0, 0, + 220, 222, 0, 215, 218, 219, 260, 265, 267, 269, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 283, 0, 289, 291, 293, 295, 259, 0, 235, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 0, 233, 0, 229, 230, 371, 0, 367, 368, 510, + 0, 506, 507, 549, 0, 545, 546, 455, 0, 451, + 452, 307, 308, 309, 310, 311, 0, 299, 302, 303, + 304, 305, 306, 665, 0, 662, 608, 0, 604, 605, + 333, 0, 329, 330, 0, 0, 0, 0, 0, 0, + 0, 349, 352, 353, 354, 355, 356, 357, 0, 0, + 0, 322, 0, 314, 317, 318, 319, 320, 321, 704, + 706, 703, 701, 702, 0, 696, 699, 700, 0, 720, + 0, 723, 716, 717, 0, 710, 713, 714, 715, 718, + 0, 793, 0, 790, 0, 0, 837, 0, 832, 835, + 836, 53, 581, 0, 577, 578, 640, 658, 659, 0, + 0, 62, 777, 181, 0, 0, 217, 214, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 237, 212, + 225, 0, 227, 232, 0, 365, 370, 514, 502, 509, + 553, 543, 548, 0, 449, 454, 301, 298, 667, 664, + 661, 612, 602, 607, 0, 327, 332, 0, 0, 0, + 0, 0, 0, 351, 348, 0, 0, 0, 316, 313, + 0, 0, 698, 695, 0, 0, 0, 0, 712, 709, + 726, 0, 792, 789, 0, 0, 834, 831, 55, 0, + 54, 0, 575, 580, 0, 657, 786, 0, 0, 216, + 0, 0, 0, 0, 271, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 0, 288, 0, 0, 0, 0, + 236, 0, 231, 0, 369, 0, 508, 0, 547, 500, + 478, 479, 480, 463, 464, 483, 484, 485, 486, 487, + 499, 466, 467, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 498, 460, 461, 462, 476, 477, 473, + 474, 475, 472, 0, 457, 465, 481, 482, 468, 469, + 470, 471, 453, 300, 688, 690, 0, 683, 684, 685, + 686, 687, 676, 677, 681, 682, 678, 679, 680, 0, + 668, 669, 672, 673, 674, 675, 663, 0, 606, 0, + 331, 358, 359, 360, 361, 362, 363, 350, 323, 324, + 325, 315, 0, 0, 697, 719, 0, 722, 0, 711, + 808, 0, 806, 804, 798, 802, 803, 0, 795, 800, + 801, 799, 791, 838, 839, 833, 52, 57, 0, 579, + 0, 221, 223, 262, 263, 264, 261, 266, 268, 270, + 285, 286, 287, 284, 290, 292, 294, 296, 234, 372, + 511, 550, 459, 456, 0, 0, 0, 666, 671, 609, + 334, 705, 707, 721, 724, 0, 0, 0, 797, 794, + 56, 582, 641, 458, 0, 0, 692, 670, 0, 805, + 0, 796, 689, 691, 0, 807, 813, 0, 810, 0, + 812, 809, 823, 0, 0, 0, 828, 0, 815, 818, + 819, 820, 821, 822, 811, 0, 0, 0, 0, 0, + 817, 814, 0, 825, 826, 827, 0, 816, 824, 829 }; const short Dhcp4Parser::yypgoto_[] = { - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -51, -980, -562, -980, 164, - -980, -980, -980, -980, -980, -980, -625, -980, -980, -980, - -67, -980, -980, -980, -980, -980, -980, -980, 214, 500, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -51, -989, -589, -989, 168, + -989, -989, -989, -989, -989, -989, -625, -989, -989, -989, + -67, -989, -989, -989, -989, -989, -989, -989, 148, 514, -26, 9, 19, -52, -30, -27, 7, 20, 27, 30, - -980, -980, -980, -980, 37, -980, -980, 38, 40, 42, - 43, 48, 50, -980, 294, 53, -980, 55, -980, 56, - 58, 60, -980, 61, -980, 63, -980, -980, -980, -980, - -980, -980, -980, 213, 494, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 46, -980, -980, -980, -980, -980, - -980, -980, -980, 205, -980, 25, -980, -701, 32, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -63, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, 33, -980, -980, -980, -980, -980, -980, -980, - -980, -2, -980, -980, -980, -980, -980, -980, -980, 54, - -980, -980, -980, 64, 511, -980, -980, -980, -980, -980, - -980, -980, 67, -980, -980, -980, -980, -980, -980, -979, - -980, -980, -980, 77, -980, -980, -980, 81, 552, -980, - -980, -980, -980, -980, -980, -980, -980, -975, -980, -65, - -980, 69, -980, 66, 68, 71, 73, -980, -980, -980, - -980, -980, -980, -980, 74, -980, -980, -139, -54, -980, - -980, -980, -980, -980, 82, -980, -980, -980, 85, -980, - 534, -980, -41, -980, -980, -980, -980, -980, -40, -980, - -980, -980, -980, -980, -23, -980, -980, -980, 83, -980, - -980, -980, 86, -980, 533, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, 31, -980, -980, -980, - 41, 578, -980, -980, -45, -980, -3, -980, -48, -980, - -980, -980, 75, -980, -980, -980, 78, -980, 554, -55, - -980, -13, -980, 8, -980, 316, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -974, -980, -980, -980, -980, -980, 87, - -980, -980, -980, -131, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 70, -980, -980, -980, -980, -980, - -980, -980, 72, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, 343, 526, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, -980, -980, -980, -980, - -980, -980, -980, -980, 383, 517, -980, -980, -980, -980, - -980, -980, 76, -980, -980, -136, -980, -980, -980, -980, - -980, -980, -154, -980, -980, -176, -980, -980, -980, -980, - -980, -980, -980, -980, -980, -980, 80, -980, -980 + -989, -989, -989, -989, 37, -989, -989, 38, 40, 42, + 43, 48, 50, -989, 230, 53, -989, 55, -989, 56, + 58, 60, -989, 61, -989, 63, -989, -989, -989, -989, + -989, -989, -989, 222, 471, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, 6, -989, -989, -989, -989, -989, + -989, -989, -989, 220, -989, 25, -989, -701, 80, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -63, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, 33, -989, -989, -989, -989, + -989, -989, -989, -989, -8, -989, -989, -989, -989, -989, + -989, -989, 10, -989, -989, -989, 59, 530, -989, -989, + -989, -989, -989, -989, -989, 47, -989, -989, -989, -989, + -989, -989, -988, -989, -989, -989, 79, -989, -989, -989, + 83, 573, -989, -989, -989, -989, -989, -989, -989, -989, + -984, -989, -65, -989, 69, -989, 66, 68, 71, 73, + -989, -989, -989, -989, -989, -989, -989, 74, -989, -989, + -142, -54, -989, -989, -989, -989, -989, 82, -989, -989, + -989, 86, -989, 542, -989, -41, -989, -989, -989, -989, + -989, -40, -989, -989, -989, -989, -989, -23, -989, -989, + -989, 84, -989, -989, -989, 87, -989, 539, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, 35, + -989, -989, -989, 34, 575, -989, -989, -45, -989, -3, + -989, -48, -989, -989, -989, 77, -989, -989, -989, 81, + -989, 577, -55, -989, -13, -989, 8, -989, 325, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -983, -989, -989, -989, + -989, -989, 89, -989, -989, -989, -135, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, 64, -989, -989, + -989, -989, -989, -989, -989, 70, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, 350, 532, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, -989, + -989, -989, -989, -989, -989, -989, -989, 393, 531, -989, + -989, -989, -989, -989, -989, 75, -989, -989, -137, -989, + -989, -989, -989, -989, -989, -158, -989, -989, -177, -989, + -989, -989, -989, -989, -989, -989, -989, -989, -989, 76, + -989, -989 }; const short @@ -5302,573 +5335,577 @@ namespace isc { namespace dhcp { { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 36, 37, 38, 65, 730, - 82, 83, 39, 64, 79, 80, 751, 945, 1040, 1041, - 823, 41, 66, 85, 427, 86, 43, 67, 153, 154, + 82, 83, 39, 64, 79, 80, 751, 951, 1049, 1050, + 826, 41, 66, 85, 427, 86, 43, 67, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 453, 167, 168, 469, 169, 170, 171, 172, 173, 174, 175, 459, 721, 176, 460, 177, 461, 178, 179, 180, 487, 181, 488, 182, 183, 184, 185, 186, 187, 188, 431, 227, 228, 45, 68, 229, 497, 230, 498, 754, 231, 499, 757, 232, 233, 234, 235, 189, - 439, 190, 432, 802, 803, 804, 958, 805, 959, 191, - 440, 192, 441, 846, 847, 848, 982, 824, 825, 826, - 962, 1194, 827, 963, 828, 964, 829, 965, 830, 831, - 533, 832, 833, 834, 835, 836, 837, 838, 973, 1201, - 839, 840, 975, 841, 976, 842, 977, 843, 978, 193, - 477, 870, 871, 872, 873, 874, 875, 876, 194, 483, - 906, 907, 908, 909, 910, 195, 480, 885, 886, 887, - 1005, 59, 75, 377, 378, 379, 546, 380, 547, 196, - 481, 894, 895, 896, 897, 898, 899, 900, 901, 197, - 465, 850, 851, 852, 985, 47, 69, 273, 274, 275, - 510, 276, 506, 277, 507, 278, 508, 279, 511, 280, - 514, 281, 513, 198, 199, 200, 201, 473, 736, 286, - 202, 470, 862, 863, 864, 994, 1111, 1112, 203, 466, - 53, 72, 854, 855, 856, 988, 55, 73, 342, 343, - 344, 345, 346, 347, 348, 532, 349, 536, 350, 535, - 351, 352, 537, 353, 204, 467, 858, 859, 860, 991, - 57, 74, 363, 364, 365, 366, 367, 541, 368, 369, - 370, 371, 288, 509, 947, 948, 949, 1042, 49, 70, - 301, 302, 303, 518, 205, 471, 206, 472, 207, 479, - 881, 882, 883, 1002, 51, 71, 318, 319, 320, 208, - 436, 209, 437, 210, 438, 324, 528, 952, 1045, 325, - 522, 326, 523, 327, 525, 328, 524, 329, 527, 330, - 526, 331, 521, 295, 515, 953, 211, 478, 878, 879, - 999, 1137, 1138, 1139, 1140, 1141, 1212, 1142, 1213, 1143, - 212, 213, 484, 918, 919, 920, 1021, 921, 1022, 214, - 485, 928, 929, 930, 931, 1026, 932, 933, 1028, 215, - 486, 61, 76, 399, 400, 401, 402, 552, 403, 404, - 554, 405, 406, 407, 557, 789, 408, 558, 409, 551, - 410, 411, 412, 561, 413, 562, 414, 563, 415, 564, - 216, 430, 63, 77, 418, 419, 420, 567, 421, 217, - 492, 936, 937, 1032, 1175, 1176, 1177, 1178, 1225, 1179, - 1223, 1245, 1246, 1247, 1255, 1256, 1257, 1263, 1258, 1259, - 1260, 1261, 1267, 218, 493, 941, 942, 943, 944 + 439, 190, 432, 802, 803, 804, 964, 805, 965, 191, + 440, 192, 441, 852, 853, 854, 991, 827, 828, 829, + 968, 1206, 830, 969, 831, 970, 832, 971, 833, 834, + 533, 835, 836, 837, 838, 839, 840, 841, 842, 843, + 844, 982, 1213, 845, 846, 984, 847, 985, 848, 986, + 849, 987, 193, 477, 876, 877, 878, 879, 880, 881, + 882, 194, 483, 912, 913, 914, 915, 916, 195, 480, + 891, 892, 893, 1014, 59, 75, 377, 378, 379, 546, + 380, 547, 196, 481, 900, 901, 902, 903, 904, 905, + 906, 907, 197, 465, 856, 857, 858, 994, 47, 69, + 273, 274, 275, 510, 276, 506, 277, 507, 278, 508, + 279, 511, 280, 514, 281, 513, 198, 199, 200, 201, + 473, 736, 286, 202, 470, 868, 869, 870, 1003, 1123, + 1124, 203, 466, 53, 72, 860, 861, 862, 997, 55, + 73, 342, 343, 344, 345, 346, 347, 348, 532, 349, + 536, 350, 535, 351, 352, 537, 353, 204, 467, 864, + 865, 866, 1000, 57, 74, 363, 364, 365, 366, 367, + 541, 368, 369, 370, 371, 288, 509, 953, 954, 955, + 1051, 49, 70, 301, 302, 303, 518, 205, 471, 206, + 472, 207, 479, 887, 888, 889, 1011, 51, 71, 318, + 319, 320, 208, 436, 209, 437, 210, 438, 324, 528, + 958, 1054, 325, 522, 326, 523, 327, 525, 328, 524, + 329, 527, 330, 526, 331, 521, 295, 515, 959, 211, + 478, 884, 885, 1008, 1149, 1150, 1151, 1152, 1153, 1224, + 1154, 1225, 1155, 212, 213, 484, 924, 925, 926, 1030, + 927, 1031, 214, 485, 934, 935, 936, 937, 1035, 938, + 939, 1037, 215, 486, 61, 76, 399, 400, 401, 402, + 552, 403, 404, 554, 405, 406, 407, 557, 789, 408, + 558, 409, 551, 410, 411, 412, 561, 413, 562, 414, + 563, 415, 564, 216, 430, 63, 77, 418, 419, 420, + 567, 421, 217, 492, 942, 943, 1041, 1187, 1188, 1189, + 1190, 1237, 1191, 1235, 1257, 1258, 1259, 1267, 1268, 1269, + 1275, 1270, 1271, 1272, 1273, 1279, 218, 493, 947, 948, + 949, 950 }; const short Dhcp4Parser::yytable_[] = { 152, 226, 248, 297, 314, 298, 340, 359, 376, 396, - 341, 360, 844, 78, 292, 1103, 321, 252, 332, 1104, - 1119, 291, 28, 236, 289, 304, 316, 428, 354, 372, - 764, 397, 429, 361, 362, 787, 768, 374, 375, 253, - 938, 939, 254, 249, 128, 129, 287, 300, 315, 29, - 81, 30, 495, 31, 729, 151, 293, 496, 322, 40, - 128, 129, 1191, 1192, 1193, 237, 290, 305, 317, 84, - 355, 373, 42, 398, 416, 417, 255, 294, 250, 323, - 334, 356, 335, 336, 357, 358, 44, 504, 251, 256, - 913, 914, 505, 516, 128, 129, 257, 422, 517, 258, - 519, 46, 902, 903, 904, 520, 259, 260, 151, 261, - 48, 262, 263, 716, 717, 718, 719, 264, 548, 265, - 50, 729, 266, 549, 267, 268, 333, 269, 565, 270, - 271, 569, 272, 566, 52, 282, 570, 283, 495, 299, - 284, 997, 285, 955, 998, 123, 151, 423, 219, 220, - 720, 87, 221, 54, 88, 222, 223, 224, 225, 569, - 504, 56, 151, 960, 956, 957, 89, 424, 961, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 334, 1000, - 335, 336, 1001, 979, 337, 338, 339, 788, 980, 58, - 979, 60, 128, 129, 1250, 981, 151, 1251, 1252, 1253, - 1254, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 1014, 425, 1019, 123, 124, - 1015, 1103, 1020, 374, 375, 1104, 1119, 128, 129, 125, - 126, 127, 1023, 1029, 128, 129, 426, 1024, 1030, 130, - 32, 33, 34, 35, 131, 132, 133, 134, 135, 1198, - 1199, 1200, 128, 129, 136, 93, 94, 95, 888, 889, - 890, 891, 892, 893, 137, 565, 1033, 138, 1037, 1034, - 1031, 1069, 979, 1038, 139, 140, 516, 1206, 334, 141, - 1210, 1207, 142, 62, 151, 1211, 143, 433, 93, 94, - 95, 530, 128, 129, 865, 866, 867, 868, 434, 869, - 124, 922, 923, 924, 752, 753, 144, 145, 146, 147, - 148, 149, 124, 435, 296, 128, 129, 99, 100, 101, - 150, 548, 1248, 755, 756, 1249, 1218, 128, 129, 151, - 245, 442, 1226, 519, 246, 1268, 151, 1227, 1229, 443, - 1269, 306, 800, 801, 123, 124, 334, 444, 307, 308, - 309, 310, 311, 312, 925, 313, 732, 733, 734, 735, - 128, 129, 571, 572, 313, 950, 445, 446, 447, 448, - 1168, 449, 1169, 1170, 450, 451, 1122, 1123, 1124, 806, - 452, 454, 455, 807, 808, 809, 810, 811, 812, 813, - 814, 815, 816, 817, 151, 456, 457, 818, 819, 820, - 821, 822, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 458, 462, 151, 152, 463, - 464, 468, 474, 475, 476, 482, 489, 226, 490, 151, - 491, 334, 494, 500, 501, 502, 503, 512, 534, 248, - 538, 573, 297, 529, 298, 531, 539, 540, 544, 236, - 542, 292, 543, 314, 252, 545, 578, 550, 291, 553, - 555, 289, 151, 340, 304, 321, 556, 341, 359, 559, - 560, 568, 360, 574, 575, 316, 253, 576, 577, 254, - 249, 579, 581, 287, 580, 354, 300, 582, 396, 583, - 372, 237, 584, 293, 361, 362, 585, 315, 586, 587, - 588, 598, 589, 290, 590, 591, 305, 322, 592, 593, - 397, 601, 594, 255, 294, 250, 595, 317, 596, 597, - 599, 600, 604, 605, 606, 251, 256, 355, 323, 128, - 129, 602, 373, 257, 603, 607, 258, 608, 610, 611, - 609, 612, 614, 259, 260, 613, 261, 151, 262, 263, - 615, 616, 398, 1230, 264, 617, 265, 618, 619, 266, - 620, 267, 268, 621, 269, 622, 270, 271, 623, 272, - 624, 625, 282, 626, 283, 627, 628, 284, 299, 285, - 629, 630, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 631, 632, 633, 634, 635, - 637, 394, 395, 636, 638, 640, 641, 642, 643, 644, - 645, 646, 648, 649, 650, 651, 652, 653, 655, 656, - 654, 657, 659, 661, 662, 663, 664, 665, 152, 666, - 226, 151, 667, 668, 670, 671, 673, 674, 675, 678, - 682, 683, 686, 796, 687, 689, 672, 692, 693, 696, - 676, 679, 236, 697, 680, 698, 685, 688, 690, 699, - 701, 691, 704, 966, 702, 905, 915, 694, 396, 695, - 705, 706, 940, 707, 708, 712, 713, 709, 710, 714, - 724, 711, 715, 722, 725, 723, 726, 911, 916, 926, - 397, 728, 727, 731, 237, 30, 737, 738, 739, 740, - 748, 746, 91, 92, 93, 94, 95, 741, 742, 743, - 744, 745, 747, 749, 750, 758, 759, 760, 761, 762, - 763, 765, 766, 767, 795, 845, 790, 769, 770, 912, - 917, 927, 398, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 849, 853, 771, 772, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 773, 238, 239, 240, - 774, 124, 775, 776, 777, 778, 779, 857, 780, 781, - 861, 782, 126, 877, 241, 880, 128, 129, 242, 243, - 244, 130, 884, 935, 784, 785, 131, 132, 133, 786, - 792, 245, 793, 794, 946, 246, 136, 967, 968, 969, - 970, 971, 972, 247, 974, 983, 984, 986, 987, 990, - 989, 993, 1039, 992, 996, 995, 1003, 1004, 1006, 1007, - 1242, 1008, 1009, 1010, 1011, 1012, 1013, 1016, 1017, 1018, - 1025, 1027, 1035, 1036, 1044, 1056, 1043, 783, 1048, 1047, - 1046, 1049, 1051, 1052, 1053, 1054, 1055, 1062, 144, 145, - 1064, 1058, 1065, 1057, 1059, 1060, 1066, 1061, 1067, 1063, - 1149, 1150, 1160, 1161, 1151, 1164, 1166, 1152, 1153, 1154, - 1184, 1185, 1244, 1188, 1156, 1208, 1214, 1157, 151, 1209, - 1158, 1215, 1216, 1217, 1165, 1163, 1224, 1181, 1189, 1182, - 1190, 1195, 1232, 1196, 1233, 1197, 1202, 1236, 1238, 1264, - 1265, 1266, 1203, 1204, 1205, 1219, 1270, 1274, 248, 797, - 799, 340, 1237, 1220, 359, 341, 1221, 1077, 360, 1105, - 292, 1102, 1125, 252, 1272, 314, 1129, 291, 376, 1116, - 289, 1228, 1081, 354, 1134, 1130, 372, 321, 1234, 1114, - 361, 362, 905, 1271, 1132, 253, 915, 316, 254, 249, - 1240, 1241, 287, 1243, 1082, 1171, 1273, 1083, 1078, 1172, - 940, 1113, 293, 1126, 911, 297, 1131, 298, 916, 315, - 1276, 1117, 290, 1277, 926, 355, 1135, 1173, 373, 322, - 791, 1115, 255, 294, 250, 639, 1133, 304, 647, 317, - 954, 1084, 1118, 1079, 251, 256, 1050, 1136, 1127, 1070, - 323, 1068, 257, 1080, 1085, 258, 912, 1159, 1128, 300, - 917, 1086, 259, 260, 1087, 261, 927, 262, 263, 1174, - 1121, 1088, 1089, 264, 1090, 265, 1091, 1092, 266, 305, - 267, 268, 1093, 269, 1094, 270, 271, 1095, 272, 1096, - 1097, 282, 1098, 283, 1099, 1100, 284, 1101, 285, 684, - 1107, 1148, 1108, 1106, 1072, 1109, 1071, 1110, 658, 1147, - 1120, 1231, 1074, 1073, 677, 1187, 1076, 1075, 681, 1146, - 1145, 1155, 951, 1186, 669, 1235, 703, 1144, 934, 798, - 1239, 700, 1275, 1162, 1262, 0, 0, 660, 0, 0, - 0, 1167, 0, 0, 0, 0, 0, 0, 0, 1180, - 0, 299, 0, 0, 0, 1222, 0, 1183, 0, 0, + 341, 360, 850, 78, 292, 1115, 321, 252, 332, 1116, + 1131, 291, 28, 236, 289, 304, 316, 729, 354, 372, + 764, 397, 787, 361, 362, 40, 768, 374, 375, 253, + 944, 945, 254, 249, 416, 417, 287, 300, 315, 29, + 81, 30, 428, 31, 495, 151, 293, 429, 322, 496, + 1006, 128, 129, 1007, 84, 237, 290, 305, 317, 42, + 355, 373, 44, 398, 46, 504, 255, 294, 250, 323, + 505, 716, 717, 718, 719, 48, 124, 1262, 251, 256, + 1263, 1264, 1265, 1266, 729, 50, 257, 128, 129, 258, + 296, 128, 129, 908, 909, 910, 259, 260, 151, 261, + 516, 262, 263, 374, 375, 517, 245, 264, 720, 265, + 246, 519, 266, 333, 267, 268, 520, 269, 548, 270, + 271, 565, 272, 549, 52, 282, 566, 283, 54, 299, + 284, 569, 285, 919, 920, 422, 570, 1009, 219, 220, + 1010, 87, 221, 56, 88, 222, 223, 224, 225, 871, + 872, 873, 874, 151, 875, 1042, 89, 58, 1043, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 334, 1260, + 335, 336, 1261, 495, 337, 338, 339, 788, 961, 569, + 504, 966, 128, 129, 962, 963, 967, 988, 60, 151, + 752, 753, 989, 151, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 988, 755, + 756, 123, 124, 990, 1115, 334, 313, 956, 1116, 1131, + 128, 129, 125, 126, 127, 62, 1023, 128, 129, 128, + 129, 1024, 130, 32, 33, 34, 35, 131, 132, 133, + 134, 135, 732, 733, 734, 735, 123, 136, 93, 94, + 95, 334, 356, 335, 336, 357, 358, 137, 1028, 1032, + 138, 800, 801, 1029, 1033, 128, 129, 139, 140, 423, + 1081, 1038, 141, 565, 151, 142, 1039, 424, 1040, 143, + 1046, 988, 93, 94, 95, 1047, 1218, 425, 426, 128, + 129, 894, 895, 896, 897, 898, 899, 433, 434, 144, + 145, 146, 147, 148, 149, 435, 516, 1180, 124, 1181, + 1182, 1219, 1222, 150, 99, 100, 101, 1223, 442, 443, + 548, 1238, 151, 128, 129, 1230, 1239, 519, 1280, 151, + 444, 151, 1241, 1281, 1203, 1204, 1205, 306, 928, 929, + 930, 123, 124, 334, 307, 308, 309, 310, 311, 312, + 445, 313, 571, 572, 1210, 1211, 1212, 128, 129, 446, + 447, 448, 449, 450, 451, 452, 454, 151, 455, 456, + 457, 458, 806, 1134, 1135, 1136, 807, 808, 809, 810, + 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, + 462, 931, 463, 821, 822, 823, 824, 825, 464, 468, + 474, 529, 475, 476, 482, 489, 490, 491, 152, 494, + 500, 501, 502, 503, 512, 573, 530, 226, 534, 531, + 538, 540, 545, 539, 542, 151, 543, 334, 550, 248, + 553, 544, 297, 555, 298, 556, 559, 560, 568, 236, + 574, 292, 575, 314, 252, 576, 577, 578, 291, 579, + 580, 289, 581, 340, 304, 321, 582, 341, 359, 151, + 583, 584, 360, 585, 586, 316, 253, 587, 588, 254, + 249, 589, 590, 287, 591, 354, 300, 592, 396, 596, + 372, 237, 593, 293, 361, 362, 594, 315, 598, 604, + 605, 595, 597, 290, 599, 601, 305, 322, 600, 602, + 397, 603, 606, 255, 294, 250, 610, 317, 607, 608, + 611, 609, 612, 614, 613, 251, 256, 355, 323, 128, + 129, 615, 373, 257, 616, 617, 258, 618, 619, 622, + 623, 620, 621, 259, 260, 624, 261, 625, 262, 263, + 626, 627, 398, 151, 264, 628, 265, 629, 630, 266, + 631, 267, 268, 632, 269, 1242, 270, 271, 633, 272, + 634, 635, 282, 636, 283, 637, 638, 284, 299, 285, + 640, 641, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 642, 643, 644, 645, 646, + 648, 394, 395, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 649, 650, 651, 652, + 653, 655, 656, 657, 654, 659, 661, 662, 152, 663, + 226, 151, 664, 665, 666, 667, 668, 670, 671, 673, + 674, 672, 675, 796, 678, 682, 683, 676, 686, 679, + 680, 687, 236, 689, 692, 693, 696, 685, 697, 688, + 690, 698, 699, 691, 701, 911, 921, 694, 396, 695, + 702, 704, 946, 705, 709, 706, 790, 707, 708, 712, + 710, 711, 713, 714, 715, 722, 723, 917, 922, 932, + 397, 724, 725, 726, 237, 727, 728, 30, 731, 91, + 92, 93, 94, 95, 737, 738, 739, 740, 746, 747, + 741, 742, 743, 744, 745, 748, 749, 750, 758, 759, + 760, 761, 762, 763, 765, 766, 767, 795, 851, 918, + 923, 933, 398, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 769, 855, 859, 770, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 771, 238, 239, 240, + 863, 124, 867, 883, 772, 886, 773, 774, 890, 775, + 776, 777, 126, 941, 241, 778, 128, 129, 242, 243, + 244, 130, 779, 780, 781, 952, 131, 132, 133, 782, + 784, 245, 785, 786, 792, 246, 136, 793, 794, 972, + 973, 974, 975, 247, 976, 977, 978, 979, 980, 981, + 983, 993, 1048, 992, 996, 995, 998, 999, 1001, 1002, + 1005, 1004, 1013, 1065, 1012, 1016, 1015, 1017, 1018, 1019, + 1020, 1021, 1022, 1025, 1026, 1027, 1034, 1036, 1044, 1045, + 1053, 783, 1052, 797, 1057, 1056, 1055, 1058, 144, 145, + 1060, 1061, 1062, 1063, 1074, 1064, 1066, 1076, 1077, 1078, + 1067, 1079, 1172, 1068, 1173, 1069, 1070, 1176, 1178, 1071, + 1197, 1072, 1073, 1075, 1161, 1162, 1196, 1200, 151, 1220, + 1221, 1226, 1227, 1163, 1164, 1228, 1165, 1166, 1229, 1236, + 1169, 1168, 1170, 1175, 1177, 1193, 1244, 1194, 1201, 1245, + 1248, 1202, 1207, 1208, 1209, 1214, 1215, 1216, 1250, 1256, + 1254, 1276, 1277, 1278, 1282, 1286, 791, 248, 1249, 799, + 340, 1284, 1217, 359, 341, 1285, 1089, 360, 1117, 292, + 1114, 1137, 252, 1231, 314, 1141, 291, 376, 1128, 289, + 1232, 1093, 354, 1146, 1142, 372, 321, 1246, 1126, 361, + 362, 911, 1233, 1144, 253, 921, 316, 254, 249, 1240, + 1252, 287, 1059, 1094, 1183, 647, 1095, 1090, 1184, 946, + 1125, 293, 1138, 917, 297, 1143, 298, 922, 315, 1253, + 1129, 290, 1255, 932, 355, 1147, 1185, 373, 322, 1283, + 1127, 255, 294, 250, 1288, 1145, 304, 1289, 317, 639, + 1096, 1130, 1091, 251, 256, 960, 1148, 1139, 1082, 323, + 1171, 257, 1092, 1097, 258, 918, 1160, 1140, 300, 923, + 1098, 259, 260, 1099, 261, 933, 262, 263, 1186, 1133, + 1100, 1101, 264, 1102, 265, 1103, 1104, 266, 305, 267, + 268, 1105, 269, 1106, 270, 271, 1107, 272, 1108, 1109, + 282, 1110, 283, 1111, 1112, 284, 1113, 285, 1080, 1119, + 1167, 1120, 1118, 1159, 1121, 1084, 1122, 1083, 684, 1132, + 1243, 1086, 677, 1085, 681, 1198, 1088, 1087, 1199, 658, + 1158, 957, 1157, 1247, 660, 940, 1174, 700, 1156, 798, + 703, 1251, 1274, 1287, 0, 0, 0, 669, 1179, 0, + 0, 0, 0, 0, 0, 0, 0, 1192, 0, 0, + 299, 0, 1195, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1077, 0, 1105, 0, 1102, 0, 1125, - 0, 0, 0, 1129, 0, 1116, 0, 0, 1081, 1171, - 0, 1134, 1130, 1172, 0, 1114, 0, 0, 0, 0, - 0, 1132, 0, 0, 0, 0, 0, 0, 0, 0, - 1082, 1173, 0, 1083, 1078, 0, 0, 1113, 0, 0, - 1126, 0, 0, 1131, 0, 0, 0, 1117, 0, 0, - 0, 0, 0, 1135, 0, 0, 0, 1115, 0, 0, - 0, 0, 0, 1133, 0, 0, 0, 1084, 1118, 1079, - 0, 0, 0, 1174, 1136, 1127, 0, 0, 0, 1080, - 1085, 0, 0, 0, 0, 1128, 0, 1086, 0, 0, - 1087, 0, 0, 0, 0, 0, 0, 1088, 1089, 0, - 1090, 0, 1091, 1092, 0, 0, 0, 0, 1093, 0, - 1094, 0, 0, 1095, 0, 1096, 1097, 0, 1098, 0, - 1099, 1100, 0, 1101, 0, 0, 1107, 0, 1108, 1106, - 0, 1109, 0, 1110, 91, 92, 93, 94, 95, 0, + 0, 0, 0, 0, 0, 1089, 0, 1117, 0, 1114, + 0, 1137, 0, 0, 0, 1141, 0, 1128, 0, 0, + 1093, 1183, 0, 1146, 1142, 1184, 0, 1126, 0, 0, + 0, 0, 0, 1144, 0, 0, 0, 0, 0, 0, + 0, 0, 1094, 1185, 0, 1095, 1090, 0, 0, 1125, + 0, 0, 1138, 0, 0, 1143, 0, 0, 0, 1129, + 0, 0, 0, 0, 0, 1147, 0, 0, 0, 1127, + 0, 0, 0, 0, 0, 1145, 0, 0, 0, 1096, + 1130, 1091, 0, 0, 0, 1186, 1148, 1139, 0, 0, + 0, 1092, 1097, 0, 0, 0, 0, 1140, 0, 1098, + 0, 0, 1099, 0, 0, 0, 0, 0, 0, 1100, + 1101, 0, 1102, 0, 1103, 1104, 0, 0, 0, 0, + 1105, 0, 1106, 0, 0, 1107, 0, 1108, 1109, 0, + 1110, 0, 1111, 1112, 0, 1113, 0, 0, 1119, 0, + 1120, 1118, 0, 1121, 0, 1122, 91, 92, 93, 94, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 0, 0, 0, 0, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 0, - 0, 0, 0, 124, 334, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 126, 0, 0, 0, 128, 129, - 0, 243, 0, 130, 0, 0, 0, 0, 131, 132, - 133, 0, 0, 245, 0, 0, 0, 246, 0, 0, - 0, 0, 0, 0, 0, 247, 0, 0, 0, 0, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 0, 0, 0, 0, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 0, 0, 0, 0, 124, 334, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 0, 0, 0, 128, 129, 0, 243, 0, 130, 0, + 0, 0, 0, 131, 132, 133, 0, 0, 245, 0, + 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 144, 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 151 + 0, 0, 0, 0, 0, 151 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 70, 73, 74, 75, 76, - 73, 74, 713, 64, 69, 994, 71, 69, 72, 994, - 994, 69, 0, 68, 69, 70, 71, 3, 73, 74, - 655, 76, 8, 74, 74, 18, 661, 135, 136, 69, - 191, 192, 69, 69, 104, 105, 69, 70, 71, 5, - 206, 7, 3, 9, 616, 206, 69, 8, 71, 7, - 104, 105, 39, 40, 41, 68, 69, 70, 71, 10, - 73, 74, 7, 76, 12, 13, 69, 69, 69, 71, - 90, 91, 92, 93, 94, 95, 7, 3, 69, 69, - 150, 151, 8, 3, 104, 105, 69, 6, 8, 69, - 3, 7, 146, 147, 148, 8, 69, 69, 206, 69, - 7, 69, 69, 172, 173, 174, 175, 69, 3, 69, - 7, 683, 69, 8, 69, 69, 38, 69, 3, 69, - 69, 3, 69, 8, 7, 69, 8, 69, 3, 70, - 69, 3, 69, 8, 6, 88, 206, 3, 15, 16, - 209, 11, 19, 7, 14, 22, 23, 24, 25, 3, - 3, 7, 206, 3, 8, 8, 26, 4, 8, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 90, 3, - 92, 93, 6, 3, 96, 97, 98, 170, 8, 7, - 3, 7, 104, 105, 183, 8, 206, 186, 187, 188, - 189, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 73, 74, 713, 64, 69, 1003, 71, 69, 72, 1003, + 1003, 69, 0, 68, 69, 70, 71, 616, 73, 74, + 655, 76, 18, 74, 74, 7, 661, 138, 139, 69, + 194, 195, 69, 69, 12, 13, 69, 70, 71, 5, + 209, 7, 3, 9, 3, 209, 69, 8, 71, 8, + 3, 107, 108, 6, 10, 68, 69, 70, 71, 7, + 73, 74, 7, 76, 7, 3, 69, 69, 69, 71, + 8, 175, 176, 177, 178, 7, 92, 186, 69, 69, + 189, 190, 191, 192, 683, 7, 69, 107, 108, 69, + 106, 107, 108, 149, 150, 151, 69, 69, 209, 69, + 3, 69, 69, 138, 139, 8, 122, 69, 212, 69, + 126, 3, 69, 38, 69, 69, 8, 69, 3, 69, + 69, 3, 69, 8, 7, 69, 8, 69, 7, 70, + 69, 3, 69, 153, 154, 6, 8, 3, 15, 16, + 6, 11, 19, 7, 14, 22, 23, 24, 25, 128, + 129, 130, 131, 209, 133, 3, 26, 7, 6, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 93, 3, + 95, 96, 6, 3, 99, 100, 101, 173, 8, 3, + 3, 3, 107, 108, 8, 8, 8, 3, 7, 209, + 17, 18, 8, 209, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 3, 8, 3, 88, 89, - 8, 1210, 8, 135, 136, 1210, 1210, 104, 105, 99, - 100, 101, 3, 3, 104, 105, 3, 8, 8, 109, - 206, 207, 208, 209, 114, 115, 116, 117, 118, 53, - 54, 55, 104, 105, 124, 32, 33, 34, 138, 139, - 140, 141, 142, 143, 134, 3, 3, 137, 3, 6, - 8, 982, 3, 8, 144, 145, 3, 8, 90, 149, - 3, 8, 152, 7, 206, 8, 156, 4, 32, 33, - 34, 3, 104, 105, 125, 126, 127, 128, 4, 130, - 89, 153, 154, 155, 17, 18, 176, 177, 178, 179, - 180, 181, 89, 4, 103, 104, 105, 61, 62, 63, - 190, 3, 3, 20, 21, 6, 8, 104, 105, 206, - 119, 4, 3, 3, 123, 3, 206, 8, 8, 4, - 8, 118, 27, 28, 88, 89, 90, 4, 125, 126, - 127, 128, 129, 130, 206, 132, 110, 111, 112, 113, - 104, 105, 423, 424, 132, 133, 4, 4, 4, 4, - 182, 4, 184, 185, 4, 4, 120, 121, 122, 38, - 4, 4, 4, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 206, 4, 4, 56, 57, 58, - 59, 60, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 4, 4, 206, 495, 4, - 4, 4, 4, 4, 4, 4, 4, 504, 4, 206, - 4, 90, 4, 4, 4, 4, 4, 4, 4, 516, - 4, 206, 519, 8, 519, 8, 8, 3, 8, 504, - 4, 516, 4, 530, 516, 3, 209, 4, 516, 4, - 4, 516, 206, 540, 519, 530, 4, 540, 545, 4, - 4, 4, 545, 4, 4, 530, 516, 4, 4, 516, - 516, 209, 4, 516, 209, 540, 519, 4, 565, 4, - 545, 504, 4, 516, 545, 545, 4, 530, 4, 207, - 207, 4, 207, 516, 207, 207, 519, 530, 209, 208, - 565, 209, 208, 516, 516, 516, 208, 530, 207, 207, - 207, 207, 4, 4, 4, 516, 516, 540, 530, 104, - 105, 209, 545, 516, 209, 209, 516, 209, 4, 4, - 209, 4, 4, 516, 516, 207, 516, 206, 516, 516, - 4, 4, 565, 1188, 516, 4, 516, 4, 209, 516, - 209, 516, 516, 209, 516, 4, 516, 516, 4, 516, - 4, 4, 516, 4, 516, 207, 4, 516, 519, 516, - 4, 4, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 4, 4, 4, 209, 209, - 4, 176, 177, 209, 4, 4, 4, 4, 209, 209, - 207, 207, 4, 4, 4, 4, 4, 4, 4, 4, - 207, 4, 4, 4, 4, 4, 4, 4, 705, 4, - 707, 206, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 704, 4, 4, 207, 4, 4, 4, - 209, 209, 707, 4, 209, 4, 209, 207, 207, 4, - 4, 207, 4, 4, 207, 742, 743, 209, 745, 209, - 7, 7, 749, 7, 7, 7, 7, 206, 206, 5, - 5, 206, 206, 206, 5, 206, 5, 742, 743, 744, - 745, 5, 206, 206, 707, 7, 5, 5, 5, 5, - 5, 206, 30, 31, 32, 33, 34, 7, 7, 7, - 7, 7, 206, 7, 5, 206, 206, 206, 5, 206, - 206, 206, 7, 206, 5, 7, 171, 206, 206, 742, - 743, 744, 745, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 7, 7, 206, 206, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 206, 85, 86, 87, - 206, 89, 206, 206, 206, 206, 206, 7, 206, 206, - 7, 206, 100, 7, 102, 7, 104, 105, 106, 107, - 108, 109, 7, 7, 206, 206, 114, 115, 116, 206, - 206, 119, 206, 206, 7, 123, 124, 4, 4, 4, - 4, 4, 4, 131, 4, 6, 3, 6, 3, 3, - 6, 3, 206, 6, 3, 6, 6, 3, 6, 3, - 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 3, 209, 6, 683, 4, 6, - 8, 4, 4, 4, 4, 4, 207, 4, 176, 177, - 4, 209, 4, 207, 207, 207, 4, 207, 4, 207, - 207, 207, 4, 4, 207, 4, 4, 207, 207, 207, - 6, 3, 7, 4, 209, 8, 4, 207, 206, 8, - 207, 8, 3, 8, 207, 209, 4, 209, 206, 209, - 206, 206, 4, 206, 4, 206, 206, 4, 4, 4, - 4, 4, 206, 206, 206, 206, 4, 4, 985, 705, - 707, 988, 207, 206, 991, 988, 206, 994, 991, 994, - 985, 994, 999, 985, 207, 1002, 999, 985, 1005, 994, - 985, 206, 994, 988, 999, 999, 991, 1002, 209, 994, - 991, 991, 1019, 209, 999, 985, 1023, 1002, 985, 985, - 206, 206, 985, 206, 994, 1032, 207, 994, 994, 1032, - 1037, 994, 985, 999, 1019, 1042, 999, 1042, 1023, 1002, - 206, 994, 985, 206, 1029, 988, 999, 1032, 991, 1002, - 696, 994, 985, 985, 985, 495, 999, 1042, 504, 1002, - 795, 994, 994, 994, 985, 985, 960, 999, 999, 984, - 1002, 979, 985, 994, 994, 985, 1019, 1019, 999, 1042, - 1023, 994, 985, 985, 994, 985, 1029, 985, 985, 1032, - 997, 994, 994, 985, 994, 985, 994, 994, 985, 1042, - 985, 985, 994, 985, 994, 985, 985, 994, 985, 994, - 994, 985, 994, 985, 994, 994, 985, 994, 985, 548, - 994, 1007, 994, 994, 987, 994, 985, 994, 516, 1005, - 996, 1210, 990, 988, 540, 1044, 993, 991, 545, 1004, - 1002, 1014, 766, 1042, 530, 1216, 569, 1000, 745, 706, - 1226, 565, 1268, 1023, 1248, -1, -1, 519, -1, -1, - -1, 1029, -1, -1, -1, -1, -1, -1, -1, 1033, - -1, 1042, -1, -1, -1, 1166, -1, 1037, -1, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 3, 20, + 21, 91, 92, 8, 1222, 93, 135, 136, 1222, 1222, + 107, 108, 102, 103, 104, 7, 3, 107, 108, 107, + 108, 8, 112, 209, 210, 211, 212, 117, 118, 119, + 120, 121, 113, 114, 115, 116, 91, 127, 32, 33, + 34, 93, 94, 95, 96, 97, 98, 137, 3, 3, + 140, 27, 28, 8, 8, 107, 108, 147, 148, 3, + 991, 3, 152, 3, 209, 155, 8, 4, 8, 159, + 3, 3, 32, 33, 34, 8, 8, 8, 3, 107, + 108, 141, 142, 143, 144, 145, 146, 4, 4, 179, + 180, 181, 182, 183, 184, 4, 3, 185, 92, 187, + 188, 8, 3, 193, 64, 65, 66, 8, 4, 4, + 3, 3, 209, 107, 108, 8, 8, 3, 3, 209, + 4, 209, 8, 8, 39, 40, 41, 121, 156, 157, + 158, 91, 92, 93, 128, 129, 130, 131, 132, 133, + 4, 135, 423, 424, 56, 57, 58, 107, 108, 4, + 4, 4, 4, 4, 4, 4, 4, 209, 4, 4, + 4, 4, 38, 123, 124, 125, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 4, 209, 4, 59, 60, 61, 62, 63, 4, 4, + 4, 8, 4, 4, 4, 4, 4, 4, 495, 4, + 4, 4, 4, 4, 4, 209, 3, 504, 4, 8, + 4, 3, 3, 8, 4, 209, 4, 93, 4, 516, + 4, 8, 519, 4, 519, 4, 4, 4, 4, 504, + 4, 516, 4, 530, 516, 4, 4, 212, 516, 212, + 212, 516, 4, 540, 519, 530, 4, 540, 545, 209, + 4, 4, 545, 4, 4, 530, 516, 210, 210, 516, + 516, 210, 210, 516, 210, 540, 519, 212, 565, 210, + 545, 504, 211, 516, 545, 545, 211, 530, 4, 4, + 4, 211, 210, 516, 210, 212, 519, 530, 210, 212, + 565, 212, 4, 516, 516, 516, 4, 530, 212, 212, + 4, 212, 4, 4, 210, 516, 516, 540, 530, 107, + 108, 4, 545, 516, 4, 4, 516, 4, 212, 4, + 4, 212, 212, 516, 516, 4, 516, 4, 516, 516, + 4, 210, 565, 209, 516, 4, 516, 4, 4, 516, + 4, 516, 516, 4, 516, 1200, 516, 516, 4, 516, + 212, 212, 516, 212, 516, 4, 4, 516, 519, 516, + 4, 4, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 4, 212, 212, 210, 210, + 4, 179, 180, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 4, 4, 4, 4, + 4, 4, 4, 4, 210, 4, 4, 4, 705, 4, + 707, 209, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 210, 4, 704, 4, 4, 4, 212, 4, 212, + 212, 4, 707, 4, 4, 4, 4, 212, 4, 210, + 210, 4, 4, 210, 4, 742, 743, 212, 745, 212, + 210, 4, 749, 7, 209, 7, 174, 7, 7, 7, + 209, 209, 7, 5, 209, 209, 209, 742, 743, 744, + 745, 5, 5, 5, 707, 209, 5, 7, 209, 30, + 31, 32, 33, 34, 5, 5, 5, 5, 209, 209, + 7, 7, 7, 7, 7, 5, 7, 5, 209, 209, + 209, 5, 209, 209, 209, 7, 209, 5, 7, 742, + 743, 744, 745, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 209, 7, 7, 209, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 209, 88, 89, 90, + 7, 92, 7, 7, 209, 7, 209, 209, 7, 209, + 209, 209, 103, 7, 105, 209, 107, 108, 109, 110, + 111, 112, 209, 209, 209, 7, 117, 118, 119, 209, + 209, 122, 209, 209, 209, 126, 127, 209, 209, 4, + 4, 4, 4, 134, 4, 4, 4, 4, 4, 4, + 4, 3, 209, 6, 3, 6, 6, 3, 6, 3, + 3, 6, 3, 212, 6, 3, 6, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 3, 683, 6, 705, 4, 6, 8, 4, 179, 180, + 4, 4, 4, 4, 4, 210, 210, 4, 4, 4, + 212, 4, 4, 210, 4, 210, 210, 4, 4, 210, + 3, 210, 210, 210, 210, 210, 6, 4, 209, 8, + 8, 4, 8, 210, 210, 3, 210, 210, 8, 4, + 210, 212, 210, 212, 210, 212, 4, 212, 209, 4, + 4, 209, 209, 209, 209, 209, 209, 209, 4, 7, + 5, 4, 4, 4, 4, 4, 696, 994, 210, 707, + 997, 210, 209, 1000, 997, 210, 1003, 1000, 1003, 994, + 1003, 1008, 994, 209, 1011, 1008, 994, 1014, 1003, 994, + 209, 1003, 997, 1008, 1008, 1000, 1011, 212, 1003, 1000, + 1000, 1028, 209, 1008, 994, 1032, 1011, 994, 994, 209, + 209, 994, 966, 1003, 1041, 504, 1003, 1003, 1041, 1046, + 1003, 994, 1008, 1028, 1051, 1008, 1051, 1032, 1011, 209, + 1003, 994, 209, 1038, 997, 1008, 1041, 1000, 1011, 212, + 1003, 994, 994, 994, 209, 1008, 1051, 209, 1011, 495, + 1003, 1003, 1003, 994, 994, 795, 1008, 1008, 993, 1011, + 1028, 994, 1003, 1003, 994, 1028, 1016, 1008, 1051, 1032, + 1003, 994, 994, 1003, 994, 1038, 994, 994, 1041, 1006, + 1003, 1003, 994, 1003, 994, 1003, 1003, 994, 1051, 994, + 994, 1003, 994, 1003, 994, 994, 1003, 994, 1003, 1003, + 994, 1003, 994, 1003, 1003, 994, 1003, 994, 988, 1003, + 1023, 1003, 1003, 1014, 1003, 996, 1003, 994, 548, 1005, + 1222, 999, 540, 997, 545, 1051, 1002, 1000, 1053, 516, + 1013, 766, 1011, 1228, 519, 745, 1032, 565, 1009, 706, + 569, 1238, 1260, 1280, -1, -1, -1, 530, 1038, -1, + -1, -1, -1, -1, -1, -1, -1, 1042, -1, -1, + 1051, -1, 1046, -1, -1, -1, -1, 1178, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1210, -1, 1210, -1, 1210, -1, 1216, - -1, -1, -1, 1216, -1, 1210, -1, -1, 1210, 1226, - -1, 1216, 1216, 1226, -1, 1210, -1, -1, -1, -1, - -1, 1216, -1, -1, -1, -1, -1, -1, -1, -1, - 1210, 1226, -1, 1210, 1210, -1, -1, 1210, -1, -1, - 1216, -1, -1, 1216, -1, -1, -1, 1210, -1, -1, - -1, -1, -1, 1216, -1, -1, -1, 1210, -1, -1, - -1, -1, -1, 1216, -1, -1, -1, 1210, 1210, 1210, - -1, -1, -1, 1226, 1216, 1216, -1, -1, -1, 1210, - 1210, -1, -1, -1, -1, 1216, -1, 1210, -1, -1, - 1210, -1, -1, -1, -1, -1, -1, 1210, 1210, -1, - 1210, -1, 1210, 1210, -1, -1, -1, -1, 1210, -1, - 1210, -1, -1, 1210, -1, 1210, 1210, -1, 1210, -1, - 1210, 1210, -1, 1210, -1, -1, 1210, -1, 1210, 1210, - -1, 1210, -1, 1210, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, -1, 1222, -1, 1222, -1, 1222, + -1, 1228, -1, -1, -1, 1228, -1, 1222, -1, -1, + 1222, 1238, -1, 1228, 1228, 1238, -1, 1222, -1, -1, + -1, -1, -1, 1228, -1, -1, -1, -1, -1, -1, + -1, -1, 1222, 1238, -1, 1222, 1222, -1, -1, 1222, + -1, -1, 1228, -1, -1, 1228, -1, -1, -1, 1222, + -1, -1, -1, -1, -1, 1228, -1, -1, -1, 1222, + -1, -1, -1, -1, -1, 1228, -1, -1, -1, 1222, + 1222, 1222, -1, -1, -1, 1238, 1228, 1228, -1, -1, + -1, 1222, 1222, -1, -1, -1, -1, 1228, -1, 1222, + -1, -1, 1222, -1, -1, -1, -1, -1, -1, 1222, + 1222, -1, 1222, -1, 1222, 1222, -1, -1, -1, -1, + 1222, -1, 1222, -1, -1, 1222, -1, 1222, 1222, -1, + 1222, -1, 1222, 1222, -1, 1222, -1, -1, 1222, -1, + 1222, 1222, -1, 1222, -1, 1222, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, -1, -1, -1, -1, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, - -1, -1, -1, 89, 90, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, -1, -1, -1, 104, 105, - -1, 107, -1, 109, -1, -1, -1, -1, 114, 115, - 116, -1, -1, 119, -1, -1, -1, 123, -1, -1, - -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, -1, -1, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, -1, 92, 93, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, + -1, -1, -1, 107, 108, -1, 110, -1, 112, -1, + -1, -1, -1, 117, 118, 119, -1, -1, 122, -1, + -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, + 134, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 176, 177, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 179, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 206 + -1, -1, -1, -1, -1, 209 }; const short Dhcp4Parser::yystos_[] = { - 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 0, 5, - 7, 9, 206, 207, 208, 209, 225, 226, 227, 232, - 7, 241, 7, 246, 7, 295, 7, 405, 7, 488, - 7, 504, 7, 440, 7, 446, 7, 470, 7, 381, - 7, 571, 7, 602, 233, 228, 242, 247, 296, 406, - 489, 505, 441, 447, 471, 382, 572, 603, 225, 234, - 235, 206, 230, 231, 10, 243, 245, 11, 14, 26, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 88, 89, 99, 100, 101, 104, 105, - 109, 114, 115, 116, 117, 118, 124, 134, 137, 144, - 145, 149, 152, 156, 176, 177, 178, 179, 180, 181, - 190, 206, 240, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 263, 264, 266, - 267, 268, 269, 270, 271, 272, 275, 277, 279, 280, - 281, 283, 285, 286, 287, 288, 289, 290, 291, 309, - 311, 319, 321, 359, 368, 375, 389, 399, 423, 424, - 425, 426, 430, 438, 464, 494, 496, 498, 509, 511, - 513, 536, 550, 551, 559, 569, 600, 609, 633, 15, - 16, 19, 22, 23, 24, 25, 240, 293, 294, 297, - 299, 302, 305, 306, 307, 308, 494, 496, 85, 86, - 87, 102, 106, 107, 108, 119, 123, 131, 240, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 264, - 267, 268, 269, 270, 271, 272, 275, 277, 279, 280, - 281, 283, 285, 407, 408, 409, 411, 413, 415, 417, - 419, 421, 423, 424, 425, 426, 429, 464, 482, 494, - 496, 498, 509, 511, 513, 533, 103, 240, 419, 421, - 464, 490, 491, 492, 494, 496, 118, 125, 126, 127, - 128, 129, 130, 132, 240, 464, 494, 496, 506, 507, - 508, 509, 511, 513, 515, 519, 521, 523, 525, 527, - 529, 531, 438, 38, 90, 92, 93, 96, 97, 98, - 240, 339, 448, 449, 450, 451, 452, 453, 454, 456, - 458, 460, 461, 463, 494, 496, 91, 94, 95, 240, - 339, 452, 458, 472, 473, 474, 475, 476, 478, 479, - 480, 481, 494, 496, 135, 136, 240, 383, 384, 385, - 387, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 176, 177, 240, 494, 496, 573, - 574, 575, 576, 578, 579, 581, 582, 583, 586, 588, - 590, 591, 592, 594, 596, 598, 12, 13, 604, 605, - 606, 608, 6, 3, 4, 8, 3, 244, 3, 8, - 601, 292, 312, 4, 4, 4, 510, 512, 514, 310, - 320, 322, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 262, 4, 4, 4, 4, 4, 273, - 276, 278, 4, 4, 4, 400, 439, 465, 4, 265, - 431, 495, 497, 427, 4, 4, 4, 360, 537, 499, - 376, 390, 4, 369, 552, 560, 570, 282, 284, 4, - 4, 4, 610, 634, 4, 3, 8, 298, 300, 303, - 4, 4, 4, 4, 3, 8, 412, 414, 416, 483, - 410, 418, 4, 422, 420, 534, 3, 8, 493, 3, - 8, 532, 520, 522, 526, 524, 530, 528, 516, 8, - 3, 8, 455, 340, 4, 459, 457, 462, 4, 8, - 3, 477, 4, 4, 8, 3, 386, 388, 3, 8, - 4, 589, 577, 4, 580, 4, 4, 584, 587, 4, - 4, 593, 595, 597, 599, 3, 8, 607, 4, 3, - 8, 225, 225, 206, 4, 4, 4, 4, 209, 209, - 209, 4, 4, 4, 4, 4, 4, 207, 207, 207, - 207, 207, 209, 208, 208, 208, 207, 207, 4, 207, - 207, 209, 209, 209, 4, 4, 4, 209, 209, 209, - 4, 4, 4, 207, 4, 4, 4, 4, 4, 209, - 209, 209, 4, 4, 4, 4, 4, 207, 4, 4, - 4, 4, 4, 4, 209, 209, 209, 4, 4, 249, - 4, 4, 4, 209, 209, 207, 207, 294, 4, 4, - 4, 4, 4, 4, 207, 4, 4, 4, 408, 4, - 491, 4, 4, 4, 4, 4, 4, 4, 4, 508, - 4, 4, 207, 4, 4, 4, 209, 450, 4, 209, - 209, 474, 4, 4, 384, 209, 4, 4, 207, 4, - 207, 207, 4, 4, 209, 209, 4, 4, 4, 4, - 574, 4, 207, 605, 4, 7, 7, 7, 7, 206, - 206, 206, 7, 7, 5, 206, 172, 173, 174, 175, - 209, 274, 206, 206, 5, 5, 5, 206, 5, 227, - 229, 206, 110, 111, 112, 113, 428, 5, 5, 5, - 5, 7, 7, 7, 7, 7, 206, 206, 5, 7, - 5, 236, 17, 18, 301, 20, 21, 304, 206, 206, - 206, 5, 206, 206, 236, 206, 7, 206, 236, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 229, 206, 206, 206, 18, 170, 585, - 171, 274, 206, 206, 206, 5, 225, 248, 604, 293, - 27, 28, 313, 314, 315, 317, 38, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 56, 57, - 58, 59, 60, 240, 327, 328, 329, 332, 334, 336, - 338, 339, 341, 342, 343, 344, 345, 346, 347, 350, - 351, 353, 355, 357, 327, 7, 323, 324, 325, 7, - 401, 402, 403, 7, 442, 443, 444, 7, 466, 467, - 468, 7, 432, 433, 434, 125, 126, 127, 128, 130, - 361, 362, 363, 364, 365, 366, 367, 7, 538, 539, - 7, 500, 501, 502, 7, 377, 378, 379, 138, 139, - 140, 141, 142, 143, 391, 392, 393, 394, 395, 396, - 397, 398, 146, 147, 148, 240, 370, 371, 372, 373, - 374, 494, 496, 150, 151, 240, 494, 496, 553, 554, - 555, 557, 153, 154, 155, 206, 494, 496, 561, 562, - 563, 564, 566, 567, 573, 7, 611, 612, 191, 192, - 240, 635, 636, 637, 638, 237, 7, 484, 485, 486, - 133, 515, 517, 535, 323, 8, 8, 8, 316, 318, - 3, 8, 330, 333, 335, 337, 4, 4, 4, 4, - 4, 4, 4, 348, 4, 352, 354, 356, 358, 3, - 8, 8, 326, 6, 3, 404, 6, 3, 445, 6, - 3, 469, 6, 3, 435, 6, 3, 3, 6, 540, - 3, 6, 503, 6, 3, 380, 6, 3, 4, 4, - 4, 4, 4, 4, 3, 8, 4, 4, 4, 3, - 8, 556, 558, 3, 8, 4, 565, 4, 568, 3, - 8, 8, 613, 3, 6, 4, 4, 3, 8, 206, - 238, 239, 487, 6, 3, 518, 8, 6, 4, 4, - 314, 4, 4, 4, 4, 207, 209, 207, 209, 207, - 207, 207, 4, 207, 4, 4, 4, 4, 328, 327, - 325, 407, 403, 448, 444, 472, 468, 240, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 264, 267, - 268, 269, 270, 271, 272, 275, 277, 279, 280, 281, - 283, 285, 339, 399, 417, 419, 421, 423, 424, 425, - 426, 436, 437, 464, 494, 496, 509, 511, 513, 533, - 434, 362, 120, 121, 122, 240, 250, 251, 252, 339, - 438, 464, 494, 496, 509, 511, 513, 541, 542, 543, - 544, 545, 547, 549, 539, 506, 502, 383, 379, 207, - 207, 207, 207, 207, 207, 392, 209, 207, 207, 371, - 4, 4, 554, 209, 4, 207, 4, 562, 182, 184, - 185, 240, 339, 494, 496, 614, 615, 616, 617, 619, - 612, 209, 209, 636, 6, 3, 490, 486, 4, 206, - 206, 39, 40, 41, 331, 206, 206, 206, 53, 54, - 55, 349, 206, 206, 206, 206, 8, 8, 8, 8, - 3, 8, 546, 548, 4, 8, 3, 8, 8, 206, - 206, 206, 225, 620, 4, 618, 3, 8, 206, 8, - 236, 437, 4, 4, 209, 543, 4, 207, 4, 615, - 206, 206, 5, 206, 7, 621, 622, 623, 3, 6, - 183, 186, 187, 188, 189, 624, 625, 626, 628, 629, - 630, 631, 622, 627, 4, 4, 4, 632, 3, 8, - 4, 209, 207, 207, 4, 625, 206, 206 + 0, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 0, 5, + 7, 9, 209, 210, 211, 212, 228, 229, 230, 235, + 7, 244, 7, 249, 7, 298, 7, 411, 7, 494, + 7, 510, 7, 446, 7, 452, 7, 476, 7, 387, + 7, 577, 7, 608, 236, 231, 245, 250, 299, 412, + 495, 511, 447, 453, 477, 388, 578, 609, 228, 237, + 238, 209, 233, 234, 10, 246, 248, 11, 14, 26, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 91, 92, 102, 103, 104, 107, 108, + 112, 117, 118, 119, 120, 121, 127, 137, 140, 147, + 148, 152, 155, 159, 179, 180, 181, 182, 183, 184, + 193, 209, 243, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 266, 267, 269, + 270, 271, 272, 273, 274, 275, 278, 280, 282, 283, + 284, 286, 288, 289, 290, 291, 292, 293, 294, 312, + 314, 322, 324, 365, 374, 381, 395, 405, 429, 430, + 431, 432, 436, 444, 470, 500, 502, 504, 515, 517, + 519, 542, 556, 557, 565, 575, 606, 615, 639, 15, + 16, 19, 22, 23, 24, 25, 243, 296, 297, 300, + 302, 305, 308, 309, 310, 311, 500, 502, 88, 89, + 90, 105, 109, 110, 111, 122, 126, 134, 243, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 267, + 270, 271, 272, 273, 274, 275, 278, 280, 282, 283, + 284, 286, 288, 413, 414, 415, 417, 419, 421, 423, + 425, 427, 429, 430, 431, 432, 435, 470, 488, 500, + 502, 504, 515, 517, 519, 539, 106, 243, 425, 427, + 470, 496, 497, 498, 500, 502, 121, 128, 129, 130, + 131, 132, 133, 135, 243, 470, 500, 502, 512, 513, + 514, 515, 517, 519, 521, 525, 527, 529, 531, 533, + 535, 537, 444, 38, 93, 95, 96, 99, 100, 101, + 243, 342, 454, 455, 456, 457, 458, 459, 460, 462, + 464, 466, 467, 469, 500, 502, 94, 97, 98, 243, + 342, 458, 464, 478, 479, 480, 481, 482, 484, 485, + 486, 487, 500, 502, 138, 139, 243, 389, 390, 391, + 393, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 179, 180, 243, 500, 502, 579, + 580, 581, 582, 584, 585, 587, 588, 589, 592, 594, + 596, 597, 598, 600, 602, 604, 12, 13, 610, 611, + 612, 614, 6, 3, 4, 8, 3, 247, 3, 8, + 607, 295, 315, 4, 4, 4, 516, 518, 520, 313, + 323, 325, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 265, 4, 4, 4, 4, 4, 276, + 279, 281, 4, 4, 4, 406, 445, 471, 4, 268, + 437, 501, 503, 433, 4, 4, 4, 366, 543, 505, + 382, 396, 4, 375, 558, 566, 576, 285, 287, 4, + 4, 4, 616, 640, 4, 3, 8, 301, 303, 306, + 4, 4, 4, 4, 3, 8, 418, 420, 422, 489, + 416, 424, 4, 428, 426, 540, 3, 8, 499, 3, + 8, 538, 526, 528, 532, 530, 536, 534, 522, 8, + 3, 8, 461, 343, 4, 465, 463, 468, 4, 8, + 3, 483, 4, 4, 8, 3, 392, 394, 3, 8, + 4, 595, 583, 4, 586, 4, 4, 590, 593, 4, + 4, 599, 601, 603, 605, 3, 8, 613, 4, 3, + 8, 228, 228, 209, 4, 4, 4, 4, 212, 212, + 212, 4, 4, 4, 4, 4, 4, 210, 210, 210, + 210, 210, 212, 211, 211, 211, 210, 210, 4, 210, + 210, 212, 212, 212, 4, 4, 4, 212, 212, 212, + 4, 4, 4, 210, 4, 4, 4, 4, 4, 212, + 212, 212, 4, 4, 4, 4, 4, 210, 4, 4, + 4, 4, 4, 4, 212, 212, 212, 4, 4, 252, + 4, 4, 4, 212, 212, 210, 210, 297, 4, 4, + 4, 4, 4, 4, 210, 4, 4, 4, 414, 4, + 497, 4, 4, 4, 4, 4, 4, 4, 4, 514, + 4, 4, 210, 4, 4, 4, 212, 456, 4, 212, + 212, 480, 4, 4, 390, 212, 4, 4, 210, 4, + 210, 210, 4, 4, 212, 212, 4, 4, 4, 4, + 580, 4, 210, 611, 4, 7, 7, 7, 7, 209, + 209, 209, 7, 7, 5, 209, 175, 176, 177, 178, + 212, 277, 209, 209, 5, 5, 5, 209, 5, 230, + 232, 209, 113, 114, 115, 116, 434, 5, 5, 5, + 5, 7, 7, 7, 7, 7, 209, 209, 5, 7, + 5, 239, 17, 18, 304, 20, 21, 307, 209, 209, + 209, 5, 209, 209, 239, 209, 7, 209, 239, 209, + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 209, 232, 209, 209, 209, 18, 173, 591, + 174, 277, 209, 209, 209, 5, 228, 251, 610, 296, + 27, 28, 316, 317, 318, 320, 38, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 59, 60, 61, 62, 63, 243, 330, 331, 332, + 335, 337, 339, 341, 342, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 356, 357, 359, 361, 363, + 330, 7, 326, 327, 328, 7, 407, 408, 409, 7, + 448, 449, 450, 7, 472, 473, 474, 7, 438, 439, + 440, 128, 129, 130, 131, 133, 367, 368, 369, 370, + 371, 372, 373, 7, 544, 545, 7, 506, 507, 508, + 7, 383, 384, 385, 141, 142, 143, 144, 145, 146, + 397, 398, 399, 400, 401, 402, 403, 404, 149, 150, + 151, 243, 376, 377, 378, 379, 380, 500, 502, 153, + 154, 243, 500, 502, 559, 560, 561, 563, 156, 157, + 158, 209, 500, 502, 567, 568, 569, 570, 572, 573, + 579, 7, 617, 618, 194, 195, 243, 641, 642, 643, + 644, 240, 7, 490, 491, 492, 136, 521, 523, 541, + 326, 8, 8, 8, 319, 321, 3, 8, 333, 336, + 338, 340, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 354, 4, 358, 360, 362, 364, 3, 8, + 8, 329, 6, 3, 410, 6, 3, 451, 6, 3, + 475, 6, 3, 441, 6, 3, 3, 6, 546, 3, + 6, 509, 6, 3, 386, 6, 3, 4, 4, 4, + 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, + 562, 564, 3, 8, 4, 571, 4, 574, 3, 8, + 8, 619, 3, 6, 4, 4, 3, 8, 209, 241, + 242, 493, 6, 3, 524, 8, 6, 4, 4, 317, + 4, 4, 4, 4, 210, 212, 210, 212, 210, 210, + 210, 210, 210, 210, 4, 210, 4, 4, 4, 4, + 331, 330, 328, 413, 409, 454, 450, 478, 474, 243, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 267, 270, 271, 272, 273, 274, 275, 278, 280, 282, + 283, 284, 286, 288, 342, 405, 423, 425, 427, 429, + 430, 431, 432, 442, 443, 470, 500, 502, 515, 517, + 519, 539, 440, 368, 123, 124, 125, 243, 253, 254, + 255, 342, 444, 470, 500, 502, 515, 517, 519, 547, + 548, 549, 550, 551, 553, 555, 545, 512, 508, 389, + 385, 210, 210, 210, 210, 210, 210, 398, 212, 210, + 210, 377, 4, 4, 560, 212, 4, 210, 4, 568, + 185, 187, 188, 243, 342, 500, 502, 620, 621, 622, + 623, 625, 618, 212, 212, 642, 6, 3, 496, 492, + 4, 209, 209, 39, 40, 41, 334, 209, 209, 209, + 56, 57, 58, 355, 209, 209, 209, 209, 8, 8, + 8, 8, 3, 8, 552, 554, 4, 8, 3, 8, + 8, 209, 209, 209, 228, 626, 4, 624, 3, 8, + 209, 8, 239, 443, 4, 4, 212, 549, 4, 210, + 4, 621, 209, 209, 5, 209, 7, 627, 628, 629, + 3, 6, 186, 189, 190, 191, 192, 630, 631, 632, + 634, 635, 636, 637, 628, 633, 4, 4, 4, 638, + 3, 8, 4, 212, 210, 210, 4, 631, 209, 209 }; const short Dhcp4Parser::yyr1_[] = { - 0, 210, 212, 211, 213, 211, 214, 211, 215, 211, - 216, 211, 217, 211, 218, 211, 219, 211, 220, 211, - 221, 211, 222, 211, 223, 211, 224, 211, 225, 225, - 225, 225, 225, 225, 225, 226, 228, 227, 229, 230, - 230, 231, 231, 231, 233, 232, 234, 234, 235, 235, - 235, 237, 236, 238, 238, 239, 239, 239, 240, 242, - 241, 244, 243, 243, 245, 247, 246, 248, 248, 248, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 262, 261, 263, 265, - 264, 266, 267, 268, 269, 270, 271, 273, 272, 274, - 274, 274, 274, 274, 276, 275, 278, 277, 279, 280, - 282, 281, 284, 283, 285, 286, 287, 288, 289, 290, - 292, 291, 293, 293, 293, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 296, 295, 298, 297, 300, - 299, 301, 301, 303, 302, 304, 304, 305, 306, 307, - 308, 310, 309, 312, 311, 313, 313, 313, 314, 314, - 316, 315, 318, 317, 320, 319, 322, 321, 323, 323, - 324, 324, 324, 326, 325, 327, 327, 327, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 330, 329, 331, - 331, 331, 333, 332, 335, 334, 337, 336, 338, 340, - 339, 341, 342, 343, 344, 345, 346, 348, 347, 349, - 349, 349, 350, 352, 351, 354, 353, 356, 355, 358, - 357, 360, 359, 361, 361, 361, 362, 362, 362, 362, - 362, 363, 364, 365, 366, 367, 369, 368, 370, 370, - 370, 371, 371, 371, 371, 371, 371, 372, 373, 374, - 376, 375, 377, 377, 378, 378, 378, 380, 379, 382, - 381, 383, 383, 383, 383, 384, 384, 386, 385, 388, - 387, 390, 389, 391, 391, 391, 392, 392, 392, 392, - 392, 392, 393, 394, 395, 396, 397, 398, 400, 399, - 401, 401, 402, 402, 402, 404, 403, 406, 405, 407, - 407, 407, 408, 408, 408, 408, 408, 408, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 408, 410, 409, - 412, 411, 414, 413, 416, 415, 418, 417, 420, 419, - 422, 421, 423, 424, 425, 427, 426, 428, 428, 428, - 428, 429, 431, 430, 432, 432, 433, 433, 433, 435, - 434, 436, 436, 436, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, - 437, 437, 437, 437, 437, 439, 438, 441, 440, 442, - 442, 443, 443, 443, 445, 444, 447, 446, 448, 448, - 449, 449, 449, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 450, 451, 452, 453, 455, 454, 457, 456, - 459, 458, 460, 462, 461, 463, 465, 464, 466, 466, - 467, 467, 467, 469, 468, 471, 470, 472, 472, 473, - 473, 473, 474, 474, 474, 474, 474, 474, 474, 474, - 474, 475, 477, 476, 478, 479, 480, 481, 483, 482, - 484, 484, 485, 485, 485, 487, 486, 489, 488, 490, - 490, 490, 491, 491, 491, 491, 491, 491, 491, 493, - 492, 495, 494, 497, 496, 499, 498, 500, 500, 501, - 501, 501, 503, 502, 505, 504, 506, 506, 507, 507, - 507, 508, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 510, 509, 512, 511, - 514, 513, 516, 515, 518, 517, 520, 519, 522, 521, + 0, 213, 215, 214, 216, 214, 217, 214, 218, 214, + 219, 214, 220, 214, 221, 214, 222, 214, 223, 214, + 224, 214, 225, 214, 226, 214, 227, 214, 228, 228, + 228, 228, 228, 228, 228, 229, 231, 230, 232, 233, + 233, 234, 234, 234, 236, 235, 237, 237, 238, 238, + 238, 240, 239, 241, 241, 242, 242, 242, 243, 245, + 244, 247, 246, 246, 248, 250, 249, 251, 251, 251, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 265, 264, 266, 268, + 267, 269, 270, 271, 272, 273, 274, 276, 275, 277, + 277, 277, 277, 277, 279, 278, 281, 280, 282, 283, + 285, 284, 287, 286, 288, 289, 290, 291, 292, 293, + 295, 294, 296, 296, 296, 297, 297, 297, 297, 297, + 297, 297, 297, 297, 297, 299, 298, 301, 300, 303, + 302, 304, 304, 306, 305, 307, 307, 308, 309, 310, + 311, 313, 312, 315, 314, 316, 316, 316, 317, 317, + 319, 318, 321, 320, 323, 322, 325, 324, 326, 326, + 327, 327, 327, 329, 328, 330, 330, 330, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 333, 332, 334, 334, 334, 336, 335, 338, 337, 340, + 339, 341, 343, 342, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 354, 353, 355, 355, 355, 356, 358, + 357, 360, 359, 362, 361, 364, 363, 366, 365, 367, + 367, 367, 368, 368, 368, 368, 368, 369, 370, 371, + 372, 373, 375, 374, 376, 376, 376, 377, 377, 377, + 377, 377, 377, 378, 379, 380, 382, 381, 383, 383, + 384, 384, 384, 386, 385, 388, 387, 389, 389, 389, + 389, 390, 390, 392, 391, 394, 393, 396, 395, 397, + 397, 397, 398, 398, 398, 398, 398, 398, 399, 400, + 401, 402, 403, 404, 406, 405, 407, 407, 408, 408, + 408, 410, 409, 412, 411, 413, 413, 413, 414, 414, + 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 414, 414, 414, 414, 414, 414, 414, 414, + 414, 414, 414, 414, 416, 415, 418, 417, 420, 419, + 422, 421, 424, 423, 426, 425, 428, 427, 429, 430, + 431, 433, 432, 434, 434, 434, 434, 435, 437, 436, + 438, 438, 439, 439, 439, 441, 440, 442, 442, 442, + 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, + 443, 445, 444, 447, 446, 448, 448, 449, 449, 449, + 451, 450, 453, 452, 454, 454, 455, 455, 455, 456, + 456, 456, 456, 456, 456, 456, 456, 456, 456, 457, + 458, 459, 461, 460, 463, 462, 465, 464, 466, 468, + 467, 469, 471, 470, 472, 472, 473, 473, 473, 475, + 474, 477, 476, 478, 478, 479, 479, 479, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 481, 483, 482, + 484, 485, 486, 487, 489, 488, 490, 490, 491, 491, + 491, 493, 492, 495, 494, 496, 496, 496, 497, 497, + 497, 497, 497, 497, 497, 499, 498, 501, 500, 503, + 502, 505, 504, 506, 506, 507, 507, 507, 509, 508, + 511, 510, 512, 512, 513, 513, 513, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 516, 515, 518, 517, 520, 519, 522, 521, 524, 523, 526, 525, 528, 527, 530, 529, 532, 531, - 534, 533, 535, 535, 537, 536, 538, 538, 538, 540, - 539, 541, 541, 542, 542, 542, 543, 543, 543, 543, - 543, 543, 543, 543, 543, 543, 543, 543, 543, 543, - 543, 544, 546, 545, 548, 547, 549, 550, 552, 551, - 553, 553, 553, 554, 554, 554, 554, 554, 556, 555, - 558, 557, 560, 559, 561, 561, 561, 562, 562, 562, - 562, 562, 562, 563, 565, 564, 566, 568, 567, 570, - 569, 572, 571, 573, 573, 573, 574, 574, 574, 574, - 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, - 574, 574, 574, 574, 575, 577, 576, 578, 580, 579, - 581, 582, 584, 583, 585, 585, 587, 586, 589, 588, - 590, 591, 593, 592, 595, 594, 597, 596, 599, 598, - 601, 600, 603, 602, 604, 604, 604, 605, 605, 607, - 606, 608, 610, 609, 611, 611, 611, 613, 612, 614, - 614, 614, 615, 615, 615, 615, 615, 615, 615, 616, - 618, 617, 620, 619, 621, 621, 621, 623, 622, 624, - 624, 624, 625, 625, 625, 625, 625, 627, 626, 628, - 629, 630, 632, 631, 634, 633, 635, 635, 635, 636, - 636, 636, 637, 638 + 534, 533, 536, 535, 538, 537, 540, 539, 541, 541, + 543, 542, 544, 544, 544, 546, 545, 547, 547, 548, + 548, 548, 549, 549, 549, 549, 549, 549, 549, 549, + 549, 549, 549, 549, 549, 549, 549, 550, 552, 551, + 554, 553, 555, 556, 558, 557, 559, 559, 559, 560, + 560, 560, 560, 560, 562, 561, 564, 563, 566, 565, + 567, 567, 567, 568, 568, 568, 568, 568, 568, 569, + 571, 570, 572, 574, 573, 576, 575, 578, 577, 579, + 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 581, 583, 582, 584, 586, 585, 587, 588, 590, 589, + 591, 591, 593, 592, 595, 594, 596, 597, 599, 598, + 601, 600, 603, 602, 605, 604, 607, 606, 609, 608, + 610, 610, 610, 611, 611, 613, 612, 614, 616, 615, + 617, 617, 617, 619, 618, 620, 620, 620, 621, 621, + 621, 621, 621, 621, 621, 622, 624, 623, 626, 625, + 627, 627, 627, 629, 628, 630, 630, 630, 631, 631, + 631, 631, 631, 633, 632, 634, 635, 636, 638, 637, + 640, 639, 641, 641, 641, 642, 642, 642, 643, 644 }; const signed char @@ -5899,65 +5936,65 @@ namespace isc { namespace dhcp { 0, 4, 0, 4, 0, 6, 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 3, 0, - 4, 3, 3, 3, 3, 3, 3, 0, 4, 1, - 1, 1, 3, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, - 4, 1, 3, 2, 1, 1, 1, 0, 4, 0, - 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 3, 0, 4, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 0, 4, 1, 1, 1, 3, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 3, 3, 3, 0, 6, 0, 1, + 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, + 1, 1, 1, 0, 4, 0, 4, 0, 6, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 3, 3, + 3, 0, 4, 1, 1, 1, 1, 3, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 6, 0, 4, 0, 1, 1, 3, 2, + 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 1, 0, 4, 0, 4, 0, 4, 1, 0, + 4, 3, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 1, 1, 3, 3, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 4, 0, 6, 0, 1, 1, 3, 2, 0, 4, + 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 3, 3, 3, 0, 4, 1, 1, 1, - 1, 3, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 6, 0, 4, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 0, 4, 0, 4, - 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 6, 1, 1, + 0, 6, 1, 3, 2, 0, 4, 0, 1, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 3, 3, 0, 6, 1, 3, 2, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, + 0, 4, 3, 0, 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 1, 1, 3, 3, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 6, 0, 1, 1, - 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 6, 1, 1, 0, 6, 1, 3, 2, 0, - 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 3, 0, 4, 3, 0, 4, 0, - 6, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, - 3, 3, 0, 4, 1, 1, 0, 4, 0, 4, - 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 6, 0, 4, 1, 3, 2, 1, 1, 0, - 6, 3, 0, 6, 1, 3, 2, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 0, 6, 1, 3, 2, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 0, 4, 3, - 3, 3, 0, 4, 0, 6, 1, 3, 2, 1, - 1, 1, 3, 3 + 3, 0, 4, 3, 0, 4, 3, 3, 0, 4, + 1, 1, 0, 4, 0, 4, 3, 3, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, + 1, 3, 2, 1, 1, 0, 6, 3, 0, 6, + 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, + 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 0, 4, 3, 3, 3, 0, 4, + 0, 6, 1, 3, 2, 1, 1, 1, 3, 3 }; @@ -5981,7 +6018,8 @@ namespace isc { namespace dhcp { "\"hosts-database\"", "\"hosts-databases\"", "\"type\"", "\"memfile\"", "\"mysql\"", "\"postgresql\"", "\"user\"", "\"password\"", "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", - "\"connect-timeout\"", "\"max-reconnect-tries\"", + "\"connect-timeout\"", "\"read-timeout\"", "\"write-timeout\"", + "\"tcp-user-timeout\"", "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"on-fail\"", "\"stop-retry-exit\"", "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"max-row-errors\"", "\"trust-anchor\"", "\"cert-file\"", "\"key-file\"", "\"cipher-list\"", @@ -6067,10 +6105,10 @@ namespace isc { namespace dhcp { "database", "$@38", "database_map_params", "database_map_param", "database_type", "$@39", "db_type", "user", "$@40", "password", "$@41", "host", "$@42", "port", "name", "$@43", "persist", "lfc_interval", - "readonly", "connect_timeout", "max_reconnect_tries", - "reconnect_wait_time", "on_fail", "$@44", "on_fail_mode", - "max_row_errors", "trust_anchor", "$@45", "cert_file", "$@46", - "key_file", "$@47", "cipher_list", "$@48", + "readonly", "connect_timeout", "read_timeout", "write_timeout", + "tcp_user_timeout", "max_reconnect_tries", "reconnect_wait_time", + "on_fail", "$@44", "on_fail_mode", "max_row_errors", "trust_anchor", + "$@45", "cert_file", "$@46", "key_file", "$@47", "cipher_list", "$@48", "host_reservation_identifiers", "$@49", "host_reservation_identifiers_list", "host_reservation_identifier", "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id", @@ -6152,90 +6190,90 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 299, 299, 299, 300, 300, 301, 301, 302, 302, - 303, 303, 304, 304, 305, 305, 306, 306, 307, 307, - 308, 308, 309, 309, 310, 310, 311, 311, 319, 320, - 321, 322, 323, 324, 325, 328, 333, 333, 344, 347, - 348, 351, 356, 362, 367, 367, 374, 375, 378, 382, - 386, 392, 392, 399, 400, 403, 407, 411, 421, 430, - 430, 445, 445, 459, 462, 468, 468, 477, 478, 479, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 553, 559, 565, 571, 577, - 583, 589, 595, 601, 607, 613, 619, 619, 628, 634, - 634, 643, 649, 655, 661, 667, 673, 679, 679, 688, - 691, 694, 697, 700, 706, 706, 715, 715, 724, 730, - 736, 736, 745, 745, 754, 760, 766, 772, 778, 784, - 790, 790, 802, 803, 804, 809, 810, 811, 812, 813, - 814, 815, 816, 817, 818, 821, 821, 830, 830, 841, - 841, 849, 850, 853, 853, 861, 863, 867, 873, 879, - 885, 891, 891, 904, 904, 915, 916, 917, 922, 923, - 926, 926, 945, 945, 963, 963, 976, 976, 987, 988, - 991, 992, 993, 998, 998, 1008, 1009, 1010, 1015, 1016, - 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1036, 1036, 1044, - 1045, 1046, 1049, 1049, 1058, 1058, 1067, 1067, 1076, 1082, - 1082, 1091, 1097, 1103, 1109, 1115, 1121, 1127, 1127, 1135, - 1136, 1137, 1140, 1146, 1146, 1155, 1155, 1164, 1164, 1173, - 1173, 1182, 1182, 1193, 1194, 1195, 1200, 1201, 1202, 1203, - 1204, 1207, 1212, 1217, 1222, 1227, 1234, 1234, 1247, 1248, - 1249, 1254, 1255, 1256, 1257, 1258, 1259, 1262, 1268, 1274, - 1280, 1280, 1291, 1292, 1295, 1296, 1297, 1302, 1302, 1312, - 1312, 1322, 1323, 1324, 1327, 1330, 1331, 1334, 1334, 1343, - 1343, 1352, 1352, 1364, 1365, 1366, 1371, 1372, 1373, 1374, - 1375, 1376, 1379, 1385, 1391, 1397, 1403, 1409, 1418, 1418, - 1432, 1433, 1436, 1437, 1438, 1447, 1447, 1473, 1473, 1484, - 1485, 1486, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, - 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, - 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, - 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, - 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1540, 1540, - 1549, 1549, 1558, 1558, 1567, 1567, 1576, 1576, 1585, 1585, - 1594, 1594, 1605, 1611, 1617, 1623, 1623, 1631, 1632, 1633, - 1634, 1637, 1645, 1645, 1657, 1658, 1662, 1663, 1664, 1669, - 1669, 1677, 1678, 1679, 1684, 1685, 1686, 1687, 1688, 1689, - 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, - 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, - 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, - 1720, 1721, 1722, 1723, 1724, 1731, 1731, 1745, 1745, 1754, - 1755, 1758, 1759, 1760, 1767, 1767, 1782, 1782, 1796, 1797, - 1800, 1801, 1802, 1807, 1808, 1809, 1810, 1811, 1812, 1813, - 1814, 1815, 1816, 1819, 1821, 1827, 1829, 1829, 1838, 1838, - 1847, 1847, 1856, 1858, 1858, 1867, 1877, 1877, 1890, 1891, - 1896, 1897, 1898, 1905, 1905, 1917, 1917, 1929, 1930, 1935, - 1936, 1937, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, - 1952, 1955, 1957, 1957, 1966, 1968, 1970, 1976, 1985, 1985, - 1998, 1999, 2002, 2003, 2004, 2009, 2009, 2019, 2019, 2029, - 2030, 2031, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2045, - 2045, 2054, 2054, 2079, 2079, 2109, 2109, 2120, 2121, 2124, - 2125, 2126, 2131, 2131, 2140, 2140, 2149, 2150, 2153, 2154, - 2155, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, - 2170, 2171, 2172, 2173, 2174, 2175, 2178, 2178, 2187, 2187, - 2196, 2196, 2205, 2205, 2214, 2214, 2225, 2225, 2234, 2234, - 2243, 2243, 2252, 2252, 2261, 2261, 2270, 2270, 2279, 2279, - 2293, 2293, 2304, 2305, 2311, 2311, 2322, 2323, 2324, 2329, - 2329, 2339, 2340, 2343, 2344, 2345, 2350, 2351, 2352, 2353, - 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, - 2364, 2367, 2369, 2369, 2378, 2378, 2387, 2395, 2403, 2403, - 2414, 2415, 2416, 2421, 2422, 2423, 2424, 2425, 2428, 2428, - 2437, 2437, 2449, 2449, 2462, 2463, 2464, 2469, 2470, 2471, - 2472, 2473, 2474, 2477, 2483, 2483, 2492, 2498, 2498, 2508, - 2508, 2521, 2521, 2531, 2532, 2533, 2538, 2539, 2540, 2541, - 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, - 2552, 2553, 2554, 2555, 2558, 2564, 2564, 2573, 2579, 2579, - 2588, 2594, 2600, 2600, 2609, 2610, 2613, 2613, 2623, 2623, - 2633, 2640, 2647, 2647, 2656, 2656, 2666, 2666, 2676, 2676, - 2688, 2688, 2700, 2700, 2710, 2711, 2712, 2718, 2719, 2722, - 2722, 2733, 2741, 2741, 2754, 2755, 2756, 2762, 2762, 2770, - 2771, 2772, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2786, - 2792, 2792, 2801, 2801, 2812, 2813, 2814, 2819, 2819, 2827, - 2828, 2829, 2834, 2835, 2836, 2837, 2838, 2841, 2841, 2850, - 2856, 2862, 2868, 2868, 2877, 2877, 2888, 2889, 2890, 2895, - 2896, 2897, 2900, 2906 + 0, 302, 302, 302, 303, 303, 304, 304, 305, 305, + 306, 306, 307, 307, 308, 308, 309, 309, 310, 310, + 311, 311, 312, 312, 313, 313, 314, 314, 322, 323, + 324, 325, 326, 327, 328, 331, 336, 336, 347, 350, + 351, 354, 359, 365, 370, 370, 377, 378, 381, 385, + 389, 395, 395, 402, 403, 406, 410, 414, 424, 433, + 433, 448, 448, 462, 465, 471, 471, 480, 481, 482, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 556, 562, 568, 574, 580, + 586, 592, 598, 604, 610, 616, 622, 622, 631, 637, + 637, 646, 652, 658, 664, 670, 676, 682, 682, 691, + 694, 697, 700, 703, 709, 709, 718, 718, 727, 733, + 739, 739, 748, 748, 757, 763, 769, 775, 781, 787, + 793, 793, 805, 806, 807, 812, 813, 814, 815, 816, + 817, 818, 819, 820, 821, 824, 824, 833, 833, 844, + 844, 852, 853, 856, 856, 864, 866, 870, 876, 882, + 888, 894, 894, 907, 907, 918, 919, 920, 925, 926, + 929, 929, 948, 948, 966, 966, 979, 979, 990, 991, + 994, 995, 996, 1001, 1001, 1011, 1012, 1013, 1018, 1019, + 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, + 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, + 1042, 1042, 1050, 1051, 1052, 1055, 1055, 1064, 1064, 1073, + 1073, 1082, 1088, 1088, 1097, 1103, 1109, 1115, 1121, 1127, + 1133, 1139, 1145, 1151, 1151, 1159, 1160, 1161, 1164, 1170, + 1170, 1179, 1179, 1188, 1188, 1197, 1197, 1206, 1206, 1217, + 1218, 1219, 1224, 1225, 1226, 1227, 1228, 1231, 1236, 1241, + 1246, 1251, 1258, 1258, 1271, 1272, 1273, 1278, 1279, 1280, + 1281, 1282, 1283, 1286, 1292, 1298, 1304, 1304, 1315, 1316, + 1319, 1320, 1321, 1326, 1326, 1336, 1336, 1346, 1347, 1348, + 1351, 1354, 1355, 1358, 1358, 1367, 1367, 1376, 1376, 1388, + 1389, 1390, 1395, 1396, 1397, 1398, 1399, 1400, 1403, 1409, + 1415, 1421, 1427, 1433, 1442, 1442, 1456, 1457, 1460, 1461, + 1462, 1471, 1471, 1497, 1497, 1508, 1509, 1510, 1516, 1517, + 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, + 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, + 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, + 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, + 1558, 1559, 1560, 1561, 1564, 1564, 1573, 1573, 1582, 1582, + 1591, 1591, 1600, 1600, 1609, 1609, 1618, 1618, 1629, 1635, + 1641, 1647, 1647, 1655, 1656, 1657, 1658, 1661, 1669, 1669, + 1681, 1682, 1686, 1687, 1688, 1693, 1693, 1701, 1702, 1703, + 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, + 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, + 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, + 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, + 1748, 1755, 1755, 1769, 1769, 1778, 1779, 1782, 1783, 1784, + 1791, 1791, 1806, 1806, 1820, 1821, 1824, 1825, 1826, 1831, + 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1843, + 1845, 1851, 1853, 1853, 1862, 1862, 1871, 1871, 1880, 1882, + 1882, 1891, 1901, 1901, 1914, 1915, 1920, 1921, 1922, 1929, + 1929, 1941, 1941, 1953, 1954, 1959, 1960, 1961, 1968, 1969, + 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1979, 1981, 1981, + 1990, 1992, 1994, 2000, 2009, 2009, 2022, 2023, 2026, 2027, + 2028, 2033, 2033, 2043, 2043, 2053, 2054, 2055, 2060, 2061, + 2062, 2063, 2064, 2065, 2066, 2069, 2069, 2078, 2078, 2103, + 2103, 2133, 2133, 2144, 2145, 2148, 2149, 2150, 2155, 2155, + 2164, 2164, 2173, 2174, 2177, 2178, 2179, 2185, 2186, 2187, + 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, + 2198, 2199, 2202, 2202, 2211, 2211, 2220, 2220, 2229, 2229, + 2238, 2238, 2249, 2249, 2258, 2258, 2267, 2267, 2276, 2276, + 2285, 2285, 2294, 2294, 2303, 2303, 2317, 2317, 2328, 2329, + 2335, 2335, 2346, 2347, 2348, 2353, 2353, 2363, 2364, 2367, + 2368, 2369, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, + 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2391, 2393, 2393, + 2402, 2402, 2411, 2419, 2427, 2427, 2438, 2439, 2440, 2445, + 2446, 2447, 2448, 2449, 2452, 2452, 2461, 2461, 2473, 2473, + 2486, 2487, 2488, 2493, 2494, 2495, 2496, 2497, 2498, 2501, + 2507, 2507, 2516, 2522, 2522, 2532, 2532, 2545, 2545, 2555, + 2556, 2557, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, + 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, + 2582, 2588, 2588, 2597, 2603, 2603, 2612, 2618, 2624, 2624, + 2633, 2634, 2637, 2637, 2647, 2647, 2657, 2664, 2671, 2671, + 2680, 2680, 2690, 2690, 2700, 2700, 2712, 2712, 2724, 2724, + 2734, 2735, 2736, 2742, 2743, 2746, 2746, 2757, 2765, 2765, + 2778, 2779, 2780, 2786, 2786, 2794, 2795, 2796, 2801, 2802, + 2803, 2804, 2805, 2806, 2807, 2810, 2816, 2816, 2825, 2825, + 2836, 2837, 2838, 2843, 2843, 2851, 2852, 2853, 2858, 2859, + 2860, 2861, 2862, 2865, 2865, 2874, 2880, 2886, 2892, 2892, + 2901, 2901, 2912, 2913, 2914, 2919, 2920, 2921, 2924, 2930 }; void @@ -6268,9 +6306,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6272 "dhcp4_parser.cc" +#line 6310 "dhcp4_parser.cc" -#line 2912 "dhcp4_parser.yy" +#line 2936 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index cf31a6f40c..c97a6a16bc 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -546,166 +546,169 @@ namespace isc { namespace dhcp { TOKEN_LFC_INTERVAL = 302, // "lfc-interval" TOKEN_READONLY = 303, // "readonly" TOKEN_CONNECT_TIMEOUT = 304, // "connect-timeout" - TOKEN_MAX_RECONNECT_TRIES = 305, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 306, // "reconnect-wait-time" - TOKEN_ON_FAIL = 307, // "on-fail" - TOKEN_STOP_RETRY_EXIT = 308, // "stop-retry-exit" - TOKEN_SERVE_RETRY_EXIT = 309, // "serve-retry-exit" - TOKEN_SERVE_RETRY_CONTINUE = 310, // "serve-retry-continue" - TOKEN_MAX_ROW_ERRORS = 311, // "max-row-errors" - TOKEN_TRUST_ANCHOR = 312, // "trust-anchor" - TOKEN_CERT_FILE = 313, // "cert-file" - TOKEN_KEY_FILE = 314, // "key-file" - TOKEN_CIPHER_LIST = 315, // "cipher-list" - TOKEN_VALID_LIFETIME = 316, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 317, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 318, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 319, // "renew-timer" - TOKEN_REBIND_TIMER = 320, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 321, // "calculate-tee-times" - TOKEN_T1_PERCENT = 322, // "t1-percent" - TOKEN_T2_PERCENT = 323, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 324, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 325, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 326, // "decline-probation-period" - TOKEN_SERVER_TAG = 327, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 328, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 329, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 330, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 331, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 332, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 333, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 334, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 335, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 336, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 337, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 338, // "store-extended-info" - TOKEN_SUBNET4 = 339, // "subnet4" - TOKEN_SUBNET_4O6_INTERFACE = 340, // "4o6-interface" - TOKEN_SUBNET_4O6_INTERFACE_ID = 341, // "4o6-interface-id" - TOKEN_SUBNET_4O6_SUBNET = 342, // "4o6-subnet" - TOKEN_OPTION_DEF = 343, // "option-def" - TOKEN_OPTION_DATA = 344, // "option-data" - TOKEN_NAME = 345, // "name" - TOKEN_DATA = 346, // "data" - TOKEN_CODE = 347, // "code" - TOKEN_SPACE = 348, // "space" - TOKEN_CSV_FORMAT = 349, // "csv-format" - TOKEN_ALWAYS_SEND = 350, // "always-send" - TOKEN_RECORD_TYPES = 351, // "record-types" - TOKEN_ENCAPSULATE = 352, // "encapsulate" - TOKEN_ARRAY = 353, // "array" - TOKEN_PARKED_PACKET_LIMIT = 354, // "parked-packet-limit" - TOKEN_ALLOCATOR = 355, // "allocator" - TOKEN_SHARED_NETWORKS = 356, // "shared-networks" - TOKEN_POOLS = 357, // "pools" - TOKEN_POOL = 358, // "pool" - TOKEN_USER_CONTEXT = 359, // "user-context" - TOKEN_COMMENT = 360, // "comment" - TOKEN_SUBNET = 361, // "subnet" - TOKEN_INTERFACE = 362, // "interface" - TOKEN_ID = 363, // "id" - TOKEN_RESERVATION_MODE = 364, // "reservation-mode" - TOKEN_DISABLED = 365, // "disabled" - TOKEN_OUT_OF_POOL = 366, // "out-of-pool" - TOKEN_GLOBAL = 367, // "global" - TOKEN_ALL = 368, // "all" - TOKEN_RESERVATIONS_GLOBAL = 369, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 370, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 371, // "reservations-out-of-pool" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 372, // "host-reservation-identifiers" - TOKEN_CLIENT_CLASSES = 373, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 374, // "require-client-classes" - TOKEN_TEST = 375, // "test" - TOKEN_TEMPLATE_TEST = 376, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 377, // "only-if-required" - TOKEN_CLIENT_CLASS = 378, // "client-class" - TOKEN_RESERVATIONS = 379, // "reservations" - TOKEN_DUID = 380, // "duid" - TOKEN_HW_ADDRESS = 381, // "hw-address" - TOKEN_CIRCUIT_ID = 382, // "circuit-id" - TOKEN_CLIENT_ID = 383, // "client-id" - TOKEN_HOSTNAME = 384, // "hostname" - TOKEN_FLEX_ID = 385, // "flex-id" - TOKEN_RELAY = 386, // "relay" - TOKEN_IP_ADDRESS = 387, // "ip-address" - TOKEN_IP_ADDRESSES = 388, // "ip-addresses" - TOKEN_HOOKS_LIBRARIES = 389, // "hooks-libraries" - TOKEN_LIBRARY = 390, // "library" - TOKEN_PARAMETERS = 391, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 392, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 393, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 394, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 395, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 396, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 397, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 398, // "unwarned-reclaim-cycles" - TOKEN_DHCP4O6_PORT = 399, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 400, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 401, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 402, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 403, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 404, // "control-socket" - TOKEN_SOCKET_TYPE = 405, // "socket-type" - TOKEN_SOCKET_NAME = 406, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 407, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 408, // "enable-queue" - TOKEN_QUEUE_TYPE = 409, // "queue-type" - TOKEN_CAPACITY = 410, // "capacity" - TOKEN_DHCP_DDNS = 411, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 412, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 413, // "qualifying-suffix" - TOKEN_SERVER_IP = 414, // "server-ip" - TOKEN_SERVER_PORT = 415, // "server-port" - TOKEN_SENDER_IP = 416, // "sender-ip" - TOKEN_SENDER_PORT = 417, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 418, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 419, // "ncr-protocol" - TOKEN_NCR_FORMAT = 420, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 421, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 422, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 423, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 424, // "generated-prefix" - TOKEN_TCP = 425, // "tcp" - TOKEN_JSON = 426, // "JSON" - TOKEN_WHEN_PRESENT = 427, // "when-present" - TOKEN_NEVER = 428, // "never" - TOKEN_ALWAYS = 429, // "always" - TOKEN_WHEN_NOT_PRESENT = 430, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 431, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 432, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 433, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 434, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 435, // "reservations-lookup-first" - TOKEN_LOGGERS = 436, // "loggers" - TOKEN_OUTPUT_OPTIONS = 437, // "output_options" - TOKEN_OUTPUT = 438, // "output" - TOKEN_DEBUGLEVEL = 439, // "debuglevel" - TOKEN_SEVERITY = 440, // "severity" - TOKEN_FLUSH = 441, // "flush" - TOKEN_MAXSIZE = 442, // "maxsize" - TOKEN_MAXVER = 443, // "maxver" - TOKEN_PATTERN = 444, // "pattern" - TOKEN_COMPATIBILITY = 445, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 446, // "lenient-option-parsing" - TOKEN_IGNORE_RAI_LINK_SEL = 447, // "ignore-rai-link-selection" - TOKEN_TOPLEVEL_JSON = 448, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP4 = 449, // TOPLEVEL_DHCP4 - TOKEN_SUB_DHCP4 = 450, // SUB_DHCP4 - TOKEN_SUB_INTERFACES4 = 451, // SUB_INTERFACES4 - TOKEN_SUB_SUBNET4 = 452, // SUB_SUBNET4 - TOKEN_SUB_POOL4 = 453, // SUB_POOL4 - TOKEN_SUB_RESERVATION = 454, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 455, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 456, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 457, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 458, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 459, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 460, // SUB_CONFIG_CONTROL - TOKEN_STRING = 461, // "constant string" - TOKEN_INTEGER = 462, // "integer" - TOKEN_FLOAT = 463, // "floating point" - TOKEN_BOOLEAN = 464 // "boolean" + TOKEN_READ_TIMEOUT = 305, // "read-timeout" + TOKEN_WRITE_TIMEOUT = 306, // "write-timeout" + TOKEN_TCP_USER_TIMEOUT = 307, // "tcp-user-timeout" + TOKEN_MAX_RECONNECT_TRIES = 308, // "max-reconnect-tries" + TOKEN_RECONNECT_WAIT_TIME = 309, // "reconnect-wait-time" + TOKEN_ON_FAIL = 310, // "on-fail" + TOKEN_STOP_RETRY_EXIT = 311, // "stop-retry-exit" + TOKEN_SERVE_RETRY_EXIT = 312, // "serve-retry-exit" + TOKEN_SERVE_RETRY_CONTINUE = 313, // "serve-retry-continue" + TOKEN_MAX_ROW_ERRORS = 314, // "max-row-errors" + TOKEN_TRUST_ANCHOR = 315, // "trust-anchor" + TOKEN_CERT_FILE = 316, // "cert-file" + TOKEN_KEY_FILE = 317, // "key-file" + TOKEN_CIPHER_LIST = 318, // "cipher-list" + TOKEN_VALID_LIFETIME = 319, // "valid-lifetime" + TOKEN_MIN_VALID_LIFETIME = 320, // "min-valid-lifetime" + TOKEN_MAX_VALID_LIFETIME = 321, // "max-valid-lifetime" + TOKEN_RENEW_TIMER = 322, // "renew-timer" + TOKEN_REBIND_TIMER = 323, // "rebind-timer" + TOKEN_CALCULATE_TEE_TIMES = 324, // "calculate-tee-times" + TOKEN_T1_PERCENT = 325, // "t1-percent" + TOKEN_T2_PERCENT = 326, // "t2-percent" + TOKEN_CACHE_THRESHOLD = 327, // "cache-threshold" + TOKEN_CACHE_MAX_AGE = 328, // "cache-max-age" + TOKEN_DECLINE_PROBATION_PERIOD = 329, // "decline-probation-period" + TOKEN_SERVER_TAG = 330, // "server-tag" + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 331, // "statistic-default-sample-count" + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 332, // "statistic-default-sample-age" + TOKEN_DDNS_SEND_UPDATES = 333, // "ddns-send-updates" + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 334, // "ddns-override-no-update" + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 335, // "ddns-override-client-update" + TOKEN_DDNS_REPLACE_CLIENT_NAME = 336, // "ddns-replace-client-name" + TOKEN_DDNS_GENERATED_PREFIX = 337, // "ddns-generated-prefix" + TOKEN_DDNS_QUALIFYING_SUFFIX = 338, // "ddns-qualifying-suffix" + TOKEN_DDNS_UPDATE_ON_RENEW = 339, // "ddns-update-on-renew" + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 340, // "ddns-use-conflict-resolution" + TOKEN_STORE_EXTENDED_INFO = 341, // "store-extended-info" + TOKEN_SUBNET4 = 342, // "subnet4" + TOKEN_SUBNET_4O6_INTERFACE = 343, // "4o6-interface" + TOKEN_SUBNET_4O6_INTERFACE_ID = 344, // "4o6-interface-id" + TOKEN_SUBNET_4O6_SUBNET = 345, // "4o6-subnet" + TOKEN_OPTION_DEF = 346, // "option-def" + TOKEN_OPTION_DATA = 347, // "option-data" + TOKEN_NAME = 348, // "name" + TOKEN_DATA = 349, // "data" + TOKEN_CODE = 350, // "code" + TOKEN_SPACE = 351, // "space" + TOKEN_CSV_FORMAT = 352, // "csv-format" + TOKEN_ALWAYS_SEND = 353, // "always-send" + TOKEN_RECORD_TYPES = 354, // "record-types" + TOKEN_ENCAPSULATE = 355, // "encapsulate" + TOKEN_ARRAY = 356, // "array" + TOKEN_PARKED_PACKET_LIMIT = 357, // "parked-packet-limit" + TOKEN_ALLOCATOR = 358, // "allocator" + TOKEN_SHARED_NETWORKS = 359, // "shared-networks" + TOKEN_POOLS = 360, // "pools" + TOKEN_POOL = 361, // "pool" + TOKEN_USER_CONTEXT = 362, // "user-context" + TOKEN_COMMENT = 363, // "comment" + TOKEN_SUBNET = 364, // "subnet" + TOKEN_INTERFACE = 365, // "interface" + TOKEN_ID = 366, // "id" + TOKEN_RESERVATION_MODE = 367, // "reservation-mode" + TOKEN_DISABLED = 368, // "disabled" + TOKEN_OUT_OF_POOL = 369, // "out-of-pool" + TOKEN_GLOBAL = 370, // "global" + TOKEN_ALL = 371, // "all" + TOKEN_RESERVATIONS_GLOBAL = 372, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 373, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 374, // "reservations-out-of-pool" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 375, // "host-reservation-identifiers" + TOKEN_CLIENT_CLASSES = 376, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 377, // "require-client-classes" + TOKEN_TEST = 378, // "test" + TOKEN_TEMPLATE_TEST = 379, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 380, // "only-if-required" + TOKEN_CLIENT_CLASS = 381, // "client-class" + TOKEN_RESERVATIONS = 382, // "reservations" + TOKEN_DUID = 383, // "duid" + TOKEN_HW_ADDRESS = 384, // "hw-address" + TOKEN_CIRCUIT_ID = 385, // "circuit-id" + TOKEN_CLIENT_ID = 386, // "client-id" + TOKEN_HOSTNAME = 387, // "hostname" + TOKEN_FLEX_ID = 388, // "flex-id" + TOKEN_RELAY = 389, // "relay" + TOKEN_IP_ADDRESS = 390, // "ip-address" + TOKEN_IP_ADDRESSES = 391, // "ip-addresses" + TOKEN_HOOKS_LIBRARIES = 392, // "hooks-libraries" + TOKEN_LIBRARY = 393, // "library" + TOKEN_PARAMETERS = 394, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 395, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 396, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 397, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 398, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 399, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 400, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 401, // "unwarned-reclaim-cycles" + TOKEN_DHCP4O6_PORT = 402, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 403, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 404, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 405, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 406, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 407, // "control-socket" + TOKEN_SOCKET_TYPE = 408, // "socket-type" + TOKEN_SOCKET_NAME = 409, // "socket-name" + TOKEN_DHCP_QUEUE_CONTROL = 410, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 411, // "enable-queue" + TOKEN_QUEUE_TYPE = 412, // "queue-type" + TOKEN_CAPACITY = 413, // "capacity" + TOKEN_DHCP_DDNS = 414, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 415, // "enable-updates" + TOKEN_QUALIFYING_SUFFIX = 416, // "qualifying-suffix" + TOKEN_SERVER_IP = 417, // "server-ip" + TOKEN_SERVER_PORT = 418, // "server-port" + TOKEN_SENDER_IP = 419, // "sender-ip" + TOKEN_SENDER_PORT = 420, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 421, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 422, // "ncr-protocol" + TOKEN_NCR_FORMAT = 423, // "ncr-format" + TOKEN_OVERRIDE_NO_UPDATE = 424, // "override-no-update" + TOKEN_OVERRIDE_CLIENT_UPDATE = 425, // "override-client-update" + TOKEN_REPLACE_CLIENT_NAME = 426, // "replace-client-name" + TOKEN_GENERATED_PREFIX = 427, // "generated-prefix" + TOKEN_TCP = 428, // "tcp" + TOKEN_JSON = 429, // "JSON" + TOKEN_WHEN_PRESENT = 430, // "when-present" + TOKEN_NEVER = 431, // "never" + TOKEN_ALWAYS = 432, // "always" + TOKEN_WHEN_NOT_PRESENT = 433, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 434, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 435, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 436, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 437, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 438, // "reservations-lookup-first" + TOKEN_LOGGERS = 439, // "loggers" + TOKEN_OUTPUT_OPTIONS = 440, // "output_options" + TOKEN_OUTPUT = 441, // "output" + TOKEN_DEBUGLEVEL = 442, // "debuglevel" + TOKEN_SEVERITY = 443, // "severity" + TOKEN_FLUSH = 444, // "flush" + TOKEN_MAXSIZE = 445, // "maxsize" + TOKEN_MAXVER = 446, // "maxver" + TOKEN_PATTERN = 447, // "pattern" + TOKEN_COMPATIBILITY = 448, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 449, // "lenient-option-parsing" + TOKEN_IGNORE_RAI_LINK_SEL = 450, // "ignore-rai-link-selection" + TOKEN_TOPLEVEL_JSON = 451, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP4 = 452, // TOPLEVEL_DHCP4 + TOKEN_SUB_DHCP4 = 453, // SUB_DHCP4 + TOKEN_SUB_INTERFACES4 = 454, // SUB_INTERFACES4 + TOKEN_SUB_SUBNET4 = 455, // SUB_SUBNET4 + TOKEN_SUB_POOL4 = 456, // SUB_POOL4 + TOKEN_SUB_RESERVATION = 457, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 458, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 459, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 460, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 461, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 462, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 463, // SUB_CONFIG_CONTROL + TOKEN_STRING = 464, // "constant string" + TOKEN_INTEGER = 465, // "integer" + TOKEN_FLOAT = 466, // "floating point" + TOKEN_BOOLEAN = 467 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -722,7 +725,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 210, ///< Number of tokens. + YYNTOKENS = 213, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -774,595 +777,601 @@ namespace isc { namespace dhcp { S_LFC_INTERVAL = 47, // "lfc-interval" S_READONLY = 48, // "readonly" S_CONNECT_TIMEOUT = 49, // "connect-timeout" - S_MAX_RECONNECT_TRIES = 50, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 51, // "reconnect-wait-time" - S_ON_FAIL = 52, // "on-fail" - S_STOP_RETRY_EXIT = 53, // "stop-retry-exit" - S_SERVE_RETRY_EXIT = 54, // "serve-retry-exit" - S_SERVE_RETRY_CONTINUE = 55, // "serve-retry-continue" - S_MAX_ROW_ERRORS = 56, // "max-row-errors" - S_TRUST_ANCHOR = 57, // "trust-anchor" - S_CERT_FILE = 58, // "cert-file" - S_KEY_FILE = 59, // "key-file" - S_CIPHER_LIST = 60, // "cipher-list" - S_VALID_LIFETIME = 61, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 62, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 63, // "max-valid-lifetime" - S_RENEW_TIMER = 64, // "renew-timer" - S_REBIND_TIMER = 65, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 66, // "calculate-tee-times" - S_T1_PERCENT = 67, // "t1-percent" - S_T2_PERCENT = 68, // "t2-percent" - S_CACHE_THRESHOLD = 69, // "cache-threshold" - S_CACHE_MAX_AGE = 70, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 71, // "decline-probation-period" - S_SERVER_TAG = 72, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 73, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 74, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 75, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 76, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 77, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 78, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 79, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 80, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 81, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 82, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 83, // "store-extended-info" - S_SUBNET4 = 84, // "subnet4" - S_SUBNET_4O6_INTERFACE = 85, // "4o6-interface" - S_SUBNET_4O6_INTERFACE_ID = 86, // "4o6-interface-id" - S_SUBNET_4O6_SUBNET = 87, // "4o6-subnet" - S_OPTION_DEF = 88, // "option-def" - S_OPTION_DATA = 89, // "option-data" - S_NAME = 90, // "name" - S_DATA = 91, // "data" - S_CODE = 92, // "code" - S_SPACE = 93, // "space" - S_CSV_FORMAT = 94, // "csv-format" - S_ALWAYS_SEND = 95, // "always-send" - S_RECORD_TYPES = 96, // "record-types" - S_ENCAPSULATE = 97, // "encapsulate" - S_ARRAY = 98, // "array" - S_PARKED_PACKET_LIMIT = 99, // "parked-packet-limit" - S_ALLOCATOR = 100, // "allocator" - S_SHARED_NETWORKS = 101, // "shared-networks" - S_POOLS = 102, // "pools" - S_POOL = 103, // "pool" - S_USER_CONTEXT = 104, // "user-context" - S_COMMENT = 105, // "comment" - S_SUBNET = 106, // "subnet" - S_INTERFACE = 107, // "interface" - S_ID = 108, // "id" - S_RESERVATION_MODE = 109, // "reservation-mode" - S_DISABLED = 110, // "disabled" - S_OUT_OF_POOL = 111, // "out-of-pool" - S_GLOBAL = 112, // "global" - S_ALL = 113, // "all" - S_RESERVATIONS_GLOBAL = 114, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 115, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 116, // "reservations-out-of-pool" - S_HOST_RESERVATION_IDENTIFIERS = 117, // "host-reservation-identifiers" - S_CLIENT_CLASSES = 118, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 119, // "require-client-classes" - S_TEST = 120, // "test" - S_TEMPLATE_TEST = 121, // "template-test" - S_ONLY_IF_REQUIRED = 122, // "only-if-required" - S_CLIENT_CLASS = 123, // "client-class" - S_RESERVATIONS = 124, // "reservations" - S_DUID = 125, // "duid" - S_HW_ADDRESS = 126, // "hw-address" - S_CIRCUIT_ID = 127, // "circuit-id" - S_CLIENT_ID = 128, // "client-id" - S_HOSTNAME = 129, // "hostname" - S_FLEX_ID = 130, // "flex-id" - S_RELAY = 131, // "relay" - S_IP_ADDRESS = 132, // "ip-address" - S_IP_ADDRESSES = 133, // "ip-addresses" - S_HOOKS_LIBRARIES = 134, // "hooks-libraries" - S_LIBRARY = 135, // "library" - S_PARAMETERS = 136, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 137, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 138, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 139, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 140, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 141, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 142, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 143, // "unwarned-reclaim-cycles" - S_DHCP4O6_PORT = 144, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 145, // "multi-threading" - S_ENABLE_MULTI_THREADING = 146, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 147, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 148, // "packet-queue-size" - S_CONTROL_SOCKET = 149, // "control-socket" - S_SOCKET_TYPE = 150, // "socket-type" - S_SOCKET_NAME = 151, // "socket-name" - S_DHCP_QUEUE_CONTROL = 152, // "dhcp-queue-control" - S_ENABLE_QUEUE = 153, // "enable-queue" - S_QUEUE_TYPE = 154, // "queue-type" - S_CAPACITY = 155, // "capacity" - S_DHCP_DDNS = 156, // "dhcp-ddns" - S_ENABLE_UPDATES = 157, // "enable-updates" - S_QUALIFYING_SUFFIX = 158, // "qualifying-suffix" - S_SERVER_IP = 159, // "server-ip" - S_SERVER_PORT = 160, // "server-port" - S_SENDER_IP = 161, // "sender-ip" - S_SENDER_PORT = 162, // "sender-port" - S_MAX_QUEUE_SIZE = 163, // "max-queue-size" - S_NCR_PROTOCOL = 164, // "ncr-protocol" - S_NCR_FORMAT = 165, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 166, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 167, // "override-client-update" - S_REPLACE_CLIENT_NAME = 168, // "replace-client-name" - S_GENERATED_PREFIX = 169, // "generated-prefix" - S_TCP = 170, // "tcp" - S_JSON = 171, // "JSON" - S_WHEN_PRESENT = 172, // "when-present" - S_NEVER = 173, // "never" - S_ALWAYS = 174, // "always" - S_WHEN_NOT_PRESENT = 175, // "when-not-present" - S_HOSTNAME_CHAR_SET = 176, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 177, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 178, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 179, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 180, // "reservations-lookup-first" - S_LOGGERS = 181, // "loggers" - S_OUTPUT_OPTIONS = 182, // "output_options" - S_OUTPUT = 183, // "output" - S_DEBUGLEVEL = 184, // "debuglevel" - S_SEVERITY = 185, // "severity" - S_FLUSH = 186, // "flush" - S_MAXSIZE = 187, // "maxsize" - S_MAXVER = 188, // "maxver" - S_PATTERN = 189, // "pattern" - S_COMPATIBILITY = 190, // "compatibility" - S_LENIENT_OPTION_PARSING = 191, // "lenient-option-parsing" - S_IGNORE_RAI_LINK_SEL = 192, // "ignore-rai-link-selection" - S_TOPLEVEL_JSON = 193, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP4 = 194, // TOPLEVEL_DHCP4 - S_SUB_DHCP4 = 195, // SUB_DHCP4 - S_SUB_INTERFACES4 = 196, // SUB_INTERFACES4 - S_SUB_SUBNET4 = 197, // SUB_SUBNET4 - S_SUB_POOL4 = 198, // SUB_POOL4 - S_SUB_RESERVATION = 199, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 200, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 201, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 202, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 203, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 204, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 205, // SUB_CONFIG_CONTROL - S_STRING = 206, // "constant string" - S_INTEGER = 207, // "integer" - S_FLOAT = 208, // "floating point" - S_BOOLEAN = 209, // "boolean" - S_YYACCEPT = 210, // $accept - S_start = 211, // start - S_212_1 = 212, // $@1 - S_213_2 = 213, // $@2 - S_214_3 = 214, // $@3 - S_215_4 = 215, // $@4 - S_216_5 = 216, // $@5 - S_217_6 = 217, // $@6 - S_218_7 = 218, // $@7 - S_219_8 = 219, // $@8 - S_220_9 = 220, // $@9 - S_221_10 = 221, // $@10 - S_222_11 = 222, // $@11 - S_223_12 = 223, // $@12 - S_224_13 = 224, // $@13 - S_value = 225, // value - S_sub_json = 226, // sub_json - S_map2 = 227, // map2 - S_228_14 = 228, // $@14 - S_map_value = 229, // map_value - S_map_content = 230, // map_content - S_not_empty_map = 231, // not_empty_map - S_list_generic = 232, // list_generic - S_233_15 = 233, // $@15 - S_list_content = 234, // list_content - S_not_empty_list = 235, // not_empty_list - S_list_strings = 236, // list_strings - S_237_16 = 237, // $@16 - S_list_strings_content = 238, // list_strings_content - S_not_empty_list_strings = 239, // not_empty_list_strings - S_unknown_map_entry = 240, // unknown_map_entry - S_syntax_map = 241, // syntax_map - S_242_17 = 242, // $@17 - S_global_object = 243, // global_object - S_244_18 = 244, // $@18 - S_global_object_comma = 245, // global_object_comma - S_sub_dhcp4 = 246, // sub_dhcp4 - S_247_19 = 247, // $@19 - S_global_params = 248, // global_params - S_global_param = 249, // global_param - S_valid_lifetime = 250, // valid_lifetime - S_min_valid_lifetime = 251, // min_valid_lifetime - S_max_valid_lifetime = 252, // max_valid_lifetime - S_renew_timer = 253, // renew_timer - S_rebind_timer = 254, // rebind_timer - S_calculate_tee_times = 255, // calculate_tee_times - S_t1_percent = 256, // t1_percent - S_t2_percent = 257, // t2_percent - S_cache_threshold = 258, // cache_threshold - S_cache_max_age = 259, // cache_max_age - S_decline_probation_period = 260, // decline_probation_period - S_server_tag = 261, // server_tag - S_262_20 = 262, // $@20 - S_parked_packet_limit = 263, // parked_packet_limit - S_allocator = 264, // allocator - S_265_21 = 265, // $@21 - S_echo_client_id = 266, // echo_client_id - S_match_client_id = 267, // match_client_id - S_authoritative = 268, // authoritative - S_ddns_send_updates = 269, // ddns_send_updates - S_ddns_override_no_update = 270, // ddns_override_no_update - S_ddns_override_client_update = 271, // ddns_override_client_update - S_ddns_replace_client_name = 272, // ddns_replace_client_name - S_273_22 = 273, // $@22 - S_ddns_replace_client_name_value = 274, // ddns_replace_client_name_value - S_ddns_generated_prefix = 275, // ddns_generated_prefix - S_276_23 = 276, // $@23 - S_ddns_qualifying_suffix = 277, // ddns_qualifying_suffix - S_278_24 = 278, // $@24 - S_ddns_update_on_renew = 279, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 280, // ddns_use_conflict_resolution - S_hostname_char_set = 281, // hostname_char_set - S_282_25 = 282, // $@25 - S_hostname_char_replacement = 283, // hostname_char_replacement - S_284_26 = 284, // $@26 - S_store_extended_info = 285, // store_extended_info - S_statistic_default_sample_count = 286, // statistic_default_sample_count - S_statistic_default_sample_age = 287, // statistic_default_sample_age - S_early_global_reservations_lookup = 288, // early_global_reservations_lookup - S_ip_reservations_unique = 289, // ip_reservations_unique - S_reservations_lookup_first = 290, // reservations_lookup_first - S_interfaces_config = 291, // interfaces_config - S_292_27 = 292, // $@27 - S_interfaces_config_params = 293, // interfaces_config_params - S_interfaces_config_param = 294, // interfaces_config_param - S_sub_interfaces4 = 295, // sub_interfaces4 - S_296_28 = 296, // $@28 - S_interfaces_list = 297, // interfaces_list - S_298_29 = 298, // $@29 - S_dhcp_socket_type = 299, // dhcp_socket_type - S_300_30 = 300, // $@30 - S_socket_type = 301, // socket_type - S_outbound_interface = 302, // outbound_interface - S_303_31 = 303, // $@31 - S_outbound_interface_value = 304, // outbound_interface_value - S_re_detect = 305, // re_detect - S_service_sockets_require_all = 306, // service_sockets_require_all - S_service_sockets_retry_wait_time = 307, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 308, // service_sockets_max_retries - S_lease_database = 309, // lease_database - S_310_32 = 310, // $@32 - S_sanity_checks = 311, // sanity_checks - S_312_33 = 312, // $@33 - S_sanity_checks_params = 313, // sanity_checks_params - S_sanity_checks_param = 314, // sanity_checks_param - S_lease_checks = 315, // lease_checks - S_316_34 = 316, // $@34 - S_extended_info_checks = 317, // extended_info_checks - S_318_35 = 318, // $@35 - S_hosts_database = 319, // hosts_database - S_320_36 = 320, // $@36 - S_hosts_databases = 321, // hosts_databases - S_322_37 = 322, // $@37 - S_database_list = 323, // database_list - S_not_empty_database_list = 324, // not_empty_database_list - S_database = 325, // database - S_326_38 = 326, // $@38 - S_database_map_params = 327, // database_map_params - S_database_map_param = 328, // database_map_param - S_database_type = 329, // database_type - S_330_39 = 330, // $@39 - S_db_type = 331, // db_type - S_user = 332, // user - S_333_40 = 333, // $@40 - S_password = 334, // password - S_335_41 = 335, // $@41 - S_host = 336, // host - S_337_42 = 337, // $@42 - S_port = 338, // port - S_name = 339, // name - S_340_43 = 340, // $@43 - S_persist = 341, // persist - S_lfc_interval = 342, // lfc_interval - S_readonly = 343, // readonly - S_connect_timeout = 344, // connect_timeout - S_max_reconnect_tries = 345, // max_reconnect_tries - S_reconnect_wait_time = 346, // reconnect_wait_time - S_on_fail = 347, // on_fail - S_348_44 = 348, // $@44 - S_on_fail_mode = 349, // on_fail_mode - S_max_row_errors = 350, // max_row_errors - S_trust_anchor = 351, // trust_anchor - S_352_45 = 352, // $@45 - S_cert_file = 353, // cert_file - S_354_46 = 354, // $@46 - S_key_file = 355, // key_file - S_356_47 = 356, // $@47 - S_cipher_list = 357, // cipher_list - S_358_48 = 358, // $@48 - S_host_reservation_identifiers = 359, // host_reservation_identifiers - S_360_49 = 360, // $@49 - S_host_reservation_identifiers_list = 361, // host_reservation_identifiers_list - S_host_reservation_identifier = 362, // host_reservation_identifier - S_duid_id = 363, // duid_id - S_hw_address_id = 364, // hw_address_id - S_circuit_id = 365, // circuit_id - S_client_id = 366, // client_id - S_flex_id = 367, // flex_id - S_dhcp_multi_threading = 368, // dhcp_multi_threading - S_369_50 = 369, // $@50 - S_multi_threading_params = 370, // multi_threading_params - S_multi_threading_param = 371, // multi_threading_param - S_enable_multi_threading = 372, // enable_multi_threading - S_thread_pool_size = 373, // thread_pool_size - S_packet_queue_size = 374, // packet_queue_size - S_hooks_libraries = 375, // hooks_libraries - S_376_51 = 376, // $@51 - S_hooks_libraries_list = 377, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 378, // not_empty_hooks_libraries_list - S_hooks_library = 379, // hooks_library - S_380_52 = 380, // $@52 - S_sub_hooks_library = 381, // sub_hooks_library - S_382_53 = 382, // $@53 - S_hooks_params = 383, // hooks_params - S_hooks_param = 384, // hooks_param - S_library = 385, // library - S_386_54 = 386, // $@54 - S_parameters = 387, // parameters - S_388_55 = 388, // $@55 - S_expired_leases_processing = 389, // expired_leases_processing - S_390_56 = 390, // $@56 - S_expired_leases_params = 391, // expired_leases_params - S_expired_leases_param = 392, // expired_leases_param - S_reclaim_timer_wait_time = 393, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 394, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 395, // hold_reclaimed_time - S_max_reclaim_leases = 396, // max_reclaim_leases - S_max_reclaim_time = 397, // max_reclaim_time - S_unwarned_reclaim_cycles = 398, // unwarned_reclaim_cycles - S_subnet4_list = 399, // subnet4_list - S_400_57 = 400, // $@57 - S_subnet4_list_content = 401, // subnet4_list_content - S_not_empty_subnet4_list = 402, // not_empty_subnet4_list - S_subnet4 = 403, // subnet4 - S_404_58 = 404, // $@58 - S_sub_subnet4 = 405, // sub_subnet4 - S_406_59 = 406, // $@59 - S_subnet4_params = 407, // subnet4_params - S_subnet4_param = 408, // subnet4_param - S_subnet = 409, // subnet - S_410_60 = 410, // $@60 - S_subnet_4o6_interface = 411, // subnet_4o6_interface - S_412_61 = 412, // $@61 - S_subnet_4o6_interface_id = 413, // subnet_4o6_interface_id - S_414_62 = 414, // $@62 - S_subnet_4o6_subnet = 415, // subnet_4o6_subnet - S_416_63 = 416, // $@63 - S_interface = 417, // interface - S_418_64 = 418, // $@64 - S_client_class = 419, // client_class - S_420_65 = 420, // $@65 - S_require_client_classes = 421, // require_client_classes - S_422_66 = 422, // $@66 - S_reservations_global = 423, // reservations_global - S_reservations_in_subnet = 424, // reservations_in_subnet - S_reservations_out_of_pool = 425, // reservations_out_of_pool - S_reservation_mode = 426, // reservation_mode - S_427_67 = 427, // $@67 - S_hr_mode = 428, // hr_mode - S_id = 429, // id - S_shared_networks = 430, // shared_networks - S_431_68 = 431, // $@68 - S_shared_networks_content = 432, // shared_networks_content - S_shared_networks_list = 433, // shared_networks_list - S_shared_network = 434, // shared_network - S_435_69 = 435, // $@69 - S_shared_network_params = 436, // shared_network_params - S_shared_network_param = 437, // shared_network_param - S_option_def_list = 438, // option_def_list - S_439_70 = 439, // $@70 - S_sub_option_def_list = 440, // sub_option_def_list - S_441_71 = 441, // $@71 - S_option_def_list_content = 442, // option_def_list_content - S_not_empty_option_def_list = 443, // not_empty_option_def_list - S_option_def_entry = 444, // option_def_entry - S_445_72 = 445, // $@72 - S_sub_option_def = 446, // sub_option_def - S_447_73 = 447, // $@73 - S_option_def_params = 448, // option_def_params - S_not_empty_option_def_params = 449, // not_empty_option_def_params - S_option_def_param = 450, // option_def_param - S_option_def_name = 451, // option_def_name - S_code = 452, // code - S_option_def_code = 453, // option_def_code - S_option_def_type = 454, // option_def_type - S_455_74 = 455, // $@74 - S_option_def_record_types = 456, // option_def_record_types - S_457_75 = 457, // $@75 - S_space = 458, // space - S_459_76 = 459, // $@76 - S_option_def_space = 460, // option_def_space - S_option_def_encapsulate = 461, // option_def_encapsulate - S_462_77 = 462, // $@77 - S_option_def_array = 463, // option_def_array - S_option_data_list = 464, // option_data_list - S_465_78 = 465, // $@78 - S_option_data_list_content = 466, // option_data_list_content - S_not_empty_option_data_list = 467, // not_empty_option_data_list - S_option_data_entry = 468, // option_data_entry - S_469_79 = 469, // $@79 - S_sub_option_data = 470, // sub_option_data - S_471_80 = 471, // $@80 - S_option_data_params = 472, // option_data_params - S_not_empty_option_data_params = 473, // not_empty_option_data_params - S_option_data_param = 474, // option_data_param - S_option_data_name = 475, // option_data_name - S_option_data_data = 476, // option_data_data - S_477_81 = 477, // $@81 - S_option_data_code = 478, // option_data_code - S_option_data_space = 479, // option_data_space - S_option_data_csv_format = 480, // option_data_csv_format - S_option_data_always_send = 481, // option_data_always_send - S_pools_list = 482, // pools_list - S_483_82 = 483, // $@82 - S_pools_list_content = 484, // pools_list_content - S_not_empty_pools_list = 485, // not_empty_pools_list - S_pool_list_entry = 486, // pool_list_entry - S_487_83 = 487, // $@83 - S_sub_pool4 = 488, // sub_pool4 - S_489_84 = 489, // $@84 - S_pool_params = 490, // pool_params - S_pool_param = 491, // pool_param - S_pool_entry = 492, // pool_entry - S_493_85 = 493, // $@85 - S_user_context = 494, // user_context - S_495_86 = 495, // $@86 - S_comment = 496, // comment - S_497_87 = 497, // $@87 - S_reservations = 498, // reservations - S_499_88 = 499, // $@88 - S_reservations_list = 500, // reservations_list - S_not_empty_reservations_list = 501, // not_empty_reservations_list - S_reservation = 502, // reservation - S_503_89 = 503, // $@89 - S_sub_reservation = 504, // sub_reservation - S_505_90 = 505, // $@90 - S_reservation_params = 506, // reservation_params - S_not_empty_reservation_params = 507, // not_empty_reservation_params - S_reservation_param = 508, // reservation_param - S_next_server = 509, // next_server - S_510_91 = 510, // $@91 - S_server_hostname = 511, // server_hostname - S_512_92 = 512, // $@92 - S_boot_file_name = 513, // boot_file_name - S_514_93 = 514, // $@93 - S_ip_address = 515, // ip_address - S_516_94 = 516, // $@94 - S_ip_addresses = 517, // ip_addresses - S_518_95 = 518, // $@95 - S_duid = 519, // duid - S_520_96 = 520, // $@96 - S_hw_address = 521, // hw_address - S_522_97 = 522, // $@97 - S_client_id_value = 523, // client_id_value - S_524_98 = 524, // $@98 - S_circuit_id_value = 525, // circuit_id_value - S_526_99 = 526, // $@99 - S_flex_id_value = 527, // flex_id_value - S_528_100 = 528, // $@100 - S_hostname = 529, // hostname - S_530_101 = 530, // $@101 - S_reservation_client_classes = 531, // reservation_client_classes - S_532_102 = 532, // $@102 - S_relay = 533, // relay - S_534_103 = 534, // $@103 - S_relay_map = 535, // relay_map - S_client_classes = 536, // client_classes - S_537_104 = 537, // $@104 - S_client_classes_list = 538, // client_classes_list - S_client_class_entry = 539, // client_class_entry - S_540_105 = 540, // $@105 - S_client_class_params = 541, // client_class_params - S_not_empty_client_class_params = 542, // not_empty_client_class_params - S_client_class_param = 543, // client_class_param - S_client_class_name = 544, // client_class_name - S_client_class_test = 545, // client_class_test - S_546_106 = 546, // $@106 - S_client_class_template_test = 547, // client_class_template_test - S_548_107 = 548, // $@107 - S_only_if_required = 549, // only_if_required - S_dhcp4o6_port = 550, // dhcp4o6_port - S_control_socket = 551, // control_socket - S_552_108 = 552, // $@108 - S_control_socket_params = 553, // control_socket_params - S_control_socket_param = 554, // control_socket_param - S_control_socket_type = 555, // control_socket_type - S_556_109 = 556, // $@109 - S_control_socket_name = 557, // control_socket_name - S_558_110 = 558, // $@110 - S_dhcp_queue_control = 559, // dhcp_queue_control - S_560_111 = 560, // $@111 - S_queue_control_params = 561, // queue_control_params - S_queue_control_param = 562, // queue_control_param - S_enable_queue = 563, // enable_queue - S_queue_type = 564, // queue_type - S_565_112 = 565, // $@112 - S_capacity = 566, // capacity - S_arbitrary_map_entry = 567, // arbitrary_map_entry - S_568_113 = 568, // $@113 - S_dhcp_ddns = 569, // dhcp_ddns - S_570_114 = 570, // $@114 - S_sub_dhcp_ddns = 571, // sub_dhcp_ddns - S_572_115 = 572, // $@115 - S_dhcp_ddns_params = 573, // dhcp_ddns_params - S_dhcp_ddns_param = 574, // dhcp_ddns_param - S_enable_updates = 575, // enable_updates - S_server_ip = 576, // server_ip - S_577_116 = 577, // $@116 - S_server_port = 578, // server_port - S_sender_ip = 579, // sender_ip - S_580_117 = 580, // $@117 - S_sender_port = 581, // sender_port - S_max_queue_size = 582, // max_queue_size - S_ncr_protocol = 583, // ncr_protocol - S_584_118 = 584, // $@118 - S_ncr_protocol_value = 585, // ncr_protocol_value - S_ncr_format = 586, // ncr_format - S_587_119 = 587, // $@119 - S_dep_qualifying_suffix = 588, // dep_qualifying_suffix - S_589_120 = 589, // $@120 - S_dep_override_no_update = 590, // dep_override_no_update - S_dep_override_client_update = 591, // dep_override_client_update - S_dep_replace_client_name = 592, // dep_replace_client_name - S_593_121 = 593, // $@121 - S_dep_generated_prefix = 594, // dep_generated_prefix - S_595_122 = 595, // $@122 - S_dep_hostname_char_set = 596, // dep_hostname_char_set - S_597_123 = 597, // $@123 - S_dep_hostname_char_replacement = 598, // dep_hostname_char_replacement - S_599_124 = 599, // $@124 - S_config_control = 600, // config_control - S_601_125 = 601, // $@125 - S_sub_config_control = 602, // sub_config_control - S_603_126 = 603, // $@126 - S_config_control_params = 604, // config_control_params - S_config_control_param = 605, // config_control_param - S_config_databases = 606, // config_databases - S_607_127 = 607, // $@127 - S_config_fetch_wait_time = 608, // config_fetch_wait_time - S_loggers = 609, // loggers - S_610_128 = 610, // $@128 - S_loggers_entries = 611, // loggers_entries - S_logger_entry = 612, // logger_entry - S_613_129 = 613, // $@129 - S_logger_params = 614, // logger_params - S_logger_param = 615, // logger_param - S_debuglevel = 616, // debuglevel - S_severity = 617, // severity - S_618_130 = 618, // $@130 - S_output_options_list = 619, // output_options_list - S_620_131 = 620, // $@131 - S_output_options_list_content = 621, // output_options_list_content - S_output_entry = 622, // output_entry - S_623_132 = 623, // $@132 - S_output_params_list = 624, // output_params_list - S_output_params = 625, // output_params - S_output = 626, // output - S_627_133 = 627, // $@133 - S_flush = 628, // flush - S_maxsize = 629, // maxsize - S_maxver = 630, // maxver - S_pattern = 631, // pattern - S_632_134 = 632, // $@134 - S_compatibility = 633, // compatibility - S_634_135 = 634, // $@135 - S_compatibility_params = 635, // compatibility_params - S_compatibility_param = 636, // compatibility_param - S_lenient_option_parsing = 637, // lenient_option_parsing - S_638_ignore_rai_link_selection = 638 // ignore-rai-link-selection + S_READ_TIMEOUT = 50, // "read-timeout" + S_WRITE_TIMEOUT = 51, // "write-timeout" + S_TCP_USER_TIMEOUT = 52, // "tcp-user-timeout" + S_MAX_RECONNECT_TRIES = 53, // "max-reconnect-tries" + S_RECONNECT_WAIT_TIME = 54, // "reconnect-wait-time" + S_ON_FAIL = 55, // "on-fail" + S_STOP_RETRY_EXIT = 56, // "stop-retry-exit" + S_SERVE_RETRY_EXIT = 57, // "serve-retry-exit" + S_SERVE_RETRY_CONTINUE = 58, // "serve-retry-continue" + S_MAX_ROW_ERRORS = 59, // "max-row-errors" + S_TRUST_ANCHOR = 60, // "trust-anchor" + S_CERT_FILE = 61, // "cert-file" + S_KEY_FILE = 62, // "key-file" + S_CIPHER_LIST = 63, // "cipher-list" + S_VALID_LIFETIME = 64, // "valid-lifetime" + S_MIN_VALID_LIFETIME = 65, // "min-valid-lifetime" + S_MAX_VALID_LIFETIME = 66, // "max-valid-lifetime" + S_RENEW_TIMER = 67, // "renew-timer" + S_REBIND_TIMER = 68, // "rebind-timer" + S_CALCULATE_TEE_TIMES = 69, // "calculate-tee-times" + S_T1_PERCENT = 70, // "t1-percent" + S_T2_PERCENT = 71, // "t2-percent" + S_CACHE_THRESHOLD = 72, // "cache-threshold" + S_CACHE_MAX_AGE = 73, // "cache-max-age" + S_DECLINE_PROBATION_PERIOD = 74, // "decline-probation-period" + S_SERVER_TAG = 75, // "server-tag" + S_STATISTIC_DEFAULT_SAMPLE_COUNT = 76, // "statistic-default-sample-count" + S_STATISTIC_DEFAULT_SAMPLE_AGE = 77, // "statistic-default-sample-age" + S_DDNS_SEND_UPDATES = 78, // "ddns-send-updates" + S_DDNS_OVERRIDE_NO_UPDATE = 79, // "ddns-override-no-update" + S_DDNS_OVERRIDE_CLIENT_UPDATE = 80, // "ddns-override-client-update" + S_DDNS_REPLACE_CLIENT_NAME = 81, // "ddns-replace-client-name" + S_DDNS_GENERATED_PREFIX = 82, // "ddns-generated-prefix" + S_DDNS_QUALIFYING_SUFFIX = 83, // "ddns-qualifying-suffix" + S_DDNS_UPDATE_ON_RENEW = 84, // "ddns-update-on-renew" + S_DDNS_USE_CONFLICT_RESOLUTION = 85, // "ddns-use-conflict-resolution" + S_STORE_EXTENDED_INFO = 86, // "store-extended-info" + S_SUBNET4 = 87, // "subnet4" + S_SUBNET_4O6_INTERFACE = 88, // "4o6-interface" + S_SUBNET_4O6_INTERFACE_ID = 89, // "4o6-interface-id" + S_SUBNET_4O6_SUBNET = 90, // "4o6-subnet" + S_OPTION_DEF = 91, // "option-def" + S_OPTION_DATA = 92, // "option-data" + S_NAME = 93, // "name" + S_DATA = 94, // "data" + S_CODE = 95, // "code" + S_SPACE = 96, // "space" + S_CSV_FORMAT = 97, // "csv-format" + S_ALWAYS_SEND = 98, // "always-send" + S_RECORD_TYPES = 99, // "record-types" + S_ENCAPSULATE = 100, // "encapsulate" + S_ARRAY = 101, // "array" + S_PARKED_PACKET_LIMIT = 102, // "parked-packet-limit" + S_ALLOCATOR = 103, // "allocator" + S_SHARED_NETWORKS = 104, // "shared-networks" + S_POOLS = 105, // "pools" + S_POOL = 106, // "pool" + S_USER_CONTEXT = 107, // "user-context" + S_COMMENT = 108, // "comment" + S_SUBNET = 109, // "subnet" + S_INTERFACE = 110, // "interface" + S_ID = 111, // "id" + S_RESERVATION_MODE = 112, // "reservation-mode" + S_DISABLED = 113, // "disabled" + S_OUT_OF_POOL = 114, // "out-of-pool" + S_GLOBAL = 115, // "global" + S_ALL = 116, // "all" + S_RESERVATIONS_GLOBAL = 117, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 118, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 119, // "reservations-out-of-pool" + S_HOST_RESERVATION_IDENTIFIERS = 120, // "host-reservation-identifiers" + S_CLIENT_CLASSES = 121, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 122, // "require-client-classes" + S_TEST = 123, // "test" + S_TEMPLATE_TEST = 124, // "template-test" + S_ONLY_IF_REQUIRED = 125, // "only-if-required" + S_CLIENT_CLASS = 126, // "client-class" + S_RESERVATIONS = 127, // "reservations" + S_DUID = 128, // "duid" + S_HW_ADDRESS = 129, // "hw-address" + S_CIRCUIT_ID = 130, // "circuit-id" + S_CLIENT_ID = 131, // "client-id" + S_HOSTNAME = 132, // "hostname" + S_FLEX_ID = 133, // "flex-id" + S_RELAY = 134, // "relay" + S_IP_ADDRESS = 135, // "ip-address" + S_IP_ADDRESSES = 136, // "ip-addresses" + S_HOOKS_LIBRARIES = 137, // "hooks-libraries" + S_LIBRARY = 138, // "library" + S_PARAMETERS = 139, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 140, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 141, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 142, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 143, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 144, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 145, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 146, // "unwarned-reclaim-cycles" + S_DHCP4O6_PORT = 147, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 148, // "multi-threading" + S_ENABLE_MULTI_THREADING = 149, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 150, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 151, // "packet-queue-size" + S_CONTROL_SOCKET = 152, // "control-socket" + S_SOCKET_TYPE = 153, // "socket-type" + S_SOCKET_NAME = 154, // "socket-name" + S_DHCP_QUEUE_CONTROL = 155, // "dhcp-queue-control" + S_ENABLE_QUEUE = 156, // "enable-queue" + S_QUEUE_TYPE = 157, // "queue-type" + S_CAPACITY = 158, // "capacity" + S_DHCP_DDNS = 159, // "dhcp-ddns" + S_ENABLE_UPDATES = 160, // "enable-updates" + S_QUALIFYING_SUFFIX = 161, // "qualifying-suffix" + S_SERVER_IP = 162, // "server-ip" + S_SERVER_PORT = 163, // "server-port" + S_SENDER_IP = 164, // "sender-ip" + S_SENDER_PORT = 165, // "sender-port" + S_MAX_QUEUE_SIZE = 166, // "max-queue-size" + S_NCR_PROTOCOL = 167, // "ncr-protocol" + S_NCR_FORMAT = 168, // "ncr-format" + S_OVERRIDE_NO_UPDATE = 169, // "override-no-update" + S_OVERRIDE_CLIENT_UPDATE = 170, // "override-client-update" + S_REPLACE_CLIENT_NAME = 171, // "replace-client-name" + S_GENERATED_PREFIX = 172, // "generated-prefix" + S_TCP = 173, // "tcp" + S_JSON = 174, // "JSON" + S_WHEN_PRESENT = 175, // "when-present" + S_NEVER = 176, // "never" + S_ALWAYS = 177, // "always" + S_WHEN_NOT_PRESENT = 178, // "when-not-present" + S_HOSTNAME_CHAR_SET = 179, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 180, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 181, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 182, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 183, // "reservations-lookup-first" + S_LOGGERS = 184, // "loggers" + S_OUTPUT_OPTIONS = 185, // "output_options" + S_OUTPUT = 186, // "output" + S_DEBUGLEVEL = 187, // "debuglevel" + S_SEVERITY = 188, // "severity" + S_FLUSH = 189, // "flush" + S_MAXSIZE = 190, // "maxsize" + S_MAXVER = 191, // "maxver" + S_PATTERN = 192, // "pattern" + S_COMPATIBILITY = 193, // "compatibility" + S_LENIENT_OPTION_PARSING = 194, // "lenient-option-parsing" + S_IGNORE_RAI_LINK_SEL = 195, // "ignore-rai-link-selection" + S_TOPLEVEL_JSON = 196, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP4 = 197, // TOPLEVEL_DHCP4 + S_SUB_DHCP4 = 198, // SUB_DHCP4 + S_SUB_INTERFACES4 = 199, // SUB_INTERFACES4 + S_SUB_SUBNET4 = 200, // SUB_SUBNET4 + S_SUB_POOL4 = 201, // SUB_POOL4 + S_SUB_RESERVATION = 202, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 203, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 204, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 205, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 206, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 207, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 208, // SUB_CONFIG_CONTROL + S_STRING = 209, // "constant string" + S_INTEGER = 210, // "integer" + S_FLOAT = 211, // "floating point" + S_BOOLEAN = 212, // "boolean" + S_YYACCEPT = 213, // $accept + S_start = 214, // start + S_215_1 = 215, // $@1 + S_216_2 = 216, // $@2 + S_217_3 = 217, // $@3 + S_218_4 = 218, // $@4 + S_219_5 = 219, // $@5 + S_220_6 = 220, // $@6 + S_221_7 = 221, // $@7 + S_222_8 = 222, // $@8 + S_223_9 = 223, // $@9 + S_224_10 = 224, // $@10 + S_225_11 = 225, // $@11 + S_226_12 = 226, // $@12 + S_227_13 = 227, // $@13 + S_value = 228, // value + S_sub_json = 229, // sub_json + S_map2 = 230, // map2 + S_231_14 = 231, // $@14 + S_map_value = 232, // map_value + S_map_content = 233, // map_content + S_not_empty_map = 234, // not_empty_map + S_list_generic = 235, // list_generic + S_236_15 = 236, // $@15 + S_list_content = 237, // list_content + S_not_empty_list = 238, // not_empty_list + S_list_strings = 239, // list_strings + S_240_16 = 240, // $@16 + S_list_strings_content = 241, // list_strings_content + S_not_empty_list_strings = 242, // not_empty_list_strings + S_unknown_map_entry = 243, // unknown_map_entry + S_syntax_map = 244, // syntax_map + S_245_17 = 245, // $@17 + S_global_object = 246, // global_object + S_247_18 = 247, // $@18 + S_global_object_comma = 248, // global_object_comma + S_sub_dhcp4 = 249, // sub_dhcp4 + S_250_19 = 250, // $@19 + S_global_params = 251, // global_params + S_global_param = 252, // global_param + S_valid_lifetime = 253, // valid_lifetime + S_min_valid_lifetime = 254, // min_valid_lifetime + S_max_valid_lifetime = 255, // max_valid_lifetime + S_renew_timer = 256, // renew_timer + S_rebind_timer = 257, // rebind_timer + S_calculate_tee_times = 258, // calculate_tee_times + S_t1_percent = 259, // t1_percent + S_t2_percent = 260, // t2_percent + S_cache_threshold = 261, // cache_threshold + S_cache_max_age = 262, // cache_max_age + S_decline_probation_period = 263, // decline_probation_period + S_server_tag = 264, // server_tag + S_265_20 = 265, // $@20 + S_parked_packet_limit = 266, // parked_packet_limit + S_allocator = 267, // allocator + S_268_21 = 268, // $@21 + S_echo_client_id = 269, // echo_client_id + S_match_client_id = 270, // match_client_id + S_authoritative = 271, // authoritative + S_ddns_send_updates = 272, // ddns_send_updates + S_ddns_override_no_update = 273, // ddns_override_no_update + S_ddns_override_client_update = 274, // ddns_override_client_update + S_ddns_replace_client_name = 275, // ddns_replace_client_name + S_276_22 = 276, // $@22 + S_ddns_replace_client_name_value = 277, // ddns_replace_client_name_value + S_ddns_generated_prefix = 278, // ddns_generated_prefix + S_279_23 = 279, // $@23 + S_ddns_qualifying_suffix = 280, // ddns_qualifying_suffix + S_281_24 = 281, // $@24 + S_ddns_update_on_renew = 282, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 283, // ddns_use_conflict_resolution + S_hostname_char_set = 284, // hostname_char_set + S_285_25 = 285, // $@25 + S_hostname_char_replacement = 286, // hostname_char_replacement + S_287_26 = 287, // $@26 + S_store_extended_info = 288, // store_extended_info + S_statistic_default_sample_count = 289, // statistic_default_sample_count + S_statistic_default_sample_age = 290, // statistic_default_sample_age + S_early_global_reservations_lookup = 291, // early_global_reservations_lookup + S_ip_reservations_unique = 292, // ip_reservations_unique + S_reservations_lookup_first = 293, // reservations_lookup_first + S_interfaces_config = 294, // interfaces_config + S_295_27 = 295, // $@27 + S_interfaces_config_params = 296, // interfaces_config_params + S_interfaces_config_param = 297, // interfaces_config_param + S_sub_interfaces4 = 298, // sub_interfaces4 + S_299_28 = 299, // $@28 + S_interfaces_list = 300, // interfaces_list + S_301_29 = 301, // $@29 + S_dhcp_socket_type = 302, // dhcp_socket_type + S_303_30 = 303, // $@30 + S_socket_type = 304, // socket_type + S_outbound_interface = 305, // outbound_interface + S_306_31 = 306, // $@31 + S_outbound_interface_value = 307, // outbound_interface_value + S_re_detect = 308, // re_detect + S_service_sockets_require_all = 309, // service_sockets_require_all + S_service_sockets_retry_wait_time = 310, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 311, // service_sockets_max_retries + S_lease_database = 312, // lease_database + S_313_32 = 313, // $@32 + S_sanity_checks = 314, // sanity_checks + S_315_33 = 315, // $@33 + S_sanity_checks_params = 316, // sanity_checks_params + S_sanity_checks_param = 317, // sanity_checks_param + S_lease_checks = 318, // lease_checks + S_319_34 = 319, // $@34 + S_extended_info_checks = 320, // extended_info_checks + S_321_35 = 321, // $@35 + S_hosts_database = 322, // hosts_database + S_323_36 = 323, // $@36 + S_hosts_databases = 324, // hosts_databases + S_325_37 = 325, // $@37 + S_database_list = 326, // database_list + S_not_empty_database_list = 327, // not_empty_database_list + S_database = 328, // database + S_329_38 = 329, // $@38 + S_database_map_params = 330, // database_map_params + S_database_map_param = 331, // database_map_param + S_database_type = 332, // database_type + S_333_39 = 333, // $@39 + S_db_type = 334, // db_type + S_user = 335, // user + S_336_40 = 336, // $@40 + S_password = 337, // password + S_338_41 = 338, // $@41 + S_host = 339, // host + S_340_42 = 340, // $@42 + S_port = 341, // port + S_name = 342, // name + S_343_43 = 343, // $@43 + S_persist = 344, // persist + S_lfc_interval = 345, // lfc_interval + S_readonly = 346, // readonly + S_connect_timeout = 347, // connect_timeout + S_read_timeout = 348, // read_timeout + S_write_timeout = 349, // write_timeout + S_tcp_user_timeout = 350, // tcp_user_timeout + S_max_reconnect_tries = 351, // max_reconnect_tries + S_reconnect_wait_time = 352, // reconnect_wait_time + S_on_fail = 353, // on_fail + S_354_44 = 354, // $@44 + S_on_fail_mode = 355, // on_fail_mode + S_max_row_errors = 356, // max_row_errors + S_trust_anchor = 357, // trust_anchor + S_358_45 = 358, // $@45 + S_cert_file = 359, // cert_file + S_360_46 = 360, // $@46 + S_key_file = 361, // key_file + S_362_47 = 362, // $@47 + S_cipher_list = 363, // cipher_list + S_364_48 = 364, // $@48 + S_host_reservation_identifiers = 365, // host_reservation_identifiers + S_366_49 = 366, // $@49 + S_host_reservation_identifiers_list = 367, // host_reservation_identifiers_list + S_host_reservation_identifier = 368, // host_reservation_identifier + S_duid_id = 369, // duid_id + S_hw_address_id = 370, // hw_address_id + S_circuit_id = 371, // circuit_id + S_client_id = 372, // client_id + S_flex_id = 373, // flex_id + S_dhcp_multi_threading = 374, // dhcp_multi_threading + S_375_50 = 375, // $@50 + S_multi_threading_params = 376, // multi_threading_params + S_multi_threading_param = 377, // multi_threading_param + S_enable_multi_threading = 378, // enable_multi_threading + S_thread_pool_size = 379, // thread_pool_size + S_packet_queue_size = 380, // packet_queue_size + S_hooks_libraries = 381, // hooks_libraries + S_382_51 = 382, // $@51 + S_hooks_libraries_list = 383, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 384, // not_empty_hooks_libraries_list + S_hooks_library = 385, // hooks_library + S_386_52 = 386, // $@52 + S_sub_hooks_library = 387, // sub_hooks_library + S_388_53 = 388, // $@53 + S_hooks_params = 389, // hooks_params + S_hooks_param = 390, // hooks_param + S_library = 391, // library + S_392_54 = 392, // $@54 + S_parameters = 393, // parameters + S_394_55 = 394, // $@55 + S_expired_leases_processing = 395, // expired_leases_processing + S_396_56 = 396, // $@56 + S_expired_leases_params = 397, // expired_leases_params + S_expired_leases_param = 398, // expired_leases_param + S_reclaim_timer_wait_time = 399, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 400, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 401, // hold_reclaimed_time + S_max_reclaim_leases = 402, // max_reclaim_leases + S_max_reclaim_time = 403, // max_reclaim_time + S_unwarned_reclaim_cycles = 404, // unwarned_reclaim_cycles + S_subnet4_list = 405, // subnet4_list + S_406_57 = 406, // $@57 + S_subnet4_list_content = 407, // subnet4_list_content + S_not_empty_subnet4_list = 408, // not_empty_subnet4_list + S_subnet4 = 409, // subnet4 + S_410_58 = 410, // $@58 + S_sub_subnet4 = 411, // sub_subnet4 + S_412_59 = 412, // $@59 + S_subnet4_params = 413, // subnet4_params + S_subnet4_param = 414, // subnet4_param + S_subnet = 415, // subnet + S_416_60 = 416, // $@60 + S_subnet_4o6_interface = 417, // subnet_4o6_interface + S_418_61 = 418, // $@61 + S_subnet_4o6_interface_id = 419, // subnet_4o6_interface_id + S_420_62 = 420, // $@62 + S_subnet_4o6_subnet = 421, // subnet_4o6_subnet + S_422_63 = 422, // $@63 + S_interface = 423, // interface + S_424_64 = 424, // $@64 + S_client_class = 425, // client_class + S_426_65 = 426, // $@65 + S_require_client_classes = 427, // require_client_classes + S_428_66 = 428, // $@66 + S_reservations_global = 429, // reservations_global + S_reservations_in_subnet = 430, // reservations_in_subnet + S_reservations_out_of_pool = 431, // reservations_out_of_pool + S_reservation_mode = 432, // reservation_mode + S_433_67 = 433, // $@67 + S_hr_mode = 434, // hr_mode + S_id = 435, // id + S_shared_networks = 436, // shared_networks + S_437_68 = 437, // $@68 + S_shared_networks_content = 438, // shared_networks_content + S_shared_networks_list = 439, // shared_networks_list + S_shared_network = 440, // shared_network + S_441_69 = 441, // $@69 + S_shared_network_params = 442, // shared_network_params + S_shared_network_param = 443, // shared_network_param + S_option_def_list = 444, // option_def_list + S_445_70 = 445, // $@70 + S_sub_option_def_list = 446, // sub_option_def_list + S_447_71 = 447, // $@71 + S_option_def_list_content = 448, // option_def_list_content + S_not_empty_option_def_list = 449, // not_empty_option_def_list + S_option_def_entry = 450, // option_def_entry + S_451_72 = 451, // $@72 + S_sub_option_def = 452, // sub_option_def + S_453_73 = 453, // $@73 + S_option_def_params = 454, // option_def_params + S_not_empty_option_def_params = 455, // not_empty_option_def_params + S_option_def_param = 456, // option_def_param + S_option_def_name = 457, // option_def_name + S_code = 458, // code + S_option_def_code = 459, // option_def_code + S_option_def_type = 460, // option_def_type + S_461_74 = 461, // $@74 + S_option_def_record_types = 462, // option_def_record_types + S_463_75 = 463, // $@75 + S_space = 464, // space + S_465_76 = 465, // $@76 + S_option_def_space = 466, // option_def_space + S_option_def_encapsulate = 467, // option_def_encapsulate + S_468_77 = 468, // $@77 + S_option_def_array = 469, // option_def_array + S_option_data_list = 470, // option_data_list + S_471_78 = 471, // $@78 + S_option_data_list_content = 472, // option_data_list_content + S_not_empty_option_data_list = 473, // not_empty_option_data_list + S_option_data_entry = 474, // option_data_entry + S_475_79 = 475, // $@79 + S_sub_option_data = 476, // sub_option_data + S_477_80 = 477, // $@80 + S_option_data_params = 478, // option_data_params + S_not_empty_option_data_params = 479, // not_empty_option_data_params + S_option_data_param = 480, // option_data_param + S_option_data_name = 481, // option_data_name + S_option_data_data = 482, // option_data_data + S_483_81 = 483, // $@81 + S_option_data_code = 484, // option_data_code + S_option_data_space = 485, // option_data_space + S_option_data_csv_format = 486, // option_data_csv_format + S_option_data_always_send = 487, // option_data_always_send + S_pools_list = 488, // pools_list + S_489_82 = 489, // $@82 + S_pools_list_content = 490, // pools_list_content + S_not_empty_pools_list = 491, // not_empty_pools_list + S_pool_list_entry = 492, // pool_list_entry + S_493_83 = 493, // $@83 + S_sub_pool4 = 494, // sub_pool4 + S_495_84 = 495, // $@84 + S_pool_params = 496, // pool_params + S_pool_param = 497, // pool_param + S_pool_entry = 498, // pool_entry + S_499_85 = 499, // $@85 + S_user_context = 500, // user_context + S_501_86 = 501, // $@86 + S_comment = 502, // comment + S_503_87 = 503, // $@87 + S_reservations = 504, // reservations + S_505_88 = 505, // $@88 + S_reservations_list = 506, // reservations_list + S_not_empty_reservations_list = 507, // not_empty_reservations_list + S_reservation = 508, // reservation + S_509_89 = 509, // $@89 + S_sub_reservation = 510, // sub_reservation + S_511_90 = 511, // $@90 + S_reservation_params = 512, // reservation_params + S_not_empty_reservation_params = 513, // not_empty_reservation_params + S_reservation_param = 514, // reservation_param + S_next_server = 515, // next_server + S_516_91 = 516, // $@91 + S_server_hostname = 517, // server_hostname + S_518_92 = 518, // $@92 + S_boot_file_name = 519, // boot_file_name + S_520_93 = 520, // $@93 + S_ip_address = 521, // ip_address + S_522_94 = 522, // $@94 + S_ip_addresses = 523, // ip_addresses + S_524_95 = 524, // $@95 + S_duid = 525, // duid + S_526_96 = 526, // $@96 + S_hw_address = 527, // hw_address + S_528_97 = 528, // $@97 + S_client_id_value = 529, // client_id_value + S_530_98 = 530, // $@98 + S_circuit_id_value = 531, // circuit_id_value + S_532_99 = 532, // $@99 + S_flex_id_value = 533, // flex_id_value + S_534_100 = 534, // $@100 + S_hostname = 535, // hostname + S_536_101 = 536, // $@101 + S_reservation_client_classes = 537, // reservation_client_classes + S_538_102 = 538, // $@102 + S_relay = 539, // relay + S_540_103 = 540, // $@103 + S_relay_map = 541, // relay_map + S_client_classes = 542, // client_classes + S_543_104 = 543, // $@104 + S_client_classes_list = 544, // client_classes_list + S_client_class_entry = 545, // client_class_entry + S_546_105 = 546, // $@105 + S_client_class_params = 547, // client_class_params + S_not_empty_client_class_params = 548, // not_empty_client_class_params + S_client_class_param = 549, // client_class_param + S_client_class_name = 550, // client_class_name + S_client_class_test = 551, // client_class_test + S_552_106 = 552, // $@106 + S_client_class_template_test = 553, // client_class_template_test + S_554_107 = 554, // $@107 + S_only_if_required = 555, // only_if_required + S_dhcp4o6_port = 556, // dhcp4o6_port + S_control_socket = 557, // control_socket + S_558_108 = 558, // $@108 + S_control_socket_params = 559, // control_socket_params + S_control_socket_param = 560, // control_socket_param + S_control_socket_type = 561, // control_socket_type + S_562_109 = 562, // $@109 + S_control_socket_name = 563, // control_socket_name + S_564_110 = 564, // $@110 + S_dhcp_queue_control = 565, // dhcp_queue_control + S_566_111 = 566, // $@111 + S_queue_control_params = 567, // queue_control_params + S_queue_control_param = 568, // queue_control_param + S_enable_queue = 569, // enable_queue + S_queue_type = 570, // queue_type + S_571_112 = 571, // $@112 + S_capacity = 572, // capacity + S_arbitrary_map_entry = 573, // arbitrary_map_entry + S_574_113 = 574, // $@113 + S_dhcp_ddns = 575, // dhcp_ddns + S_576_114 = 576, // $@114 + S_sub_dhcp_ddns = 577, // sub_dhcp_ddns + S_578_115 = 578, // $@115 + S_dhcp_ddns_params = 579, // dhcp_ddns_params + S_dhcp_ddns_param = 580, // dhcp_ddns_param + S_enable_updates = 581, // enable_updates + S_server_ip = 582, // server_ip + S_583_116 = 583, // $@116 + S_server_port = 584, // server_port + S_sender_ip = 585, // sender_ip + S_586_117 = 586, // $@117 + S_sender_port = 587, // sender_port + S_max_queue_size = 588, // max_queue_size + S_ncr_protocol = 589, // ncr_protocol + S_590_118 = 590, // $@118 + S_ncr_protocol_value = 591, // ncr_protocol_value + S_ncr_format = 592, // ncr_format + S_593_119 = 593, // $@119 + S_dep_qualifying_suffix = 594, // dep_qualifying_suffix + S_595_120 = 595, // $@120 + S_dep_override_no_update = 596, // dep_override_no_update + S_dep_override_client_update = 597, // dep_override_client_update + S_dep_replace_client_name = 598, // dep_replace_client_name + S_599_121 = 599, // $@121 + S_dep_generated_prefix = 600, // dep_generated_prefix + S_601_122 = 601, // $@122 + S_dep_hostname_char_set = 602, // dep_hostname_char_set + S_603_123 = 603, // $@123 + S_dep_hostname_char_replacement = 604, // dep_hostname_char_replacement + S_605_124 = 605, // $@124 + S_config_control = 606, // config_control + S_607_125 = 607, // $@125 + S_sub_config_control = 608, // sub_config_control + S_609_126 = 609, // $@126 + S_config_control_params = 610, // config_control_params + S_config_control_param = 611, // config_control_param + S_config_databases = 612, // config_databases + S_613_127 = 613, // $@127 + S_config_fetch_wait_time = 614, // config_fetch_wait_time + S_loggers = 615, // loggers + S_616_128 = 616, // $@128 + S_loggers_entries = 617, // loggers_entries + S_logger_entry = 618, // logger_entry + S_619_129 = 619, // $@129 + S_logger_params = 620, // logger_params + S_logger_param = 621, // logger_param + S_debuglevel = 622, // debuglevel + S_severity = 623, // severity + S_624_130 = 624, // $@130 + S_output_options_list = 625, // output_options_list + S_626_131 = 626, // $@131 + S_output_options_list_content = 627, // output_options_list_content + S_output_entry = 628, // output_entry + S_629_132 = 629, // $@132 + S_output_params_list = 630, // output_params_list + S_output_params = 631, // output_params + S_output = 632, // output + S_633_133 = 633, // $@133 + S_flush = 634, // flush + S_maxsize = 635, // maxsize + S_maxver = 636, // maxver + S_pattern = 637, // pattern + S_638_134 = 638, // $@134 + S_compatibility = 639, // compatibility + S_640_135 = 640, // $@135 + S_compatibility_params = 641, // compatibility_params + S_compatibility_param = 642, // compatibility_param + S_lenient_option_parsing = 643, // lenient_option_parsing + S_644_ignore_rai_link_selection = 644 // ignore-rai-link-selection }; }; @@ -2519,6 +2528,51 @@ switch (yykind) return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_READ_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_READ_TIMEOUT, std::move (l)); + } +#else + static + symbol_type + make_READ_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_READ_TIMEOUT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_WRITE_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_WRITE_TIMEOUT, std::move (l)); + } +#else + static + symbol_type + make_WRITE_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_WRITE_TIMEOUT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TCP_USER_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_TCP_USER_TIMEOUT, std::move (l)); + } +#else + static + symbol_type + make_TCP_USER_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_USER_TIMEOUT, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5249,8 +5303,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1460, ///< Last index in yytable_. - yynnts_ = 429, ///< Number of nonterminal symbols. + yylast_ = 1475, ///< Last index in yytable_. + yynnts_ = 432, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5316,10 +5370,10 @@ switch (yykind) 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209 + 205, 206, 207, 208, 209, 210, 211, 212 }; // Last valid token kind. - const int code_max = 464; + const int code_max = 467; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5492,7 +5546,7 @@ switch (yykind) #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5496 "dhcp4_parser.h" +#line 5550 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 9c6cd1a97b..bdf9318e1f 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -94,6 +94,9 @@ using namespace std; LFC_INTERVAL "lfc-interval" READONLY "readonly" CONNECT_TIMEOUT "connect-timeout" + READ_TIMEOUT "read-timeout" + WRITE_TIMEOUT "write-timeout" + TCP_USER_TIMEOUT "tcp-user-timeout" MAX_RECONNECT_TRIES "max-reconnect-tries" RECONNECT_WAIT_TIME "reconnect-wait-time" ON_FAIL "on-fail" @@ -1022,6 +1025,9 @@ database_map_param: database_type | lfc_interval | readonly | connect_timeout + | read_timeout + | write_timeout + | tcp_user_timeout | max_reconnect_tries | reconnect_wait_time | on_fail @@ -1112,6 +1118,24 @@ connect_timeout: CONNECT_TIMEOUT COLON INTEGER { ctx.stack_.back()->set("connect-timeout", n); }; +read_timeout: READ_TIMEOUT COLON INTEGER { + ctx.unique("read-timeout", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("read-timeout", n); +}; + +write_timeout: WRITE_TIMEOUT COLON INTEGER { + ctx.unique("write-timeout", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("write-timeout", n); +}; + +tcp_user_timeout: TCP_USER_TIMEOUT COLON INTEGER { + ctx.unique("tcp-user-timeout", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("tcp-user-timeout", n); +}; + max_reconnect_tries: MAX_RECONNECT_TRIES COLON INTEGER { ctx.unique("max-reconnect-tries", ctx.loc2pos(@1)); ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index f6dda5ae2e..47336cc7a3 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -692,8 +692,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 225 -#define YY_END_OF_BUFFER 226 +#define YY_NUM_RULES 228 +#define YY_END_OF_BUFFER 229 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -701,244 +701,248 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[2145] = +static const flex_int16_t yy_accept[2184] = { 0, - 218, 218, 0, 0, 0, 0, 0, 0, 0, 0, - 226, 224, 10, 11, 224, 1, 218, 215, 218, 218, - 224, 217, 216, 224, 224, 224, 224, 224, 211, 212, - 224, 224, 224, 213, 214, 5, 5, 5, 224, 224, - 224, 10, 11, 0, 0, 206, 0, 0, 0, 0, + 221, 221, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 227, 10, 11, 227, 1, 221, 218, 221, 221, + 227, 220, 219, 227, 227, 227, 227, 227, 214, 215, + 227, 227, 227, 216, 217, 5, 5, 5, 227, 227, + 227, 10, 11, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1, 218, 218, - 0, 217, 218, 3, 2, 6, 0, 218, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 9, 0, 207, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 221, + 221, 0, 220, 221, 3, 2, 6, 0, 221, 0, + 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, + 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - 0, 0, 8, 0, 0, 175, 0, 0, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 0, 178, 0, - 0, 0, 0, 0, 0, 0, 208, 210, 0, 0, + 0, 179, 0, 0, 0, 0, 0, 0, 0, 211, + 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 223, 221, 0, 220, 219, - 0, 0, 0, 0, 0, 174, 0, 28, 0, 27, - 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 222, 219, - 0, 0, 0, 0, 29, 0, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, - 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, - 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 115, 0, 62, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, - 0, 179, 0, 55, 0, 59, 0, 0, 0, 0, - 37, 34, 33, 0, 0, 0, 0, 167, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, - 0, 178, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 57, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 141, 0, 0, 0, - 0, 0, 0, 0, 145, 56, 0, 0, 0, 0, - 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 147, 0, 0, 63, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, - 109, 0, 0, 0, 158, 0, 0, 0, 0, 54, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, - 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 173, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 164, 0, 0, - 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 177, 0, - 40, 0, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, - - 0, 0, 0, 103, 0, 0, 0, 0, 0, 171, - 0, 0, 58, 0, 111, 0, 198, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 0, 0, 0, 137, - 138, 0, 0, 0, 0, 0, 0, 0, 0, 107, - 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, - 0, 17, 0, 15, 0, 0, 195, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 188, 0, 0, 197, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 0, 157, - 0, 46, 0, 0, 64, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, - 0, 0, 89, 0, 0, 122, 84, 0, 0, 165, - 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 73, 0, 116, 0, - 0, 140, 0, 0, 0, 204, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 0, 0, 0, 0, 180, 0, 0, 0, 0, + 226, 224, 0, 223, 222, 0, 0, 0, 0, 0, + 177, 0, 28, 0, 27, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, - 0, 0, 0, 150, 51, 0, 0, 0, 193, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 0, 0, 0, 48, 0, 0, - 18, 0, 0, 0, 72, 0, 0, 0, 0, 0, - 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 80, 0, 139, 0, - - 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, - 0, 0, 170, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 0, - 68, 0, 0, 0, 36, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 186, 0, 0, 0, 0, 155, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 0, 0, 0, 0, 0, 69, 0, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, - 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 39, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 225, 222, 0, 0, 0, + 0, 29, 0, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, + 0, 162, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 82, 0, 81, 0, 21, 0, 77, 0, 0, + 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 136, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 113, 0, 0, 0, - 184, 0, 0, 0, 0, 0, 71, 0, 0, 87, - 0, 66, 0, 23, 0, 129, 0, 0, 0, 0, - 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 118, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, + 182, 0, 55, 0, 59, 0, 0, 0, 0, 0, - 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 37, 34, 33, 0, 0, 0, 0, 170, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, + 0, 181, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 57, 0, 0, 32, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 35, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 149, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 0, 0, 97, 0, 0, 0, 0, 190, 0, 0, - 0, 0, 202, 205, 79, 78, 22, 0, 134, 151, - 130, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, - 0, 0, 0, 0, 0, 187, 0, 95, 0, 85, - 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, - 0, 0, 0, 0, 181, 0, 0, 26, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 94, 0, 0, 0, 0, 44, - 42, 0, 0, 0, 99, 0, 0, 135, 0, 91, - 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, - 183, 43, 201, 0 + 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 175, 144, 0, 0, 0, 0, 0, 0, 0, + 148, 56, 0, 0, 0, 0, 0, 70, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, + 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, + 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 60, 0, 112, + 0, 0, 0, 161, 0, 0, 0, 0, 0, 54, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, + 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 176, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, + 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 163, 180, 0, 40, 0, 172, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 20, 0, 0, 0, 106, 0, + 0, 0, 0, 0, 174, 0, 0, 58, 0, 114, + 0, 201, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, + 0, 0, 0, 0, 0, 140, 141, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, + 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 136, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 107, 129, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 17, 0, 15, 0, 0, 198, 197, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, + 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 191, 0, 0, 200, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, + 160, 0, 46, 0, 0, 64, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 125, 66, 87, 0, + 0, 168, 0, 0, 0, 0, 159, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 0, 119, 0, 0, 0, 143, 0, 0, 0, 207, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 0, 0, 0, 0, 183, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 157, 0, 0, 0, 67, 0, 0, 0, 153, + 51, 0, 0, 0, 196, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 0, 0, 0, 48, 0, 0, 18, 0, 0, 0, + + 75, 0, 0, 0, 0, 0, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 83, 0, 142, 0, 0, 0, 65, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 115, 0, 0, 0, 0, 0, 0, 173, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 105, 0, 71, 0, 0, + + 0, 0, 36, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 189, 0, 0, 0, 0, 158, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, + 68, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 13, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, + 85, 0, 84, 0, 21, 0, 80, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 116, 0, 0, 0, 187, + 0, 0, 0, 0, 0, 74, 0, 0, 90, 0, + 69, 0, 23, 0, 132, 0, 0, 0, 0, 0, + + 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, + 0, 101, 0, 0, 0, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 73, 0, 0, 0, 0, 0, 0, 99, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, + 0, 100, 0, 0, 0, 0, 193, 0, 0, 0, + 0, 205, 208, 82, 81, 22, 0, 137, 154, 133, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, + + 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, + 0, 0, 0, 0, 190, 0, 98, 0, 88, 0, + 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, + 0, 0, 0, 184, 0, 0, 26, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 97, 0, 0, 0, 0, 44, 42, + 0, 0, 0, 102, 0, 0, 138, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 186, + 43, 204, 0 } ; static const YY_CHAR yy_ec[256] = @@ -985,276 +989,281 @@ static const YY_CHAR yy_meta[74] = 1, 1, 1 } ; -static const flex_int16_t yy_base[2153] = +static const flex_int16_t yy_base[2192] = { 0, 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, - 2533, 2534, 34, 2529, 145, 0, 207, 2534, 214, 221, - 13, 228, 2534, 2509, 118, 25, 2, 6, 2534, 2534, - 73, 11, 17, 2534, 2534, 2534, 104, 2517, 2470, 0, - 2507, 108, 2524, 24, 256, 2534, 67, 2473, 2493, 84, - 75, 2493, 88, 226, 91, 89, 284, 196, 206, 219, - 208, 235, 241, 60, 277, 2473, 279, 291, 253, 293, - 316, 2456, 282, 317, 356, 325, 2475, 0, 378, 385, - 406, 415, 422, 2534, 0, 2534, 429, 436, 218, 219, - 287, 311, 333, 320, 2534, 2472, 2513, 2534, 342, 2534, + 2574, 2575, 34, 2570, 145, 0, 207, 2575, 214, 221, + 13, 228, 2575, 2550, 118, 25, 2, 6, 2575, 2575, + 73, 11, 17, 2575, 2575, 2575, 104, 2558, 2511, 0, + 2548, 108, 2565, 24, 256, 2575, 67, 2514, 2534, 84, + 75, 2534, 88, 226, 91, 89, 284, 196, 206, 219, + 208, 235, 241, 60, 277, 2514, 279, 291, 253, 293, + 316, 2497, 282, 317, 356, 325, 2516, 305, 0, 378, + 385, 406, 415, 422, 2575, 0, 2575, 429, 436, 218, + 219, 287, 333, 354, 342, 2575, 2513, 2554, 2575, 382, - 412, 340, 2470, 2511, 356, 10, 442, 349, 186, 396, - 312, 348, 2510, 0, 474, 401, 2452, 409, 2451, 2452, - 2458, 415, 2444, 2445, 2450, 436, 2460, 2443, 2452, 2442, - 439, 446, 290, 2445, 2443, 446, 2432, 2490, 455, 2435, - 2488, 2428, 422, 2449, 2449, 2443, 286, 2436, 2434, 2435, - 2427, 2432, 2426, 428, 2437, 403, 2422, 2421, 2435, 464, - 2473, 2420, 453, 2432, 361, 2420, 485, 2421, 467, 2433, - 2430, 2431, 490, 2429, 2464, 2463, 418, 2410, 2414, 448, - 2410, 2402, 2419, 2411, 0, 473, 484, 508, 502, 488, - 512, 2410, 2534, 517, 2405, 2534, 507, 516, 2534, 2459, + 2575, 428, 346, 2511, 2552, 356, 10, 336, 409, 186, + 417, 314, 319, 2551, 0, 489, 416, 2493, 409, 2492, + 2493, 2499, 409, 2485, 2486, 2491, 412, 2501, 2484, 2493, + 2483, 415, 416, 290, 2486, 2484, 425, 2473, 2531, 412, + 2476, 2529, 2469, 440, 2490, 2490, 2484, 440, 2477, 2475, + 2476, 2468, 2473, 2467, 435, 2478, 467, 2463, 2462, 2476, + 462, 2514, 2461, 437, 2473, 446, 2461, 497, 2462, 483, + 2474, 2471, 2472, 472, 2470, 2505, 2504, 486, 464, 2451, + 2455, 483, 2451, 2443, 2460, 2452, 2454, 0, 487, 498, + 484, 505, 500, 503, 2450, 2575, 525, 2445, 2575, 516, - 524, 2458, 526, 2457, 520, 2456, 2534, 2534, 566, 512, - 531, 2415, 2407, 2411, 2412, 2392, 2403, 2405, 2404, 498, - 536, 2442, 2406, 2387, 2384, 2392, 2398, 2386, 2400, 2396, - 2387, 2396, 2396, 2391, 2383, 2385, 2388, 2368, 2372, 2385, - 2387, 2384, 2376, 2366, 2369, 2383, 2534, 2369, 2377, 80, - 2415, 2361, 2370, 2412, 2359, 2369, 2409, 497, 2368, 2407, - 2352, 2354, 2365, 2403, 528, 2407, 2361, 2341, 2356, 546, - 2346, 2352, 514, 2343, 2341, 527, 2341, 2347, 2338, 2337, - 2350, 2343, 2333, 2344, 2348, 2347, 2341, 508, 2348, 2343, - 2335, 2325, 2340, 2335, 2339, 2320, 2336, 2322, 2328, 2335, + 501, 2575, 2499, 535, 2498, 536, 2497, 532, 2496, 2575, + 2575, 578, 513, 542, 2455, 2447, 2451, 2452, 2432, 2443, + 2445, 2444, 509, 517, 2482, 2446, 2427, 2424, 2432, 2438, + 2426, 2440, 2436, 2427, 2436, 2436, 2431, 2423, 2425, 2428, + 2408, 2412, 2425, 2427, 2424, 2416, 2406, 2409, 2423, 2575, + 2409, 2417, 80, 2455, 2401, 2410, 2452, 2399, 2409, 2449, + 555, 2408, 2447, 2392, 2394, 2405, 2443, 547, 2447, 2401, + 2381, 2396, 570, 2386, 2392, 531, 2383, 2381, 529, 2381, + 2387, 2378, 2377, 2390, 2383, 2373, 2384, 2388, 2387, 2381, + 550, 2388, 2383, 2375, 2365, 2380, 2375, 2379, 2360, 2376, - 2317, 506, 2322, 2319, 2318, 2317, 2312, 2326, 2325, 558, - 2324, 2327, 2309, 2317, 559, 2534, 2534, 569, 2534, 2534, - 2304, 192, 2351, 570, 2362, 2534, 563, 2534, 2361, 2534, - 2355, 613, 2534, 2317, 562, 2294, 2313, 2296, 2313, 2349, - 2309, 2299, 2351, 2306, 2309, 2300, 2303, 2289, 2300, 289, - 2339, 2297, 2294, 2295, 588, 2299, 2339, 2274, 2286, 2281, - 2278, 2274, 2276, 2279, 2326, 2283, 2272, 2288, 2322, 2268, - 612, 2281, 2281, 2264, 2265, 2278, 2276, 2274, 2274, 2273, - 2268, 2275, 2270, 2255, 581, 2264, 2267, 2262, 539, 2261, - 2257, 2307, 560, 589, 2534, 2266, 2300, 2250, 2249, 2242, + 2362, 2368, 2375, 2357, 537, 2362, 2359, 2358, 289, 2357, + 2352, 2366, 2365, 582, 2364, 2367, 2349, 2357, 2345, 562, + 2575, 2575, 584, 2575, 2575, 2343, 192, 2390, 586, 2401, + 2575, 579, 2575, 2400, 2575, 2394, 633, 2575, 2356, 538, + 2333, 2352, 2335, 2352, 2388, 2348, 2338, 2390, 2345, 2348, + 2339, 2342, 2328, 2339, 572, 2378, 2336, 2333, 2334, 604, + 2338, 2378, 2313, 2325, 2320, 2317, 2313, 2315, 2318, 2365, + 2322, 2311, 2327, 2361, 2307, 612, 2320, 2320, 2303, 2304, + 2317, 2315, 2313, 2313, 2312, 2307, 2314, 2309, 2294, 576, + 2303, 2306, 2301, 574, 2300, 2296, 2346, 569, 581, 2575, - 2244, 2256, 2247, 2254, 2235, 2252, 2244, 2240, 2245, 604, - 2292, 2245, 595, 2242, 2245, 2245, 2243, 2232, 2232, 2244, - 587, 2219, 2220, 2241, 2232, 2222, 2219, 2233, 597, 2219, - 2231, 2230, 2229, 2224, 2266, 2226, 2225, 2224, 2223, 2215, - 2265, 2224, 2263, 2203, 2261, 2203, 647, 2216, 2534, 2534, - 2215, 618, 2257, 2256, 2534, 2255, 2534, 633, 681, 2214, - 619, 2253, 2247, 2200, 2202, 2204, 2191, 2188, 2534, 2193, - 2186, 2198, 2201, 2188, 2187, 2534, 2197, 625, 2188, 2185, - 2197, 607, 2182, 2184, 2534, 2229, 2189, 2174, 2176, 2187, - 2185, 2185, 2179, 664, 2186, 2174, 2167, 2218, 2534, 2165, + 2305, 2339, 2289, 2288, 2281, 2283, 2295, 2286, 2293, 2274, + 2291, 2283, 2279, 2284, 611, 2331, 2284, 612, 2281, 2284, + 2284, 2282, 573, 2272, 2284, 604, 2259, 2260, 2281, 2272, + 2262, 2259, 2273, 614, 2259, 2271, 2270, 2269, 2264, 2306, + 2266, 2265, 2264, 2263, 2246, 2254, 2304, 2263, 2302, 2242, + 2300, 2242, 634, 2255, 2253, 2575, 2575, 2253, 629, 2295, + 2294, 2575, 2293, 2575, 638, 686, 2252, 641, 2291, 2285, + 2238, 2240, 2242, 2229, 2226, 2575, 2231, 2224, 2236, 2239, + 2226, 2225, 2575, 2235, 626, 2226, 2223, 2235, 625, 2220, + 2222, 2575, 2267, 2227, 2212, 2214, 2225, 2223, 2223, 2217, - 2181, 2215, 2219, 2175, 2169, 2171, 2172, 2156, 2165, 2207, - 2158, 2157, 2152, 2151, 2153, 2149, 2145, 575, 2164, 2138, - 2145, 2150, 2143, 2159, 2193, 2197, 2534, 2142, 2138, 2194, - 2145, 2144, 2138, 2145, 2130, 2140, 2128, 2142, 2142, 2130, - 2126, 2131, 2127, 2122, 2534, 2179, 2534, 2121, 2120, 2113, - 2130, 2169, 2168, 2113, 2118, 2127, 2121, 2115, 2124, 667, - 2161, 2123, 2107, 2102, 2098, 2104, 623, 2118, 2111, 2115, - 2098, 2156, 2097, 2097, 2148, 2093, 2094, 2093, 2109, 2534, - 2105, 2534, 2142, 2534, 2093, 2534, 2103, 2139, 2099, 2142, - 2534, 2534, 2534, 624, 637, 2082, 668, 2534, 645, 2100, + 685, 2224, 2212, 2205, 2256, 2575, 2203, 2219, 2253, 2257, + 2213, 2207, 2209, 2210, 2194, 2203, 2245, 2196, 2195, 2190, + 2189, 2191, 2187, 2183, 635, 2202, 2176, 2183, 2188, 2181, + 2197, 2231, 2235, 2575, 2180, 2176, 2232, 2183, 2182, 2176, + 2183, 2168, 2178, 2166, 2180, 2180, 2168, 2164, 2169, 2165, + 2160, 2575, 2217, 2575, 2159, 2158, 2151, 2168, 2207, 2206, + 2151, 2150, 2155, 2164, 2158, 2152, 2161, 709, 2198, 2160, + 2144, 2139, 2135, 2141, 344, 2155, 2148, 2152, 2135, 2193, + 2134, 2134, 2185, 2130, 2131, 2130, 2128, 2145, 2575, 2141, + 2575, 2178, 2575, 2129, 2575, 2139, 2175, 2174, 2134, 2177, - 2080, 2090, 2132, 2131, 2076, 2086, 2128, 2073, 2080, 2073, - 2081, 2084, 2066, 2066, 2081, 2080, 629, 2079, 2078, 2062, - 2077, 2059, 2106, 2073, 2070, 2110, 2054, 2056, 2068, 2068, - 2066, 2066, 2534, 2051, 2048, 2106, 2061, 2053, 2059, 2050, - 2058, 2534, 2043, 2054, 2058, 2040, 2052, 2044, 632, 2035, - 2034, 2028, 2033, 2030, 2045, 2044, 2045, 2024, 2034, 2040, - 2083, 2038, 2037, 2029, 2020, 2534, 2021, 2023, 2534, 2025, - 2030, 2069, 2068, 16, 2029, 2066, 2011, 2064, 2011, 2014, - 2012, 2014, 2005, 2534, 2019, 2005, 705, 1997, 2001, 2017, - 2014, 2006, 2051, 2003, 2010, 2048, 2534, 1994, 1992, 2006, + 2575, 2575, 2575, 539, 659, 2117, 710, 2575, 659, 2135, + 2115, 2125, 2167, 2166, 2111, 2121, 2163, 2108, 2115, 2108, + 2116, 2119, 2101, 2101, 2116, 2115, 591, 2114, 2113, 2097, + 2112, 2094, 2141, 2108, 2105, 2145, 2089, 2091, 2103, 2103, + 2101, 2101, 2575, 2086, 2083, 2141, 2096, 2088, 2094, 2085, + 2093, 2575, 2078, 2089, 2093, 2075, 2087, 2079, 605, 2070, + 2069, 2063, 2068, 2065, 2080, 2079, 2080, 2059, 2069, 2075, + 2118, 2073, 2072, 2064, 2055, 2575, 2056, 2058, 2575, 2060, + 2065, 2104, 2103, 16, 2064, 2101, 2046, 2099, 2046, 2049, + 2047, 2049, 2040, 2575, 2054, 2040, 712, 2032, 2036, 2052, - 2005, 2008, 2042, 2041, 1988, 2039, 1999, 1983, 2036, 2035, - 2534, 1980, 1994, 1993, 695, 1994, 1993, 1975, 2028, 1992, - 1987, 1976, 1974, 2534, 2534, 675, 675, 81, 305, 410, - 549, 539, 563, 609, 657, 667, 711, 671, 671, 710, - 712, 666, 663, 674, 684, 689, 675, 678, 689, 689, - 674, 731, 693, 685, 695, 735, 698, 691, 691, 693, - 697, 703, 743, 707, 752, 709, 710, 2534, 713, 708, - 699, 714, 719, 716, 713, 720, 719, 707, 721, 719, - 727, 763, 725, 770, 771, 715, 728, 714, 724, 771, - 729, 779, 2534, 780, 736, 734, 736, 732, 726, 786, + 2049, 2044, 2040, 2085, 2037, 2044, 2082, 2575, 2028, 2026, + 2040, 2039, 2042, 2076, 2075, 2022, 2073, 2033, 2017, 2070, + 2069, 2575, 2014, 2028, 2027, 701, 2024, 93, 348, 351, + 479, 452, 619, 613, 641, 641, 2575, 2575, 688, 681, + 666, 663, 682, 676, 665, 668, 682, 683, 693, 736, + 696, 696, 735, 737, 691, 687, 692, 702, 708, 694, + 697, 708, 708, 692, 749, 711, 704, 714, 754, 717, + 710, 710, 712, 716, 722, 762, 725, 769, 727, 728, + 2575, 731, 726, 717, 732, 737, 734, 731, 738, 737, + 725, 739, 737, 745, 781, 743, 788, 789, 733, 746, - 782, 745, 734, 2534, 736, 747, 736, 749, 739, 752, - 796, 755, 740, 799, 742, 757, 2534, 751, 745, 756, - 741, 752, 765, 744, 750, 805, 769, 753, 753, 766, - 810, 811, 758, 776, 771, 776, 773, 817, 759, 771, - 772, 779, 770, 767, 2534, 833, 790, 791, 792, 782, - 785, 796, 787, 793, 837, 813, 787, 801, 783, 790, - 804, 849, 806, 803, 801, 2534, 805, 800, 815, 812, - 798, 800, 819, 816, 817, 805, 812, 813, 822, 826, - 862, 824, 814, 827, 814, 813, 819, 875, 822, 817, - 818, 824, 840, 823, 877, 832, 879, 2534, 843, 843, + 732, 742, 789, 747, 797, 2575, 798, 754, 752, 754, + 750, 744, 804, 800, 763, 752, 2575, 754, 765, 754, + 767, 757, 770, 814, 773, 758, 817, 760, 775, 2575, + 769, 763, 774, 759, 770, 783, 774, 763, 769, 824, + 788, 772, 772, 785, 829, 830, 777, 795, 790, 795, + 792, 836, 778, 790, 791, 798, 789, 786, 2575, 852, + 809, 810, 798, 812, 802, 805, 816, 807, 813, 814, + 858, 834, 808, 822, 804, 811, 825, 870, 827, 824, + 822, 2575, 826, 821, 836, 833, 819, 821, 840, 837, + 838, 826, 833, 834, 843, 847, 883, 845, 835, 848, - 836, 847, 845, 890, 832, 834, 849, 850, 838, 836, - 898, 855, 841, 847, 845, 2534, 2534, 861, 860, 861, - 866, 854, 864, 866, 2534, 2534, 866, 868, 855, 873, - 860, 2534, 858, 876, 863, 863, 914, 861, 865, 883, - 924, 2534, 885, 926, 2534, 871, 885, 885, 930, 878, - 877, 881, 875, 935, 888, 878, 879, 875, 885, 889, - 900, 901, 896, 898, 891, 893, 889, 906, 896, 911, - 894, 953, 910, 915, 892, 915, 901, 900, 2534, 907, - 909, 958, 910, 923, 961, 908, 923, 941, 949, 971, - 919, 968, 930, 970, 2534, 976, 919, 938, 928, 927, + 835, 834, 840, 896, 843, 838, 839, 845, 861, 844, + 898, 853, 900, 2575, 864, 864, 857, 868, 866, 911, + 853, 855, 870, 871, 859, 857, 919, 876, 862, 868, + 866, 2575, 2575, 882, 881, 882, 887, 875, 885, 887, + 2575, 2575, 887, 889, 876, 894, 881, 2575, 879, 897, + 884, 884, 935, 882, 886, 904, 945, 2575, 906, 947, + 2575, 892, 906, 906, 951, 899, 898, 902, 896, 912, + 957, 910, 900, 901, 897, 907, 911, 922, 923, 918, + 920, 913, 915, 911, 928, 918, 933, 916, 975, 932, + 937, 914, 937, 923, 922, 2575, 929, 931, 980, 981, - 922, 923, 935, 930, 926, 944, 930, 931, 941, 950, - 986, 933, 952, 944, 940, 993, 999, 956, 947, 2534, - 961, 952, 960, 962, 947, 963, 953, 965, 962, 960, - 1007, 973, 957, 958, 2534, 974, 977, 960, 962, 1020, - 963, 982, 2534, 981, 984, 971, 966, 984, 972, 1025, - 983, 979, 976, 1029, 978, 1031, 993, 979, 997, 996, - 982, 997, 989, 985, 1003, 1002, 989, 1006, 2534, 990, - 2534, 999, 1046, 999, 2534, 1007, 1010, 1003, 1057, 2534, - 1006, 1011, 1055, 1006, 1007, 1019, 1013, 1014, 1012, 1023, - 1068, 1012, 1013, 1071, 1072, 1016, 1028, 1021, 2534, 1017, + 933, 946, 984, 931, 946, 940, 965, 973, 995, 943, + 992, 954, 994, 2575, 1000, 943, 962, 952, 951, 946, + 947, 959, 954, 950, 968, 954, 955, 965, 974, 1010, + 957, 976, 968, 964, 1017, 1023, 980, 971, 2575, 985, + 976, 984, 986, 971, 987, 977, 989, 986, 984, 1031, + 997, 981, 982, 2575, 998, 1001, 984, 986, 1044, 987, + 1006, 2575, 1005, 1008, 995, 990, 1008, 996, 1049, 1007, + 1003, 1000, 1053, 1002, 1055, 1017, 1003, 1021, 1020, 1006, + 1021, 1013, 1009, 1027, 1026, 1013, 1030, 2575, 1014, 2575, + 1023, 1070, 1023, 2575, 1031, 1034, 1027, 1081, 1028, 2575, - 1025, 1024, 1075, 1017, 1038, 1024, 1025, 1026, 1032, 1040, - 1031, 1045, 1046, 1062, 1067, 2534, 1049, 1054, 1037, 1037, - 2534, 1038, 1040, 1051, 1041, 1061, 1060, 1051, 1062, 1105, - 1047, 1067, 1060, 1064, 1068, 1051, 1068, 1059, 1114, 1061, - 1065, 2534, 1112, 1061, 1081, 1063, 1063, 1084, 1081, 1121, - 1070, 1088, 1076, 1090, 1076, 1084, 1093, 1073, 1088, 1095, - 1137, 1138, 2534, 1091, 1140, 1141, 1083, 1093, 1103, 1087, - 1107, 1090, 1092, 1092, 1099, 1108, 1096, 1103, 1098, 1105, - 1117, 1158, 1105, 1104, 1121, 1162, 1112, 1116, 1114, 1112, - 1107, 1168, 1119, 1116, 1171, 1121, 1173, 1169, 1175, 1128, + 1031, 1036, 1080, 1031, 1032, 1044, 1038, 1039, 1037, 1048, + 1093, 1037, 1038, 1096, 1097, 1041, 1053, 1046, 2575, 1042, + 1051, 1049, 1100, 1042, 1063, 1049, 1050, 1051, 1052, 1058, + 1066, 1057, 1071, 1072, 1073, 1089, 1094, 2575, 1076, 1081, + 1064, 1064, 2575, 1065, 1067, 1078, 1068, 1088, 1087, 1078, + 1089, 1132, 1074, 1094, 1087, 1091, 1095, 1078, 1095, 1086, + 1141, 1088, 1092, 2575, 1139, 1088, 1108, 1090, 1090, 1111, + 1108, 1148, 1097, 1115, 1103, 1117, 1103, 1111, 1120, 1100, + 1115, 1122, 1164, 1165, 2575, 1118, 1167, 1168, 1110, 1120, + 1130, 1114, 1134, 1117, 1119, 1119, 1126, 1135, 1123, 1130, - 2534, 1133, 1126, 1117, 1136, 1130, 1125, 1135, 1136, 1133, - 1145, 2534, 1129, 1125, 2534, 2534, 1131, 1191, 1150, 1131, - 1150, 1151, 1153, 1192, 1145, 1199, 1200, 1157, 1151, 1149, - 1160, 1142, 1147, 1186, 1177, 1209, 1164, 1164, 1168, 1213, - 1156, 1156, 1159, 1176, 1171, 1175, 1170, 2534, 1167, 1163, - 1180, 1160, 1181, 1171, 1222, 1175, 2534, 1188, 1187, 1190, - 1174, 1183, 1187, 1193, 1179, 1239, 1192, 1197, 1184, 1198, - 1196, 1188, 1194, 1190, 1208, 1209, 1210, 2534, 2534, 1208, - 2534, 1210, 2534, 1195, 1206, 1197, 1216, 1209, 1207, 1259, - 1216, 1213, 1257, 1221, 1210, 1217, 1222, 1219, 1225, 2534, + 1125, 1132, 1144, 1185, 1132, 1131, 1148, 1189, 1139, 1143, + 1141, 1139, 1134, 1195, 1146, 1143, 1198, 1148, 1200, 1196, + 1202, 1155, 2575, 1144, 1161, 1154, 1145, 1164, 1158, 1153, + 1163, 1165, 1161, 1173, 2575, 1157, 1153, 2575, 2575, 1159, + 1219, 1178, 1159, 1178, 1179, 1181, 1220, 1173, 1227, 1228, + 1181, 1186, 1180, 1178, 1189, 1171, 1176, 1182, 1216, 1207, + 1239, 1194, 1194, 1198, 1243, 1186, 1186, 1189, 1206, 1201, + 1205, 1200, 2575, 1197, 1193, 1210, 1190, 1211, 1201, 1252, + 1205, 2575, 1218, 1217, 1220, 1204, 1213, 1217, 1223, 1209, + 1269, 1222, 1227, 1214, 1228, 1226, 1218, 1224, 1220, 1238, - 1218, 1210, 1271, 2534, 1272, 1219, 1226, 1270, 1232, 2534, - 1233, 1221, 2534, 1231, 2534, 1222, 2534, 1222, 1225, 1239, - 1244, 1227, 1238, 1287, 1244, 1245, 1285, 1241, 1292, 1288, - 1294, 2534, 1245, 1242, 1297, 1298, 1255, 1256, 1258, 2534, - 2534, 1244, 1298, 1247, 1263, 1247, 1259, 1278, 1309, 2534, - 1266, 1257, 1268, 2534, 1313, 1250, 1261, 1276, 1312, 1264, - 1275, 1263, 1277, 1278, 1275, 1319, 1282, 1272, 1282, 1288, - 1276, 1276, 1331, 1327, 1328, 1334, 1291, 2534, 1294, 1293, - 1295, 1286, 1289, 1298, 1300, 1297, 1287, 1290, 1290, 1349, - 1296, 1351, 1298, 1353, 1296, 1301, 1356, 2534, 1315, 1294, + 1239, 1240, 2575, 2575, 1238, 2575, 1240, 2575, 1225, 1236, + 1227, 1246, 1239, 1237, 1289, 1246, 1243, 1287, 1251, 1240, + 1247, 1252, 1249, 1255, 2575, 1248, 1240, 1301, 2575, 1302, + 1249, 1256, 1300, 1262, 2575, 1263, 1251, 2575, 1261, 2575, + 1252, 2575, 1252, 1253, 1256, 1270, 1275, 1258, 1269, 1318, + 1275, 1276, 1316, 1272, 1323, 1319, 1325, 2575, 1276, 1273, + 1328, 1329, 1286, 1287, 1289, 2575, 2575, 1281, 1276, 1330, + 1279, 1295, 1279, 1291, 1280, 1311, 1342, 2575, 1299, 1290, + 1301, 2575, 1346, 1283, 1294, 1309, 1345, 1297, 1308, 1296, + 1310, 1311, 1308, 1352, 1315, 1305, 1315, 1321, 1309, 1309, - 1309, 1302, 1305, 1318, 1321, 1320, 1318, 1367, 1321, 2534, - 2534, 1317, 1327, 1312, 1368, 1315, 1375, 1331, 1317, 1378, - 1379, 1323, 1333, 1382, 1339, 2534, 1331, 1332, 1334, 1387, - 1330, 2534, 1347, 2534, 1346, 1336, 2534, 2534, 1349, 1332, - 1352, 1338, 1340, 1399, 1349, 1401, 1350, 1382, 2534, 1404, - 1354, 1401, 2534, 1349, 1408, 1358, 1352, 1349, 1352, 1354, - 1350, 1372, 1411, 1364, 1376, 1379, 1367, 1370, 1363, 1423, - 1371, 2534, 1368, 1368, 2534, 1370, 1429, 1382, 1373, 1427, - 1389, 1389, 1392, 1392, 1389, 1433, 1395, 2534, 1387, 2534, - 1388, 2534, 1398, 1390, 2534, 1439, 1401, 1402, 1399, 1443, + 1364, 1360, 1361, 1367, 1324, 2575, 1327, 1326, 1328, 1319, + 1323, 1332, 1333, 1330, 1320, 1323, 1323, 1382, 1329, 1384, + 1331, 1386, 1329, 1334, 1389, 2575, 1348, 1327, 1342, 1335, + 1338, 1351, 1354, 1353, 1351, 1400, 1354, 2575, 2575, 1350, + 1360, 1345, 1401, 1348, 1408, 1364, 1350, 1411, 1412, 1413, + 1357, 1367, 1416, 1373, 2575, 1365, 1366, 1368, 1421, 1364, + 2575, 1381, 2575, 1380, 1370, 2575, 2575, 1383, 1366, 1386, + 1387, 1373, 1375, 1434, 1384, 1436, 1385, 1379, 1418, 2575, + 1440, 1390, 1437, 2575, 1385, 1444, 1394, 1388, 1385, 1388, + 1390, 1386, 1408, 1447, 1400, 1412, 1415, 1403, 1406, 1399, - 1391, 1406, 1446, 1408, 1400, 2534, 1397, 1397, 1403, 1402, - 1400, 1454, 2534, 1416, 1416, 2534, 2534, 1457, 1404, 2534, - 1421, 1406, 1407, 1413, 2534, 1422, 1469, 1417, 1409, 1415, - 1425, 1437, 1430, 1436, 1480, 1433, 2534, 1442, 2534, 1439, - 1458, 2534, 1442, 1427, 1487, 2534, 1488, 1445, 1450, 1432, - 1492, 1493, 1489, 1453, 1450, 1446, 1439, 1494, 1452, 1453, - 2534, 1443, 1459, 1457, 1505, 2534, 1444, 1503, 1467, 1467, - 1464, 1508, 1456, 1461, 1459, 1518, 1474, 1462, 1521, 1517, - 1472, 1524, 1485, 1474, 1468, 1528, 1470, 1479, 1472, 1486, - 1489, 1534, 1476, 1493, 1489, 1487, 1480, 1495, 1479, 1537, + 1459, 1407, 2575, 1404, 1404, 2575, 1406, 1465, 1418, 1409, + 1463, 1425, 1425, 1428, 1428, 1425, 1469, 1431, 2575, 1423, + 2575, 1424, 2575, 1434, 1426, 2575, 1475, 1437, 1438, 1435, + 1479, 1427, 1442, 1482, 1444, 1436, 2575, 1433, 1433, 1439, + 1438, 1436, 1490, 2575, 1452, 1452, 2575, 2575, 2575, 1493, + 1440, 2575, 1457, 1442, 1443, 1449, 2575, 1458, 1505, 1453, + 1445, 1451, 1461, 1473, 1466, 1472, 1462, 1517, 1470, 2575, + 1479, 2575, 1476, 1521, 1496, 2575, 1480, 1465, 1525, 2575, + 1526, 1483, 1488, 1470, 1530, 1531, 1527, 1491, 1488, 1484, + 1477, 1532, 1490, 1491, 2575, 1481, 1497, 1495, 1543, 2575, - 1538, 1539, 1540, 1503, 1496, 1495, 1495, 1490, 2534, 1498, - 1504, 1495, 1496, 1495, 1497, 1552, 2534, 1493, 1511, 1560, - 1530, 1562, 1515, 2534, 2534, 1506, 1517, 1566, 2534, 2534, - 1512, 1517, 1515, 1565, 1523, 1528, 1516, 1532, 1521, 1520, - 1520, 1522, 2534, 1580, 1526, 1535, 1578, 1521, 1527, 1587, - 1535, 1546, 1547, 2534, 1592, 1545, 1589, 2534, 1540, 1548, - 2534, 1539, 1554, 1542, 2534, 1552, 1553, 1554, 1603, 1561, - 2534, 1600, 1566, 1542, 1560, 1561, 1562, 1571, 1553, 1559, - 1561, 1573, 1572, 1563, 1613, 1565, 1561, 1562, 1563, 1618, - 1624, 1574, 1626, 1579, 1584, 1577, 2534, 1630, 2534, 1579, + 1482, 1541, 1505, 1505, 1502, 1546, 1494, 1499, 1497, 1556, + 1512, 1500, 1559, 1555, 1510, 1562, 1523, 1512, 1506, 1566, + 1508, 1517, 1510, 1524, 1527, 1572, 1514, 1531, 1527, 1525, + 1518, 1533, 1517, 1575, 1576, 1577, 1578, 1541, 1534, 1533, + 1533, 1528, 2575, 1536, 1542, 1533, 1534, 1533, 1535, 1590, + 1536, 2575, 1532, 1550, 1599, 2575, 1569, 1601, 1554, 2575, + 2575, 1545, 1556, 1605, 2575, 2575, 1551, 1556, 1554, 1604, + 1562, 1567, 1555, 1571, 1561, 1559, 1559, 1561, 2575, 1619, + 1565, 1574, 1617, 1560, 1566, 1626, 1574, 1585, 1586, 2575, + 1631, 1584, 1628, 2575, 1579, 1587, 2575, 1578, 1593, 1581, - 1632, 1574, 2534, 1577, 1587, 1631, 1579, 1594, 1581, 1596, - 1582, 1589, 1589, 1600, 1601, 2534, 1595, 1590, 1604, 1590, - 1650, 1603, 2534, 1647, 1598, 1595, 2534, 1609, 1596, 1617, - 1613, 1615, 1660, 1613, 1610, 1618, 1612, 2534, 1665, 1606, - 1608, 1624, 1617, 1618, 1608, 1624, 1625, 1619, 1635, 1625, - 1677, 1637, 1621, 1630, 1676, 1634, 1683, 1632, 2534, 1626, - 2534, 1633, 1687, 1683, 2534, 1646, 2534, 1686, 1648, 1649, - 1634, 1635, 1643, 1697, 1645, 1694, 1695, 1650, 1645, 1663, - 1660, 1651, 1664, 1659, 2534, 1656, 1661, 1659, 1711, 1712, - 1660, 1657, 1671, 1658, 2534, 1673, 1674, 1675, 1676, 2534, + 2575, 1591, 1592, 1593, 1642, 1600, 2575, 1639, 1605, 1581, + 1599, 1600, 1601, 1610, 1592, 1598, 1600, 1612, 1611, 1602, + 1652, 1604, 1600, 1601, 1602, 1657, 1663, 1613, 1665, 1618, + 1608, 1624, 1617, 2575, 1670, 2575, 1619, 1672, 1614, 2575, + 1617, 1627, 1671, 1619, 1634, 1621, 1636, 1622, 1629, 1629, + 1640, 1641, 2575, 1635, 1630, 1644, 1630, 1690, 1643, 2575, + 1687, 1638, 1635, 2575, 1649, 1636, 1657, 1653, 1655, 1700, + 1653, 1650, 1658, 1652, 2575, 1705, 1646, 1648, 1664, 1657, + 1658, 1648, 1664, 1665, 1659, 1675, 1665, 1717, 1677, 1661, + 1670, 1716, 1674, 1723, 1672, 2575, 1666, 2575, 1673, 1727, - 1666, 1678, 1723, 1676, 1681, 1726, 1668, 1676, 1670, 1678, - 1691, 2534, 1692, 1673, 1674, 1681, 1683, 2534, 1697, 1694, - 1734, 1695, 2534, 1699, 1684, 1684, 1699, 1692, 1691, 1702, - 1689, 2534, 1705, 1693, 1696, 1752, 1692, 1711, 1702, 1714, - 1707, 1706, 1715, 1717, 1721, 2534, 2534, 1714, 1705, 1705, - 1765, 1708, 1767, 1709, 1769, 1727, 1771, 2534, 1713, 1773, - 2534, 1769, 1731, 1728, 1733, 1720, 1728, 1739, 1726, 1737, - 1723, 1721, 1729, 1728, 1733, 1725, 1790, 1743, 1744, 1734, - 1751, 1750, 1791, 1735, 1754, 1755, 2534, 1760, 1753, 1802, - 1759, 1746, 1761, 1806, 1763, 1766, 1753, 1762, 1763, 2534, + 1728, 1725, 2575, 1687, 2575, 1727, 1689, 1690, 1675, 1676, + 1684, 1738, 1686, 1735, 1736, 1691, 1686, 1704, 1701, 1692, + 1705, 1700, 2575, 1697, 1702, 1700, 1752, 1753, 1701, 1698, + 1712, 1699, 2575, 1714, 1715, 1716, 1717, 2575, 1707, 1719, + 1764, 1717, 1722, 1767, 1709, 1717, 1711, 1719, 1732, 2575, + 1733, 1714, 1715, 1722, 1724, 2575, 1738, 1735, 1775, 1736, + 2575, 2575, 1740, 1725, 1725, 1740, 1733, 1732, 1743, 1730, + 2575, 1746, 1734, 1737, 1793, 1733, 1752, 1743, 1755, 1748, + 1747, 1756, 1758, 1762, 2575, 2575, 1755, 1746, 1746, 1806, + 1749, 1808, 1750, 1810, 1768, 1812, 2575, 1754, 1814, 2575, - 1812, 2534, 1765, 2534, 1774, 2534, 1815, 2534, 1757, 1817, - 1764, 1819, 1762, 1821, 1769, 1818, 1819, 1781, 1821, 1767, - 1771, 1789, 1830, 1789, 2534, 1780, 1770, 1829, 1795, 1788, - 1784, 1838, 1781, 1783, 1782, 1789, 2534, 1785, 1844, 1788, - 2534, 1793, 1803, 1788, 1796, 1798, 2534, 1799, 1793, 2534, - 1805, 2534, 1801, 2534, 1811, 2534, 1812, 1812, 1803, 1859, - 1803, 1813, 1798, 1811, 2534, 1813, 1821, 1866, 1807, 1809, - 1806, 1830, 2534, 1817, 1824, 1825, 1828, 1817, 2534, 1871, - 1818, 1826, 1835, 1834, 1837, 1838, 1839, 1832, 1827, 1828, - 1828, 1840, 1835, 2534, 1846, 1834, 1887, 1838, 1850, 1895, + 1810, 1772, 1769, 1774, 1761, 1769, 1780, 1767, 1778, 1764, + 1762, 1770, 1769, 1774, 1766, 1831, 1784, 1785, 1775, 1792, + 1791, 1832, 1776, 1795, 1796, 2575, 1801, 1794, 1843, 1800, + 1787, 1802, 1847, 1804, 1807, 1794, 1803, 1804, 2575, 1853, + 2575, 1806, 2575, 1815, 2575, 1856, 2575, 1798, 1858, 1805, + 1860, 1803, 1862, 1810, 1859, 1860, 1822, 1862, 1808, 1812, + 1830, 1871, 1830, 2575, 1821, 1811, 1870, 1836, 1829, 1825, + 1879, 1822, 1824, 1823, 1830, 2575, 1826, 1885, 1829, 2575, + 1834, 1844, 1829, 1837, 1839, 2575, 1840, 1834, 2575, 1846, + 2575, 1842, 2575, 1852, 2575, 1853, 1853, 1844, 1900, 1844, - 2534, 1841, 1853, 1898, 1847, 1849, 1847, 1848, 1903, 1856, - 1843, 1858, 1863, 1908, 1909, 1910, 1911, 1912, 1869, 1914, - 1915, 1916, 1860, 1864, 1860, 1876, 1859, 1871, 1865, 2534, - 1881, 1925, 2534, 1882, 1867, 1885, 1876, 2534, 1877, 1891, - 1887, 1880, 2534, 2534, 2534, 2534, 2534, 1934, 2534, 2534, - 2534, 1877, 1885, 1880, 1933, 1899, 1896, 1941, 1902, 2534, - 1943, 1885, 1945, 1888, 1901, 1900, 1901, 1891, 2534, 1892, - 1952, 1905, 1914, 1907, 1951, 2534, 1898, 2534, 1910, 2534, - 1954, 1960, 1902, 1918, 1963, 1964, 2534, 1921, 1915, 1908, - 1928, 1925, 1917, 1921, 2534, 1968, 1917, 2534, 2534, 1917, + 1854, 1839, 1852, 2575, 1854, 1862, 1907, 1848, 1850, 1847, + 1871, 2575, 1858, 1865, 1866, 1869, 1858, 2575, 1912, 1859, + 1867, 1876, 1875, 1878, 1879, 1880, 1873, 1868, 1869, 1869, + 1881, 1876, 2575, 1887, 1875, 1928, 1879, 1891, 1936, 2575, + 1882, 1894, 1939, 1888, 1890, 1888, 1889, 1944, 1897, 1884, + 1899, 1904, 1949, 1950, 1951, 1952, 1953, 1910, 1955, 1956, + 1957, 1901, 1905, 1901, 1917, 1900, 1912, 1906, 2575, 1922, + 1966, 2575, 1923, 1908, 1926, 1917, 2575, 1918, 1932, 1928, + 1921, 2575, 2575, 2575, 2575, 2575, 1975, 2575, 2575, 2575, + 1918, 1926, 1921, 1974, 1940, 1937, 1982, 1943, 2575, 1984, + + 1926, 1986, 1929, 1942, 1941, 1942, 1932, 2575, 1933, 1993, + 1946, 1955, 1948, 1992, 2575, 1939, 2575, 1951, 2575, 1995, + 2001, 1943, 1959, 2004, 2005, 2575, 1962, 1956, 1949, 1969, + 1966, 1958, 1962, 2575, 2009, 1958, 2575, 2575, 1958, 1966, + 2013, 1973, 1966, 2021, 1969, 1969, 1965, 1967, 2026, 2027, + 1969, 1985, 1970, 2575, 2031, 1978, 1985, 2034, 2575, 2575, + 1987, 2036, 1984, 2575, 1988, 1987, 2575, 1988, 2575, 1982, + 1982, 1999, 2000, 2045, 1991, 2047, 2048, 2575, 2049, 2575, + 2575, 2575, 2575, 2055, 2058, 2061, 2062, 2064, 2067, 2070, + 2073 - 1925, 1972, 1932, 1925, 1980, 1928, 1928, 1924, 1926, 1985, - 1986, 1928, 1944, 1929, 2534, 1990, 1937, 1944, 1993, 2534, - 2534, 1946, 1995, 1943, 2534, 1947, 1946, 2534, 1947, 2534, - 1941, 1941, 1958, 1959, 2004, 1950, 2006, 2007, 2534, 2008, - 2534, 2534, 2534, 2534, 2014, 2017, 2020, 2021, 2023, 2026, - 2029, 2032 } ; -static const flex_int16_t yy_def[2153] = +static const flex_int16_t yy_def[2192] = { 0, - 2145, 2145, 2146, 2146, 2145, 2145, 2145, 2145, 2145, 2145, - 2144, 2144, 2144, 2144, 2144, 2147, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2148, - 2144, 2144, 2144, 2149, 15, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2150, 45, 45, 45, + 2184, 2184, 2185, 2185, 2184, 2184, 2184, 2184, 2184, 2184, + 2183, 2183, 2183, 2183, 2183, 2186, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2187, + 2183, 2183, 2183, 2188, 15, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2147, 2144, 2144, - 2144, 2144, 2144, 2144, 2151, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2148, 2144, 2149, 2144, + 45, 45, 45, 45, 45, 45, 45, 45, 2186, 2183, + 2183, 2183, 2183, 2183, 2183, 2190, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2187, 2183, 2188, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2152, 45, 2150, 45, 45, 45, 45, 45, + 2183, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2191, 45, 2189, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2151, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 45, 45, 2144, 45, 45, 2144, 45, + 45, 45, 45, 45, 45, 45, 45, 2190, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 45, 45, 2183, 45, - 45, 45, 45, 45, 45, 2152, 2144, 2144, 115, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 2191, 2183, + 2183, 116, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, @@ -1262,229 +1271,234 @@ static const flex_int16_t yy_def[2153] = 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 45, 45, 45, 45, 2144, 45, 2144, 45, 2144, - 45, 115, 2144, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 45, 45, 45, 45, + 2183, 45, 2183, 45, 2183, 45, 116, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 2144, - 2144, 45, 45, 45, 2144, 45, 2144, 45, 115, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 45, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 2183, 2183, 45, 45, + 45, 2183, 45, 2183, 45, 116, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 2183, 45, 2183, 45, 2183, 45, 45, 45, 2183, 45, + + 2183, 2183, 2183, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2183, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2183, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 2183, 45, 45, 45, 45, 45, 45, 45, + 2183, 2183, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, + 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 2183, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 2183, + + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 2144, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 45, 45, 2183, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - 45, 2144, 45, 2144, 45, 2144, 45, 45, 2144, 45, - 2144, 2144, 2144, 45, 45, 45, 45, 2144, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 2183, 2183, 45, 2183, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 45, 45, 45, 2183, 45, + 45, 45, 45, 45, 2183, 45, 45, 2183, 45, 2183, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 2183, 2183, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, + 2183, 45, 2183, 45, 45, 2183, 2183, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 2183, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 2183, 45, 2183, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2183, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 2183, 2183, 2183, 45, + 45, 2183, 45, 45, 45, 45, 2183, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, + 45, 2183, 45, 45, 45, 2183, 45, 45, 45, 2183, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 45, 45, 2144, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 2183, 45, 45, 45, 2183, + 2183, 45, 45, 45, 2183, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, + 45, 45, 45, 2183, 45, 45, 2183, 45, 45, 45, + + 2183, 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2144, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 2183, 45, 45, 45, 2183, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 2183, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 2183, 45, 45, + + 45, 45, 2183, 45, 2183, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 2183, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 2183, 2183, 45, 45, 45, 45, 45, 45, 45, 45, + 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 2183, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 2183, 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2144, 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 2183, 45, 2183, 45, 2183, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 2183, + 45, 45, 45, 45, 45, 2183, 45, 45, 2183, 45, + 2183, 45, 2183, 45, 2183, 45, 45, 45, 45, 45, - 45, 45, 45, 2144, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, + 45, 2183, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 2183, 45, 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 45, 2183, 45, 45, 45, 45, 2183, 45, 45, 45, + 45, 2183, 2183, 2183, 2183, 2183, 45, 2183, 2183, 2183, + 45, 45, 45, 45, 45, 45, 45, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 45, + 45, 45, 45, 45, 2183, 45, 2183, 45, 2183, 45, + 45, 45, 45, 45, 45, 2183, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 2183, 2183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 2144, 45, 45, 45, - 45, 45, 45, 45, 2144, 2144, 45, 45, 45, 45, - 45, 2144, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, + 45, 45, 45, 2183, 45, 45, 45, 45, 2183, 2183, + 45, 45, 45, 2183, 45, 45, 2183, 45, 2183, 45, + 45, 45, 45, 45, 45, 45, 45, 2183, 45, 2183, + 2183, 2183, 0, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183 - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 2144, 45, 45, 45, 2144, 45, 45, 45, 45, 2144, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 2144, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 2144, 45, - 2144, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - - 45, 45, 45, 2144, 45, 45, 45, 45, 45, 2144, - 45, 45, 2144, 45, 2144, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 45, 45, 45, 45, 45, 2144, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - 45, 45, 45, 2144, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 2144, 45, 2144, 45, 45, 2144, 2144, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 2144, - 45, 2144, 45, 45, 2144, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 2144, 2144, 45, 45, 2144, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 2144, 45, - 45, 2144, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 2144, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, - 45, 45, 45, 2144, 2144, 45, 45, 45, 2144, 2144, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2144, 45, 45, 45, 2144, 45, 45, - 2144, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 2144, 45, - - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 2144, 45, 45, 45, 2144, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 2144, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 45, 45, 45, 2144, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 45, 45, - 45, 2144, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 2144, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 2144, 45, 45, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - - 45, 2144, 45, 2144, 45, 2144, 45, 2144, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, - 2144, 45, 45, 45, 45, 45, 2144, 45, 45, 2144, - 45, 2144, 45, 2144, 45, 2144, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 45, - 45, 45, 2144, 45, 45, 45, 45, 45, 2144, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 2144, 45, 45, 45, 45, 45, 45, - - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - 45, 45, 2144, 45, 45, 45, 45, 2144, 45, 45, - 45, 45, 2144, 2144, 2144, 2144, 2144, 45, 2144, 2144, - 2144, 45, 45, 45, 45, 45, 45, 45, 45, 2144, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 45, 45, 45, 45, 45, 2144, 45, 2144, 45, 2144, - 45, 45, 45, 45, 45, 45, 2144, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 2144, 2144, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 2144, 45, 45, 45, 45, 2144, - 2144, 45, 45, 45, 2144, 45, 45, 2144, 45, 2144, - 45, 45, 45, 45, 45, 45, 45, 45, 2144, 45, - 2144, 2144, 2144, 0, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144 } ; -static const flex_int16_t yy_nxt[2608] = +static const flex_int16_t yy_nxt[2649] = { 0, - 2144, 13, 14, 13, 2144, 15, 16, 2144, 17, 18, + 2183, 13, 14, 13, 2183, 15, 16, 2183, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, - 84, 804, 37, 14, 37, 85, 25, 26, 38, 100, - 2144, 27, 37, 14, 37, 42, 28, 42, 38, 90, - 91, 29, 198, 30, 13, 14, 13, 89, 90, 25, - 31, 91, 13, 14, 13, 13, 14, 13, 32, 40, - 805, 13, 14, 13, 33, 40, 101, 90, 91, 198, - 89, 34, 35, 13, 14, 13, 93, 15, 16, 94, + 85, 817, 37, 14, 37, 86, 25, 26, 38, 101, + 2183, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 92, 29, 201, 30, 13, 14, 13, 90, 91, 25, + 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, + 818, 13, 14, 13, 33, 40, 102, 91, 92, 201, + 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, - 23, 24, 13, 14, 13, 89, 39, 102, 25, 26, + 23, 24, 13, 14, 13, 90, 39, 103, 25, 26, - 13, 14, 13, 27, 39, 42, 105, 42, 28, 42, - 106, 42, 41, 29, 108, 30, 111, 112, 92, 136, - 41, 25, 31, 102, 137, 376, 87, 138, 87, 105, - 32, 88, 88, 88, 88, 88, 33, 108, 106, 111, - 857, 112, 377, 34, 35, 44, 44, 44, 45, 45, + 13, 14, 13, 27, 39, 42, 106, 42, 28, 42, + 107, 42, 41, 29, 109, 30, 112, 113, 93, 137, + 41, 25, 31, 103, 138, 381, 88, 139, 88, 106, + 32, 89, 89, 89, 89, 89, 33, 109, 107, 112, + 862, 113, 382, 34, 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 48, 49, 50, 45, 51, 52, 53, 45, 45, 45, @@ -1492,290 +1506,294 @@ static const flex_int16_t yy_nxt[2608] = 58, 45, 59, 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 56, 45, 45, 45, 45, 45, 79, 202, - 80, 80, 80, 80, 80, 79, 102, 82, 82, 82, - 82, 82, 452, 81, 83, 83, 83, 83, 83, 79, - 81, 82, 82, 82, 82, 82, 202, 81, 186, 187, - 109, 118, 116, 130, 81, 119, 81, 105, 117, 120, - 110, 452, 121, 81, 124, 122, 131, 125, 126, 123, - 81, 127, 128, 109, 186, 187, 132, 81, 45, 108, - 105, 45, 45, 45, 129, 45, 45, 45, 110, 114, - 134, 133, 45, 45, 476, 45, 45, 135, 152, 477, + 76, 77, 78, 45, 45, 45, 45, 45, 80, 205, + 81, 81, 81, 81, 81, 80, 103, 83, 83, 83, + 83, 83, 459, 82, 84, 84, 84, 84, 84, 80, + 82, 83, 83, 83, 83, 83, 205, 82, 189, 190, + 110, 119, 117, 131, 82, 120, 82, 106, 118, 121, + 111, 459, 122, 82, 125, 123, 132, 126, 127, 124, + 82, 128, 129, 110, 189, 190, 133, 82, 45, 109, + 106, 45, 45, 45, 130, 45, 45, 45, 111, 115, + 135, 134, 45, 45, 333, 45, 45, 136, 153, 445, - 153, 45, 154, 45, 45, 45, 45, 45, 45, 45, + 154, 45, 155, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 188, 139, 45, 166, 143, 144, - 45, 167, 145, 257, 45, 140, 147, 141, 146, 238, - 148, 186, 45, 155, 149, 204, 45, 100, 45, 115, - 111, 156, 188, 157, 258, 239, 150, 188, 158, 159, - 151, 160, 168, 187, 161, 162, 169, 189, 858, 170, - 175, 176, 204, 111, 205, 163, 171, 172, 164, 194, - 109, 173, 174, 182, 101, 191, 197, 201, 183, 190, - 110, 83, 83, 83, 83, 83, 79, 205, 80, 80, + 45, 45, 45, 45, 191, 140, 45, 167, 144, 145, + 45, 168, 146, 113, 45, 141, 148, 142, 147, 241, + 149, 202, 45, 156, 150, 208, 45, 207, 45, 116, + 112, 157, 191, 158, 716, 242, 151, 113, 159, 160, + 152, 161, 169, 189, 162, 163, 170, 187, 208, 171, + 176, 177, 203, 112, 207, 164, 172, 173, 165, 191, + 110, 174, 175, 184, 190, 197, 200, 101, 185, 192, + 111, 84, 84, 84, 84, 84, 80, 863, 81, 81, - 80, 80, 80, 109, 81, 177, 282, 194, 178, 179, - 283, 81, 197, 267, 87, 201, 87, 99, 180, 88, - 88, 88, 88, 88, 99, 181, 79, 81, 82, 82, - 82, 82, 82, 203, 81, 83, 83, 83, 83, 83, - 194, 81, 88, 88, 88, 88, 88, 199, 81, 88, - 88, 88, 88, 88, 99, 859, 213, 210, 99, 268, - 247, 203, 99, 219, 81, 214, 201, 252, 211, 215, - 99, 81, 220, 221, 99, 306, 99, 99, 200, 208, - 253, 307, 225, 226, 232, 203, 233, 209, 209, 209, - 209, 209, 227, 235, 265, 285, 209, 209, 209, 209, + 81, 81, 81, 178, 82, 179, 717, 194, 180, 181, + 193, 82, 200, 197, 88, 864, 88, 250, 182, 89, + 89, 89, 89, 89, 102, 183, 80, 82, 83, 83, + 83, 83, 83, 100, 82, 84, 84, 84, 84, 84, + 100, 82, 89, 89, 89, 89, 89, 204, 82, 89, + 89, 89, 89, 89, 206, 197, 216, 222, 228, 229, + 235, 251, 236, 238, 82, 217, 223, 224, 230, 218, + 100, 82, 213, 204, 100, 204, 239, 270, 100, 237, + 240, 245, 206, 214, 246, 255, 100, 260, 247, 865, + 100, 285, 100, 100, 211, 286, 281, 866, 256, 282, - 209, 209, 242, 234, 248, 243, 236, 385, 315, 244, - 237, 272, 278, 310, 316, 279, 280, 333, 316, 209, - 209, 209, 209, 209, 209, 295, 273, 274, 275, 296, - 286, 287, 288, 297, 317, 301, 315, 315, 317, 322, - 316, 289, 324, 290, 319, 291, 292, 325, 293, 302, - 327, 331, 329, 322, 327, 344, 399, 317, 345, 403, - 386, 320, 322, 387, 420, 318, 435, 421, 436, 404, - 324, 334, 407, 327, 325, 329, 335, 394, 331, 332, - 332, 332, 332, 332, 329, 449, 346, 408, 332, 332, - 332, 332, 332, 332, 347, 449, 454, 456, 482, 523, + 283, 268, 212, 212, 212, 212, 212, 288, 261, 275, + 322, 212, 212, 212, 212, 212, 212, 304, 338, 205, + 206, 310, 320, 271, 276, 277, 278, 311, 321, 322, + 321, 305, 330, 322, 212, 212, 212, 212, 212, 212, + 320, 298, 289, 290, 291, 299, 309, 327, 314, 300, + 320, 329, 325, 292, 321, 293, 324, 294, 295, 330, + 296, 332, 334, 336, 327, 390, 349, 351, 323, 350, + 327, 739, 339, 332, 412, 352, 408, 483, 459, 329, + 404, 353, 484, 562, 332, 334, 409, 340, 456, 413, + 336, 337, 337, 337, 337, 337, 399, 440, 739, 441, - 348, 860, 452, 861, 483, 524, 400, 329, 449, 545, - 528, 332, 332, 332, 332, 332, 332, 499, 450, 454, - 529, 444, 500, 456, 657, 456, 459, 459, 459, 459, - 459, 461, 862, 705, 658, 459, 459, 459, 459, 459, - 459, 516, 517, 518, 549, 558, 567, 519, 550, 559, - 568, 530, 586, 590, 590, 621, 726, 587, 459, 459, - 459, 459, 459, 459, 594, 863, 595, 546, 622, 633, - 501, 727, 697, 725, 634, 502, 612, 698, 729, 780, - 781, 590, 597, 726, 613, 706, 614, 615, 616, 749, - 617, 594, 750, 595, 45, 45, 45, 45, 45, 727, + 337, 337, 337, 337, 337, 337, 425, 468, 334, 426, + 456, 456, 461, 463, 489, 463, 552, 506, 391, 535, + 490, 392, 507, 337, 337, 337, 337, 337, 337, 536, + 405, 334, 563, 457, 530, 461, 523, 524, 525, 595, + 531, 463, 526, 537, 596, 450, 466, 466, 466, 466, + 466, 762, 793, 794, 763, 466, 466, 466, 466, 466, + 466, 556, 566, 575, 600, 557, 567, 576, 867, 604, + 508, 605, 868, 631, 553, 509, 600, 622, 466, 466, + 466, 466, 466, 466, 667, 623, 632, 624, 625, 626, + 643, 627, 600, 740, 668, 644, 604, 869, 605, 45, - 845, 856, 730, 45, 45, 45, 45, 45, 45, 731, - 817, 855, 846, 864, 865, 818, 866, 867, 868, 869, - 871, 870, 872, 873, 856, 874, 45, 45, 45, 45, - 45, 45, 875, 876, 877, 878, 879, 880, 881, 855, - 882, 883, 884, 885, 886, 887, 888, 889, 890, 893, - 894, 895, 891, 896, 819, 897, 892, 898, 899, 900, - 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, - 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, - 921, 923, 924, 922, 925, 926, 927, 928, 929, 930, - 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, + 45, 45, 45, 45, 607, 870, 859, 872, 45, 45, + 45, 45, 45, 45, 708, 738, 743, 830, 860, 709, + 742, 740, 831, 744, 871, 873, 874, 875, 876, 877, + 872, 45, 45, 45, 45, 45, 45, 878, 879, 880, + 881, 882, 883, 884, 885, 887, 886, 888, 889, 890, + 891, 892, 871, 893, 894, 895, 896, 897, 898, 899, + 900, 832, 901, 902, 903, 904, 905, 906, 909, 910, + 911, 907, 912, 913, 914, 908, 915, 916, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, 937, 939, - 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, - 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, - 961, 962, 963, 964, 965, 967, 968, 971, 972, 973, - 974, 966, 976, 969, 977, 978, 975, 970, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, - 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 989, 1017, 1018, 1019, - 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, - 1030, 1031, 1032, 1033, 1034, 1035, 1037, 1038, 1039, 1040, + 940, 938, 941, 942, 943, 944, 945, 946, 947, 948, + 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 984, 985, 988, 989, 990, 991, + 983, 993, 986, 994, 995, 992, 987, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, + 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1008, 1036, 1037, - 1036, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, - 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, - 1060, 1061, 1063, 1064, 1065, 1062, 1066, 1067, 1068, 1069, - 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, - 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, - 1090, 1091, 1092, 1093, 1094, 1096, 1097, 1098, 1099, 1100, - 1101, 1102, 1103, 1104, 1105, 1106, 1095, 1107, 1108, 1109, - 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1115, 1138, + 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, + 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1056, 1057, 1058, + 1059, 1055, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, + 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1078, 1079, 1080, 1082, 1083, 1084, 1081, 1085, 1086, 1087, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, + 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, + 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1118, + 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1115, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, - 1139, 1114, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 1161, 1162, 1163, 1166, 1167, 1168, 1169, - 1164, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, - 1200, 1190, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, - 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, - 1219, 1220, 1221, 1165, 1222, 1223, 1224, 1225, 1226, 1227, - 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1236, 1235, 1237, + 1158, 1159, 1137, 1160, 1161, 1136, 1162, 1163, 1164, 1165, + 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, + 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, + 1188, 1189, 1190, 1191, 1186, 1192, 1193, 1194, 1195, 1196, + 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, + 1207, 1208, 1209, 1210, 1211, 1213, 1214, 1215, 1216, 1217, + 1218, 1219, 1220, 1221, 1222, 1212, 1223, 1224, 1225, 1226, + 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, - 1258, 1259, 1260, 1261, 1234, 1235, 1262, 1263, 1264, 1265, + 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1187, 1244, 1245, + 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, + 1256, 1257, 1258, 1259, 1261, 1260, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, - 1276, 1277, 1278, 1279, 1280, 1281, 1283, 1285, 1286, 1287, - 1282, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, - 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, - 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, - 1284, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, + 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, + 1286, 1259, 1260, 1287, 1288, 1289, 1290, 1291, 1292, 1293, + 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, + 1304, 1305, 1306, 1308, 1310, 1311, 1312, 1307, 1313, 1314, + 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, - 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, - 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, - 1366, 1367, 1368, 1369, 1370, 1348, 1371, 1372, 1373, 1374, - 1375, 1349, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, + 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1309, 1352, 1353, + 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, + 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, + 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, - 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, - 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, - 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, - 1424, 1425, 1426, 1427, 1428, 1429, 1431, 1432, 1433, 1434, + 1394, 1395, 1396, 1397, 1398, 1376, 1399, 1400, 1401, 1402, + 1403, 1377, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, + 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, + 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, - 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, - 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1455, - 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, - 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, - 1476, 1448, 1477, 1478, 1479, 1480, 1481, 1482, 1430, 1483, - 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, - 1494, 1495, 1454, 1496, 1497, 1498, 1500, 1501, 1502, 1503, - 1504, 1505, 1506, 1499, 1507, 1508, 1509, 1510, 1511, 1512, - 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, - 1523, 1524, 1525, 1527, 1528, 1530, 1529, 1526, 1531, 1532, + 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, + 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, + 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1460, 1461, 1462, + 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, + 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, + 1483, 1484, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, + 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, + 1504, 1505, 1506, 1507, 1479, 1508, 1509, 1510, 1511, 1459, + 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, + 1522, 1523, 1524, 1525, 1526, 1485, 1527, 1528, 1529, 1531, - 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, - 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, - 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, - 1563, 1541, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, - 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, - 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, - 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, - 1602, 1603, 1604, 1605, 1609, 1606, 1610, 1611, 1607, 1612, - 1613, 1608, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, - 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, + 1532, 1533, 1534, 1535, 1536, 1537, 1530, 1538, 1539, 1540, + 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, + 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1559, 1560, 1562, + 1561, 1558, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, + 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, + 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1575, 1598, 1599, + 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, + 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, + 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, - 1632, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, - 1643, 1633, 1644, 1645, 1646, 1647, 1621, 1648, 1649, 1650, - 1651, 1652, 1653, 1654, 1656, 1657, 1658, 1659, 1660, 1661, - 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, - 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, - 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, - 1712, 1655, 1713, 1714, 1715, 1716, 1718, 1719, 1720, 1721, - 1717, 1722, 1723, 1724, 1698, 1725, 1726, 1727, 1728, 1729, + 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, + 1643, 1640, 1644, 1645, 1641, 1646, 1647, 1642, 1648, 1649, + 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, + 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1670, + 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1669, + 1680, 1681, 1682, 1683, 1657, 1684, 1685, 1686, 1687, 1688, + 1689, 1690, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, + 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, + 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, + 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, - 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, - 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, - 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, - 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, - 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, - 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, - 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, - 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, - 1821, 1822, 1823, 1824, 1820, 1825, 1826, 1827, 1828, 1829, + 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1691, + 1749, 1750, 1751, 1752, 1753, 1755, 1756, 1757, 1758, 1754, + 1759, 1760, 1761, 1735, 1762, 1763, 1764, 1765, 1766, 1767, + 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, + 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, + 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, + 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, + 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, + 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, - 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, - 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, - 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, - 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, - 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, - 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, - 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, - 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, - 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, - 1920, 1922, 1923, 1921, 1924, 1925, 1926, 1927, 1928, 1929, + 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, + 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, + 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, + 1859, 1860, 1861, 1862, 1858, 1863, 1864, 1865, 1866, 1867, + 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, + 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, + 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, + 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, + 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, + 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, - 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, - 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, - 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, - 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, - 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, - 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, - 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, - 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, + 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, + 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, + 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, + 1958, 1959, 1961, 1962, 1960, 1963, 1964, 1965, 1966, 1967, + 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, + 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, + 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, + 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, + 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, + 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, - 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, - 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, - 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, - 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, - 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, - 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, - 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, - 2100, 2101, 2102, 2103, 2105, 2104, 2106, 2107, 2108, 2109, - 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, - 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, + 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, + 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, + 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, + 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, + 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, + 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, + 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, + 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, + 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, + 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, - 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, - 2140, 2141, 2142, 2143, 12, 12, 12, 36, 36, 36, - 78, 97, 78, 99, 99, 99, 113, 113, 113, 185, - 854, 185, 206, 206, 206, 853, 852, 851, 850, 849, - 848, 847, 844, 843, 842, 841, 840, 839, 838, 837, - 836, 835, 834, 833, 832, 831, 830, 829, 828, 827, - 826, 825, 824, 823, 822, 821, 820, 816, 815, 814, - 813, 812, 811, 810, 809, 808, 807, 806, 803, 802, - 801, 800, 799, 798, 797, 796, 795, 794, 793, 792, - 791, 790, 789, 788, 787, 786, 785, 784, 783, 782, + 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, + 2138, 2139, 2140, 2141, 2142, 2144, 2143, 2145, 2146, 2147, + 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, + 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, + 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, + 2178, 2179, 2180, 2181, 2182, 12, 12, 12, 36, 36, + 36, 79, 98, 79, 100, 100, 100, 114, 114, 114, + 188, 861, 188, 209, 209, 209, 858, 857, 856, 855, + 854, 853, 852, 851, 850, 849, 848, 847, 846, 845, + 844, 843, 842, 841, 840, 839, 838, 837, 836, 835, - 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, - 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, - 759, 758, 757, 756, 755, 754, 753, 752, 751, 748, - 747, 746, 745, 744, 743, 742, 741, 740, 739, 738, - 737, 736, 735, 734, 733, 732, 728, 725, 724, 723, - 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, - 712, 711, 710, 709, 708, 707, 704, 703, 702, 701, - 700, 699, 696, 695, 694, 693, 692, 691, 690, 689, - 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, - 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, + 834, 833, 829, 828, 827, 826, 825, 824, 823, 822, + 821, 820, 819, 816, 815, 814, 813, 812, 811, 810, + 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, + 799, 798, 797, 796, 795, 792, 791, 790, 789, 788, + 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, + 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, + 767, 766, 765, 764, 761, 760, 759, 758, 757, 756, + 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, + 745, 741, 738, 737, 736, 735, 734, 733, 732, 731, + 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, - 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, - 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, - 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, - 636, 635, 632, 631, 630, 629, 628, 627, 626, 625, - 624, 623, 620, 619, 618, 611, 610, 609, 608, 607, - 606, 605, 604, 603, 602, 601, 600, 599, 598, 596, - 593, 592, 591, 589, 588, 585, 584, 583, 582, 581, - 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, - 570, 569, 566, 565, 564, 563, 562, 561, 560, 557, - 556, 555, 554, 553, 552, 551, 548, 547, 544, 543, + 720, 719, 718, 715, 714, 713, 712, 711, 710, 707, + 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, + 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, + 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, + 676, 675, 674, 673, 672, 671, 670, 669, 666, 665, + 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, + 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, + 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, + 630, 629, 628, 621, 620, 619, 618, 617, 616, 615, + 614, 613, 612, 611, 610, 609, 608, 606, 603, 602, - 542, 541, 540, 539, 538, 537, 536, 535, 534, 533, - 532, 531, 527, 526, 525, 522, 521, 520, 515, 514, - 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, - 503, 498, 497, 496, 495, 494, 493, 492, 491, 490, - 489, 488, 487, 486, 485, 484, 481, 480, 479, 478, - 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, - 465, 464, 463, 462, 460, 458, 457, 455, 453, 451, - 448, 447, 446, 445, 443, 442, 441, 440, 439, 438, - 437, 434, 433, 432, 431, 430, 429, 428, 427, 426, - 425, 424, 423, 422, 419, 418, 417, 416, 415, 414, + 601, 599, 598, 597, 594, 593, 592, 591, 590, 589, + 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, + 578, 577, 574, 573, 572, 571, 570, 569, 568, 565, + 564, 561, 560, 559, 558, 555, 554, 551, 550, 549, + 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, + 538, 534, 533, 532, 529, 528, 527, 522, 521, 520, + 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, + 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, + 495, 494, 493, 492, 491, 488, 487, 486, 485, 482, + 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, - 413, 412, 411, 410, 409, 406, 405, 402, 401, 398, - 397, 396, 395, 393, 392, 391, 390, 389, 388, 384, - 383, 382, 381, 380, 379, 378, 375, 374, 373, 372, - 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, - 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, - 351, 350, 349, 343, 342, 341, 340, 339, 338, 337, - 336, 207, 330, 328, 326, 323, 321, 314, 313, 312, - 311, 309, 308, 305, 304, 303, 300, 299, 298, 294, - 284, 281, 277, 276, 271, 270, 269, 266, 264, 263, - 262, 261, 260, 259, 256, 255, 254, 251, 250, 249, + 471, 470, 469, 467, 465, 464, 462, 460, 458, 455, + 454, 453, 452, 451, 449, 448, 447, 446, 444, 443, + 442, 439, 438, 437, 436, 435, 434, 433, 432, 431, + 430, 429, 428, 427, 424, 423, 422, 421, 420, 419, + 418, 417, 416, 415, 414, 411, 410, 407, 406, 403, + 402, 401, 400, 398, 397, 396, 395, 394, 393, 389, + 388, 387, 386, 385, 384, 383, 380, 379, 378, 377, + 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, + 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, + 356, 355, 354, 348, 347, 346, 345, 344, 343, 342, - 246, 245, 241, 240, 231, 230, 229, 228, 224, 223, - 222, 218, 217, 216, 212, 207, 196, 195, 193, 192, - 184, 165, 142, 107, 104, 103, 43, 98, 96, 95, - 86, 43, 2144, 11, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + 341, 210, 335, 333, 331, 328, 326, 319, 318, 317, + 316, 315, 313, 312, 308, 307, 306, 303, 302, 301, + 297, 287, 284, 280, 279, 274, 273, 272, 269, 267, + 266, 265, 264, 263, 262, 259, 258, 257, 254, 253, + 252, 249, 248, 244, 243, 234, 233, 232, 231, 227, + 226, 225, 221, 220, 219, 215, 210, 199, 198, 196, + 195, 186, 166, 143, 108, 105, 104, 43, 99, 97, + 96, 87, 43, 2183, 11, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, - 2144, 2144, 2144, 2144, 2144, 2144, 2144 + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183 } ; -static const flex_int16_t yy_chk[2608] = +static const flex_int16_t yy_chk[2649] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 21, 674, 3, 3, 3, 21, 1, 1, 3, 44, + 21, 684, 3, 3, 3, 21, 1, 1, 3, 44, 0, 1, 4, 4, 4, 13, 1, 13, 4, 27, - 28, 1, 106, 1, 5, 5, 5, 26, 32, 1, + 28, 1, 107, 1, 5, 5, 5, 26, 32, 1, 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, - 674, 8, 8, 8, 1, 8, 44, 27, 28, 106, + 684, 8, 8, 8, 1, 8, 44, 27, 28, 107, 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 31, 5, 47, 2, 2, 10, 10, 10, 2, 6, 37, 50, 37, 2, 42, 51, 42, 9, 2, 53, 2, 55, 56, 31, 64, - 10, 2, 2, 47, 64, 250, 25, 64, 25, 50, + 10, 2, 2, 47, 64, 253, 25, 64, 25, 50, 2, 25, 25, 25, 25, 25, 2, 53, 51, 55, - 728, 56, 250, 2, 2, 15, 15, 15, 15, 15, + 728, 56, 253, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1783,270 +1801,274 @@ static const flex_int16_t yy_chk[2608] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 17, 109, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 110, 17, 17, 17, 17, 17, 19, 58, 19, 19, 19, - 19, 19, 322, 17, 20, 20, 20, 20, 20, 22, - 19, 22, 22, 22, 22, 22, 109, 20, 89, 90, + 19, 19, 327, 17, 20, 20, 20, 20, 20, 22, + 19, 22, 22, 22, 22, 22, 110, 20, 90, 91, 54, 59, 58, 61, 22, 59, 17, 62, 58, 59, - 54, 322, 59, 19, 60, 59, 61, 60, 60, 59, - 20, 60, 60, 54, 89, 90, 61, 22, 45, 69, + 54, 327, 59, 19, 60, 59, 61, 60, 60, 59, + 20, 60, 60, 54, 90, 91, 61, 22, 45, 69, 62, 45, 45, 45, 60, 45, 45, 45, 54, 57, - 63, 62, 45, 45, 350, 45, 57, 63, 69, 350, + 63, 62, 45, 45, 309, 45, 57, 63, 69, 309, 69, 45, 69, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 91, 65, 57, 73, 67, 67, - 57, 73, 67, 147, 57, 65, 68, 65, 67, 133, - 68, 92, 57, 70, 68, 111, 57, 99, 57, 57, - 76, 70, 91, 70, 147, 133, 68, 94, 70, 70, - 68, 71, 74, 93, 71, 71, 74, 92, 729, 74, - 75, 75, 111, 76, 112, 71, 74, 74, 71, 102, - 75, 74, 74, 76, 99, 94, 105, 108, 76, 93, - 75, 79, 79, 79, 79, 79, 80, 112, 80, 80, + 45, 45, 45, 45, 92, 65, 57, 73, 67, 67, + 57, 73, 67, 78, 57, 65, 68, 65, 67, 134, + 68, 108, 57, 70, 68, 113, 57, 112, 57, 57, + 76, 70, 92, 70, 575, 134, 68, 78, 70, 70, + 68, 71, 74, 93, 71, 71, 74, 78, 113, 74, + 75, 75, 108, 76, 112, 71, 74, 74, 71, 95, + 75, 74, 74, 76, 94, 103, 106, 100, 76, 93, + 75, 80, 80, 80, 80, 80, 81, 729, 81, 81, - 80, 80, 80, 75, 79, 75, 165, 102, 75, 75, - 165, 80, 105, 156, 81, 108, 81, 101, 75, 81, - 81, 81, 81, 81, 101, 75, 82, 79, 82, 82, - 82, 82, 82, 110, 80, 83, 83, 83, 83, 83, - 116, 82, 87, 87, 87, 87, 87, 107, 83, 88, - 88, 88, 88, 88, 101, 730, 118, 116, 101, 156, - 139, 110, 101, 122, 82, 118, 154, 143, 116, 118, - 101, 83, 122, 122, 101, 177, 101, 101, 107, 115, - 143, 177, 126, 126, 131, 180, 131, 115, 115, 115, - 115, 115, 126, 132, 154, 167, 115, 115, 115, 115, + 81, 81, 81, 75, 80, 75, 575, 95, 75, 75, + 94, 81, 106, 103, 82, 730, 82, 140, 75, 82, + 82, 82, 82, 82, 100, 75, 83, 80, 83, 83, + 83, 83, 83, 102, 81, 84, 84, 84, 84, 84, + 102, 83, 88, 88, 88, 88, 88, 109, 84, 89, + 89, 89, 89, 89, 111, 117, 119, 123, 127, 127, + 132, 140, 132, 133, 83, 119, 123, 123, 127, 119, + 102, 84, 117, 155, 102, 109, 133, 157, 102, 132, + 133, 137, 111, 117, 137, 144, 102, 148, 137, 731, + 102, 166, 102, 102, 116, 166, 164, 732, 144, 164, - 115, 115, 136, 131, 139, 136, 132, 258, 186, 136, - 132, 160, 163, 180, 187, 163, 163, 210, 190, 115, - 115, 115, 115, 115, 115, 169, 160, 160, 160, 169, - 167, 167, 167, 169, 188, 173, 186, 189, 191, 194, - 187, 167, 197, 167, 190, 167, 167, 198, 167, 173, - 201, 205, 203, 211, 265, 220, 270, 188, 220, 273, - 258, 191, 194, 258, 288, 189, 302, 288, 302, 273, - 197, 210, 276, 201, 198, 203, 211, 265, 205, 209, - 209, 209, 209, 209, 310, 315, 221, 276, 209, 209, - 209, 209, 209, 209, 221, 318, 324, 327, 355, 389, + 164, 155, 116, 116, 116, 116, 116, 168, 148, 161, + 191, 116, 116, 116, 116, 116, 116, 174, 213, 178, + 182, 179, 189, 157, 161, 161, 161, 179, 190, 194, + 193, 174, 201, 191, 116, 116, 116, 116, 116, 116, + 192, 170, 168, 168, 168, 170, 178, 197, 182, 170, + 189, 200, 194, 168, 190, 168, 193, 168, 168, 201, + 168, 204, 206, 208, 214, 261, 223, 224, 192, 223, + 197, 604, 213, 268, 279, 224, 276, 355, 340, 200, + 273, 224, 355, 423, 204, 206, 276, 214, 320, 279, + 208, 212, 212, 212, 212, 212, 268, 305, 604, 305, - 221, 731, 335, 732, 355, 389, 270, 310, 315, 410, - 393, 209, 209, 209, 209, 209, 209, 371, 318, 324, - 393, 310, 371, 394, 518, 327, 332, 332, 332, 332, - 332, 335, 733, 567, 518, 332, 332, 332, 332, 332, - 332, 385, 385, 385, 413, 421, 429, 385, 413, 421, - 429, 394, 447, 452, 461, 482, 594, 447, 332, 332, - 332, 332, 332, 332, 458, 734, 458, 410, 482, 494, - 371, 595, 560, 597, 494, 371, 478, 560, 597, 649, - 649, 452, 461, 594, 478, 567, 478, 478, 478, 617, - 478, 458, 617, 458, 459, 459, 459, 459, 459, 595, + 212, 212, 212, 212, 212, 212, 291, 340, 314, 291, + 323, 320, 329, 332, 360, 399, 415, 376, 261, 398, + 360, 261, 376, 212, 212, 212, 212, 212, 212, 398, + 273, 314, 423, 323, 394, 329, 390, 390, 390, 453, + 394, 332, 390, 399, 453, 314, 337, 337, 337, 337, + 337, 627, 659, 659, 627, 337, 337, 337, 337, 337, + 337, 418, 426, 434, 459, 418, 426, 434, 733, 465, + 376, 465, 734, 489, 415, 376, 468, 485, 337, 337, + 337, 337, 337, 337, 525, 485, 489, 485, 485, 485, + 501, 485, 459, 605, 525, 501, 465, 735, 465, 466, - 715, 727, 599, 459, 459, 459, 459, 459, 459, 599, - 687, 726, 715, 735, 736, 687, 737, 738, 739, 739, - 740, 739, 741, 742, 727, 743, 459, 459, 459, 459, - 459, 459, 744, 745, 746, 747, 748, 749, 750, 726, - 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 759, 763, 687, 764, 759, 765, 766, 767, - 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, - 789, 790, 791, 789, 792, 794, 795, 796, 797, 798, - 799, 800, 801, 802, 803, 805, 806, 807, 808, 809, + 466, 466, 466, 466, 468, 736, 726, 740, 466, 466, + 466, 466, 466, 466, 568, 607, 609, 697, 726, 568, + 607, 605, 697, 609, 739, 741, 742, 743, 744, 745, + 740, 466, 466, 466, 466, 466, 466, 746, 747, 748, + 749, 750, 751, 752, 752, 753, 752, 754, 755, 756, + 757, 758, 739, 759, 760, 761, 762, 763, 764, 765, + 766, 697, 767, 768, 769, 770, 771, 772, 773, 774, + 775, 772, 776, 777, 778, 772, 779, 780, 782, 783, + 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, - 810, 811, 812, 813, 814, 815, 816, 818, 819, 820, - 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, - 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, - 841, 835, 842, 837, 843, 844, 841, 837, 846, 847, - 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, - 858, 859, 860, 861, 862, 863, 864, 865, 867, 868, - 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, - 879, 880, 881, 882, 883, 884, 856, 885, 886, 887, - 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, - 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, + 804, 802, 805, 807, 808, 809, 810, 811, 812, 813, + 814, 815, 816, 818, 819, 820, 821, 822, 823, 824, + 825, 826, 827, 828, 829, 831, 832, 833, 834, 835, + 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, + 849, 856, 851, 857, 858, 855, 851, 860, 861, 862, + 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, + 873, 874, 875, 876, 877, 878, 879, 880, 881, 883, + 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, + 894, 895, 896, 897, 898, 899, 900, 872, 901, 902, - 904, 909, 910, 911, 912, 913, 914, 915, 918, 919, - 920, 921, 922, 923, 924, 927, 928, 929, 930, 931, - 933, 934, 935, 936, 937, 934, 938, 939, 940, 941, - 943, 944, 946, 947, 948, 949, 950, 951, 952, 953, - 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, - 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, - 974, 975, 976, 977, 978, 980, 968, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, - 994, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, - 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 989, 1013, + 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, + 913, 915, 916, 917, 918, 919, 920, 921, 922, 923, + 924, 920, 925, 926, 927, 928, 929, 930, 931, 934, + 935, 936, 937, 938, 939, 940, 943, 944, 945, 946, + 947, 949, 950, 951, 952, 953, 950, 954, 955, 956, + 957, 959, 960, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 997, 985, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, - 1014, 988, 1015, 1016, 1017, 1018, 1019, 1021, 1022, 1023, - 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, - 1034, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1044, 1045, - 1040, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, - 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, - 1065, 1066, 1067, 1068, 1070, 1072, 1073, 1074, 1076, 1077, - 1078, 1065, 1079, 1081, 1082, 1083, 1084, 1085, 1086, 1087, - 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, - 1098, 1100, 1101, 1040, 1102, 1103, 1104, 1105, 1106, 1107, - 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1117, 1115, 1118, + 1009, 1010, 1011, 1012, 1013, 1015, 1016, 1017, 1018, 1019, + 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, + 1030, 1031, 1008, 1032, 1033, 1007, 1034, 1035, 1036, 1037, + 1038, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1058, 1059, + 1060, 1061, 1063, 1064, 1059, 1065, 1066, 1067, 1068, 1069, + 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1089, 1091, + 1092, 1093, 1095, 1096, 1097, 1084, 1098, 1099, 1101, 1102, + 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, - 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, - 1140, 1141, 1143, 1144, 1114, 1115, 1145, 1146, 1147, 1148, - 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, - 1159, 1160, 1161, 1162, 1164, 1165, 1166, 1167, 1168, 1169, - 1165, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, - 1199, 1200, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, - 1166, 1210, 1211, 1213, 1214, 1217, 1218, 1219, 1220, 1221, + 1113, 1114, 1115, 1116, 1117, 1118, 1120, 1059, 1121, 1122, + 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, + 1133, 1134, 1135, 1136, 1139, 1137, 1140, 1141, 1142, 1144, + 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, + 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1165, + 1166, 1136, 1137, 1167, 1168, 1169, 1170, 1171, 1172, 1173, + 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, + 1184, 1186, 1187, 1188, 1189, 1190, 1191, 1187, 1192, 1193, + 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, + 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, - 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, - 1242, 1243, 1244, 1245, 1246, 1247, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1258, 1234, 1259, 1260, 1261, 1262, - 1263, 1235, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, - 1272, 1273, 1274, 1275, 1276, 1277, 1280, 1282, 1284, 1285, - 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, - 1296, 1297, 1298, 1299, 1301, 1302, 1303, 1305, 1306, 1307, - 1308, 1309, 1311, 1312, 1314, 1316, 1318, 1319, 1320, 1321, - 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, + 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1224, + 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1188, 1232, 1233, + 1234, 1236, 1237, 1240, 1241, 1242, 1243, 1244, 1245, 1246, + 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, + 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, + 1267, 1268, 1269, 1270, 1271, 1272, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1283, 1259, 1284, 1285, 1286, 1287, + 1288, 1260, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, + 1297, 1298, 1299, 1300, 1301, 1302, 1305, 1307, 1309, 1310, + 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1342, 1343, 1344, - 1345, 1346, 1347, 1348, 1349, 1351, 1352, 1353, 1355, 1356, - 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, - 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, - 1377, 1348, 1379, 1380, 1381, 1382, 1383, 1384, 1327, 1385, - 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, - 1396, 1397, 1355, 1399, 1400, 1401, 1402, 1403, 1404, 1405, - 1406, 1407, 1408, 1401, 1409, 1412, 1413, 1414, 1415, 1416, - 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1427, - 1428, 1429, 1430, 1431, 1433, 1435, 1433, 1430, 1436, 1439, + 1321, 1322, 1323, 1324, 1326, 1327, 1328, 1330, 1331, 1332, + 1333, 1334, 1336, 1337, 1339, 1341, 1343, 1344, 1345, 1346, + 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, + 1357, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1368, 1369, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1379, 1380, + 1381, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, + 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, + 1402, 1403, 1404, 1405, 1376, 1407, 1408, 1409, 1410, 1353, + 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1383, 1427, 1428, 1429, 1430, - 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1450, - 1451, 1452, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, - 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, - 1473, 1448, 1474, 1476, 1477, 1478, 1479, 1480, 1481, 1482, - 1483, 1484, 1485, 1486, 1487, 1489, 1491, 1493, 1494, 1496, - 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1507, - 1508, 1509, 1510, 1511, 1512, 1514, 1515, 1518, 1519, 1521, - 1522, 1523, 1524, 1526, 1527, 1526, 1528, 1529, 1526, 1530, - 1531, 1526, 1532, 1533, 1534, 1535, 1536, 1538, 1540, 1541, - 1543, 1544, 1545, 1547, 1548, 1549, 1550, 1551, 1552, 1553, + 1431, 1432, 1433, 1434, 1435, 1436, 1429, 1437, 1440, 1441, + 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, + 1452, 1453, 1454, 1456, 1457, 1458, 1459, 1460, 1462, 1464, + 1462, 1459, 1465, 1468, 1469, 1470, 1471, 1472, 1473, 1474, + 1475, 1476, 1477, 1478, 1479, 1481, 1482, 1483, 1485, 1486, + 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 1497, 1498, 1499, 1500, 1501, 1502, 1504, 1479, 1505, 1507, + 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, + 1518, 1520, 1522, 1524, 1525, 1527, 1528, 1529, 1530, 1531, + 1532, 1533, 1534, 1535, 1536, 1538, 1539, 1540, 1541, 1542, - 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564, - 1565, 1554, 1567, 1568, 1569, 1570, 1541, 1571, 1572, 1573, - 1574, 1575, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, - 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, - 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, - 1603, 1604, 1605, 1606, 1607, 1608, 1610, 1611, 1612, 1613, - 1614, 1615, 1616, 1618, 1619, 1620, 1621, 1622, 1623, 1626, - 1627, 1628, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, - 1639, 1576, 1640, 1641, 1642, 1644, 1645, 1646, 1647, 1648, - 1644, 1649, 1650, 1651, 1621, 1652, 1653, 1655, 1656, 1657, + 1543, 1545, 1546, 1550, 1551, 1553, 1554, 1555, 1556, 1558, + 1559, 1558, 1560, 1561, 1558, 1562, 1563, 1558, 1564, 1565, + 1566, 1567, 1568, 1569, 1571, 1573, 1574, 1575, 1577, 1578, + 1579, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, + 1590, 1591, 1592, 1593, 1594, 1596, 1597, 1598, 1599, 1588, + 1601, 1602, 1603, 1604, 1575, 1605, 1606, 1607, 1608, 1609, + 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, + 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, + 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, + 1639, 1640, 1641, 1642, 1644, 1645, 1646, 1647, 1648, 1649, - 1659, 1660, 1662, 1663, 1664, 1666, 1667, 1668, 1669, 1670, - 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, - 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, - 1692, 1693, 1694, 1695, 1696, 1698, 1700, 1701, 1702, 1704, - 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, - 1715, 1717, 1718, 1719, 1720, 1721, 1722, 1724, 1725, 1726, - 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, - 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, - 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, - 1760, 1762, 1763, 1764, 1758, 1766, 1768, 1769, 1770, 1771, + 1650, 1651, 1653, 1654, 1655, 1657, 1658, 1659, 1662, 1663, + 1664, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1610, + 1675, 1676, 1677, 1678, 1680, 1681, 1682, 1683, 1684, 1680, + 1685, 1686, 1687, 1657, 1688, 1689, 1691, 1692, 1693, 1695, + 1696, 1698, 1699, 1700, 1702, 1703, 1704, 1705, 1706, 1708, + 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, + 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, + 1729, 1730, 1731, 1732, 1733, 1735, 1737, 1738, 1739, 1741, + 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, + 1752, 1754, 1755, 1756, 1757, 1758, 1759, 1761, 1762, 1763, - 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, - 1782, 1783, 1784, 1786, 1787, 1788, 1789, 1790, 1791, 1792, - 1793, 1794, 1796, 1797, 1798, 1799, 1801, 1802, 1803, 1804, - 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1813, 1814, 1815, - 1816, 1817, 1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, - 1828, 1829, 1830, 1831, 1833, 1834, 1835, 1836, 1837, 1838, - 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1848, 1849, 1850, - 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1859, 1860, 1862, - 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, - 1873, 1874, 1875, 1873, 1876, 1877, 1878, 1879, 1880, 1881, + 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, + 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + 1797, 1799, 1800, 1801, 1795, 1802, 1804, 1806, 1807, 1808, + 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, + 1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, 1828, 1829, + 1830, 1831, 1832, 1834, 1835, 1836, 1837, 1839, 1840, 1841, + 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1851, 1852, + 1853, 1854, 1855, 1857, 1858, 1859, 1860, 1863, 1864, 1865, + 1866, 1867, 1868, 1869, 1870, 1872, 1873, 1874, 1875, 1876, - 1882, 1883, 1884, 1885, 1886, 1888, 1889, 1890, 1891, 1892, - 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1901, 1903, 1905, - 1907, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, - 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1926, 1927, 1928, - 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1938, 1939, - 1940, 1942, 1943, 1944, 1945, 1946, 1948, 1949, 1951, 1953, - 1955, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1966, - 1967, 1968, 1969, 1970, 1971, 1972, 1974, 1975, 1976, 1977, - 1978, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, - 1989, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999, + 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1887, 1888, + 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1898, 1899, + 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, + 1911, 1912, 1913, 1914, 1912, 1915, 1916, 1917, 1918, 1919, + 1920, 1921, 1922, 1923, 1924, 1925, 1927, 1928, 1929, 1930, + 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1942, + 1944, 1946, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, + 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1965, 1966, + 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1977, + 1978, 1979, 1981, 1982, 1983, 1984, 1985, 1987, 1988, 1990, - 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, - 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, - 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2031, - 2032, 2034, 2035, 2036, 2037, 2039, 2040, 2041, 2042, 2048, - 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2061, 2062, - 2063, 2064, 2065, 2066, 2067, 2068, 2070, 2071, 2072, 2073, - 2074, 2075, 2077, 2079, 2081, 2082, 2083, 2084, 2085, 2086, - 2088, 2089, 2090, 2091, 2092, 2091, 2093, 2094, 2096, 2097, - 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, - 2110, 2111, 2112, 2113, 2114, 2116, 2117, 2118, 2119, 2122, + 1992, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015, + 2016, 2017, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, + 2027, 2028, 2029, 2030, 2031, 2032, 2034, 2035, 2036, 2037, + 2038, 2039, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, + 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2070, 2071, 2073, 2074, 2075, 2076, 2078, 2079, 2080, 2081, + 2087, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2100, + 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2109, 2110, 2111, - 2123, 2124, 2126, 2127, 2129, 2131, 2132, 2133, 2134, 2135, - 2136, 2137, 2138, 2140, 2145, 2145, 2145, 2146, 2146, 2146, - 2147, 2148, 2147, 2149, 2149, 2149, 2150, 2150, 2150, 2151, - 723, 2151, 2152, 2152, 2152, 722, 721, 720, 719, 718, - 717, 716, 714, 713, 712, 710, 709, 708, 707, 706, - 705, 704, 703, 702, 701, 700, 699, 698, 696, 695, - 694, 693, 692, 691, 690, 689, 688, 686, 685, 683, - 682, 681, 680, 679, 678, 677, 676, 675, 673, 672, - 671, 670, 668, 667, 665, 664, 663, 662, 661, 660, - 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, + 2112, 2113, 2114, 2116, 2118, 2120, 2121, 2122, 2123, 2124, + 2125, 2127, 2128, 2129, 2130, 2131, 2130, 2132, 2133, 2135, + 2136, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, + 2148, 2149, 2150, 2151, 2152, 2153, 2155, 2156, 2157, 2158, + 2161, 2162, 2163, 2165, 2166, 2168, 2170, 2171, 2172, 2173, + 2174, 2175, 2176, 2177, 2179, 2184, 2184, 2184, 2185, 2185, + 2185, 2186, 2187, 2186, 2188, 2188, 2188, 2189, 2189, 2189, + 2190, 727, 2190, 2191, 2191, 2191, 725, 724, 723, 721, + 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, + 710, 709, 707, 706, 705, 704, 703, 702, 701, 700, - 648, 647, 646, 645, 644, 643, 641, 640, 639, 638, - 637, 636, 635, 634, 632, 631, 630, 629, 628, 627, - 626, 625, 624, 623, 622, 621, 620, 619, 618, 616, - 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, - 605, 604, 603, 602, 601, 600, 596, 590, 589, 588, - 587, 585, 583, 581, 579, 578, 577, 576, 575, 574, - 573, 572, 571, 570, 569, 568, 566, 565, 564, 563, - 562, 561, 559, 558, 557, 556, 555, 554, 553, 552, - 551, 550, 549, 548, 546, 544, 543, 542, 541, 540, - 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, + 699, 698, 696, 695, 693, 692, 691, 690, 689, 688, + 687, 686, 685, 683, 682, 681, 680, 678, 677, 675, + 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, + 664, 663, 662, 661, 660, 658, 657, 656, 655, 654, + 653, 651, 650, 649, 648, 647, 646, 645, 644, 642, + 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, + 631, 630, 629, 628, 626, 625, 624, 623, 622, 621, + 620, 619, 618, 617, 616, 615, 614, 613, 612, 611, + 610, 606, 600, 599, 598, 597, 596, 594, 592, 590, + 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, - 529, 528, 526, 525, 524, 523, 522, 521, 520, 519, - 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, - 507, 506, 505, 504, 503, 502, 501, 500, 498, 497, - 496, 495, 493, 492, 491, 490, 489, 488, 487, 486, - 484, 483, 481, 480, 479, 477, 475, 474, 473, 472, - 471, 470, 468, 467, 466, 465, 464, 463, 462, 460, - 456, 454, 453, 451, 448, 446, 445, 444, 443, 442, - 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, - 431, 430, 428, 427, 426, 425, 424, 423, 422, 420, - 419, 418, 417, 416, 415, 414, 412, 411, 409, 408, + 578, 577, 576, 574, 573, 572, 571, 570, 569, 567, + 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, + 556, 555, 553, 551, 550, 549, 548, 547, 546, 545, + 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, + 533, 532, 531, 530, 529, 528, 527, 526, 524, 523, + 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, + 512, 511, 510, 509, 508, 507, 505, 504, 503, 502, + 500, 499, 498, 497, 496, 495, 494, 493, 491, 490, + 488, 487, 486, 484, 482, 481, 480, 479, 478, 477, + 475, 474, 473, 472, 471, 470, 469, 467, 463, 461, - 407, 406, 405, 404, 403, 402, 401, 400, 399, 398, - 397, 396, 392, 391, 390, 388, 387, 386, 384, 383, - 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, - 372, 370, 369, 368, 367, 366, 365, 364, 363, 362, - 361, 360, 359, 358, 357, 356, 354, 353, 352, 351, - 349, 348, 347, 346, 345, 344, 343, 342, 341, 340, - 339, 338, 337, 336, 334, 331, 329, 325, 323, 321, - 314, 313, 312, 311, 309, 308, 307, 306, 305, 304, - 303, 301, 300, 299, 298, 297, 296, 295, 294, 293, - 292, 291, 290, 289, 287, 286, 285, 284, 283, 282, + 460, 458, 455, 454, 452, 451, 450, 449, 448, 447, + 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, + 436, 435, 433, 432, 431, 430, 429, 428, 427, 425, + 424, 422, 421, 420, 419, 417, 416, 414, 413, 412, + 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, + 401, 397, 396, 395, 393, 392, 391, 389, 388, 387, + 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, + 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, + 365, 364, 363, 362, 361, 359, 358, 357, 356, 354, + 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, - 281, 280, 279, 278, 277, 275, 274, 272, 271, 269, - 268, 267, 266, 264, 263, 262, 261, 260, 259, 257, - 256, 255, 254, 253, 252, 251, 249, 248, 246, 245, - 244, 243, 242, 241, 240, 239, 238, 237, 236, 235, - 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, - 224, 223, 222, 219, 218, 217, 216, 215, 214, 213, - 212, 206, 204, 202, 200, 195, 192, 184, 183, 182, - 181, 179, 178, 176, 175, 174, 172, 171, 170, 168, - 166, 164, 162, 161, 159, 158, 157, 155, 153, 152, - 151, 150, 149, 148, 146, 145, 144, 142, 141, 140, + 343, 342, 341, 339, 336, 334, 330, 328, 326, 319, + 318, 317, 316, 315, 313, 312, 311, 310, 308, 307, + 306, 304, 303, 302, 301, 300, 299, 298, 297, 296, + 295, 294, 293, 292, 290, 289, 288, 287, 286, 285, + 284, 283, 282, 281, 280, 278, 277, 275, 274, 272, + 271, 270, 269, 267, 266, 265, 264, 263, 262, 260, + 259, 258, 257, 256, 255, 254, 252, 251, 249, 248, + 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, + 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, + 227, 226, 225, 222, 221, 220, 219, 218, 217, 216, - 138, 137, 135, 134, 130, 129, 128, 127, 125, 124, - 123, 121, 120, 119, 117, 113, 104, 103, 97, 96, - 77, 72, 66, 52, 49, 48, 43, 41, 39, 38, - 24, 14, 11, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, - 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, 2144, + 215, 209, 207, 205, 203, 198, 195, 187, 186, 185, + 184, 183, 181, 180, 177, 176, 175, 173, 172, 171, + 169, 167, 165, 163, 162, 160, 159, 158, 156, 154, + 153, 152, 151, 150, 149, 147, 146, 145, 143, 142, + 141, 139, 138, 136, 135, 131, 130, 129, 128, 126, + 125, 124, 122, 121, 120, 118, 114, 105, 104, 98, + 97, 77, 72, 66, 52, 49, 48, 43, 41, 39, + 38, 24, 14, 11, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, - 2144, 2144, 2144, 2144, 2144, 2144, 2144 + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, + 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183 } ; static yy_state_type yy_last_accepting_state; @@ -2055,7 +2077,7 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[225] = +static const flex_int16_t yy_rule_linenum[228] = { 0, 148, 150, 152, 157, 158, 163, 164, 165, 177, 180, 185, 192, 201, 210, 219, 228, 237, 246, 255, 264, @@ -2063,25 +2085,25 @@ static const flex_int16_t yy_rule_linenum[225] = 373, 383, 392, 402, 412, 422, 432, 441, 450, 459, 468, 477, 486, 495, 504, 513, 522, 531, 540, 549, 558, 567, 576, 585, 594, 607, 616, 625, 634, 645, - 656, 667, 678, 690, 701, 712, 723, 734, 743, 752, - 761, 772, 781, 792, 803, 814, 825, 837, 849, 861, - 873, 885, 897, 908, 919, 928, 937, 946, 957, 968, - 977, 986, 997, 1008, 1019, 1030, 1041, 1052, 1063, 1075, + 656, 667, 678, 690, 701, 712, 723, 734, 745, 756, + 767, 776, 785, 794, 805, 814, 825, 836, 847, 858, + 870, 882, 894, 906, 918, 930, 941, 952, 961, 970, + 979, 990, 1001, 1010, 1019, 1030, 1041, 1052, 1063, 1074, - 1085, 1096, 1105, 1114, 1129, 1145, 1154, 1163, 1172, 1181, - 1190, 1199, 1208, 1217, 1226, 1235, 1259, 1283, 1292, 1302, - 1312, 1321, 1331, 1342, 1351, 1360, 1369, 1378, 1387, 1398, - 1409, 1420, 1430, 1439, 1448, 1457, 1468, 1479, 1490, 1501, - 1512, 1521, 1530, 1539, 1548, 1557, 1566, 1575, 1584, 1593, - 1603, 1615, 1628, 1637, 1646, 1655, 1665, 1675, 1684, 1695, - 1705, 1714, 1724, 1734, 1743, 1752, 1761, 1770, 1780, 1789, - 1798, 1807, 1816, 1825, 1834, 1843, 1852, 1861, 1870, 1879, - 1888, 1897, 1906, 1915, 1924, 1933, 1942, 1951, 1960, 1969, - 1978, 1987, 1996, 2005, 2014, 2023, 2032, 2041, 2050, 2059, + 1085, 1096, 1108, 1118, 1129, 1138, 1147, 1162, 1178, 1187, + 1196, 1205, 1214, 1223, 1232, 1241, 1250, 1259, 1268, 1292, + 1316, 1325, 1335, 1345, 1354, 1364, 1375, 1384, 1393, 1402, + 1411, 1420, 1431, 1442, 1453, 1463, 1472, 1481, 1490, 1501, + 1512, 1523, 1534, 1545, 1554, 1563, 1572, 1581, 1590, 1599, + 1608, 1617, 1626, 1636, 1648, 1661, 1670, 1679, 1688, 1698, + 1708, 1717, 1728, 1738, 1747, 1757, 1767, 1776, 1785, 1794, + 1803, 1813, 1822, 1831, 1840, 1849, 1858, 1867, 1876, 1885, + 1894, 1903, 1912, 1921, 1930, 1939, 1948, 1957, 1966, 1975, + 1984, 1993, 2002, 2011, 2020, 2029, 2038, 2047, 2056, 2065, - 2068, 2077, 2086, 2095, 2104, 2113, 2214, 2230, 2279, 2287, - 2302, 2303, 2304, 2305, 2306, 2307, 2309, 2327, 2340, 2345, - 2349, 2351, 2353, 2355 + 2074, 2083, 2092, 2101, 2110, 2119, 2128, 2137, 2146, 2247, + 2263, 2312, 2320, 2335, 2336, 2337, 2338, 2339, 2340, 2342, + 2360, 2373, 2378, 2382, 2384, 2386, 2388 } ; /* The intent behind this definition is that it'll catch @@ -2135,7 +2157,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 2138 "dhcp6_lexer.cc" +#line 2160 "dhcp6_lexer.cc" /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2161,8 +2183,8 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); -#line 2164 "dhcp6_lexer.cc" -#line 2165 "dhcp6_lexer.cc" +#line 2186 "dhcp6_lexer.cc" +#line 2187 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2492,7 +2514,7 @@ YY_DECL } -#line 2495 "dhcp6_lexer.cc" +#line 2517 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2521,13 +2543,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2145 ) + if ( yy_current_state >= 2184 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 2144 ); + while ( yy_current_state != 2183 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2546,13 +2568,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 225 ) + else if ( yy_act < 228 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 225 ) + else if ( yy_act == 228 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 226 ) + else if ( yy_act == 229 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3346,9 +3368,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_RECONNECT_WAIT_TIME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_READ_TIMEOUT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_); } } YY_BREAK @@ -3360,15 +3382,57 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_WRITE_TIMEOUT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_); } } YY_BREAK case 68: YY_RULE_SETUP #line 734 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_TCP_USER_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_); + } +} + YY_BREAK +case 69: +YY_RULE_SETUP +#line 745 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_RECONNECT_WAIT_TIME(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_); + } +} + YY_BREAK +case 70: +YY_RULE_SETUP +#line 756 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_); + } +} + YY_BREAK +case 71: +YY_RULE_SETUP +#line 767 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_ON_FAIL: @@ -3378,9 +3442,9 @@ YY_RULE_SETUP } } YY_BREAK -case 69: +case 72: YY_RULE_SETUP -#line 743 "dhcp6_lexer.ll" +#line 776 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_ON_FAIL: @@ -3390,9 +3454,9 @@ YY_RULE_SETUP } } YY_BREAK -case 70: +case 73: YY_RULE_SETUP -#line 752 "dhcp6_lexer.ll" +#line 785 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DATABASE_ON_FAIL: @@ -3402,9 +3466,9 @@ YY_RULE_SETUP } } YY_BREAK -case 71: +case 74: YY_RULE_SETUP -#line 761 "dhcp6_lexer.ll" +#line 794 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3416,9 +3480,9 @@ YY_RULE_SETUP } } YY_BREAK -case 72: +case 75: YY_RULE_SETUP -#line 772 "dhcp6_lexer.ll" +#line 805 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3428,48 +3492,6 @@ YY_RULE_SETUP } } YY_BREAK -case 73: -YY_RULE_SETUP -#line 781 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::LEASE_DATABASE: - case isc::dhcp::Parser6Context::HOSTS_DATABASE: - case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_TRUST_ANCHOR(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_); - } -} - YY_BREAK -case 74: -YY_RULE_SETUP -#line 792 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::LEASE_DATABASE: - case isc::dhcp::Parser6Context::HOSTS_DATABASE: - case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_); - } -} - YY_BREAK -case 75: -YY_RULE_SETUP -#line 803 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::LEASE_DATABASE: - case isc::dhcp::Parser6Context::HOSTS_DATABASE: - case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_); - } -} - YY_BREAK case 76: YY_RULE_SETUP #line 814 "dhcp6_lexer.ll" @@ -3478,15 +3500,57 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::LEASE_DATABASE: case isc::dhcp::Parser6Context::HOSTS_DATABASE: case isc::dhcp::Parser6Context::CONFIG_DATABASE: - return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_TRUST_ANCHOR(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_); } } YY_BREAK case 77: YY_RULE_SETUP #line 825 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_); + } +} + YY_BREAK +case 78: +YY_RULE_SETUP +#line 836 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_); + } +} + YY_BREAK +case 79: +YY_RULE_SETUP +#line 847 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_); + } +} + YY_BREAK +case 80: +YY_RULE_SETUP +#line 858 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3499,9 +3563,9 @@ YY_RULE_SETUP } } YY_BREAK -case 78: +case 81: YY_RULE_SETUP -#line 837 "dhcp6_lexer.ll" +#line 870 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3514,9 +3578,9 @@ YY_RULE_SETUP } } YY_BREAK -case 79: +case 82: YY_RULE_SETUP -#line 849 "dhcp6_lexer.ll" +#line 882 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3529,9 +3593,9 @@ YY_RULE_SETUP } } YY_BREAK -case 80: +case 83: YY_RULE_SETUP -#line 861 "dhcp6_lexer.ll" +#line 894 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3544,9 +3608,9 @@ YY_RULE_SETUP } } YY_BREAK -case 81: +case 84: YY_RULE_SETUP -#line 873 "dhcp6_lexer.ll" +#line 906 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3559,9 +3623,9 @@ YY_RULE_SETUP } } YY_BREAK -case 82: +case 85: YY_RULE_SETUP -#line 885 "dhcp6_lexer.ll" +#line 918 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3574,9 +3638,9 @@ YY_RULE_SETUP } } YY_BREAK -case 83: +case 86: YY_RULE_SETUP -#line 897 "dhcp6_lexer.ll" +#line 930 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3588,9 +3652,9 @@ YY_RULE_SETUP } } YY_BREAK -case 84: +case 87: YY_RULE_SETUP -#line 908 "dhcp6_lexer.ll" +#line 941 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3602,9 +3666,9 @@ YY_RULE_SETUP } } YY_BREAK -case 85: +case 88: YY_RULE_SETUP -#line 919 "dhcp6_lexer.ll" +#line 952 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3614,9 +3678,9 @@ YY_RULE_SETUP } } YY_BREAK -case 86: +case 89: YY_RULE_SETUP -#line 928 "dhcp6_lexer.ll" +#line 961 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3626,9 +3690,9 @@ YY_RULE_SETUP } } YY_BREAK -case 87: +case 90: YY_RULE_SETUP -#line 937 "dhcp6_lexer.ll" +#line 970 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3638,9 +3702,9 @@ YY_RULE_SETUP } } YY_BREAK -case 88: +case 91: YY_RULE_SETUP -#line 946 "dhcp6_lexer.ll" +#line 979 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3652,9 +3716,9 @@ YY_RULE_SETUP } } YY_BREAK -case 89: +case 92: YY_RULE_SETUP -#line 957 "dhcp6_lexer.ll" +#line 990 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3666,9 +3730,9 @@ YY_RULE_SETUP } } YY_BREAK -case 90: +case 93: YY_RULE_SETUP -#line 968 "dhcp6_lexer.ll" +#line 1001 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3678,9 +3742,9 @@ YY_RULE_SETUP } } YY_BREAK -case 91: +case 94: YY_RULE_SETUP -#line 977 "dhcp6_lexer.ll" +#line 1010 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3690,48 +3754,6 @@ YY_RULE_SETUP } } YY_BREAK -case 92: -YY_RULE_SETUP -#line 986 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_SEND_UPDATES(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_); - } -} - YY_BREAK -case 93: -YY_RULE_SETUP -#line 997 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_); - } -} - YY_BREAK -case 94: -YY_RULE_SETUP -#line 1008 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_); - } -} - YY_BREAK case 95: YY_RULE_SETUP #line 1019 "dhcp6_lexer.ll" @@ -3740,9 +3762,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_SEND_UPDATES(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_); } } YY_BREAK @@ -3754,9 +3776,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_GENERATED_PREFIX(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_NO_UPDATE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_); } } YY_BREAK @@ -3768,9 +3790,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_OVERRIDE_CLIENT_UPDATE(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_); } } YY_BREAK @@ -3782,9 +3804,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_REPLACE_CLIENT_NAME(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_); } } YY_BREAK @@ -3796,22 +3818,23 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_DDNS_USE_CONFLICT_RESOLUTION(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_GENERATED_PREFIX(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_); } } YY_BREAK case 100: YY_RULE_SETUP -#line 1075 "dhcp6_lexer.ll" +#line 1074 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_QUALIFYING_SUFFIX(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_); } } YY_BREAK @@ -3823,15 +3846,56 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_STORE_EXTENDED_INFO(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_DDNS_UPDATE_ON_RENEW(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_); } } YY_BREAK case 102: YY_RULE_SETUP #line 1096 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_DDNS_USE_CONFLICT_RESOLUTION(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_); + } +} + YY_BREAK +case 103: +YY_RULE_SETUP +#line 1108 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_); + } +} + YY_BREAK +case 104: +YY_RULE_SETUP +#line 1118 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_STORE_EXTENDED_INFO(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_); + } +} + YY_BREAK +case 105: +YY_RULE_SETUP +#line 1129 "dhcp6_lexer.ll" { switch (driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3841,9 +3905,9 @@ YY_RULE_SETUP } } YY_BREAK -case 103: +case 106: YY_RULE_SETUP -#line 1105 "dhcp6_lexer.ll" +#line 1138 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3853,9 +3917,9 @@ YY_RULE_SETUP } } YY_BREAK -case 104: +case 107: YY_RULE_SETUP -#line 1114 "dhcp6_lexer.ll" +#line 1147 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3871,9 +3935,9 @@ YY_RULE_SETUP } } YY_BREAK -case 105: +case 108: YY_RULE_SETUP -#line 1129 "dhcp6_lexer.ll" +#line 1162 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: @@ -3890,9 +3954,9 @@ YY_RULE_SETUP } } YY_BREAK -case 106: +case 109: YY_RULE_SETUP -#line 1145 "dhcp6_lexer.ll" +#line 1178 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3902,9 +3966,9 @@ YY_RULE_SETUP } } YY_BREAK -case 107: +case 110: YY_RULE_SETUP -#line 1154 "dhcp6_lexer.ll" +#line 1187 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3914,9 +3978,9 @@ YY_RULE_SETUP } } YY_BREAK -case 108: +case 111: YY_RULE_SETUP -#line 1163 "dhcp6_lexer.ll" +#line 1196 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3926,9 +3990,9 @@ YY_RULE_SETUP } } YY_BREAK -case 109: +case 112: YY_RULE_SETUP -#line 1172 "dhcp6_lexer.ll" +#line 1205 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3938,9 +4002,9 @@ YY_RULE_SETUP } } YY_BREAK -case 110: +case 113: YY_RULE_SETUP -#line 1181 "dhcp6_lexer.ll" +#line 1214 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3950,9 +4014,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 114: YY_RULE_SETUP -#line 1190 "dhcp6_lexer.ll" +#line 1223 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3962,9 +4026,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 115: YY_RULE_SETUP -#line 1199 "dhcp6_lexer.ll" +#line 1232 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3974,9 +4038,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 116: YY_RULE_SETUP -#line 1208 "dhcp6_lexer.ll" +#line 1241 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3986,9 +4050,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 117: YY_RULE_SETUP -#line 1217 "dhcp6_lexer.ll" +#line 1250 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::PD_POOLS: @@ -3998,9 +4062,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 118: YY_RULE_SETUP -#line 1226 "dhcp6_lexer.ll" +#line 1259 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::POOLS: @@ -4010,9 +4074,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 119: YY_RULE_SETUP -#line 1235 "dhcp6_lexer.ll" +#line 1268 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4037,9 +4101,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 120: YY_RULE_SETUP -#line 1259 "dhcp6_lexer.ll" +#line 1292 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4064,9 +4128,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 121: YY_RULE_SETUP -#line 1283 "dhcp6_lexer.ll" +#line 1316 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4076,9 +4140,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 122: YY_RULE_SETUP -#line 1292 "dhcp6_lexer.ll" +#line 1325 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4089,9 +4153,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 123: YY_RULE_SETUP -#line 1302 "dhcp6_lexer.ll" +#line 1335 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4102,9 +4166,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 124: YY_RULE_SETUP -#line 1312 "dhcp6_lexer.ll" +#line 1345 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4114,9 +4178,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 125: YY_RULE_SETUP -#line 1321 "dhcp6_lexer.ll" +#line 1354 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4127,9 +4191,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 126: YY_RULE_SETUP -#line 1331 "dhcp6_lexer.ll" +#line 1364 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4141,9 +4205,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 127: YY_RULE_SETUP -#line 1342 "dhcp6_lexer.ll" +#line 1375 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4153,9 +4217,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 128: YY_RULE_SETUP -#line 1351 "dhcp6_lexer.ll" +#line 1384 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4165,9 +4229,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 129: YY_RULE_SETUP -#line 1360 "dhcp6_lexer.ll" +#line 1393 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4177,9 +4241,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 130: YY_RULE_SETUP -#line 1369 "dhcp6_lexer.ll" +#line 1402 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4189,9 +4253,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 131: YY_RULE_SETUP -#line 1378 "dhcp6_lexer.ll" +#line 1411 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATION_MODE: @@ -4201,9 +4265,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 132: YY_RULE_SETUP -#line 1387 "dhcp6_lexer.ll" +#line 1420 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4215,9 +4279,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 133: YY_RULE_SETUP -#line 1398 "dhcp6_lexer.ll" +#line 1431 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4229,9 +4293,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 134: YY_RULE_SETUP -#line 1409 "dhcp6_lexer.ll" +#line 1442 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4243,9 +4307,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 135: YY_RULE_SETUP -#line 1420 "dhcp6_lexer.ll" +#line 1453 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4256,9 +4320,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 136: YY_RULE_SETUP -#line 1430 "dhcp6_lexer.ll" +#line 1463 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4268,9 +4332,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 137: YY_RULE_SETUP -#line 1439 "dhcp6_lexer.ll" +#line 1472 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4280,9 +4344,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 138: YY_RULE_SETUP -#line 1448 "dhcp6_lexer.ll" +#line 1481 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4292,48 +4356,6 @@ YY_RULE_SETUP } } YY_BREAK -case 136: -YY_RULE_SETUP -#line 1457 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_CALCULATE_TEE_TIMES(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_); - } -} - YY_BREAK -case 137: -YY_RULE_SETUP -#line 1468 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_); - } -} - YY_BREAK -case 138: -YY_RULE_SETUP -#line 1479 "dhcp6_lexer.ll" -{ - switch(driver.ctx_) { - case isc::dhcp::Parser6Context::DHCP6: - case isc::dhcp::Parser6Context::SUBNET6: - case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_); - default: - return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_); - } -} - YY_BREAK case 139: YY_RULE_SETUP #line 1490 "dhcp6_lexer.ll" @@ -4342,9 +4364,9 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_CACHE_THRESHOLD(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_CALCULATE_TEE_TIMES(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_); } } YY_BREAK @@ -4356,15 +4378,57 @@ YY_RULE_SETUP case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: case isc::dhcp::Parser6Context::SHARED_NETWORK: - return isc::dhcp::Dhcp6Parser::make_CACHE_MAX_AGE(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_); default: - return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_); + return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_); } } YY_BREAK case 141: YY_RULE_SETUP #line 1512 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_); + } +} + YY_BREAK +case 142: +YY_RULE_SETUP +#line 1523 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_CACHE_THRESHOLD(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_); + } +} + YY_BREAK +case 143: +YY_RULE_SETUP +#line 1534 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_CACHE_MAX_AGE(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_); + } +} + YY_BREAK +case 144: +YY_RULE_SETUP +#line 1545 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4374,9 +4438,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 145: YY_RULE_SETUP -#line 1521 "dhcp6_lexer.ll" +#line 1554 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4386,9 +4450,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 146: YY_RULE_SETUP -#line 1530 "dhcp6_lexer.ll" +#line 1563 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4398,9 +4462,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 147: YY_RULE_SETUP -#line 1539 "dhcp6_lexer.ll" +#line 1572 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4410,9 +4474,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 148: YY_RULE_SETUP -#line 1548 "dhcp6_lexer.ll" +#line 1581 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4422,9 +4486,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 149: YY_RULE_SETUP -#line 1557 "dhcp6_lexer.ll" +#line 1590 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4434,9 +4498,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 150: YY_RULE_SETUP -#line 1566 "dhcp6_lexer.ll" +#line 1599 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -4446,9 +4510,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 151: YY_RULE_SETUP -#line 1575 "dhcp6_lexer.ll" +#line 1608 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4458,9 +4522,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 152: YY_RULE_SETUP -#line 1584 "dhcp6_lexer.ll" +#line 1617 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -4470,9 +4534,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 153: YY_RULE_SETUP -#line 1593 "dhcp6_lexer.ll" +#line 1626 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4483,9 +4547,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 154: YY_RULE_SETUP -#line 1603 "dhcp6_lexer.ll" +#line 1636 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4498,9 +4562,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 155: YY_RULE_SETUP -#line 1615 "dhcp6_lexer.ll" +#line 1648 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4514,9 +4578,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 156: YY_RULE_SETUP -#line 1628 "dhcp6_lexer.ll" +#line 1661 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4526,9 +4590,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 157: YY_RULE_SETUP -#line 1637 "dhcp6_lexer.ll" +#line 1670 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4538,9 +4602,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 158: YY_RULE_SETUP -#line 1646 "dhcp6_lexer.ll" +#line 1679 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4550,9 +4614,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 159: YY_RULE_SETUP -#line 1655 "dhcp6_lexer.ll" +#line 1688 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4563,9 +4627,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 160: YY_RULE_SETUP -#line 1665 "dhcp6_lexer.ll" +#line 1698 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4576,9 +4640,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 161: YY_RULE_SETUP -#line 1675 "dhcp6_lexer.ll" +#line 1708 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4588,9 +4652,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 162: YY_RULE_SETUP -#line 1684 "dhcp6_lexer.ll" +#line 1717 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4602,9 +4666,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 163: YY_RULE_SETUP -#line 1695 "dhcp6_lexer.ll" +#line 1728 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4615,9 +4679,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 164: YY_RULE_SETUP -#line 1705 "dhcp6_lexer.ll" +#line 1738 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4627,9 +4691,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 165: YY_RULE_SETUP -#line 1714 "dhcp6_lexer.ll" +#line 1747 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4640,9 +4704,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 166: YY_RULE_SETUP -#line 1724 "dhcp6_lexer.ll" +#line 1757 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4653,9 +4717,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 167: YY_RULE_SETUP -#line 1734 "dhcp6_lexer.ll" +#line 1767 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4665,9 +4729,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 168: YY_RULE_SETUP -#line 1743 "dhcp6_lexer.ll" +#line 1776 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4677,9 +4741,9 @@ YY_RULE_SETUP } } YY_BREAK -case 166: +case 169: YY_RULE_SETUP -#line 1752 "dhcp6_lexer.ll" +#line 1785 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4689,9 +4753,9 @@ YY_RULE_SETUP } } YY_BREAK -case 167: +case 170: YY_RULE_SETUP -#line 1761 "dhcp6_lexer.ll" +#line 1794 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4701,9 +4765,9 @@ YY_RULE_SETUP } } YY_BREAK -case 168: +case 171: YY_RULE_SETUP -#line 1770 "dhcp6_lexer.ll" +#line 1803 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4714,9 +4778,9 @@ YY_RULE_SETUP } } YY_BREAK -case 169: +case 172: YY_RULE_SETUP -#line 1780 "dhcp6_lexer.ll" +#line 1813 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -4726,9 +4790,9 @@ YY_RULE_SETUP } } YY_BREAK -case 170: +case 173: YY_RULE_SETUP -#line 1789 "dhcp6_lexer.ll" +#line 1822 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4738,9 +4802,9 @@ YY_RULE_SETUP } } YY_BREAK -case 171: +case 174: YY_RULE_SETUP -#line 1798 "dhcp6_lexer.ll" +#line 1831 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4750,9 +4814,9 @@ YY_RULE_SETUP } } YY_BREAK -case 172: +case 175: YY_RULE_SETUP -#line 1807 "dhcp6_lexer.ll" +#line 1840 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4762,9 +4826,9 @@ YY_RULE_SETUP } } YY_BREAK -case 173: +case 176: YY_RULE_SETUP -#line 1816 "dhcp6_lexer.ll" +#line 1849 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4774,9 +4838,9 @@ YY_RULE_SETUP } } YY_BREAK -case 174: +case 177: YY_RULE_SETUP -#line 1825 "dhcp6_lexer.ll" +#line 1858 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4786,9 +4850,9 @@ YY_RULE_SETUP } } YY_BREAK -case 175: +case 178: YY_RULE_SETUP -#line 1834 "dhcp6_lexer.ll" +#line 1867 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4798,9 +4862,9 @@ YY_RULE_SETUP } } YY_BREAK -case 176: +case 179: YY_RULE_SETUP -#line 1843 "dhcp6_lexer.ll" +#line 1876 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4810,9 +4874,9 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 180: YY_RULE_SETUP -#line 1852 "dhcp6_lexer.ll" +#line 1885 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4822,9 +4886,9 @@ YY_RULE_SETUP } } YY_BREAK -case 178: +case 181: YY_RULE_SETUP -#line 1861 "dhcp6_lexer.ll" +#line 1894 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4834,9 +4898,9 @@ YY_RULE_SETUP } } YY_BREAK -case 179: +case 182: YY_RULE_SETUP -#line 1870 "dhcp6_lexer.ll" +#line 1903 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4846,9 +4910,9 @@ YY_RULE_SETUP } } YY_BREAK -case 180: +case 183: YY_RULE_SETUP -#line 1879 "dhcp6_lexer.ll" +#line 1912 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4858,9 +4922,9 @@ YY_RULE_SETUP } } YY_BREAK -case 181: +case 184: YY_RULE_SETUP -#line 1888 "dhcp6_lexer.ll" +#line 1921 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4870,9 +4934,9 @@ YY_RULE_SETUP } } YY_BREAK -case 182: +case 185: YY_RULE_SETUP -#line 1897 "dhcp6_lexer.ll" +#line 1930 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4882,9 +4946,9 @@ YY_RULE_SETUP } } YY_BREAK -case 183: +case 186: YY_RULE_SETUP -#line 1906 "dhcp6_lexer.ll" +#line 1939 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4894,9 +4958,9 @@ YY_RULE_SETUP } } YY_BREAK -case 184: +case 187: YY_RULE_SETUP -#line 1915 "dhcp6_lexer.ll" +#line 1948 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4906,9 +4970,9 @@ YY_RULE_SETUP } } YY_BREAK -case 185: +case 188: YY_RULE_SETUP -#line 1924 "dhcp6_lexer.ll" +#line 1957 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4918,9 +4982,9 @@ YY_RULE_SETUP } } YY_BREAK -case 186: +case 189: YY_RULE_SETUP -#line 1933 "dhcp6_lexer.ll" +#line 1966 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4930,9 +4994,9 @@ YY_RULE_SETUP } } YY_BREAK -case 187: +case 190: YY_RULE_SETUP -#line 1942 "dhcp6_lexer.ll" +#line 1975 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4942,9 +5006,9 @@ YY_RULE_SETUP } } YY_BREAK -case 188: +case 191: YY_RULE_SETUP -#line 1951 "dhcp6_lexer.ll" +#line 1984 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4954,9 +5018,9 @@ YY_RULE_SETUP } } YY_BREAK -case 189: +case 192: YY_RULE_SETUP -#line 1960 "dhcp6_lexer.ll" +#line 1993 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4966,9 +5030,9 @@ YY_RULE_SETUP } } YY_BREAK -case 190: +case 193: YY_RULE_SETUP -#line 1969 "dhcp6_lexer.ll" +#line 2002 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4978,9 +5042,9 @@ YY_RULE_SETUP } } YY_BREAK -case 191: +case 194: YY_RULE_SETUP -#line 1978 "dhcp6_lexer.ll" +#line 2011 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -4990,9 +5054,9 @@ YY_RULE_SETUP } } YY_BREAK -case 192: +case 195: YY_RULE_SETUP -#line 1987 "dhcp6_lexer.ll" +#line 2020 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5002,9 +5066,9 @@ YY_RULE_SETUP } } YY_BREAK -case 193: +case 196: YY_RULE_SETUP -#line 1996 "dhcp6_lexer.ll" +#line 2029 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5014,9 +5078,9 @@ YY_RULE_SETUP } } YY_BREAK -case 194: +case 197: YY_RULE_SETUP -#line 2005 "dhcp6_lexer.ll" +#line 2038 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5026,9 +5090,9 @@ YY_RULE_SETUP } } YY_BREAK -case 195: +case 198: YY_RULE_SETUP -#line 2014 "dhcp6_lexer.ll" +#line 2047 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5038,9 +5102,9 @@ YY_RULE_SETUP } } YY_BREAK -case 196: +case 199: YY_RULE_SETUP -#line 2023 "dhcp6_lexer.ll" +#line 2056 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5050,9 +5114,9 @@ YY_RULE_SETUP } } YY_BREAK -case 197: +case 200: YY_RULE_SETUP -#line 2032 "dhcp6_lexer.ll" +#line 2065 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5062,9 +5126,9 @@ YY_RULE_SETUP } } YY_BREAK -case 198: +case 201: YY_RULE_SETUP -#line 2041 "dhcp6_lexer.ll" +#line 2074 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5074,9 +5138,9 @@ YY_RULE_SETUP } } YY_BREAK -case 199: +case 202: YY_RULE_SETUP -#line 2050 "dhcp6_lexer.ll" +#line 2083 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5086,9 +5150,9 @@ YY_RULE_SETUP } } YY_BREAK -case 200: +case 203: YY_RULE_SETUP -#line 2059 "dhcp6_lexer.ll" +#line 2092 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5098,9 +5162,9 @@ YY_RULE_SETUP } } YY_BREAK -case 201: +case 204: YY_RULE_SETUP -#line 2068 "dhcp6_lexer.ll" +#line 2101 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5110,9 +5174,9 @@ YY_RULE_SETUP } } YY_BREAK -case 202: +case 205: YY_RULE_SETUP -#line 2077 "dhcp6_lexer.ll" +#line 2110 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5122,9 +5186,9 @@ YY_RULE_SETUP } } YY_BREAK -case 203: +case 206: YY_RULE_SETUP -#line 2086 "dhcp6_lexer.ll" +#line 2119 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5134,9 +5198,9 @@ YY_RULE_SETUP } } YY_BREAK -case 204: +case 207: YY_RULE_SETUP -#line 2095 "dhcp6_lexer.ll" +#line 2128 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5146,9 +5210,9 @@ YY_RULE_SETUP } } YY_BREAK -case 205: +case 208: YY_RULE_SETUP -#line 2104 "dhcp6_lexer.ll" +#line 2137 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::COMPATIBILITY: @@ -5158,9 +5222,9 @@ YY_RULE_SETUP } } YY_BREAK -case 206: +case 209: YY_RULE_SETUP -#line 2113 "dhcp6_lexer.ll" +#line 2146 "dhcp6_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -5262,10 +5326,10 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 207: -/* rule 207 can match eol */ +case 210: +/* rule 210 can match eol */ YY_RULE_SETUP -#line 2214 "dhcp6_lexer.ll" +#line 2247 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5282,10 +5346,10 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 208: -/* rule 208 can match eol */ +case 211: +/* rule 211 can match eol */ YY_RULE_SETUP -#line 2230 "dhcp6_lexer.ll" +#line 2263 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5335,9 +5399,9 @@ YY_RULE_SETUP pos); } YY_BREAK -case 209: +case 212: YY_RULE_SETUP -#line 2279 "dhcp6_lexer.ll" +#line 2312 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5346,9 +5410,9 @@ YY_RULE_SETUP raw.size() + 1); } YY_BREAK -case 210: +case 213: YY_RULE_SETUP -#line 2287 "dhcp6_lexer.ll" +#line 2320 "dhcp6_lexer.ll" { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5364,39 +5428,39 @@ YY_RULE_SETUP pos + 1); } YY_BREAK -case 211: -YY_RULE_SETUP -#line 2302 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 212: -YY_RULE_SETUP -#line 2303 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } - YY_BREAK -case 213: -YY_RULE_SETUP -#line 2304 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } - YY_BREAK case 214: YY_RULE_SETUP -#line 2305 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } +#line 2335 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK case 215: YY_RULE_SETUP -#line 2306 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } +#line 2336 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK case 216: YY_RULE_SETUP -#line 2307 "dhcp6_lexer.ll" -{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } +#line 2337 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK case 217: YY_RULE_SETUP -#line 2309 "dhcp6_lexer.ll" +#line 2338 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 218: +YY_RULE_SETUP +#line 2339 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 219: +YY_RULE_SETUP +#line 2340 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } + YY_BREAK +case 220: +YY_RULE_SETUP +#line 2342 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -5415,9 +5479,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 218: +case 221: YY_RULE_SETUP -#line 2327 "dhcp6_lexer.ll" +#line 2360 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -5431,43 +5495,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 219: +case 222: YY_RULE_SETUP -#line 2340 "dhcp6_lexer.ll" +#line 2373 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 220: +case 223: YY_RULE_SETUP -#line 2345 "dhcp6_lexer.ll" +#line 2378 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 221: -YY_RULE_SETUP -#line 2349 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); - YY_BREAK -case 222: -YY_RULE_SETUP -#line 2351 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); - YY_BREAK -case 223: -YY_RULE_SETUP -#line 2353 "dhcp6_lexer.ll" -driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); - YY_BREAK case 224: YY_RULE_SETUP -#line 2355 "dhcp6_lexer.ll" +#line 2382 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); + YY_BREAK +case 225: +YY_RULE_SETUP +#line 2384 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); + YY_BREAK +case 226: +YY_RULE_SETUP +#line 2386 "dhcp6_lexer.ll" +driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); + YY_BREAK +case 227: +YY_RULE_SETUP +#line 2388 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 2357 "dhcp6_lexer.ll" +#line 2390 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5491,12 +5555,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 225: +case 228: YY_RULE_SETUP -#line 2380 "dhcp6_lexer.ll" +#line 2413 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 5499 "dhcp6_lexer.cc" +#line 5563 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -5815,7 +5879,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2145 ) + if ( yy_current_state >= 2184 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -5848,11 +5912,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 2145 ) + if ( yy_current_state >= 2184 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 2144); + yy_is_jam = (yy_current_state == 2183); return yy_is_jam ? 0 : yy_current_state; } @@ -6601,7 +6665,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 2380 "dhcp6_lexer.ll" +#line 2413 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 4b2b1933c6..a09dc4b13a 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -708,6 +708,39 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] } } +\"read-timeout\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_READ_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_); + } +} + +\"write-timeout\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_WRITE_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_); + } +} + +\"tcp-user-timeout\" { + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::LEASE_DATABASE: + case isc::dhcp::Parser6Context::HOSTS_DATABASE: + case isc::dhcp::Parser6Context::CONFIG_DATABASE: + return isc::dhcp::Dhcp6Parser::make_TCP_USER_TIMEOUT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_); + } +} + \"reconnect-wait-time\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LEASE_DATABASE: diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 45aad638f9..5368b0470e 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -398,73 +398,73 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 404 "dhcp6_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 410 "dhcp6_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 416 "dhcp6_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 422 "dhcp6_parser.cc" break; case symbol_kind::S_value: // value -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 428 "dhcp6_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 434 "dhcp6_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 440 "dhcp6_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 446 "dhcp6_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 452 "dhcp6_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 458 "dhcp6_parser.cc" break; case symbol_kind::S_duid_type: // duid_type -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 464 "dhcp6_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 297 "dhcp6_parser.yy" +#line 300 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 470 "dhcp6_parser.cc" break; @@ -744,133 +744,133 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 306 "dhcp6_parser.yy" +#line 309 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 750 "dhcp6_parser.cc" break; case 4: // $@2: %empty -#line 307 "dhcp6_parser.yy" +#line 310 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 756 "dhcp6_parser.cc" break; case 6: // $@3: %empty -#line 308 "dhcp6_parser.yy" +#line 311 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 762 "dhcp6_parser.cc" break; case 8: // $@4: %empty -#line 309 "dhcp6_parser.yy" +#line 312 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 768 "dhcp6_parser.cc" break; case 10: // $@5: %empty -#line 310 "dhcp6_parser.yy" +#line 313 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } #line 774 "dhcp6_parser.cc" break; case 12: // $@6: %empty -#line 311 "dhcp6_parser.yy" +#line 314 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 780 "dhcp6_parser.cc" break; case 14: // $@7: %empty -#line 312 "dhcp6_parser.yy" +#line 315 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } #line 786 "dhcp6_parser.cc" break; case 16: // $@8: %empty -#line 313 "dhcp6_parser.yy" +#line 316 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 792 "dhcp6_parser.cc" break; case 18: // $@9: %empty -#line 314 "dhcp6_parser.yy" +#line 317 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 798 "dhcp6_parser.cc" break; case 20: // $@10: %empty -#line 315 "dhcp6_parser.yy" +#line 318 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 804 "dhcp6_parser.cc" break; case 22: // $@11: %empty -#line 316 "dhcp6_parser.yy" +#line 319 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 810 "dhcp6_parser.cc" break; case 24: // $@12: %empty -#line 317 "dhcp6_parser.yy" +#line 320 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 816 "dhcp6_parser.cc" break; case 26: // $@13: %empty -#line 318 "dhcp6_parser.yy" +#line 321 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 822 "dhcp6_parser.cc" break; case 28: // $@14: %empty -#line 319 "dhcp6_parser.yy" +#line 322 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 828 "dhcp6_parser.cc" break; case 30: // value: "integer" -#line 327 "dhcp6_parser.yy" +#line 330 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 834 "dhcp6_parser.cc" break; case 31: // value: "floating point" -#line 328 "dhcp6_parser.yy" +#line 331 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 840 "dhcp6_parser.cc" break; case 32: // value: "boolean" -#line 329 "dhcp6_parser.yy" +#line 332 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 846 "dhcp6_parser.cc" break; case 33: // value: "constant string" -#line 330 "dhcp6_parser.yy" +#line 333 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 852 "dhcp6_parser.cc" break; case 34: // value: "null" -#line 331 "dhcp6_parser.yy" +#line 334 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 858 "dhcp6_parser.cc" break; case 35: // value: map2 -#line 332 "dhcp6_parser.yy" +#line 335 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 864 "dhcp6_parser.cc" break; case 36: // value: list_generic -#line 333 "dhcp6_parser.yy" +#line 336 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 870 "dhcp6_parser.cc" break; case 37: // sub_json: value -#line 336 "dhcp6_parser.yy" +#line 339 "dhcp6_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -879,7 +879,7 @@ namespace isc { namespace dhcp { break; case 38: // $@15: %empty -#line 341 "dhcp6_parser.yy" +#line 344 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -890,7 +890,7 @@ namespace isc { namespace dhcp { break; case 39: // map2: "{" $@15 map_content "}" -#line 346 "dhcp6_parser.yy" +#line 349 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -900,13 +900,13 @@ namespace isc { namespace dhcp { break; case 40: // map_value: map2 -#line 352 "dhcp6_parser.yy" +#line 355 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 906 "dhcp6_parser.cc" break; case 43: // not_empty_map: "constant string" ":" value -#line 359 "dhcp6_parser.yy" +#line 362 "dhcp6_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -916,7 +916,7 @@ namespace isc { namespace dhcp { break; case 44: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 364 "dhcp6_parser.yy" +#line 367 "dhcp6_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -927,7 +927,7 @@ namespace isc { namespace dhcp { break; case 45: // not_empty_map: not_empty_map "," -#line 370 "dhcp6_parser.yy" +#line 373 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -935,7 +935,7 @@ namespace isc { namespace dhcp { break; case 46: // $@16: %empty -#line 375 "dhcp6_parser.yy" +#line 378 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -944,7 +944,7 @@ namespace isc { namespace dhcp { break; case 47: // list_generic: "[" $@16 list_content "]" -#line 378 "dhcp6_parser.yy" +#line 381 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -952,7 +952,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: value -#line 386 "dhcp6_parser.yy" +#line 389 "dhcp6_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -961,7 +961,7 @@ namespace isc { namespace dhcp { break; case 51: // not_empty_list: not_empty_list "," value -#line 390 "dhcp6_parser.yy" +#line 393 "dhcp6_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -970,7 +970,7 @@ namespace isc { namespace dhcp { break; case 52: // not_empty_list: not_empty_list "," -#line 394 "dhcp6_parser.yy" +#line 397 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -978,7 +978,7 @@ namespace isc { namespace dhcp { break; case 53: // $@17: %empty -#line 400 "dhcp6_parser.yy" +#line 403 "dhcp6_parser.yy" { // List parsing about to start } @@ -986,7 +986,7 @@ namespace isc { namespace dhcp { break; case 54: // list_strings: "[" $@17 list_strings_content "]" -#line 402 "dhcp6_parser.yy" +#line 405 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -995,7 +995,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: "constant string" -#line 411 "dhcp6_parser.yy" +#line 414 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1004,7 +1004,7 @@ namespace isc { namespace dhcp { break; case 58: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 415 "dhcp6_parser.yy" +#line 418 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1013,7 +1013,7 @@ namespace isc { namespace dhcp { break; case 59: // not_empty_list_strings: not_empty_list_strings "," -#line 419 "dhcp6_parser.yy" +#line 422 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1021,7 +1021,7 @@ namespace isc { namespace dhcp { break; case 60: // unknown_map_entry: "constant string" ":" -#line 429 "dhcp6_parser.yy" +#line 432 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1032,7 +1032,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 438 "dhcp6_parser.yy" +#line 441 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1043,7 +1043,7 @@ namespace isc { namespace dhcp { break; case 62: // syntax_map: "{" $@18 global_object "}" -#line 443 "dhcp6_parser.yy" +#line 446 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1056,7 +1056,7 @@ namespace isc { namespace dhcp { break; case 63: // $@19: %empty -#line 453 "dhcp6_parser.yy" +#line 456 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1071,7 +1071,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object: "Dhcp6" $@19 ":" "{" global_params "}" -#line 462 "dhcp6_parser.yy" +#line 465 "dhcp6_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1081,7 +1081,7 @@ namespace isc { namespace dhcp { break; case 66: // global_object_comma: global_object "," -#line 470 "dhcp6_parser.yy" +#line 473 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1089,7 +1089,7 @@ namespace isc { namespace dhcp { break; case 67: // $@20: %empty -#line 476 "dhcp6_parser.yy" +#line 479 "dhcp6_parser.yy" { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1099,7 +1099,7 @@ namespace isc { namespace dhcp { break; case 68: // sub_dhcp6: "{" $@20 global_params "}" -#line 480 "dhcp6_parser.yy" +#line 483 "dhcp6_parser.yy" { // No global parameter is required // parsing completed @@ -1108,7 +1108,7 @@ namespace isc { namespace dhcp { break; case 71: // global_params: global_params "," -#line 487 "dhcp6_parser.yy" +#line 490 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1116,7 +1116,7 @@ namespace isc { namespace dhcp { break; case 139: // $@21: %empty -#line 563 "dhcp6_parser.yy" +#line 566 "dhcp6_parser.yy" { ctx.unique("data-directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1125,7 +1125,7 @@ namespace isc { namespace dhcp { break; case 140: // data_directory: "data-directory" $@21 ":" "constant string" -#line 566 "dhcp6_parser.yy" +#line 569 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); @@ -1135,7 +1135,7 @@ namespace isc { namespace dhcp { break; case 141: // preferred_lifetime: "preferred-lifetime" ":" "integer" -#line 572 "dhcp6_parser.yy" +#line 575 "dhcp6_parser.yy" { ctx.unique("preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1145,7 +1145,7 @@ namespace isc { namespace dhcp { break; case 142: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" -#line 578 "dhcp6_parser.yy" +#line 581 "dhcp6_parser.yy" { ctx.unique("min-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1155,7 +1155,7 @@ namespace isc { namespace dhcp { break; case 143: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" -#line 584 "dhcp6_parser.yy" +#line 587 "dhcp6_parser.yy" { ctx.unique("max-preferred-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1165,7 +1165,7 @@ namespace isc { namespace dhcp { break; case 144: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 590 "dhcp6_parser.yy" +#line 593 "dhcp6_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1175,7 +1175,7 @@ namespace isc { namespace dhcp { break; case 145: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 596 "dhcp6_parser.yy" +#line 599 "dhcp6_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1185,7 +1185,7 @@ namespace isc { namespace dhcp { break; case 146: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 602 "dhcp6_parser.yy" +#line 605 "dhcp6_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1195,7 +1195,7 @@ namespace isc { namespace dhcp { break; case 147: // renew_timer: "renew-timer" ":" "integer" -#line 608 "dhcp6_parser.yy" +#line 611 "dhcp6_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1205,7 +1205,7 @@ namespace isc { namespace dhcp { break; case 148: // rebind_timer: "rebind-timer" ":" "integer" -#line 614 "dhcp6_parser.yy" +#line 617 "dhcp6_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1215,7 +1215,7 @@ namespace isc { namespace dhcp { break; case 149: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 620 "dhcp6_parser.yy" +#line 623 "dhcp6_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1225,7 +1225,7 @@ namespace isc { namespace dhcp { break; case 150: // t1_percent: "t1-percent" ":" "floating point" -#line 626 "dhcp6_parser.yy" +#line 629 "dhcp6_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1235,7 +1235,7 @@ namespace isc { namespace dhcp { break; case 151: // t2_percent: "t2-percent" ":" "floating point" -#line 632 "dhcp6_parser.yy" +#line 635 "dhcp6_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1245,7 +1245,7 @@ namespace isc { namespace dhcp { break; case 152: // cache_threshold: "cache-threshold" ":" "floating point" -#line 638 "dhcp6_parser.yy" +#line 641 "dhcp6_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1255,7 +1255,7 @@ namespace isc { namespace dhcp { break; case 153: // cache_max_age: "cache-max-age" ":" "integer" -#line 644 "dhcp6_parser.yy" +#line 647 "dhcp6_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1265,7 +1265,7 @@ namespace isc { namespace dhcp { break; case 154: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 650 "dhcp6_parser.yy" +#line 653 "dhcp6_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1275,7 +1275,7 @@ namespace isc { namespace dhcp { break; case 155: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 656 "dhcp6_parser.yy" +#line 659 "dhcp6_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1285,7 +1285,7 @@ namespace isc { namespace dhcp { break; case 156: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 662 "dhcp6_parser.yy" +#line 665 "dhcp6_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1295,7 +1295,7 @@ namespace isc { namespace dhcp { break; case 157: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 668 "dhcp6_parser.yy" +#line 671 "dhcp6_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1305,7 +1305,7 @@ namespace isc { namespace dhcp { break; case 158: // $@22: %empty -#line 674 "dhcp6_parser.yy" +#line 677 "dhcp6_parser.yy" { ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -1314,7 +1314,7 @@ namespace isc { namespace dhcp { break; case 159: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 677 "dhcp6_parser.yy" +#line 680 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1323,7 +1323,7 @@ namespace isc { namespace dhcp { break; case 160: // ddns_replace_client_name_value: "when-present" -#line 683 "dhcp6_parser.yy" +#line 686 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1331,7 +1331,7 @@ namespace isc { namespace dhcp { break; case 161: // ddns_replace_client_name_value: "never" -#line 686 "dhcp6_parser.yy" +#line 689 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1339,7 +1339,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_replace_client_name_value: "always" -#line 689 "dhcp6_parser.yy" +#line 692 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1347,7 +1347,7 @@ namespace isc { namespace dhcp { break; case 163: // ddns_replace_client_name_value: "when-not-present" -#line 692 "dhcp6_parser.yy" +#line 695 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1355,7 +1355,7 @@ namespace isc { namespace dhcp { break; case 164: // ddns_replace_client_name_value: "boolean" -#line 695 "dhcp6_parser.yy" +#line 698 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); @@ -1364,7 +1364,7 @@ namespace isc { namespace dhcp { break; case 165: // $@23: %empty -#line 701 "dhcp6_parser.yy" +#line 704 "dhcp6_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1373,7 +1373,7 @@ namespace isc { namespace dhcp { break; case 166: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 704 "dhcp6_parser.yy" +#line 707 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1383,7 +1383,7 @@ namespace isc { namespace dhcp { break; case 167: // $@24: %empty -#line 710 "dhcp6_parser.yy" +#line 713 "dhcp6_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1392,7 +1392,7 @@ namespace isc { namespace dhcp { break; case 168: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 713 "dhcp6_parser.yy" +#line 716 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1402,7 +1402,7 @@ namespace isc { namespace dhcp { break; case 169: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 719 "dhcp6_parser.yy" +#line 722 "dhcp6_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1412,7 +1412,7 @@ namespace isc { namespace dhcp { break; case 170: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 725 "dhcp6_parser.yy" +#line 728 "dhcp6_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1422,7 +1422,7 @@ namespace isc { namespace dhcp { break; case 171: // $@25: %empty -#line 731 "dhcp6_parser.yy" +#line 734 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1431,7 +1431,7 @@ namespace isc { namespace dhcp { break; case 172: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" -#line 734 "dhcp6_parser.yy" +#line 737 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -1441,7 +1441,7 @@ namespace isc { namespace dhcp { break; case 173: // $@26: %empty -#line 740 "dhcp6_parser.yy" +#line 743 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1450,7 +1450,7 @@ namespace isc { namespace dhcp { break; case 174: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" -#line 743 "dhcp6_parser.yy" +#line 746 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -1460,7 +1460,7 @@ namespace isc { namespace dhcp { break; case 175: // store_extended_info: "store-extended-info" ":" "boolean" -#line 749 "dhcp6_parser.yy" +#line 752 "dhcp6_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1470,7 +1470,7 @@ namespace isc { namespace dhcp { break; case 176: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 755 "dhcp6_parser.yy" +#line 758 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1480,7 +1480,7 @@ namespace isc { namespace dhcp { break; case 177: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 761 "dhcp6_parser.yy" +#line 764 "dhcp6_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1490,7 +1490,7 @@ namespace isc { namespace dhcp { break; case 178: // $@27: %empty -#line 767 "dhcp6_parser.yy" +#line 770 "dhcp6_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1499,7 +1499,7 @@ namespace isc { namespace dhcp { break; case 179: // server_tag: "server-tag" $@27 ":" "constant string" -#line 770 "dhcp6_parser.yy" +#line 773 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1509,7 +1509,7 @@ namespace isc { namespace dhcp { break; case 180: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 776 "dhcp6_parser.yy" +#line 779 "dhcp6_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1519,7 +1519,7 @@ namespace isc { namespace dhcp { break; case 181: // $@28: %empty -#line 782 "dhcp6_parser.yy" +#line 785 "dhcp6_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1528,7 +1528,7 @@ namespace isc { namespace dhcp { break; case 182: // allocator: "allocator" $@28 ":" "constant string" -#line 785 "dhcp6_parser.yy" +#line 788 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1538,7 +1538,7 @@ namespace isc { namespace dhcp { break; case 183: // $@29: %empty -#line 791 "dhcp6_parser.yy" +#line 794 "dhcp6_parser.yy" { ctx.unique("pd-allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1547,7 +1547,7 @@ namespace isc { namespace dhcp { break; case 184: // pd_allocator: "pd-allocator" $@29 ":" "constant string" -#line 794 "dhcp6_parser.yy" +#line 797 "dhcp6_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-allocator", al); @@ -1557,7 +1557,7 @@ namespace isc { namespace dhcp { break; case 185: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 800 "dhcp6_parser.yy" +#line 803 "dhcp6_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1567,7 +1567,7 @@ namespace isc { namespace dhcp { break; case 186: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 806 "dhcp6_parser.yy" +#line 809 "dhcp6_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1577,7 +1577,7 @@ namespace isc { namespace dhcp { break; case 187: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 812 "dhcp6_parser.yy" +#line 815 "dhcp6_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1587,7 +1587,7 @@ namespace isc { namespace dhcp { break; case 188: // $@30: %empty -#line 818 "dhcp6_parser.yy" +#line 821 "dhcp6_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1599,7 +1599,7 @@ namespace isc { namespace dhcp { break; case 189: // interfaces_config: "interfaces-config" $@30 ":" "{" interfaces_config_params "}" -#line 824 "dhcp6_parser.yy" +#line 827 "dhcp6_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1609,7 +1609,7 @@ namespace isc { namespace dhcp { break; case 190: // $@31: %empty -#line 830 "dhcp6_parser.yy" +#line 833 "dhcp6_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1619,7 +1619,7 @@ namespace isc { namespace dhcp { break; case 191: // sub_interfaces6: "{" $@31 interfaces_config_params "}" -#line 834 "dhcp6_parser.yy" +#line 837 "dhcp6_parser.yy" { // No interfaces config param is required // parsing completed @@ -1628,7 +1628,7 @@ namespace isc { namespace dhcp { break; case 194: // interfaces_config_params: interfaces_config_params "," -#line 841 "dhcp6_parser.yy" +#line 844 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1636,7 +1636,7 @@ namespace isc { namespace dhcp { break; case 203: // $@32: %empty -#line 856 "dhcp6_parser.yy" +#line 859 "dhcp6_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1648,7 +1648,7 @@ namespace isc { namespace dhcp { break; case 204: // interfaces_list: "interfaces" $@32 ":" list_strings -#line 862 "dhcp6_parser.yy" +#line 865 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1657,7 +1657,7 @@ namespace isc { namespace dhcp { break; case 205: // re_detect: "re-detect" ":" "boolean" -#line 867 "dhcp6_parser.yy" +#line 870 "dhcp6_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1667,7 +1667,7 @@ namespace isc { namespace dhcp { break; case 206: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 873 "dhcp6_parser.yy" +#line 876 "dhcp6_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1677,7 +1677,7 @@ namespace isc { namespace dhcp { break; case 207: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 879 "dhcp6_parser.yy" +#line 882 "dhcp6_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1687,7 +1687,7 @@ namespace isc { namespace dhcp { break; case 208: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 885 "dhcp6_parser.yy" +#line 888 "dhcp6_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1697,7 +1697,7 @@ namespace isc { namespace dhcp { break; case 209: // $@33: %empty -#line 891 "dhcp6_parser.yy" +#line 894 "dhcp6_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1709,7 +1709,7 @@ namespace isc { namespace dhcp { break; case 210: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}" -#line 897 "dhcp6_parser.yy" +#line 900 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1720,7 +1720,7 @@ namespace isc { namespace dhcp { break; case 211: // $@34: %empty -#line 904 "dhcp6_parser.yy" +#line 907 "dhcp6_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1732,7 +1732,7 @@ namespace isc { namespace dhcp { break; case 212: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" -#line 910 "dhcp6_parser.yy" +#line 913 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1743,7 +1743,7 @@ namespace isc { namespace dhcp { break; case 213: // $@35: %empty -#line 917 "dhcp6_parser.yy" +#line 920 "dhcp6_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1755,7 +1755,7 @@ namespace isc { namespace dhcp { break; case 214: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" -#line 923 "dhcp6_parser.yy" +#line 926 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1764,7 +1764,7 @@ namespace isc { namespace dhcp { break; case 219: // not_empty_database_list: not_empty_database_list "," -#line 934 "dhcp6_parser.yy" +#line 937 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1772,7 +1772,7 @@ namespace isc { namespace dhcp { break; case 220: // $@36: %empty -#line 939 "dhcp6_parser.yy" +#line 942 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1782,7 +1782,7 @@ namespace isc { namespace dhcp { break; case 221: // database: "{" $@36 database_map_params "}" -#line 943 "dhcp6_parser.yy" +#line 946 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -1792,15 +1792,15 @@ namespace isc { namespace dhcp { break; case 224: // database_map_params: database_map_params "," -#line 951 "dhcp6_parser.yy" +#line 954 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 1800 "dhcp6_parser.cc" break; - case 244: // $@37: %empty -#line 977 "dhcp6_parser.yy" + case 247: // $@37: %empty +#line 983 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); @@ -1808,8 +1808,8 @@ namespace isc { namespace dhcp { #line 1809 "dhcp6_parser.cc" break; - case 245: // database_type: "type" $@37 ":" db_type -#line 980 "dhcp6_parser.yy" + case 248: // database_type: "type" $@37 ":" db_type +#line 986 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1817,26 +1817,26 @@ namespace isc { namespace dhcp { #line 1818 "dhcp6_parser.cc" break; - case 246: // db_type: "memfile" -#line 985 "dhcp6_parser.yy" + case 249: // db_type: "memfile" +#line 991 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1824 "dhcp6_parser.cc" break; - case 247: // db_type: "mysql" -#line 986 "dhcp6_parser.yy" + case 250: // db_type: "mysql" +#line 992 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1830 "dhcp6_parser.cc" break; - case 248: // db_type: "postgresql" -#line 987 "dhcp6_parser.yy" + case 251: // db_type: "postgresql" +#line 993 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1836 "dhcp6_parser.cc" break; - case 249: // $@38: %empty -#line 990 "dhcp6_parser.yy" + case 252: // $@38: %empty +#line 996 "dhcp6_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1844,8 +1844,8 @@ namespace isc { namespace dhcp { #line 1845 "dhcp6_parser.cc" break; - case 250: // user: "user" $@38 ":" "constant string" -#line 993 "dhcp6_parser.yy" + case 253: // user: "user" $@38 ":" "constant string" +#line 999 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -1854,8 +1854,8 @@ namespace isc { namespace dhcp { #line 1855 "dhcp6_parser.cc" break; - case 251: // $@39: %empty -#line 999 "dhcp6_parser.yy" + case 254: // $@39: %empty +#line 1005 "dhcp6_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1863,8 +1863,8 @@ namespace isc { namespace dhcp { #line 1864 "dhcp6_parser.cc" break; - case 252: // password: "password" $@39 ":" "constant string" -#line 1002 "dhcp6_parser.yy" + case 255: // password: "password" $@39 ":" "constant string" +#line 1008 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -1873,8 +1873,8 @@ namespace isc { namespace dhcp { #line 1874 "dhcp6_parser.cc" break; - case 253: // $@40: %empty -#line 1008 "dhcp6_parser.yy" + case 256: // $@40: %empty +#line 1014 "dhcp6_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1882,8 +1882,8 @@ namespace isc { namespace dhcp { #line 1883 "dhcp6_parser.cc" break; - case 254: // host: "host" $@40 ":" "constant string" -#line 1011 "dhcp6_parser.yy" + case 257: // host: "host" $@40 ":" "constant string" +#line 1017 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -1892,8 +1892,8 @@ namespace isc { namespace dhcp { #line 1893 "dhcp6_parser.cc" break; - case 255: // port: "port" ":" "integer" -#line 1017 "dhcp6_parser.yy" + case 258: // port: "port" ":" "integer" +#line 1023 "dhcp6_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1902,8 +1902,8 @@ namespace isc { namespace dhcp { #line 1903 "dhcp6_parser.cc" break; - case 256: // $@41: %empty -#line 1023 "dhcp6_parser.yy" + case 259: // $@41: %empty +#line 1029 "dhcp6_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1911,8 +1911,8 @@ namespace isc { namespace dhcp { #line 1912 "dhcp6_parser.cc" break; - case 257: // name: "name" $@41 ":" "constant string" -#line 1026 "dhcp6_parser.yy" + case 260: // name: "name" $@41 ":" "constant string" +#line 1032 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -1921,8 +1921,8 @@ namespace isc { namespace dhcp { #line 1922 "dhcp6_parser.cc" break; - case 258: // persist: "persist" ":" "boolean" -#line 1032 "dhcp6_parser.yy" + case 261: // persist: "persist" ":" "boolean" +#line 1038 "dhcp6_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1931,8 +1931,8 @@ namespace isc { namespace dhcp { #line 1932 "dhcp6_parser.cc" break; - case 259: // lfc_interval: "lfc-interval" ":" "integer" -#line 1038 "dhcp6_parser.yy" + case 262: // lfc_interval: "lfc-interval" ":" "integer" +#line 1044 "dhcp6_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1941,8 +1941,8 @@ namespace isc { namespace dhcp { #line 1942 "dhcp6_parser.cc" break; - case 260: // readonly: "readonly" ":" "boolean" -#line 1044 "dhcp6_parser.yy" + case 263: // readonly: "readonly" ":" "boolean" +#line 1050 "dhcp6_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1951,8 +1951,8 @@ namespace isc { namespace dhcp { #line 1952 "dhcp6_parser.cc" break; - case 261: // connect_timeout: "connect-timeout" ":" "integer" -#line 1050 "dhcp6_parser.yy" + case 264: // connect_timeout: "connect-timeout" ":" "integer" +#line 1056 "dhcp6_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1961,150 +1961,180 @@ namespace isc { namespace dhcp { #line 1962 "dhcp6_parser.cc" break; - case 262: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1056 "dhcp6_parser.yy" + case 265: // read_timeout: "read-timeout" ":" "integer" +#line 1062 "dhcp6_parser.yy" + { + ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("connect-timeout", n); +} +#line 1972 "dhcp6_parser.cc" + break; + + case 266: // write_timeout: "write-timeout" ":" "integer" +#line 1068 "dhcp6_parser.yy" + { + ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("write-timeout", n); +} +#line 1982 "dhcp6_parser.cc" + break; + + case 267: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" +#line 1074 "dhcp6_parser.yy" + { + ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); + ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("tcp-user-timeout", n); +} +#line 1992 "dhcp6_parser.cc" + break; + + case 268: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" +#line 1081 "dhcp6_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1972 "dhcp6_parser.cc" +#line 2002 "dhcp6_parser.cc" break; - case 263: // $@42: %empty -#line 1062 "dhcp6_parser.yy" + case 269: // $@42: %empty +#line 1087 "dhcp6_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); } -#line 1981 "dhcp6_parser.cc" +#line 2011 "dhcp6_parser.cc" break; - case 264: // on_fail: "on-fail" $@42 ":" on_fail_mode -#line 1065 "dhcp6_parser.yy" + case 270: // on_fail: "on-fail" $@42 ":" on_fail_mode +#line 1090 "dhcp6_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1990 "dhcp6_parser.cc" +#line 2020 "dhcp6_parser.cc" break; - case 265: // on_fail_mode: "stop-retry-exit" -#line 1070 "dhcp6_parser.yy" + case 271: // on_fail_mode: "stop-retry-exit" +#line 1095 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 1996 "dhcp6_parser.cc" +#line 2026 "dhcp6_parser.cc" break; - case 266: // on_fail_mode: "serve-retry-exit" -#line 1071 "dhcp6_parser.yy" + case 272: // on_fail_mode: "serve-retry-exit" +#line 1096 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } -#line 2002 "dhcp6_parser.cc" +#line 2032 "dhcp6_parser.cc" break; - case 267: // on_fail_mode: "serve-retry-continue" -#line 1072 "dhcp6_parser.yy" + case 273: // on_fail_mode: "serve-retry-continue" +#line 1097 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } -#line 2008 "dhcp6_parser.cc" +#line 2038 "dhcp6_parser.cc" break; - case 268: // max_row_errors: "max-row-errors" ":" "integer" -#line 1075 "dhcp6_parser.yy" + case 274: // max_row_errors: "max-row-errors" ":" "integer" +#line 1100 "dhcp6_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-row-errors", n); } -#line 2018 "dhcp6_parser.cc" +#line 2048 "dhcp6_parser.cc" break; - case 269: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1081 "dhcp6_parser.yy" + case 275: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" +#line 1106 "dhcp6_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 2028 "dhcp6_parser.cc" +#line 2058 "dhcp6_parser.cc" break; - case 270: // $@43: %empty -#line 1087 "dhcp6_parser.yy" + case 276: // $@43: %empty +#line 1112 "dhcp6_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2037 "dhcp6_parser.cc" +#line 2067 "dhcp6_parser.cc" break; - case 271: // trust_anchor: "trust-anchor" $@43 ":" "constant string" -#line 1090 "dhcp6_parser.yy" + case 277: // trust_anchor: "trust-anchor" $@43 ":" "constant string" +#line 1115 "dhcp6_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); ctx.leave(); } -#line 2047 "dhcp6_parser.cc" +#line 2077 "dhcp6_parser.cc" break; - case 272: // $@44: %empty -#line 1096 "dhcp6_parser.yy" + case 278: // $@44: %empty +#line 1121 "dhcp6_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2056 "dhcp6_parser.cc" +#line 2086 "dhcp6_parser.cc" break; - case 273: // cert_file: "cert-file" $@44 ":" "constant string" -#line 1099 "dhcp6_parser.yy" + case 279: // cert_file: "cert-file" $@44 ":" "constant string" +#line 1124 "dhcp6_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); ctx.leave(); } -#line 2066 "dhcp6_parser.cc" +#line 2096 "dhcp6_parser.cc" break; - case 274: // $@45: %empty -#line 1105 "dhcp6_parser.yy" + case 280: // $@45: %empty +#line 1130 "dhcp6_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2075 "dhcp6_parser.cc" +#line 2105 "dhcp6_parser.cc" break; - case 275: // key_file: "key-file" $@45 ":" "constant string" -#line 1108 "dhcp6_parser.yy" + case 281: // key_file: "key-file" $@45 ":" "constant string" +#line 1133 "dhcp6_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); ctx.leave(); } -#line 2085 "dhcp6_parser.cc" +#line 2115 "dhcp6_parser.cc" break; - case 276: // $@46: %empty -#line 1114 "dhcp6_parser.yy" + case 282: // $@46: %empty +#line 1139 "dhcp6_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2094 "dhcp6_parser.cc" +#line 2124 "dhcp6_parser.cc" break; - case 277: // cipher_list: "cipher-list" $@46 ":" "constant string" -#line 1117 "dhcp6_parser.yy" + case 283: // cipher_list: "cipher-list" $@46 ":" "constant string" +#line 1142 "dhcp6_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); ctx.leave(); } -#line 2104 "dhcp6_parser.cc" +#line 2134 "dhcp6_parser.cc" break; - case 278: // $@47: %empty -#line 1123 "dhcp6_parser.yy" + case 284: // $@47: %empty +#line 1148 "dhcp6_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2112,37 +2142,37 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 2116 "dhcp6_parser.cc" +#line 2146 "dhcp6_parser.cc" break; - case 279: // sanity_checks: "sanity-checks" $@47 ":" "{" sanity_checks_params "}" -#line 1129 "dhcp6_parser.yy" + case 285: // sanity_checks: "sanity-checks" $@47 ":" "{" sanity_checks_params "}" +#line 1154 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2125 "dhcp6_parser.cc" +#line 2155 "dhcp6_parser.cc" break; - case 282: // sanity_checks_params: sanity_checks_params "," -#line 1136 "dhcp6_parser.yy" + case 288: // sanity_checks_params: sanity_checks_params "," +#line 1161 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2133 "dhcp6_parser.cc" +#line 2163 "dhcp6_parser.cc" break; - case 285: // $@48: %empty -#line 1145 "dhcp6_parser.yy" + case 291: // $@48: %empty +#line 1170 "dhcp6_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2142 "dhcp6_parser.cc" +#line 2172 "dhcp6_parser.cc" break; - case 286: // lease_checks: "lease-checks" $@48 ":" "constant string" -#line 1148 "dhcp6_parser.yy" + case 292: // lease_checks: "lease-checks" $@48 ":" "constant string" +#line 1173 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2158,20 +2188,20 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 2162 "dhcp6_parser.cc" +#line 2192 "dhcp6_parser.cc" break; - case 287: // $@49: %empty -#line 1164 "dhcp6_parser.yy" + case 293: // $@49: %empty +#line 1189 "dhcp6_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2171 "dhcp6_parser.cc" +#line 2201 "dhcp6_parser.cc" break; - case 288: // extended_info_checks: "extended-info-checks" $@49 ":" "constant string" -#line 1167 "dhcp6_parser.yy" + case 294: // extended_info_checks: "extended-info-checks" $@49 ":" "constant string" +#line 1192 "dhcp6_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -2186,11 +2216,11 @@ namespace isc { namespace dhcp { ", supported values are: none, fix, strict, pedantic"); } } -#line 2190 "dhcp6_parser.cc" +#line 2220 "dhcp6_parser.cc" break; - case 289: // $@50: %empty -#line 1182 "dhcp6_parser.yy" + case 295: // $@50: %empty +#line 1207 "dhcp6_parser.yy" { ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2198,46 +2228,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 2202 "dhcp6_parser.cc" +#line 2232 "dhcp6_parser.cc" break; - case 290: // mac_sources: "mac-sources" $@50 ":" "[" mac_sources_list "]" -#line 1188 "dhcp6_parser.yy" + case 296: // mac_sources: "mac-sources" $@50 ":" "[" mac_sources_list "]" +#line 1213 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2211 "dhcp6_parser.cc" +#line 2241 "dhcp6_parser.cc" break; - case 293: // mac_sources_list: mac_sources_list "," -#line 1195 "dhcp6_parser.yy" + case 299: // mac_sources_list: mac_sources_list "," +#line 1220 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2219 "dhcp6_parser.cc" +#line 2249 "dhcp6_parser.cc" break; - case 296: // duid_id: "duid" -#line 1204 "dhcp6_parser.yy" + case 302: // duid_id: "duid" +#line 1229 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2228 "dhcp6_parser.cc" +#line 2258 "dhcp6_parser.cc" break; - case 297: // string_id: "constant string" -#line 1209 "dhcp6_parser.yy" + case 303: // string_id: "constant string" +#line 1234 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 2237 "dhcp6_parser.cc" +#line 2267 "dhcp6_parser.cc" break; - case 298: // $@51: %empty -#line 1214 "dhcp6_parser.yy" + case 304: // $@51: %empty +#line 1239 "dhcp6_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2245,46 +2275,46 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 2249 "dhcp6_parser.cc" +#line 2279 "dhcp6_parser.cc" break; - case 299: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]" -#line 1220 "dhcp6_parser.yy" + case 305: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]" +#line 1245 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2258 "dhcp6_parser.cc" +#line 2288 "dhcp6_parser.cc" break; - case 302: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1227 "dhcp6_parser.yy" + case 308: // host_reservation_identifiers_list: host_reservation_identifiers_list "," +#line 1252 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2266 "dhcp6_parser.cc" +#line 2296 "dhcp6_parser.cc" break; - case 306: // hw_address_id: "hw-address" -#line 1237 "dhcp6_parser.yy" + case 312: // hw_address_id: "hw-address" +#line 1262 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 2275 "dhcp6_parser.cc" +#line 2305 "dhcp6_parser.cc" break; - case 307: // flex_id: "flex-id" -#line 1242 "dhcp6_parser.yy" + case 313: // flex_id: "flex-id" +#line 1267 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 2284 "dhcp6_parser.cc" +#line 2314 "dhcp6_parser.cc" break; - case 308: // $@52: %empty -#line 1249 "dhcp6_parser.yy" + case 314: // $@52: %empty +#line 1274 "dhcp6_parser.yy" { ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2292,20 +2322,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2296 "dhcp6_parser.cc" +#line 2326 "dhcp6_parser.cc" break; - case 309: // relay_supplied_options: "relay-supplied-options" $@52 ":" "[" list_content "]" -#line 1255 "dhcp6_parser.yy" + case 315: // relay_supplied_options: "relay-supplied-options" $@52 ":" "[" list_content "]" +#line 1280 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2305 "dhcp6_parser.cc" +#line 2335 "dhcp6_parser.cc" break; - case 310: // $@53: %empty -#line 1262 "dhcp6_parser.yy" + case 316: // $@53: %empty +#line 1287 "dhcp6_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2313,60 +2343,60 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(mt); ctx.enter(ctx.DHCP_MULTI_THREADING); } -#line 2317 "dhcp6_parser.cc" +#line 2347 "dhcp6_parser.cc" break; - case 311: // dhcp_multi_threading: "multi-threading" $@53 ":" "{" multi_threading_params "}" -#line 1268 "dhcp6_parser.yy" + case 317: // dhcp_multi_threading: "multi-threading" $@53 ":" "{" multi_threading_params "}" +#line 1293 "dhcp6_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 2328 "dhcp6_parser.cc" +#line 2358 "dhcp6_parser.cc" break; - case 314: // multi_threading_params: multi_threading_params "," -#line 1277 "dhcp6_parser.yy" + case 320: // multi_threading_params: multi_threading_params "," +#line 1302 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2336 "dhcp6_parser.cc" +#line 2366 "dhcp6_parser.cc" break; - case 321: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1290 "dhcp6_parser.yy" + case 327: // enable_multi_threading: "enable-multi-threading" ":" "boolean" +#line 1315 "dhcp6_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-multi-threading", b); } -#line 2346 "dhcp6_parser.cc" +#line 2376 "dhcp6_parser.cc" break; - case 322: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1296 "dhcp6_parser.yy" + case 328: // thread_pool_size: "thread-pool-size" ":" "integer" +#line 1321 "dhcp6_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("thread-pool-size", prf); } -#line 2356 "dhcp6_parser.cc" +#line 2386 "dhcp6_parser.cc" break; - case 323: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1302 "dhcp6_parser.yy" + case 329: // packet_queue_size: "packet-queue-size" ":" "integer" +#line 1327 "dhcp6_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("packet-queue-size", prf); } -#line 2366 "dhcp6_parser.cc" +#line 2396 "dhcp6_parser.cc" break; - case 324: // $@54: %empty -#line 1308 "dhcp6_parser.yy" + case 330: // $@54: %empty +#line 1333 "dhcp6_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2374,113 +2404,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 2378 "dhcp6_parser.cc" +#line 2408 "dhcp6_parser.cc" break; - case 325: // hooks_libraries: "hooks-libraries" $@54 ":" "[" hooks_libraries_list "]" -#line 1314 "dhcp6_parser.yy" + case 331: // hooks_libraries: "hooks-libraries" $@54 ":" "[" hooks_libraries_list "]" +#line 1339 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2387 "dhcp6_parser.cc" +#line 2417 "dhcp6_parser.cc" break; - case 330: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1325 "dhcp6_parser.yy" + case 336: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," +#line 1350 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2395 "dhcp6_parser.cc" +#line 2425 "dhcp6_parser.cc" break; - case 331: // $@55: %empty -#line 1330 "dhcp6_parser.yy" + case 337: // $@55: %empty +#line 1355 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2405 "dhcp6_parser.cc" +#line 2435 "dhcp6_parser.cc" break; - case 332: // hooks_library: "{" $@55 hooks_params "}" -#line 1334 "dhcp6_parser.yy" + case 338: // hooks_library: "{" $@55 hooks_params "}" +#line 1359 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2415 "dhcp6_parser.cc" +#line 2445 "dhcp6_parser.cc" break; - case 333: // $@56: %empty -#line 1340 "dhcp6_parser.yy" + case 339: // $@56: %empty +#line 1365 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2425 "dhcp6_parser.cc" +#line 2455 "dhcp6_parser.cc" break; - case 334: // sub_hooks_library: "{" $@56 hooks_params "}" -#line 1344 "dhcp6_parser.yy" + case 340: // sub_hooks_library: "{" $@56 hooks_params "}" +#line 1369 "dhcp6_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2435 "dhcp6_parser.cc" +#line 2465 "dhcp6_parser.cc" break; - case 337: // hooks_params: hooks_params "," -#line 1352 "dhcp6_parser.yy" + case 343: // hooks_params: hooks_params "," +#line 1377 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2443 "dhcp6_parser.cc" +#line 2473 "dhcp6_parser.cc" break; - case 341: // $@57: %empty -#line 1362 "dhcp6_parser.yy" + case 347: // $@57: %empty +#line 1387 "dhcp6_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2452 "dhcp6_parser.cc" +#line 2482 "dhcp6_parser.cc" break; - case 342: // library: "library" $@57 ":" "constant string" -#line 1365 "dhcp6_parser.yy" + case 348: // library: "library" $@57 ":" "constant string" +#line 1390 "dhcp6_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 2462 "dhcp6_parser.cc" +#line 2492 "dhcp6_parser.cc" break; - case 343: // $@58: %empty -#line 1371 "dhcp6_parser.yy" + case 349: // $@58: %empty +#line 1396 "dhcp6_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2471 "dhcp6_parser.cc" +#line 2501 "dhcp6_parser.cc" break; - case 344: // parameters: "parameters" $@58 ":" map_value -#line 1374 "dhcp6_parser.yy" + case 350: // parameters: "parameters" $@58 ":" map_value +#line 1399 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2480 "dhcp6_parser.cc" +#line 2510 "dhcp6_parser.cc" break; - case 345: // $@59: %empty -#line 1380 "dhcp6_parser.yy" + case 351: // $@59: %empty +#line 1405 "dhcp6_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2488,89 +2518,89 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 2492 "dhcp6_parser.cc" +#line 2522 "dhcp6_parser.cc" break; - case 346: // expired_leases_processing: "expired-leases-processing" $@59 ":" "{" expired_leases_params "}" -#line 1386 "dhcp6_parser.yy" + case 352: // expired_leases_processing: "expired-leases-processing" $@59 ":" "{" expired_leases_params "}" +#line 1411 "dhcp6_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 2502 "dhcp6_parser.cc" +#line 2532 "dhcp6_parser.cc" break; - case 349: // expired_leases_params: expired_leases_params "," -#line 1394 "dhcp6_parser.yy" + case 355: // expired_leases_params: expired_leases_params "," +#line 1419 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2510 "dhcp6_parser.cc" +#line 2540 "dhcp6_parser.cc" break; - case 356: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1407 "dhcp6_parser.yy" + case 362: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" +#line 1432 "dhcp6_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 2520 "dhcp6_parser.cc" +#line 2550 "dhcp6_parser.cc" break; - case 357: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1413 "dhcp6_parser.yy" + case 363: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" +#line 1438 "dhcp6_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 2530 "dhcp6_parser.cc" +#line 2560 "dhcp6_parser.cc" break; - case 358: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1419 "dhcp6_parser.yy" + case 364: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" +#line 1444 "dhcp6_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 2540 "dhcp6_parser.cc" +#line 2570 "dhcp6_parser.cc" break; - case 359: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1425 "dhcp6_parser.yy" + case 365: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" +#line 1450 "dhcp6_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 2550 "dhcp6_parser.cc" +#line 2580 "dhcp6_parser.cc" break; - case 360: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1431 "dhcp6_parser.yy" + case 366: // max_reclaim_time: "max-reclaim-time" ":" "integer" +#line 1456 "dhcp6_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 2560 "dhcp6_parser.cc" +#line 2590 "dhcp6_parser.cc" break; - case 361: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1437 "dhcp6_parser.yy" + case 367: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" +#line 1462 "dhcp6_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 2570 "dhcp6_parser.cc" +#line 2600 "dhcp6_parser.cc" break; - case 362: // $@60: %empty -#line 1446 "dhcp6_parser.yy" + case 368: // $@60: %empty +#line 1471 "dhcp6_parser.yy" { ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2578,38 +2608,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 2582 "dhcp6_parser.cc" +#line 2612 "dhcp6_parser.cc" break; - case 363: // subnet6_list: "subnet6" $@60 ":" "[" subnet6_list_content "]" -#line 1452 "dhcp6_parser.yy" + case 369: // subnet6_list: "subnet6" $@60 ":" "[" subnet6_list_content "]" +#line 1477 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2591 "dhcp6_parser.cc" +#line 2621 "dhcp6_parser.cc" break; - case 368: // not_empty_subnet6_list: not_empty_subnet6_list "," -#line 1466 "dhcp6_parser.yy" + case 374: // not_empty_subnet6_list: not_empty_subnet6_list "," +#line 1491 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2599 "dhcp6_parser.cc" +#line 2629 "dhcp6_parser.cc" break; - case 369: // $@61: %empty -#line 1475 "dhcp6_parser.yy" + case 375: // $@61: %empty +#line 1500 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2609 "dhcp6_parser.cc" +#line 2639 "dhcp6_parser.cc" break; - case 370: // subnet6: "{" $@61 subnet6_params "}" -#line 1479 "dhcp6_parser.yy" + case 376: // subnet6: "{" $@61 subnet6_params "}" +#line 1504 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2631,115 +2661,115 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2635 "dhcp6_parser.cc" +#line 2665 "dhcp6_parser.cc" break; - case 371: // $@62: %empty -#line 1501 "dhcp6_parser.yy" + case 377: // $@62: %empty +#line 1526 "dhcp6_parser.yy" { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2645 "dhcp6_parser.cc" +#line 2675 "dhcp6_parser.cc" break; - case 372: // sub_subnet6: "{" $@62 subnet6_params "}" -#line 1505 "dhcp6_parser.yy" + case 378: // sub_subnet6: "{" $@62 subnet6_params "}" +#line 1530 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2655 "dhcp6_parser.cc" +#line 2685 "dhcp6_parser.cc" break; - case 375: // subnet6_params: subnet6_params "," -#line 1514 "dhcp6_parser.yy" + case 381: // subnet6_params: subnet6_params "," +#line 1539 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2663 "dhcp6_parser.cc" +#line 2693 "dhcp6_parser.cc" break; - case 421: // $@63: %empty -#line 1567 "dhcp6_parser.yy" + case 427: // $@63: %empty +#line 1592 "dhcp6_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2672 "dhcp6_parser.cc" +#line 2702 "dhcp6_parser.cc" break; - case 422: // subnet: "subnet" $@63 ":" "constant string" -#line 1570 "dhcp6_parser.yy" + case 428: // subnet: "subnet" $@63 ":" "constant string" +#line 1595 "dhcp6_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 2682 "dhcp6_parser.cc" +#line 2712 "dhcp6_parser.cc" break; - case 423: // $@64: %empty -#line 1576 "dhcp6_parser.yy" + case 429: // $@64: %empty +#line 1601 "dhcp6_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2691 "dhcp6_parser.cc" +#line 2721 "dhcp6_parser.cc" break; - case 424: // interface: "interface" $@64 ":" "constant string" -#line 1579 "dhcp6_parser.yy" + case 430: // interface: "interface" $@64 ":" "constant string" +#line 1604 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 2701 "dhcp6_parser.cc" +#line 2731 "dhcp6_parser.cc" break; - case 425: // $@65: %empty -#line 1585 "dhcp6_parser.yy" + case 431: // $@65: %empty +#line 1610 "dhcp6_parser.yy" { ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2710 "dhcp6_parser.cc" +#line 2740 "dhcp6_parser.cc" break; - case 426: // interface_id: "interface-id" $@65 ":" "constant string" -#line 1588 "dhcp6_parser.yy" + case 432: // interface_id: "interface-id" $@65 ":" "constant string" +#line 1613 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2720 "dhcp6_parser.cc" +#line 2750 "dhcp6_parser.cc" break; - case 427: // $@66: %empty -#line 1594 "dhcp6_parser.yy" + case 433: // $@66: %empty +#line 1619 "dhcp6_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 2729 "dhcp6_parser.cc" +#line 2759 "dhcp6_parser.cc" break; - case 428: // client_class: "client-class" $@66 ":" "constant string" -#line 1597 "dhcp6_parser.yy" + case 434: // client_class: "client-class" $@66 ":" "constant string" +#line 1622 "dhcp6_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2739 "dhcp6_parser.cc" +#line 2769 "dhcp6_parser.cc" break; - case 429: // $@67: %empty -#line 1603 "dhcp6_parser.yy" + case 435: // $@67: %empty +#line 1628 "dhcp6_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2747,112 +2777,112 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2751 "dhcp6_parser.cc" +#line 2781 "dhcp6_parser.cc" break; - case 430: // require_client_classes: "require-client-classes" $@67 ":" list_strings -#line 1609 "dhcp6_parser.yy" + case 436: // require_client_classes: "require-client-classes" $@67 ":" list_strings +#line 1634 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2760 "dhcp6_parser.cc" +#line 2790 "dhcp6_parser.cc" break; - case 431: // reservations_global: "reservations-global" ":" "boolean" -#line 1614 "dhcp6_parser.yy" + case 437: // reservations_global: "reservations-global" ":" "boolean" +#line 1639 "dhcp6_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-global", b); } -#line 2770 "dhcp6_parser.cc" +#line 2800 "dhcp6_parser.cc" break; - case 432: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1620 "dhcp6_parser.yy" + case 438: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" +#line 1645 "dhcp6_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-in-subnet", b); } -#line 2780 "dhcp6_parser.cc" +#line 2810 "dhcp6_parser.cc" break; - case 433: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1626 "dhcp6_parser.yy" + case 439: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" +#line 1651 "dhcp6_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations-out-of-pool", b); } -#line 2790 "dhcp6_parser.cc" +#line 2820 "dhcp6_parser.cc" break; - case 434: // $@68: %empty -#line 1632 "dhcp6_parser.yy" + case 440: // $@68: %empty +#line 1657 "dhcp6_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); } -#line 2799 "dhcp6_parser.cc" +#line 2829 "dhcp6_parser.cc" break; - case 435: // reservation_mode: "reservation-mode" $@68 ":" hr_mode -#line 1635 "dhcp6_parser.yy" + case 441: // reservation_mode: "reservation-mode" $@68 ":" hr_mode +#line 1660 "dhcp6_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 2808 "dhcp6_parser.cc" +#line 2838 "dhcp6_parser.cc" break; - case 436: // hr_mode: "disabled" -#line 1640 "dhcp6_parser.yy" + case 442: // hr_mode: "disabled" +#line 1665 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2814 "dhcp6_parser.cc" +#line 2844 "dhcp6_parser.cc" break; - case 437: // hr_mode: "out-of-pool" -#line 1641 "dhcp6_parser.yy" + case 443: // hr_mode: "out-of-pool" +#line 1666 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2820 "dhcp6_parser.cc" +#line 2850 "dhcp6_parser.cc" break; - case 438: // hr_mode: "global" -#line 1642 "dhcp6_parser.yy" + case 444: // hr_mode: "global" +#line 1667 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2826 "dhcp6_parser.cc" +#line 2856 "dhcp6_parser.cc" break; - case 439: // hr_mode: "all" -#line 1643 "dhcp6_parser.yy" + case 445: // hr_mode: "all" +#line 1668 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2832 "dhcp6_parser.cc" +#line 2862 "dhcp6_parser.cc" break; - case 440: // id: "id" ":" "integer" -#line 1646 "dhcp6_parser.yy" + case 446: // id: "id" ":" "integer" +#line 1671 "dhcp6_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2842 "dhcp6_parser.cc" +#line 2872 "dhcp6_parser.cc" break; - case 441: // rapid_commit: "rapid-commit" ":" "boolean" -#line 1652 "dhcp6_parser.yy" + case 447: // rapid_commit: "rapid-commit" ":" "boolean" +#line 1677 "dhcp6_parser.yy" { ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location)); ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2852 "dhcp6_parser.cc" +#line 2882 "dhcp6_parser.cc" break; - case 442: // $@69: %empty -#line 1660 "dhcp6_parser.yy" + case 448: // $@69: %empty +#line 1685 "dhcp6_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2860,54 +2890,54 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2864 "dhcp6_parser.cc" +#line 2894 "dhcp6_parser.cc" break; - case 443: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]" -#line 1666 "dhcp6_parser.yy" + case 449: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]" +#line 1691 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2873 "dhcp6_parser.cc" +#line 2903 "dhcp6_parser.cc" break; - case 448: // shared_networks_list: shared_networks_list "," -#line 1679 "dhcp6_parser.yy" + case 454: // shared_networks_list: shared_networks_list "," +#line 1704 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2881 "dhcp6_parser.cc" +#line 2911 "dhcp6_parser.cc" break; - case 449: // $@70: %empty -#line 1684 "dhcp6_parser.yy" + case 455: // $@70: %empty +#line 1709 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2891 "dhcp6_parser.cc" +#line 2921 "dhcp6_parser.cc" break; - case 450: // shared_network: "{" $@70 shared_network_params "}" -#line 1688 "dhcp6_parser.yy" + case 456: // shared_network: "{" $@70 shared_network_params "}" +#line 1713 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 2899 "dhcp6_parser.cc" +#line 2929 "dhcp6_parser.cc" break; - case 453: // shared_network_params: shared_network_params "," -#line 1694 "dhcp6_parser.yy" + case 459: // shared_network_params: shared_network_params "," +#line 1719 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2907 "dhcp6_parser.cc" +#line 2937 "dhcp6_parser.cc" break; - case 496: // $@71: %empty -#line 1747 "dhcp6_parser.yy" + case 502: // $@71: %empty +#line 1772 "dhcp6_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2915,55 +2945,55 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2919 "dhcp6_parser.cc" +#line 2949 "dhcp6_parser.cc" break; - case 497: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]" -#line 1753 "dhcp6_parser.yy" + case 503: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]" +#line 1778 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 2928 "dhcp6_parser.cc" +#line 2958 "dhcp6_parser.cc" break; - case 498: // $@72: %empty -#line 1761 "dhcp6_parser.yy" + case 504: // $@72: %empty +#line 1786 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2937 "dhcp6_parser.cc" +#line 2967 "dhcp6_parser.cc" break; - case 499: // sub_option_def_list: "{" $@72 option_def_list "}" -#line 1764 "dhcp6_parser.yy" + case 505: // sub_option_def_list: "{" $@72 option_def_list "}" +#line 1789 "dhcp6_parser.yy" { // parsing completed } -#line 2945 "dhcp6_parser.cc" +#line 2975 "dhcp6_parser.cc" break; - case 504: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1776 "dhcp6_parser.yy" + case 510: // not_empty_option_def_list: not_empty_option_def_list "," +#line 1801 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 2953 "dhcp6_parser.cc" +#line 2983 "dhcp6_parser.cc" break; - case 505: // $@73: %empty -#line 1783 "dhcp6_parser.yy" + case 511: // $@73: %empty +#line 1808 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2963 "dhcp6_parser.cc" +#line 2993 "dhcp6_parser.cc" break; - case 506: // option_def_entry: "{" $@73 option_def_params "}" -#line 1787 "dhcp6_parser.yy" + case 512: // option_def_entry: "{" $@73 option_def_params "}" +#line 1812 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2971,21 +3001,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2975 "dhcp6_parser.cc" +#line 3005 "dhcp6_parser.cc" break; - case 507: // $@74: %empty -#line 1798 "dhcp6_parser.yy" + case 513: // $@74: %empty +#line 1823 "dhcp6_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2985 "dhcp6_parser.cc" +#line 3015 "dhcp6_parser.cc" break; - case 508: // sub_option_def: "{" $@74 option_def_params "}" -#line 1802 "dhcp6_parser.yy" + case 514: // sub_option_def: "{" $@74 option_def_params "}" +#line 1827 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2993,115 +3023,115 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2997 "dhcp6_parser.cc" +#line 3027 "dhcp6_parser.cc" break; - case 513: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1818 "dhcp6_parser.yy" + case 519: // not_empty_option_def_params: not_empty_option_def_params "," +#line 1843 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3005 "dhcp6_parser.cc" +#line 3035 "dhcp6_parser.cc" break; - case 525: // code: "code" ":" "integer" -#line 1837 "dhcp6_parser.yy" + case 531: // code: "code" ":" "integer" +#line 1862 "dhcp6_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 3015 "dhcp6_parser.cc" +#line 3045 "dhcp6_parser.cc" break; - case 527: // $@75: %empty -#line 1845 "dhcp6_parser.yy" + case 533: // $@75: %empty +#line 1870 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3024 "dhcp6_parser.cc" +#line 3054 "dhcp6_parser.cc" break; - case 528: // option_def_type: "type" $@75 ":" "constant string" -#line 1848 "dhcp6_parser.yy" + case 534: // option_def_type: "type" $@75 ":" "constant string" +#line 1873 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 3034 "dhcp6_parser.cc" +#line 3064 "dhcp6_parser.cc" break; - case 529: // $@76: %empty -#line 1854 "dhcp6_parser.yy" + case 535: // $@76: %empty +#line 1879 "dhcp6_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3043 "dhcp6_parser.cc" +#line 3073 "dhcp6_parser.cc" break; - case 530: // option_def_record_types: "record-types" $@76 ":" "constant string" -#line 1857 "dhcp6_parser.yy" + case 536: // option_def_record_types: "record-types" $@76 ":" "constant string" +#line 1882 "dhcp6_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } -#line 3053 "dhcp6_parser.cc" +#line 3083 "dhcp6_parser.cc" break; - case 531: // $@77: %empty -#line 1863 "dhcp6_parser.yy" + case 537: // $@77: %empty +#line 1888 "dhcp6_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3062 "dhcp6_parser.cc" +#line 3092 "dhcp6_parser.cc" break; - case 532: // space: "space" $@77 ":" "constant string" -#line 1866 "dhcp6_parser.yy" + case 538: // space: "space" $@77 ":" "constant string" +#line 1891 "dhcp6_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 3072 "dhcp6_parser.cc" +#line 3102 "dhcp6_parser.cc" break; - case 534: // $@78: %empty -#line 1874 "dhcp6_parser.yy" + case 540: // $@78: %empty +#line 1899 "dhcp6_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3081 "dhcp6_parser.cc" +#line 3111 "dhcp6_parser.cc" break; - case 535: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string" -#line 1877 "dhcp6_parser.yy" + case 541: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string" +#line 1902 "dhcp6_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 3091 "dhcp6_parser.cc" +#line 3121 "dhcp6_parser.cc" break; - case 536: // option_def_array: "array" ":" "boolean" -#line 1883 "dhcp6_parser.yy" + case 542: // option_def_array: "array" ":" "boolean" +#line 1908 "dhcp6_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 3101 "dhcp6_parser.cc" +#line 3131 "dhcp6_parser.cc" break; - case 537: // $@79: %empty -#line 1893 "dhcp6_parser.yy" + case 543: // $@79: %empty +#line 1918 "dhcp6_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3109,113 +3139,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 3113 "dhcp6_parser.cc" +#line 3143 "dhcp6_parser.cc" break; - case 538: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]" -#line 1899 "dhcp6_parser.yy" + case 544: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]" +#line 1924 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3122 "dhcp6_parser.cc" +#line 3152 "dhcp6_parser.cc" break; - case 543: // not_empty_option_data_list: not_empty_option_data_list "," -#line 1914 "dhcp6_parser.yy" + case 549: // not_empty_option_data_list: not_empty_option_data_list "," +#line 1939 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3130 "dhcp6_parser.cc" +#line 3160 "dhcp6_parser.cc" break; - case 544: // $@80: %empty -#line 1921 "dhcp6_parser.yy" + case 550: // $@80: %empty +#line 1946 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3140 "dhcp6_parser.cc" +#line 3170 "dhcp6_parser.cc" break; - case 545: // option_data_entry: "{" $@80 option_data_params "}" -#line 1925 "dhcp6_parser.yy" + case 551: // option_data_entry: "{" $@80 option_data_params "}" +#line 1950 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 3149 "dhcp6_parser.cc" +#line 3179 "dhcp6_parser.cc" break; - case 546: // $@81: %empty -#line 1933 "dhcp6_parser.yy" + case 552: // $@81: %empty +#line 1958 "dhcp6_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3159 "dhcp6_parser.cc" +#line 3189 "dhcp6_parser.cc" break; - case 547: // sub_option_data: "{" $@81 option_data_params "}" -#line 1937 "dhcp6_parser.yy" + case 553: // sub_option_data: "{" $@81 option_data_params "}" +#line 1962 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed } -#line 3168 "dhcp6_parser.cc" +#line 3198 "dhcp6_parser.cc" break; - case 552: // not_empty_option_data_params: not_empty_option_data_params "," -#line 1953 "dhcp6_parser.yy" + case 558: // not_empty_option_data_params: not_empty_option_data_params "," +#line 1978 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3176 "dhcp6_parser.cc" +#line 3206 "dhcp6_parser.cc" break; - case 563: // $@82: %empty -#line 1973 "dhcp6_parser.yy" + case 569: // $@82: %empty +#line 1998 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3185 "dhcp6_parser.cc" +#line 3215 "dhcp6_parser.cc" break; - case 564: // option_data_data: "data" $@82 ":" "constant string" -#line 1976 "dhcp6_parser.yy" + case 570: // option_data_data: "data" $@82 ":" "constant string" +#line 2001 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 3195 "dhcp6_parser.cc" +#line 3225 "dhcp6_parser.cc" break; - case 567: // option_data_csv_format: "csv-format" ":" "boolean" -#line 1986 "dhcp6_parser.yy" + case 573: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2011 "dhcp6_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 3205 "dhcp6_parser.cc" +#line 3235 "dhcp6_parser.cc" break; - case 568: // option_data_always_send: "always-send" ":" "boolean" -#line 1992 "dhcp6_parser.yy" + case 574: // option_data_always_send: "always-send" ":" "boolean" +#line 2017 "dhcp6_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 3215 "dhcp6_parser.cc" +#line 3245 "dhcp6_parser.cc" break; - case 569: // $@83: %empty -#line 2001 "dhcp6_parser.yy" + case 575: // $@83: %empty +#line 2026 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3223,103 +3253,103 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3227 "dhcp6_parser.cc" +#line 3257 "dhcp6_parser.cc" break; - case 570: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" -#line 2007 "dhcp6_parser.yy" + case 576: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" +#line 2032 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3236 "dhcp6_parser.cc" +#line 3266 "dhcp6_parser.cc" break; - case 575: // not_empty_pools_list: not_empty_pools_list "," -#line 2020 "dhcp6_parser.yy" + case 581: // not_empty_pools_list: not_empty_pools_list "," +#line 2045 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3244 "dhcp6_parser.cc" +#line 3274 "dhcp6_parser.cc" break; - case 576: // $@84: %empty -#line 2025 "dhcp6_parser.yy" + case 582: // $@84: %empty +#line 2050 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3254 "dhcp6_parser.cc" +#line 3284 "dhcp6_parser.cc" break; - case 577: // pool_list_entry: "{" $@84 pool_params "}" -#line 2029 "dhcp6_parser.yy" + case 583: // pool_list_entry: "{" $@84 pool_params "}" +#line 2054 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3264 "dhcp6_parser.cc" +#line 3294 "dhcp6_parser.cc" break; - case 578: // $@85: %empty -#line 2035 "dhcp6_parser.yy" + case 584: // $@85: %empty +#line 2060 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3274 "dhcp6_parser.cc" +#line 3304 "dhcp6_parser.cc" break; - case 579: // sub_pool6: "{" $@85 pool_params "}" -#line 2039 "dhcp6_parser.yy" + case 585: // sub_pool6: "{" $@85 pool_params "}" +#line 2064 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3284 "dhcp6_parser.cc" +#line 3314 "dhcp6_parser.cc" break; - case 582: // pool_params: pool_params "," -#line 2047 "dhcp6_parser.yy" + case 588: // pool_params: pool_params "," +#line 2072 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3292 "dhcp6_parser.cc" +#line 3322 "dhcp6_parser.cc" break; - case 590: // $@86: %empty -#line 2061 "dhcp6_parser.yy" + case 596: // $@86: %empty +#line 2086 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3301 "dhcp6_parser.cc" +#line 3331 "dhcp6_parser.cc" break; - case 591: // pool_entry: "pool" $@86 ":" "constant string" -#line 2064 "dhcp6_parser.yy" + case 597: // pool_entry: "pool" $@86 ":" "constant string" +#line 2089 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3311 "dhcp6_parser.cc" +#line 3341 "dhcp6_parser.cc" break; - case 592: // $@87: %empty -#line 2070 "dhcp6_parser.yy" + case 598: // $@87: %empty +#line 2095 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3319 "dhcp6_parser.cc" +#line 3349 "dhcp6_parser.cc" break; - case 593: // user_context: "user-context" $@87 ":" map_value -#line 2072 "dhcp6_parser.yy" + case 599: // user_context: "user-context" $@87 ":" map_value +#line 2097 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3342,19 +3372,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3346 "dhcp6_parser.cc" +#line 3376 "dhcp6_parser.cc" break; - case 594: // $@88: %empty -#line 2095 "dhcp6_parser.yy" + case 600: // $@88: %empty +#line 2120 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3354 "dhcp6_parser.cc" +#line 3384 "dhcp6_parser.cc" break; - case 595: // comment: "comment" $@88 ":" "constant string" -#line 2097 "dhcp6_parser.yy" + case 601: // comment: "comment" $@88 ":" "constant string" +#line 2122 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3379,11 +3409,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3383 "dhcp6_parser.cc" +#line 3413 "dhcp6_parser.cc" break; - case 596: // $@89: %empty -#line 2125 "dhcp6_parser.yy" + case 602: // $@89: %empty +#line 2150 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3391,38 +3421,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3395 "dhcp6_parser.cc" +#line 3425 "dhcp6_parser.cc" break; - case 597: // pd_pools_list: "pd-pools" $@89 ":" "[" pd_pools_list_content "]" -#line 2131 "dhcp6_parser.yy" + case 603: // pd_pools_list: "pd-pools" $@89 ":" "[" pd_pools_list_content "]" +#line 2156 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3404 "dhcp6_parser.cc" +#line 3434 "dhcp6_parser.cc" break; - case 602: // not_empty_pd_pools_list: not_empty_pd_pools_list "," -#line 2144 "dhcp6_parser.yy" + case 608: // not_empty_pd_pools_list: not_empty_pd_pools_list "," +#line 2169 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3412 "dhcp6_parser.cc" +#line 3442 "dhcp6_parser.cc" break; - case 603: // $@90: %empty -#line 2149 "dhcp6_parser.yy" + case 609: // $@90: %empty +#line 2174 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3422 "dhcp6_parser.cc" +#line 3452 "dhcp6_parser.cc" break; - case 604: // pd_pool_entry: "{" $@90 pd_pool_params "}" -#line 2153 "dhcp6_parser.yy" + case 610: // pd_pool_entry: "{" $@90 pd_pool_params "}" +#line 2178 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3430,21 +3460,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3434 "dhcp6_parser.cc" +#line 3464 "dhcp6_parser.cc" break; - case 605: // $@91: %empty -#line 2161 "dhcp6_parser.yy" + case 611: // $@91: %empty +#line 2186 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3444 "dhcp6_parser.cc" +#line 3474 "dhcp6_parser.cc" break; - case 606: // sub_pd_pool: "{" $@91 pd_pool_params "}" -#line 2165 "dhcp6_parser.yy" + case 612: // sub_pd_pool: "{" $@91 pd_pool_params "}" +#line 2190 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3452,87 +3482,87 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3456 "dhcp6_parser.cc" +#line 3486 "dhcp6_parser.cc" break; - case 609: // pd_pool_params: pd_pool_params "," -#line 2175 "dhcp6_parser.yy" + case 615: // pd_pool_params: pd_pool_params "," +#line 2200 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3464 "dhcp6_parser.cc" +#line 3494 "dhcp6_parser.cc" break; - case 621: // $@92: %empty -#line 2193 "dhcp6_parser.yy" + case 627: // $@92: %empty +#line 2218 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3473 "dhcp6_parser.cc" +#line 3503 "dhcp6_parser.cc" break; - case 622: // pd_prefix: "prefix" $@92 ":" "constant string" -#line 2196 "dhcp6_parser.yy" + case 628: // pd_prefix: "prefix" $@92 ":" "constant string" +#line 2221 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3483 "dhcp6_parser.cc" +#line 3513 "dhcp6_parser.cc" break; - case 623: // pd_prefix_len: "prefix-len" ":" "integer" -#line 2202 "dhcp6_parser.yy" + case 629: // pd_prefix_len: "prefix-len" ":" "integer" +#line 2227 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3493 "dhcp6_parser.cc" +#line 3523 "dhcp6_parser.cc" break; - case 624: // $@93: %empty -#line 2208 "dhcp6_parser.yy" + case 630: // $@93: %empty +#line 2233 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3502 "dhcp6_parser.cc" +#line 3532 "dhcp6_parser.cc" break; - case 625: // excluded_prefix: "excluded-prefix" $@93 ":" "constant string" -#line 2211 "dhcp6_parser.yy" + case 631: // excluded_prefix: "excluded-prefix" $@93 ":" "constant string" +#line 2236 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 3512 "dhcp6_parser.cc" +#line 3542 "dhcp6_parser.cc" break; - case 626: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 2217 "dhcp6_parser.yy" + case 632: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" +#line 2242 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3522 "dhcp6_parser.cc" +#line 3552 "dhcp6_parser.cc" break; - case 627: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2223 "dhcp6_parser.yy" + case 633: // pd_delegated_len: "delegated-len" ":" "integer" +#line 2248 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3532 "dhcp6_parser.cc" +#line 3562 "dhcp6_parser.cc" break; - case 628: // $@94: %empty -#line 2232 "dhcp6_parser.yy" + case 634: // $@94: %empty +#line 2257 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3540,74 +3570,74 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3544 "dhcp6_parser.cc" +#line 3574 "dhcp6_parser.cc" break; - case 629: // reservations: "reservations" $@94 ":" "[" reservations_list "]" -#line 2238 "dhcp6_parser.yy" + case 635: // reservations: "reservations" $@94 ":" "[" reservations_list "]" +#line 2263 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3553 "dhcp6_parser.cc" +#line 3583 "dhcp6_parser.cc" break; - case 634: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2249 "dhcp6_parser.yy" + case 640: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2274 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3561 "dhcp6_parser.cc" +#line 3591 "dhcp6_parser.cc" break; - case 635: // $@95: %empty -#line 2254 "dhcp6_parser.yy" + case 641: // $@95: %empty +#line 2279 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3571 "dhcp6_parser.cc" +#line 3601 "dhcp6_parser.cc" break; - case 636: // reservation: "{" $@95 reservation_params "}" -#line 2258 "dhcp6_parser.yy" + case 642: // reservation: "{" $@95 reservation_params "}" +#line 2283 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3580 "dhcp6_parser.cc" +#line 3610 "dhcp6_parser.cc" break; - case 637: // $@96: %empty -#line 2263 "dhcp6_parser.yy" + case 643: // $@96: %empty +#line 2288 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3590 "dhcp6_parser.cc" +#line 3620 "dhcp6_parser.cc" break; - case 638: // sub_reservation: "{" $@96 reservation_params "}" -#line 2267 "dhcp6_parser.yy" + case 644: // sub_reservation: "{" $@96 reservation_params "}" +#line 2292 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3599 "dhcp6_parser.cc" +#line 3629 "dhcp6_parser.cc" break; - case 643: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2278 "dhcp6_parser.yy" + case 649: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2303 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3607 "dhcp6_parser.cc" +#line 3637 "dhcp6_parser.cc" break; - case 655: // $@97: %empty -#line 2297 "dhcp6_parser.yy" + case 661: // $@97: %empty +#line 2322 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3615,20 +3645,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3619 "dhcp6_parser.cc" +#line 3649 "dhcp6_parser.cc" break; - case 656: // ip_addresses: "ip-addresses" $@97 ":" list_strings -#line 2303 "dhcp6_parser.yy" + case 662: // ip_addresses: "ip-addresses" $@97 ":" list_strings +#line 2328 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3628 "dhcp6_parser.cc" +#line 3658 "dhcp6_parser.cc" break; - case 657: // $@98: %empty -#line 2308 "dhcp6_parser.yy" + case 663: // $@98: %empty +#line 2333 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3636,96 +3666,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3640 "dhcp6_parser.cc" +#line 3670 "dhcp6_parser.cc" break; - case 658: // prefixes: "prefixes" $@98 ":" list_strings -#line 2314 "dhcp6_parser.yy" + case 664: // prefixes: "prefixes" $@98 ":" list_strings +#line 2339 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3649 "dhcp6_parser.cc" +#line 3679 "dhcp6_parser.cc" break; - case 659: // $@99: %empty -#line 2319 "dhcp6_parser.yy" + case 665: // $@99: %empty +#line 2344 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3658 "dhcp6_parser.cc" +#line 3688 "dhcp6_parser.cc" break; - case 660: // duid: "duid" $@99 ":" "constant string" -#line 2322 "dhcp6_parser.yy" + case 666: // duid: "duid" $@99 ":" "constant string" +#line 2347 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3668 "dhcp6_parser.cc" +#line 3698 "dhcp6_parser.cc" break; - case 661: // $@100: %empty -#line 2328 "dhcp6_parser.yy" + case 667: // $@100: %empty +#line 2353 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3677 "dhcp6_parser.cc" +#line 3707 "dhcp6_parser.cc" break; - case 662: // hw_address: "hw-address" $@100 ":" "constant string" -#line 2331 "dhcp6_parser.yy" + case 668: // hw_address: "hw-address" $@100 ":" "constant string" +#line 2356 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3687 "dhcp6_parser.cc" +#line 3717 "dhcp6_parser.cc" break; - case 663: // $@101: %empty -#line 2337 "dhcp6_parser.yy" + case 669: // $@101: %empty +#line 2362 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3696 "dhcp6_parser.cc" +#line 3726 "dhcp6_parser.cc" break; - case 664: // hostname: "hostname" $@101 ":" "constant string" -#line 2340 "dhcp6_parser.yy" + case 670: // hostname: "hostname" $@101 ":" "constant string" +#line 2365 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3706 "dhcp6_parser.cc" +#line 3736 "dhcp6_parser.cc" break; - case 665: // $@102: %empty -#line 2346 "dhcp6_parser.yy" + case 671: // $@102: %empty +#line 2371 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3715 "dhcp6_parser.cc" +#line 3745 "dhcp6_parser.cc" break; - case 666: // flex_id_value: "flex-id" $@102 ":" "constant string" -#line 2349 "dhcp6_parser.yy" + case 672: // flex_id_value: "flex-id" $@102 ":" "constant string" +#line 2374 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3725 "dhcp6_parser.cc" +#line 3755 "dhcp6_parser.cc" break; - case 667: // $@103: %empty -#line 2355 "dhcp6_parser.yy" + case 673: // $@103: %empty +#line 2380 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3733,20 +3763,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3737 "dhcp6_parser.cc" +#line 3767 "dhcp6_parser.cc" break; - case 668: // reservation_client_classes: "client-classes" $@103 ":" list_strings -#line 2361 "dhcp6_parser.yy" + case 674: // reservation_client_classes: "client-classes" $@103 ":" list_strings +#line 2386 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3746 "dhcp6_parser.cc" +#line 3776 "dhcp6_parser.cc" break; - case 669: // $@104: %empty -#line 2369 "dhcp6_parser.yy" + case 675: // $@104: %empty +#line 2394 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3754,39 +3784,39 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3758 "dhcp6_parser.cc" +#line 3788 "dhcp6_parser.cc" break; - case 670: // relay: "relay" $@104 ":" "{" relay_map "}" -#line 2375 "dhcp6_parser.yy" + case 676: // relay: "relay" $@104 ":" "{" relay_map "}" +#line 2400 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3767 "dhcp6_parser.cc" +#line 3797 "dhcp6_parser.cc" break; - case 673: // $@105: %empty -#line 2384 "dhcp6_parser.yy" + case 679: // $@105: %empty +#line 2409 "dhcp6_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3776 "dhcp6_parser.cc" +#line 3806 "dhcp6_parser.cc" break; - case 674: // ip_address: "ip-address" $@105 ":" "constant string" -#line 2387 "dhcp6_parser.yy" + case 680: // ip_address: "ip-address" $@105 ":" "constant string" +#line 2412 "dhcp6_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3786 "dhcp6_parser.cc" +#line 3816 "dhcp6_parser.cc" break; - case 675: // $@106: %empty -#line 2396 "dhcp6_parser.yy" + case 681: // $@106: %empty +#line 2421 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3794,104 +3824,104 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3798 "dhcp6_parser.cc" +#line 3828 "dhcp6_parser.cc" break; - case 676: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]" -#line 2402 "dhcp6_parser.yy" + case 682: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]" +#line 2427 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3807 "dhcp6_parser.cc" +#line 3837 "dhcp6_parser.cc" break; - case 679: // client_classes_list: client_classes_list "," -#line 2409 "dhcp6_parser.yy" + case 685: // client_classes_list: client_classes_list "," +#line 2434 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3815 "dhcp6_parser.cc" +#line 3845 "dhcp6_parser.cc" break; - case 680: // $@107: %empty -#line 2414 "dhcp6_parser.yy" + case 686: // $@107: %empty +#line 2439 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3825 "dhcp6_parser.cc" +#line 3855 "dhcp6_parser.cc" break; - case 681: // client_class_entry: "{" $@107 client_class_params "}" -#line 2418 "dhcp6_parser.yy" + case 687: // client_class_entry: "{" $@107 client_class_params "}" +#line 2443 "dhcp6_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3835 "dhcp6_parser.cc" +#line 3865 "dhcp6_parser.cc" break; - case 686: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2430 "dhcp6_parser.yy" + case 692: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2455 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3843 "dhcp6_parser.cc" +#line 3873 "dhcp6_parser.cc" break; - case 702: // $@108: %empty -#line 2453 "dhcp6_parser.yy" + case 708: // $@108: %empty +#line 2478 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3852 "dhcp6_parser.cc" +#line 3882 "dhcp6_parser.cc" break; - case 703: // client_class_test: "test" $@108 ":" "constant string" -#line 2456 "dhcp6_parser.yy" + case 709: // client_class_test: "test" $@108 ":" "constant string" +#line 2481 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3862 "dhcp6_parser.cc" +#line 3892 "dhcp6_parser.cc" break; - case 704: // $@109: %empty -#line 2462 "dhcp6_parser.yy" + case 710: // $@109: %empty +#line 2487 "dhcp6_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3871 "dhcp6_parser.cc" +#line 3901 "dhcp6_parser.cc" break; - case 705: // client_class_template_test: "template-test" $@109 ":" "constant string" -#line 2465 "dhcp6_parser.yy" + case 711: // client_class_template_test: "template-test" $@109 ":" "constant string" +#line 2490 "dhcp6_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 3881 "dhcp6_parser.cc" +#line 3911 "dhcp6_parser.cc" break; - case 706: // only_if_required: "only-if-required" ":" "boolean" -#line 2471 "dhcp6_parser.yy" + case 712: // only_if_required: "only-if-required" ":" "boolean" +#line 2496 "dhcp6_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3891 "dhcp6_parser.cc" +#line 3921 "dhcp6_parser.cc" break; - case 707: // $@110: %empty -#line 2480 "dhcp6_parser.yy" + case 713: // $@110: %empty +#line 2505 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3899,125 +3929,125 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3903 "dhcp6_parser.cc" +#line 3933 "dhcp6_parser.cc" break; - case 708: // server_id: "server-id" $@110 ":" "{" server_id_params "}" -#line 2486 "dhcp6_parser.yy" + case 714: // server_id: "server-id" $@110 ":" "{" server_id_params "}" +#line 2511 "dhcp6_parser.yy" { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3914 "dhcp6_parser.cc" +#line 3944 "dhcp6_parser.cc" break; - case 711: // server_id_params: server_id_params "," -#line 2495 "dhcp6_parser.yy" + case 717: // server_id_params: server_id_params "," +#line 2520 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3922 "dhcp6_parser.cc" +#line 3952 "dhcp6_parser.cc" break; - case 721: // $@111: %empty -#line 2511 "dhcp6_parser.yy" + case 727: // $@111: %empty +#line 2536 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 3931 "dhcp6_parser.cc" +#line 3961 "dhcp6_parser.cc" break; - case 722: // server_id_type: "type" $@111 ":" duid_type -#line 2514 "dhcp6_parser.yy" + case 728: // server_id_type: "type" $@111 ":" duid_type +#line 2539 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 3940 "dhcp6_parser.cc" +#line 3970 "dhcp6_parser.cc" break; - case 723: // duid_type: "LLT" -#line 2519 "dhcp6_parser.yy" + case 729: // duid_type: "LLT" +#line 2544 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3946 "dhcp6_parser.cc" +#line 3976 "dhcp6_parser.cc" break; - case 724: // duid_type: "EN" -#line 2520 "dhcp6_parser.yy" + case 730: // duid_type: "EN" +#line 2545 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3952 "dhcp6_parser.cc" +#line 3982 "dhcp6_parser.cc" break; - case 725: // duid_type: "LL" -#line 2521 "dhcp6_parser.yy" + case 731: // duid_type: "LL" +#line 2546 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3958 "dhcp6_parser.cc" +#line 3988 "dhcp6_parser.cc" break; - case 726: // htype: "htype" ":" "integer" -#line 2524 "dhcp6_parser.yy" + case 732: // htype: "htype" ":" "integer" +#line 2549 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3968 "dhcp6_parser.cc" +#line 3998 "dhcp6_parser.cc" break; - case 727: // $@112: %empty -#line 2530 "dhcp6_parser.yy" + case 733: // $@112: %empty +#line 2555 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3977 "dhcp6_parser.cc" +#line 4007 "dhcp6_parser.cc" break; - case 728: // identifier: "identifier" $@112 ":" "constant string" -#line 2533 "dhcp6_parser.yy" + case 734: // identifier: "identifier" $@112 ":" "constant string" +#line 2558 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3987 "dhcp6_parser.cc" +#line 4017 "dhcp6_parser.cc" break; - case 729: // time: "time" ":" "integer" -#line 2539 "dhcp6_parser.yy" + case 735: // time: "time" ":" "integer" +#line 2564 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3997 "dhcp6_parser.cc" +#line 4027 "dhcp6_parser.cc" break; - case 730: // enterprise_id: "enterprise-id" ":" "integer" -#line 2545 "dhcp6_parser.yy" + case 736: // enterprise_id: "enterprise-id" ":" "integer" +#line 2570 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 4007 "dhcp6_parser.cc" +#line 4037 "dhcp6_parser.cc" break; - case 731: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2553 "dhcp6_parser.yy" + case 737: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2578 "dhcp6_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4017 "dhcp6_parser.cc" +#line 4047 "dhcp6_parser.cc" break; - case 732: // $@113: %empty -#line 2561 "dhcp6_parser.yy" + case 738: // $@113: %empty +#line 2586 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4025,66 +4055,66 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4029 "dhcp6_parser.cc" +#line 4059 "dhcp6_parser.cc" break; - case 733: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}" -#line 2567 "dhcp6_parser.yy" + case 739: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}" +#line 2592 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4038 "dhcp6_parser.cc" +#line 4068 "dhcp6_parser.cc" break; - case 736: // control_socket_params: control_socket_params "," -#line 2574 "dhcp6_parser.yy" + case 742: // control_socket_params: control_socket_params "," +#line 2599 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4046 "dhcp6_parser.cc" +#line 4076 "dhcp6_parser.cc" break; - case 742: // $@114: %empty -#line 2586 "dhcp6_parser.yy" + case 748: // $@114: %empty +#line 2611 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4055 "dhcp6_parser.cc" +#line 4085 "dhcp6_parser.cc" break; - case 743: // socket_type: "socket-type" $@114 ":" "constant string" -#line 2589 "dhcp6_parser.yy" + case 749: // socket_type: "socket-type" $@114 ":" "constant string" +#line 2614 "dhcp6_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 4065 "dhcp6_parser.cc" +#line 4095 "dhcp6_parser.cc" break; - case 744: // $@115: %empty -#line 2595 "dhcp6_parser.yy" + case 750: // $@115: %empty +#line 2620 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4074 "dhcp6_parser.cc" +#line 4104 "dhcp6_parser.cc" break; - case 745: // socket_name: "socket-name" $@115 ":" "constant string" -#line 2598 "dhcp6_parser.yy" + case 751: // socket_name: "socket-name" $@115 ":" "constant string" +#line 2623 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 4084 "dhcp6_parser.cc" +#line 4114 "dhcp6_parser.cc" break; - case 746: // $@116: %empty -#line 2607 "dhcp6_parser.yy" + case 752: // $@116: %empty +#line 2632 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4092,87 +4122,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4096 "dhcp6_parser.cc" +#line 4126 "dhcp6_parser.cc" break; - case 747: // dhcp_queue_control: "dhcp-queue-control" $@116 ":" "{" queue_control_params "}" -#line 2613 "dhcp6_parser.yy" + case 753: // dhcp_queue_control: "dhcp-queue-control" $@116 ":" "{" queue_control_params "}" +#line 2638 "dhcp6_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4107 "dhcp6_parser.cc" +#line 4137 "dhcp6_parser.cc" break; - case 750: // queue_control_params: queue_control_params "," -#line 2622 "dhcp6_parser.yy" + case 756: // queue_control_params: queue_control_params "," +#line 2647 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4115 "dhcp6_parser.cc" +#line 4145 "dhcp6_parser.cc" break; - case 757: // enable_queue: "enable-queue" ":" "boolean" -#line 2635 "dhcp6_parser.yy" + case 763: // enable_queue: "enable-queue" ":" "boolean" +#line 2660 "dhcp6_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4125 "dhcp6_parser.cc" +#line 4155 "dhcp6_parser.cc" break; - case 758: // $@117: %empty -#line 2641 "dhcp6_parser.yy" + case 764: // $@117: %empty +#line 2666 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4134 "dhcp6_parser.cc" +#line 4164 "dhcp6_parser.cc" break; - case 759: // queue_type: "queue-type" $@117 ":" "constant string" -#line 2644 "dhcp6_parser.yy" + case 765: // queue_type: "queue-type" $@117 ":" "constant string" +#line 2669 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4144 "dhcp6_parser.cc" +#line 4174 "dhcp6_parser.cc" break; - case 760: // capacity: "capacity" ":" "integer" -#line 2650 "dhcp6_parser.yy" + case 766: // capacity: "capacity" ":" "integer" +#line 2675 "dhcp6_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4154 "dhcp6_parser.cc" +#line 4184 "dhcp6_parser.cc" break; - case 761: // $@118: %empty -#line 2656 "dhcp6_parser.yy" + case 767: // $@118: %empty +#line 2681 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4163 "dhcp6_parser.cc" +#line 4193 "dhcp6_parser.cc" break; - case 762: // arbitrary_map_entry: "constant string" $@118 ":" value -#line 2659 "dhcp6_parser.yy" + case 768: // arbitrary_map_entry: "constant string" $@118 ":" value +#line 2684 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4172 "dhcp6_parser.cc" +#line 4202 "dhcp6_parser.cc" break; - case 763: // $@119: %empty -#line 2666 "dhcp6_parser.yy" + case 769: // $@119: %empty +#line 2691 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4180,291 +4210,291 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4184 "dhcp6_parser.cc" +#line 4214 "dhcp6_parser.cc" break; - case 764: // dhcp_ddns: "dhcp-ddns" $@119 ":" "{" dhcp_ddns_params "}" -#line 2672 "dhcp6_parser.yy" + case 770: // dhcp_ddns: "dhcp-ddns" $@119 ":" "{" dhcp_ddns_params "}" +#line 2697 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4195 "dhcp6_parser.cc" +#line 4225 "dhcp6_parser.cc" break; - case 765: // $@120: %empty -#line 2679 "dhcp6_parser.yy" + case 771: // $@120: %empty +#line 2704 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4205 "dhcp6_parser.cc" +#line 4235 "dhcp6_parser.cc" break; - case 766: // sub_dhcp_ddns: "{" $@120 dhcp_ddns_params "}" -#line 2683 "dhcp6_parser.yy" + case 772: // sub_dhcp_ddns: "{" $@120 dhcp_ddns_params "}" +#line 2708 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4215 "dhcp6_parser.cc" +#line 4245 "dhcp6_parser.cc" break; - case 769: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2691 "dhcp6_parser.yy" + case 775: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2716 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4223 "dhcp6_parser.cc" +#line 4253 "dhcp6_parser.cc" break; - case 788: // enable_updates: "enable-updates" ":" "boolean" -#line 2716 "dhcp6_parser.yy" + case 794: // enable_updates: "enable-updates" ":" "boolean" +#line 2741 "dhcp6_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4233 "dhcp6_parser.cc" +#line 4263 "dhcp6_parser.cc" break; - case 789: // $@121: %empty -#line 2723 "dhcp6_parser.yy" + case 795: // $@121: %empty +#line 2748 "dhcp6_parser.yy" { ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4242 "dhcp6_parser.cc" +#line 4272 "dhcp6_parser.cc" break; - case 790: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string" -#line 2726 "dhcp6_parser.yy" + case 796: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string" +#line 2751 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 4252 "dhcp6_parser.cc" +#line 4282 "dhcp6_parser.cc" break; - case 791: // $@122: %empty -#line 2732 "dhcp6_parser.yy" + case 797: // $@122: %empty +#line 2757 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4261 "dhcp6_parser.cc" +#line 4291 "dhcp6_parser.cc" break; - case 792: // server_ip: "server-ip" $@122 ":" "constant string" -#line 2735 "dhcp6_parser.yy" + case 798: // server_ip: "server-ip" $@122 ":" "constant string" +#line 2760 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4271 "dhcp6_parser.cc" +#line 4301 "dhcp6_parser.cc" break; - case 793: // server_port: "server-port" ":" "integer" -#line 2741 "dhcp6_parser.yy" + case 799: // server_port: "server-port" ":" "integer" +#line 2766 "dhcp6_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4281 "dhcp6_parser.cc" +#line 4311 "dhcp6_parser.cc" break; - case 794: // $@123: %empty -#line 2747 "dhcp6_parser.yy" + case 800: // $@123: %empty +#line 2772 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4290 "dhcp6_parser.cc" +#line 4320 "dhcp6_parser.cc" break; - case 795: // sender_ip: "sender-ip" $@123 ":" "constant string" -#line 2750 "dhcp6_parser.yy" + case 801: // sender_ip: "sender-ip" $@123 ":" "constant string" +#line 2775 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4300 "dhcp6_parser.cc" +#line 4330 "dhcp6_parser.cc" break; - case 796: // sender_port: "sender-port" ":" "integer" -#line 2756 "dhcp6_parser.yy" + case 802: // sender_port: "sender-port" ":" "integer" +#line 2781 "dhcp6_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4310 "dhcp6_parser.cc" +#line 4340 "dhcp6_parser.cc" break; - case 797: // max_queue_size: "max-queue-size" ":" "integer" -#line 2762 "dhcp6_parser.yy" + case 803: // max_queue_size: "max-queue-size" ":" "integer" +#line 2787 "dhcp6_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4320 "dhcp6_parser.cc" +#line 4350 "dhcp6_parser.cc" break; - case 798: // $@124: %empty -#line 2768 "dhcp6_parser.yy" + case 804: // $@124: %empty +#line 2793 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4329 "dhcp6_parser.cc" +#line 4359 "dhcp6_parser.cc" break; - case 799: // ncr_protocol: "ncr-protocol" $@124 ":" ncr_protocol_value -#line 2771 "dhcp6_parser.yy" + case 805: // ncr_protocol: "ncr-protocol" $@124 ":" ncr_protocol_value +#line 2796 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4338 "dhcp6_parser.cc" +#line 4368 "dhcp6_parser.cc" break; - case 800: // ncr_protocol_value: "UDP" -#line 2777 "dhcp6_parser.yy" + case 806: // ncr_protocol_value: "UDP" +#line 2802 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4344 "dhcp6_parser.cc" +#line 4374 "dhcp6_parser.cc" break; - case 801: // ncr_protocol_value: "TCP" -#line 2778 "dhcp6_parser.yy" + case 807: // ncr_protocol_value: "TCP" +#line 2803 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4350 "dhcp6_parser.cc" +#line 4380 "dhcp6_parser.cc" break; - case 802: // $@125: %empty -#line 2781 "dhcp6_parser.yy" + case 808: // $@125: %empty +#line 2806 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4359 "dhcp6_parser.cc" +#line 4389 "dhcp6_parser.cc" break; - case 803: // ncr_format: "ncr-format" $@125 ":" "JSON" -#line 2784 "dhcp6_parser.yy" + case 809: // ncr_format: "ncr-format" $@125 ":" "JSON" +#line 2809 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4369 "dhcp6_parser.cc" +#line 4399 "dhcp6_parser.cc" break; - case 804: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2791 "dhcp6_parser.yy" + case 810: // dep_override_no_update: "override-no-update" ":" "boolean" +#line 2816 "dhcp6_parser.yy" { ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 4379 "dhcp6_parser.cc" +#line 4409 "dhcp6_parser.cc" break; - case 805: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2798 "dhcp6_parser.yy" + case 811: // dep_override_client_update: "override-client-update" ":" "boolean" +#line 2823 "dhcp6_parser.yy" { ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 4389 "dhcp6_parser.cc" +#line 4419 "dhcp6_parser.cc" break; - case 806: // $@126: %empty -#line 2805 "dhcp6_parser.yy" + case 812: // $@126: %empty +#line 2830 "dhcp6_parser.yy" { ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 4398 "dhcp6_parser.cc" +#line 4428 "dhcp6_parser.cc" break; - case 807: // dep_replace_client_name: "replace-client-name" $@126 ":" ddns_replace_client_name_value -#line 2808 "dhcp6_parser.yy" + case 813: // dep_replace_client_name: "replace-client-name" $@126 ":" ddns_replace_client_name_value +#line 2833 "dhcp6_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4407 "dhcp6_parser.cc" +#line 4437 "dhcp6_parser.cc" break; - case 808: // $@127: %empty -#line 2814 "dhcp6_parser.yy" + case 814: // $@127: %empty +#line 2839 "dhcp6_parser.yy" { ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4416 "dhcp6_parser.cc" +#line 4446 "dhcp6_parser.cc" break; - case 809: // dep_generated_prefix: "generated-prefix" $@127 ":" "constant string" -#line 2817 "dhcp6_parser.yy" + case 815: // dep_generated_prefix: "generated-prefix" $@127 ":" "constant string" +#line 2842 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 4426 "dhcp6_parser.cc" +#line 4456 "dhcp6_parser.cc" break; - case 810: // $@128: %empty -#line 2824 "dhcp6_parser.yy" + case 816: // $@128: %empty +#line 2849 "dhcp6_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4435 "dhcp6_parser.cc" +#line 4465 "dhcp6_parser.cc" break; - case 811: // dep_hostname_char_set: "hostname-char-set" $@128 ":" "constant string" -#line 2827 "dhcp6_parser.yy" + case 817: // dep_hostname_char_set: "hostname-char-set" $@128 ":" "constant string" +#line 2852 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 4445 "dhcp6_parser.cc" +#line 4475 "dhcp6_parser.cc" break; - case 812: // $@129: %empty -#line 2834 "dhcp6_parser.yy" + case 818: // $@129: %empty +#line 2859 "dhcp6_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4454 "dhcp6_parser.cc" +#line 4484 "dhcp6_parser.cc" break; - case 813: // dep_hostname_char_replacement: "hostname-char-replacement" $@129 ":" "constant string" -#line 2837 "dhcp6_parser.yy" + case 819: // dep_hostname_char_replacement: "hostname-char-replacement" $@129 ":" "constant string" +#line 2862 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 4464 "dhcp6_parser.cc" +#line 4494 "dhcp6_parser.cc" break; - case 814: // $@130: %empty -#line 2846 "dhcp6_parser.yy" + case 820: // $@130: %empty +#line 2871 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4472,48 +4502,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4476 "dhcp6_parser.cc" +#line 4506 "dhcp6_parser.cc" break; - case 815: // config_control: "config-control" $@130 ":" "{" config_control_params "}" -#line 2852 "dhcp6_parser.yy" + case 821: // config_control: "config-control" $@130 ":" "{" config_control_params "}" +#line 2877 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4486 "dhcp6_parser.cc" +#line 4516 "dhcp6_parser.cc" break; - case 816: // $@131: %empty -#line 2858 "dhcp6_parser.yy" + case 822: // $@131: %empty +#line 2883 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4496 "dhcp6_parser.cc" +#line 4526 "dhcp6_parser.cc" break; - case 817: // sub_config_control: "{" $@131 config_control_params "}" -#line 2862 "dhcp6_parser.yy" + case 823: // sub_config_control: "{" $@131 config_control_params "}" +#line 2887 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4505 "dhcp6_parser.cc" +#line 4535 "dhcp6_parser.cc" break; - case 820: // config_control_params: config_control_params "," -#line 2870 "dhcp6_parser.yy" + case 826: // config_control_params: config_control_params "," +#line 2895 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4513 "dhcp6_parser.cc" +#line 4543 "dhcp6_parser.cc" break; - case 823: // $@132: %empty -#line 2880 "dhcp6_parser.yy" + case 829: // $@132: %empty +#line 2905 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4521,30 +4551,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4525 "dhcp6_parser.cc" +#line 4555 "dhcp6_parser.cc" break; - case 824: // config_databases: "config-databases" $@132 ":" "[" database_list "]" -#line 2886 "dhcp6_parser.yy" + case 830: // config_databases: "config-databases" $@132 ":" "[" database_list "]" +#line 2911 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4534 "dhcp6_parser.cc" +#line 4564 "dhcp6_parser.cc" break; - case 825: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2891 "dhcp6_parser.yy" + case 831: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2916 "dhcp6_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4544 "dhcp6_parser.cc" +#line 4574 "dhcp6_parser.cc" break; - case 826: // $@133: %empty -#line 2899 "dhcp6_parser.yy" + case 832: // $@133: %empty +#line 2924 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4552,83 +4582,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4556 "dhcp6_parser.cc" +#line 4586 "dhcp6_parser.cc" break; - case 827: // loggers: "loggers" $@133 ":" "[" loggers_entries "]" -#line 2905 "dhcp6_parser.yy" + case 833: // loggers: "loggers" $@133 ":" "[" loggers_entries "]" +#line 2930 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4565 "dhcp6_parser.cc" +#line 4595 "dhcp6_parser.cc" break; - case 830: // loggers_entries: loggers_entries "," -#line 2914 "dhcp6_parser.yy" + case 836: // loggers_entries: loggers_entries "," +#line 2939 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4573 "dhcp6_parser.cc" +#line 4603 "dhcp6_parser.cc" break; - case 831: // $@134: %empty -#line 2920 "dhcp6_parser.yy" + case 837: // $@134: %empty +#line 2945 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4583 "dhcp6_parser.cc" +#line 4613 "dhcp6_parser.cc" break; - case 832: // logger_entry: "{" $@134 logger_params "}" -#line 2924 "dhcp6_parser.yy" + case 838: // logger_entry: "{" $@134 logger_params "}" +#line 2949 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4591 "dhcp6_parser.cc" +#line 4621 "dhcp6_parser.cc" break; - case 835: // logger_params: logger_params "," -#line 2930 "dhcp6_parser.yy" + case 841: // logger_params: logger_params "," +#line 2955 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4599 "dhcp6_parser.cc" +#line 4629 "dhcp6_parser.cc" break; - case 843: // debuglevel: "debuglevel" ":" "integer" -#line 2944 "dhcp6_parser.yy" + case 849: // debuglevel: "debuglevel" ":" "integer" +#line 2969 "dhcp6_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4609 "dhcp6_parser.cc" +#line 4639 "dhcp6_parser.cc" break; - case 844: // $@135: %empty -#line 2950 "dhcp6_parser.yy" + case 850: // $@135: %empty +#line 2975 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4618 "dhcp6_parser.cc" +#line 4648 "dhcp6_parser.cc" break; - case 845: // severity: "severity" $@135 ":" "constant string" -#line 2953 "dhcp6_parser.yy" + case 851: // severity: "severity" $@135 ":" "constant string" +#line 2978 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4628 "dhcp6_parser.cc" +#line 4658 "dhcp6_parser.cc" break; - case 846: // $@136: %empty -#line 2959 "dhcp6_parser.yy" + case 852: // $@136: %empty +#line 2984 "dhcp6_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4636,122 +4666,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4640 "dhcp6_parser.cc" +#line 4670 "dhcp6_parser.cc" break; - case 847: // output_options_list: "output_options" $@136 ":" "[" output_options_list_content "]" -#line 2965 "dhcp6_parser.yy" + case 853: // output_options_list: "output_options" $@136 ":" "[" output_options_list_content "]" +#line 2990 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4649 "dhcp6_parser.cc" +#line 4679 "dhcp6_parser.cc" break; - case 850: // output_options_list_content: output_options_list_content "," -#line 2972 "dhcp6_parser.yy" + case 856: // output_options_list_content: output_options_list_content "," +#line 2997 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4657 "dhcp6_parser.cc" +#line 4687 "dhcp6_parser.cc" break; - case 851: // $@137: %empty -#line 2977 "dhcp6_parser.yy" + case 857: // $@137: %empty +#line 3002 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4667 "dhcp6_parser.cc" +#line 4697 "dhcp6_parser.cc" break; - case 852: // output_entry: "{" $@137 output_params_list "}" -#line 2981 "dhcp6_parser.yy" + case 858: // output_entry: "{" $@137 output_params_list "}" +#line 3006 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4675 "dhcp6_parser.cc" +#line 4705 "dhcp6_parser.cc" break; - case 855: // output_params_list: output_params_list "," -#line 2987 "dhcp6_parser.yy" + case 861: // output_params_list: output_params_list "," +#line 3012 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4683 "dhcp6_parser.cc" +#line 4713 "dhcp6_parser.cc" break; - case 861: // $@138: %empty -#line 2999 "dhcp6_parser.yy" + case 867: // $@138: %empty +#line 3024 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4692 "dhcp6_parser.cc" +#line 4722 "dhcp6_parser.cc" break; - case 862: // output: "output" $@138 ":" "constant string" -#line 3002 "dhcp6_parser.yy" + case 868: // output: "output" $@138 ":" "constant string" +#line 3027 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4702 "dhcp6_parser.cc" +#line 4732 "dhcp6_parser.cc" break; - case 863: // flush: "flush" ":" "boolean" -#line 3008 "dhcp6_parser.yy" + case 869: // flush: "flush" ":" "boolean" +#line 3033 "dhcp6_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4712 "dhcp6_parser.cc" +#line 4742 "dhcp6_parser.cc" break; - case 864: // maxsize: "maxsize" ":" "integer" -#line 3014 "dhcp6_parser.yy" + case 870: // maxsize: "maxsize" ":" "integer" +#line 3039 "dhcp6_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4722 "dhcp6_parser.cc" +#line 4752 "dhcp6_parser.cc" break; - case 865: // maxver: "maxver" ":" "integer" -#line 3020 "dhcp6_parser.yy" + case 871: // maxver: "maxver" ":" "integer" +#line 3045 "dhcp6_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4732 "dhcp6_parser.cc" +#line 4762 "dhcp6_parser.cc" break; - case 866: // $@139: %empty -#line 3026 "dhcp6_parser.yy" + case 872: // $@139: %empty +#line 3051 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4741 "dhcp6_parser.cc" +#line 4771 "dhcp6_parser.cc" break; - case 867: // pattern: "pattern" $@139 ":" "constant string" -#line 3029 "dhcp6_parser.yy" + case 873: // pattern: "pattern" $@139 ":" "constant string" +#line 3054 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4751 "dhcp6_parser.cc" +#line 4781 "dhcp6_parser.cc" break; - case 868: // $@140: %empty -#line 3035 "dhcp6_parser.yy" + case 874: // $@140: %empty +#line 3060 "dhcp6_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4759,38 +4789,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 4763 "dhcp6_parser.cc" +#line 4793 "dhcp6_parser.cc" break; - case 869: // compatibility: "compatibility" $@140 ":" "{" compatibility_params "}" -#line 3041 "dhcp6_parser.yy" + case 875: // compatibility: "compatibility" $@140 ":" "{" compatibility_params "}" +#line 3066 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4772 "dhcp6_parser.cc" +#line 4802 "dhcp6_parser.cc" break; - case 872: // compatibility_params: compatibility_params "," -#line 3048 "dhcp6_parser.yy" + case 878: // compatibility_params: compatibility_params "," +#line 3073 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4780 "dhcp6_parser.cc" +#line 4810 "dhcp6_parser.cc" break; - case 875: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3057 "dhcp6_parser.yy" + case 881: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3082 "dhcp6_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 4790 "dhcp6_parser.cc" +#line 4820 "dhcp6_parser.cc" break; -#line 4794 "dhcp6_parser.cc" +#line 4824 "dhcp6_parser.cc" default: break; @@ -5142,148 +5172,149 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -1009; + const short Dhcp6Parser::yypact_ninf_ = -1018; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 446, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, 50, 35, 70, 83, 94, - 104, 112, 133, 161, 163, 178, 184, 254, 265, 271, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 35, -159, - 73, 171, 46, 687, 173, -1, 264, -17, 253, 119, - -89, 460, 134, -1009, 281, 288, 299, 293, 322, -1009, - 53, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 324, 334, - 348, 350, 376, 401, 414, 423, 425, 428, 434, 435, - 436, 437, -1009, 438, 440, 441, 442, 447, -1009, -1009, - -1009, 448, 449, 450, -1009, -1009, -1009, 451, -1009, -1009, - -1009, -1009, -1009, -1009, 452, 453, 454, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, 455, -1009, -1009, -1009, - -1009, -1009, -1009, 456, 462, 464, -1009, -1009, 465, -1009, - 101, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 466, - 467, 470, 471, -1009, 120, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 473, 475, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - 126, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, 128, -1009, -1009, -1009, -1009, - -1009, 477, -1009, 481, 482, -1009, -1009, -1009, -1009, -1009, - -1009, 138, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 318, - 361, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 408, - -1009, -1009, 484, -1009, -1009, -1009, 485, -1009, -1009, 487, - 381, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, 492, 494, -1009, -1009, -1009, -1009, - 491, 461, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, 148, -1009, -1009, -1009, 496, -1009, - -1009, 498, -1009, 500, 501, -1009, -1009, 503, 506, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, 198, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, 508, 199, -1009, -1009, -1009, -1009, - 35, 35, -1009, 301, 509, -1009, -1009, 512, 517, 519, - 520, 521, 522, 314, 317, 319, 320, 321, 323, 329, - 330, 325, 315, 335, 336, 339, 340, 533, 344, 346, - 326, 347, 351, 535, 552, 565, 354, 355, 356, 571, - 572, 574, 364, 578, 579, 582, 584, 585, 586, 374, - 377, 379, 589, 596, 597, 599, 600, 602, 603, 604, - 607, 398, 610, 611, 613, 614, 615, 616, 404, 420, - 421, 618, 635, -1009, 171, -1009, 636, 424, 426, 427, - 445, 46, -1009, 657, 659, 660, 662, 663, 457, 458, - 664, 665, 666, 687, -1009, 667, 173, -1009, 669, 463, - 673, 468, 469, -1, -1009, 675, 676, 677, 678, 681, - 682, 683, -1009, 264, -1009, 684, 685, 476, 686, 688, - 689, 478, -1009, 253, 690, 479, 480, -1009, 119, 694, - 695, -67, -1009, 486, 701, 702, 495, 703, 502, 504, - 705, 712, 507, 510, 714, 716, 717, 719, 460, -1009, - 721, 511, 134, -1009, -1009, -1009, 724, 722, 516, 725, - 740, 741, 742, 726, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 536, -1009, - -1009, -1009, -1009, -1009, -101, 546, 547, -1009, -1009, -1009, - 758, 759, 760, -1009, 553, 561, 761, 770, 566, 328, - -1009, -1009, -1009, 774, 776, 777, 785, 778, 788, 789, - 792, 793, -1009, 794, 795, 796, 797, 581, 591, -1009, - -1009, -1009, 802, 801, -1009, 804, -1009, -1009, -1009, -1009, - -1009, 807, 808, 601, 605, 606, -1009, -1009, 804, 608, - 809, -1009, 609, -1009, 612, -1009, 617, -1009, -1009, -1009, - 804, 804, 804, 619, 620, 621, 622, -1009, 623, 624, - -1009, 625, 626, 627, -1009, -1009, 628, -1009, -1009, -1009, - 629, 770, -1009, -1009, 630, 631, -1009, 632, -1009, -1009, - 164, 638, -1009, -1009, -101, 633, 634, 637, -1009, 816, - -1009, -1009, 35, 171, -1009, 134, 46, 129, 129, 817, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 818, - 820, 821, -1009, -1009, 822, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -88, 35, 84, 137, 823, 825, 842, - 39, 223, 212, -45, 249, 460, -1009, -1009, 843, -156, - -1009, -1009, 845, 846, -1009, -1009, -1009, -1009, -1009, -78, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 817, - -1009, 200, 201, 207, -1009, -1009, -1009, -1009, 810, 850, - 851, 852, 853, 854, 855, -1009, 856, -1009, -1009, -1009, - -1009, -1009, 285, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, 291, -1009, 857, 858, -1009, -1009, 859, 861, - -1009, -1009, 860, 864, -1009, -1009, 862, 866, -1009, -1009, - 867, 871, -1009, -1009, -1009, 45, -1009, -1009, -1009, 869, - -1009, -1009, -1009, 102, -1009, -1009, -1009, -1009, -1009, 294, - -1009, -1009, -1009, -1009, 127, -1009, -1009, 870, 874, -1009, - -1009, 872, 876, -1009, 877, 878, 879, 880, 881, 882, - 297, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - 883, 884, 885, -1009, -1009, -1009, -1009, 310, -1009, -1009, - -1009, -1009, -1009, -1009, 886, 887, 888, -1009, 316, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - 337, -1009, -1009, -1009, 889, -1009, 890, -1009, -1009, -1009, - 341, -1009, -1009, -1009, -1009, -1009, 345, -1009, 259, -1009, - 891, -1009, 360, -1009, -1009, 648, -1009, 892, 893, -1009, - -1009, 894, 896, -1009, -1009, -1009, 895, -1009, 898, -1009, - -1009, -1009, 901, 902, 903, 904, 655, 680, 696, 692, - 697, 698, 699, 906, 700, 912, 913, 914, 915, 129, - -1009, -1009, 129, -1009, 817, 687, -1009, 818, 253, -1009, - 820, 119, -1009, 821, 1076, -1009, 822, -88, -1009, -1009, - 84, -1009, 916, 917, 137, -1009, 327, 823, -1009, 264, - -1009, 825, -89, -1009, 842, 707, 708, 709, 710, 711, - 713, 39, -1009, 923, 925, 715, 718, 720, 223, -1009, - 723, 727, 728, 212, -1009, 927, 928, -45, -1009, 729, - 930, 730, 932, 249, -1009, -1009, 214, 843, -1009, 731, - -156, -1009, -1009, 931, 899, 173, -1009, 845, -1, -1009, - 846, 934, -1009, -1009, 290, 733, 735, 736, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, 358, -1009, 737, 738, 739, - 744, -1009, 378, -1009, 380, -1009, 933, -1009, 936, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 392, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, 745, 747, -1009, - -1009, -1009, 935, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, 947, 953, -1009, -1009, -1009, -1009, - -1009, -1009, 954, -1009, 393, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, 277, 750, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, 752, 753, -1009, -1009, 756, -1009, 35, - -1009, -1009, 969, -1009, -1009, -1009, -1009, -1009, 405, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, 766, 409, -1009, - 411, -1009, 780, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, 1076, -1009, -1009, -1009, 980, 991, 779, -1009, - 327, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, 994, 784, 1005, 214, -1009, -1009, -1009, -1009, - -1009, -1009, 800, 815, -1009, -1009, 875, -1009, 828, -1009, - -1009, -1009, 1009, -1009, -1009, 273, -1009, -7, 1009, -1009, - -1009, 1014, 1026, 1030, -1009, 412, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, 1032, 830, 836, 837, 1033, -7, -1009, - 863, -1009, -1009, -1009, 905, -1009, -1009, -1009 + 443, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, 90, 35, 56, 70, 94, + 98, 104, 112, 116, 161, 185, 205, 249, 251, 268, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 35, -27, + 292, 172, 63, 684, 203, -4, 78, 221, 88, 327, + -92, 457, 299, -1018, 294, 307, 326, 316, 330, -1018, + 49, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 335, 342, + 345, 353, 370, 393, 394, 401, 408, 421, 431, 432, + 437, 438, -1018, 444, 445, 447, 448, 449, -1018, -1018, + -1018, 450, 451, 452, -1018, -1018, -1018, 453, -1018, -1018, + -1018, -1018, -1018, -1018, 454, 455, 456, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 459, -1018, -1018, -1018, + -1018, -1018, -1018, 460, 462, 464, -1018, -1018, 465, -1018, + 50, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 467, + 470, 471, 473, -1018, 58, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 474, 475, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + 101, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, 105, -1018, -1018, -1018, -1018, + -1018, 477, -1018, 481, 482, -1018, -1018, -1018, -1018, -1018, + -1018, 126, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 340, + 363, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 425, + -1018, -1018, 484, -1018, -1018, -1018, 485, -1018, -1018, 439, + 492, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 494, 495, -1018, -1018, -1018, -1018, + 488, 497, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 128, -1018, -1018, -1018, 498, -1018, + -1018, 500, -1018, 501, 506, -1018, -1018, 508, 509, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 140, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 511, 143, -1018, -1018, -1018, -1018, + 35, 35, -1018, 304, 512, -1018, -1018, 519, 520, 521, + 522, 525, 527, 314, 317, 318, 319, 321, 323, 324, + 325, 331, 315, 333, 336, 338, 341, 534, 343, 350, + 334, 349, 351, 541, 568, 569, 355, 356, 358, 575, + 578, 579, 368, 584, 585, 586, 587, 589, 590, 376, + 380, 381, 599, 600, 602, 603, 604, 607, 609, 610, + 611, 399, 614, 615, 616, 617, 618, 633, 418, 419, + 420, 637, 638, -1018, 172, -1018, 639, 440, 441, 446, + 461, 63, -1018, 659, 662, 663, 664, 665, 463, 458, + 666, 667, 668, 684, -1018, 669, 203, -1018, 671, 466, + 673, 468, 469, -4, -1018, 676, 678, 679, 681, 685, + 686, 687, -1018, 78, -1018, 688, 689, 476, 691, 692, + 693, 478, -1018, 88, 695, 483, 486, -1018, 327, 701, + 703, -70, -1018, 489, 706, 712, 499, 714, 502, 503, + 715, 719, 504, 505, 722, 723, 724, 725, 457, -1018, + 726, 513, 299, -1018, -1018, -1018, 728, 740, 531, 742, + 743, 753, 754, 683, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 546, -1018, + -1018, -1018, -1018, -1018, 31, 547, 548, -1018, -1018, -1018, + 761, 762, 770, -1018, 560, 562, 775, 774, 565, 110, + -1018, -1018, -1018, 778, 787, 788, 792, 789, 790, 795, + 794, 796, -1018, 797, 798, 800, 801, 592, 595, -1018, + -1018, -1018, 808, 807, -1018, 810, -1018, -1018, -1018, -1018, + -1018, 811, 812, 605, 606, 608, -1018, -1018, 810, 612, + 813, -1018, 613, -1018, 619, -1018, 620, -1018, -1018, -1018, + 810, 810, 810, 621, 622, 623, 624, -1018, 625, 626, + -1018, 627, 628, 629, -1018, -1018, 630, -1018, -1018, -1018, + 631, 774, -1018, -1018, 632, 634, -1018, 635, -1018, -1018, + -130, 642, -1018, -1018, 31, 636, 640, 641, -1018, 814, + -1018, -1018, 35, 172, -1018, 299, 63, 347, 347, 819, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 820, + 821, 824, -1018, -1018, 825, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -91, 35, 225, 216, 826, 827, 828, + 60, 250, 40, -45, 253, 457, -1018, -1018, 843, -155, + -1018, -1018, 847, 848, -1018, -1018, -1018, -1018, -1018, -87, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 819, + -1018, 150, 158, 168, -1018, -1018, -1018, -1018, 817, 852, + 855, 856, 857, 858, 859, 860, 861, 862, -1018, 863, + -1018, -1018, -1018, -1018, -1018, 174, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 177, -1018, + 864, 799, -1018, -1018, 867, 865, -1018, -1018, 868, 866, + -1018, -1018, 869, 873, -1018, -1018, 871, 875, -1018, -1018, + -1018, 127, -1018, -1018, -1018, 874, -1018, -1018, -1018, 141, + -1018, -1018, -1018, -1018, -1018, 183, -1018, -1018, -1018, -1018, + 159, -1018, -1018, 876, 878, -1018, -1018, 877, 881, -1018, + 882, 883, 884, 885, 886, 887, 256, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 888, 889, 890, -1018, + -1018, -1018, -1018, 263, -1018, -1018, -1018, -1018, -1018, -1018, + 891, 892, 893, -1018, 275, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 289, -1018, -1018, -1018, + 894, -1018, 895, -1018, -1018, -1018, 298, -1018, -1018, -1018, + -1018, -1018, 306, -1018, 262, -1018, 896, -1018, 320, -1018, + -1018, 690, -1018, 879, 899, -1018, -1018, 897, 901, -1018, + -1018, -1018, 898, -1018, 902, -1018, -1018, -1018, 905, 906, + 907, 908, 661, 694, 697, 696, 699, 700, 702, 704, + 705, 707, 909, 708, 915, 917, 920, 923, 347, -1018, + -1018, 347, -1018, 819, 684, -1018, 820, 88, -1018, 821, + 327, -1018, 824, 1076, -1018, 825, -91, -1018, -1018, 225, + -1018, 924, 925, 216, -1018, 290, 826, -1018, 78, -1018, + 827, -92, -1018, 828, 713, 716, 717, 718, 720, 721, + 60, -1018, 926, 928, 727, 729, 730, 250, -1018, 731, + 732, 734, 40, -1018, 929, 933, -45, -1018, 733, 936, + 736, 937, 253, -1018, -1018, -36, 843, -1018, 735, -155, + -1018, -1018, 938, 939, 203, -1018, 847, -4, -1018, 848, + 942, -1018, -1018, 413, 739, 741, 744, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, 379, -1018, 745, + 747, 748, 750, -1018, 329, -1018, 344, -1018, 935, -1018, + 941, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + 362, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 751, + 756, -1018, -1018, -1018, 953, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 951, 957, -1018, -1018, + -1018, -1018, -1018, -1018, 962, -1018, 364, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, 297, 758, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, 759, 765, -1018, -1018, 772, + -1018, 35, -1018, -1018, 967, -1018, -1018, -1018, -1018, -1018, + 396, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 776, + 416, -1018, 426, -1018, 786, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 1076, -1018, -1018, -1018, 975, 1000, + 785, -1018, 290, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 1003, 805, 1004, -36, -1018, -1018, + -1018, -1018, -1018, -1018, 822, 829, -1018, -1018, 900, -1018, + 834, -1018, -1018, -1018, 1011, -1018, -1018, 288, -1018, 122, + 1011, -1018, -1018, 1021, 1023, 1034, -1018, 429, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, 1039, 836, 842, 903, 1041, + 122, -1018, 844, -1018, -1018, -1018, 849, -1018, -1018, -1018 }; const short @@ -5293,18 +5324,18 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 46, 38, 34, 33, 30, 31, 32, 37, 3, - 35, 36, 61, 5, 67, 7, 190, 9, 371, 11, - 578, 13, 605, 15, 637, 17, 498, 19, 507, 21, - 546, 23, 333, 25, 765, 27, 816, 29, 48, 41, - 0, 0, 0, 0, 0, 0, 639, 0, 509, 548, + 35, 36, 61, 5, 67, 7, 190, 9, 377, 11, + 584, 13, 611, 15, 643, 17, 504, 19, 513, 21, + 552, 23, 339, 25, 771, 27, 822, 29, 48, 41, + 0, 0, 0, 0, 0, 0, 645, 0, 515, 554, 0, 0, 0, 50, 0, 49, 0, 0, 42, 63, - 0, 65, 139, 814, 188, 209, 211, 213, 0, 0, + 0, 65, 139, 820, 188, 209, 211, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, 0, 158, 165, - 167, 0, 0, 0, 362, 496, 537, 0, 181, 183, - 442, 592, 594, 434, 0, 0, 0, 289, 308, 298, - 278, 675, 628, 324, 345, 707, 0, 310, 732, 746, - 763, 171, 173, 0, 0, 0, 826, 868, 0, 138, + 167, 0, 0, 0, 368, 502, 543, 0, 181, 183, + 448, 598, 600, 440, 0, 0, 0, 295, 314, 304, + 284, 681, 634, 330, 351, 713, 0, 316, 738, 752, + 769, 171, 173, 0, 0, 0, 832, 874, 0, 138, 0, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 111, 112, 113, 114, 115, 81, 119, 120, 121, 122, 123, 124, 125, 126, 117, 118, 127, 128, 129, @@ -5313,26 +5344,26 @@ namespace isc { namespace dhcp { 109, 110, 107, 83, 92, 93, 101, 102, 104, 91, 96, 97, 98, 99, 100, 105, 116, 134, 203, 0, 0, 0, 0, 202, 0, 192, 195, 196, 197, 198, - 199, 200, 201, 569, 596, 421, 423, 425, 0, 0, - 429, 427, 669, 420, 376, 377, 378, 379, 380, 381, - 382, 383, 402, 403, 404, 405, 406, 409, 410, 411, - 412, 413, 414, 415, 416, 407, 408, 417, 418, 419, - 0, 373, 387, 388, 389, 392, 393, 396, 397, 398, - 395, 390, 391, 384, 385, 400, 401, 386, 394, 399, - 590, 589, 585, 586, 584, 0, 580, 583, 587, 588, - 621, 0, 624, 0, 0, 620, 614, 615, 613, 618, - 619, 0, 607, 610, 611, 616, 617, 612, 667, 655, - 657, 659, 661, 663, 665, 654, 651, 652, 653, 0, - 640, 641, 646, 647, 644, 648, 649, 650, 645, 0, - 527, 256, 0, 531, 529, 534, 0, 523, 524, 0, - 510, 511, 514, 526, 515, 516, 517, 533, 518, 519, - 520, 521, 522, 563, 0, 0, 561, 562, 565, 566, - 0, 549, 550, 553, 554, 555, 556, 557, 558, 559, - 560, 341, 343, 338, 0, 335, 339, 340, 0, 789, - 791, 0, 794, 0, 0, 798, 802, 0, 0, 806, - 808, 810, 812, 787, 785, 786, 0, 767, 770, 782, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, - 781, 783, 784, 823, 0, 0, 818, 821, 822, 47, + 199, 200, 201, 575, 602, 427, 429, 431, 0, 0, + 435, 433, 675, 426, 382, 383, 384, 385, 386, 387, + 388, 389, 408, 409, 410, 411, 412, 415, 416, 417, + 418, 419, 420, 421, 422, 413, 414, 423, 424, 425, + 0, 379, 393, 394, 395, 398, 399, 402, 403, 404, + 401, 396, 397, 390, 391, 406, 407, 392, 400, 405, + 596, 595, 591, 592, 590, 0, 586, 589, 593, 594, + 627, 0, 630, 0, 0, 626, 620, 621, 619, 624, + 625, 0, 613, 616, 617, 622, 623, 618, 673, 661, + 663, 665, 667, 669, 671, 660, 657, 658, 659, 0, + 646, 647, 652, 653, 650, 654, 655, 656, 651, 0, + 533, 259, 0, 537, 535, 540, 0, 529, 530, 0, + 516, 517, 520, 532, 521, 522, 523, 539, 524, 525, + 526, 527, 528, 569, 0, 0, 567, 568, 571, 572, + 0, 555, 556, 559, 560, 561, 562, 563, 564, 565, + 566, 347, 349, 344, 0, 341, 345, 346, 0, 795, + 797, 0, 800, 0, 0, 804, 808, 0, 0, 812, + 814, 816, 818, 793, 791, 792, 0, 773, 776, 788, + 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 787, 789, 790, 829, 0, 0, 824, 827, 828, 47, 52, 0, 39, 45, 0, 66, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5342,138 +5373,140 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 71, 68, 0, 0, 0, 0, 0, 194, 191, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 375, 372, 0, 582, 579, 0, 0, - 0, 0, 0, 609, 606, 0, 0, 0, 0, 0, - 0, 0, 638, 643, 499, 0, 0, 0, 0, 0, - 0, 0, 508, 513, 0, 0, 0, 547, 552, 0, - 0, 337, 334, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 769, 766, - 0, 0, 820, 817, 51, 43, 0, 0, 0, 0, + 0, 0, 0, 381, 378, 0, 588, 585, 0, 0, + 0, 0, 0, 615, 612, 0, 0, 0, 0, 0, + 0, 0, 644, 649, 505, 0, 0, 0, 0, 0, + 0, 0, 514, 519, 0, 0, 0, 553, 558, 0, + 0, 343, 340, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 775, 772, + 0, 0, 826, 823, 51, 43, 0, 0, 0, 0, 0, 0, 0, 0, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 0, 176, 177, 155, 156, 157, 0, 0, 0, 169, 170, 175, 0, 0, 0, 180, 0, 0, 0, 0, 0, 0, - 431, 432, 433, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 731, 0, 0, 0, 0, 0, 0, 185, + 437, 438, 439, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 737, 0, 0, 0, 0, 0, 0, 185, 186, 187, 0, 0, 70, 0, 205, 206, 207, 208, - 193, 0, 0, 0, 0, 0, 440, 441, 0, 0, - 0, 374, 0, 581, 0, 623, 0, 626, 627, 608, - 0, 0, 0, 0, 0, 0, 0, 642, 0, 0, - 525, 0, 0, 0, 536, 512, 0, 567, 568, 551, - 0, 0, 336, 788, 0, 0, 793, 0, 796, 797, - 0, 0, 804, 805, 0, 0, 0, 0, 768, 0, - 825, 819, 0, 0, 140, 0, 0, 0, 0, 215, - 179, 160, 161, 162, 163, 164, 159, 166, 168, 364, - 500, 539, 182, 184, 444, 40, 593, 595, 436, 437, - 438, 439, 435, 0, 48, 0, 0, 0, 630, 326, + 193, 0, 0, 0, 0, 0, 446, 447, 0, 0, + 0, 380, 0, 587, 0, 629, 0, 632, 633, 614, + 0, 0, 0, 0, 0, 0, 0, 648, 0, 0, + 531, 0, 0, 0, 542, 518, 0, 573, 574, 557, + 0, 0, 342, 794, 0, 0, 799, 0, 802, 803, + 0, 0, 810, 811, 0, 0, 0, 0, 774, 0, + 831, 825, 0, 0, 140, 0, 0, 0, 0, 215, + 179, 160, 161, 162, 163, 164, 159, 166, 168, 370, + 506, 545, 182, 184, 450, 40, 599, 601, 442, 443, + 444, 445, 441, 0, 48, 0, 0, 0, 636, 332, 0, 0, 0, 0, 0, 0, 172, 174, 0, 0, - 53, 204, 571, 598, 422, 424, 426, 430, 428, 0, - 591, 622, 625, 668, 656, 658, 660, 662, 664, 666, - 528, 257, 532, 530, 535, 564, 342, 344, 790, 792, - 795, 800, 801, 799, 803, 807, 809, 811, 813, 215, - 44, 0, 0, 0, 244, 249, 251, 253, 0, 0, - 0, 0, 0, 0, 0, 263, 0, 270, 272, 274, - 276, 243, 0, 222, 225, 226, 227, 228, 229, 230, - 231, 232, 233, 234, 236, 237, 238, 235, 239, 240, - 241, 242, 0, 220, 0, 216, 217, 369, 0, 365, - 366, 505, 0, 501, 502, 544, 0, 540, 541, 449, - 0, 445, 446, 296, 297, 0, 291, 294, 295, 0, - 306, 307, 303, 0, 300, 304, 305, 285, 287, 0, - 280, 283, 284, 680, 0, 677, 635, 0, 631, 632, - 331, 0, 327, 328, 0, 0, 0, 0, 0, 0, - 0, 347, 350, 351, 352, 353, 354, 355, 721, 727, - 0, 0, 0, 720, 717, 718, 719, 0, 709, 712, - 715, 713, 714, 716, 0, 0, 0, 320, 0, 312, - 315, 316, 317, 318, 319, 742, 744, 741, 739, 740, - 0, 734, 737, 738, 0, 758, 0, 761, 754, 755, - 0, 748, 751, 752, 753, 756, 0, 831, 0, 828, - 0, 874, 0, 870, 873, 55, 576, 0, 572, 573, - 603, 0, 599, 600, 673, 672, 0, 671, 0, 64, - 815, 189, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, - 210, 212, 0, 214, 219, 0, 363, 368, 509, 497, - 504, 548, 538, 543, 0, 443, 448, 293, 290, 309, - 302, 299, 0, 0, 282, 279, 682, 679, 676, 639, - 629, 634, 0, 325, 330, 0, 0, 0, 0, 0, - 0, 349, 346, 0, 0, 0, 0, 0, 711, 708, - 0, 0, 0, 314, 311, 0, 0, 736, 733, 0, - 0, 0, 0, 750, 747, 764, 0, 830, 827, 0, - 872, 869, 57, 0, 56, 0, 570, 575, 0, 597, - 602, 0, 670, 824, 0, 0, 0, 0, 255, 258, - 259, 260, 261, 269, 262, 0, 268, 0, 0, 0, - 0, 223, 0, 218, 0, 367, 0, 503, 0, 542, - 495, 468, 469, 470, 472, 473, 474, 458, 459, 477, - 478, 479, 480, 481, 484, 485, 486, 487, 488, 489, - 490, 491, 482, 483, 492, 493, 494, 454, 455, 456, - 457, 466, 467, 463, 464, 465, 462, 471, 0, 451, - 460, 475, 476, 461, 447, 292, 301, 0, 0, 281, - 702, 704, 0, 700, 694, 695, 696, 697, 698, 699, - 701, 691, 692, 693, 0, 683, 684, 687, 688, 689, - 690, 678, 0, 633, 0, 329, 356, 357, 358, 359, - 360, 361, 348, 0, 0, 726, 729, 730, 710, 321, - 322, 323, 313, 0, 0, 735, 757, 0, 760, 0, - 749, 846, 0, 844, 842, 836, 840, 841, 0, 833, - 838, 839, 837, 829, 875, 871, 54, 59, 0, 574, - 0, 601, 0, 246, 247, 248, 245, 250, 252, 254, - 265, 266, 267, 264, 271, 273, 275, 277, 221, 370, - 506, 545, 453, 450, 286, 288, 0, 0, 0, 681, - 686, 636, 332, 723, 724, 725, 722, 728, 743, 745, - 759, 762, 0, 0, 0, 835, 832, 58, 577, 604, - 674, 452, 0, 0, 706, 685, 0, 843, 0, 834, - 703, 705, 0, 845, 851, 0, 848, 0, 850, 847, - 861, 0, 0, 0, 866, 0, 853, 856, 857, 858, - 859, 860, 849, 0, 0, 0, 0, 0, 855, 852, - 0, 863, 864, 865, 0, 854, 862, 867 + 53, 204, 577, 604, 428, 430, 432, 436, 434, 0, + 597, 628, 631, 674, 662, 664, 666, 668, 670, 672, + 534, 260, 538, 536, 541, 570, 348, 350, 796, 798, + 801, 806, 807, 805, 809, 813, 815, 817, 819, 215, + 44, 0, 0, 0, 247, 252, 254, 256, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, + 276, 278, 280, 282, 246, 0, 222, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 239, 240, 241, 238, 242, 243, 244, 245, 0, 220, + 0, 216, 217, 375, 0, 371, 372, 511, 0, 507, + 508, 550, 0, 546, 547, 455, 0, 451, 452, 302, + 303, 0, 297, 300, 301, 0, 312, 313, 309, 0, + 306, 310, 311, 291, 293, 0, 286, 289, 290, 686, + 0, 683, 641, 0, 637, 638, 337, 0, 333, 334, + 0, 0, 0, 0, 0, 0, 0, 353, 356, 357, + 358, 359, 360, 361, 727, 733, 0, 0, 0, 726, + 723, 724, 725, 0, 715, 718, 721, 719, 720, 722, + 0, 0, 0, 326, 0, 318, 321, 322, 323, 324, + 325, 748, 750, 747, 745, 746, 0, 740, 743, 744, + 0, 764, 0, 767, 760, 761, 0, 754, 757, 758, + 759, 762, 0, 837, 0, 834, 0, 880, 0, 876, + 879, 55, 582, 0, 578, 579, 609, 0, 605, 606, + 679, 678, 0, 677, 0, 64, 821, 189, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 210, + 212, 0, 214, 219, 0, 369, 374, 515, 503, 510, + 554, 544, 549, 0, 449, 454, 299, 296, 315, 308, + 305, 0, 0, 288, 285, 688, 685, 682, 645, 635, + 640, 0, 331, 336, 0, 0, 0, 0, 0, 0, + 355, 352, 0, 0, 0, 0, 0, 717, 714, 0, + 0, 0, 320, 317, 0, 0, 742, 739, 0, 0, + 0, 0, 756, 753, 770, 0, 836, 833, 0, 878, + 875, 57, 0, 56, 0, 576, 581, 0, 603, 608, + 0, 676, 830, 0, 0, 0, 0, 258, 261, 262, + 263, 264, 265, 266, 267, 275, 268, 0, 274, 0, + 0, 0, 0, 223, 0, 218, 0, 373, 0, 509, + 0, 548, 501, 474, 475, 476, 478, 479, 480, 464, + 465, 483, 484, 485, 486, 487, 490, 491, 492, 493, + 494, 495, 496, 497, 488, 489, 498, 499, 500, 460, + 461, 462, 463, 472, 473, 469, 470, 471, 468, 477, + 0, 457, 466, 481, 482, 467, 453, 298, 307, 0, + 0, 287, 708, 710, 0, 706, 700, 701, 702, 703, + 704, 705, 707, 697, 698, 699, 0, 689, 690, 693, + 694, 695, 696, 684, 0, 639, 0, 335, 362, 363, + 364, 365, 366, 367, 354, 0, 0, 732, 735, 736, + 716, 327, 328, 329, 319, 0, 0, 741, 763, 0, + 766, 0, 755, 852, 0, 850, 848, 842, 846, 847, + 0, 839, 844, 845, 843, 835, 881, 877, 54, 59, + 0, 580, 0, 607, 0, 249, 250, 251, 248, 253, + 255, 257, 271, 272, 273, 270, 277, 279, 281, 283, + 221, 376, 512, 551, 459, 456, 292, 294, 0, 0, + 0, 687, 692, 642, 338, 729, 730, 731, 728, 734, + 749, 751, 765, 768, 0, 0, 0, 841, 838, 58, + 583, 610, 680, 458, 0, 0, 712, 691, 0, 849, + 0, 840, 709, 711, 0, 851, 857, 0, 854, 0, + 856, 853, 867, 0, 0, 0, 872, 0, 859, 862, + 863, 864, 865, 866, 855, 0, 0, 0, 0, 0, + 861, 858, 0, 869, 870, 871, 0, 860, 868, 873 }; const short Dhcp6Parser::yypgoto_[] = { - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -10, -1009, -596, -1009, - 375, -1009, -1009, -1009, -1009, 343, -1009, -592, -1009, -1009, - -1009, -71, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 382, - 543, -1009, -1009, -46, -43, -14, -13, 14, 15, -49, - -24, 16, 29, 30, 33, 34, -1009, 37, 41, 44, - 47, -1009, 385, 48, -1009, 51, -1009, 54, 59, 62, - -1009, 64, -1009, 65, -1009, -1009, -1009, -1009, -1009, 66, - -1009, 69, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - 384, 595, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, 298, -1009, 88, -1009, -716, 99, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -41, -1009, -760, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, 78, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, 100, -742, -1009, -1009, -1009, -1009, 81, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, 63, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, 85, -1009, -1009, -1009, 86, 583, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, 89, -1009, -1009, -1009, - -1009, -1009, -1009, -1008, -1009, -1009, -1009, 130, -1009, -1009, - -1009, 131, 639, -1009, -1009, -1006, -1009, -1005, -1009, 10, - -1009, 80, -1009, 72, 76, 77, 79, -1009, -1009, -1009, - -999, -1009, -1009, -1009, -1009, 117, -1009, -1009, -117, 1081, - -1009, -1009, -1009, -1009, -1009, 135, -1009, -1009, -1009, 132, - -1009, 598, -1009, -62, -1009, -1009, -1009, -1009, -1009, -54, - -1009, -1009, -1009, -1009, -1009, -42, -1009, -1009, -1009, 136, - -1009, -1009, -1009, 139, -1009, 640, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, 67, -1009, -1009, - -1009, 71, 645, -1009, -1009, -60, -1009, -3, -1009, -1009, - -1009, -1009, -1009, 68, -1009, -1009, -1009, 61, 641, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -53, -1009, -1009, -1009, - 116, -1009, -1009, -1009, 122, -1009, 643, 394, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -998, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 141, - -1009, -1009, -1009, -98, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, 121, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, 113, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, 108, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, 417, 644, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, 459, 649, -1009, -1009, - -1009, -1009, -1009, -1009, 106, -1009, -1009, -97, -1009, -1009, - -1009, -1009, -1009, -1009, -121, -1009, -1009, -138, -1009, -1009, - -1009, -1009, -1009, -1009, -1009, -1009, -1009, -1009, 114, -1009 + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -10, -1018, -583, -1018, + 375, -1018, -1018, -1018, -1018, 352, -1018, -592, -1018, -1018, + -1018, -71, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 385, + 581, -1018, -1018, -46, -43, -14, -13, 14, 15, -49, + -24, 16, 29, 30, 33, 34, -1018, 37, 41, 44, + 47, -1018, 400, 48, -1018, 51, -1018, 54, 59, 62, + -1018, 64, -1018, 65, -1018, -1018, -1018, -1018, -1018, 66, + -1018, 69, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + 389, 643, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 322, -1018, 106, -1018, -716, 114, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -41, -1018, -760, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 87, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, 107, -742, -1018, -1018, -1018, -1018, + 108, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 74, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 95, -1018, -1018, -1018, + 99, 588, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 91, + -1018, -1018, -1018, -1018, -1018, -1018, -1017, -1018, -1018, -1018, + 131, -1018, -1018, -1018, 129, 645, -1018, -1018, -1015, -1018, + -1014, -1018, 10, -1018, 80, -1018, 72, 76, 77, 79, + -1018, -1018, -1018, -1008, -1018, -1018, -1018, -1018, 117, -1018, + -1018, -116, 1092, -1018, -1018, -1018, -1018, -1018, 132, -1018, + -1018, -1018, 133, -1018, 644, -1018, -62, -1018, -1018, -1018, + -1018, -1018, -54, -1018, -1018, -1018, -1018, -1018, -42, -1018, + -1018, -1018, 130, -1018, -1018, -1018, 134, -1018, 646, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + 67, -1018, -1018, -1018, 71, 649, -1018, -1018, -60, -1018, + -3, -1018, -1018, -1018, -1018, -1018, 82, -1018, -1018, -1018, + 85, 650, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -53, + -1018, -1018, -1018, 121, -1018, -1018, -1018, 136, -1018, 647, + 397, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1007, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, 139, -1018, -1018, -1018, -96, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, 120, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 113, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, 109, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 428, 651, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, 480, + 648, -1018, -1018, -1018, -1018, -1018, -1018, 115, -1018, -1018, + -103, -1018, -1018, -1018, -1018, -1018, -1018, -125, -1018, -1018, + -144, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, -1018, + -1018, 118, -1018 }; const short @@ -5481,190 +5514,192 @@ namespace isc { namespace dhcp { { 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 756, 87, 88, 41, 68, 84, 85, 781, 985, 1093, - 1094, 841, 43, 70, 90, 444, 91, 45, 71, 160, + 756, 87, 88, 41, 68, 84, 85, 781, 991, 1102, + 1103, 844, 43, 70, 90, 444, 91, 45, 71, 160, 161, 162, 447, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 473, 746, 181, 474, 182, 475, 183, 184, 185, 506, 186, 507, 187, 188, 189, 190, 467, 191, 192, 483, 193, 484, 194, 195, 196, 197, 449, 47, 72, 234, 235, 236, 516, 237, 238, 239, 240, 198, 450, - 199, 451, 200, 452, 864, 865, 866, 1022, 842, 843, - 844, 1002, 1256, 845, 1003, 846, 1004, 847, 1005, 848, - 849, 556, 850, 851, 852, 853, 854, 855, 1013, 1263, - 856, 857, 858, 1015, 859, 1016, 860, 1017, 861, 1018, - 201, 495, 899, 900, 901, 1042, 902, 1043, 202, 492, - 885, 886, 887, 888, 203, 494, 893, 894, 895, 896, - 204, 493, 205, 502, 948, 949, 950, 951, 952, 206, - 498, 911, 912, 913, 1052, 63, 80, 394, 395, 396, - 569, 397, 570, 207, 499, 920, 921, 922, 923, 924, - 925, 926, 927, 208, 479, 868, 869, 870, 1025, 49, - 73, 280, 281, 282, 525, 283, 526, 284, 527, 285, - 531, 286, 530, 209, 210, 211, 212, 488, 762, 291, - 292, 213, 485, 880, 881, 882, 1034, 1168, 1169, 214, - 480, 57, 77, 872, 873, 874, 1028, 59, 78, 359, - 360, 361, 362, 363, 364, 365, 555, 366, 559, 367, - 558, 368, 369, 560, 370, 215, 481, 876, 877, 878, - 1031, 61, 79, 380, 381, 382, 383, 384, 564, 385, - 386, 387, 388, 294, 523, 987, 988, 989, 1095, 51, - 74, 305, 306, 307, 535, 216, 486, 217, 487, 297, - 524, 991, 992, 993, 1098, 53, 75, 321, 322, 323, - 538, 324, 325, 540, 326, 327, 218, 497, 907, 908, - 909, 1049, 55, 76, 339, 340, 341, 342, 546, 343, - 547, 344, 548, 345, 549, 346, 550, 347, 551, 348, - 545, 299, 532, 996, 997, 1101, 219, 496, 904, 905, - 1046, 1194, 1195, 1196, 1197, 1198, 1276, 1199, 1277, 1200, - 220, 500, 937, 938, 939, 1063, 1286, 940, 941, 1064, - 942, 943, 221, 222, 503, 960, 961, 962, 1075, 963, - 1076, 223, 504, 970, 971, 972, 973, 1080, 974, 975, - 1082, 224, 505, 65, 81, 416, 417, 418, 419, 574, - 420, 575, 421, 422, 577, 423, 424, 425, 580, 813, - 426, 581, 427, 428, 429, 584, 430, 585, 431, 586, - 432, 587, 225, 448, 67, 82, 435, 436, 437, 590, - 438, 226, 511, 978, 979, 1086, 1238, 1239, 1240, 1241, - 1294, 1242, 1292, 1315, 1316, 1317, 1325, 1326, 1327, 1333, - 1328, 1329, 1330, 1331, 1337, 227, 512, 982, 983, 984 + 199, 451, 200, 452, 870, 871, 872, 1031, 845, 846, + 847, 1008, 1268, 848, 1009, 849, 1010, 850, 1011, 851, + 852, 556, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 1022, 1275, 862, 863, 864, 1024, 865, 1025, 866, + 1026, 867, 1027, 201, 495, 905, 906, 907, 1051, 908, + 1052, 202, 492, 891, 892, 893, 894, 203, 494, 899, + 900, 901, 902, 204, 493, 205, 502, 954, 955, 956, + 957, 958, 206, 498, 917, 918, 919, 1061, 63, 80, + 394, 395, 396, 569, 397, 570, 207, 499, 926, 927, + 928, 929, 930, 931, 932, 933, 208, 479, 874, 875, + 876, 1034, 49, 73, 280, 281, 282, 525, 283, 526, + 284, 527, 285, 531, 286, 530, 209, 210, 211, 212, + 488, 762, 291, 292, 213, 485, 886, 887, 888, 1043, + 1180, 1181, 214, 480, 57, 77, 878, 879, 880, 1037, + 59, 78, 359, 360, 361, 362, 363, 364, 365, 555, + 366, 559, 367, 558, 368, 369, 560, 370, 215, 481, + 882, 883, 884, 1040, 61, 79, 380, 381, 382, 383, + 384, 564, 385, 386, 387, 388, 294, 523, 993, 994, + 995, 1104, 51, 74, 305, 306, 307, 535, 216, 486, + 217, 487, 297, 524, 997, 998, 999, 1107, 53, 75, + 321, 322, 323, 538, 324, 325, 540, 326, 327, 218, + 497, 913, 914, 915, 1058, 55, 76, 339, 340, 341, + 342, 546, 343, 547, 344, 548, 345, 549, 346, 550, + 347, 551, 348, 545, 299, 532, 1002, 1003, 1110, 219, + 496, 910, 911, 1055, 1206, 1207, 1208, 1209, 1210, 1288, + 1211, 1289, 1212, 220, 500, 943, 944, 945, 1072, 1298, + 946, 947, 1073, 948, 949, 221, 222, 503, 966, 967, + 968, 1084, 969, 1085, 223, 504, 976, 977, 978, 979, + 1089, 980, 981, 1091, 224, 505, 65, 81, 416, 417, + 418, 419, 574, 420, 575, 421, 422, 577, 423, 424, + 425, 580, 813, 426, 581, 427, 428, 429, 584, 430, + 585, 431, 586, 432, 587, 225, 448, 67, 82, 435, + 436, 437, 590, 438, 226, 511, 984, 985, 1095, 1250, + 1251, 1252, 1253, 1306, 1254, 1304, 1327, 1328, 1329, 1337, + 1338, 1339, 1345, 1340, 1341, 1342, 1343, 1349, 227, 512, + 988, 989, 990 }; const short Dhcp6Parser::yytable_[] = { 159, 233, 253, 301, 315, 335, 38, 357, 376, 393, - 413, 934, 241, 295, 308, 319, 337, 378, 371, 389, - 298, 414, 862, 892, 260, 379, 1158, 254, 1159, 1160, - 255, 293, 304, 318, 336, 1167, 1173, 358, 377, 883, - 31, 755, 32, 980, 33, 391, 392, 329, 1037, 261, - 30, 1038, 131, 132, 994, 86, 445, 125, 158, 256, - 257, 446, 228, 229, 230, 231, 232, 391, 392, 242, - 296, 309, 320, 338, 126, 372, 390, 42, 415, 741, - 742, 743, 744, 89, 302, 316, 787, 258, 259, 262, - 44, 310, 311, 312, 313, 314, 131, 132, 793, 794, - 795, 46, 263, 264, 514, 1040, 265, 266, 1041, 515, - 267, 48, 955, 956, 268, 755, 745, 269, 250, 50, - 270, 271, 251, 521, 272, 158, 884, 273, 522, 533, - 1047, 536, 274, 1048, 534, 275, 537, 276, 277, 278, - 52, 543, 279, 131, 132, 287, 544, 433, 434, 288, - 289, 571, 290, 824, 303, 317, 572, 825, 826, 827, - 828, 829, 830, 831, 832, 833, 834, 835, 54, 158, - 56, 836, 837, 838, 839, 840, 914, 915, 916, 917, - 918, 919, 92, 93, 1320, 58, 94, 1321, 1322, 1323, - 1324, 60, 95, 96, 97, 351, 373, 352, 353, 374, - 375, 588, 592, 514, 592, 351, 589, 593, 999, 1000, - 521, 883, 890, 158, 891, 1001, 131, 132, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 928, 126, 34, - 35, 36, 37, 897, 898, 829, 127, 128, 129, 130, - 158, 62, 1087, 300, 1158, 1088, 1159, 1160, 131, 132, - 131, 132, 64, 1167, 1173, 133, 1318, 350, 66, 1319, - 134, 135, 136, 137, 138, 139, 140, 439, 1019, 141, - 351, 440, 250, 1020, 1019, 142, 251, 1044, 892, 1021, - 1061, 442, 1045, 441, 143, 1062, 1122, 144, 934, 131, - 132, 131, 132, 1068, 145, 1253, 1254, 1255, 1069, 1073, - 131, 132, 146, 147, 1074, 443, 552, 148, 453, 351, - 149, 352, 353, 158, 150, 354, 355, 356, 454, 126, - 1077, 811, 812, 158, 1083, 1078, 131, 132, 588, 1084, - 131, 132, 455, 1085, 456, 151, 152, 153, 154, 155, - 156, 131, 132, 1090, 553, 944, 945, 946, 1091, 157, - 929, 930, 931, 932, 98, 99, 100, 101, 102, 103, - 457, 1019, 328, 533, 563, 158, 1268, 158, 1269, 329, - 330, 331, 332, 333, 334, 1272, 571, 1260, 1261, 1262, - 1273, 1282, 126, 351, 1231, 458, 1232, 1233, 1295, 964, - 965, 966, 536, 1296, 543, 1338, 554, 1298, 459, 1299, - 1339, 1283, 1284, 1285, 131, 132, 158, 460, 158, 461, - 594, 595, 462, 758, 759, 760, 761, 158, 463, 464, - 465, 466, 468, 159, 469, 470, 471, 1180, 1181, 1182, - 233, 472, 476, 477, 478, 482, 489, 490, 491, 501, - 508, 241, 253, 967, 568, 301, 509, 158, 510, 513, - 517, 518, 315, 295, 519, 520, 308, 528, 158, 529, + 413, 940, 241, 295, 308, 319, 337, 378, 371, 389, + 298, 414, 868, 898, 260, 379, 1170, 254, 1171, 1172, + 255, 293, 304, 318, 336, 1179, 1185, 358, 377, 889, + 31, 329, 32, 351, 33, 391, 392, 986, 1000, 261, + 811, 812, 445, 514, 755, 131, 132, 446, 515, 256, + 257, 521, 158, 42, 131, 132, 522, 391, 392, 242, + 296, 309, 320, 338, 126, 372, 390, 44, 415, 228, + 229, 230, 231, 232, 302, 316, 787, 258, 259, 262, + 30, 310, 311, 312, 313, 314, 131, 132, 793, 794, + 795, 46, 263, 264, 533, 48, 265, 266, 536, 534, + 267, 50, 350, 537, 268, 961, 962, 269, 250, 52, + 270, 271, 251, 54, 272, 158, 890, 273, 755, 543, + 1046, 571, 274, 1047, 544, 275, 572, 276, 277, 278, + 131, 132, 279, 588, 1049, 287, 592, 1050, 589, 288, + 289, 593, 290, 514, 303, 317, 126, 1243, 1005, 1244, + 1245, 592, 1056, 131, 132, 1057, 1006, 351, 56, 352, + 353, 521, 158, 354, 355, 356, 1007, 1028, 131, 132, + 1028, 158, 1029, 92, 93, 1030, 1053, 94, 131, 132, + 86, 1054, 58, 95, 96, 97, 950, 951, 952, 328, + 920, 921, 922, 923, 924, 925, 329, 330, 331, 332, + 333, 334, 60, 158, 741, 742, 743, 744, 758, 759, + 760, 761, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 745, 34, 35, 36, 37, 62, 158, 64, 1070, + 127, 128, 129, 130, 1071, 1096, 1077, 1170, 1097, 1171, + 1172, 1078, 131, 132, 934, 66, 1179, 1185, 1082, 133, + 158, 126, 829, 1083, 134, 135, 136, 137, 138, 139, + 140, 1330, 1086, 141, 1331, 158, 300, 1087, 125, 142, + 439, 1092, 89, 131, 132, 158, 1093, 898, 143, 588, + 440, 144, 433, 434, 1094, 1134, 1332, 940, 145, 1333, + 1334, 1335, 1336, 1099, 442, 250, 146, 147, 1100, 251, + 441, 148, 1028, 443, 149, 903, 904, 1280, 150, 453, + 98, 99, 100, 101, 102, 103, 454, 533, 552, 455, + 131, 132, 1281, 131, 132, 889, 896, 456, 897, 151, + 152, 153, 154, 155, 156, 1284, 553, 571, 126, 351, + 1285, 824, 1294, 157, 457, 825, 826, 827, 828, 829, + 830, 831, 832, 833, 834, 835, 836, 837, 838, 158, + 131, 132, 839, 840, 841, 842, 843, 458, 459, 1307, + 935, 936, 937, 938, 1308, 460, 351, 373, 352, 353, + 374, 375, 461, 1192, 1193, 1194, 970, 971, 972, 536, + 158, 1272, 1273, 1274, 1310, 462, 351, 131, 132, 543, + 594, 595, 1350, 554, 1311, 463, 464, 1351, 1265, 1266, + 1267, 465, 466, 159, 1295, 1296, 1297, 562, 468, 469, + 233, 470, 471, 472, 476, 477, 478, 482, 489, 490, + 491, 241, 253, 501, 508, 301, 509, 158, 510, 513, + 973, 517, 315, 295, 518, 519, 308, 520, 528, 529, 298, 539, 335, 319, 260, 541, 542, 254, 557, 561, - 255, 293, 357, 337, 304, 562, 565, 376, 566, 567, - 573, 318, 576, 371, 578, 579, 378, 582, 389, 261, - 583, 336, 591, 597, 379, 596, 598, 413, 242, 256, - 257, 599, 358, 600, 601, 602, 603, 377, 414, 604, - 296, 613, 605, 309, 606, 607, 608, 618, 609, 624, - 320, 158, 612, 621, 610, 611, 302, 258, 259, 262, - 338, 614, 615, 316, 616, 617, 625, 131, 132, 619, - 372, 620, 263, 264, 622, 390, 265, 266, 623, 626, - 267, 627, 628, 629, 268, 630, 631, 269, 632, 633, - 270, 271, 634, 635, 272, 415, 636, 273, 637, 638, - 639, 640, 274, 643, 641, 275, 642, 276, 277, 278, - 644, 645, 279, 646, 647, 287, 648, 649, 650, 288, - 289, 651, 290, 652, 653, 654, 303, 655, 656, 657, - 658, 659, 662, 317, 398, 399, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 660, 661, 663, - 665, 666, 668, 667, 411, 412, 1, 2, 3, 4, + 255, 293, 357, 337, 304, 563, 567, 376, 565, 566, + 568, 318, 573, 371, 576, 578, 378, 158, 389, 261, + 579, 336, 582, 583, 379, 591, 597, 413, 242, 256, + 257, 596, 358, 598, 599, 600, 601, 377, 414, 602, + 296, 603, 604, 309, 613, 605, 606, 607, 618, 608, + 320, 609, 610, 611, 158, 624, 302, 258, 259, 262, + 338, 612, 614, 316, 621, 615, 616, 131, 132, 617, + 372, 619, 263, 264, 158, 390, 265, 266, 620, 622, + 267, 623, 625, 626, 268, 627, 628, 269, 629, 630, + 270, 271, 631, 632, 272, 415, 633, 273, 634, 635, + 636, 637, 274, 638, 639, 275, 640, 276, 277, 278, + 641, 642, 279, 643, 644, 287, 645, 646, 647, 288, + 289, 648, 290, 649, 650, 651, 303, 652, 653, 654, + 655, 656, 657, 317, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 658, 659, 660, + 661, 662, 663, 665, 411, 412, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 669, 671, 159, 672, 673, 233, 674, 675, 678, 679, - 680, 682, 676, 684, 158, 677, 241, 686, 685, 690, - 691, 692, 693, 687, 688, 694, 695, 696, 698, 699, - 701, 700, 702, 703, 706, 704, 707, 708, 710, 711, - 933, 947, 957, 713, 413, 714, 715, 717, 981, 720, - 716, 935, 953, 958, 968, 414, 721, 718, 724, 719, - 725, 726, 820, 727, 722, 729, 730, 723, 732, 733, - 734, 739, 735, 242, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 736, 737, 738, - 740, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 747, 748, 126, 749, 750, 751, 754, 752, 936, 954, - 959, 969, 415, 128, 129, 753, 243, 32, 244, 763, - 757, 764, 765, 767, 131, 132, 245, 246, 247, 248, - 249, 133, 766, 768, 769, 776, 134, 135, 136, 770, - 771, 772, 773, 774, 775, 777, 250, 778, 779, 780, - 251, 142, 782, 783, 1006, 784, 789, 814, 252, 785, - 786, 819, 788, 790, 863, 867, 791, 871, 875, 879, - 903, 792, 906, 796, 797, 798, 799, 800, 801, 802, - 803, 804, 805, 806, 808, 809, 810, 816, 817, 910, - 977, 818, 986, 990, 1007, 1008, 1009, 1010, 1011, 1012, - 1014, 1024, 1092, 1023, 1027, 1026, 1029, 1030, 1032, 1033, - 1108, 151, 152, 1035, 1036, 1039, 1050, 1051, 1053, 1054, - 1312, 1055, 1056, 1057, 1058, 1059, 1060, 1065, 1066, 1067, - 1070, 1071, 1072, 1079, 1081, 1089, 1097, 1109, 1096, 1100, - 1099, 158, 1247, 1102, 1103, 1104, 1105, 1106, 1107, 1111, - 1115, 1110, 1112, 1113, 1114, 1116, 1117, 1118, 1119, 1120, - 1177, 1178, 1206, 1207, 1208, 1209, 1210, 1213, 1211, 1214, - 1215, 1223, 1224, 1216, 1227, 1217, 1229, 1246, 1252, 1278, - 1219, 1270, 1220, 1221, 1271, 1228, 1226, 1257, 1244, 1258, - 1259, 1264, 1265, 1266, 253, 1279, 1280, 357, 1267, 1274, - 376, 1275, 1281, 1130, 1287, 295, 1288, 1289, 371, 378, - 1290, 389, 298, 1293, 1171, 1183, 260, 379, 335, 254, - 1297, 393, 255, 293, 1302, 1137, 1192, 358, 1131, 337, - 377, 1132, 1170, 1157, 1300, 1303, 1304, 933, 1306, 1307, - 1184, 261, 947, 1185, 1191, 1190, 957, 336, 935, 1308, - 1138, 256, 257, 953, 1310, 1234, 1314, 958, 1334, 981, - 1133, 1134, 296, 968, 301, 372, 1236, 315, 390, 1311, - 1335, 1172, 1186, 1187, 1336, 308, 1340, 1344, 319, 258, - 259, 262, 1313, 1193, 1161, 1235, 338, 1341, 1135, 1136, - 1139, 1342, 1343, 304, 263, 264, 318, 664, 265, 266, - 1188, 1189, 267, 1140, 1141, 936, 268, 1142, 1143, 269, - 954, 1144, 270, 271, 959, 1145, 272, 1346, 1146, 273, - 969, 1147, 1148, 1237, 274, 1149, 807, 275, 1150, 276, - 277, 278, 309, 1151, 279, 320, 1152, 287, 1153, 1154, - 1155, 288, 289, 1156, 290, 302, 1163, 889, 316, 815, - 1164, 1165, 1123, 1166, 1162, 821, 670, 998, 1121, 1347, - 823, 1176, 1179, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 1222, 1175, 1204, 1205, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 1212, 126, 351, 1174, 712, 1301, 1124, 1125, 349, 1250, - 1126, 705, 128, 129, 1249, 1127, 1248, 1203, 1251, 1129, - 1128, 1202, 681, 131, 132, 303, 246, 247, 317, 249, - 133, 683, 1305, 995, 689, 134, 135, 136, 1201, 1218, - 1225, 1230, 976, 1243, 822, 250, 697, 1332, 1309, 251, - 1345, 1130, 0, 0, 1245, 0, 0, 252, 709, 1183, - 0, 0, 1171, 0, 0, 0, 0, 0, 0, 1291, - 1192, 0, 0, 1137, 1234, 0, 1131, 0, 0, 1132, - 1170, 1157, 728, 0, 1184, 1236, 0, 1185, 1191, 1190, - 0, 731, 0, 0, 0, 0, 0, 0, 1138, 0, - 0, 0, 0, 0, 1235, 0, 0, 0, 1133, 1134, - 151, 152, 0, 0, 0, 0, 1186, 1187, 0, 1172, - 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, - 0, 0, 1161, 0, 0, 0, 1135, 1136, 1139, 0, - 158, 0, 1237, 0, 1188, 1189, 0, 0, 0, 0, - 0, 1140, 1141, 0, 0, 1142, 1143, 0, 0, 1144, - 0, 0, 0, 1145, 0, 0, 1146, 0, 0, 1147, - 1148, 0, 0, 1149, 0, 0, 1150, 0, 0, 0, - 0, 1151, 0, 0, 1152, 0, 1153, 1154, 1155, 0, - 0, 1156, 0, 0, 1163, 0, 0, 0, 1164, 1165, - 0, 1166, 1162 + 666, 667, 159, 671, 668, 233, 672, 673, 674, 675, + 678, 679, 680, 682, 158, 684, 241, 686, 677, 669, + 690, 676, 691, 692, 685, 693, 687, 688, 739, 694, + 695, 696, 698, 699, 700, 701, 702, 703, 704, 706, + 939, 953, 963, 707, 413, 710, 708, 711, 987, 713, + 714, 941, 959, 964, 974, 414, 715, 716, 717, 720, + 718, 719, 820, 721, 722, 723, 724, 725, 726, 727, + 729, 730, 732, 242, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 733, 734, 735, + 736, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 737, 738, 126, 740, 747, 748, 749, 750, 942, 960, + 965, 975, 415, 128, 129, 751, 243, 752, 244, 753, + 754, 32, 757, 763, 131, 132, 245, 246, 247, 248, + 249, 133, 764, 765, 767, 768, 134, 135, 136, 766, + 769, 770, 1033, 771, 772, 773, 250, 774, 775, 776, + 251, 142, 777, 778, 779, 780, 782, 783, 252, 819, + 789, 1012, 784, 785, 814, 786, 869, 873, 877, 788, + 790, 881, 885, 909, 912, 916, 791, 792, 796, 797, + 798, 799, 800, 801, 802, 803, 804, 805, 806, 808, + 983, 809, 810, 816, 992, 996, 1013, 817, 818, 1014, + 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1023, 1036, 1039, + 1032, 151, 152, 1035, 1038, 1041, 1042, 1044, 1045, 1117, + 1048, 1060, 1059, 1062, 1063, 1105, 1064, 1065, 1066, 1067, + 1068, 1069, 1074, 1075, 1076, 1079, 1080, 1081, 1088, 1090, + 1098, 158, 1106, 1108, 1109, 1324, 1111, 1101, 1112, 1113, + 1114, 1115, 1116, 1127, 1118, 1119, 1120, 1121, 1122, 1129, + 1123, 1130, 1124, 1125, 1131, 1126, 1128, 1132, 1189, 1190, + 1225, 1218, 1226, 1235, 1219, 1220, 1221, 1236, 1222, 1223, + 1239, 1241, 1259, 1282, 1258, 1227, 1264, 1228, 1229, 1283, + 1232, 1231, 1233, 1238, 1240, 1256, 1269, 1290, 1270, 1291, + 1292, 1271, 1276, 253, 1277, 1278, 357, 1279, 1286, 376, + 1293, 1305, 1142, 1287, 295, 1299, 1300, 371, 378, 1314, + 389, 298, 1301, 1183, 1195, 260, 379, 335, 254, 1302, + 393, 255, 293, 1309, 1149, 1204, 358, 1143, 337, 377, + 1144, 1182, 1169, 1312, 1315, 1316, 939, 1318, 1320, 1196, + 261, 953, 1197, 1203, 1202, 963, 336, 941, 1326, 1150, + 256, 257, 959, 1319, 1246, 1346, 964, 1347, 987, 1145, + 1146, 296, 974, 301, 372, 1248, 315, 390, 1348, 1322, + 1184, 1198, 1199, 1352, 308, 1356, 1323, 319, 258, 259, + 262, 1325, 1205, 1173, 1247, 338, 1353, 1147, 1148, 1151, + 1354, 1358, 304, 263, 264, 318, 1359, 265, 266, 1200, + 1201, 267, 1152, 1153, 942, 268, 1154, 1155, 269, 960, + 1156, 270, 271, 965, 1157, 272, 807, 1158, 273, 975, + 1159, 1160, 1249, 274, 1161, 664, 275, 1162, 276, 277, + 278, 309, 1163, 279, 320, 1164, 287, 1165, 1166, 1167, + 288, 289, 1168, 290, 302, 1175, 895, 316, 821, 1176, + 1177, 1355, 1178, 1174, 815, 823, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 1135, + 1191, 1004, 1133, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 1187, 126, 351, 1234, 1188, 1217, 712, + 1216, 1224, 1186, 1136, 670, 128, 129, 1137, 1313, 349, + 1138, 1139, 1141, 1261, 1140, 1260, 131, 132, 681, 246, + 247, 1215, 249, 133, 303, 683, 1001, 317, 134, 135, + 136, 1263, 1262, 689, 1214, 1213, 1317, 1230, 250, 1237, + 697, 1242, 251, 982, 1321, 1344, 1357, 705, 0, 0, + 252, 1255, 0, 1142, 709, 822, 0, 1257, 0, 0, + 0, 1195, 0, 0, 1183, 0, 0, 0, 0, 0, + 0, 1303, 1204, 0, 0, 1149, 1246, 0, 1143, 728, + 731, 1144, 1182, 1169, 0, 0, 1196, 1248, 0, 1197, + 1203, 1202, 0, 0, 0, 0, 0, 0, 0, 0, + 1150, 0, 0, 151, 152, 0, 1247, 0, 0, 0, + 1145, 1146, 0, 0, 0, 0, 0, 0, 1198, 1199, + 0, 1184, 0, 0, 0, 0, 0, 0, 0, 1205, + 0, 0, 0, 158, 1173, 0, 0, 0, 1147, 1148, + 1151, 0, 0, 0, 1249, 0, 1200, 1201, 0, 0, + 0, 0, 0, 1152, 1153, 0, 0, 1154, 1155, 0, + 0, 1156, 0, 0, 0, 1157, 0, 0, 1158, 0, + 0, 1159, 1160, 0, 0, 1161, 0, 0, 1162, 0, + 0, 0, 0, 1163, 0, 0, 1164, 0, 1165, 1166, + 1167, 0, 0, 1168, 0, 0, 1175, 0, 0, 0, + 1176, 1177, 0, 1178, 1174 }; const short @@ -5672,373 +5707,376 @@ namespace isc { namespace dhcp { { 71, 72, 73, 74, 75, 76, 16, 78, 79, 80, 81, 771, 72, 73, 74, 75, 76, 79, 78, 79, - 73, 81, 738, 765, 73, 79, 1034, 73, 1034, 1034, - 73, 73, 74, 75, 76, 1034, 1034, 78, 79, 127, - 5, 637, 7, 199, 9, 134, 135, 125, 3, 73, - 0, 6, 97, 98, 132, 214, 3, 74, 214, 73, - 73, 8, 16, 17, 18, 19, 20, 134, 135, 72, - 73, 74, 75, 76, 75, 78, 79, 7, 81, 180, - 181, 182, 183, 10, 74, 75, 678, 73, 73, 73, - 7, 92, 93, 94, 95, 96, 97, 98, 690, 691, - 692, 7, 73, 73, 3, 3, 73, 73, 6, 8, - 73, 7, 157, 158, 73, 711, 217, 73, 119, 7, - 73, 73, 123, 3, 73, 214, 214, 73, 8, 3, + 73, 81, 738, 765, 73, 79, 1043, 73, 1043, 1043, + 73, 73, 74, 75, 76, 1043, 1043, 78, 79, 130, + 5, 128, 7, 79, 9, 137, 138, 202, 135, 73, + 180, 181, 3, 3, 637, 100, 101, 8, 8, 73, + 73, 3, 217, 7, 100, 101, 8, 137, 138, 72, + 73, 74, 75, 76, 78, 78, 79, 7, 81, 16, + 17, 18, 19, 20, 74, 75, 678, 73, 73, 73, + 0, 95, 96, 97, 98, 99, 100, 101, 690, 691, + 692, 7, 73, 73, 3, 7, 73, 73, 3, 8, + 73, 7, 24, 8, 73, 160, 161, 73, 122, 7, + 73, 73, 126, 7, 73, 217, 217, 73, 711, 3, 3, 3, 73, 6, 8, 73, 8, 73, 73, 73, - 7, 3, 73, 97, 98, 73, 8, 13, 14, 73, - 73, 3, 73, 24, 74, 75, 8, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 7, 214, - 7, 42, 43, 44, 45, 46, 137, 138, 139, 140, - 141, 142, 11, 12, 191, 7, 15, 194, 195, 196, - 197, 7, 21, 22, 23, 76, 77, 78, 79, 80, - 81, 3, 3, 3, 3, 76, 8, 8, 8, 8, - 3, 127, 128, 214, 130, 8, 97, 98, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 24, 75, 214, - 215, 216, 217, 116, 117, 32, 85, 86, 87, 88, - 214, 7, 3, 90, 1272, 6, 1272, 1272, 97, 98, - 97, 98, 7, 1272, 1272, 104, 3, 24, 7, 6, - 109, 110, 111, 112, 113, 114, 115, 6, 3, 118, - 76, 3, 119, 8, 3, 124, 123, 3, 1040, 8, - 3, 8, 8, 4, 133, 8, 1022, 136, 1068, 97, - 98, 97, 98, 3, 143, 25, 26, 27, 8, 3, - 97, 98, 151, 152, 8, 3, 8, 156, 4, 76, - 159, 78, 79, 214, 163, 82, 83, 84, 4, 75, - 3, 177, 178, 214, 3, 8, 97, 98, 3, 8, - 97, 98, 4, 8, 4, 184, 185, 186, 187, 188, - 189, 97, 98, 3, 3, 153, 154, 155, 8, 198, - 147, 148, 149, 150, 47, 48, 49, 50, 51, 52, - 4, 3, 118, 3, 3, 214, 8, 214, 8, 125, - 126, 127, 128, 129, 130, 3, 3, 39, 40, 41, - 8, 8, 75, 76, 190, 4, 192, 193, 3, 160, - 161, 162, 3, 8, 3, 3, 8, 8, 4, 8, - 8, 144, 145, 146, 97, 98, 214, 4, 214, 4, - 440, 441, 4, 105, 106, 107, 108, 214, 4, 4, - 4, 4, 4, 514, 4, 4, 4, 120, 121, 122, + 100, 101, 73, 3, 3, 73, 3, 6, 8, 73, + 73, 8, 73, 3, 74, 75, 78, 193, 8, 195, + 196, 3, 3, 100, 101, 6, 8, 79, 7, 81, + 82, 3, 217, 85, 86, 87, 8, 3, 100, 101, + 3, 217, 8, 11, 12, 8, 3, 15, 100, 101, + 217, 8, 7, 21, 22, 23, 156, 157, 158, 121, + 140, 141, 142, 143, 144, 145, 128, 129, 130, 131, + 132, 133, 7, 217, 183, 184, 185, 186, 108, 109, + 110, 111, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 220, 217, 218, 219, 220, 7, 217, 7, 3, + 88, 89, 90, 91, 8, 3, 3, 1284, 6, 1284, + 1284, 8, 100, 101, 24, 7, 1284, 1284, 3, 107, + 217, 78, 32, 8, 112, 113, 114, 115, 116, 117, + 118, 3, 3, 121, 6, 217, 93, 8, 77, 127, + 6, 3, 10, 100, 101, 217, 8, 1049, 136, 3, + 3, 139, 13, 14, 8, 1031, 194, 1077, 146, 197, + 198, 199, 200, 3, 8, 122, 154, 155, 8, 126, + 4, 159, 3, 3, 162, 119, 120, 8, 166, 4, + 50, 51, 52, 53, 54, 55, 4, 3, 8, 4, + 100, 101, 8, 100, 101, 130, 131, 4, 133, 187, + 188, 189, 190, 191, 192, 3, 3, 3, 78, 79, + 8, 24, 8, 201, 4, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 217, + 100, 101, 45, 46, 47, 48, 49, 4, 4, 3, + 150, 151, 152, 153, 8, 4, 79, 80, 81, 82, + 83, 84, 4, 123, 124, 125, 163, 164, 165, 3, + 217, 42, 43, 44, 8, 4, 79, 100, 101, 3, + 440, 441, 3, 8, 8, 4, 4, 8, 25, 26, + 27, 4, 4, 514, 147, 148, 149, 8, 4, 4, 521, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 521, 533, 214, 3, 536, 4, 214, 4, 4, - 4, 4, 543, 533, 4, 4, 536, 4, 214, 4, + 4, 521, 533, 4, 4, 536, 4, 217, 4, 4, + 217, 4, 543, 533, 4, 4, 536, 4, 4, 4, 533, 4, 553, 543, 533, 4, 4, 533, 4, 4, - 533, 533, 563, 553, 536, 8, 4, 568, 4, 8, - 4, 543, 4, 563, 4, 4, 568, 4, 568, 533, - 4, 553, 4, 4, 568, 214, 4, 588, 521, 533, - 533, 4, 563, 4, 4, 4, 4, 568, 588, 215, - 533, 216, 215, 536, 215, 215, 215, 4, 215, 4, - 543, 214, 217, 217, 215, 215, 536, 533, 533, 533, - 553, 216, 216, 543, 215, 215, 4, 97, 98, 215, - 563, 215, 533, 533, 217, 568, 533, 533, 217, 4, - 533, 217, 217, 217, 533, 4, 4, 533, 4, 215, - 533, 533, 4, 4, 533, 588, 4, 533, 4, 4, - 4, 217, 533, 4, 217, 533, 217, 533, 533, 533, - 4, 4, 533, 4, 4, 533, 4, 4, 4, 533, - 533, 4, 533, 215, 4, 4, 536, 4, 4, 4, - 4, 217, 4, 543, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 217, 217, 4, - 4, 217, 215, 217, 184, 185, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 215, 4, 733, 4, 4, 736, 4, 4, 4, 4, - 4, 4, 215, 4, 214, 217, 736, 4, 215, 4, - 4, 4, 4, 215, 215, 4, 4, 4, 4, 4, - 4, 215, 4, 4, 4, 217, 217, 217, 4, 4, - 771, 772, 773, 217, 775, 4, 4, 4, 779, 4, - 215, 771, 772, 773, 774, 775, 4, 215, 4, 215, - 4, 4, 732, 4, 217, 4, 215, 217, 4, 7, - 214, 5, 7, 736, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 7, 7, 7, - 214, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 214, 214, 75, 5, 5, 5, 5, 214, 771, 772, - 773, 774, 775, 86, 87, 214, 89, 7, 91, 5, - 214, 5, 5, 5, 97, 98, 99, 100, 101, 102, - 103, 104, 7, 5, 5, 214, 109, 110, 111, 7, - 7, 7, 7, 7, 7, 214, 119, 5, 7, 5, - 123, 124, 5, 5, 4, 214, 7, 179, 131, 214, - 214, 5, 214, 214, 7, 7, 214, 7, 7, 7, - 7, 214, 7, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 7, - 7, 214, 7, 7, 4, 4, 4, 4, 4, 4, - 4, 3, 214, 6, 3, 6, 6, 3, 6, 3, - 215, 184, 185, 6, 3, 6, 6, 3, 6, 3, - 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 3, 217, 6, 3, - 6, 214, 3, 8, 6, 4, 4, 4, 4, 217, - 4, 215, 215, 215, 215, 215, 4, 4, 4, 4, - 4, 4, 215, 215, 215, 215, 215, 4, 215, 4, - 215, 4, 4, 215, 4, 215, 4, 6, 4, 4, - 217, 8, 215, 215, 8, 215, 217, 214, 217, 214, - 214, 214, 214, 214, 1025, 8, 3, 1028, 214, 214, - 1031, 214, 8, 1034, 214, 1025, 214, 214, 1028, 1031, - 214, 1031, 1025, 4, 1034, 1046, 1025, 1031, 1049, 1025, - 214, 1052, 1025, 1025, 4, 1034, 1046, 1028, 1034, 1049, - 1031, 1034, 1034, 1034, 214, 4, 217, 1068, 4, 215, - 1046, 1025, 1073, 1046, 1046, 1046, 1077, 1049, 1068, 4, - 1034, 1025, 1025, 1073, 214, 1086, 7, 1077, 4, 1090, - 1034, 1034, 1025, 1083, 1095, 1028, 1086, 1098, 1031, 214, - 4, 1034, 1046, 1046, 4, 1095, 4, 4, 1098, 1025, - 1025, 1025, 214, 1046, 1034, 1086, 1049, 217, 1034, 1034, - 1034, 215, 215, 1095, 1025, 1025, 1098, 514, 1025, 1025, - 1046, 1046, 1025, 1034, 1034, 1068, 1025, 1034, 1034, 1025, - 1073, 1034, 1025, 1025, 1077, 1034, 1025, 214, 1034, 1025, - 1083, 1034, 1034, 1086, 1025, 1034, 711, 1025, 1034, 1025, - 1025, 1025, 1095, 1034, 1025, 1098, 1034, 1025, 1034, 1034, - 1034, 1025, 1025, 1034, 1025, 1095, 1034, 764, 1098, 724, - 1034, 1034, 1024, 1034, 1034, 733, 521, 819, 1019, 214, - 736, 1040, 1044, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 1073, 1037, 1052, 1054, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 1061, 75, 76, 1036, 571, 1272, 1025, 1027, 77, 1098, - 1028, 563, 86, 87, 1097, 1030, 1095, 1051, 1100, 1033, - 1031, 1049, 533, 97, 98, 1095, 100, 101, 1098, 103, - 104, 536, 1280, 789, 543, 109, 110, 111, 1047, 1068, - 1077, 1083, 775, 1087, 735, 119, 553, 1318, 1295, 123, - 1338, 1272, -1, -1, 1090, -1, -1, 131, 568, 1280, - -1, -1, 1272, -1, -1, -1, -1, -1, -1, 1229, - 1280, -1, -1, 1272, 1295, -1, 1272, -1, -1, 1272, - 1272, 1272, 588, -1, 1280, 1295, -1, 1280, 1280, 1280, - -1, 592, -1, -1, -1, -1, -1, -1, 1272, -1, - -1, -1, -1, -1, 1295, -1, -1, -1, 1272, 1272, - 184, 185, -1, -1, -1, -1, 1280, 1280, -1, 1272, - -1, -1, -1, -1, -1, -1, -1, 1280, -1, -1, - -1, -1, 1272, -1, -1, -1, 1272, 1272, 1272, -1, - 214, -1, 1295, -1, 1280, 1280, -1, -1, -1, -1, - -1, 1272, 1272, -1, -1, 1272, 1272, -1, -1, 1272, - -1, -1, -1, 1272, -1, -1, 1272, -1, -1, 1272, - 1272, -1, -1, 1272, -1, -1, 1272, -1, -1, -1, - -1, 1272, -1, -1, 1272, -1, 1272, 1272, 1272, -1, - -1, 1272, -1, -1, 1272, -1, -1, -1, 1272, 1272, - -1, 1272, 1272 + 533, 533, 563, 553, 536, 3, 8, 568, 4, 4, + 3, 543, 4, 563, 4, 4, 568, 217, 568, 533, + 4, 553, 4, 4, 568, 4, 4, 588, 521, 533, + 533, 217, 563, 4, 4, 4, 4, 568, 588, 4, + 533, 4, 218, 536, 219, 218, 218, 218, 4, 218, + 543, 218, 218, 218, 217, 4, 536, 533, 533, 533, + 553, 220, 219, 543, 220, 219, 218, 100, 101, 218, + 563, 218, 533, 533, 217, 568, 533, 533, 218, 220, + 533, 220, 4, 4, 533, 220, 220, 533, 220, 4, + 533, 533, 4, 4, 533, 588, 218, 533, 4, 4, + 4, 4, 533, 4, 4, 533, 220, 533, 533, 533, + 220, 220, 533, 4, 4, 533, 4, 4, 4, 533, + 533, 4, 533, 4, 4, 4, 536, 218, 4, 4, + 4, 4, 4, 543, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 4, 220, 220, + 220, 4, 4, 4, 187, 188, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 220, 220, 733, 4, 218, 736, 4, 4, 4, 4, + 4, 4, 4, 4, 217, 4, 736, 4, 220, 218, + 4, 218, 4, 4, 218, 4, 218, 218, 5, 4, + 4, 4, 4, 4, 218, 4, 4, 4, 220, 4, + 771, 772, 773, 220, 775, 4, 220, 4, 779, 220, + 4, 771, 772, 773, 774, 775, 4, 218, 4, 4, + 218, 218, 732, 4, 220, 220, 4, 4, 4, 4, + 4, 218, 4, 736, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 7, 217, 7, + 7, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 7, 7, 78, 217, 217, 217, 5, 5, 771, 772, + 773, 774, 775, 89, 90, 5, 92, 217, 94, 217, + 5, 7, 217, 5, 100, 101, 102, 103, 104, 105, + 106, 107, 5, 5, 5, 5, 112, 113, 114, 7, + 5, 7, 3, 7, 7, 7, 122, 7, 7, 217, + 126, 127, 217, 5, 7, 5, 5, 5, 134, 5, + 7, 4, 217, 217, 182, 217, 7, 7, 7, 217, + 217, 7, 7, 7, 7, 7, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 7, 217, 217, 217, 7, 7, 4, 217, 217, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, + 6, 187, 188, 6, 6, 6, 3, 6, 3, 218, + 6, 3, 6, 6, 3, 6, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 217, 3, 6, 3, 5, 8, 217, 6, 4, + 4, 4, 4, 4, 220, 218, 220, 218, 218, 4, + 218, 4, 218, 218, 4, 218, 218, 4, 4, 4, + 4, 218, 4, 4, 218, 218, 218, 4, 218, 218, + 4, 4, 3, 8, 6, 218, 4, 218, 218, 8, + 218, 220, 218, 220, 218, 220, 217, 4, 217, 8, + 3, 217, 217, 1034, 217, 217, 1037, 217, 217, 1040, + 8, 4, 1043, 217, 1034, 217, 217, 1037, 1040, 4, + 1040, 1034, 217, 1043, 1055, 1034, 1040, 1058, 1034, 217, + 1061, 1034, 1034, 217, 1043, 1055, 1037, 1043, 1058, 1040, + 1043, 1043, 1043, 217, 4, 220, 1077, 4, 4, 1055, + 1034, 1082, 1055, 1055, 1055, 1086, 1058, 1077, 7, 1043, + 1034, 1034, 1082, 218, 1095, 4, 1086, 4, 1099, 1043, + 1043, 1034, 1092, 1104, 1037, 1095, 1107, 1040, 4, 217, + 1043, 1055, 1055, 4, 1104, 4, 217, 1107, 1034, 1034, + 1034, 217, 1055, 1043, 1095, 1058, 220, 1043, 1043, 1043, + 218, 217, 1104, 1034, 1034, 1107, 217, 1034, 1034, 1055, + 1055, 1034, 1043, 1043, 1077, 1034, 1043, 1043, 1034, 1082, + 1043, 1034, 1034, 1086, 1043, 1034, 711, 1043, 1034, 1092, + 1043, 1043, 1095, 1034, 1043, 514, 1034, 1043, 1034, 1034, + 1034, 1104, 1043, 1034, 1107, 1043, 1034, 1043, 1043, 1043, + 1034, 1034, 1043, 1034, 1104, 1043, 764, 1107, 733, 1043, + 1043, 218, 1043, 1043, 724, 736, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 1033, + 1053, 819, 1028, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 1046, 78, 79, 1082, 1049, 1063, 571, + 1061, 1070, 1045, 1034, 521, 89, 90, 1036, 1284, 77, + 1037, 1039, 1042, 1106, 1040, 1104, 100, 101, 533, 103, + 104, 1060, 106, 107, 1104, 536, 789, 1107, 112, 113, + 114, 1109, 1107, 543, 1058, 1056, 1292, 1077, 122, 1086, + 553, 1092, 126, 775, 1307, 1330, 1350, 563, -1, -1, + 134, 1096, -1, 1284, 568, 735, -1, 1099, -1, -1, + -1, 1292, -1, -1, 1284, -1, -1, -1, -1, -1, + -1, 1241, 1292, -1, -1, 1284, 1307, -1, 1284, 588, + 592, 1284, 1284, 1284, -1, -1, 1292, 1307, -1, 1292, + 1292, 1292, -1, -1, -1, -1, -1, -1, -1, -1, + 1284, -1, -1, 187, 188, -1, 1307, -1, -1, -1, + 1284, 1284, -1, -1, -1, -1, -1, -1, 1292, 1292, + -1, 1284, -1, -1, -1, -1, -1, -1, -1, 1292, + -1, -1, -1, 217, 1284, -1, -1, -1, 1284, 1284, + 1284, -1, -1, -1, 1307, -1, 1292, 1292, -1, -1, + -1, -1, -1, 1284, 1284, -1, -1, 1284, 1284, -1, + -1, 1284, -1, -1, -1, 1284, -1, -1, 1284, -1, + -1, 1284, 1284, -1, -1, 1284, -1, -1, 1284, -1, + -1, -1, -1, 1284, -1, -1, 1284, -1, 1284, 1284, + 1284, -1, -1, 1284, -1, -1, 1284, -1, -1, -1, + 1284, 1284, -1, 1284, 1284 }; const short Dhcp6Parser::yystos_[] = { - 0, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 0, 5, 7, 9, 214, 215, 216, 217, 234, 235, - 236, 241, 7, 250, 7, 255, 7, 306, 7, 417, - 7, 497, 7, 513, 7, 530, 7, 449, 7, 455, - 7, 479, 7, 393, 7, 601, 7, 632, 242, 237, - 251, 256, 307, 418, 498, 514, 531, 450, 456, 480, - 394, 602, 633, 234, 243, 244, 214, 239, 240, 10, - 252, 254, 11, 12, 15, 21, 22, 23, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 85, 86, 87, - 88, 97, 98, 104, 109, 110, 111, 112, 113, 114, - 115, 118, 124, 133, 136, 143, 151, 152, 156, 159, - 163, 184, 185, 186, 187, 188, 189, 198, 214, 249, - 257, 258, 259, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 281, 283, 285, 286, 287, 289, 291, 292, 293, - 294, 296, 297, 299, 301, 302, 303, 304, 316, 318, - 320, 358, 366, 372, 378, 380, 387, 401, 411, 431, - 432, 433, 434, 439, 447, 473, 503, 505, 524, 554, - 568, 580, 581, 589, 599, 630, 639, 663, 16, 17, - 18, 19, 20, 249, 308, 309, 310, 312, 313, 314, - 315, 503, 505, 89, 91, 99, 100, 101, 102, 103, - 119, 123, 131, 249, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 275, 276, 277, - 278, 281, 283, 285, 286, 287, 289, 291, 297, 299, - 419, 420, 421, 423, 425, 427, 429, 431, 432, 433, - 434, 437, 438, 473, 491, 503, 505, 507, 524, 549, - 90, 249, 427, 429, 473, 499, 500, 501, 503, 505, - 92, 93, 94, 95, 96, 249, 427, 429, 473, 503, - 505, 515, 516, 517, 519, 520, 522, 523, 118, 125, - 126, 127, 128, 129, 130, 249, 473, 503, 505, 532, - 533, 534, 535, 537, 539, 541, 543, 545, 547, 447, - 24, 76, 78, 79, 82, 83, 84, 249, 338, 457, - 458, 459, 460, 461, 462, 463, 465, 467, 469, 470, - 472, 503, 505, 77, 80, 81, 249, 338, 461, 467, - 481, 482, 483, 484, 485, 487, 488, 489, 490, 503, - 505, 134, 135, 249, 395, 396, 397, 399, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 184, 185, 249, 503, 505, 603, 604, 605, 606, - 608, 610, 611, 613, 614, 615, 618, 620, 621, 622, - 624, 626, 628, 13, 14, 634, 635, 636, 638, 6, - 3, 4, 8, 3, 253, 3, 8, 260, 631, 305, - 317, 319, 321, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 295, 4, 4, - 4, 4, 4, 279, 282, 284, 4, 4, 4, 412, - 448, 474, 4, 298, 300, 440, 504, 506, 435, 4, - 4, 4, 367, 379, 373, 359, 555, 525, 388, 402, - 569, 4, 381, 582, 590, 600, 288, 290, 4, 4, - 4, 640, 664, 4, 3, 8, 311, 4, 4, 4, - 4, 3, 8, 492, 508, 422, 424, 426, 4, 4, - 430, 428, 550, 3, 8, 502, 3, 8, 518, 4, - 521, 4, 4, 3, 8, 548, 536, 538, 540, 542, - 544, 546, 8, 3, 8, 464, 339, 4, 468, 466, - 471, 4, 8, 3, 486, 4, 4, 8, 3, 398, - 400, 3, 8, 4, 607, 609, 4, 612, 4, 4, - 616, 619, 4, 4, 623, 625, 627, 629, 3, 8, - 637, 4, 3, 8, 234, 234, 214, 4, 4, 4, - 4, 4, 4, 4, 215, 215, 215, 215, 215, 215, - 215, 215, 217, 216, 216, 216, 215, 215, 4, 215, - 215, 217, 217, 217, 4, 4, 4, 217, 217, 217, - 4, 4, 4, 215, 4, 4, 4, 4, 4, 4, - 217, 217, 217, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 215, 4, 4, 4, 4, 4, 4, 217, - 217, 217, 4, 4, 258, 4, 217, 217, 215, 215, - 309, 4, 4, 4, 4, 4, 215, 217, 4, 4, - 4, 420, 4, 500, 4, 215, 4, 215, 215, 516, - 4, 4, 4, 4, 4, 4, 4, 534, 4, 4, - 215, 4, 4, 4, 217, 459, 4, 217, 217, 483, - 4, 4, 396, 217, 4, 4, 215, 4, 215, 215, - 4, 4, 217, 217, 4, 4, 4, 4, 604, 4, - 215, 635, 4, 7, 214, 7, 7, 7, 7, 5, - 214, 180, 181, 182, 183, 217, 280, 214, 214, 5, - 5, 5, 214, 214, 5, 236, 238, 214, 105, 106, - 107, 108, 436, 5, 5, 5, 7, 5, 5, 5, - 7, 7, 7, 7, 7, 7, 214, 214, 5, 7, - 5, 245, 5, 5, 214, 214, 214, 245, 214, 7, - 214, 214, 214, 245, 245, 245, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 238, 214, 214, - 214, 177, 178, 617, 179, 280, 214, 214, 214, 5, - 234, 257, 634, 308, 24, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 42, 43, 44, 45, - 46, 249, 326, 327, 328, 331, 333, 335, 337, 338, - 340, 341, 342, 343, 344, 345, 348, 349, 350, 352, - 354, 356, 326, 7, 322, 323, 324, 7, 413, 414, - 415, 7, 451, 452, 453, 7, 475, 476, 477, 7, - 441, 442, 443, 127, 214, 368, 369, 370, 371, 243, - 128, 130, 370, 374, 375, 376, 377, 116, 117, 360, - 361, 362, 364, 7, 556, 557, 7, 526, 527, 528, - 7, 389, 390, 391, 137, 138, 139, 140, 141, 142, - 403, 404, 405, 406, 407, 408, 409, 410, 24, 147, - 148, 149, 150, 249, 340, 503, 505, 570, 571, 572, - 575, 576, 578, 579, 153, 154, 155, 249, 382, 383, - 384, 385, 386, 503, 505, 157, 158, 249, 503, 505, - 583, 584, 585, 587, 160, 161, 162, 214, 503, 505, - 591, 592, 593, 594, 596, 597, 603, 7, 641, 642, - 199, 249, 665, 666, 667, 246, 7, 493, 494, 495, - 7, 509, 510, 511, 132, 535, 551, 552, 322, 8, - 8, 8, 329, 332, 334, 336, 4, 4, 4, 4, - 4, 4, 4, 346, 4, 351, 353, 355, 357, 3, - 8, 8, 325, 6, 3, 416, 6, 3, 454, 6, - 3, 478, 6, 3, 444, 6, 3, 3, 6, 6, - 3, 6, 363, 365, 3, 8, 558, 3, 6, 529, - 6, 3, 392, 6, 3, 4, 4, 4, 4, 4, - 4, 3, 8, 573, 577, 4, 4, 4, 3, 8, - 4, 4, 4, 3, 8, 586, 588, 3, 8, 4, - 595, 4, 598, 3, 8, 8, 643, 3, 6, 4, - 3, 8, 214, 247, 248, 496, 6, 3, 512, 6, - 3, 553, 8, 6, 4, 4, 4, 4, 215, 217, - 215, 217, 215, 215, 215, 4, 215, 4, 4, 4, - 4, 327, 326, 324, 419, 415, 457, 453, 481, 477, - 249, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 275, 276, 277, 278, 281, 283, - 285, 286, 287, 289, 291, 297, 299, 338, 411, 423, - 425, 427, 429, 431, 432, 433, 434, 438, 445, 446, - 473, 503, 505, 549, 443, 369, 375, 4, 4, 361, - 120, 121, 122, 249, 261, 262, 263, 264, 265, 266, - 338, 473, 503, 505, 559, 560, 561, 562, 563, 565, - 567, 557, 532, 528, 395, 391, 215, 215, 215, 215, - 215, 215, 404, 4, 4, 215, 215, 215, 571, 217, - 215, 215, 383, 4, 4, 584, 217, 4, 215, 4, - 592, 190, 192, 193, 249, 338, 503, 505, 644, 645, - 646, 647, 649, 642, 217, 666, 6, 3, 499, 495, - 515, 511, 4, 25, 26, 27, 330, 214, 214, 214, - 39, 40, 41, 347, 214, 214, 214, 214, 8, 8, - 8, 8, 3, 8, 214, 214, 564, 566, 4, 8, - 3, 8, 8, 144, 145, 146, 574, 214, 214, 214, - 214, 234, 650, 4, 648, 3, 8, 214, 8, 8, - 214, 446, 4, 4, 217, 561, 4, 215, 4, 645, - 214, 214, 5, 214, 7, 651, 652, 653, 3, 6, - 191, 194, 195, 196, 197, 654, 655, 656, 658, 659, - 660, 661, 652, 657, 4, 4, 4, 662, 3, 8, - 4, 217, 215, 215, 4, 655, 214, 214 + 0, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 0, 5, 7, 9, 217, 218, 219, 220, 237, 238, + 239, 244, 7, 253, 7, 258, 7, 309, 7, 423, + 7, 503, 7, 519, 7, 536, 7, 455, 7, 461, + 7, 485, 7, 399, 7, 607, 7, 638, 245, 240, + 254, 259, 310, 424, 504, 520, 537, 456, 462, 486, + 400, 608, 639, 237, 246, 247, 217, 242, 243, 10, + 255, 257, 11, 12, 15, 21, 22, 23, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 88, 89, 90, + 91, 100, 101, 107, 112, 113, 114, 115, 116, 117, + 118, 121, 127, 136, 139, 146, 154, 155, 159, 162, + 166, 187, 188, 189, 190, 191, 192, 201, 217, 252, + 260, 261, 262, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 284, 286, 288, 289, 290, 292, 294, 295, 296, + 297, 299, 300, 302, 304, 305, 306, 307, 319, 321, + 323, 364, 372, 378, 384, 386, 393, 407, 417, 437, + 438, 439, 440, 445, 453, 479, 509, 511, 530, 560, + 574, 586, 587, 595, 605, 636, 645, 669, 16, 17, + 18, 19, 20, 252, 311, 312, 313, 315, 316, 317, + 318, 509, 511, 92, 94, 102, 103, 104, 105, 106, + 122, 126, 134, 252, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 278, 279, 280, + 281, 284, 286, 288, 289, 290, 292, 294, 300, 302, + 425, 426, 427, 429, 431, 433, 435, 437, 438, 439, + 440, 443, 444, 479, 497, 509, 511, 513, 530, 555, + 93, 252, 433, 435, 479, 505, 506, 507, 509, 511, + 95, 96, 97, 98, 99, 252, 433, 435, 479, 509, + 511, 521, 522, 523, 525, 526, 528, 529, 121, 128, + 129, 130, 131, 132, 133, 252, 479, 509, 511, 538, + 539, 540, 541, 543, 545, 547, 549, 551, 553, 453, + 24, 79, 81, 82, 85, 86, 87, 252, 341, 463, + 464, 465, 466, 467, 468, 469, 471, 473, 475, 476, + 478, 509, 511, 80, 83, 84, 252, 341, 467, 473, + 487, 488, 489, 490, 491, 493, 494, 495, 496, 509, + 511, 137, 138, 252, 401, 402, 403, 405, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 187, 188, 252, 509, 511, 609, 610, 611, 612, + 614, 616, 617, 619, 620, 621, 624, 626, 627, 628, + 630, 632, 634, 13, 14, 640, 641, 642, 644, 6, + 3, 4, 8, 3, 256, 3, 8, 263, 637, 308, + 320, 322, 324, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 298, 4, 4, + 4, 4, 4, 282, 285, 287, 4, 4, 4, 418, + 454, 480, 4, 301, 303, 446, 510, 512, 441, 4, + 4, 4, 373, 385, 379, 365, 561, 531, 394, 408, + 575, 4, 387, 588, 596, 606, 291, 293, 4, 4, + 4, 646, 670, 4, 3, 8, 314, 4, 4, 4, + 4, 3, 8, 498, 514, 428, 430, 432, 4, 4, + 436, 434, 556, 3, 8, 508, 3, 8, 524, 4, + 527, 4, 4, 3, 8, 554, 542, 544, 546, 548, + 550, 552, 8, 3, 8, 470, 342, 4, 474, 472, + 477, 4, 8, 3, 492, 4, 4, 8, 3, 404, + 406, 3, 8, 4, 613, 615, 4, 618, 4, 4, + 622, 625, 4, 4, 629, 631, 633, 635, 3, 8, + 643, 4, 3, 8, 237, 237, 217, 4, 4, 4, + 4, 4, 4, 4, 218, 218, 218, 218, 218, 218, + 218, 218, 220, 219, 219, 219, 218, 218, 4, 218, + 218, 220, 220, 220, 4, 4, 4, 220, 220, 220, + 4, 4, 4, 218, 4, 4, 4, 4, 4, 4, + 220, 220, 220, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 218, 4, 4, 4, 4, 4, 4, 220, + 220, 220, 4, 4, 261, 4, 220, 220, 218, 218, + 312, 4, 4, 4, 4, 4, 218, 220, 4, 4, + 4, 426, 4, 506, 4, 218, 4, 218, 218, 522, + 4, 4, 4, 4, 4, 4, 4, 540, 4, 4, + 218, 4, 4, 4, 220, 465, 4, 220, 220, 489, + 4, 4, 402, 220, 4, 4, 218, 4, 218, 218, + 4, 4, 220, 220, 4, 4, 4, 4, 610, 4, + 218, 641, 4, 7, 217, 7, 7, 7, 7, 5, + 217, 183, 184, 185, 186, 220, 283, 217, 217, 5, + 5, 5, 217, 217, 5, 239, 241, 217, 108, 109, + 110, 111, 442, 5, 5, 5, 7, 5, 5, 5, + 7, 7, 7, 7, 7, 7, 217, 217, 5, 7, + 5, 248, 5, 5, 217, 217, 217, 248, 217, 7, + 217, 217, 217, 248, 248, 248, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 241, 217, 217, + 217, 180, 181, 623, 182, 283, 217, 217, 217, 5, + 237, 260, 640, 311, 24, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 45, + 46, 47, 48, 49, 252, 329, 330, 331, 334, 336, + 338, 340, 341, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 354, 355, 356, 358, 360, 362, 329, 7, + 325, 326, 327, 7, 419, 420, 421, 7, 457, 458, + 459, 7, 481, 482, 483, 7, 447, 448, 449, 130, + 217, 374, 375, 376, 377, 246, 131, 133, 376, 380, + 381, 382, 383, 119, 120, 366, 367, 368, 370, 7, + 562, 563, 7, 532, 533, 534, 7, 395, 396, 397, + 140, 141, 142, 143, 144, 145, 409, 410, 411, 412, + 413, 414, 415, 416, 24, 150, 151, 152, 153, 252, + 343, 509, 511, 576, 577, 578, 581, 582, 584, 585, + 156, 157, 158, 252, 388, 389, 390, 391, 392, 509, + 511, 160, 161, 252, 509, 511, 589, 590, 591, 593, + 163, 164, 165, 217, 509, 511, 597, 598, 599, 600, + 602, 603, 609, 7, 647, 648, 202, 252, 671, 672, + 673, 249, 7, 499, 500, 501, 7, 515, 516, 517, + 135, 541, 557, 558, 325, 8, 8, 8, 332, 335, + 337, 339, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 352, 4, 357, 359, 361, 363, 3, 8, + 8, 328, 6, 3, 422, 6, 3, 460, 6, 3, + 484, 6, 3, 450, 6, 3, 3, 6, 6, 3, + 6, 369, 371, 3, 8, 564, 3, 6, 535, 6, + 3, 398, 6, 3, 4, 4, 4, 4, 4, 4, + 3, 8, 579, 583, 4, 4, 4, 3, 8, 4, + 4, 4, 3, 8, 592, 594, 3, 8, 4, 601, + 4, 604, 3, 8, 8, 649, 3, 6, 4, 3, + 8, 217, 250, 251, 502, 6, 3, 518, 6, 3, + 559, 8, 6, 4, 4, 4, 4, 218, 220, 218, + 220, 218, 218, 218, 218, 218, 218, 4, 218, 4, + 4, 4, 4, 330, 329, 327, 425, 421, 463, 459, + 487, 483, 252, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 278, 279, 280, 281, + 284, 286, 288, 289, 290, 292, 294, 300, 302, 341, + 417, 429, 431, 433, 435, 437, 438, 439, 440, 444, + 451, 452, 479, 509, 511, 555, 449, 375, 381, 4, + 4, 367, 123, 124, 125, 252, 264, 265, 266, 267, + 268, 269, 341, 479, 509, 511, 565, 566, 567, 568, + 569, 571, 573, 563, 538, 534, 401, 397, 218, 218, + 218, 218, 218, 218, 410, 4, 4, 218, 218, 218, + 577, 220, 218, 218, 389, 4, 4, 590, 220, 4, + 218, 4, 598, 193, 195, 196, 252, 341, 509, 511, + 650, 651, 652, 653, 655, 648, 220, 672, 6, 3, + 505, 501, 521, 517, 4, 25, 26, 27, 333, 217, + 217, 217, 42, 43, 44, 353, 217, 217, 217, 217, + 8, 8, 8, 8, 3, 8, 217, 217, 570, 572, + 4, 8, 3, 8, 8, 147, 148, 149, 580, 217, + 217, 217, 217, 237, 656, 4, 654, 3, 8, 217, + 8, 8, 217, 452, 4, 4, 220, 567, 4, 218, + 4, 651, 217, 217, 5, 217, 7, 657, 658, 659, + 3, 6, 194, 197, 198, 199, 200, 660, 661, 662, + 664, 665, 666, 667, 658, 663, 4, 4, 4, 668, + 3, 8, 4, 220, 218, 218, 4, 661, 217, 217 }; const short Dhcp6Parser::yyr1_[] = { - 0, 218, 220, 219, 221, 219, 222, 219, 223, 219, - 224, 219, 225, 219, 226, 219, 227, 219, 228, 219, - 229, 219, 230, 219, 231, 219, 232, 219, 233, 219, - 234, 234, 234, 234, 234, 234, 234, 235, 237, 236, - 238, 239, 239, 240, 240, 240, 242, 241, 243, 243, - 244, 244, 244, 246, 245, 247, 247, 248, 248, 248, - 249, 251, 250, 253, 252, 252, 254, 256, 255, 257, - 257, 257, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 258, - 258, 258, 258, 258, 258, 258, 258, 258, 258, 260, - 259, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 279, 278, - 280, 280, 280, 280, 280, 282, 281, 284, 283, 285, - 286, 288, 287, 290, 289, 291, 292, 293, 295, 294, - 296, 298, 297, 300, 299, 301, 302, 303, 305, 304, - 307, 306, 308, 308, 308, 309, 309, 309, 309, 309, - 309, 309, 309, 311, 310, 312, 313, 314, 315, 317, - 316, 319, 318, 321, 320, 322, 322, 323, 323, 323, - 325, 324, 326, 326, 326, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 327, 327, 327, 327, 329, 328, 330, 330, 330, 332, - 331, 334, 333, 336, 335, 337, 339, 338, 340, 341, - 342, 343, 344, 346, 345, 347, 347, 347, 348, 349, - 351, 350, 353, 352, 355, 354, 357, 356, 359, 358, - 360, 360, 360, 361, 361, 363, 362, 365, 364, 367, - 366, 368, 368, 368, 369, 369, 370, 371, 373, 372, - 374, 374, 374, 375, 375, 375, 376, 377, 379, 378, - 381, 380, 382, 382, 382, 383, 383, 383, 383, 383, - 383, 384, 385, 386, 388, 387, 389, 389, 390, 390, - 390, 392, 391, 394, 393, 395, 395, 395, 395, 396, - 396, 398, 397, 400, 399, 402, 401, 403, 403, 403, - 404, 404, 404, 404, 404, 404, 405, 406, 407, 408, - 409, 410, 412, 411, 413, 413, 414, 414, 414, 416, - 415, 418, 417, 419, 419, 419, 420, 420, 420, 420, - 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - 420, 420, 420, 420, 420, 420, 420, 420, 420, 420, - 420, 422, 421, 424, 423, 426, 425, 428, 427, 430, - 429, 431, 432, 433, 435, 434, 436, 436, 436, 436, - 437, 438, 440, 439, 441, 441, 442, 442, 442, 444, - 443, 445, 445, 445, 446, 446, 446, 446, 446, 446, - 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, - 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, - 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, - 446, 446, 446, 446, 446, 446, 448, 447, 450, 449, - 451, 451, 452, 452, 452, 454, 453, 456, 455, 457, - 457, 458, 458, 458, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 460, 461, 462, 464, 463, 466, - 465, 468, 467, 469, 471, 470, 472, 474, 473, 475, - 475, 476, 476, 476, 478, 477, 480, 479, 481, 481, - 482, 482, 482, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 484, 486, 485, 487, 488, 489, 490, 492, - 491, 493, 493, 494, 494, 494, 496, 495, 498, 497, - 499, 499, 499, 500, 500, 500, 500, 500, 500, 500, - 502, 501, 504, 503, 506, 505, 508, 507, 509, 509, - 510, 510, 510, 512, 511, 514, 513, 515, 515, 515, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 518, 517, 519, 521, 520, 522, 523, 525, 524, - 526, 526, 527, 527, 527, 529, 528, 531, 530, 532, - 532, 533, 533, 533, 534, 534, 534, 534, 534, 534, - 534, 534, 534, 534, 534, 536, 535, 538, 537, 540, - 539, 542, 541, 544, 543, 546, 545, 548, 547, 550, - 549, 551, 551, 553, 552, 555, 554, 556, 556, 556, - 558, 557, 559, 559, 560, 560, 560, 561, 561, 561, - 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, - 561, 562, 564, 563, 566, 565, 567, 569, 568, 570, - 570, 570, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 573, 572, 574, 574, 574, 575, 577, 576, 578, - 579, 580, 582, 581, 583, 583, 583, 584, 584, 584, - 584, 584, 586, 585, 588, 587, 590, 589, 591, 591, - 591, 592, 592, 592, 592, 592, 592, 593, 595, 594, - 596, 598, 597, 600, 599, 602, 601, 603, 603, 603, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 605, 607, - 606, 609, 608, 610, 612, 611, 613, 614, 616, 615, - 617, 617, 619, 618, 620, 621, 623, 622, 625, 624, - 627, 626, 629, 628, 631, 630, 633, 632, 634, 634, - 634, 635, 635, 637, 636, 638, 640, 639, 641, 641, - 641, 643, 642, 644, 644, 644, 645, 645, 645, 645, - 645, 645, 645, 646, 648, 647, 650, 649, 651, 651, - 651, 653, 652, 654, 654, 654, 655, 655, 655, 655, - 655, 657, 656, 658, 659, 660, 662, 661, 664, 663, - 665, 665, 665, 666, 666, 667 + 0, 221, 223, 222, 224, 222, 225, 222, 226, 222, + 227, 222, 228, 222, 229, 222, 230, 222, 231, 222, + 232, 222, 233, 222, 234, 222, 235, 222, 236, 222, + 237, 237, 237, 237, 237, 237, 237, 238, 240, 239, + 241, 242, 242, 243, 243, 243, 245, 244, 246, 246, + 247, 247, 247, 249, 248, 250, 250, 251, 251, 251, + 252, 254, 253, 256, 255, 255, 257, 259, 258, 260, + 260, 260, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 263, + 262, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 282, 281, + 283, 283, 283, 283, 283, 285, 284, 287, 286, 288, + 289, 291, 290, 293, 292, 294, 295, 296, 298, 297, + 299, 301, 300, 303, 302, 304, 305, 306, 308, 307, + 310, 309, 311, 311, 311, 312, 312, 312, 312, 312, + 312, 312, 312, 314, 313, 315, 316, 317, 318, 320, + 319, 322, 321, 324, 323, 325, 325, 326, 326, 326, + 328, 327, 329, 329, 329, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 332, 331, 333, + 333, 333, 335, 334, 337, 336, 339, 338, 340, 342, + 341, 343, 344, 345, 346, 347, 348, 349, 350, 352, + 351, 353, 353, 353, 354, 355, 357, 356, 359, 358, + 361, 360, 363, 362, 365, 364, 366, 366, 366, 367, + 367, 369, 368, 371, 370, 373, 372, 374, 374, 374, + 375, 375, 376, 377, 379, 378, 380, 380, 380, 381, + 381, 381, 382, 383, 385, 384, 387, 386, 388, 388, + 388, 389, 389, 389, 389, 389, 389, 390, 391, 392, + 394, 393, 395, 395, 396, 396, 396, 398, 397, 400, + 399, 401, 401, 401, 401, 402, 402, 404, 403, 406, + 405, 408, 407, 409, 409, 409, 410, 410, 410, 410, + 410, 410, 411, 412, 413, 414, 415, 416, 418, 417, + 419, 419, 420, 420, 420, 422, 421, 424, 423, 425, + 425, 425, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, + 426, 426, 426, 426, 426, 426, 426, 428, 427, 430, + 429, 432, 431, 434, 433, 436, 435, 437, 438, 439, + 441, 440, 442, 442, 442, 442, 443, 444, 446, 445, + 447, 447, 448, 448, 448, 450, 449, 451, 451, 451, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 454, 453, 456, 455, 457, 457, 458, 458, + 458, 460, 459, 462, 461, 463, 463, 464, 464, 464, + 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, + 466, 467, 468, 470, 469, 472, 471, 474, 473, 475, + 477, 476, 478, 480, 479, 481, 481, 482, 482, 482, + 484, 483, 486, 485, 487, 487, 488, 488, 488, 489, + 489, 489, 489, 489, 489, 489, 489, 489, 490, 492, + 491, 493, 494, 495, 496, 498, 497, 499, 499, 500, + 500, 500, 502, 501, 504, 503, 505, 505, 505, 506, + 506, 506, 506, 506, 506, 506, 508, 507, 510, 509, + 512, 511, 514, 513, 515, 515, 516, 516, 516, 518, + 517, 520, 519, 521, 521, 521, 522, 522, 522, 522, + 522, 522, 522, 522, 522, 522, 522, 524, 523, 525, + 527, 526, 528, 529, 531, 530, 532, 532, 533, 533, + 533, 535, 534, 537, 536, 538, 538, 539, 539, 539, + 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, + 540, 542, 541, 544, 543, 546, 545, 548, 547, 550, + 549, 552, 551, 554, 553, 556, 555, 557, 557, 559, + 558, 561, 560, 562, 562, 562, 564, 563, 565, 565, + 566, 566, 566, 567, 567, 567, 567, 567, 567, 567, + 567, 567, 567, 567, 567, 567, 567, 568, 570, 569, + 572, 571, 573, 575, 574, 576, 576, 576, 577, 577, + 577, 577, 577, 577, 577, 577, 577, 579, 578, 580, + 580, 580, 581, 583, 582, 584, 585, 586, 588, 587, + 589, 589, 589, 590, 590, 590, 590, 590, 592, 591, + 594, 593, 596, 595, 597, 597, 597, 598, 598, 598, + 598, 598, 598, 599, 601, 600, 602, 604, 603, 606, + 605, 608, 607, 609, 609, 609, 610, 610, 610, 610, + 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, + 610, 610, 610, 610, 611, 613, 612, 615, 614, 616, + 618, 617, 619, 620, 622, 621, 623, 623, 625, 624, + 626, 627, 629, 628, 631, 630, 633, 632, 635, 634, + 637, 636, 639, 638, 640, 640, 640, 641, 641, 643, + 642, 644, 646, 645, 647, 647, 647, 649, 648, 650, + 650, 650, 651, 651, 651, 651, 651, 651, 651, 652, + 654, 653, 656, 655, 657, 657, 657, 659, 658, 660, + 660, 660, 661, 661, 661, 661, 661, 663, 662, 664, + 665, 666, 668, 667, 670, 669, 671, 671, 671, 672, + 672, 673 }; const signed char @@ -6068,70 +6106,71 @@ namespace isc { namespace dhcp { 6, 0, 6, 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 3, 0, 4, 3, 3, - 3, 3, 3, 0, 4, 1, 1, 1, 3, 3, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 1, 1, 0, 6, - 1, 3, 2, 1, 1, 1, 1, 1, 0, 6, - 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 1, 0, 4, 0, 4, 0, 4, 3, 0, + 4, 3, 3, 3, 3, 3, 3, 3, 3, 0, + 4, 1, 1, 1, 3, 3, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 6, 1, 3, 2, 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, - 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, + 1, 1, 1, 1, 0, 6, 1, 3, 2, 1, + 1, 1, 1, 1, 0, 6, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, + 4, 1, 3, 2, 1, 1, 1, 0, 4, 0, + 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 3, 3, 3, + 0, 4, 1, 1, 1, 1, 3, 3, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 4, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 0, 4, 0, 4, 0, 4, 1, + 0, 4, 3, 0, 6, 0, 1, 1, 3, 2, + 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 1, 3, 3, 0, 6, 0, 1, 1, + 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 4, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, + 0, 4, 3, 3, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 3, 3, 3, 0, 4, 1, 1, 1, 1, - 3, 3, 0, 6, 0, 1, 1, 3, 2, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, - 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 0, 4, 0, - 4, 0, 4, 1, 0, 4, 3, 0, 6, 0, - 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, + 4, 0, 4, 0, 4, 0, 6, 1, 1, 0, + 4, 0, 6, 1, 3, 2, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 1, 1, 3, 3, 0, - 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 3, 0, 6, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 1, 3, 0, 4, 3, 3, 3, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 3, 0, 4, 3, 0, 4, 0, + 6, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 3, 0, 4, 3, 3, 0, 6, - 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, - 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 6, 1, 1, 0, 4, 0, 6, 1, 3, 2, - 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 3, 0, 6, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 1, 1, 1, 3, 0, 4, 3, - 3, 3, 0, 6, 1, 3, 2, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 3, 0, 4, - 3, 0, 4, 0, 6, 0, 4, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, - 4, 0, 4, 3, 0, 4, 3, 3, 0, 4, - 1, 1, 0, 4, 3, 3, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 0, 4, 1, 3, - 2, 1, 1, 0, 6, 3, 0, 6, 1, 3, - 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 4, 0, 6, 1, 3, - 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 0, 4, 3, 3, 3, 0, 4, 0, 6, - 1, 3, 2, 1, 1, 3 + 1, 1, 1, 1, 3, 0, 4, 0, 4, 3, + 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, + 3, 3, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 6, 0, 4, 1, 3, 2, 1, 1, 0, + 6, 3, 0, 6, 1, 3, 2, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 3, + 0, 4, 0, 6, 1, 3, 2, 0, 4, 1, + 3, 2, 1, 1, 1, 1, 1, 0, 4, 3, + 3, 3, 0, 4, 0, 6, 1, 3, 2, 1, + 1, 3 }; @@ -6151,6 +6190,7 @@ namespace isc { namespace dhcp { "\"type\"", "\"memfile\"", "\"mysql\"", "\"postgresql\"", "\"user\"", "\"password\"", "\"host\"", "\"port\"", "\"persist\"", "\"lfc-interval\"", "\"readonly\"", "\"connect-timeout\"", + "\"read-timeout\"", "\"write-timeout\"", "\"tcp-user-timeout\"", "\"max-reconnect-tries\"", "\"reconnect-wait-time\"", "\"on-fail\"", "\"stop-retry-exit\"", "\"serve-retry-exit\"", "\"serve-retry-continue\"", "\"max-row-errors\"", "\"trust-anchor\"", @@ -6241,14 +6281,14 @@ namespace isc { namespace dhcp { "not_empty_database_list", "database", "$@36", "database_map_params", "database_map_param", "database_type", "$@37", "db_type", "user", "$@38", "password", "$@39", "host", "$@40", "port", "name", "$@41", "persist", - "lfc_interval", "readonly", "connect_timeout", "reconnect_wait_time", - "on_fail", "$@42", "on_fail_mode", "max_row_errors", - "max_reconnect_tries", "trust_anchor", "$@43", "cert_file", "$@44", - "key_file", "$@45", "cipher_list", "$@46", "sanity_checks", "$@47", - "sanity_checks_params", "sanity_checks_param", "lease_checks", "$@48", - "extended_info_checks", "$@49", "mac_sources", "$@50", - "mac_sources_list", "mac_sources_value", "duid_id", "string_id", - "host_reservation_identifiers", "$@51", + "lfc_interval", "readonly", "connect_timeout", "read_timeout", + "write_timeout", "tcp_user_timeout", "reconnect_wait_time", "on_fail", + "$@42", "on_fail_mode", "max_row_errors", "max_reconnect_tries", + "trust_anchor", "$@43", "cert_file", "$@44", "key_file", "$@45", + "cipher_list", "$@46", "sanity_checks", "$@47", "sanity_checks_params", + "sanity_checks_param", "lease_checks", "$@48", "extended_info_checks", + "$@49", "mac_sources", "$@50", "mac_sources_list", "mac_sources_value", + "duid_id", "string_id", "host_reservation_identifiers", "$@51", "host_reservation_identifiers_list", "host_reservation_identifier", "hw_address_id", "flex_id", "relay_supplied_options", "$@52", "dhcp_multi_threading", "$@53", "multi_threading_params", @@ -6332,94 +6372,95 @@ namespace isc { namespace dhcp { const short Dhcp6Parser::yyrline_[] = { - 0, 306, 306, 306, 307, 307, 308, 308, 309, 309, - 310, 310, 311, 311, 312, 312, 313, 313, 314, 314, - 315, 315, 316, 316, 317, 317, 318, 318, 319, 319, - 327, 328, 329, 330, 331, 332, 333, 336, 341, 341, - 352, 355, 356, 359, 364, 370, 375, 375, 382, 383, - 386, 390, 394, 400, 400, 407, 408, 411, 415, 419, - 429, 438, 438, 453, 453, 467, 470, 476, 476, 485, - 486, 487, 494, 495, 496, 497, 498, 499, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, - 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 563, - 563, 572, 578, 584, 590, 596, 602, 608, 614, 620, - 626, 632, 638, 644, 650, 656, 662, 668, 674, 674, - 683, 686, 689, 692, 695, 701, 701, 710, 710, 719, - 725, 731, 731, 740, 740, 749, 755, 761, 767, 767, - 776, 782, 782, 791, 791, 800, 806, 812, 818, 818, - 830, 830, 839, 840, 841, 846, 847, 848, 849, 850, - 851, 852, 853, 856, 856, 867, 873, 879, 885, 891, - 891, 904, 904, 917, 917, 928, 929, 932, 933, 934, - 939, 939, 949, 950, 951, 956, 957, 958, 959, 960, - 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, - 971, 972, 973, 974, 977, 977, 985, 986, 987, 990, - 990, 999, 999, 1008, 1008, 1017, 1023, 1023, 1032, 1038, - 1044, 1050, 1056, 1062, 1062, 1070, 1071, 1072, 1075, 1081, - 1087, 1087, 1096, 1096, 1105, 1105, 1114, 1114, 1123, 1123, - 1134, 1135, 1136, 1141, 1142, 1145, 1145, 1164, 1164, 1182, - 1182, 1193, 1194, 1195, 1200, 1201, 1204, 1209, 1214, 1214, - 1225, 1226, 1227, 1232, 1233, 1234, 1237, 1242, 1249, 1249, - 1262, 1262, 1275, 1276, 1277, 1282, 1283, 1284, 1285, 1286, - 1287, 1290, 1296, 1302, 1308, 1308, 1319, 1320, 1323, 1324, - 1325, 1330, 1330, 1340, 1340, 1350, 1351, 1352, 1355, 1358, - 1359, 1362, 1362, 1371, 1371, 1380, 1380, 1392, 1393, 1394, - 1399, 1400, 1401, 1402, 1403, 1404, 1407, 1413, 1419, 1425, - 1431, 1437, 1446, 1446, 1460, 1461, 1464, 1465, 1466, 1475, - 1475, 1501, 1501, 1512, 1513, 1514, 1520, 1521, 1522, 1523, - 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, - 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, - 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, - 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, - 1564, 1567, 1567, 1576, 1576, 1585, 1585, 1594, 1594, 1603, - 1603, 1614, 1620, 1626, 1632, 1632, 1640, 1641, 1642, 1643, - 1646, 1652, 1660, 1660, 1672, 1673, 1677, 1678, 1679, 1684, - 1684, 1692, 1693, 1694, 1699, 1700, 1701, 1702, 1703, 1704, - 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, - 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, - 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, - 1735, 1736, 1737, 1738, 1739, 1740, 1747, 1747, 1761, 1761, - 1770, 1771, 1774, 1775, 1776, 1783, 1783, 1798, 1798, 1812, - 1813, 1816, 1817, 1818, 1823, 1824, 1825, 1826, 1827, 1828, - 1829, 1830, 1831, 1832, 1835, 1837, 1843, 1845, 1845, 1854, - 1854, 1863, 1863, 1872, 1874, 1874, 1883, 1893, 1893, 1906, - 1907, 1912, 1913, 1914, 1921, 1921, 1933, 1933, 1945, 1946, - 1951, 1952, 1953, 1960, 1961, 1962, 1963, 1964, 1965, 1966, - 1967, 1968, 1971, 1973, 1973, 1982, 1984, 1986, 1992, 2001, - 2001, 2014, 2015, 2018, 2019, 2020, 2025, 2025, 2035, 2035, - 2045, 2046, 2047, 2052, 2053, 2054, 2055, 2056, 2057, 2058, - 2061, 2061, 2070, 2070, 2095, 2095, 2125, 2125, 2138, 2139, - 2142, 2143, 2144, 2149, 2149, 2161, 2161, 2173, 2174, 2175, - 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, - 2190, 2193, 2193, 2202, 2208, 2208, 2217, 2223, 2232, 2232, - 2243, 2244, 2247, 2248, 2249, 2254, 2254, 2263, 2263, 2272, - 2273, 2276, 2277, 2278, 2284, 2285, 2286, 2287, 2288, 2289, - 2290, 2291, 2292, 2293, 2294, 2297, 2297, 2308, 2308, 2319, - 2319, 2328, 2328, 2337, 2337, 2346, 2346, 2355, 2355, 2369, - 2369, 2380, 2381, 2384, 2384, 2396, 2396, 2407, 2408, 2409, - 2414, 2414, 2424, 2425, 2428, 2429, 2430, 2435, 2436, 2437, - 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, - 2448, 2451, 2453, 2453, 2462, 2462, 2471, 2480, 2480, 2493, - 2494, 2495, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, - 2508, 2511, 2511, 2519, 2520, 2521, 2524, 2530, 2530, 2539, - 2545, 2553, 2561, 2561, 2572, 2573, 2574, 2579, 2580, 2581, - 2582, 2583, 2586, 2586, 2595, 2595, 2607, 2607, 2620, 2621, - 2622, 2627, 2628, 2629, 2630, 2631, 2632, 2635, 2641, 2641, - 2650, 2656, 2656, 2666, 2666, 2679, 2679, 2689, 2690, 2691, - 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, - 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2716, 2723, - 2723, 2732, 2732, 2741, 2747, 2747, 2756, 2762, 2768, 2768, - 2777, 2778, 2781, 2781, 2791, 2798, 2805, 2805, 2814, 2814, - 2824, 2824, 2834, 2834, 2846, 2846, 2858, 2858, 2868, 2869, - 2870, 2876, 2877, 2880, 2880, 2891, 2899, 2899, 2912, 2913, - 2914, 2920, 2920, 2928, 2929, 2930, 2935, 2936, 2937, 2938, - 2939, 2940, 2941, 2944, 2950, 2950, 2959, 2959, 2970, 2971, - 2972, 2977, 2977, 2985, 2986, 2987, 2992, 2993, 2994, 2995, - 2996, 2999, 2999, 3008, 3014, 3020, 3026, 3026, 3035, 3035, - 3046, 3047, 3048, 3053, 3054, 3057 + 0, 309, 309, 309, 310, 310, 311, 311, 312, 312, + 313, 313, 314, 314, 315, 315, 316, 316, 317, 317, + 318, 318, 319, 319, 320, 320, 321, 321, 322, 322, + 330, 331, 332, 333, 334, 335, 336, 339, 344, 344, + 355, 358, 359, 362, 367, 373, 378, 378, 385, 386, + 389, 393, 397, 403, 403, 410, 411, 414, 418, 422, + 432, 441, 441, 456, 456, 470, 473, 479, 479, 488, + 489, 490, 497, 498, 499, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, + 555, 556, 557, 558, 559, 560, 561, 562, 563, 566, + 566, 575, 581, 587, 593, 599, 605, 611, 617, 623, + 629, 635, 641, 647, 653, 659, 665, 671, 677, 677, + 686, 689, 692, 695, 698, 704, 704, 713, 713, 722, + 728, 734, 734, 743, 743, 752, 758, 764, 770, 770, + 779, 785, 785, 794, 794, 803, 809, 815, 821, 821, + 833, 833, 842, 843, 844, 849, 850, 851, 852, 853, + 854, 855, 856, 859, 859, 870, 876, 882, 888, 894, + 894, 907, 907, 920, 920, 931, 932, 935, 936, 937, + 942, 942, 952, 953, 954, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 980, 983, 983, 991, + 992, 993, 996, 996, 1005, 1005, 1014, 1014, 1023, 1029, + 1029, 1038, 1044, 1050, 1056, 1062, 1068, 1074, 1081, 1087, + 1087, 1095, 1096, 1097, 1100, 1106, 1112, 1112, 1121, 1121, + 1130, 1130, 1139, 1139, 1148, 1148, 1159, 1160, 1161, 1166, + 1167, 1170, 1170, 1189, 1189, 1207, 1207, 1218, 1219, 1220, + 1225, 1226, 1229, 1234, 1239, 1239, 1250, 1251, 1252, 1257, + 1258, 1259, 1262, 1267, 1274, 1274, 1287, 1287, 1300, 1301, + 1302, 1307, 1308, 1309, 1310, 1311, 1312, 1315, 1321, 1327, + 1333, 1333, 1344, 1345, 1348, 1349, 1350, 1355, 1355, 1365, + 1365, 1375, 1376, 1377, 1380, 1383, 1384, 1387, 1387, 1396, + 1396, 1405, 1405, 1417, 1418, 1419, 1424, 1425, 1426, 1427, + 1428, 1429, 1432, 1438, 1444, 1450, 1456, 1462, 1471, 1471, + 1485, 1486, 1489, 1490, 1491, 1500, 1500, 1526, 1526, 1537, + 1538, 1539, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, + 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, + 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1592, 1592, 1601, + 1601, 1610, 1610, 1619, 1619, 1628, 1628, 1639, 1645, 1651, + 1657, 1657, 1665, 1666, 1667, 1668, 1671, 1677, 1685, 1685, + 1697, 1698, 1702, 1703, 1704, 1709, 1709, 1717, 1718, 1719, + 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, + 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, + 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, + 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, + 1764, 1765, 1772, 1772, 1786, 1786, 1795, 1796, 1799, 1800, + 1801, 1808, 1808, 1823, 1823, 1837, 1838, 1841, 1842, 1843, + 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, + 1860, 1862, 1868, 1870, 1870, 1879, 1879, 1888, 1888, 1897, + 1899, 1899, 1908, 1918, 1918, 1931, 1932, 1937, 1938, 1939, + 1946, 1946, 1958, 1958, 1970, 1971, 1976, 1977, 1978, 1985, + 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1996, 1998, + 1998, 2007, 2009, 2011, 2017, 2026, 2026, 2039, 2040, 2043, + 2044, 2045, 2050, 2050, 2060, 2060, 2070, 2071, 2072, 2077, + 2078, 2079, 2080, 2081, 2082, 2083, 2086, 2086, 2095, 2095, + 2120, 2120, 2150, 2150, 2163, 2164, 2167, 2168, 2169, 2174, + 2174, 2186, 2186, 2198, 2199, 2200, 2205, 2206, 2207, 2208, + 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2218, 2218, 2227, + 2233, 2233, 2242, 2248, 2257, 2257, 2268, 2269, 2272, 2273, + 2274, 2279, 2279, 2288, 2288, 2297, 2298, 2301, 2302, 2303, + 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, + 2319, 2322, 2322, 2333, 2333, 2344, 2344, 2353, 2353, 2362, + 2362, 2371, 2371, 2380, 2380, 2394, 2394, 2405, 2406, 2409, + 2409, 2421, 2421, 2432, 2433, 2434, 2439, 2439, 2449, 2450, + 2453, 2454, 2455, 2460, 2461, 2462, 2463, 2464, 2465, 2466, + 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2476, 2478, 2478, + 2487, 2487, 2496, 2505, 2505, 2518, 2519, 2520, 2525, 2526, + 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2536, 2536, 2544, + 2545, 2546, 2549, 2555, 2555, 2564, 2570, 2578, 2586, 2586, + 2597, 2598, 2599, 2604, 2605, 2606, 2607, 2608, 2611, 2611, + 2620, 2620, 2632, 2632, 2645, 2646, 2647, 2652, 2653, 2654, + 2655, 2656, 2657, 2660, 2666, 2666, 2675, 2681, 2681, 2691, + 2691, 2704, 2704, 2714, 2715, 2716, 2721, 2722, 2723, 2724, + 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, + 2735, 2736, 2737, 2738, 2741, 2748, 2748, 2757, 2757, 2766, + 2772, 2772, 2781, 2787, 2793, 2793, 2802, 2803, 2806, 2806, + 2816, 2823, 2830, 2830, 2839, 2839, 2849, 2849, 2859, 2859, + 2871, 2871, 2883, 2883, 2893, 2894, 2895, 2901, 2902, 2905, + 2905, 2916, 2924, 2924, 2937, 2938, 2939, 2945, 2945, 2953, + 2954, 2955, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2969, + 2975, 2975, 2984, 2984, 2995, 2996, 2997, 3002, 3002, 3010, + 3011, 3012, 3017, 3018, 3019, 3020, 3021, 3024, 3024, 3033, + 3039, 3045, 3051, 3051, 3060, 3060, 3071, 3072, 3073, 3078, + 3079, 3082 }; void @@ -6452,9 +6493,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 6456 "dhcp6_parser.cc" +#line 6497 "dhcp6_parser.cc" -#line 3063 "dhcp6_parser.yy" +#line 3088 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 2a0d53aec8..d7d327518e 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -531,188 +531,191 @@ namespace isc { namespace dhcp { TOKEN_LFC_INTERVAL = 288, // "lfc-interval" TOKEN_READONLY = 289, // "readonly" TOKEN_CONNECT_TIMEOUT = 290, // "connect-timeout" - TOKEN_MAX_RECONNECT_TRIES = 291, // "max-reconnect-tries" - TOKEN_RECONNECT_WAIT_TIME = 292, // "reconnect-wait-time" - TOKEN_ON_FAIL = 293, // "on-fail" - TOKEN_STOP_RETRY_EXIT = 294, // "stop-retry-exit" - TOKEN_SERVE_RETRY_EXIT = 295, // "serve-retry-exit" - TOKEN_SERVE_RETRY_CONTINUE = 296, // "serve-retry-continue" - TOKEN_MAX_ROW_ERRORS = 297, // "max-row-errors" - TOKEN_TRUST_ANCHOR = 298, // "trust-anchor" - TOKEN_CERT_FILE = 299, // "cert-file" - TOKEN_KEY_FILE = 300, // "key-file" - TOKEN_CIPHER_LIST = 301, // "cipher-list" - TOKEN_PREFERRED_LIFETIME = 302, // "preferred-lifetime" - TOKEN_MIN_PREFERRED_LIFETIME = 303, // "min-preferred-lifetime" - TOKEN_MAX_PREFERRED_LIFETIME = 304, // "max-preferred-lifetime" - TOKEN_VALID_LIFETIME = 305, // "valid-lifetime" - TOKEN_MIN_VALID_LIFETIME = 306, // "min-valid-lifetime" - TOKEN_MAX_VALID_LIFETIME = 307, // "max-valid-lifetime" - TOKEN_RENEW_TIMER = 308, // "renew-timer" - TOKEN_REBIND_TIMER = 309, // "rebind-timer" - TOKEN_CALCULATE_TEE_TIMES = 310, // "calculate-tee-times" - TOKEN_T1_PERCENT = 311, // "t1-percent" - TOKEN_T2_PERCENT = 312, // "t2-percent" - TOKEN_CACHE_THRESHOLD = 313, // "cache-threshold" - TOKEN_CACHE_MAX_AGE = 314, // "cache-max-age" - TOKEN_DECLINE_PROBATION_PERIOD = 315, // "decline-probation-period" - TOKEN_SERVER_TAG = 316, // "server-tag" - TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 317, // "statistic-default-sample-count" - TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 318, // "statistic-default-sample-age" - TOKEN_DDNS_SEND_UPDATES = 319, // "ddns-send-updates" - TOKEN_DDNS_OVERRIDE_NO_UPDATE = 320, // "ddns-override-no-update" - TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 321, // "ddns-override-client-update" - TOKEN_DDNS_REPLACE_CLIENT_NAME = 322, // "ddns-replace-client-name" - TOKEN_DDNS_GENERATED_PREFIX = 323, // "ddns-generated-prefix" - TOKEN_DDNS_QUALIFYING_SUFFIX = 324, // "ddns-qualifying-suffix" - TOKEN_DDNS_UPDATE_ON_RENEW = 325, // "ddns-update-on-renew" - TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 326, // "ddns-use-conflict-resolution" - TOKEN_STORE_EXTENDED_INFO = 327, // "store-extended-info" - TOKEN_SUBNET6 = 328, // "subnet6" - TOKEN_OPTION_DEF = 329, // "option-def" - TOKEN_OPTION_DATA = 330, // "option-data" - TOKEN_NAME = 331, // "name" - TOKEN_DATA = 332, // "data" - TOKEN_CODE = 333, // "code" - TOKEN_SPACE = 334, // "space" - TOKEN_CSV_FORMAT = 335, // "csv-format" - TOKEN_ALWAYS_SEND = 336, // "always-send" - TOKEN_RECORD_TYPES = 337, // "record-types" - TOKEN_ENCAPSULATE = 338, // "encapsulate" - TOKEN_ARRAY = 339, // "array" - TOKEN_PARKED_PACKET_LIMIT = 340, // "parked-packet-limit" - TOKEN_ALLOCATOR = 341, // "allocator" - TOKEN_PD_ALLOCATOR = 342, // "pd-allocator" - TOKEN_SHARED_NETWORKS = 343, // "shared-networks" - TOKEN_POOLS = 344, // "pools" - TOKEN_POOL = 345, // "pool" - TOKEN_PD_POOLS = 346, // "pd-pools" - TOKEN_PREFIX = 347, // "prefix" - TOKEN_PREFIX_LEN = 348, // "prefix-len" - TOKEN_EXCLUDED_PREFIX = 349, // "excluded-prefix" - TOKEN_EXCLUDED_PREFIX_LEN = 350, // "excluded-prefix-len" - TOKEN_DELEGATED_LEN = 351, // "delegated-len" - TOKEN_USER_CONTEXT = 352, // "user-context" - TOKEN_COMMENT = 353, // "comment" - TOKEN_SUBNET = 354, // "subnet" - TOKEN_INTERFACE = 355, // "interface" - TOKEN_INTERFACE_ID = 356, // "interface-id" - TOKEN_ID = 357, // "id" - TOKEN_RAPID_COMMIT = 358, // "rapid-commit" - TOKEN_RESERVATION_MODE = 359, // "reservation-mode" - TOKEN_DISABLED = 360, // "disabled" - TOKEN_OUT_OF_POOL = 361, // "out-of-pool" - TOKEN_GLOBAL = 362, // "global" - TOKEN_ALL = 363, // "all" - TOKEN_RESERVATIONS_GLOBAL = 364, // "reservations-global" - TOKEN_RESERVATIONS_IN_SUBNET = 365, // "reservations-in-subnet" - TOKEN_RESERVATIONS_OUT_OF_POOL = 366, // "reservations-out-of-pool" - TOKEN_MAC_SOURCES = 367, // "mac-sources" - TOKEN_RELAY_SUPPLIED_OPTIONS = 368, // "relay-supplied-options" - TOKEN_HOST_RESERVATION_IDENTIFIERS = 369, // "host-reservation-identifiers" - TOKEN_SANITY_CHECKS = 370, // "sanity-checks" - TOKEN_LEASE_CHECKS = 371, // "lease-checks" - TOKEN_EXTENDED_INFO_CHECKS = 372, // "extended-info-checks" - TOKEN_CLIENT_CLASSES = 373, // "client-classes" - TOKEN_REQUIRE_CLIENT_CLASSES = 374, // "require-client-classes" - TOKEN_TEST = 375, // "test" - TOKEN_TEMPLATE_TEST = 376, // "template-test" - TOKEN_ONLY_IF_REQUIRED = 377, // "only-if-required" - TOKEN_CLIENT_CLASS = 378, // "client-class" - TOKEN_RESERVATIONS = 379, // "reservations" - TOKEN_IP_ADDRESSES = 380, // "ip-addresses" - TOKEN_PREFIXES = 381, // "prefixes" - TOKEN_DUID = 382, // "duid" - TOKEN_HW_ADDRESS = 383, // "hw-address" - TOKEN_HOSTNAME = 384, // "hostname" - TOKEN_FLEX_ID = 385, // "flex-id" - TOKEN_RELAY = 386, // "relay" - TOKEN_IP_ADDRESS = 387, // "ip-address" - TOKEN_HOOKS_LIBRARIES = 388, // "hooks-libraries" - TOKEN_LIBRARY = 389, // "library" - TOKEN_PARAMETERS = 390, // "parameters" - TOKEN_EXPIRED_LEASES_PROCESSING = 391, // "expired-leases-processing" - TOKEN_RECLAIM_TIMER_WAIT_TIME = 392, // "reclaim-timer-wait-time" - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 393, // "flush-reclaimed-timer-wait-time" - TOKEN_HOLD_RECLAIMED_TIME = 394, // "hold-reclaimed-time" - TOKEN_MAX_RECLAIM_LEASES = 395, // "max-reclaim-leases" - TOKEN_MAX_RECLAIM_TIME = 396, // "max-reclaim-time" - TOKEN_UNWARNED_RECLAIM_CYCLES = 397, // "unwarned-reclaim-cycles" - TOKEN_SERVER_ID = 398, // "server-id" - TOKEN_LLT = 399, // "LLT" - TOKEN_EN = 400, // "EN" - TOKEN_LL = 401, // "LL" - TOKEN_IDENTIFIER = 402, // "identifier" - TOKEN_HTYPE = 403, // "htype" - TOKEN_TIME = 404, // "time" - TOKEN_ENTERPRISE_ID = 405, // "enterprise-id" - TOKEN_DHCP4O6_PORT = 406, // "dhcp4o6-port" - TOKEN_DHCP_MULTI_THREADING = 407, // "multi-threading" - TOKEN_ENABLE_MULTI_THREADING = 408, // "enable-multi-threading" - TOKEN_THREAD_POOL_SIZE = 409, // "thread-pool-size" - TOKEN_PACKET_QUEUE_SIZE = 410, // "packet-queue-size" - TOKEN_CONTROL_SOCKET = 411, // "control-socket" - TOKEN_SOCKET_TYPE = 412, // "socket-type" - TOKEN_SOCKET_NAME = 413, // "socket-name" - TOKEN_DHCP_QUEUE_CONTROL = 414, // "dhcp-queue-control" - TOKEN_ENABLE_QUEUE = 415, // "enable-queue" - TOKEN_QUEUE_TYPE = 416, // "queue-type" - TOKEN_CAPACITY = 417, // "capacity" - TOKEN_DHCP_DDNS = 418, // "dhcp-ddns" - TOKEN_ENABLE_UPDATES = 419, // "enable-updates" - TOKEN_QUALIFYING_SUFFIX = 420, // "qualifying-suffix" - TOKEN_SERVER_IP = 421, // "server-ip" - TOKEN_SERVER_PORT = 422, // "server-port" - TOKEN_SENDER_IP = 423, // "sender-ip" - TOKEN_SENDER_PORT = 424, // "sender-port" - TOKEN_MAX_QUEUE_SIZE = 425, // "max-queue-size" - TOKEN_NCR_PROTOCOL = 426, // "ncr-protocol" - TOKEN_NCR_FORMAT = 427, // "ncr-format" - TOKEN_OVERRIDE_NO_UPDATE = 428, // "override-no-update" - TOKEN_OVERRIDE_CLIENT_UPDATE = 429, // "override-client-update" - TOKEN_REPLACE_CLIENT_NAME = 430, // "replace-client-name" - TOKEN_GENERATED_PREFIX = 431, // "generated-prefix" - TOKEN_UDP = 432, // "UDP" - TOKEN_TCP = 433, // "TCP" - TOKEN_JSON = 434, // "JSON" - TOKEN_WHEN_PRESENT = 435, // "when-present" - TOKEN_NEVER = 436, // "never" - TOKEN_ALWAYS = 437, // "always" - TOKEN_WHEN_NOT_PRESENT = 438, // "when-not-present" - TOKEN_HOSTNAME_CHAR_SET = 439, // "hostname-char-set" - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 440, // "hostname-char-replacement" - TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 441, // "early-global-reservations-lookup" - TOKEN_IP_RESERVATIONS_UNIQUE = 442, // "ip-reservations-unique" - TOKEN_RESERVATIONS_LOOKUP_FIRST = 443, // "reservations-lookup-first" - TOKEN_LOGGERS = 444, // "loggers" - TOKEN_OUTPUT_OPTIONS = 445, // "output_options" - TOKEN_OUTPUT = 446, // "output" - TOKEN_DEBUGLEVEL = 447, // "debuglevel" - TOKEN_SEVERITY = 448, // "severity" - TOKEN_FLUSH = 449, // "flush" - TOKEN_MAXSIZE = 450, // "maxsize" - TOKEN_MAXVER = 451, // "maxver" - TOKEN_PATTERN = 452, // "pattern" - TOKEN_COMPATIBILITY = 453, // "compatibility" - TOKEN_LENIENT_OPTION_PARSING = 454, // "lenient-option-parsing" - TOKEN_TOPLEVEL_JSON = 455, // TOPLEVEL_JSON - TOKEN_TOPLEVEL_DHCP6 = 456, // TOPLEVEL_DHCP6 - TOKEN_SUB_DHCP6 = 457, // SUB_DHCP6 - TOKEN_SUB_INTERFACES6 = 458, // SUB_INTERFACES6 - TOKEN_SUB_SUBNET6 = 459, // SUB_SUBNET6 - TOKEN_SUB_POOL6 = 460, // SUB_POOL6 - TOKEN_SUB_PD_POOL = 461, // SUB_PD_POOL - TOKEN_SUB_RESERVATION = 462, // SUB_RESERVATION - TOKEN_SUB_OPTION_DEFS = 463, // SUB_OPTION_DEFS - TOKEN_SUB_OPTION_DEF = 464, // SUB_OPTION_DEF - TOKEN_SUB_OPTION_DATA = 465, // SUB_OPTION_DATA - TOKEN_SUB_HOOKS_LIBRARY = 466, // SUB_HOOKS_LIBRARY - TOKEN_SUB_DHCP_DDNS = 467, // SUB_DHCP_DDNS - TOKEN_SUB_CONFIG_CONTROL = 468, // SUB_CONFIG_CONTROL - TOKEN_STRING = 469, // "constant string" - TOKEN_INTEGER = 470, // "integer" - TOKEN_FLOAT = 471, // "floating point" - TOKEN_BOOLEAN = 472 // "boolean" + TOKEN_READ_TIMEOUT = 291, // "read-timeout" + TOKEN_WRITE_TIMEOUT = 292, // "write-timeout" + TOKEN_TCP_USER_TIMEOUT = 293, // "tcp-user-timeout" + TOKEN_MAX_RECONNECT_TRIES = 294, // "max-reconnect-tries" + TOKEN_RECONNECT_WAIT_TIME = 295, // "reconnect-wait-time" + TOKEN_ON_FAIL = 296, // "on-fail" + TOKEN_STOP_RETRY_EXIT = 297, // "stop-retry-exit" + TOKEN_SERVE_RETRY_EXIT = 298, // "serve-retry-exit" + TOKEN_SERVE_RETRY_CONTINUE = 299, // "serve-retry-continue" + TOKEN_MAX_ROW_ERRORS = 300, // "max-row-errors" + TOKEN_TRUST_ANCHOR = 301, // "trust-anchor" + TOKEN_CERT_FILE = 302, // "cert-file" + TOKEN_KEY_FILE = 303, // "key-file" + TOKEN_CIPHER_LIST = 304, // "cipher-list" + TOKEN_PREFERRED_LIFETIME = 305, // "preferred-lifetime" + TOKEN_MIN_PREFERRED_LIFETIME = 306, // "min-preferred-lifetime" + TOKEN_MAX_PREFERRED_LIFETIME = 307, // "max-preferred-lifetime" + TOKEN_VALID_LIFETIME = 308, // "valid-lifetime" + TOKEN_MIN_VALID_LIFETIME = 309, // "min-valid-lifetime" + TOKEN_MAX_VALID_LIFETIME = 310, // "max-valid-lifetime" + TOKEN_RENEW_TIMER = 311, // "renew-timer" + TOKEN_REBIND_TIMER = 312, // "rebind-timer" + TOKEN_CALCULATE_TEE_TIMES = 313, // "calculate-tee-times" + TOKEN_T1_PERCENT = 314, // "t1-percent" + TOKEN_T2_PERCENT = 315, // "t2-percent" + TOKEN_CACHE_THRESHOLD = 316, // "cache-threshold" + TOKEN_CACHE_MAX_AGE = 317, // "cache-max-age" + TOKEN_DECLINE_PROBATION_PERIOD = 318, // "decline-probation-period" + TOKEN_SERVER_TAG = 319, // "server-tag" + TOKEN_STATISTIC_DEFAULT_SAMPLE_COUNT = 320, // "statistic-default-sample-count" + TOKEN_STATISTIC_DEFAULT_SAMPLE_AGE = 321, // "statistic-default-sample-age" + TOKEN_DDNS_SEND_UPDATES = 322, // "ddns-send-updates" + TOKEN_DDNS_OVERRIDE_NO_UPDATE = 323, // "ddns-override-no-update" + TOKEN_DDNS_OVERRIDE_CLIENT_UPDATE = 324, // "ddns-override-client-update" + TOKEN_DDNS_REPLACE_CLIENT_NAME = 325, // "ddns-replace-client-name" + TOKEN_DDNS_GENERATED_PREFIX = 326, // "ddns-generated-prefix" + TOKEN_DDNS_QUALIFYING_SUFFIX = 327, // "ddns-qualifying-suffix" + TOKEN_DDNS_UPDATE_ON_RENEW = 328, // "ddns-update-on-renew" + TOKEN_DDNS_USE_CONFLICT_RESOLUTION = 329, // "ddns-use-conflict-resolution" + TOKEN_STORE_EXTENDED_INFO = 330, // "store-extended-info" + TOKEN_SUBNET6 = 331, // "subnet6" + TOKEN_OPTION_DEF = 332, // "option-def" + TOKEN_OPTION_DATA = 333, // "option-data" + TOKEN_NAME = 334, // "name" + TOKEN_DATA = 335, // "data" + TOKEN_CODE = 336, // "code" + TOKEN_SPACE = 337, // "space" + TOKEN_CSV_FORMAT = 338, // "csv-format" + TOKEN_ALWAYS_SEND = 339, // "always-send" + TOKEN_RECORD_TYPES = 340, // "record-types" + TOKEN_ENCAPSULATE = 341, // "encapsulate" + TOKEN_ARRAY = 342, // "array" + TOKEN_PARKED_PACKET_LIMIT = 343, // "parked-packet-limit" + TOKEN_ALLOCATOR = 344, // "allocator" + TOKEN_PD_ALLOCATOR = 345, // "pd-allocator" + TOKEN_SHARED_NETWORKS = 346, // "shared-networks" + TOKEN_POOLS = 347, // "pools" + TOKEN_POOL = 348, // "pool" + TOKEN_PD_POOLS = 349, // "pd-pools" + TOKEN_PREFIX = 350, // "prefix" + TOKEN_PREFIX_LEN = 351, // "prefix-len" + TOKEN_EXCLUDED_PREFIX = 352, // "excluded-prefix" + TOKEN_EXCLUDED_PREFIX_LEN = 353, // "excluded-prefix-len" + TOKEN_DELEGATED_LEN = 354, // "delegated-len" + TOKEN_USER_CONTEXT = 355, // "user-context" + TOKEN_COMMENT = 356, // "comment" + TOKEN_SUBNET = 357, // "subnet" + TOKEN_INTERFACE = 358, // "interface" + TOKEN_INTERFACE_ID = 359, // "interface-id" + TOKEN_ID = 360, // "id" + TOKEN_RAPID_COMMIT = 361, // "rapid-commit" + TOKEN_RESERVATION_MODE = 362, // "reservation-mode" + TOKEN_DISABLED = 363, // "disabled" + TOKEN_OUT_OF_POOL = 364, // "out-of-pool" + TOKEN_GLOBAL = 365, // "global" + TOKEN_ALL = 366, // "all" + TOKEN_RESERVATIONS_GLOBAL = 367, // "reservations-global" + TOKEN_RESERVATIONS_IN_SUBNET = 368, // "reservations-in-subnet" + TOKEN_RESERVATIONS_OUT_OF_POOL = 369, // "reservations-out-of-pool" + TOKEN_MAC_SOURCES = 370, // "mac-sources" + TOKEN_RELAY_SUPPLIED_OPTIONS = 371, // "relay-supplied-options" + TOKEN_HOST_RESERVATION_IDENTIFIERS = 372, // "host-reservation-identifiers" + TOKEN_SANITY_CHECKS = 373, // "sanity-checks" + TOKEN_LEASE_CHECKS = 374, // "lease-checks" + TOKEN_EXTENDED_INFO_CHECKS = 375, // "extended-info-checks" + TOKEN_CLIENT_CLASSES = 376, // "client-classes" + TOKEN_REQUIRE_CLIENT_CLASSES = 377, // "require-client-classes" + TOKEN_TEST = 378, // "test" + TOKEN_TEMPLATE_TEST = 379, // "template-test" + TOKEN_ONLY_IF_REQUIRED = 380, // "only-if-required" + TOKEN_CLIENT_CLASS = 381, // "client-class" + TOKEN_RESERVATIONS = 382, // "reservations" + TOKEN_IP_ADDRESSES = 383, // "ip-addresses" + TOKEN_PREFIXES = 384, // "prefixes" + TOKEN_DUID = 385, // "duid" + TOKEN_HW_ADDRESS = 386, // "hw-address" + TOKEN_HOSTNAME = 387, // "hostname" + TOKEN_FLEX_ID = 388, // "flex-id" + TOKEN_RELAY = 389, // "relay" + TOKEN_IP_ADDRESS = 390, // "ip-address" + TOKEN_HOOKS_LIBRARIES = 391, // "hooks-libraries" + TOKEN_LIBRARY = 392, // "library" + TOKEN_PARAMETERS = 393, // "parameters" + TOKEN_EXPIRED_LEASES_PROCESSING = 394, // "expired-leases-processing" + TOKEN_RECLAIM_TIMER_WAIT_TIME = 395, // "reclaim-timer-wait-time" + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 396, // "flush-reclaimed-timer-wait-time" + TOKEN_HOLD_RECLAIMED_TIME = 397, // "hold-reclaimed-time" + TOKEN_MAX_RECLAIM_LEASES = 398, // "max-reclaim-leases" + TOKEN_MAX_RECLAIM_TIME = 399, // "max-reclaim-time" + TOKEN_UNWARNED_RECLAIM_CYCLES = 400, // "unwarned-reclaim-cycles" + TOKEN_SERVER_ID = 401, // "server-id" + TOKEN_LLT = 402, // "LLT" + TOKEN_EN = 403, // "EN" + TOKEN_LL = 404, // "LL" + TOKEN_IDENTIFIER = 405, // "identifier" + TOKEN_HTYPE = 406, // "htype" + TOKEN_TIME = 407, // "time" + TOKEN_ENTERPRISE_ID = 408, // "enterprise-id" + TOKEN_DHCP4O6_PORT = 409, // "dhcp4o6-port" + TOKEN_DHCP_MULTI_THREADING = 410, // "multi-threading" + TOKEN_ENABLE_MULTI_THREADING = 411, // "enable-multi-threading" + TOKEN_THREAD_POOL_SIZE = 412, // "thread-pool-size" + TOKEN_PACKET_QUEUE_SIZE = 413, // "packet-queue-size" + TOKEN_CONTROL_SOCKET = 414, // "control-socket" + TOKEN_SOCKET_TYPE = 415, // "socket-type" + TOKEN_SOCKET_NAME = 416, // "socket-name" + TOKEN_DHCP_QUEUE_CONTROL = 417, // "dhcp-queue-control" + TOKEN_ENABLE_QUEUE = 418, // "enable-queue" + TOKEN_QUEUE_TYPE = 419, // "queue-type" + TOKEN_CAPACITY = 420, // "capacity" + TOKEN_DHCP_DDNS = 421, // "dhcp-ddns" + TOKEN_ENABLE_UPDATES = 422, // "enable-updates" + TOKEN_QUALIFYING_SUFFIX = 423, // "qualifying-suffix" + TOKEN_SERVER_IP = 424, // "server-ip" + TOKEN_SERVER_PORT = 425, // "server-port" + TOKEN_SENDER_IP = 426, // "sender-ip" + TOKEN_SENDER_PORT = 427, // "sender-port" + TOKEN_MAX_QUEUE_SIZE = 428, // "max-queue-size" + TOKEN_NCR_PROTOCOL = 429, // "ncr-protocol" + TOKEN_NCR_FORMAT = 430, // "ncr-format" + TOKEN_OVERRIDE_NO_UPDATE = 431, // "override-no-update" + TOKEN_OVERRIDE_CLIENT_UPDATE = 432, // "override-client-update" + TOKEN_REPLACE_CLIENT_NAME = 433, // "replace-client-name" + TOKEN_GENERATED_PREFIX = 434, // "generated-prefix" + TOKEN_UDP = 435, // "UDP" + TOKEN_TCP = 436, // "TCP" + TOKEN_JSON = 437, // "JSON" + TOKEN_WHEN_PRESENT = 438, // "when-present" + TOKEN_NEVER = 439, // "never" + TOKEN_ALWAYS = 440, // "always" + TOKEN_WHEN_NOT_PRESENT = 441, // "when-not-present" + TOKEN_HOSTNAME_CHAR_SET = 442, // "hostname-char-set" + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 443, // "hostname-char-replacement" + TOKEN_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 444, // "early-global-reservations-lookup" + TOKEN_IP_RESERVATIONS_UNIQUE = 445, // "ip-reservations-unique" + TOKEN_RESERVATIONS_LOOKUP_FIRST = 446, // "reservations-lookup-first" + TOKEN_LOGGERS = 447, // "loggers" + TOKEN_OUTPUT_OPTIONS = 448, // "output_options" + TOKEN_OUTPUT = 449, // "output" + TOKEN_DEBUGLEVEL = 450, // "debuglevel" + TOKEN_SEVERITY = 451, // "severity" + TOKEN_FLUSH = 452, // "flush" + TOKEN_MAXSIZE = 453, // "maxsize" + TOKEN_MAXVER = 454, // "maxver" + TOKEN_PATTERN = 455, // "pattern" + TOKEN_COMPATIBILITY = 456, // "compatibility" + TOKEN_LENIENT_OPTION_PARSING = 457, // "lenient-option-parsing" + TOKEN_TOPLEVEL_JSON = 458, // TOPLEVEL_JSON + TOKEN_TOPLEVEL_DHCP6 = 459, // TOPLEVEL_DHCP6 + TOKEN_SUB_DHCP6 = 460, // SUB_DHCP6 + TOKEN_SUB_INTERFACES6 = 461, // SUB_INTERFACES6 + TOKEN_SUB_SUBNET6 = 462, // SUB_SUBNET6 + TOKEN_SUB_POOL6 = 463, // SUB_POOL6 + TOKEN_SUB_PD_POOL = 464, // SUB_PD_POOL + TOKEN_SUB_RESERVATION = 465, // SUB_RESERVATION + TOKEN_SUB_OPTION_DEFS = 466, // SUB_OPTION_DEFS + TOKEN_SUB_OPTION_DEF = 467, // SUB_OPTION_DEF + TOKEN_SUB_OPTION_DATA = 468, // SUB_OPTION_DATA + TOKEN_SUB_HOOKS_LIBRARY = 469, // SUB_HOOKS_LIBRARY + TOKEN_SUB_DHCP_DDNS = 470, // SUB_DHCP_DDNS + TOKEN_SUB_CONFIG_CONTROL = 471, // SUB_CONFIG_CONTROL + TOKEN_STRING = 472, // "constant string" + TOKEN_INTEGER = 473, // "integer" + TOKEN_FLOAT = 474, // "floating point" + TOKEN_BOOLEAN = 475 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -729,7 +732,7 @@ namespace isc { namespace dhcp { { enum symbol_kind_type { - YYNTOKENS = 218, ///< Number of tokens. + YYNTOKENS = 221, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -767,638 +770,644 @@ namespace isc { namespace dhcp { S_LFC_INTERVAL = 33, // "lfc-interval" S_READONLY = 34, // "readonly" S_CONNECT_TIMEOUT = 35, // "connect-timeout" - S_MAX_RECONNECT_TRIES = 36, // "max-reconnect-tries" - S_RECONNECT_WAIT_TIME = 37, // "reconnect-wait-time" - S_ON_FAIL = 38, // "on-fail" - S_STOP_RETRY_EXIT = 39, // "stop-retry-exit" - S_SERVE_RETRY_EXIT = 40, // "serve-retry-exit" - S_SERVE_RETRY_CONTINUE = 41, // "serve-retry-continue" - S_MAX_ROW_ERRORS = 42, // "max-row-errors" - S_TRUST_ANCHOR = 43, // "trust-anchor" - S_CERT_FILE = 44, // "cert-file" - S_KEY_FILE = 45, // "key-file" - S_CIPHER_LIST = 46, // "cipher-list" - S_PREFERRED_LIFETIME = 47, // "preferred-lifetime" - S_MIN_PREFERRED_LIFETIME = 48, // "min-preferred-lifetime" - S_MAX_PREFERRED_LIFETIME = 49, // "max-preferred-lifetime" - S_VALID_LIFETIME = 50, // "valid-lifetime" - S_MIN_VALID_LIFETIME = 51, // "min-valid-lifetime" - S_MAX_VALID_LIFETIME = 52, // "max-valid-lifetime" - S_RENEW_TIMER = 53, // "renew-timer" - S_REBIND_TIMER = 54, // "rebind-timer" - S_CALCULATE_TEE_TIMES = 55, // "calculate-tee-times" - S_T1_PERCENT = 56, // "t1-percent" - S_T2_PERCENT = 57, // "t2-percent" - S_CACHE_THRESHOLD = 58, // "cache-threshold" - S_CACHE_MAX_AGE = 59, // "cache-max-age" - S_DECLINE_PROBATION_PERIOD = 60, // "decline-probation-period" - S_SERVER_TAG = 61, // "server-tag" - S_STATISTIC_DEFAULT_SAMPLE_COUNT = 62, // "statistic-default-sample-count" - S_STATISTIC_DEFAULT_SAMPLE_AGE = 63, // "statistic-default-sample-age" - S_DDNS_SEND_UPDATES = 64, // "ddns-send-updates" - S_DDNS_OVERRIDE_NO_UPDATE = 65, // "ddns-override-no-update" - S_DDNS_OVERRIDE_CLIENT_UPDATE = 66, // "ddns-override-client-update" - S_DDNS_REPLACE_CLIENT_NAME = 67, // "ddns-replace-client-name" - S_DDNS_GENERATED_PREFIX = 68, // "ddns-generated-prefix" - S_DDNS_QUALIFYING_SUFFIX = 69, // "ddns-qualifying-suffix" - S_DDNS_UPDATE_ON_RENEW = 70, // "ddns-update-on-renew" - S_DDNS_USE_CONFLICT_RESOLUTION = 71, // "ddns-use-conflict-resolution" - S_STORE_EXTENDED_INFO = 72, // "store-extended-info" - S_SUBNET6 = 73, // "subnet6" - S_OPTION_DEF = 74, // "option-def" - S_OPTION_DATA = 75, // "option-data" - S_NAME = 76, // "name" - S_DATA = 77, // "data" - S_CODE = 78, // "code" - S_SPACE = 79, // "space" - S_CSV_FORMAT = 80, // "csv-format" - S_ALWAYS_SEND = 81, // "always-send" - S_RECORD_TYPES = 82, // "record-types" - S_ENCAPSULATE = 83, // "encapsulate" - S_ARRAY = 84, // "array" - S_PARKED_PACKET_LIMIT = 85, // "parked-packet-limit" - S_ALLOCATOR = 86, // "allocator" - S_PD_ALLOCATOR = 87, // "pd-allocator" - S_SHARED_NETWORKS = 88, // "shared-networks" - S_POOLS = 89, // "pools" - S_POOL = 90, // "pool" - S_PD_POOLS = 91, // "pd-pools" - S_PREFIX = 92, // "prefix" - S_PREFIX_LEN = 93, // "prefix-len" - S_EXCLUDED_PREFIX = 94, // "excluded-prefix" - S_EXCLUDED_PREFIX_LEN = 95, // "excluded-prefix-len" - S_DELEGATED_LEN = 96, // "delegated-len" - S_USER_CONTEXT = 97, // "user-context" - S_COMMENT = 98, // "comment" - S_SUBNET = 99, // "subnet" - S_INTERFACE = 100, // "interface" - S_INTERFACE_ID = 101, // "interface-id" - S_ID = 102, // "id" - S_RAPID_COMMIT = 103, // "rapid-commit" - S_RESERVATION_MODE = 104, // "reservation-mode" - S_DISABLED = 105, // "disabled" - S_OUT_OF_POOL = 106, // "out-of-pool" - S_GLOBAL = 107, // "global" - S_ALL = 108, // "all" - S_RESERVATIONS_GLOBAL = 109, // "reservations-global" - S_RESERVATIONS_IN_SUBNET = 110, // "reservations-in-subnet" - S_RESERVATIONS_OUT_OF_POOL = 111, // "reservations-out-of-pool" - S_MAC_SOURCES = 112, // "mac-sources" - S_RELAY_SUPPLIED_OPTIONS = 113, // "relay-supplied-options" - S_HOST_RESERVATION_IDENTIFIERS = 114, // "host-reservation-identifiers" - S_SANITY_CHECKS = 115, // "sanity-checks" - S_LEASE_CHECKS = 116, // "lease-checks" - S_EXTENDED_INFO_CHECKS = 117, // "extended-info-checks" - S_CLIENT_CLASSES = 118, // "client-classes" - S_REQUIRE_CLIENT_CLASSES = 119, // "require-client-classes" - S_TEST = 120, // "test" - S_TEMPLATE_TEST = 121, // "template-test" - S_ONLY_IF_REQUIRED = 122, // "only-if-required" - S_CLIENT_CLASS = 123, // "client-class" - S_RESERVATIONS = 124, // "reservations" - S_IP_ADDRESSES = 125, // "ip-addresses" - S_PREFIXES = 126, // "prefixes" - S_DUID = 127, // "duid" - S_HW_ADDRESS = 128, // "hw-address" - S_HOSTNAME = 129, // "hostname" - S_FLEX_ID = 130, // "flex-id" - S_RELAY = 131, // "relay" - S_IP_ADDRESS = 132, // "ip-address" - S_HOOKS_LIBRARIES = 133, // "hooks-libraries" - S_LIBRARY = 134, // "library" - S_PARAMETERS = 135, // "parameters" - S_EXPIRED_LEASES_PROCESSING = 136, // "expired-leases-processing" - S_RECLAIM_TIMER_WAIT_TIME = 137, // "reclaim-timer-wait-time" - S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 138, // "flush-reclaimed-timer-wait-time" - S_HOLD_RECLAIMED_TIME = 139, // "hold-reclaimed-time" - S_MAX_RECLAIM_LEASES = 140, // "max-reclaim-leases" - S_MAX_RECLAIM_TIME = 141, // "max-reclaim-time" - S_UNWARNED_RECLAIM_CYCLES = 142, // "unwarned-reclaim-cycles" - S_SERVER_ID = 143, // "server-id" - S_LLT = 144, // "LLT" - S_EN = 145, // "EN" - S_LL = 146, // "LL" - S_IDENTIFIER = 147, // "identifier" - S_HTYPE = 148, // "htype" - S_TIME = 149, // "time" - S_ENTERPRISE_ID = 150, // "enterprise-id" - S_DHCP4O6_PORT = 151, // "dhcp4o6-port" - S_DHCP_MULTI_THREADING = 152, // "multi-threading" - S_ENABLE_MULTI_THREADING = 153, // "enable-multi-threading" - S_THREAD_POOL_SIZE = 154, // "thread-pool-size" - S_PACKET_QUEUE_SIZE = 155, // "packet-queue-size" - S_CONTROL_SOCKET = 156, // "control-socket" - S_SOCKET_TYPE = 157, // "socket-type" - S_SOCKET_NAME = 158, // "socket-name" - S_DHCP_QUEUE_CONTROL = 159, // "dhcp-queue-control" - S_ENABLE_QUEUE = 160, // "enable-queue" - S_QUEUE_TYPE = 161, // "queue-type" - S_CAPACITY = 162, // "capacity" - S_DHCP_DDNS = 163, // "dhcp-ddns" - S_ENABLE_UPDATES = 164, // "enable-updates" - S_QUALIFYING_SUFFIX = 165, // "qualifying-suffix" - S_SERVER_IP = 166, // "server-ip" - S_SERVER_PORT = 167, // "server-port" - S_SENDER_IP = 168, // "sender-ip" - S_SENDER_PORT = 169, // "sender-port" - S_MAX_QUEUE_SIZE = 170, // "max-queue-size" - S_NCR_PROTOCOL = 171, // "ncr-protocol" - S_NCR_FORMAT = 172, // "ncr-format" - S_OVERRIDE_NO_UPDATE = 173, // "override-no-update" - S_OVERRIDE_CLIENT_UPDATE = 174, // "override-client-update" - S_REPLACE_CLIENT_NAME = 175, // "replace-client-name" - S_GENERATED_PREFIX = 176, // "generated-prefix" - S_UDP = 177, // "UDP" - S_TCP = 178, // "TCP" - S_JSON = 179, // "JSON" - S_WHEN_PRESENT = 180, // "when-present" - S_NEVER = 181, // "never" - S_ALWAYS = 182, // "always" - S_WHEN_NOT_PRESENT = 183, // "when-not-present" - S_HOSTNAME_CHAR_SET = 184, // "hostname-char-set" - S_HOSTNAME_CHAR_REPLACEMENT = 185, // "hostname-char-replacement" - S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 186, // "early-global-reservations-lookup" - S_IP_RESERVATIONS_UNIQUE = 187, // "ip-reservations-unique" - S_RESERVATIONS_LOOKUP_FIRST = 188, // "reservations-lookup-first" - S_LOGGERS = 189, // "loggers" - S_OUTPUT_OPTIONS = 190, // "output_options" - S_OUTPUT = 191, // "output" - S_DEBUGLEVEL = 192, // "debuglevel" - S_SEVERITY = 193, // "severity" - S_FLUSH = 194, // "flush" - S_MAXSIZE = 195, // "maxsize" - S_MAXVER = 196, // "maxver" - S_PATTERN = 197, // "pattern" - S_COMPATIBILITY = 198, // "compatibility" - S_LENIENT_OPTION_PARSING = 199, // "lenient-option-parsing" - S_TOPLEVEL_JSON = 200, // TOPLEVEL_JSON - S_TOPLEVEL_DHCP6 = 201, // TOPLEVEL_DHCP6 - S_SUB_DHCP6 = 202, // SUB_DHCP6 - S_SUB_INTERFACES6 = 203, // SUB_INTERFACES6 - S_SUB_SUBNET6 = 204, // SUB_SUBNET6 - S_SUB_POOL6 = 205, // SUB_POOL6 - S_SUB_PD_POOL = 206, // SUB_PD_POOL - S_SUB_RESERVATION = 207, // SUB_RESERVATION - S_SUB_OPTION_DEFS = 208, // SUB_OPTION_DEFS - S_SUB_OPTION_DEF = 209, // SUB_OPTION_DEF - S_SUB_OPTION_DATA = 210, // SUB_OPTION_DATA - S_SUB_HOOKS_LIBRARY = 211, // SUB_HOOKS_LIBRARY - S_SUB_DHCP_DDNS = 212, // SUB_DHCP_DDNS - S_SUB_CONFIG_CONTROL = 213, // SUB_CONFIG_CONTROL - S_STRING = 214, // "constant string" - S_INTEGER = 215, // "integer" - S_FLOAT = 216, // "floating point" - S_BOOLEAN = 217, // "boolean" - S_YYACCEPT = 218, // $accept - S_start = 219, // start - S_220_1 = 220, // $@1 - S_221_2 = 221, // $@2 - S_222_3 = 222, // $@3 - S_223_4 = 223, // $@4 - S_224_5 = 224, // $@5 - S_225_6 = 225, // $@6 - S_226_7 = 226, // $@7 - S_227_8 = 227, // $@8 - S_228_9 = 228, // $@9 - S_229_10 = 229, // $@10 - S_230_11 = 230, // $@11 - S_231_12 = 231, // $@12 - S_232_13 = 232, // $@13 - S_233_14 = 233, // $@14 - S_value = 234, // value - S_sub_json = 235, // sub_json - S_map2 = 236, // map2 - S_237_15 = 237, // $@15 - S_map_value = 238, // map_value - S_map_content = 239, // map_content - S_not_empty_map = 240, // not_empty_map - S_list_generic = 241, // list_generic - S_242_16 = 242, // $@16 - S_list_content = 243, // list_content - S_not_empty_list = 244, // not_empty_list - S_list_strings = 245, // list_strings - S_246_17 = 246, // $@17 - S_list_strings_content = 247, // list_strings_content - S_not_empty_list_strings = 248, // not_empty_list_strings - S_unknown_map_entry = 249, // unknown_map_entry - S_syntax_map = 250, // syntax_map - S_251_18 = 251, // $@18 - S_global_object = 252, // global_object - S_253_19 = 253, // $@19 - S_global_object_comma = 254, // global_object_comma - S_sub_dhcp6 = 255, // sub_dhcp6 - S_256_20 = 256, // $@20 - S_global_params = 257, // global_params - S_global_param = 258, // global_param - S_data_directory = 259, // data_directory - S_260_21 = 260, // $@21 - S_preferred_lifetime = 261, // preferred_lifetime - S_min_preferred_lifetime = 262, // min_preferred_lifetime - S_max_preferred_lifetime = 263, // max_preferred_lifetime - S_valid_lifetime = 264, // valid_lifetime - S_min_valid_lifetime = 265, // min_valid_lifetime - S_max_valid_lifetime = 266, // max_valid_lifetime - S_renew_timer = 267, // renew_timer - S_rebind_timer = 268, // rebind_timer - S_calculate_tee_times = 269, // calculate_tee_times - S_t1_percent = 270, // t1_percent - S_t2_percent = 271, // t2_percent - S_cache_threshold = 272, // cache_threshold - S_cache_max_age = 273, // cache_max_age - S_decline_probation_period = 274, // decline_probation_period - S_ddns_send_updates = 275, // ddns_send_updates - S_ddns_override_no_update = 276, // ddns_override_no_update - S_ddns_override_client_update = 277, // ddns_override_client_update - S_ddns_replace_client_name = 278, // ddns_replace_client_name - S_279_22 = 279, // $@22 - S_ddns_replace_client_name_value = 280, // ddns_replace_client_name_value - S_ddns_generated_prefix = 281, // ddns_generated_prefix - S_282_23 = 282, // $@23 - S_ddns_qualifying_suffix = 283, // ddns_qualifying_suffix - S_284_24 = 284, // $@24 - S_ddns_update_on_renew = 285, // ddns_update_on_renew - S_ddns_use_conflict_resolution = 286, // ddns_use_conflict_resolution - S_hostname_char_set = 287, // hostname_char_set - S_288_25 = 288, // $@25 - S_hostname_char_replacement = 289, // hostname_char_replacement - S_290_26 = 290, // $@26 - S_store_extended_info = 291, // store_extended_info - S_statistic_default_sample_count = 292, // statistic_default_sample_count - S_statistic_default_sample_age = 293, // statistic_default_sample_age - S_server_tag = 294, // server_tag - S_295_27 = 295, // $@27 - S_parked_packet_limit = 296, // parked_packet_limit - S_allocator = 297, // allocator - S_298_28 = 298, // $@28 - S_pd_allocator = 299, // pd_allocator - S_300_29 = 300, // $@29 - S_early_global_reservations_lookup = 301, // early_global_reservations_lookup - S_ip_reservations_unique = 302, // ip_reservations_unique - S_reservations_lookup_first = 303, // reservations_lookup_first - S_interfaces_config = 304, // interfaces_config - S_305_30 = 305, // $@30 - S_sub_interfaces6 = 306, // sub_interfaces6 - S_307_31 = 307, // $@31 - S_interfaces_config_params = 308, // interfaces_config_params - S_interfaces_config_param = 309, // interfaces_config_param - S_interfaces_list = 310, // interfaces_list - S_311_32 = 311, // $@32 - S_re_detect = 312, // re_detect - S_service_sockets_require_all = 313, // service_sockets_require_all - S_service_sockets_retry_wait_time = 314, // service_sockets_retry_wait_time - S_service_sockets_max_retries = 315, // service_sockets_max_retries - S_lease_database = 316, // lease_database - S_317_33 = 317, // $@33 - S_hosts_database = 318, // hosts_database - S_319_34 = 319, // $@34 - S_hosts_databases = 320, // hosts_databases - S_321_35 = 321, // $@35 - S_database_list = 322, // database_list - S_not_empty_database_list = 323, // not_empty_database_list - S_database = 324, // database - S_325_36 = 325, // $@36 - S_database_map_params = 326, // database_map_params - S_database_map_param = 327, // database_map_param - S_database_type = 328, // database_type - S_329_37 = 329, // $@37 - S_db_type = 330, // db_type - S_user = 331, // user - S_332_38 = 332, // $@38 - S_password = 333, // password - S_334_39 = 334, // $@39 - S_host = 335, // host - S_336_40 = 336, // $@40 - S_port = 337, // port - S_name = 338, // name - S_339_41 = 339, // $@41 - S_persist = 340, // persist - S_lfc_interval = 341, // lfc_interval - S_readonly = 342, // readonly - S_connect_timeout = 343, // connect_timeout - S_reconnect_wait_time = 344, // reconnect_wait_time - S_on_fail = 345, // on_fail - S_346_42 = 346, // $@42 - S_on_fail_mode = 347, // on_fail_mode - S_max_row_errors = 348, // max_row_errors - S_max_reconnect_tries = 349, // max_reconnect_tries - S_trust_anchor = 350, // trust_anchor - S_351_43 = 351, // $@43 - S_cert_file = 352, // cert_file - S_353_44 = 353, // $@44 - S_key_file = 354, // key_file - S_355_45 = 355, // $@45 - S_cipher_list = 356, // cipher_list - S_357_46 = 357, // $@46 - S_sanity_checks = 358, // sanity_checks - S_359_47 = 359, // $@47 - S_sanity_checks_params = 360, // sanity_checks_params - S_sanity_checks_param = 361, // sanity_checks_param - S_lease_checks = 362, // lease_checks - S_363_48 = 363, // $@48 - S_extended_info_checks = 364, // extended_info_checks - S_365_49 = 365, // $@49 - S_mac_sources = 366, // mac_sources - S_367_50 = 367, // $@50 - S_mac_sources_list = 368, // mac_sources_list - S_mac_sources_value = 369, // mac_sources_value - S_duid_id = 370, // duid_id - S_string_id = 371, // string_id - S_host_reservation_identifiers = 372, // host_reservation_identifiers - S_373_51 = 373, // $@51 - S_host_reservation_identifiers_list = 374, // host_reservation_identifiers_list - S_host_reservation_identifier = 375, // host_reservation_identifier - S_hw_address_id = 376, // hw_address_id - S_flex_id = 377, // flex_id - S_relay_supplied_options = 378, // relay_supplied_options - S_379_52 = 379, // $@52 - S_dhcp_multi_threading = 380, // dhcp_multi_threading - S_381_53 = 381, // $@53 - S_multi_threading_params = 382, // multi_threading_params - S_multi_threading_param = 383, // multi_threading_param - S_enable_multi_threading = 384, // enable_multi_threading - S_thread_pool_size = 385, // thread_pool_size - S_packet_queue_size = 386, // packet_queue_size - S_hooks_libraries = 387, // hooks_libraries - S_388_54 = 388, // $@54 - S_hooks_libraries_list = 389, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 390, // not_empty_hooks_libraries_list - S_hooks_library = 391, // hooks_library - S_392_55 = 392, // $@55 - S_sub_hooks_library = 393, // sub_hooks_library - S_394_56 = 394, // $@56 - S_hooks_params = 395, // hooks_params - S_hooks_param = 396, // hooks_param - S_library = 397, // library - S_398_57 = 398, // $@57 - S_parameters = 399, // parameters - S_400_58 = 400, // $@58 - S_expired_leases_processing = 401, // expired_leases_processing - S_402_59 = 402, // $@59 - S_expired_leases_params = 403, // expired_leases_params - S_expired_leases_param = 404, // expired_leases_param - S_reclaim_timer_wait_time = 405, // reclaim_timer_wait_time - S_flush_reclaimed_timer_wait_time = 406, // flush_reclaimed_timer_wait_time - S_hold_reclaimed_time = 407, // hold_reclaimed_time - S_max_reclaim_leases = 408, // max_reclaim_leases - S_max_reclaim_time = 409, // max_reclaim_time - S_unwarned_reclaim_cycles = 410, // unwarned_reclaim_cycles - S_subnet6_list = 411, // subnet6_list - S_412_60 = 412, // $@60 - S_subnet6_list_content = 413, // subnet6_list_content - S_not_empty_subnet6_list = 414, // not_empty_subnet6_list - S_subnet6 = 415, // subnet6 - S_416_61 = 416, // $@61 - S_sub_subnet6 = 417, // sub_subnet6 - S_418_62 = 418, // $@62 - S_subnet6_params = 419, // subnet6_params - S_subnet6_param = 420, // subnet6_param - S_subnet = 421, // subnet - S_422_63 = 422, // $@63 - S_interface = 423, // interface - S_424_64 = 424, // $@64 - S_interface_id = 425, // interface_id - S_426_65 = 426, // $@65 - S_client_class = 427, // client_class - S_428_66 = 428, // $@66 - S_require_client_classes = 429, // require_client_classes - S_430_67 = 430, // $@67 - S_reservations_global = 431, // reservations_global - S_reservations_in_subnet = 432, // reservations_in_subnet - S_reservations_out_of_pool = 433, // reservations_out_of_pool - S_reservation_mode = 434, // reservation_mode - S_435_68 = 435, // $@68 - S_hr_mode = 436, // hr_mode - S_id = 437, // id - S_rapid_commit = 438, // rapid_commit - S_shared_networks = 439, // shared_networks - S_440_69 = 440, // $@69 - S_shared_networks_content = 441, // shared_networks_content - S_shared_networks_list = 442, // shared_networks_list - S_shared_network = 443, // shared_network - S_444_70 = 444, // $@70 - S_shared_network_params = 445, // shared_network_params - S_shared_network_param = 446, // shared_network_param - S_option_def_list = 447, // option_def_list - S_448_71 = 448, // $@71 - S_sub_option_def_list = 449, // sub_option_def_list - S_450_72 = 450, // $@72 - S_option_def_list_content = 451, // option_def_list_content - S_not_empty_option_def_list = 452, // not_empty_option_def_list - S_option_def_entry = 453, // option_def_entry - S_454_73 = 454, // $@73 - S_sub_option_def = 455, // sub_option_def - S_456_74 = 456, // $@74 - S_option_def_params = 457, // option_def_params - S_not_empty_option_def_params = 458, // not_empty_option_def_params - S_option_def_param = 459, // option_def_param - S_option_def_name = 460, // option_def_name - S_code = 461, // code - S_option_def_code = 462, // option_def_code - S_option_def_type = 463, // option_def_type - S_464_75 = 464, // $@75 - S_option_def_record_types = 465, // option_def_record_types - S_466_76 = 466, // $@76 - S_space = 467, // space - S_468_77 = 468, // $@77 - S_option_def_space = 469, // option_def_space - S_option_def_encapsulate = 470, // option_def_encapsulate - S_471_78 = 471, // $@78 - S_option_def_array = 472, // option_def_array - S_option_data_list = 473, // option_data_list - S_474_79 = 474, // $@79 - S_option_data_list_content = 475, // option_data_list_content - S_not_empty_option_data_list = 476, // not_empty_option_data_list - S_option_data_entry = 477, // option_data_entry - S_478_80 = 478, // $@80 - S_sub_option_data = 479, // sub_option_data - S_480_81 = 480, // $@81 - S_option_data_params = 481, // option_data_params - S_not_empty_option_data_params = 482, // not_empty_option_data_params - S_option_data_param = 483, // option_data_param - S_option_data_name = 484, // option_data_name - S_option_data_data = 485, // option_data_data - S_486_82 = 486, // $@82 - S_option_data_code = 487, // option_data_code - S_option_data_space = 488, // option_data_space - S_option_data_csv_format = 489, // option_data_csv_format - S_option_data_always_send = 490, // option_data_always_send - S_pools_list = 491, // pools_list - S_492_83 = 492, // $@83 - S_pools_list_content = 493, // pools_list_content - S_not_empty_pools_list = 494, // not_empty_pools_list - S_pool_list_entry = 495, // pool_list_entry - S_496_84 = 496, // $@84 - S_sub_pool6 = 497, // sub_pool6 - S_498_85 = 498, // $@85 - S_pool_params = 499, // pool_params - S_pool_param = 500, // pool_param - S_pool_entry = 501, // pool_entry - S_502_86 = 502, // $@86 - S_user_context = 503, // user_context - S_504_87 = 504, // $@87 - S_comment = 505, // comment - S_506_88 = 506, // $@88 - S_pd_pools_list = 507, // pd_pools_list - S_508_89 = 508, // $@89 - S_pd_pools_list_content = 509, // pd_pools_list_content - S_not_empty_pd_pools_list = 510, // not_empty_pd_pools_list - S_pd_pool_entry = 511, // pd_pool_entry - S_512_90 = 512, // $@90 - S_sub_pd_pool = 513, // sub_pd_pool - S_514_91 = 514, // $@91 - S_pd_pool_params = 515, // pd_pool_params - S_pd_pool_param = 516, // pd_pool_param - S_pd_prefix = 517, // pd_prefix - S_518_92 = 518, // $@92 - S_pd_prefix_len = 519, // pd_prefix_len - S_excluded_prefix = 520, // excluded_prefix - S_521_93 = 521, // $@93 - S_excluded_prefix_len = 522, // excluded_prefix_len - S_pd_delegated_len = 523, // pd_delegated_len - S_reservations = 524, // reservations - S_525_94 = 525, // $@94 - S_reservations_list = 526, // reservations_list - S_not_empty_reservations_list = 527, // not_empty_reservations_list - S_reservation = 528, // reservation - S_529_95 = 529, // $@95 - S_sub_reservation = 530, // sub_reservation - S_531_96 = 531, // $@96 - S_reservation_params = 532, // reservation_params - S_not_empty_reservation_params = 533, // not_empty_reservation_params - S_reservation_param = 534, // reservation_param - S_ip_addresses = 535, // ip_addresses - S_536_97 = 536, // $@97 - S_prefixes = 537, // prefixes - S_538_98 = 538, // $@98 - S_duid = 539, // duid - S_540_99 = 540, // $@99 - S_hw_address = 541, // hw_address - S_542_100 = 542, // $@100 - S_hostname = 543, // hostname - S_544_101 = 544, // $@101 - S_flex_id_value = 545, // flex_id_value - S_546_102 = 546, // $@102 - S_reservation_client_classes = 547, // reservation_client_classes - S_548_103 = 548, // $@103 - S_relay = 549, // relay - S_550_104 = 550, // $@104 - S_relay_map = 551, // relay_map - S_ip_address = 552, // ip_address - S_553_105 = 553, // $@105 - S_client_classes = 554, // client_classes - S_555_106 = 555, // $@106 - S_client_classes_list = 556, // client_classes_list - S_client_class_entry = 557, // client_class_entry - S_558_107 = 558, // $@107 - S_client_class_params = 559, // client_class_params - S_not_empty_client_class_params = 560, // not_empty_client_class_params - S_client_class_param = 561, // client_class_param - S_client_class_name = 562, // client_class_name - S_client_class_test = 563, // client_class_test - S_564_108 = 564, // $@108 - S_client_class_template_test = 565, // client_class_template_test - S_566_109 = 566, // $@109 - S_only_if_required = 567, // only_if_required - S_server_id = 568, // server_id - S_569_110 = 569, // $@110 - S_server_id_params = 570, // server_id_params - S_server_id_param = 571, // server_id_param - S_server_id_type = 572, // server_id_type - S_573_111 = 573, // $@111 - S_duid_type = 574, // duid_type - S_htype = 575, // htype - S_identifier = 576, // identifier - S_577_112 = 577, // $@112 - S_time = 578, // time - S_enterprise_id = 579, // enterprise_id - S_dhcp4o6_port = 580, // dhcp4o6_port - S_control_socket = 581, // control_socket - S_582_113 = 582, // $@113 - S_control_socket_params = 583, // control_socket_params - S_control_socket_param = 584, // control_socket_param - S_socket_type = 585, // socket_type - S_586_114 = 586, // $@114 - S_socket_name = 587, // socket_name - S_588_115 = 588, // $@115 - S_dhcp_queue_control = 589, // dhcp_queue_control - S_590_116 = 590, // $@116 - S_queue_control_params = 591, // queue_control_params - S_queue_control_param = 592, // queue_control_param - S_enable_queue = 593, // enable_queue - S_queue_type = 594, // queue_type - S_595_117 = 595, // $@117 - S_capacity = 596, // capacity - S_arbitrary_map_entry = 597, // arbitrary_map_entry - S_598_118 = 598, // $@118 - S_dhcp_ddns = 599, // dhcp_ddns - S_600_119 = 600, // $@119 - S_sub_dhcp_ddns = 601, // sub_dhcp_ddns - S_602_120 = 602, // $@120 - S_dhcp_ddns_params = 603, // dhcp_ddns_params - S_dhcp_ddns_param = 604, // dhcp_ddns_param - S_enable_updates = 605, // enable_updates - S_dep_qualifying_suffix = 606, // dep_qualifying_suffix - S_607_121 = 607, // $@121 - S_server_ip = 608, // server_ip - S_609_122 = 609, // $@122 - S_server_port = 610, // server_port - S_sender_ip = 611, // sender_ip - S_612_123 = 612, // $@123 - S_sender_port = 613, // sender_port - S_max_queue_size = 614, // max_queue_size - S_ncr_protocol = 615, // ncr_protocol - S_616_124 = 616, // $@124 - S_ncr_protocol_value = 617, // ncr_protocol_value - S_ncr_format = 618, // ncr_format - S_619_125 = 619, // $@125 - S_dep_override_no_update = 620, // dep_override_no_update - S_dep_override_client_update = 621, // dep_override_client_update - S_dep_replace_client_name = 622, // dep_replace_client_name - S_623_126 = 623, // $@126 - S_dep_generated_prefix = 624, // dep_generated_prefix - S_625_127 = 625, // $@127 - S_dep_hostname_char_set = 626, // dep_hostname_char_set - S_627_128 = 627, // $@128 - S_dep_hostname_char_replacement = 628, // dep_hostname_char_replacement - S_629_129 = 629, // $@129 - S_config_control = 630, // config_control - S_631_130 = 631, // $@130 - S_sub_config_control = 632, // sub_config_control - S_633_131 = 633, // $@131 - S_config_control_params = 634, // config_control_params - S_config_control_param = 635, // config_control_param - S_config_databases = 636, // config_databases - S_637_132 = 637, // $@132 - S_config_fetch_wait_time = 638, // config_fetch_wait_time - S_loggers = 639, // loggers - S_640_133 = 640, // $@133 - S_loggers_entries = 641, // loggers_entries - S_logger_entry = 642, // logger_entry - S_643_134 = 643, // $@134 - S_logger_params = 644, // logger_params - S_logger_param = 645, // logger_param - S_debuglevel = 646, // debuglevel - S_severity = 647, // severity - S_648_135 = 648, // $@135 - S_output_options_list = 649, // output_options_list - S_650_136 = 650, // $@136 - S_output_options_list_content = 651, // output_options_list_content - S_output_entry = 652, // output_entry - S_653_137 = 653, // $@137 - S_output_params_list = 654, // output_params_list - S_output_params = 655, // output_params - S_output = 656, // output - S_657_138 = 657, // $@138 - S_flush = 658, // flush - S_maxsize = 659, // maxsize - S_maxver = 660, // maxver - S_pattern = 661, // pattern - S_662_139 = 662, // $@139 - S_compatibility = 663, // compatibility - S_664_140 = 664, // $@140 - S_compatibility_params = 665, // compatibility_params - S_compatibility_param = 666, // compatibility_param - S_lenient_option_parsing = 667 // lenient_option_parsing + S_READ_TIMEOUT = 36, // "read-timeout" + S_WRITE_TIMEOUT = 37, // "write-timeout" + S_TCP_USER_TIMEOUT = 38, // "tcp-user-timeout" + S_MAX_RECONNECT_TRIES = 39, // "max-reconnect-tries" + S_RECONNECT_WAIT_TIME = 40, // "reconnect-wait-time" + S_ON_FAIL = 41, // "on-fail" + S_STOP_RETRY_EXIT = 42, // "stop-retry-exit" + S_SERVE_RETRY_EXIT = 43, // "serve-retry-exit" + S_SERVE_RETRY_CONTINUE = 44, // "serve-retry-continue" + S_MAX_ROW_ERRORS = 45, // "max-row-errors" + S_TRUST_ANCHOR = 46, // "trust-anchor" + S_CERT_FILE = 47, // "cert-file" + S_KEY_FILE = 48, // "key-file" + S_CIPHER_LIST = 49, // "cipher-list" + S_PREFERRED_LIFETIME = 50, // "preferred-lifetime" + S_MIN_PREFERRED_LIFETIME = 51, // "min-preferred-lifetime" + S_MAX_PREFERRED_LIFETIME = 52, // "max-preferred-lifetime" + S_VALID_LIFETIME = 53, // "valid-lifetime" + S_MIN_VALID_LIFETIME = 54, // "min-valid-lifetime" + S_MAX_VALID_LIFETIME = 55, // "max-valid-lifetime" + S_RENEW_TIMER = 56, // "renew-timer" + S_REBIND_TIMER = 57, // "rebind-timer" + S_CALCULATE_TEE_TIMES = 58, // "calculate-tee-times" + S_T1_PERCENT = 59, // "t1-percent" + S_T2_PERCENT = 60, // "t2-percent" + S_CACHE_THRESHOLD = 61, // "cache-threshold" + S_CACHE_MAX_AGE = 62, // "cache-max-age" + S_DECLINE_PROBATION_PERIOD = 63, // "decline-probation-period" + S_SERVER_TAG = 64, // "server-tag" + S_STATISTIC_DEFAULT_SAMPLE_COUNT = 65, // "statistic-default-sample-count" + S_STATISTIC_DEFAULT_SAMPLE_AGE = 66, // "statistic-default-sample-age" + S_DDNS_SEND_UPDATES = 67, // "ddns-send-updates" + S_DDNS_OVERRIDE_NO_UPDATE = 68, // "ddns-override-no-update" + S_DDNS_OVERRIDE_CLIENT_UPDATE = 69, // "ddns-override-client-update" + S_DDNS_REPLACE_CLIENT_NAME = 70, // "ddns-replace-client-name" + S_DDNS_GENERATED_PREFIX = 71, // "ddns-generated-prefix" + S_DDNS_QUALIFYING_SUFFIX = 72, // "ddns-qualifying-suffix" + S_DDNS_UPDATE_ON_RENEW = 73, // "ddns-update-on-renew" + S_DDNS_USE_CONFLICT_RESOLUTION = 74, // "ddns-use-conflict-resolution" + S_STORE_EXTENDED_INFO = 75, // "store-extended-info" + S_SUBNET6 = 76, // "subnet6" + S_OPTION_DEF = 77, // "option-def" + S_OPTION_DATA = 78, // "option-data" + S_NAME = 79, // "name" + S_DATA = 80, // "data" + S_CODE = 81, // "code" + S_SPACE = 82, // "space" + S_CSV_FORMAT = 83, // "csv-format" + S_ALWAYS_SEND = 84, // "always-send" + S_RECORD_TYPES = 85, // "record-types" + S_ENCAPSULATE = 86, // "encapsulate" + S_ARRAY = 87, // "array" + S_PARKED_PACKET_LIMIT = 88, // "parked-packet-limit" + S_ALLOCATOR = 89, // "allocator" + S_PD_ALLOCATOR = 90, // "pd-allocator" + S_SHARED_NETWORKS = 91, // "shared-networks" + S_POOLS = 92, // "pools" + S_POOL = 93, // "pool" + S_PD_POOLS = 94, // "pd-pools" + S_PREFIX = 95, // "prefix" + S_PREFIX_LEN = 96, // "prefix-len" + S_EXCLUDED_PREFIX = 97, // "excluded-prefix" + S_EXCLUDED_PREFIX_LEN = 98, // "excluded-prefix-len" + S_DELEGATED_LEN = 99, // "delegated-len" + S_USER_CONTEXT = 100, // "user-context" + S_COMMENT = 101, // "comment" + S_SUBNET = 102, // "subnet" + S_INTERFACE = 103, // "interface" + S_INTERFACE_ID = 104, // "interface-id" + S_ID = 105, // "id" + S_RAPID_COMMIT = 106, // "rapid-commit" + S_RESERVATION_MODE = 107, // "reservation-mode" + S_DISABLED = 108, // "disabled" + S_OUT_OF_POOL = 109, // "out-of-pool" + S_GLOBAL = 110, // "global" + S_ALL = 111, // "all" + S_RESERVATIONS_GLOBAL = 112, // "reservations-global" + S_RESERVATIONS_IN_SUBNET = 113, // "reservations-in-subnet" + S_RESERVATIONS_OUT_OF_POOL = 114, // "reservations-out-of-pool" + S_MAC_SOURCES = 115, // "mac-sources" + S_RELAY_SUPPLIED_OPTIONS = 116, // "relay-supplied-options" + S_HOST_RESERVATION_IDENTIFIERS = 117, // "host-reservation-identifiers" + S_SANITY_CHECKS = 118, // "sanity-checks" + S_LEASE_CHECKS = 119, // "lease-checks" + S_EXTENDED_INFO_CHECKS = 120, // "extended-info-checks" + S_CLIENT_CLASSES = 121, // "client-classes" + S_REQUIRE_CLIENT_CLASSES = 122, // "require-client-classes" + S_TEST = 123, // "test" + S_TEMPLATE_TEST = 124, // "template-test" + S_ONLY_IF_REQUIRED = 125, // "only-if-required" + S_CLIENT_CLASS = 126, // "client-class" + S_RESERVATIONS = 127, // "reservations" + S_IP_ADDRESSES = 128, // "ip-addresses" + S_PREFIXES = 129, // "prefixes" + S_DUID = 130, // "duid" + S_HW_ADDRESS = 131, // "hw-address" + S_HOSTNAME = 132, // "hostname" + S_FLEX_ID = 133, // "flex-id" + S_RELAY = 134, // "relay" + S_IP_ADDRESS = 135, // "ip-address" + S_HOOKS_LIBRARIES = 136, // "hooks-libraries" + S_LIBRARY = 137, // "library" + S_PARAMETERS = 138, // "parameters" + S_EXPIRED_LEASES_PROCESSING = 139, // "expired-leases-processing" + S_RECLAIM_TIMER_WAIT_TIME = 140, // "reclaim-timer-wait-time" + S_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 141, // "flush-reclaimed-timer-wait-time" + S_HOLD_RECLAIMED_TIME = 142, // "hold-reclaimed-time" + S_MAX_RECLAIM_LEASES = 143, // "max-reclaim-leases" + S_MAX_RECLAIM_TIME = 144, // "max-reclaim-time" + S_UNWARNED_RECLAIM_CYCLES = 145, // "unwarned-reclaim-cycles" + S_SERVER_ID = 146, // "server-id" + S_LLT = 147, // "LLT" + S_EN = 148, // "EN" + S_LL = 149, // "LL" + S_IDENTIFIER = 150, // "identifier" + S_HTYPE = 151, // "htype" + S_TIME = 152, // "time" + S_ENTERPRISE_ID = 153, // "enterprise-id" + S_DHCP4O6_PORT = 154, // "dhcp4o6-port" + S_DHCP_MULTI_THREADING = 155, // "multi-threading" + S_ENABLE_MULTI_THREADING = 156, // "enable-multi-threading" + S_THREAD_POOL_SIZE = 157, // "thread-pool-size" + S_PACKET_QUEUE_SIZE = 158, // "packet-queue-size" + S_CONTROL_SOCKET = 159, // "control-socket" + S_SOCKET_TYPE = 160, // "socket-type" + S_SOCKET_NAME = 161, // "socket-name" + S_DHCP_QUEUE_CONTROL = 162, // "dhcp-queue-control" + S_ENABLE_QUEUE = 163, // "enable-queue" + S_QUEUE_TYPE = 164, // "queue-type" + S_CAPACITY = 165, // "capacity" + S_DHCP_DDNS = 166, // "dhcp-ddns" + S_ENABLE_UPDATES = 167, // "enable-updates" + S_QUALIFYING_SUFFIX = 168, // "qualifying-suffix" + S_SERVER_IP = 169, // "server-ip" + S_SERVER_PORT = 170, // "server-port" + S_SENDER_IP = 171, // "sender-ip" + S_SENDER_PORT = 172, // "sender-port" + S_MAX_QUEUE_SIZE = 173, // "max-queue-size" + S_NCR_PROTOCOL = 174, // "ncr-protocol" + S_NCR_FORMAT = 175, // "ncr-format" + S_OVERRIDE_NO_UPDATE = 176, // "override-no-update" + S_OVERRIDE_CLIENT_UPDATE = 177, // "override-client-update" + S_REPLACE_CLIENT_NAME = 178, // "replace-client-name" + S_GENERATED_PREFIX = 179, // "generated-prefix" + S_UDP = 180, // "UDP" + S_TCP = 181, // "TCP" + S_JSON = 182, // "JSON" + S_WHEN_PRESENT = 183, // "when-present" + S_NEVER = 184, // "never" + S_ALWAYS = 185, // "always" + S_WHEN_NOT_PRESENT = 186, // "when-not-present" + S_HOSTNAME_CHAR_SET = 187, // "hostname-char-set" + S_HOSTNAME_CHAR_REPLACEMENT = 188, // "hostname-char-replacement" + S_EARLY_GLOBAL_RESERVATIONS_LOOKUP = 189, // "early-global-reservations-lookup" + S_IP_RESERVATIONS_UNIQUE = 190, // "ip-reservations-unique" + S_RESERVATIONS_LOOKUP_FIRST = 191, // "reservations-lookup-first" + S_LOGGERS = 192, // "loggers" + S_OUTPUT_OPTIONS = 193, // "output_options" + S_OUTPUT = 194, // "output" + S_DEBUGLEVEL = 195, // "debuglevel" + S_SEVERITY = 196, // "severity" + S_FLUSH = 197, // "flush" + S_MAXSIZE = 198, // "maxsize" + S_MAXVER = 199, // "maxver" + S_PATTERN = 200, // "pattern" + S_COMPATIBILITY = 201, // "compatibility" + S_LENIENT_OPTION_PARSING = 202, // "lenient-option-parsing" + S_TOPLEVEL_JSON = 203, // TOPLEVEL_JSON + S_TOPLEVEL_DHCP6 = 204, // TOPLEVEL_DHCP6 + S_SUB_DHCP6 = 205, // SUB_DHCP6 + S_SUB_INTERFACES6 = 206, // SUB_INTERFACES6 + S_SUB_SUBNET6 = 207, // SUB_SUBNET6 + S_SUB_POOL6 = 208, // SUB_POOL6 + S_SUB_PD_POOL = 209, // SUB_PD_POOL + S_SUB_RESERVATION = 210, // SUB_RESERVATION + S_SUB_OPTION_DEFS = 211, // SUB_OPTION_DEFS + S_SUB_OPTION_DEF = 212, // SUB_OPTION_DEF + S_SUB_OPTION_DATA = 213, // SUB_OPTION_DATA + S_SUB_HOOKS_LIBRARY = 214, // SUB_HOOKS_LIBRARY + S_SUB_DHCP_DDNS = 215, // SUB_DHCP_DDNS + S_SUB_CONFIG_CONTROL = 216, // SUB_CONFIG_CONTROL + S_STRING = 217, // "constant string" + S_INTEGER = 218, // "integer" + S_FLOAT = 219, // "floating point" + S_BOOLEAN = 220, // "boolean" + S_YYACCEPT = 221, // $accept + S_start = 222, // start + S_223_1 = 223, // $@1 + S_224_2 = 224, // $@2 + S_225_3 = 225, // $@3 + S_226_4 = 226, // $@4 + S_227_5 = 227, // $@5 + S_228_6 = 228, // $@6 + S_229_7 = 229, // $@7 + S_230_8 = 230, // $@8 + S_231_9 = 231, // $@9 + S_232_10 = 232, // $@10 + S_233_11 = 233, // $@11 + S_234_12 = 234, // $@12 + S_235_13 = 235, // $@13 + S_236_14 = 236, // $@14 + S_value = 237, // value + S_sub_json = 238, // sub_json + S_map2 = 239, // map2 + S_240_15 = 240, // $@15 + S_map_value = 241, // map_value + S_map_content = 242, // map_content + S_not_empty_map = 243, // not_empty_map + S_list_generic = 244, // list_generic + S_245_16 = 245, // $@16 + S_list_content = 246, // list_content + S_not_empty_list = 247, // not_empty_list + S_list_strings = 248, // list_strings + S_249_17 = 249, // $@17 + S_list_strings_content = 250, // list_strings_content + S_not_empty_list_strings = 251, // not_empty_list_strings + S_unknown_map_entry = 252, // unknown_map_entry + S_syntax_map = 253, // syntax_map + S_254_18 = 254, // $@18 + S_global_object = 255, // global_object + S_256_19 = 256, // $@19 + S_global_object_comma = 257, // global_object_comma + S_sub_dhcp6 = 258, // sub_dhcp6 + S_259_20 = 259, // $@20 + S_global_params = 260, // global_params + S_global_param = 261, // global_param + S_data_directory = 262, // data_directory + S_263_21 = 263, // $@21 + S_preferred_lifetime = 264, // preferred_lifetime + S_min_preferred_lifetime = 265, // min_preferred_lifetime + S_max_preferred_lifetime = 266, // max_preferred_lifetime + S_valid_lifetime = 267, // valid_lifetime + S_min_valid_lifetime = 268, // min_valid_lifetime + S_max_valid_lifetime = 269, // max_valid_lifetime + S_renew_timer = 270, // renew_timer + S_rebind_timer = 271, // rebind_timer + S_calculate_tee_times = 272, // calculate_tee_times + S_t1_percent = 273, // t1_percent + S_t2_percent = 274, // t2_percent + S_cache_threshold = 275, // cache_threshold + S_cache_max_age = 276, // cache_max_age + S_decline_probation_period = 277, // decline_probation_period + S_ddns_send_updates = 278, // ddns_send_updates + S_ddns_override_no_update = 279, // ddns_override_no_update + S_ddns_override_client_update = 280, // ddns_override_client_update + S_ddns_replace_client_name = 281, // ddns_replace_client_name + S_282_22 = 282, // $@22 + S_ddns_replace_client_name_value = 283, // ddns_replace_client_name_value + S_ddns_generated_prefix = 284, // ddns_generated_prefix + S_285_23 = 285, // $@23 + S_ddns_qualifying_suffix = 286, // ddns_qualifying_suffix + S_287_24 = 287, // $@24 + S_ddns_update_on_renew = 288, // ddns_update_on_renew + S_ddns_use_conflict_resolution = 289, // ddns_use_conflict_resolution + S_hostname_char_set = 290, // hostname_char_set + S_291_25 = 291, // $@25 + S_hostname_char_replacement = 292, // hostname_char_replacement + S_293_26 = 293, // $@26 + S_store_extended_info = 294, // store_extended_info + S_statistic_default_sample_count = 295, // statistic_default_sample_count + S_statistic_default_sample_age = 296, // statistic_default_sample_age + S_server_tag = 297, // server_tag + S_298_27 = 298, // $@27 + S_parked_packet_limit = 299, // parked_packet_limit + S_allocator = 300, // allocator + S_301_28 = 301, // $@28 + S_pd_allocator = 302, // pd_allocator + S_303_29 = 303, // $@29 + S_early_global_reservations_lookup = 304, // early_global_reservations_lookup + S_ip_reservations_unique = 305, // ip_reservations_unique + S_reservations_lookup_first = 306, // reservations_lookup_first + S_interfaces_config = 307, // interfaces_config + S_308_30 = 308, // $@30 + S_sub_interfaces6 = 309, // sub_interfaces6 + S_310_31 = 310, // $@31 + S_interfaces_config_params = 311, // interfaces_config_params + S_interfaces_config_param = 312, // interfaces_config_param + S_interfaces_list = 313, // interfaces_list + S_314_32 = 314, // $@32 + S_re_detect = 315, // re_detect + S_service_sockets_require_all = 316, // service_sockets_require_all + S_service_sockets_retry_wait_time = 317, // service_sockets_retry_wait_time + S_service_sockets_max_retries = 318, // service_sockets_max_retries + S_lease_database = 319, // lease_database + S_320_33 = 320, // $@33 + S_hosts_database = 321, // hosts_database + S_322_34 = 322, // $@34 + S_hosts_databases = 323, // hosts_databases + S_324_35 = 324, // $@35 + S_database_list = 325, // database_list + S_not_empty_database_list = 326, // not_empty_database_list + S_database = 327, // database + S_328_36 = 328, // $@36 + S_database_map_params = 329, // database_map_params + S_database_map_param = 330, // database_map_param + S_database_type = 331, // database_type + S_332_37 = 332, // $@37 + S_db_type = 333, // db_type + S_user = 334, // user + S_335_38 = 335, // $@38 + S_password = 336, // password + S_337_39 = 337, // $@39 + S_host = 338, // host + S_339_40 = 339, // $@40 + S_port = 340, // port + S_name = 341, // name + S_342_41 = 342, // $@41 + S_persist = 343, // persist + S_lfc_interval = 344, // lfc_interval + S_readonly = 345, // readonly + S_connect_timeout = 346, // connect_timeout + S_read_timeout = 347, // read_timeout + S_write_timeout = 348, // write_timeout + S_tcp_user_timeout = 349, // tcp_user_timeout + S_reconnect_wait_time = 350, // reconnect_wait_time + S_on_fail = 351, // on_fail + S_352_42 = 352, // $@42 + S_on_fail_mode = 353, // on_fail_mode + S_max_row_errors = 354, // max_row_errors + S_max_reconnect_tries = 355, // max_reconnect_tries + S_trust_anchor = 356, // trust_anchor + S_357_43 = 357, // $@43 + S_cert_file = 358, // cert_file + S_359_44 = 359, // $@44 + S_key_file = 360, // key_file + S_361_45 = 361, // $@45 + S_cipher_list = 362, // cipher_list + S_363_46 = 363, // $@46 + S_sanity_checks = 364, // sanity_checks + S_365_47 = 365, // $@47 + S_sanity_checks_params = 366, // sanity_checks_params + S_sanity_checks_param = 367, // sanity_checks_param + S_lease_checks = 368, // lease_checks + S_369_48 = 369, // $@48 + S_extended_info_checks = 370, // extended_info_checks + S_371_49 = 371, // $@49 + S_mac_sources = 372, // mac_sources + S_373_50 = 373, // $@50 + S_mac_sources_list = 374, // mac_sources_list + S_mac_sources_value = 375, // mac_sources_value + S_duid_id = 376, // duid_id + S_string_id = 377, // string_id + S_host_reservation_identifiers = 378, // host_reservation_identifiers + S_379_51 = 379, // $@51 + S_host_reservation_identifiers_list = 380, // host_reservation_identifiers_list + S_host_reservation_identifier = 381, // host_reservation_identifier + S_hw_address_id = 382, // hw_address_id + S_flex_id = 383, // flex_id + S_relay_supplied_options = 384, // relay_supplied_options + S_385_52 = 385, // $@52 + S_dhcp_multi_threading = 386, // dhcp_multi_threading + S_387_53 = 387, // $@53 + S_multi_threading_params = 388, // multi_threading_params + S_multi_threading_param = 389, // multi_threading_param + S_enable_multi_threading = 390, // enable_multi_threading + S_thread_pool_size = 391, // thread_pool_size + S_packet_queue_size = 392, // packet_queue_size + S_hooks_libraries = 393, // hooks_libraries + S_394_54 = 394, // $@54 + S_hooks_libraries_list = 395, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 396, // not_empty_hooks_libraries_list + S_hooks_library = 397, // hooks_library + S_398_55 = 398, // $@55 + S_sub_hooks_library = 399, // sub_hooks_library + S_400_56 = 400, // $@56 + S_hooks_params = 401, // hooks_params + S_hooks_param = 402, // hooks_param + S_library = 403, // library + S_404_57 = 404, // $@57 + S_parameters = 405, // parameters + S_406_58 = 406, // $@58 + S_expired_leases_processing = 407, // expired_leases_processing + S_408_59 = 408, // $@59 + S_expired_leases_params = 409, // expired_leases_params + S_expired_leases_param = 410, // expired_leases_param + S_reclaim_timer_wait_time = 411, // reclaim_timer_wait_time + S_flush_reclaimed_timer_wait_time = 412, // flush_reclaimed_timer_wait_time + S_hold_reclaimed_time = 413, // hold_reclaimed_time + S_max_reclaim_leases = 414, // max_reclaim_leases + S_max_reclaim_time = 415, // max_reclaim_time + S_unwarned_reclaim_cycles = 416, // unwarned_reclaim_cycles + S_subnet6_list = 417, // subnet6_list + S_418_60 = 418, // $@60 + S_subnet6_list_content = 419, // subnet6_list_content + S_not_empty_subnet6_list = 420, // not_empty_subnet6_list + S_subnet6 = 421, // subnet6 + S_422_61 = 422, // $@61 + S_sub_subnet6 = 423, // sub_subnet6 + S_424_62 = 424, // $@62 + S_subnet6_params = 425, // subnet6_params + S_subnet6_param = 426, // subnet6_param + S_subnet = 427, // subnet + S_428_63 = 428, // $@63 + S_interface = 429, // interface + S_430_64 = 430, // $@64 + S_interface_id = 431, // interface_id + S_432_65 = 432, // $@65 + S_client_class = 433, // client_class + S_434_66 = 434, // $@66 + S_require_client_classes = 435, // require_client_classes + S_436_67 = 436, // $@67 + S_reservations_global = 437, // reservations_global + S_reservations_in_subnet = 438, // reservations_in_subnet + S_reservations_out_of_pool = 439, // reservations_out_of_pool + S_reservation_mode = 440, // reservation_mode + S_441_68 = 441, // $@68 + S_hr_mode = 442, // hr_mode + S_id = 443, // id + S_rapid_commit = 444, // rapid_commit + S_shared_networks = 445, // shared_networks + S_446_69 = 446, // $@69 + S_shared_networks_content = 447, // shared_networks_content + S_shared_networks_list = 448, // shared_networks_list + S_shared_network = 449, // shared_network + S_450_70 = 450, // $@70 + S_shared_network_params = 451, // shared_network_params + S_shared_network_param = 452, // shared_network_param + S_option_def_list = 453, // option_def_list + S_454_71 = 454, // $@71 + S_sub_option_def_list = 455, // sub_option_def_list + S_456_72 = 456, // $@72 + S_option_def_list_content = 457, // option_def_list_content + S_not_empty_option_def_list = 458, // not_empty_option_def_list + S_option_def_entry = 459, // option_def_entry + S_460_73 = 460, // $@73 + S_sub_option_def = 461, // sub_option_def + S_462_74 = 462, // $@74 + S_option_def_params = 463, // option_def_params + S_not_empty_option_def_params = 464, // not_empty_option_def_params + S_option_def_param = 465, // option_def_param + S_option_def_name = 466, // option_def_name + S_code = 467, // code + S_option_def_code = 468, // option_def_code + S_option_def_type = 469, // option_def_type + S_470_75 = 470, // $@75 + S_option_def_record_types = 471, // option_def_record_types + S_472_76 = 472, // $@76 + S_space = 473, // space + S_474_77 = 474, // $@77 + S_option_def_space = 475, // option_def_space + S_option_def_encapsulate = 476, // option_def_encapsulate + S_477_78 = 477, // $@78 + S_option_def_array = 478, // option_def_array + S_option_data_list = 479, // option_data_list + S_480_79 = 480, // $@79 + S_option_data_list_content = 481, // option_data_list_content + S_not_empty_option_data_list = 482, // not_empty_option_data_list + S_option_data_entry = 483, // option_data_entry + S_484_80 = 484, // $@80 + S_sub_option_data = 485, // sub_option_data + S_486_81 = 486, // $@81 + S_option_data_params = 487, // option_data_params + S_not_empty_option_data_params = 488, // not_empty_option_data_params + S_option_data_param = 489, // option_data_param + S_option_data_name = 490, // option_data_name + S_option_data_data = 491, // option_data_data + S_492_82 = 492, // $@82 + S_option_data_code = 493, // option_data_code + S_option_data_space = 494, // option_data_space + S_option_data_csv_format = 495, // option_data_csv_format + S_option_data_always_send = 496, // option_data_always_send + S_pools_list = 497, // pools_list + S_498_83 = 498, // $@83 + S_pools_list_content = 499, // pools_list_content + S_not_empty_pools_list = 500, // not_empty_pools_list + S_pool_list_entry = 501, // pool_list_entry + S_502_84 = 502, // $@84 + S_sub_pool6 = 503, // sub_pool6 + S_504_85 = 504, // $@85 + S_pool_params = 505, // pool_params + S_pool_param = 506, // pool_param + S_pool_entry = 507, // pool_entry + S_508_86 = 508, // $@86 + S_user_context = 509, // user_context + S_510_87 = 510, // $@87 + S_comment = 511, // comment + S_512_88 = 512, // $@88 + S_pd_pools_list = 513, // pd_pools_list + S_514_89 = 514, // $@89 + S_pd_pools_list_content = 515, // pd_pools_list_content + S_not_empty_pd_pools_list = 516, // not_empty_pd_pools_list + S_pd_pool_entry = 517, // pd_pool_entry + S_518_90 = 518, // $@90 + S_sub_pd_pool = 519, // sub_pd_pool + S_520_91 = 520, // $@91 + S_pd_pool_params = 521, // pd_pool_params + S_pd_pool_param = 522, // pd_pool_param + S_pd_prefix = 523, // pd_prefix + S_524_92 = 524, // $@92 + S_pd_prefix_len = 525, // pd_prefix_len + S_excluded_prefix = 526, // excluded_prefix + S_527_93 = 527, // $@93 + S_excluded_prefix_len = 528, // excluded_prefix_len + S_pd_delegated_len = 529, // pd_delegated_len + S_reservations = 530, // reservations + S_531_94 = 531, // $@94 + S_reservations_list = 532, // reservations_list + S_not_empty_reservations_list = 533, // not_empty_reservations_list + S_reservation = 534, // reservation + S_535_95 = 535, // $@95 + S_sub_reservation = 536, // sub_reservation + S_537_96 = 537, // $@96 + S_reservation_params = 538, // reservation_params + S_not_empty_reservation_params = 539, // not_empty_reservation_params + S_reservation_param = 540, // reservation_param + S_ip_addresses = 541, // ip_addresses + S_542_97 = 542, // $@97 + S_prefixes = 543, // prefixes + S_544_98 = 544, // $@98 + S_duid = 545, // duid + S_546_99 = 546, // $@99 + S_hw_address = 547, // hw_address + S_548_100 = 548, // $@100 + S_hostname = 549, // hostname + S_550_101 = 550, // $@101 + S_flex_id_value = 551, // flex_id_value + S_552_102 = 552, // $@102 + S_reservation_client_classes = 553, // reservation_client_classes + S_554_103 = 554, // $@103 + S_relay = 555, // relay + S_556_104 = 556, // $@104 + S_relay_map = 557, // relay_map + S_ip_address = 558, // ip_address + S_559_105 = 559, // $@105 + S_client_classes = 560, // client_classes + S_561_106 = 561, // $@106 + S_client_classes_list = 562, // client_classes_list + S_client_class_entry = 563, // client_class_entry + S_564_107 = 564, // $@107 + S_client_class_params = 565, // client_class_params + S_not_empty_client_class_params = 566, // not_empty_client_class_params + S_client_class_param = 567, // client_class_param + S_client_class_name = 568, // client_class_name + S_client_class_test = 569, // client_class_test + S_570_108 = 570, // $@108 + S_client_class_template_test = 571, // client_class_template_test + S_572_109 = 572, // $@109 + S_only_if_required = 573, // only_if_required + S_server_id = 574, // server_id + S_575_110 = 575, // $@110 + S_server_id_params = 576, // server_id_params + S_server_id_param = 577, // server_id_param + S_server_id_type = 578, // server_id_type + S_579_111 = 579, // $@111 + S_duid_type = 580, // duid_type + S_htype = 581, // htype + S_identifier = 582, // identifier + S_583_112 = 583, // $@112 + S_time = 584, // time + S_enterprise_id = 585, // enterprise_id + S_dhcp4o6_port = 586, // dhcp4o6_port + S_control_socket = 587, // control_socket + S_588_113 = 588, // $@113 + S_control_socket_params = 589, // control_socket_params + S_control_socket_param = 590, // control_socket_param + S_socket_type = 591, // socket_type + S_592_114 = 592, // $@114 + S_socket_name = 593, // socket_name + S_594_115 = 594, // $@115 + S_dhcp_queue_control = 595, // dhcp_queue_control + S_596_116 = 596, // $@116 + S_queue_control_params = 597, // queue_control_params + S_queue_control_param = 598, // queue_control_param + S_enable_queue = 599, // enable_queue + S_queue_type = 600, // queue_type + S_601_117 = 601, // $@117 + S_capacity = 602, // capacity + S_arbitrary_map_entry = 603, // arbitrary_map_entry + S_604_118 = 604, // $@118 + S_dhcp_ddns = 605, // dhcp_ddns + S_606_119 = 606, // $@119 + S_sub_dhcp_ddns = 607, // sub_dhcp_ddns + S_608_120 = 608, // $@120 + S_dhcp_ddns_params = 609, // dhcp_ddns_params + S_dhcp_ddns_param = 610, // dhcp_ddns_param + S_enable_updates = 611, // enable_updates + S_dep_qualifying_suffix = 612, // dep_qualifying_suffix + S_613_121 = 613, // $@121 + S_server_ip = 614, // server_ip + S_615_122 = 615, // $@122 + S_server_port = 616, // server_port + S_sender_ip = 617, // sender_ip + S_618_123 = 618, // $@123 + S_sender_port = 619, // sender_port + S_max_queue_size = 620, // max_queue_size + S_ncr_protocol = 621, // ncr_protocol + S_622_124 = 622, // $@124 + S_ncr_protocol_value = 623, // ncr_protocol_value + S_ncr_format = 624, // ncr_format + S_625_125 = 625, // $@125 + S_dep_override_no_update = 626, // dep_override_no_update + S_dep_override_client_update = 627, // dep_override_client_update + S_dep_replace_client_name = 628, // dep_replace_client_name + S_629_126 = 629, // $@126 + S_dep_generated_prefix = 630, // dep_generated_prefix + S_631_127 = 631, // $@127 + S_dep_hostname_char_set = 632, // dep_hostname_char_set + S_633_128 = 633, // $@128 + S_dep_hostname_char_replacement = 634, // dep_hostname_char_replacement + S_635_129 = 635, // $@129 + S_config_control = 636, // config_control + S_637_130 = 637, // $@130 + S_sub_config_control = 638, // sub_config_control + S_639_131 = 639, // $@131 + S_config_control_params = 640, // config_control_params + S_config_control_param = 641, // config_control_param + S_config_databases = 642, // config_databases + S_643_132 = 643, // $@132 + S_config_fetch_wait_time = 644, // config_fetch_wait_time + S_loggers = 645, // loggers + S_646_133 = 646, // $@133 + S_loggers_entries = 647, // loggers_entries + S_logger_entry = 648, // logger_entry + S_649_134 = 649, // $@134 + S_logger_params = 650, // logger_params + S_logger_param = 651, // logger_param + S_debuglevel = 652, // debuglevel + S_severity = 653, // severity + S_654_135 = 654, // $@135 + S_output_options_list = 655, // output_options_list + S_656_136 = 656, // $@136 + S_output_options_list_content = 657, // output_options_list_content + S_output_entry = 658, // output_entry + S_659_137 = 659, // $@137 + S_output_params_list = 660, // output_params_list + S_output_params = 661, // output_params + S_output = 662, // output + S_663_138 = 663, // $@138 + S_flush = 664, // flush + S_maxsize = 665, // maxsize + S_maxver = 666, // maxver + S_pattern = 667, // pattern + S_668_139 = 668, // $@139 + S_compatibility = 669, // compatibility + S_670_140 = 670, // $@140 + S_compatibility_params = 671, // compatibility_params + S_compatibility_param = 672, // compatibility_param + S_lenient_option_parsing = 673 // lenient_option_parsing }; }; @@ -2343,6 +2352,51 @@ switch (yykind) return symbol_type (token::TOKEN_CONNECT_TIMEOUT, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_READ_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_READ_TIMEOUT, std::move (l)); + } +#else + static + symbol_type + make_READ_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_READ_TIMEOUT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_WRITE_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_WRITE_TIMEOUT, std::move (l)); + } +#else + static + symbol_type + make_WRITE_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_WRITE_TIMEOUT, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TCP_USER_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_TCP_USER_TIMEOUT, std::move (l)); + } +#else + static + symbol_type + make_TCP_USER_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_TCP_USER_TIMEOUT, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -5403,8 +5457,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1352, ///< Last index in yytable_. - yynnts_ = 450, ///< Number of nonterminal symbols. + yylast_ = 1364, ///< Last index in yytable_. + yynnts_ = 453, ///< Number of nonterminal symbols. yyfinal_ = 30 ///< Termination state number. }; @@ -5471,10 +5525,10 @@ switch (yykind) 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217 + 215, 216, 217, 218, 219, 220 }; // Last valid token kind. - const int code_max = 472; + const int code_max = 475; if (t <= 0) return symbol_kind::S_YYEOF; @@ -5645,7 +5699,7 @@ switch (yykind) #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5649 "dhcp6_parser.h" +#line 5703 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 9928d91f63..ebb26c4b4d 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -78,6 +78,9 @@ using namespace std; LFC_INTERVAL "lfc-interval" READONLY "readonly" CONNECT_TIMEOUT "connect-timeout" + READ_TIMEOUT "read-timeout" + WRITE_TIMEOUT "write-timeout" + TCP_USER_TIMEOUT "tcp-user-timeout" MAX_RECONNECT_TRIES "max-reconnect-tries" RECONNECT_WAIT_TIME "reconnect-wait-time" ON_FAIL "on-fail" @@ -963,6 +966,9 @@ database_map_param: database_type | lfc_interval | readonly | connect_timeout + | read_timeout + | write_timeout + | tcp_user_timeout | max_reconnect_tries | reconnect_wait_time | on_fail @@ -1053,6 +1059,25 @@ connect_timeout: CONNECT_TIMEOUT COLON INTEGER { ctx.stack_.back()->set("connect-timeout", n); }; +read_timeout: READ_TIMEOUT COLON INTEGER { + ctx.unique("read-timeout", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("connect-timeout", n); +}; + +write_timeout: WRITE_TIMEOUT COLON INTEGER { + ctx.unique("write-timeout", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("write-timeout", n); +}; + +tcp_user_timeout: TCP_USER_TIMEOUT COLON INTEGER { + ctx.unique("tcp-user-timeout", ctx.loc2pos(@1)); + ElementPtr n(new IntElement($3, ctx.loc2pos(@3))); + ctx.stack_.back()->set("tcp-user-timeout", n); +}; + + reconnect_wait_time: RECONNECT_WAIT_TIME COLON INTEGER { ctx.unique("reconnect-wait-time", ctx.loc2pos(@1)); ElementPtr n(new IntElement($3, ctx.loc2pos(@3)));