]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[master] Finishing merge of trac5097 (migrate pool config)
authorFrancis Dupont <fdupont@isc.org>
Wed, 25 Jan 2017 14:14:01 +0000 (15:14 +0100)
committerFrancis Dupont <fdupont@isc.org>
Wed, 25 Jan 2017 14:14:01 +0000 (15:14 +0100)
15 files changed:
1  2 
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_lexer.ll
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/dhcp4_parser.yy
src/bin/dhcp4/json_config_parser.cc
src/bin/dhcp4/tests/config_parser_unittest.cc
src/bin/dhcp6/dhcp6_lexer.cc
src/bin/dhcp6/dhcp6_lexer.ll
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/dhcp6_parser.yy
src/bin/dhcp6/json_config_parser.cc
src/lib/dhcpsrv/parsers/dhcp_parsers.cc
src/lib/dhcpsrv/parsers/dhcp_parsers.h

index 770ae19699a2344d06650d35bd87819b12db3c5b,957c71e1e02de39d39336dd436628c00c4c9148b..be8c1ef449629639e528f511a73815aa0c8896e7
@@@ -476,135 -476,108 +476,134 @@@ struct yy_trans_inf
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
- static yyconst flex_int16_t yy_accept[1152] =
 -static yyconst flex_int16_t yy_accept[910] =
++static yyconst flex_int16_t yy_accept[1147] =
      {   0,
 -      110,  110,    0,    0,    0,    0,    0,    0,    0,    0,
 -      118,  116,   10,   11,  116,    1,  110,  107,  110,  110,
 -      116,  109,  108,  116,  116,  116,  116,  116,  103,  104,
 -      116,  116,  116,  105,  106,    5,    5,    5,  116,  116,
 -      116,   10,   11,    0,    0,   99,    0,    0,    0,    0,
 +      133,  133,    0,    0,    0,    0,    0,    0,    0,    0,
 +      141,  139,   10,   11,  139,    1,  133,  130,  133,  133,
 +      139,  132,  131,  139,  139,  139,  139,  139,  126,  127,
 +      139,  139,  139,  128,  129,    5,    5,    5,  139,  139,
 +      139,   10,   11,    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,    1,  110,
 -      110,    0,  109,  110,    3,    2,    6,    0,  110,    0,
 -        0,    0,    0,    0,    0,    4,    0,    0,    9,    0,
 -      100,    0,    0,    0,    0,    0,  102,    0,    0,    0,
 -
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    1,  133,  133,
 +        0,  132,  133,    3,    2,    6,    0,  133,    0,    0,
 +        0,    0,    0,    0,    4,    0,    0,    9,    0,  123,
 +
          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,    2,    0,    0,    0,    0,    0,    0,
 -        0,    8,    0,    0,    0,    0,    0,  101,    0,    0,
          0,    0,    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,  124,    0,
 -        0,   42,    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,  124,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  
-         0,    0,    0,    0,    0,   46,    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,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -      115,  113,    0,  112,  111,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,    0,  138,
++      136,    0,  135,  134,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,  104,    0,  103,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       138,  136,    0,  135,  134,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,  104,    0,  103,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   25,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 +
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   15,    0,
++        0,    0,    0,    0,    0,   15,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,   16,    0,    0,    0,  137,
-       134,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       105,    0,    0,  107,    0,    0,    0,    0,    0,    0,
-         0,    0,   49,    0,    0,    0,   40,    0,    0,    0,
-         0,   61,    0,    0,    0,    0,    0,    0,    0,    0,
-        28,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,   39,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,   42,    0,    0,    0,
++        0,    0,    0,   16,    0,    0,    0,  137,  134,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,  105,    0,
++        0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
++       44,    0,    0,   35,    0,    0,    0,    0,   56,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,   24,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,   59,   21,    0,   26,    0,
-         0,    0,    0,    0,    0,   12,  112,    0,  109,    0,
-       108,    0,    0,    0,    0,   70,    0,    0,    0,    0,
 -        0,   15,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
 -        0,  114,  111,    0,    0,    0,    0,    0,    0,    0,
 -
 -        0,    0,    0,    0,    0,    0,   45,    0,    0,   35,
 -        0,    0,    0,    0,   57,    0,    0,    0,    0,    0,
 -        0,    0,   24,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,   34,    0,    0,
++
++        0,    0,    0,    0,   34,    0,    0,    0,    0,    0,
+         0,    0,    0,    0,   37,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    0,    0,   55,
 -       75,   21,    0,   22,    0,    0,    0,    0,    0,    0,
 -       12,   89,    0,    0,   66,    0,    0,    0,    0,    0,
+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,   74,    0,    0,    0,    0,
++        0,    0,   54,   74,   21,    0,   22,    0,    0,    0,
++        0,    0,    0,   12,  112,    0,  109,    0,  108,    0,
++        0,    0,    0,   65,    0,    0,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   73,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   41,
++        0,    0,    0,    0,    0,    0,    0,   36,    0,    0,
  
-         0,    0,    0,    0,    0,    0,    0,   71,    0,    0,
-         0,    0,    0,    0,    0,   66,    0,    0,    0,    7,
-         0,    0,  110,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,   66,    0,    0,    0,    0,    0,
++        0,    0,   61,    0,    0,    0,    7,    0,    0,  110,
+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,   36,    0,    0,    0,    0,    0,   67,    0,
 -        0,    0,    0,    0,   62,    0,    0,    0,    0,    7,
+         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,   50,    0,    0,    0,
++        0,    0,    0,   49,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,   54,    0,    0,    0,
 -        0,   39,    0,    0,    0,    0,    0,    0,    0,   47,
++        0,    0,   38,    0,    0,    0,    0,    0,    0,   46,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,   43,    0,    0,    0,
-         0,    0,    0,   51,    0,    0,    0,    0,    0,    0,
  
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,   71,   48,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,   75,   52,    0,    0,
-         0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
-        29,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
-         0,    0,    0,    0,  113,    0,    0,    0,    0,    0,
++        0,    0,    0,   70,   47,    0,    0,    0,    0,    0,
+         0,    0,    0,    0,    0,    0,   25,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    0,    0,   31,
 -        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,   61,    0,    0,    0,    0,
++        0,    0,    0,    0,   31,    0,    0,    0,    0,  113,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        65,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   27,    0,
-         0,    0,   20,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,   56,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   63,    0,
-         0,    0,    0,    0,   87,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   44,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   60,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,   92,    0,    0,   90,    0,
-         0,    0,    0,    0,    0,  116,    0,    0,    0,    0,
 -       23,    0,   20,    0,    0,    0,    0,    0,    0,    0,
 -       52,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  
-         0,   64,    0,    0,    0,   67,   55,    0,    0,    0,
 -        0,   59,    0,    0,    0,    0,   88,    0,    0,    0,
++        0,    0,    0,    0,   23,    0,    0,   20,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        62,    0,   17,    0,   72,    0,    0,    0,    0,    0,
-        96,    0,    0,    0,   37,    0,    0,    0,   74,   24,
 -       40,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++       51,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,   58,    0,    0,    0,    0,   87,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -       72,    0,    0,    0,    0,    0,    0,   93,    0,   60,
 -        0,    0,   63,   51,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,   58,   73,    0,   17,
 -        0,   68,    0,    0,    0,    0,    0,    0,   32,    0,
 -       70,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   39,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   69,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,  119,   38,    0,    0,    0,
-         0,    0,    0,    0,    0,   33,    0,    0,    0,   93,
-         0,   91,   86,   85,    0,    0,    0,    0,  106,    0,
-         0,    0,   58,    0,    0,    0,    0,    0,   83,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   45,    0,
-         0,   30,    0,    0,    0,    0,   95,    0,    0,    0,
-         0,   47,   34,    0,   68,    0,    0,   60,    0,    0,
-         0,  114,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,   92,    0,    0,   71,   90,    0,    0,    0,    0,
++        0,    0,  116,    0,    0,    0,    0,    0,   59,    0,
 -        0,   65,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,   96,   33,    0,    0,    0,
 -        0,    0,   28,    0,    0,    0,   87,   86,    0,    0,
 -        0,    0,    0,   54,    0,    0,    0,    0,   84,    0,
 -        0,    0,    0,    0,    0,    0,    0,   41,    0,    0,
 -       26,    0,    0,    0,    0,   43,   29,    0,   64,    0,
 -       56,    0,    0,   38,    0,   91,    0,    0,    0,    0,
 -        0,    0,    0,   76,    0,    0,    0,    0,    0,    0,
++        0,   62,   50,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,    0,   57,   72,    0,
++       17,    0,   67,    0,    0,    0,    0,    0,   96,    0,
++        0,    0,   32,    0,    0,    0,   69,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,   98,   53,   85,    0,    0,   94,    0,    0,
 -
 -        0,    0,    0,   19,    0,   18,    0,    0,    0,   49,
 -        0,    0,    0,    0,   27,    0,    0,    0,    0,    0,
 -        0,   69,    0,    0,   95,    0,    0,    0,    0,   97,
 -        0,   92,    0,   14,    0,    0,    0,    0,    0,    0,
 -       82,    0,   44,    0,    0,    0,    0,    0,    0,   13,
 -        0,    0,    0,    0,    0,    0,    0,    0,   81,    0,
 -        0,    0,    0,    0,   80,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   64,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,  121,   57,    0,   84,    0,    0,  117,   88,    0,
 -       78,   83,   30,    0,    0,    0,   77,    0,    0,    0,
--
-         0,    0,    0,    0,    0,   19,    0,   18,    0,   94,
-         0,    0,   53,    0,    0,    0,    0,    0,    0,    0,
-         0,   32,    0,    0,    0,    0,   31,    0,    0,    0,
-         0,    0,    0,   73,    0,    0,  118,    0,    0,    0,
-         0,    0,    0,    0,    0,  120,    0,  115,  111,    0,
-         0,    0,   14,    0,    0,  102,    0,    0,    0,    0,
-        81,    0,    0,    0,    0,    0,   48,    0,    0,    0,
-         0,    0,    0,    0,    0,   13,    0,    0,    0,   89,
 -        0,    0,    0,    0,   46,    0,    0,   79,    0
++        0,    0,  119,   33,    0,    0,    0,    0,    0,    0,
++        0,    0,   28,    0,    0,    0,   93,    0,   91,   86,
++
++       85,    0,    0,    0,    0,  106,    0,    0,    0,   53,
++        0,    0,    0,    0,   83,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   40,    0,    0,   26,    0,
++        0,    0,    0,   95,    0,    0,    0,    0,   42,   29,
++        0,   63,    0,    0,   55,    0,    0,    0,  114,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        80,    0,   99,    0,    0,    0,   98,   97,    0,    0,
-         0,   79,    0,    0,    0,  101,    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,    0,  121,   52,
++       84,    0,    0,  117,   88,    0,    0,    0,    0,    0,
++
++        0,   19,    0,   18,    0,   94,    0,    0,   48,    0,
++        0,    0,    0,    0,    0,    0,    0,   27,    0,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,   68,    0,
++        0,  118,    0,    0,    0,    0,    0,    0,    0,    0,
++      120,    0,  115,  111,    0,    0,    0,   14,    0,    0,
++      102,    0,    0,    0,    0,   81,    0,    0,    0,    0,
++        0,   43,    0,    0,    0,    0,    0,    0,    0,    0,
++       13,    0,    0,    0,   89,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   80,    0,   99,    0,    0,
++        0,   98,   97,    0,    0,    0,   79,    0,    0,    0,
++
++      101,    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,   77,   82,   35,    0,    0,    0,   76,    0,
-         0,    0,    0,    0,    0,    0,   50,    0,    0,   78,
-         0
++      100,    0,    0,    0,    0,    0,    0,   77,   82,   30,
++        0,    0,    0,   76,    0,    0,    0,    0,    0,    0,
++        0,   45,    0,    0,   78,    0
      } ;
  
  static yyconst YY_CHAR yy_ec[256] =
          5,    5,    5,    5,    5
      } ;
  
 -static yyconst YY_CHAR yy_meta[61] =
 +static yyconst YY_CHAR yy_meta[72] =
      {   0,
          1,    1,    2,    3,    3,    4,    3,    3,    3,    3,
 -        3,    3,    5,    6,    6,    6,    3,    3,    3,    3,
 -        6,    6,    6,    6,    6,    3,    3,    3,    3,    3,
 -        3,    3,    5,    3,    3,    6,    7,    6,    6,    6,
 -        7,    3,    3,    3,    3,    3,    3,    5,    3,    3,
 -        5,    3,    5,    5,    3,    3,    3,    3,    3,    3
 +        3,    3,    3,    5,    5,    5,    3,    3,    3,    3,
 +        5,    5,    5,    5,    5,    5,    3,    3,    3,    3,
 +        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 +        3,    3,    3,    5,    5,    5,    5,    5,    5,    3,
 +        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 +        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 +        3
      } ;
  
- static yyconst flex_uint16_t yy_base[1164] =
 -static yyconst flex_uint16_t yy_base[922] =
++static yyconst flex_uint16_t yy_base[1159] =
      {   0,
 -        0,    0,   59,   62,   65,    0,   63,   67,   64,   66,
 -     1213, 1214,   83, 1209,  125,    0,  174, 1214,  179,  185,
 -       80,  192, 1214, 1191,   87,   79,   37,   66, 1214, 1214,
 -       83,  156,  164, 1214, 1214, 1214,  110, 1197, 1161,    0,
 -     1189,  118, 1204,  190,  218, 1214, 1157, 1162, 1155,  247,
 -     1152, 1153,  178,  177,  164, 1155,  186,  190,  234, 1164,
 -      207,  195,  241,  210,  242,  245,  254, 1163,    0,  293,
 -      298,  309,  315,  320, 1214,    0, 1214,  326,  331,  202,
 -      253,  180,  302,  306,  232, 1214, 1160, 1191, 1214,  288,
 -     1214, 1142, 1179, 1156, 1151, 1186,    0,  347, 1140, 1141,
 -
 -     1138, 1144,  310, 1132, 1133,  199, 1147, 1140, 1140,  266,
 -     1132, 1127,  304, 1122, 1168,  212, 1125, 1166, 1140, 1137,
 -     1137, 1131,  258, 1125, 1114, 1117, 1116,  313, 1117, 1118,
 -      287,  343,  322, 1128, 1129, 1127, 1111, 1115, 1111, 1110,
 -     1103, 1118, 1111,    0,  322,  350,  335,  338,  352,  342,
 -     1110, 1214,    0, 1144, 1104, 1111, 1146, 1214,  385, 1115,
 -     1097, 1111, 1108, 1107, 1093, 1134, 1108, 1089, 1096, 1091,
 -     1101, 1090, 1102, 1097, 1092, 1083, 1095, 1088, 1079, 1081,
 -     1094, 1214, 1081, 1088, 1091, 1074, 1114, 1073, 1081, 1084,
 -     1110, 1080, 1066, 1074, 1067, 1080, 1063, 1062, 1067, 1068,
 -
 -     1105, 1071, 1065,  308, 1072, 1067, 1066, 1050, 1064, 1058,
 -     1064, 1053, 1047, 1059, 1058, 1091, 1060, 1044, 1050,  373,
 -     1214, 1214,  378, 1214, 1214, 1039,    0,  153,  388, 1048,
 -      413, 1033, 1079, 1035, 1040, 1081, 1035, 1044, 1078, 1041,
 -     1038,  401, 1075, 1069, 1029, 1027, 1026, 1033, 1064, 1022,
 -      408, 1033, 1033, 1018, 1019, 1030, 1028, 1023, 1030, 1025,
 -     1021, 1012, 1056, 1050, 1011, 1005, 1011, 1001, 1012,  245,
 -     1016, 1214, 1005, 1005, 1016, 1000,  992,  993,  997, 1007,
 -      995, 1005, 1004, 1003, 1036, 1035, 1034, 1214,  988,  110,
 -      999, 1214, 1214,  998,    0,  988,  981, 1028, 1027,  993,
 -
 -      983,  447, 1024,  988,  984,  974, 1214,  977,  976, 1214,
 -      978,  975,  353,  973, 1214,  983,  968,  969,  978, 1006,
 -      965, 1004, 1214,  963,  977, 1001, 1005,  971,  965,  967,
 -      968,  995,  957,  953,  952,  991,  961, 1214,  948,  951,
 -      945,  957,  947,  943, 1214,  988,  982,  944,  952,  946,
 -      950,  982,  976,  931,  934,  940,  930,  976,  928, 1214,
 -     1214, 1214,  932, 1214,  941,  967,  937,    0,  923,  938,
 -     1214, 1214,  926,  931, 1214,  928,  918,  959,  923,  917,
 -      927,  926,  926,  915,  947,  916,  907,  909,  920,  907,
 -      917,  910,  915,  907,  914, 1214,  901,  910,  914,  898,
 -
 -      909,  894,  888,  893,  906,  905,  902,  930,  270,  887,
 -      888,  885, 1214,  899,  890,  924,  887,  922, 1214,  879,
 -      895,  919,  876,  917, 1214,  424,  887,  877,  879, 1214,
 -      884,  875,  870,  915,  874,  908,  402,  907,  870,  861,
 -      904,  866,  875,  901,  867,  864,  865,  897,  867,  868,
 -      861,  852,  863,  866,  861,  856,  861,  858,  861,  856,
 -      889,  888,  847,  846,  840,  851, 1214,  840,  848,  848,
 -      880,  836,  826,  830,  871,  828,  836,  826,  350,  820,
 -      367, 1214,  871,  837,  827,  830,  822,  832,  865, 1214,
 -      830,  825,  822,  828,  814,  829,  824,  813,  810,  816,
 -
 -      810,  819,  822,  805,  810,  817,  808,  816,  812,  845,
 -      797,  797,  808,  807,  794,  792,  793, 1214, 1214,  799,
 -      806,  786,  405,  790,  788,  832, 1214,  790,  830,  791,
 -      781,  775,  785,  787,  781,  790,  822,  791,  768, 1214,
 -      814,  771,  782,  781,  768, 1214,  809,  780,  782,  811,
 -      767,  762,  768,  762,  806,  771,  761,  761,  755,  767,
 -      766,  759,  768,  752,  751, 1214,  765,  748,  748,  437,
 -      746,  761,  741,  755,  750,  753,  739,  750,  737,  737,
 -     1214,  741, 1214,  740,  742,  735,  744,  734,  730,  775,
 -     1214,  733,  729,  727,  737,  736,  739,  768,  725,  766,
 -
 -      719, 1214,  732,  763,  762,  718, 1214,  713,  714,  711,
 -      723,  751,  725,  724,  715,  722,  702,  719,  749,  748,
 -     1214,  709,  436,  746,  714,  714,  701,  701,  696,  710,
 -      739,  700,  737,  698,  701,  693,  699,  687,  689,  683,
 -     1214,  695,  694,  693,  675,  678,  692, 1214,  693, 1214,
 -      676,  682, 1214, 1214,  689,  714,  671,  712,  716,  677,
 -      668,  661,  650,  627,  640,  633, 1214, 1214,   84, 1214,
 -      188, 1214,  251,  270,  273,  406,  425,  426, 1214,  384,
 -     1214,  391,  404,  417,  406,  453,  453,  417,  460,  461,
 -      435,  421,  431,  436,  430,  472,  439,  444,  428,  476,
 -
 -      446, 1214,  452,  452,  446,  454,  451,  443,  445,  492,
 -      450,  448,  495,  491,  457, 1214, 1214,  456,  500,  501,
 -      457,  503, 1214,  464,  507,  478, 1214, 1214,  469,  510,
 -      470,  512,  479, 1214,  468,  468,  469,  466, 1214,  486,
 -      520,  475,  488,  490,  490,  487,  492, 1214,  485,  494,
 -     1214,  491,  496,  493,  486, 1214, 1214,  528, 1214,  491,
 -     1214,  494,  506, 1214,  503, 1214,  500,  539,  540,  541,
 -      504,  499,  544, 1214,  540,  513,  542,  502,  506,  550,
 -      516,  552,  520,  524,  514,  556,  507,  525,  525,  522,
 -      561,  529, 1214, 1214, 1214,  520,  530, 1214,  521,  561,
 -
 -      520,  568,  527, 1214,  532, 1214,  571,  526,  539, 1214,
 -      544,  541,  576,  536, 1214,  578,  537,  580,  536,  535,
 -      545, 1214,  579,  549, 1214,  552,  587,  550,  589, 1214,
 -      585, 1214,  586, 1214,  549,  555,  553,  557,  596,  551,
 -     1214,  551, 1214,  567,  556,  569,  561,  569,  571, 1214,
 -      605,  601,  555,  574,  575,  576,  611,  578, 1214,  566,
 -      582,  570,  570,  572, 1214,  576,  581,  580,  583,  576,
 -      618,  577,  584,  592,  584,  590,  579,  592,  597,  586,
 -      600,  592,  605,  601,  637,  638,  639,  604,  603,  604,
 -     1214, 1214, 1214,  643,  597,  611, 1214,  641,  602,  601,
 -
 -      603,  612,  651,  611, 1214,  619,  654, 1214, 1214,  660,
 -      667,  674,  681,  688,  695,  699,  704,  706,  708,  710,
 -      712
 +        0,   70,   19,   29,   41,   49,   52,   58,   87,   95,
-      1513, 1514,   32, 1509,  141,    0,  201, 1514,  206,   88,
-        11,  213, 1514, 1491,  114,   25,    2,    6, 1514, 1514,
-        73,   11,   17, 1514, 1514, 1514,  104, 1497, 1452,    0,
-      1489,  107, 1504,  217,  247, 1514, 1448,  185, 1454,   93,
-        58, 1446,   91,  209,  200,   14,  273,  190, 1445,  181,
-       186,  189,  223, 1454,   66,  206,  232,  204,  294,  256,
-       216, 1437,   78,  268,  300,  300, 1456,    0,  329,  344,
-       356,  364,  359, 1514,    0, 1514,  273,  335,  300,  335,
-       289,  353,  354,  299, 1514, 1453, 1492, 1514,  260, 1514,
-       375, 1481,  328, 1450,  356,  355, 1445,  350,  359,  357,
-       363,  371, 1488,    0,  426,  359, 1432, 1434, 1430, 1438,
-        74, 1434, 1423, 1424,   89, 1440, 1433, 1433,  213, 1424,
-      1418, 1424,  343, 1469, 1473, 1415, 1466, 1432, 1429, 1429,
-      1423,  336, 1416, 1409, 1414, 1408,  363, 1405, 1404, 1418,
-       365, 1404,  344, 1420,  351,  399,  372, 1417, 1418, 1416,
-      1398, 1400,  372, 1392, 1409, 1401,    0,  400,  424,  398,
-       401,  426,  432, 1400, 1514,    0, 1443,  438, 1394,  426,
-       434, 1402,  441, 1445,  442, 1444,  435, 1443, 1514,  479,
-      1390,  455, 1403, 1383, 1399, 1396, 1395,  420, 1436, 1430,
-      1396, 1375, 1383, 1378, 1389, 1377, 1389, 1389, 1380, 1369,
-      1382, 1382, 1374, 1364, 1382, 1514, 1377, 1380, 1361, 1411,
-      1360, 1370, 1373, 1407, 1368, 1356, 1367, 1403, 1350, 1360,
-      1352, 1349, 1365, 1346, 1345, 1351, 1342, 1349, 1351, 1396,
-      1354, 1348,  273, 1355, 1350, 1342, 1348, 1348, 1329, 1345,
-      1338, 1345, 1333, 1326, 1340, 1381, 1342, 1324, 1332,  459,
-      1514, 1514,  460, 1514, 1514, 1319,    0,  416,  430,  494,
-       471, 1376, 1329,  453, 1514, 1374, 1514, 1368,  515, 1312,
-       448, 1309, 1365, 1311, 1317, 1367, 1324, 1310, 1514, 1321,
-      1363, 1318, 1315,  500, 1360, 1354, 1309, 1304, 1301, 1310,
-      1299, 1348, 1296,  511, 1310, 1295, 1308, 1306, 1301, 1308,
-      1303, 1299,  452, 1297, 1293, 1341,  483, 1335, 1287, 1280,
-      1282, 1286, 1275, 1288,  491, 1289, 1286, 1290, 1514, 1278,
-      1278, 1290, 1272, 1264, 1265, 1286, 1268, 1280, 1279, 1265,
-      1277, 1276, 1275, 1316, 1315, 1514, 1259, 1313, 1271, 1514,
-      1514, 1270,    0, 1259, 1251,  472, 1308, 1307, 1265, 1305,
-      1514, 1253, 1303, 1514,  513,  560, 1297,  486, 1301, 1257,
-      1253, 1241, 1514, 1257, 1244, 1243, 1514, 1245, 1242,  488,
-      1240, 1514, 1251, 1248, 1233, 1246, 1282, 1248, 1230, 1279,
-      1514, 1228, 1244, 1276, 1239, 1236, 1237, 1272, 1225, 1220,
-      1219, 1268, 1214, 1229, 1221, 1269, 1514, 1216, 1212, 1210,
-      1214, 1207, 1217, 1220, 1209, 1204, 1514, 1259, 1203, 1214,
-      1251, 1204, 1213, 1207, 1211, 1251, 1245, 1209, 1189, 1192,
-      1191, 1199, 1187, 1243, 1185, 1514, 1514, 1190, 1514, 1235,
-      1197,    0, 1181, 1198, 1236, 1514, 1514, 1184, 1514, 1190,
-      1514,  513,  488, 1193,  540, 1514, 1186, 1174, 1225, 1172,
-      1179, 1172, 1184, 1183, 1183, 1171, 1212, 1172, 1215, 1161,
-      1177, 1162, 1159, 1173, 1165, 1171, 1162, 1170, 1155, 1171,
-      1153, 1166, 1149, 1143, 1148, 1163, 1160, 1161, 1158, 1514,
-      1144, 1146, 1155, 1191,  546, 1154, 1137, 1138, 1135, 1514,
-      1149, 1128, 1149, 1139, 1182, 1136, 1180, 1514, 1127, 1141,
-      1144, 1176, 1175, 1122, 1173, 1514,   14, 1135, 1127, 1514,
-      1133, 1123, 1514, 1117, 1172,  530,  508, 1122, 1124, 1120,
-      1163,  542, 1162, 1161, 1115, 1105, 1158, 1111, 1121, 1155,
-      1113, 1100, 1108, 1151, 1113, 1112, 1113, 1106, 1095, 1108,
-      1111, 1106, 1107, 1104, 1107, 1102, 1143, 1142, 1092, 1082,
-      1090, 1138, 1087, 1079, 1080, 1093, 1514, 1081, 1090, 1089,
-      1089, 1129, 1072, 1081, 1074, 1063, 1067, 1118, 1065, 1075,
-      1115, 1062,  495,  528, 1056,  533, 1514, 1117, 1075, 1069,
-      1059, 1071, 1112, 1514, 1106,  533, 1064, 1058, 1066, 1061,
-      1057, 1064, 1047, 1047, 1064, 1059, 1047, 1043, 1050, 1044,
-      1054, 1042, 1056, 1044, 1052, 1050, 1041, 1050, 1046, 1087,
-      1029, 1029, 1042, 1027, 1025, 1026, 1514, 1514, 1034, 1037,
-      1040, 1514, 1039, 1024, 1016,  553, 1021, 1068, 1017, 1071,
-      1514, 1016, 1018, 1018, 1067, 1020, 1008, 1002, 1013, 1022,
-      1015, 1007, 1007, 1006, 1004, 1004, 1055, 1016,  991, 1514,
-      1047, 1008, 1007,  992, 1514,  559,  530, 1006, 1007, 1041,
-      1004, 1006, 1043,  996,  989,  983,  990,  983, 1037,  994,
-       983,  983,  992,  975,  989,  981, 1024,  990,  972,  971,
-      1514,  987,  968,  592,  967,  984,  962,  978, 1014,  972,
-       960,  976,  973,  957,  970,  955,  295,  955, 1514,  961,
-       965,    3, 1514,   12,   86,  210,  269,  284,  499,  552,
-       505,  507,  571,  531, 1514,  543,  541,  541,  562,  567,
-       606,  580,  585,  557,  561,  560,  613,  558, 1514,  565,
-       576,  617,  618,  567, 1514,  563,  566,  565,  585,  582,
-       587,  588,  574,  582,  591,  571,  592,  632, 1514,  587,
-       634,  637,  599,  602,  590,  586,  593,  644,  593,  591,
-       609,  649,  604,  602,  600,  653,  654,  650,  610,  615,
-       608,  617,  605,  615,  611, 1514,  606,  607, 1514,  608,
-       624,  625,  626,  612,  630, 1514,  652,  643,  616,  616,
-       637, 1514,  620,  635,  630, 1514, 1514,  640,  675,  624,
-       677,  626,  684,  629,  640,  632,  638,  634,  652,  653,
-      1514,  651, 1514,  653, 1514,  657,  647,  640,  652,  694,
-      1514,  652,  702,  703, 1514,  652,  659,  701, 1514, 1514,
-       651,  651,  654,  668,  655,  712,  671,  709,  715,  665,
-       717,  718,  719,  680,  675,  680,  695,  724,  720,  685,
-       677,  728,  677,  688,  693,  675,  733,  688,  693, 1514,
-       694,  687,  696,  697,  694,  684,  686,  743,  692,  689,
-       746,  742,  685,  700,  750, 1514, 1514,  701,  711,  696,
-       697,  756,  758,  704,  760, 1514,  710,  712,  763, 1514,
-       726, 1514, 1514, 1514,  717,  717,  768,  750, 1514,  713,
-       730,  732, 1514,  719,  718,  720,  721,  717, 1514,  739,
-       725,  726,  741,  741,  744,  744,  741,  746, 1514,  738,
-       748, 1514,  745,  751,  752,  749, 1514,  740,  746,  745,
-       756, 1514, 1514,  795, 1514,  744,  750, 1514,  753,  766,
-       763, 1514,  760,  783,  755,  804,  810,  811,  755,  813,
-       768,  762,  816,  817,  813,  778,  774,  816,  766,  771,
-       824,  782,  826,  786,  828,  791,  780,  831,  775,  792,
-       792,  776,  832,  797,  797,  794,  841,  801,  814,  803,
-       802, 1514, 1514,  846, 1514,  795,  806, 1514, 1514,  796,
-       845,  790,  795,  853,  803, 1514,  809, 1514,  856, 1514,
-       801,  816, 1514,  854,  822,  815,  824,  812,  822,  865,
-       816, 1514,  867,  868,  831,  816, 1514,  821,  873,  819,
-       818,  876,  831, 1514,  873,  835, 1514,  838,  881,  824,
-       826,  823,  839,  848,  887, 1514,  883, 1514, 1514,  832,
-       849,  886, 1514,  840,  847, 1514,  844,  849,  896,  841,
-      1514,  845,  857,  900,  844,  852, 1514,  863,  862,  854,
-       853,  867,  858,  867,  869, 1514,  911,  871,  913, 1514,
-       909,  873,  854,  917,  918,  877,  878,  879,  922,  881,
-      1514,  886, 1514,  868,  926,  887, 1514, 1514,  873,  873,
-       875, 1514,  880,  875,  887, 1514,  885,  889,  880,  932,
-       881,  897,  890,  899,  890,  897,  884,  899,  946,  905,
-       892,  908,  899,  913,  909, 1514,  953,  954,  955,  912,
-       911,  912, 1514, 1514, 1514,  959,  903,  919, 1514,  957,
-       908,  907,  909,  920,  967,  918, 1514,  927,  970, 1514,
-      1514,  976,  981,  986,  991,  996, 1001, 1006, 1009,  983,
-       988,  990, 1003
++     1508, 1509,   32, 1504,  141,    0,  201, 1509,  206,   88,
++       11,  213, 1509, 1486,  114,   25,    2,    6, 1509, 1509,
++       73,   11,   17, 1509, 1509, 1509,  104, 1492, 1447,    0,
++     1484,  107, 1499,  217,  247, 1509, 1443,  185, 1449,   93,
++       58, 1441,   91,  209,  200,   14,  273,  190, 1440,  181,
++      186,  189,  223, 1449,   68,  206,  232, 1452,  294,  256,
++      216, 1431,  204,  268,  300,  300, 1450,    0,  329,  344,
++      356,  364,  359, 1509,    0, 1509,  273,  335,  300,  335,
++      205,  353,  354,  289, 1509, 1447, 1486, 1509,  260, 1509,
++
++      375, 1475,  297, 1444,  356,  308, 1439,  349,  359,  351,
++      362,  371, 1482,    0,  426,  362, 1426, 1428, 1424, 1432,
++       75, 1418, 1419,  352, 1435, 1428, 1428,  359, 1419, 1413,
++     1419,  344, 1407, 1463,  387, 1410, 1461, 1427, 1424, 1424,
++     1418,  360, 1411, 1405,  364, 1402, 1401, 1415,  364, 1401,
++     1403, 1416,  371,  399,  398, 1413, 1414, 1412, 1394, 1399,
++     1395,  401, 1387, 1404, 1396,    0,  400,  424,  421,  423,
++      435,  440, 1395, 1509,    0, 1438,  445, 1389,  433,  446,
++     1397,  443, 1440,  452, 1439,  448, 1438, 1509,  492, 1385,
++      460, 1398, 1378, 1394, 1391, 1390, 1374, 1425, 1391, 1370,
++
++     1378, 1373, 1384, 1372, 1384, 1384, 1379, 1374, 1363, 1376,
++     1376, 1368, 1358, 1361, 1375, 1509, 1361, 1369, 1372, 1353,
++     1403, 1352, 1362, 1365, 1399, 1361, 1397, 1344, 1354, 1346,
++     1343, 1359, 1340, 1339, 1345, 1344, 1346, 1391, 1349, 1343,
++       66, 1350, 1345, 1337, 1343, 1343, 1324, 1340, 1333, 1340,
++     1328, 1321, 1335, 1334, 1375, 1336, 1318, 1326,  461, 1509,
++     1509,  462, 1509, 1509, 1313,    0,  279,  443,  468,  471,
++     1370, 1323,  460, 1509, 1368, 1509, 1362,  528, 1306,  455,
++     1303, 1359, 1305, 1311, 1361, 1305, 1316, 1358, 1313, 1310,
++      486, 1355, 1349, 1304, 1299, 1296, 1295, 1304, 1293, 1342,
++
++     1290,  521, 1303, 1303, 1286, 1287, 1300, 1298, 1293, 1300,
++     1295, 1291,  438, 1335,  453, 1329, 1281, 1274, 1276, 1280,
++     1269, 1282,  266, 1281, 1285, 1509, 1273, 1273, 1285, 1267,
++     1259, 1260, 1281, 1263, 1275, 1274, 1260, 1272, 1271, 1270,
++     1311, 1310, 1309, 1509, 1253, 1307, 1265, 1509, 1509, 1264,
++        0, 1253, 1245,  486, 1302, 1301, 1259, 1299, 1509, 1247,
++     1297, 1509,  498,  570, 1291,  497, 1295, 1251, 1247, 1235,
++     1509, 1239, 1238, 1509, 1240, 1237,  348, 1235, 1509, 1246,
++     1243, 1228, 1230, 1240, 1276, 1242, 1224, 1273, 1509, 1222,
++     1238, 1270, 1274, 1232, 1226, 1228, 1229, 1264, 1217, 1212,
++
++     1211, 1260, 1206, 1221, 1509, 1210, 1206, 1204, 1208, 1201,
++     1211, 1214, 1203, 1198, 1509, 1253, 1209, 1246, 1199, 1208,
++     1202, 1206, 1246, 1240, 1204, 1184, 1187, 1186, 1194, 1182,
++     1238, 1180, 1509, 1509, 1509, 1185, 1509, 1230, 1192,    0,
++     1176, 1193, 1231, 1509, 1509, 1179, 1509, 1185, 1509,  498,
++      500, 1188,  552, 1509, 1181, 1169, 1220, 1175, 1168, 1180,
++     1179, 1179, 1167, 1208, 1168, 1211, 1157, 1159, 1172, 1157,
++     1154, 1168, 1160, 1166, 1157, 1165, 1509, 1150, 1161, 1165,
++     1147, 1160, 1143, 1137, 1142, 1157, 1154, 1155, 1139, 1141,
++     1150, 1186,  519, 1149, 1132, 1133, 1130, 1509, 1124, 1145,
++
++     1135, 1178, 1132, 1176, 1509, 1123, 1137, 1140, 1172, 1171,
++     1118, 1169, 1509,   14, 1131, 1123, 1509, 1129, 1119, 1509,
++     1113, 1168,  525,  497, 1118, 1120, 1116, 1159,  518, 1158,
++     1112, 1102, 1155, 1108, 1118, 1152, 1110, 1097, 1105, 1107,
++     1147, 1109, 1108, 1109, 1102, 1091, 1104, 1107, 1102, 1097,
++     1102, 1099, 1102, 1097, 1138, 1137, 1087, 1077, 1085, 1083,
++     1075, 1076, 1089, 1509, 1077, 1086, 1085, 1085, 1125, 1078,
++     1071, 1060, 1064, 1115, 1062, 1072, 1112, 1059,  528,  530,
++     1053,  508, 1509, 1114, 1072, 1066, 1056, 1068, 1109, 1509,
++     1103,  535, 1061, 1055, 1063, 1058, 1054, 1061, 1045, 1062,
++
++     1057, 1045, 1041, 1048, 1042, 1052, 1040, 1054, 1035, 1041,
++     1049, 1047, 1038, 1047, 1043, 1084, 1026, 1026, 1039, 1038,
++     1023, 1021, 1022, 1509, 1509, 1030, 1033, 1036, 1035, 1020,
++     1012,  554, 1017, 1064, 1013, 1067, 1509, 1015, 1015, 1064,
++     1017, 1005,  999, 1010, 1019, 1012, 1004, 1004, 1003,  487,
++     1002, 1053, 1014,  989, 1509, 1045, 1006, 1005,  990, 1509,
++      547,  499, 1004, 1005, 1039, 1002, 1004, 1041,  988,  982,
++      989,  982, 1036,  993,  982,  982,  991,  974,  988,  987,
++      979, 1022,  988,  970,  969, 1509,  985,  966,  966,  593,
++      964,  981,  959,  975, 1011,  969,  957,  973,  970,  954,
++
++      967,  952,  544,  952, 1509,  963,  956, 1509,  955,  958,
++        0,   20,   80,   80,  251,  198,  255,  398,  407,  419,
++     1509,  470,  476,  505,  519,  524,  594,  570,  575,  550,
++      553,  552,  604,  549, 1509,  566,  607,  614,  563, 1509,
++      559,  562,  561,  581,  578,  616,  584,  585,  571,  581,
++      590,  570,  591,  631,  632, 1509,  587,  634,  635,  597,
++      599,  587,  584,  591,  642,  591,  589,  607,  646,  601,
++      599,  598,  651,  647,  607,  612,  605,  614,  602,  612,
++      608, 1509,  603,  604, 1509, 1509,  605,  621,  622,  623,
++      609,  627, 1509,  649,  640,  613,  613,  634, 1509,  617,
++
++      626, 1509, 1509,  636,  671,  620,  673,  622,  680,  635,
++      626,  637,  629,  635,  631,  649,  650, 1509, 1509,  648,
++     1509,  650, 1509,  654,  644,  637,  649,  691, 1509,  649,
++      699,  700, 1509,  649,  656,  698, 1509,  648,  648,  651,
++      665,  652,  709,  668,  706,  712,  662,  714,  715,  716,
++      677,  672,  677,  692,  721,  717,  682,  674,  725,  684,
++      689,  671,  729,  684,  689, 1509,  691,  691,  684,  693,
++      694,  691,  681,  683,  740,  689,  686,  743,  739,  682,
++      697,  747, 1509, 1509,  698,  708,  693,  694,  753,  755,
++      701,  757, 1509,  707,  709,  760, 1509,  723, 1509, 1509,
++
++     1509,  714,  714,  765,  747, 1509,  710,  727,  729, 1509,
++      716,  716,  717,  713, 1509,  735,  721,  778,  723,  738,
++      738,  741,  741,  738,  743, 1509,  735,  745, 1509,  742,
++      748,  749,  746, 1509,  737,  743,  742,  753, 1509, 1509,
++      792, 1509,  741,  747, 1509,  750,  763,  760, 1509,  757,
++      780,  752,  801,  807,  808,  809,  764,  758,  812,  813,
++     1509,  809,  774,  770,  812,  762,  767,  820,  778,  822,
++      782,  824,  787,  776,  827,  771,  788,  787,  772,  828,
++      793,  793,  790,  837,  797,  810,  799,  798, 1509, 1509,
++     1509,  790,  801, 1509, 1509,  791,  840,  785,  790,  848,
++
++      798, 1509,  804, 1509,  851, 1509,  796,  811, 1509,  849,
++      817,  810,  819,  807,  817,  860,  811, 1509,  862,  863,
++      826,  811,  815,  868,  814,  813,  871,  826, 1509,  868,
++      830, 1509,  833,  876,  819,  821,  818,  834,  843,  882,
++     1509,  878, 1509, 1509,  827,  844,  881, 1509,  835,  842,
++     1509,  839,  844,  891,  836, 1509,  840,  852,  895,  839,
++      847, 1509,  858,  857,  849,  848,  862,  853,  862,  864,
++     1509,  906,  866,  908, 1509,  904,  868,  849,  912,  913,
++      872,  873,  874,  917,  876, 1509,  881, 1509,  863,  921,
++      882, 1509, 1509,  868,  868,  870, 1509,  875,  870,  882,
++
++     1509,  880,  884,  875,  927,  876,  892,  885,  894,  885,
++      892,  879,  894,  941,  900,  887,  903,  894,  908,  904,
++     1509,  948,  949,  950,  907,  906,  907, 1509, 1509, 1509,
++      954,  898,  914, 1509,  952,  903,  902,  904,  915,  962,
++      913, 1509,  922,  965, 1509, 1509,  971,  976,  981,  986,
++      991,  996, 1001, 1004,  978,  983,  985,  998
      } ;
  
- static yyconst flex_int16_t yy_def[1164] =
 -static yyconst flex_int16_t yy_def[922] =
++static yyconst flex_int16_t yy_def[1159] =
      {   0,
-      1152, 1152, 1153, 1153, 1152, 1152, 1152, 1152, 1152, 1152,
-      1151, 1151, 1151, 1151, 1151, 1154, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1155,
-      1151, 1151, 1151, 1156,   15, 1151,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1157,   45,   45,   45,
 -      909,    1,  910,  910,    1,    5,    5,    5,    5,    5,
 -      909,  909,  909,  909,  909,  911,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  912,
 -      909,  909,  909,  913,   15,  909,   45,   45,   45,  914,
++     1147, 1147, 1148, 1148, 1147, 1147, 1147, 1147, 1147, 1147,
++     1146, 1146, 1146, 1146, 1146, 1149, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1150,
++     1146, 1146, 1146, 1151,   15, 1146,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1152,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45, 1154, 1151, 1151,
-      1151, 1151, 1151, 1151, 1158, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1155, 1151, 1156, 1151,
 -       45,   45,   45,   45,   45,   45,   45,   45,  911,  909,
 -      909,  909,  909,  909,  909,  915,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  912,  909,  913,
 -      909,  916,   45,   45,   45,  917,   45,  914,   45,   45,
++       45,   45,   45,   45,   45,   45,   45, 1149, 1146, 1146,
++     1146, 1146, 1146, 1146, 1153, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1150, 1146, 1151, 1146,
  
-      1151,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45, 1159,   45, 1157,   45,   45,   45,   45,   45,
++     1146,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45, 1154,   45, 1152,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1158, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1160,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45, 1159, 1151, 1157,
++       45,   45,   45,   45,   45, 1153, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1155,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1154, 1146, 1152,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1146,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,  915,  909,  909,  909,  909,  909,  909,
 -      909,  909,  918,   45,   45,   45,  917,  909,  914,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1161,   45,   45,   45,
-        45,   45,   45,   45, 1151,   45, 1151,   45, 1157,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1151,   45,
++       45,   45,   45,   45,   45,   45,   45,   45, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1156,   45,   45,   45,   45,
++       45,   45,   45, 1146,   45, 1146,   45, 1152,   45,   45,
+        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,  909,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,  909,
 -      909,  909,  909,  909,  909,  909,  919,   45,   45,   45,
 -      914,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1151,   45,
++       45,   45,   45,   45,   45, 1146,   45,   45,   45,   45,
+        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45, 1146,   45,   45,   45, 1146, 1146, 1146,
++     1157,   45,   45,   45,   45,   45,   45,   45, 1146,   45,
++       45, 1146,   45, 1152,   45,   45,   45,   45,   45,   45,
++     1146,   45,   45, 1146,   45,   45,   45,   45, 1146,   45,
++       45,   45,   45,   45,   45,   45,   45,   45, 1146,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45, 1151,
-      1151, 1151, 1162,   45,   45,   45,   45,   45,   45,   45,
-      1151,   45,   45, 1151,   45, 1157,   45,   45,   45,   45,
-        45,   45, 1151,   45,   45,   45, 1151,   45,   45,   45,
-        45, 1151,   45,   45,   45,   45,   45,   45,   45,   45,
-      1151,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,  909,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,  909,   45,   45,
 -       45,  909,  909,  909,  920,   45,   45,   45,   45,   45,
--
-        45,   45,   45,   45,   45,   45, 1151,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1151,   45,   45,   45,
 -       45,  914,   45,   45,   45,   45,  909,   45,   45,  909,
 -       45,   45,   45,   45,  909,   45,   45,   45,   45,   45,
 -       45,   45,  909,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,  909,   45,   45,
 -       45,   45,   45,   45,  909,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,  909,
 -      909,  909,   45,  909,   45,   45,  909,  921,   45,   45,
 -      909,  909,   45,   45,  909,   45,   45,   45,   45,   45,
++
++       45,   45,   45,   45, 1146,   45,   45,   45,   45,   45,
++       45,   45,   45,   45, 1146,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151, 1151,   45, 1151,   45,
-      1151, 1163,   45,   45,   45, 1151, 1151,   45, 1151,   45,
-      1151,   45,   45,   45,   45, 1151,   45,   45,   45,   45,
++       45,   45, 1146, 1146, 1146,   45, 1146,   45, 1146, 1158,
++       45,   45,   45, 1146, 1146,   45, 1146,   45, 1146,   45,
++       45,   45,   45, 1146,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  909,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1146,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1151,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1151,
++       45,   45,   45,   45,   45,   45,   45, 1146,   45,   45,
  
-        45,   45,   45,   45,   45,   45,   45, 1151,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45, 1151,
-        45,   45, 1151,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45, 1146,   45,   45,   45,   45,   45,
++       45,   45, 1146,   45,   45,   45, 1146,   45,   45, 1146,
+        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,  909,   45,   45,   45,   45,   45,  909,   45,
 -       45,   45,   45,   45,  909,   45,   45,   45,   45,  909,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1151,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,  909,   45,   45,   45,
++       45,   45,   45, 1146,   45,   45,   45,   45,   45,   45,
+        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,  909,   45,   45,   45,   45,   45,   45,   45,  909,
++       45,   45, 1146,   45,   45,   45,   45,   45,   45, 1146,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1151,   45,   45,   45,
-        45,   45,   45, 1151,   45,   45,   45,   45,   45,   45,
  
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,  909,  909,   45,
 -       45,   45,   45,   45,   45,   45,  909,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,  909,
 -       45,   45,   45,   45,   45,  909,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1151, 1151,   45,   45,
-        45, 1151,   45,   45,   45,   45,   45,   45,   45,   45,
-      1151,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1151,
-        45,   45,   45,   45, 1151,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  909,   45,   45,   45,   45,
++       45,   45,   45, 1146, 1146,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1146,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -      909,   45,  909,   45,   45,   45,   45,   45,   45,   45,
 -      909,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -
 -       45,  909,   45,   45,   45,   45,  909,   45,   45,   45,
++       45,   45,   45,   45, 1146,   45,   45,   45,   45, 1146,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      1151,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1151,   45,
-        45,   45, 1151,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45, 1151,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1151,   45,
-        45,   45,   45,   45, 1151,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1151,   45,
 -      909,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -      909,   45,   45,   45,   45,   45,   45,  909,   45,  909,
 -       45,   45,  909,  909,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,  909,  909,   45,  909,
 -       45,  909,   45,   45,   45,   45,   45,   45,  909,   45,
 -      909,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1146,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45, 1151,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45,   45,
  
-        45, 1151,   45,   45,   45, 1151, 1151,   45,   45,   45,
 -       45,  909,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  909,  909,   45,   45,   45,
 -       45,   45,  909,   45,   45,   45,  909,  909,   45,   45,
 -       45,   45,   45,  909,   45,   45,   45,   45,  909,   45,
 -       45,   45,   45,   45,   45,   45,   45,  909,   45,   45,
 -      909,   45,   45,   45,   45,  909,  909,   45,  909,   45,
 -      909,   45,   45,  909,   45,  909,   45,   45,   45,   45,
 -       45,   45,   45,  909,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45, 1146,   45,   45, 1146,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      1151,   45, 1151,   45, 1151,   45,   45,   45,   45,   45,
-      1151,   45,   45,   45, 1151,   45,   45,   45, 1151, 1151,
 -       45,   45,  909,  909,  909,   45,   45,  909,   45,   45,
 -
 -       45,   45,   45,  909,   45,  909,   45,   45,   45,  909,
 -       45,   45,   45,   45,  909,   45,   45,   45,   45,   45,
 -       45,  909,   45,   45,  909,   45,   45,   45,   45,  909,
 -       45,  909,   45,  909,   45,   45,   45,   45,   45,   45,
 -      909,   45,  909,   45,   45,   45,   45,   45,   45,  909,
 -       45,   45,   45,   45,   45,   45,   45,   45,  909,   45,
 -       45,   45,   45,   45,  909,   45,   45,   45,   45,   45,
++     1146,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45, 1146,   45,   45,   45,   45, 1146,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1146,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1151,
 -      909,  909,  909,   45,   45,   45,  909,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151, 1151,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45, 1151,
-        45, 1151, 1151, 1151,   45,   45,   45,   45, 1151,   45,
-        45,   45, 1151,   45,   45,   45,   45,   45, 1151,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1151,   45,
-        45, 1151,   45,   45,   45,   45, 1151,   45,   45,   45,
-        45, 1151, 1151,   45, 1151,   45,   45, 1151,   45,   45,
-        45, 1151,   45,   45,   45,   45,   45,   45,   45,   45,
++       45, 1146,   45,   45, 1146, 1146,   45,   45,   45,   45,
++       45,   45, 1146,   45,   45,   45,   45,   45, 1146,   45,
 -       45,   45,   45,   45,  909,   45,   45,  909,    0,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909
++       45, 1146, 1146,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45,   45, 1146, 1146,   45,
++     1146,   45, 1146,   45,   45,   45,   45,   45, 1146,   45,
++       45,   45, 1146,   45,   45,   45, 1146,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1146,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45, 1151, 1151,   45, 1151,   45,   45, 1151, 1151,   45,
-        45,   45,   45,   45,   45, 1151,   45, 1151,   45, 1151,
-        45,   45, 1151,   45,   45,   45,   45,   45,   45,   45,
-        45, 1151,   45,   45,   45,   45, 1151,   45,   45,   45,
-        45,   45,   45, 1151,   45,   45, 1151,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45, 1151, 1151,   45,
-        45,   45, 1151,   45,   45, 1151,   45,   45,   45,   45,
-      1151,   45,   45,   45,   45,   45, 1151,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45, 1151,
++       45,   45, 1146, 1146,   45,   45,   45,   45,   45,   45,
++       45,   45, 1146,   45,   45,   45, 1146,   45, 1146, 1146,
++
++     1146,   45,   45,   45,   45, 1146,   45,   45,   45, 1146,
++       45,   45,   45,   45, 1146,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1146,   45,   45, 1146,   45,
++       45,   45,   45, 1146,   45,   45,   45,   45, 1146, 1146,
++       45, 1146,   45,   45, 1146,   45,   45,   45, 1146,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      1151,   45, 1151,   45,   45,   45, 1151, 1151,   45,   45,
-        45, 1151,   45,   45,   45, 1151,   45,   45,   45,   45,
++     1146,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1151,   45,   45,   45,   45,
-        45,   45, 1151, 1151, 1151,   45,   45,   45, 1151,   45,
-        45,   45,   45,   45,   45,   45, 1151,   45,   45, 1151,
-         0, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151
++       45,   45,   45,   45,   45,   45,   45,   45, 1146, 1146,
++     1146,   45,   45, 1146, 1146,   45,   45,   45,   45,   45,
++
++       45, 1146,   45, 1146,   45, 1146,   45,   45, 1146,   45,
++       45,   45,   45,   45,   45,   45,   45, 1146,   45,   45,
++       45,   45,   45,   45,   45,   45,   45,   45, 1146,   45,
++       45, 1146,   45,   45,   45,   45,   45,   45,   45,   45,
++     1146,   45, 1146, 1146,   45,   45,   45, 1146,   45,   45,
++     1146,   45,   45,   45,   45, 1146,   45,   45,   45,   45,
++       45, 1146,   45,   45,   45,   45,   45,   45,   45,   45,
++     1146,   45,   45,   45, 1146,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1146,   45, 1146,   45,   45,
++       45, 1146, 1146,   45,   45,   45, 1146,   45,   45,   45,
++
++     1146,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++     1146,   45,   45,   45,   45,   45,   45, 1146, 1146, 1146,
++       45,   45,   45, 1146,   45,   45,   45,   45,   45,   45,
++       45, 1146,   45,   45, 1146,    0, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146
      } ;
  
- static yyconst flex_uint16_t yy_nxt[1586] =
 -static yyconst flex_uint16_t yy_nxt[1275] =
++static yyconst flex_uint16_t yy_nxt[1581] =
      {   0,
-      1151,   13,   14,   13, 1151,   15,   16, 1151,   17,   18,
-        19,   20,   21,   22,   22,   22,   23,   24,   84,  587,
-        37,   14,   37,   85,   25,   26,   38, 1151,  588,   27,
 -       12,   13,   14,   13,   12,   15,   16,   12,   17,   18,
 -       19,   20,   21,   22,   22,   22,   23,   24,   12,   12,
 -       12,   12,   12,   25,   26,   12,   27,   12,   12,   28,
 -       12,   29,   12,   30,   12,   12,   12,   12,   12,   25,
 -       31,   12,   12,   12,   12,   12,   12,   32,   12,   12,
 -       12,   12,   33,   12,   12,   12,   12,   12,   34,   35,
 -       37,   14,   37,   37,   14,   37,   38,   81,   40,   38,
 -       12,   12,   40,   12,   12,   12,   12,   12,   12,   12,
 -       12,   12,   12,   41,   42,   41,   42,   75,   12,   12,
 -       81,   12,   76,   82,   12,   78,   12,   78,   12,   80,
 -
 -       79,   79,   79,   80,   12,   12,   12,   12,   39,   12,
 -       12,   42,   12,   42,   80,  364,   82,   12,   83,   42,
 -      365,   42,  710,   12,   12,   44,   44,   44,   45,   45,
 -       46,   45,   45,   45,   45,   45,   45,   45,   45,   47,
 -       45,   45,   45,   45,   45,   45,   45,   48,   45,   45,
 -       49,   45,   45,   45,   45,   45,   45,   50,   45,   45,
 -       51,   52,   53,   54,   55,   56,   45,   57,   58,   45,
 -       59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
 -       45,   45,   45,   45,   45,   70,   81,   71,   71,   71,
 -       70,   82,   73,   73,   73,   91,  296,   72,   74,   74,
 -
 -       74,  109,   72,   70,  297,   73,   73,   73,   72,   84,
 -      147,  110,  105,   72,   85,   72,  106,  182,   72,  107,
 -      111,  101,   92,  102,   72,  711,  103,  145,  116,  104,
 -      108,   72,   45,  147,  113,  168,  169,  117,  114,  118,
 -       45,  115,  124,   45,  126,  131,  125,  145,  127,  132,
 -      345,  183,   97,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,  147,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,  119,  120,  467,  128,  121,  146,   45,
 -      129,  133,  122,   45,  137,  150,  712,   45,  138,  130,
 -      134,  135,  140,   91,   45,  136,  346,   45,  146,   45,
 -
 -       98,  141,  139,  173,  468,  142,   74,   74,   74,   70,
 -      190,   71,   71,   71,  191,  713,   72,   78,  174,   78,
 -       92,   72,   79,   79,   79,  714,   70,  145,   73,   73,
 -       73,  146,   72,   74,   74,   74,  200,   72,   72,   79,
 -       79,   79,  201,   72,   79,   79,   79,  148,  164,  177,
 -      220,  149,  178,  275,   72,  179,  276,  165,  222,   72,
 -      159,  159,  159,  196,  197,  222,  220,  159,  159,  159,
 -      159,  159,  208,  220,  222,  221,  209,  221,  202,  203,
 -      204,  225,  159,  159,  159,  159,  159,  159,  205,  223,
 -      206,  383,  535,  536,  207,  221,  292,  224,  231,  231,
 -
 -      231,  292,  298,  299,  384,  231,  231,  231,  231,  231,
 -      300,  313,  292,  323,  538,  314,  715,  293,  324,  539,
 -      231,  231,  231,  231,  231,  231,  302,  302,  302,  482,
 -      716,  717,  718,  302,  302,  302,  302,  302,  483,  493,
 -      577,  670,  621,  719,  578,  494,  671,  622,  302,  302,
 -      302,  302,  302,  302,  720,  325,  721,  722,  723,  326,
 -       45,   45,   45,  724,  726,  727,  728,   45,   45,   45,
 -       45,   45,  729,  730,  731,  732,  733,  734,  736,  737,
 -      738,  739,   45,   45,   45,   45,   45,   45,  623,  740,
 -      741,  742,  743,  744,  745,  746,  747,  748,  749,  750,
 -
 -      751,  752,  753,  755,  725,  756,  757,  758,  759,  754,
 -      760,  735,  761,  762,  763,  764,  765,  766,  768,  769,
 -      770,  771,  767,  772,  773,  774,  775,  776,  777,  778,
 -      779,  780,  781,  782,  783,  784,  785,  786,  787,  788,
 -      789,  790,  791,  792,  793,  794,  795,  796,  797,  798,
 -      799,  800,  801,  802,  803,  804,  805,  806,  807,  808,
 -      809,  810,  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,  838,
 -      839,  840,  841,  842,  843,  844,  845,  846,  847,  848,
++     1146,   13,   14,   13, 1146,   15,   16, 1146,   17,   18,
++       19,   20,   21,   22,   22,   22,   23,   24,   84,  583,
++       37,   14,   37,   85,   25,   26,   38, 1146,  584,   27,
 +       37,   14,   37,   42,   28,   42,   38,   90,   91,   29,
 +      112,   30,   13,   14,   13,   89,   90,   25,   31,   91,
-        13,   14,   13,   13,   14,   13,   32,   40,  779,   13,
-        14,   13,   33,   40,  112,   90,   91,  780,   89,   34,
++       13,   14,   13,   13,   14,   13,   32,   40,  778,   13,
++       14,   13,   33,   40,  112,   90,   91,  779,   89,   34,
 +       35,   13,   14,   13,   93,   15,   16,   94,   17,   18,
 +       19,   20,   21,   22,   22,   22,   23,   24,   13,   14,
 +       13,  106,   39,   89,   25,   26,   13,   14,   13,   27,
 +
 +       39,   83,   83,   83,   28,   42,   41,   42,   42,   29,
 +       42,   30,   81,  105,   41,  108,   92,   25,   31,  106,
-       197,  155,   87,  133,   87,  156,   32,   88,   88,   88,
-       198,  134,   33,  202,  203,   81,  105,  781,  108,   34,
++      329,  196,   87,  330,   87,  132,   32,   88,   88,   88,
++      133,  197,   33,  134,  780,   81,  105,  781,  108,   34,
 +       35,   44,   44,   44,   45,   45,   46,   45,   45,   45,
 +       45,   45,   45,   45,   45,   47,   45,   45,   45,   45,
 +       45,   48,   45,   45,   49,   45,   50,   45,   51,   52,
 +       53,   45,   45,   45,   45,   54,   55,   45,   56,   45,
 +       45,   57,   45,   45,   58,   59,   60,   61,   62,   63,
 +       64,   65,   66,   51,   45,   67,   68,   69,   70,   71,
 +
 +       72,   73,   74,   75,   76,   77,   56,   45,   45,   45,
 +       45,   45,   79,  103,   80,   80,   80,   79,  103,   82,
-        82,   82,  100,  111,   79,   81,   82,   82,   82,  124,
-        81,  109,  119,  125,  128,  120,  126,   81,  121,  103,
-       122,  110,  123,  105,  116,  129,  111,  142,   81,  127,
-       117,  143,  135,   81,  109,  130,  207,  101,  208,  151,
-        81,   45,  136,  152,  137,  100,  105,   45,  782,  110,
-        45,  144,   45,  153,   45,   45,   45,  131,  114,  138,
++       82,   82,  100,  111,   79,   81,   82,   82,   82,  123,
++       81,  109,  119,  124,  127,  120,  125,   81,  121,  103,
++      169,  110,  122,  105,  116,  128,  111,  153,   81,  126,
++      117,  154,  135,   81,  109,  129,  782,  101,  783,  149,
++       81,   45,  136,  150,  137,  100,  105,   45,  169,  110,
++       45,  415,   45,  151,   45,   45,   45,  130,  114,  138,
 +      139,   45,   45,  140,   45,   45,   88,   88,   88,  141,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  
 -      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,  875,  876,  877,  878,
 -      879,  880,  881,  882,  883,  884,  885,  886,  887,  888,
 -      889,  890,  891,  892,  893,  894,  895,  896,  897,  898,
 -      899,  900,  901,  902,  903,  904,  905,  906,  907,  908,
 -       36,   36,   36,   36,   36,   36,   36,   69,  709,   69,
 -       69,   69,   69,   69,   88,  708,   88,  707,   88,   88,
 -       88,   90,   90,   90,   90,   90,   90,   90,   96,   96,
 -       96,   96,   96,   96,   96,  144,  706,  144,  144,  144,
 -
 -      144,  144,   90,   90,  705,   90,  157,  157,  157,  157,
 -      157,  227,  227,  295,  295,  368,  368,   90,   90,  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,  669,  668,  667,  666,  665,  664,  663,  662,
 -      661,  660,  659,  658,  657,  656,  655,  654,  653,  652,
 -      651,  650,  649,  648,  647,  646,  645,  644,  643,  642,
 -      641,  640,  639,  638,  637,  636,  635,  634,  633,  632,
 -      631,  630,  629,  628,  627,  626,  625,  624,  620,  619,
 -
 -      618,  617,  616,  615,  614,  613,  612,  611,  610,  609,
 -      608,  607,  606,  605,  604,  603,  602,  601,  600,  599,
 -      598,  597,  596,  595,  594,  593,  592,  591,  590,  589,
 -      588,  587,  586,  585,  584,  583,  582,  581,  580,  579,
 -      576,  575,  574,  573,  572,  571,  570,  569,  568,  567,
 -      566,  565,  564,  563,  562,  561,  560,  559,  558,  557,
 -      556,  555,  554,  553,  552,  551,  550,  549,  548,  547,
 -      546,  545,  544,  543,  542,  541,  540,  537,  534,  533,
 -      532,  531,  530,  529,  528,  527,  526,  525,  524,  523,
 -      522,  521,  520,  519,  518,  517,  516,  515,  514,  513,
 -
 -      512,  511,  510,  509,  508,  507,  506,  505,  504,  503,
 -      502,  501,  500,  499,  498,  497,  496,  495,  492,  491,
 -      490,  489,  488,  487,  486,  485,  484,  481,  480,  479,
 -      478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
 -      466,  465,  464,  463,  462,  461,  460,  459,  458,  457,
 -      456,  455,  454,  453,  452,  451,  450,  449,  448,  447,
 -      446,  445,  444,  443,  442,  441,  440,  439,  438,  437,
 -      436,  435,  434,  433,  432,  431,  430,  429,  428,  427,
 -      426,  425,  424,  423,  422,  421,  420,  419,  418,  417,
 -      416,  415,  414,  413,  412,  411,  410,  409,  408,  407,
 -
 -      406,  405,  404,  403,  402,  401,  400,  399,  398,  397,
 -      396,  395,  394,  393,  392,  391,  390,  389,  388,  387,
 -      386,  385,  382,  381,  380,  379,  378,  377,  376,  375,
 -      374,  373,  372,  371,  370,  369,  367,  366,  363,  362,
 -      361,  360,  359,  358,  357,  356,  355,  354,  353,  352,
 -      351,  350,  349,  348,  347,  344,  343,  342,  341,  340,
 -      339,  338,  337,  336,  335,  334,  333,  332,  331,  330,
 -      329,  328,  327,  322,  321,  320,  319,  318,  317,  316,
 -      315,  312,  311,  310,  309,  308,  307,  306,  305,  304,
 -      303,  301,  294,  291,  290,  289,  288,  287,  286,  285,
 -
 -      284,  283,  282,  281,  280,  279,  278,  277,  274,  273,
 -      272,  271,  270,  269,  268,  267,  266,  265,  264,  263,
 -      262,  261,  260,  259,  258,  257,  256,  255,  254,  253,
 -      252,  251,  250,  249,  248,  247,  246,  245,  244,  243,
 -      242,  241,  240,  239,  238,  237,  236,  235,  234,  233,
 -      232,  158,  230,  229,  228,  226,  219,  218,  217,  216,
 -      215,  214,  213,  212,  211,  210,  199,  198,  195,  194,
 -      193,  192,  189,  188,  187,  186,  185,  184,  181,  180,
 -      176,  175,  172,  171,  170,  167,  166,  163,  162,  161,
 -      160,  158,  156,  155,  154,  153,  152,  151,  143,  123,
 -
 -      112,  100,   99,   95,   94,   93,   43,   89,   87,   86,
 -       77,   43,  909,   11,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909
 +      101,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,  148,  157,  783,   45,  108,  149,
-       150,   45,  109,  111,  170,  158,  159,  332,  168,   45,
-       333,  160,  110,   45,  170,   45,  115,  145,  784,  146,
-       774,  147,   83,   83,   83,  109,  163,  161,   88,   88,
-        88,  775,  170,   81,  168,   79,  164,   80,   80,   80,
-       110,  165,  173,  169,   87,  178,   87,  162,   81,   88,
++       45,   45,   45,   45,  146,  155,  784,   45,  108,  147,
++      148,   45,  109,  111,  169,  156,  157,  416,  167,   45,
++      352,  158,  110,   45,  177,   45,  115,  143,  180,  144,
++      353,  145,   83,   83,   83,  109,  162,  159,   88,   88,
++       88,  160,  172,   81,  167,   79,  163,   80,   80,   80,
++      110,  164,  177,  168,   87,  180,   87,  161,   81,   88,
 +       88,   88,   83,   83,   83,   79,   81,   82,   82,   82,
-        99,  168,  169,   81,  180,  181,  183,   99,   81,  169,
-       184,   81,  185,  178,  186,  187,  178,  212,  223,  183,
-       213,  236,  224,  186,  214,  237,   81,  171,  172,  239,
-       180,   81,  181,  191,  183,   99,  240,  184,  187,   99,
-       185,  186,  262,   99,  192,  233,  234,  183,  248,  229,
-       256,   99,  249,  260,  260,   99,  250,   99,  176,  190,
-       190,  190,  241,  242,  243,  262,  190,  190,  190,  190,
-       190,  190,  261,  244,  261,  245,  262,  246,  269,  271,
-       247,  260,  263,  272,  278,  274,  276,  354,  356,  190,
-       190,  190,  190,  190,  190,  269,  287,  355,  261,  265,
-       264,  269,  288,  350,  350,  363,  356,  271,  274,  276,
-       272,  278,  279,  279,  279,  360,  417,  356,  281,  279,
-       279,  279,  279,  279,  279,  445,  350,  351,  357,  358,
-       380,  403,  404,  363,  381,  368,  391,  359,  360,  445,
-       527,  392,  279,  279,  279,  279,  279,  279,  366,  366,
-       366,  408,  596,  445,  465,  366,  366,  366,  366,  366,
-       366,  409,  452,  526,  453,  523,  652,  455,  527,  466,
-       529,  567,  418,  653,  733,  596,  785,  786,  366,  366,
-       366,  366,  366,  366,  595,  787,  667,  393,  788,  452,
-       526,  453,  394,   45,   45,   45,  789,  733,  654,  655,
-        45,   45,   45,   45,   45,   45,  656,  601,  568,  658,
-       732,  790,  595,  602,  667,  659,  704,  759,  791,  792,
-       705,  793,  760,   45,   45,   45,   45,   45,   45,  794,
-       795,  796,  797,  799,  798,  800,  801,  732,  802,  803,
++       99,  167,  168,   81,  179,  182,  184,   99,   81,  168,
++      183,   81,  216,  185,  462,  186,  200,  201,  211,  177,
++
++      182,  212,  205,  785,  206,  213,   81,  170,  171,  463,
++      179,   81,  786,  182,  184,   99,  190,  183,  186,   99,
++      185,  207,  224,   99,  232,  233,  225,  191,  182,  237,
++      228,   99,  185,  259,  217,   99,  238,   99,  175,  189,
++      189,  189,  239,  240,  241,  261,  189,  189,  189,  189,
++      189,  189,  260,  242,  246,  243,  259,  244,  247,  255,
++      245,  259,  248,  260,  261,  268,  270,  273,  261,  189,
++      189,  189,  189,  189,  189,  271,  275,  277,  260,  787,
++      268,  354,  355,  356,  262,  348,  348,  264,  268,  263,
++      273,  357,  361,  354,  270,  358,  377,  403,  404,  275,
++
++      378,  406,  271,  280,  277,  278,  278,  278,  348,  349,
++      354,  407,  278,  278,  278,  278,  278,  278,  358,  443,
++      361,  592,  366,  729,  564,  788,  389,  450,  523,  451,
++      443,  390,  524,  718,  789,  278,  278,  278,  278,  278,
++      278,  364,  364,  364,  592,  719,  729,  443,  364,  364,
++      364,  364,  364,  364,  450,  523,  451,  520,  453,  591,
++      524,  565,  526,  597,  653,  790,  791,  792,  662,  598,
++      654,  364,  364,  364,  364,  364,  364,  391,  728,  647,
++      649,  650,  392,   45,   45,   45,  648,  591,  651,  771,
++       45,   45,   45,   45,   45,   45,  662,  700,  756,  793,
++
++      772,  701,  794,  757,  795,  728,  796,  797,  798,  799,
++      800,  801,  802,   45,   45,   45,   45,   45,   45,  803,
 +      804,  805,  806,  807,  808,  809,  810,  811,  812,  813,
-       814,  815,  816,  817,  818,  819,  820,  821,  822,  823,
-       797,  798,  825,  826,  824,  827,  828,  829,  830,  831,
-       832,  833,  834,  761,  835,  836,  837,  838,  839,  840,
++      794,  795,  814,  815,  816,  817,  818,  819,  820,  821,
++      823,  824,  825,  826,  822,  827,  828,  829,  830,  831,
++      832,  833,  834,  835,  758,  836,  837,  838,  839,  840,
 +      841,  842,  843,  844,  845,  846,  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,  875,  876,  877,  878,  879,  857,
++      871,  872,  873,  874,  875,  876,  854,  877,  878,  879,
 +
-       880,  881,  882,  883,  884,  858,  885,  886,  887,  888,
-       889,  890,  891,  892,  893,  894,  895,  896,  897,  898,
++      880,  881,  855,  882,  883,  884,  885,  886,  887,  888,
++      889,  890,  891,  892,  893,  894,  895,  897,  898,  899,
 +      900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
-       910,  911,  912,  913,  915,  916,  917,  918,  919,  920,
++      910,  912,  913,  914,  915,  916,  917,  918,  919,  920,
 +      921,  922,  923,  924,  925,  926,  927,  928,  929,  930,
-       931,  932,  933,  934,  935,  937,  908,  938,  939,  940,
-       941,  942,  936,  943,  944,  945,  946,  947,  948,  949,
-       899,  950,  951,  952,  954,  914,  955,  956,  953,  957,
++      931,  932,  934,  905,  935,  936,  937,  938,  939,  933,
++      940,  941,  942,  943,  944,  945,  946,  896,  947,  948,
++      949,  951,  911,  952,  953,  950,  954,  955,  956,  957,
 +      958,  959,  960,  961,  962,  963,  964,  965,  966,  967,
-       968,  969,  970,  971,  972,  973,  974,  954,  975,  976,
++      968,  969,  970,  971,  951,  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, 1006,
-      1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,  989,
++     1007, 1008, 1009, 1010, 1011, 1012,  986, 1013, 1014, 1015,
 +     1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
 +     1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
 +     1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
-      1046, 1047, 1048, 1049, 1050, 1051, 1024, 1052, 1053, 1054,
++     1046, 1047, 1020, 1048, 1049, 1050, 1051, 1052, 1053, 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, 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,   12,   12,   12,   12,
-        12,   36,   36,   36,   36,   36,   78,  267,   78,   78,
-        78,   97,  353,   97,  442,   97,   99,   99,   99,   99,
-        99,  113,  113,  113,  113,  113,  167,   99,  167,  167,
-       167,  188,  188,  188,  778,  777,  776,  773,  772,  771,
-       770,  769,  768,  767,  766,  765,  764,  763,  762,  758,
-       757,  756,  755,  754,  753,  752,  751,  750,  749,  748,
-       747,  746,  745,  744,  743,  742,  741,  740,  739,  738,
-       737,  736,  735,  734,  731,  730,  729,  728,  727,  726,
-       725,  724,  723,  722,  721,  720,  719,  718,  717,  716,
-       715,  714,  713,  712,  711,  710,  709,  708,  707,  706,
-       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,  668,  666,  665,  664,  663,
-       662,  661,  660,  657,  651,  650,  649,  648,  647,  646,
-       645,  644,  643,  642,  641,  640,  639,  638,  637,  636,
-       635,  634,  633,  632,  631,  630,  629,  628,  627,  626,
-       625,  624,  623,  622,  621,  620,  619,  618,  617,  616,
-       615,  614,  613,  612,  611,  610,  609,  608,  607,  606,
-       605,  604,  603,  600,  599,  598,  597,  594,  593,  592,
-       591,  590,  589,  586,  585,  584,  583,  582,  581,  580,
-       579,  578,  577,  576,  575,  574,  573,  572,  571,  570,
-       569,  566,  565,  564,  563,  562,  561,  560,  559,  558,
-       557,  556,  555,  554,  553,  552,  551,  550,  549,  548,
-       547,  546,  545,  544,  543,  542,  541,  540,  539,  538,
-       537,  536,  535,  534,  533,  532,  531,  530,  528,  525,
-       524,  523,  522,  521,  520,  519,  518,  517,  516,  515,
-       514,  513,  512,  511,  510,  509,  508,  507,  506,  505,
-       504,  503,  502,  501,  500,  499,  498,  497,  496,  495,
-       494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
-       484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
-       474,  473,  472,  471,  470,  469,  468,  467,  464,  463,
-       462,  461,  460,  459,  458,  457,  456,  454,  451,  450,
-       449,  448,  447,  446,  444,  443,  441,  440,  439,  438,
-       437,  436,  435,  434,  433,  432,  431,  430,  429,  428,
-       427,  426,  425,  424,  423,  422,  421,  420,  419,  416,
-       415,  414,  413,  412,  411,  410,  407,  406,  405,  402,
-       401,  400,  399,  398,  397,  396,  395,  390,  389,  388,
-       387,  386,  385,  384,  383,  382,  379,  378,  377,  376,
-       375,  374,  373,  372,  371,  370,  369,  367,  365,  364,
-       362,  361,  352,  349,  348,  347,  346,  345,  344,  343,
-       342,  341,  340,  339,  338,  337,  336,  335,  334,  331,
-       330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
-       320,  319,  318,  317,  316,  315,  314,  313,  312,  311,
-       310,  309,  308,  307,  306,  305,  304,  303,  302,  301,
-       300,  299,  298,  297,  296,  295,  294,  293,  292,  291,
-       290,  289,  286,  285,  284,  283,  282,  280,  189,  277,
-       275,  273,  270,  268,  266,  259,  258,  257,  255,  254,
-       253,  252,  251,  238,  235,  232,  231,  230,  228,  227,
-       226,  225,  222,  221,  220,  219,  218,  217,  216,  215,
-       211,  210,  209,  206,  205,  204,  201,  200,  199,  196,
-       195,  194,  193,  189,  182,  179,  177,  175,  174,  166,
-       154,  132,  118,  107,  104,  102,   43,   98,   96,   95,
-        86,   43, 1151,   11, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151
++     1145,   12,   12,   12,   12,   12,   36,   36,   36,   36,
++       36,   78,  266,   78,   78,   78,   97,  351,   97,  440,
++       97,   99,   99,   99,   99,   99,  113,  113,  113,  113,
++
++      113,  166,   99,  166,  166,  166,  187,  187,  187,  777,
++      776,  775,  774,  773,  770,  769,  768,  767,  766,  765,
++      764,  763,  762,  761,  760,  759,  755,  754,  753,  752,
++      751,  750,  749,  748,  747,  746,  745,  744,  743,  742,
++      741,  740,  739,  738,  737,  736,  735,  734,  733,  732,
++      731,  730,  727,  726,  725,  724,  723,  722,  721,  720,
++      717,  716,  715,  714,  713,  712,  711,  710,  709,  708,
++      707,  706,  705,  704,  703,  702,  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,  668,  667,  666,
++      665,  664,  663,  661,  660,  659,  658,  657,  656,  655,
++      652,  646,  645,  644,  643,  642,  641,  640,  639,  638,
++      637,  636,  635,  634,  633,  632,  631,  630,  629,  628,
++      627,  626,  625,  624,  623,  622,  621,  620,  619,  618,
++      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
++      607,  606,  605,  604,  603,  602,  601,  600,  599,  596,
++      595,  594,  593,  590,  589,  588,  587,  586,  585,  582,
++      581,  580,  579,  578,  577,  576,  575,  574,  573,  572,
++      571,  570,  569,  568,  567,  566,  563,  562,  561,  560,
++
++      559,  558,  557,  556,  555,  554,  553,  552,  551,  550,
++      549,  548,  547,  546,  545,  544,  543,  542,  541,  540,
++      539,  538,  537,  536,  535,  534,  533,  532,  531,  530,
++      529,  528,  527,  525,  522,  521,  520,  519,  518,  517,
++      516,  515,  514,  513,  512,  511,  510,  509,  508,  507,
++      506,  505,  504,  503,  502,  501,  500,  499,  498,  497,
++      496,  495,  494,  493,  492,  491,  490,  489,  488,  487,
++      486,  485,  484,  483,  482,  481,  480,  479,  478,  477,
++      476,  475,  474,  473,  472,  471,  470,  469,  468,  467,
++      466,  465,  464,  461,  460,  459,  458,  457,  456,  455,
++
++      454,  452,  449,  448,  447,  446,  445,  444,  442,  441,
++      439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
++      429,  428,  427,  426,  425,  424,  423,  422,  421,  420,
++      419,  418,  417,  414,  413,  412,  411,  410,  409,  408,
++      405,  402,  401,  400,  399,  398,  397,  396,  395,  394,
++      393,  388,  387,  386,  385,  384,  383,  382,  381,  380,
++      379,  376,  375,  374,  373,  372,  371,  370,  369,  368,
++      367,  365,  363,  362,  360,  359,  350,  347,  346,  345,
++      344,  343,  342,  341,  340,  339,  338,  337,  336,  335,
++      334,  333,  332,  331,  328,  327,  326,  325,  324,  323,
++
++      322,  321,  320,  319,  318,  317,  316,  315,  314,  313,
++      312,  311,  310,  309,  308,  307,  306,  305,  304,  303,
++      302,  301,  300,  299,  298,  297,  296,  295,  294,  293,
++      292,  291,  290,  289,  288,  287,  286,  285,  284,  283,
++      282,  281,  279,  188,  276,  274,  272,  269,  267,  265,
++      258,  257,  256,  254,  253,  252,  251,  250,  249,  236,
++      235,  234,  231,  230,  229,  227,  226,  223,  222,  221,
++      220,  219,  218,  215,  214,  210,  209,  208,  204,  203,
++      202,  199,  198,  195,  194,  193,  192,  188,  181,  178,
++      176,  174,  173,  165,  152,  142,  131,  118,  107,  104,
++
++      102,   43,   98,   96,   95,   86,   43, 1146,   11, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146
      } ;
  
- static yyconst flex_int16_t yy_chk[1586] =
 -static yyconst flex_int16_t yy_chk[1275] =
++static yyconst flex_int16_t yy_chk[1581] =
      {   0,
 -        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,    1,
 -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 -        3,    3,    3,    4,    4,    4,    3,   27,    7,    4,
 -        5,    5,    8,    5,    5,    5,    5,    5,    5,    5,
 -        5,    5,    5,    9,   13,   10,   13,   21,    5,    5,
 -       27,    5,   21,   28,    5,   25,    5,   25,    5,   26,
 -
 -       25,   25,   25,   31,    5,    5,    7,    9,    5,   10,
 -        8,   37,    5,   37,   26,  290,   28,    5,   31,   42,
 -      290,   42,  669,    5,    5,   15,   15,   15,   15,   15,
 +        0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
-         1,    1,    1,    1,    1,    1,    1,    1,   21,  517,
-         3,    3,    3,   21,    1,    1,    3,    0,  517,    1,
++        1,    1,    1,    1,    1,    1,    1,    1,   21,  514,
++        3,    3,    3,   21,    1,    1,    3,    0,  514,    1,
 +        4,    4,    4,   13,    1,   13,    4,   27,   28,    1,
 +       56,    1,    5,    5,    5,   26,   32,    1,    1,   33,
-         6,    6,    6,    7,    7,    7,    1,    7,  712,    8,
-         8,    8,    1,    8,   56,   27,   28,  714,   26,    1,
++        6,    6,    6,    7,    7,    7,    1,    7,  711,    8,
++        8,    8,    1,    8,   56,   27,   28,  712,   26,    1,
 +        1,    2,    2,    2,   32,    2,    2,   33,    2,    2,
 +        2,    2,    2,    2,    2,    2,    2,    2,    9,    9,
 +        9,   51,    5,   31,    2,    2,   10,   10,   10,    2,
 +
 +        6,   20,   20,   20,    2,   37,    9,   37,   42,    2,
 +       42,    2,   20,   50,   10,   53,   31,    2,    2,   51,
-       121,   73,   25,   65,   25,   73,    2,   25,   25,   25,
-       121,   65,    2,  125,  125,   20,   50,  715,   53,    2,
++      241,  121,   25,  241,   25,   65,    2,   25,   25,   25,
++       65,  121,    2,   65,  713,   20,   50,  714,   53,    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,   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,   15,   15,   15,   15,   17,   32,   17,   17,   17,
 -       19,   33,   19,   19,   19,   44,  228,   17,   20,   20,
 -
 -       20,   55,   19,   22,  228,   22,   22,   22,   20,   32,
 -       82,   55,   54,   17,   33,   22,   54,  116,   19,   54,
 -       55,   53,   44,   53,   20,  671,   53,   80,   58,   53,
 -       54,   22,   45,   82,   57,  106,  106,   58,   57,   58,
 -       45,   57,   61,   45,   62,   64,   61,   80,   62,   64,
 -      270,  116,   50,   45,   45,   45,   45,   45,   45,   50,
 -       45,   45,   85,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   59,   59,  409,   63,   59,   81,   50,
 -       63,   65,   59,   50,   66,   85,  673,   50,   66,   63,
 -       65,   65,   67,   90,   50,   65,  270,   50,   81,   50,
 -
 -       50,   67,   66,  110,  409,   67,   70,   70,   70,   71,
 -      123,   71,   71,   71,  123,  674,   70,   72,  110,   72,
 -       90,   71,   72,   72,   72,  675,   73,   83,   73,   73,
 -       73,   84,   70,   74,   74,   74,  131,   71,   73,   78,
 -       78,   78,  131,   74,   79,   79,   79,   83,  103,  113,
 -      145,   84,  113,  204,   73,  113,  204,  103,  147,   74,
 -       98,   98,   98,  128,  128,  150,  148,   98,   98,   98,
 -       98,   98,  133,  145,  147,  146,  133,  149,  132,  132,
 -      132,  150,   98,   98,   98,   98,   98,   98,  132,  148,
 -      132,  313,  479,  479,  132,  146,  220,  149,  159,  159,
 -
 -      159,  223,  229,  229,  313,  159,  159,  159,  159,  159,
 -      229,  242,  220,  251,  481,  242,  676,  223,  251,  481,
 -      159,  159,  159,  159,  159,  159,  231,  231,  231,  426,
 -      677,  678,  680,  231,  231,  231,  231,  231,  426,  437,
 -      523,  623,  570,  682,  523,  437,  623,  570,  231,  231,
 -      231,  231,  231,  231,  683,  251,  684,  685,  686,  251,
 -      302,  302,  302,  687,  688,  689,  690,  302,  302,  302,
 -      302,  302,  691,  692,  693,  694,  695,  696,  697,  698,
 -      699,  700,  302,  302,  302,  302,  302,  302,  570,  701,
 -      703,  704,  705,  706,  707,  708,  709,  710,  711,  712,
 -
 -      713,  714,  715,  718,  687,  719,  720,  721,  722,  715,
 -      724,  696,  725,  726,  729,  730,  731,  732,  733,  735,
 -      736,  737,  732,  738,  740,  741,  742,  743,  744,  745,
 -      746,  747,  749,  750,  752,  753,  754,  755,  758,  760,
 -      762,  763,  765,  767,  768,  769,  770,  771,  772,  773,
 -      775,  776,  777,  778,  779,  780,  781,  782,  783,  784,
 -      785,  786,  787,  788,  789,  790,  791,  792,  796,  797,
 -      799,  800,  801,  802,  803,  805,  807,  808,  809,  811,
 -      812,  813,  814,  816,  817,  818,  819,  820,  821,  823,
 -      824,  826,  827,  828,  829,  831,  833,  835,  836,  837,
 -
 -      838,  839,  840,  842,  844,  845,  846,  847,  848,  849,
 -      851,  852,  853,  854,  855,  856,  857,  858,  860,  861,
 -      862,  863,  864,  866,  867,  868,  869,  870,  871,  872,
 -      873,  874,  875,  876,  877,  878,  879,  880,  881,  882,
 -      883,  884,  885,  886,  887,  888,  889,  890,  894,  895,
 -      896,  898,  899,  900,  901,  902,  903,  904,  906,  907,
 -      910,  910,  910,  910,  910,  910,  910,  911,  666,  911,
 -      911,  911,  911,  911,  912,  665,  912,  664,  912,  912,
 -      912,  913,  913,  913,  913,  913,  913,  913,  914,  914,
 -      914,  914,  914,  914,  914,  915,  663,  915,  915,  915,
 -
 -      915,  915,  916,  916,  662,  916,  917,  917,  917,  917,
 -      917,  918,  918,  919,  919,  920,  920,  921,  921,  661,
 -      660,  659,  658,  657,  656,  655,  652,  651,  649,  647,
 -      646,  645,  644,  643,  642,  640,  639,  638,  637,  636,
 -      635,  634,  633,  632,  631,  630,  629,  628,  627,  626,
 -      625,  624,  622,  620,  619,  618,  617,  616,  615,  614,
 -      613,  612,  611,  610,  609,  608,  606,  605,  604,  603,
 -      601,  600,  599,  598,  597,  596,  595,  594,  593,  592,
 -      590,  589,  588,  587,  586,  585,  584,  582,  580,  579,
 -      578,  577,  576,  575,  574,  573,  572,  571,  569,  568,
 -
 -      567,  565,  564,  563,  562,  561,  560,  559,  558,  557,
 -      556,  555,  554,  553,  552,  551,  550,  549,  548,  547,
 -      545,  544,  543,  542,  541,  539,  538,  537,  536,  535,
 -      534,  533,  532,  531,  530,  529,  528,  526,  525,  524,
 -      522,  521,  520,  517,  516,  515,  514,  513,  512,  511,
 -      510,  509,  508,  507,  506,  505,  504,  503,  502,  501,
 -      500,  499,  498,  497,  496,  495,  494,  493,  492,  491,
 -      489,  488,  487,  486,  485,  484,  483,  480,  478,  477,
 -      476,  475,  474,  473,  472,  471,  470,  469,  468,  466,
 -      465,  464,  463,  462,  461,  460,  459,  458,  457,  456,
 -
 -      455,  454,  453,  452,  451,  450,  449,  448,  447,  446,
 -      445,  444,  443,  442,  441,  440,  439,  438,  436,  435,
 -      434,  433,  432,  431,  429,  428,  427,  424,  423,  422,
 -      421,  420,  418,  417,  416,  415,  414,  412,  411,  410,
 -      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
 -      398,  397,  395,  394,  393,  392,  391,  390,  389,  388,
 -      387,  386,  385,  384,  383,  382,  381,  380,  379,  378,
 -      377,  376,  374,  373,  370,  369,  367,  366,  365,  363,
 -      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
 -      349,  348,  347,  346,  344,  343,  342,  341,  340,  339,
 +       15,   15,   17,   48,   17,   17,   17,   19,   58,   19,
 +       19,   19,   44,   55,   22,   17,   22,   22,   22,   61,
 +       19,   54,   60,   61,   62,   60,   61,   22,   60,   48,
-        60,   54,   60,   63,   58,   62,   55,   68,   17,   61,
-        58,   68,   66,   19,   54,   62,  129,   44,  129,   71,
-        22,   45,   66,   71,   66,   99,   63,   45,  716,   54,
-        45,   68,   45,   71,   45,   45,   45,   63,   57,   67,
++       91,   54,   60,   63,   58,   62,   55,   73,   17,   61,
++       58,   73,   66,   19,   54,   62,  715,   44,  716,   71,
++       22,   45,   66,   71,   66,   99,   63,   45,   91,   54,
++       45,  323,   45,   71,   45,   45,   45,   63,   57,   67,
 +       67,   45,   45,   67,   45,   57,   87,   87,   87,   67,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  
-        70,   57,   75,   76,   91,   74,   74,  243,   89,   57,
-       243,   74,   75,   57,   94,   57,   57,   69,  718,   69,
-       707,   69,   79,   79,   79,   75,   76,   75,   88,   88,
-        88,  707,   91,   79,   89,   80,   76,   80,   80,   80,
-        75,   76,   94,   90,   81,  103,   81,   75,   80,   81,
 +       99,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   57,   70,   74,  717,   57,   69,   70,
-       101,   92,   93,   83,  105,  106,  108,  101,   82,   90,
-       109,   80,  110,  103,  111,  112,  116,  133,  142,  147,
-       133,  153,  142,  163,  133,  153,   83,   92,   93,  155,
-       105,   82,  106,  116,  108,  101,  155,  109,  112,  101,
-       110,  111,  170,  101,  116,  151,  151,  147,  157,  147,
-       163,  101,  157,  168,  171,  101,  157,  101,  101,  115,
-       115,  115,  156,  156,  156,  170,  115,  115,  115,  115,
-       115,  115,  169,  156,  172,  156,  173,  156,  178,  180,
-       156,  168,  171,  181,  187,  183,  185,  268,  269,  115,
-       115,  115,  115,  115,  115,  192,  198,  268,  169,  173,
-       172,  178,  198,  260,  263,  274,  281,  180,  183,  185,
-       181,  187,  190,  190,  190,  271,  325,  269,  192,  190,
-       190,  190,  190,  190,  190,  356,  260,  263,  270,  270,
-       294,  313,  313,  274,  294,  281,  304,  270,  271,  368,
-       453,  304,  190,  190,  190,  190,  190,  190,  279,  279,
-       279,  317,  527,  356,  380,  279,  279,  279,  279,  279,
-       279,  317,  365,  452,  365,  455,  583,  368,  453,  380,
-       455,  495,  325,  583,  667,  527,  719,  720,  279,  279,
-       279,  279,  279,  279,  526,  721,  596,  304,  722,  365,
-       452,  365,  304,  366,  366,  366,  723,  667,  584,  584,
-       366,  366,  366,  366,  366,  366,  584,  532,  495,  586,
-       666,  724,  526,  532,  596,  586,  636,  694,  726,  727,
-       636,  728,  694,  366,  366,  366,  366,  366,  366,  729,
-       730,  731,  732,  734,  733,  735,  736,  666,  737,  738,
-       740,  741,  742,  743,  744,  746,  747,  748,  749,  750,
-       751,  752,  753,  754,  755,  756,  757,  758,  760,  761,
-       732,  733,  762,  763,  761,  764,  765,  766,  767,  768,
-       769,  770,  771,  694,  772,  773,  774,  775,  776,  777,
-       778,  779,  780,  781,  782,  783,  784,  785,  787,  788,
-       790,  791,  792,  793,  794,  795,  797,  798,  799,  800,
-       801,  803,  804,  805,  808,  809,  810,  811,  812,  813,
-       814,  815,  816,  817,  818,  819,  820,  822,  824,  797,
-       826,  827,  828,  829,  830,  798,  832,  833,  834,  836,
-       837,  838,  841,  842,  843,  844,  845,  846,  847,  848,
++       70,   57,   75,   76,   94,   74,   74,  323,   89,   57,
++      267,   74,   75,   57,  103,   57,   57,   69,  106,   69,
++      267,   69,   79,   79,   79,   75,   76,   75,   88,   88,
++       88,   75,   94,   79,   89,   80,   76,   80,   80,   80,
++       75,   76,  103,   90,   81,  106,   81,   75,   80,   81,
 +       81,   81,   83,   83,   83,   82,   79,   82,   82,   82,
-       859,  860,  861,  862,  863,  864,  865,  866,  867,  868,
-       869,  871,  872,  873,  874,  875,  876,  877,  878,  879,
-       880,  881,  882,  883,  884,  885,  857,  888,  889,  890,
-       891,  892,  884,  893,  894,  895,  897,  898,  899,  901,
-       848,  905,  906,  907,  908,  862,  910,  911,  907,  912,
-       914,  915,  916,  917,  918,  920,  921,  922,  923,  924,
-       925,  926,  927,  928,  930,  931,  933,  908,  934,  935,
-       936,  938,  939,  940,  941,  944,  946,  947,  949,  950,
-       951,  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,  954,
-       981,  982,  983,  984,  985,  986,  987,  988,  989,  990,
-       991,  994,  996,  997, 1000, 1001, 1002, 1003, 1004, 1005,
-      1007, 1009, 1011, 1012, 1014, 1015, 1016, 1017, 1018, 1019,
-      1020, 1021, 1023, 1024, 1025, 1026,  989, 1028, 1029, 1030,
-      1031, 1032, 1033, 1035, 1036, 1038, 1039, 1040, 1041, 1042,
-      1043, 1044, 1045, 1047, 1050, 1051, 1052, 1054, 1055, 1057,
-      1058, 1059, 1060, 1062, 1063, 1064, 1065, 1066, 1068, 1069,
-      1070, 1071, 1072, 1073, 1074, 1075, 1077, 1078, 1079, 1081,
-      1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1092,
-      1094, 1095, 1096, 1099, 1100, 1101, 1103, 1104, 1105, 1107,
++      101,   92,   93,   83,  105,  108,  110,  101,   82,   90,
++      109,   80,  135,  111,  377,  112,  124,  124,  132,  116,
++
++      145,  132,  128,  718,  128,  132,   83,   92,   93,  377,
++      105,   82,  719,  108,  110,  101,  116,  109,  112,  101,
++      111,  128,  142,  101,  149,  149,  142,  116,  145,  153,
++      145,  101,  162,  167,  135,  101,  153,  101,  101,  115,
++      115,  115,  154,  154,  154,  169,  115,  115,  115,  115,
++      115,  115,  168,  154,  155,  154,  170,  154,  155,  162,
++      154,  167,  155,  171,  172,  177,  179,  182,  169,  115,
++      115,  115,  115,  115,  115,  180,  184,  186,  168,  720,
++      191,  268,  269,  269,  170,  259,  262,  172,  177,  171,
++      182,  269,  273,  280,  179,  270,  291,  313,  313,  184,
++
++      291,  315,  180,  191,  186,  189,  189,  189,  259,  262,
++      268,  315,  189,  189,  189,  189,  189,  189,  270,  354,
++      273,  524,  280,  662,  493,  722,  302,  363,  450,  363,
++      366,  302,  451,  650,  723,  189,  189,  189,  189,  189,
++      189,  278,  278,  278,  524,  650,  662,  354,  278,  278,
++      278,  278,  278,  278,  363,  450,  363,  453,  366,  523,
++      451,  493,  453,  529,  582,  724,  725,  726,  592,  529,
++      582,  278,  278,  278,  278,  278,  278,  302,  661,  579,
++      580,  580,  302,  364,  364,  364,  579,  523,  580,  703,
++      364,  364,  364,  364,  364,  364,  592,  632,  690,  727,
++
++      703,  632,  728,  690,  729,  661,  730,  731,  732,  733,
++      734,  736,  737,  364,  364,  364,  364,  364,  364,  738,
++      739,  741,  742,  743,  744,  745,  746,  747,  748,  749,
++      728,  729,  750,  751,  752,  753,  754,  755,  757,  758,
++      759,  760,  761,  762,  758,  763,  764,  765,  766,  767,
++      768,  769,  770,  771,  690,  772,  773,  774,  775,  776,
++      777,  778,  779,  780,  781,  783,  784,  787,  788,  789,
++      790,  791,  792,  794,  795,  796,  797,  798,  800,  801,
++      804,  805,  806,  807,  808,  809,  810,  811,  812,  813,
++      814,  815,  816,  817,  820,  822,  794,  824,  825,  826,
++
++      827,  828,  795,  830,  831,  832,  834,  835,  836,  838,
++      839,  840,  841,  842,  843,  844,  845,  846,  847,  848,
 +      849,  850,  851,  852,  853,  854,  855,  856,  857,  858,
-      1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1128,
-      1129, 1130, 1131, 1132, 1136, 1137, 1138, 1140, 1141, 1142,
-      1143, 1144, 1145, 1146, 1148, 1149, 1152, 1152, 1152, 1152,
-      1152, 1153, 1153, 1153, 1153, 1153, 1154, 1160, 1154, 1154,
-      1154, 1155, 1161, 1155, 1162, 1155, 1156, 1156, 1156, 1156,
-      1156, 1157, 1157, 1157, 1157, 1157, 1158, 1163, 1158, 1158,
-      1158, 1159, 1159, 1159,  711,  710,  708,  706,  705,  704,
-       703,  702,  701,  700,  699,  698,  697,  696,  695,  693,
-       692,  690,  689,  688,  687,  686,  685,  684,  683,  682,
-       681,  680,  679,  678,  677,  676,  675,  674,  673,  672,
-       671,  670,  669,  668,  664,  663,  662,  661,  659,  658,
-       657,  656,  655,  654,  653,  652,  651,  650,  649,  648,
-       647,  646,  645,  644,  643,  642,  640,  639,  638,  637,
-       635,  634,  633,  631,  630,  629,  626,  625,  624,  623,
-       622,  621,  620,  619,  618,  617,  616,  615,  614,  613,
-       612,  611,  610,  609,  608,  607,  606,  605,  604,  603,
-       602,  601,  600,  599,  598,  597,  595,  593,  592,  591,
-       590,  589,  588,  585,  582,  581,  580,  579,  578,  577,
-       576,  575,  574,  573,  572,  571,  570,  569,  568,  566,
-       565,  564,  563,  562,  561,  560,  559,  558,  557,  556,
-       555,  554,  553,  552,  551,  550,  549,  548,  547,  546,
-       545,  544,  543,  542,  541,  540,  539,  538,  537,  536,
-       535,  534,  533,  531,  530,  529,  528,  525,  524,  522,
-       521,  519,  518,  515,  514,  513,  512,  511,  510,  509,
-       507,  506,  505,  504,  503,  502,  501,  499,  498,  497,
-       496,  494,  493,  492,  491,  489,  488,  487,  486,  485,
-       484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
-       474,  473,  472,  471,  470,  469,  468,  467,  466,  465,
-       464,  463,  462,  461,  460,  459,  458,  457,  454,  450,
-       448,  445,  444,  443,  441,  440,  438,  435,  434,  433,
-       432,  431,  430,  429,  428,  427,  426,  425,  424,  423,
-       422,  421,  420,  419,  418,  416,  415,  414,  413,  412,
-       411,  410,  409,  408,  406,  405,  404,  403,  402,  401,
-       400,  399,  398,  397,  396,  395,  394,  393,  392,  390,
-       389,  388,  387,  386,  385,  384,  383,  381,  379,  378,
-       376,  375,  374,  372,  371,  370,  369,  367,  363,  362,
-       360,  359,  358,  357,  355,  354,  352,  349,  348,  347,
-       345,  344,  343,  342,  341,  340,  339,  338,  337,  336,
-       335,  334,  333,  332,  331,  330,  328,  327,  326,  324,
-       323,  322,  321,  320,  319,  318,  316,  315,  314,  312,
-       311,  310,  309,  308,  307,  306,  305,  303,  302,  301,
-       300,  299,  298,  297,  296,  295,  293,  292,  291,  290,
-       288,  287,  286,  285,  284,  283,  282,  280,  278,  276,
-       273,  272,  266,  259,  258,  257,  256,  255,  254,  253,
-       252,  251,  250,  249,  248,  247,  246,  245,  244,  242,
-       241,  240,  239,  238,  237,  236,  235,  234,  233,  232,
-       231,  230,  229,  228,  227,  226,  225,  224,  223,  222,
-       221,  220,  219,  218,  217,  215,  214,  213,  212,  211,
-       210,  209,  208,  207,  206,  205,  204,  203,  202,  201,
-       200,  199,  197,  196,  195,  194,  193,  191,  188,  186,
-       184,  182,  179,  177,  174,  166,  165,  164,  162,  161,
-       160,  159,  158,  154,  152,  150,  149,  148,  146,  145,
-       144,  143,  141,  140,  139,  138,  137,  136,  135,  134,
-       132,  131,  130,  128,  127,  126,  124,  123,  122,  120,
-       119,  118,  117,  113,  107,  104,  102,   97,   96,   77,
-        72,   64,   59,   52,   49,   47,   43,   41,   39,   38,
-        24,   14,   11, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
-      1151, 1151, 1151, 1151, 1151
++      859,  860,  861,  862,  863,  864,  865,  867,  868,  869,
++      870,  871,  872,  873,  874,  875,  876,  877,  878,  879,
++      880,  881,  882,  854,  885,  886,  887,  888,  889,  881,
++      890,  891,  892,  894,  895,  896,  898,  845,  902,  903,
++      904,  905,  859,  907,  908,  904,  909,  911,  912,  913,
++      914,  916,  917,  918,  919,  920,  921,  922,  923,  924,
++      925,  927,  928,  930,  905,  931,  932,  933,  935,  936,
++
++      937,  938,  941,  943,  944,  946,  947,  948,  950,  951,
++      952,  953,  954,  955,  956,  957,  958,  959,  960,  962,
++      963,  964,  965,  966,  967,  968,  969,  970,  971,  972,
++      973,  974,  975,  976,  977,  978,  951,  979,  980,  981,
++      982,  983,  984,  985,  986,  987,  988,  992,  993,  996,
++      997,  998,  999, 1000, 1001, 1003, 1005, 1007, 1008, 1010,
++     1011, 1012, 1013, 1014, 1015, 1016, 1017, 1019, 1020, 1021,
++     1022, 1023,  986, 1024, 1025, 1026, 1027, 1028, 1030, 1031,
++     1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1042, 1045,
++     1046, 1047, 1049, 1050, 1052, 1053, 1054, 1055, 1057, 1058,
++
++     1059, 1060, 1061, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
++     1070, 1072, 1073, 1074, 1076, 1077, 1078, 1079, 1080, 1081,
++     1082, 1083, 1084, 1085, 1087, 1089, 1090, 1091, 1094, 1095,
++     1096, 1098, 1099, 1100, 1102, 1103, 1104, 1105, 1106, 1107,
 +     1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
 -      327,  326,  325,  324,  322,  321,  320,  319,  318,  317,
 -      316,  314,  312,  311,  309,  308,  306,  305,  304,  303,
 -      301,  300,  299,  298,  297,  296,  294,  291,  289,  287,
 -      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
 -      276,  275,  274,  273,  271,  269,  268,  267,  266,  265,
 -      264,  263,  262,  261,  260,  259,  258,  257,  256,  255,
 -      254,  253,  252,  250,  249,  248,  247,  246,  245,  244,
 -      243,  241,  240,  239,  238,  237,  236,  235,  234,  233,
 -      232,  230,  226,  219,  218,  217,  216,  215,  214,  213,
 -
 -      212,  211,  210,  209,  208,  207,  206,  205,  203,  202,
 -      201,  200,  199,  198,  197,  196,  195,  194,  193,  192,
 -      191,  190,  189,  188,  187,  186,  185,  184,  183,  181,
 -      180,  179,  178,  177,  176,  175,  174,  173,  172,  171,
 -      170,  169,  168,  167,  166,  165,  164,  163,  162,  161,
 -      160,  157,  156,  155,  154,  151,  143,  142,  141,  140,
 -      139,  138,  137,  136,  135,  134,  130,  129,  127,  126,
 -      125,  124,  122,  121,  120,  119,  118,  117,  115,  114,
 -      112,  111,  109,  108,  107,  105,  104,  102,  101,  100,
 -       99,   96,   95,   94,   93,   92,   88,   87,   68,   60,
 -
 -       56,   52,   51,   49,   48,   47,   43,   41,   39,   38,
 -       24,   14,   11,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909,  909,  909,  909,  909,  909,  909,
 -      909,  909,  909,  909
++     1118, 1119, 1120, 1122, 1123, 1124, 1125, 1126, 1127, 1131,
++     1132, 1133, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1143,
++     1144, 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148,
++     1148, 1149, 1155, 1149, 1149, 1149, 1150, 1156, 1150, 1157,
++     1150, 1151, 1151, 1151, 1151, 1151, 1152, 1152, 1152, 1152,
++
++     1152, 1153, 1158, 1153, 1153, 1153, 1154, 1154, 1154,  710,
++      709,  707,  706,  704,  702,  701,  700,  699,  698,  697,
++      696,  695,  694,  693,  692,  691,  689,  688,  687,  685,
++      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
++      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
++      664,  663,  659,  658,  657,  656,  654,  653,  652,  651,
++      649,  648,  647,  646,  645,  644,  643,  642,  641,  640,
++      639,  638,  636,  635,  634,  633,  631,  630,  629,  628,
++      627,  626,  623,  622,  621,  620,  619,  618,  617,  616,
++      615,  614,  613,  612,  611,  610,  609,  608,  607,  606,
++
++      605,  604,  603,  602,  601,  600,  599,  598,  597,  596,
++      595,  594,  593,  591,  589,  588,  587,  586,  585,  584,
++      581,  578,  577,  576,  575,  574,  573,  572,  571,  570,
++      569,  568,  567,  566,  565,  563,  562,  561,  560,  559,
++      558,  557,  556,  555,  554,  553,  552,  551,  550,  549,
++      548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
++      538,  537,  536,  535,  534,  533,  532,  531,  530,  528,
++      527,  526,  525,  522,  521,  519,  518,  516,  515,  512,
++      511,  510,  509,  508,  507,  506,  504,  503,  502,  501,
++      500,  499,  497,  496,  495,  494,  492,  491,  490,  489,
++
++      488,  487,  486,  485,  484,  483,  482,  481,  480,  479,
++      478,  476,  475,  474,  473,  472,  471,  470,  469,  468,
++      467,  466,  465,  464,  463,  462,  461,  460,  459,  458,
++      457,  456,  455,  452,  448,  446,  443,  442,  441,  439,
++      438,  436,  432,  431,  430,  429,  428,  427,  426,  425,
++      424,  423,  422,  421,  420,  419,  418,  417,  416,  414,
++      413,  412,  411,  410,  409,  408,  407,  406,  404,  403,
++      402,  401,  400,  399,  398,  397,  396,  395,  394,  393,
++      392,  391,  390,  388,  387,  386,  385,  384,  383,  382,
++      381,  380,  378,  376,  375,  373,  372,  370,  369,  368,
++
++      367,  365,  361,  360,  358,  357,  356,  355,  353,  352,
++      350,  347,  346,  345,  343,  342,  341,  340,  339,  338,
+       337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
++      327,  325,  324,  322,  321,  320,  319,  318,  317,  316,
++      314,  312,  311,  310,  309,  308,  307,  306,  305,  304,
++      303,  301,  300,  299,  298,  297,  296,  295,  294,  293,
++      292,  290,  289,  288,  287,  286,  285,  284,  283,  282,
++      281,  279,  277,  275,  272,  271,  265,  258,  257,  256,
++      255,  254,  253,  252,  251,  250,  249,  248,  247,  246,
++      245,  244,  243,  242,  240,  239,  238,  237,  236,  235,
++
++      234,  233,  232,  231,  230,  229,  228,  227,  226,  225,
++      224,  223,  222,  221,  220,  219,  218,  217,  215,  214,
++      213,  212,  211,  210,  209,  208,  207,  206,  205,  204,
++      203,  202,  201,  200,  199,  198,  197,  196,  195,  194,
++      193,  192,  190,  187,  185,  183,  181,  178,  176,  173,
++      165,  164,  163,  161,  160,  159,  158,  157,  156,  152,
++      151,  150,  148,  147,  146,  144,  143,  141,  140,  139,
++      138,  137,  136,  134,  133,  131,  130,  129,  127,  126,
++      125,  123,  122,  120,  119,  118,  117,  113,  107,  104,
++      102,   97,   96,   77,   72,   68,   64,   59,   52,   49,
++
++       47,   43,   41,   39,   38,   24,   14,   11, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
++     1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146
      } ;
  
  static yy_state_type yy_last_accepting_state;
@@@ -1277,23 -1128,21 +1272,23 @@@ static char *yy_last_accepting_cpos
  extern int parser4__flex_debug;
  int parser4__flex_debug = 1;
  
 -static yyconst flex_int16_t yy_rule_linenum[117] =
 +static yyconst flex_int16_t yy_rule_linenum[140] =
      {   0,
 -      128,  130,  132,  137,  138,  143,  144,  145,  157,  160,
 -      165,  172,  181,  190,  199,  208,  217,  226,  235,  244,
 -      253,  265,  275,  285,  295,  306,  316,  326,  336,  346,
 -      355,  364,  373,  387,  402,  411,  420,  429,  438,  447,
 -      456,  465,  474,  483,  492,  502,  511,  520,  529,  538,
 -      547,  556,  565,  575,  585,  595,  604,  614,  624,  634,
 -      644,  653,  663,  672,  681,  690,  699,  708,  718,  728,
 -      737,  746,  755,  764,  773,  782,  791,  800,  809,  818,
 -      827,  836,  845,  854,  863,  872,  881,  890,  899,  908,
 -      917,  926,  935,  944,  954,  964,  976,  987, 1000, 1098,
 -
 -     1103, 1108, 1113, 1114, 1115, 1116, 1117, 1118, 1120, 1138,
 -     1151, 1156, 1160, 1162, 1164, 1166
 +      130,  132,  134,  139,  140,  145,  146,  147,  159,  162,
 +      167,  174,  183,  192,  201,  210,  220,  229,  238,  247,
-       256,  267,  276,  285,  294,  303,  313,  323,  333,  343,
-       353,  363,  373,  383,  393,  402,  411,  420,  434,  449,
-       458,  467,  476,  485,  494,  503,  512,  521,  530,  540,
-       549,  558,  567,  576,  585,  594,  603,  613,  623,  633,
-       642,  652,  662,  672,  682,  691,  701,  710,  719,  728,
-       737,  746,  756,  766,  775,  784,  793,  802,  811,  820,
-       829,  838,  847,  856,  865,  874,  883,  892,  901,  910,
-       919,  928,  937,  946,  955,  964,  973,  982,  991, 1000,
-      1009, 1018, 1027, 1037, 1047, 1057, 1067, 1077, 1087, 1097,
-      1107, 1117, 1126, 1135, 1144, 1153, 1162, 1172, 1182, 1194,
-      1205, 1218, 1316, 1321, 1326, 1331, 1332, 1333, 1334, 1335,
-      1336, 1338, 1356, 1369, 1374, 1378, 1380, 1382, 1384
++      256,  268,  278,  288,  298,  309,  319,  329,  339,  349,
++      358,  367,  376,  390,  405,  414,  423,  432,  441,  450,
++      459,  468,  477,  486,  496,  505,  514,  523,  532,  541,
++      550,  559,  569,  579,  589,  598,  608,  618,  628,  638,
++      647,  657,  666,  675,  684,  693,  702,  712,  722,  731,
++      740,  749,  758,  767,  776,  785,  794,  803,  812,  821,
++      830,  839,  848,  857,  866,  875,  884,  893,  902,  911,
++      920,  929,  938,  947,  956,  965,  974,  983,  992, 1001,
++
++     1010, 1019, 1028, 1038, 1048, 1058, 1068, 1078, 1088, 1098,
++     1108, 1118, 1127, 1136, 1145, 1154, 1163, 1173, 1183, 1195,
++     1206, 1219, 1317, 1322, 1327, 1332, 1333, 1334, 1335, 1336,
++     1337, 1339, 1357, 1370, 1375, 1379, 1381, 1383, 1385
      } ;
  
  /* The intent behind this definition is that it'll catch
@@@ -1364,7 -1213,7 +1359,7 @@@ unsigned int comment_start_line = 0
  // by moving it ahead by parser4_leng bytes. parser4_leng specifies the length of the
  // currently matched token.
  #define YY_USER_ACTION  driver.loc_.columns(parser4_leng);
- #line 1368 "dhcp4_lexer.cc"
 -#line 1217 "dhcp4_lexer.cc"
++#line 1363 "dhcp4_lexer.cc"
  
  #define INITIAL 0
  #define COMMENT 1
@@@ -1690,7 -1537,7 +1685,7 @@@ YY_DEC
      }
  
  
- #line 1694 "dhcp4_lexer.cc"
 -#line 1541 "dhcp4_lexer.cc"
++#line 1689 "dhcp4_lexer.cc"
  
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@@ -1719,13 -1566,13 +1714,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 >= 1152 )
 -                              if ( yy_current_state >= 910 )
++                              if ( yy_current_state >= 1147 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1151 );
 -              while ( yy_current_state != 909 );
++              while ( yy_current_state != 1146 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
  
@@@ -1979,55 -1826,7 +1975,7 @@@ YY_RULE_SETU
        YY_BREAK
  case 22:
  YY_RULE_SETUP
- #line 267 "dhcp4_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser4Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
-     }
- }
-       YY_BREAK
- case 23:
- YY_RULE_SETUP
- #line 276 "dhcp4_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser4Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
-     }
- }
-       YY_BREAK
- case 24:
- YY_RULE_SETUP
- #line 285 "dhcp4_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser4Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
-     }
- }
-       YY_BREAK
- case 25:
- YY_RULE_SETUP
- #line 294 "dhcp4_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser4Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp4Parser::make_CQL(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp4Parser::make_STRING("cql", driver.loc_);
-     }
- }
-       YY_BREAK
- case 26:
- YY_RULE_SETUP
- #line 303 "dhcp4_lexer.ll"
 -#line 265 "dhcp4_lexer.ll"
++#line 268 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 27:
+ case 23:
  YY_RULE_SETUP
- #line 313 "dhcp4_lexer.ll"
 -#line 275 "dhcp4_lexer.ll"
++#line 278 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 28:
+ case 24:
  YY_RULE_SETUP
- #line 323 "dhcp4_lexer.ll"
 -#line 285 "dhcp4_lexer.ll"
++#line 288 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 29:
+ case 25:
  YY_RULE_SETUP
- #line 333 "dhcp4_lexer.ll"
 -#line 295 "dhcp4_lexer.ll"
++#line 298 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 30:
+ case 26:
  YY_RULE_SETUP
- #line 343 "dhcp4_lexer.ll"
 -#line 306 "dhcp4_lexer.ll"
++#line 309 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 31:
- YY_RULE_SETUP
- #line 353 "dhcp4_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser4Context::LEASE_DATABASE:
-     case isc::dhcp::Parser4Context::HOSTS_DATABASE:
-         return isc::dhcp::Dhcp4Parser::make_CONNECT_TIMEOUT(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
-     }
- }
-       YY_BREAK
- case 32:
+ case 27:
  YY_RULE_SETUP
- #line 363 "dhcp4_lexer.ll"
 -#line 316 "dhcp4_lexer.ll"
++#line 319 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 33:
+ case 28:
  YY_RULE_SETUP
- #line 373 "dhcp4_lexer.ll"
 -#line 326 "dhcp4_lexer.ll"
++#line 329 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 34:
+ case 29:
  YY_RULE_SETUP
- #line 383 "dhcp4_lexer.ll"
 -#line 336 "dhcp4_lexer.ll"
++#line 339 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 35:
+ case 30:
  YY_RULE_SETUP
- #line 393 "dhcp4_lexer.ll"
 -#line 346 "dhcp4_lexer.ll"
++#line 349 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 36:
+ case 31:
  YY_RULE_SETUP
- #line 402 "dhcp4_lexer.ll"
 -#line 355 "dhcp4_lexer.ll"
++#line 358 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 37:
+ case 32:
  YY_RULE_SETUP
- #line 411 "dhcp4_lexer.ll"
 -#line 364 "dhcp4_lexer.ll"
++#line 367 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 38:
+ case 33:
  YY_RULE_SETUP
- #line 420 "dhcp4_lexer.ll"
 -#line 373 "dhcp4_lexer.ll"
++#line 376 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 39:
+ case 34:
  YY_RULE_SETUP
- #line 434 "dhcp4_lexer.ll"
 -#line 387 "dhcp4_lexer.ll"
++#line 390 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 40:
+ case 35:
  YY_RULE_SETUP
- #line 449 "dhcp4_lexer.ll"
 -#line 402 "dhcp4_lexer.ll"
++#line 405 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DATA:
      }
  }
        YY_BREAK
- case 41:
+ case 36:
  YY_RULE_SETUP
- #line 458 "dhcp4_lexer.ll"
 -#line 411 "dhcp4_lexer.ll"
++#line 414 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 42:
+ case 37:
  YY_RULE_SETUP
- #line 467 "dhcp4_lexer.ll"
 -#line 420 "dhcp4_lexer.ll"
++#line 423 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::POOLS:
      }
  }
        YY_BREAK
- case 43:
+ case 38:
  YY_RULE_SETUP
- #line 476 "dhcp4_lexer.ll"
 -#line 429 "dhcp4_lexer.ll"
 -{
 -    switch(driver.ctx_) {
 -    case isc::dhcp::Parser4Context::POOLS:
 -        return isc::dhcp::Dhcp4Parser::make_USER_CONTEXT(driver.loc_);
 -    default:
 -        return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
 -    }
 -}
 -      YY_BREAK
 -case 39:
 -YY_RULE_SETUP
 -#line 438 "dhcp4_lexer.ll"
++#line 432 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 44:
 -case 40:
++case 39:
  YY_RULE_SETUP
- #line 485 "dhcp4_lexer.ll"
 -#line 447 "dhcp4_lexer.ll"
++#line 441 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 45:
 -case 41:
++case 40:
  YY_RULE_SETUP
- #line 494 "dhcp4_lexer.ll"
 -#line 456 "dhcp4_lexer.ll"
++#line 450 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 46:
 -case 42:
++case 41:
  YY_RULE_SETUP
- #line 503 "dhcp4_lexer.ll"
 -#line 465 "dhcp4_lexer.ll"
++#line 459 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 47:
 -case 43:
++case 42:
  YY_RULE_SETUP
- #line 512 "dhcp4_lexer.ll"
 -#line 474 "dhcp4_lexer.ll"
++#line 468 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 48:
 -case 44:
++case 43:
  YY_RULE_SETUP
- #line 521 "dhcp4_lexer.ll"
 -#line 483 "dhcp4_lexer.ll"
++#line 477 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 49:
 -case 45:
++case 44:
  YY_RULE_SETUP
- #line 530 "dhcp4_lexer.ll"
 -#line 492 "dhcp4_lexer.ll"
++#line 486 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 50:
 -case 46:
++case 45:
  YY_RULE_SETUP
- #line 540 "dhcp4_lexer.ll"
 -#line 502 "dhcp4_lexer.ll"
++#line 496 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 51:
 -case 47:
++case 46:
  YY_RULE_SETUP
- #line 549 "dhcp4_lexer.ll"
 -#line 511 "dhcp4_lexer.ll"
++#line 505 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::CONFIG:
      }
  }
        YY_BREAK
- case 52:
 -case 48:
++case 47:
  YY_RULE_SETUP
- #line 558 "dhcp4_lexer.ll"
 -#line 520 "dhcp4_lexer.ll"
++#line 514 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LOGGING:
      }
  }
        YY_BREAK
- case 53:
 -case 49:
++case 48:
  YY_RULE_SETUP
- #line 567 "dhcp4_lexer.ll"
 -#line 529 "dhcp4_lexer.ll"
++#line 523 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LOGGERS:
      }
  }
        YY_BREAK
- case 54:
 -case 50:
++case 49:
  YY_RULE_SETUP
- #line 576 "dhcp4_lexer.ll"
 -#line 538 "dhcp4_lexer.ll"
++#line 532 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
      }
  }
        YY_BREAK
- case 55:
 -case 51:
++case 50:
  YY_RULE_SETUP
- #line 585 "dhcp4_lexer.ll"
 -#line 547 "dhcp4_lexer.ll"
++#line 541 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LOGGERS:
      }
  }
        YY_BREAK
- case 56:
 -case 52:
++case 51:
  YY_RULE_SETUP
- #line 594 "dhcp4_lexer.ll"
 -#line 556 "dhcp4_lexer.ll"
++#line 550 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::LOGGERS:
      }
  }
        YY_BREAK
- case 57:
 -case 53:
++case 52:
  YY_RULE_SETUP
- #line 603 "dhcp4_lexer.ll"
 -#line 565 "dhcp4_lexer.ll"
++#line 559 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 58:
 -case 54:
++case 53:
  YY_RULE_SETUP
- #line 613 "dhcp4_lexer.ll"
 -#line 575 "dhcp4_lexer.ll"
++#line 569 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 59:
 -case 55:
++case 54:
  YY_RULE_SETUP
- #line 623 "dhcp4_lexer.ll"
 -#line 585 "dhcp4_lexer.ll"
++#line 579 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::CLIENT_CLASSES:
      }
  }
        YY_BREAK
- case 60:
 -case 56:
++case 55:
  YY_RULE_SETUP
- #line 633 "dhcp4_lexer.ll"
 -#line 595 "dhcp4_lexer.ll"
++#line 589 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 61:
 -case 57:
++case 56:
  YY_RULE_SETUP
- #line 642 "dhcp4_lexer.ll"
 -#line 604 "dhcp4_lexer.ll"
++#line 598 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
      }
  }
        YY_BREAK
- case 62:
 -case 58:
++case 57:
  YY_RULE_SETUP
- #line 652 "dhcp4_lexer.ll"
 -#line 614 "dhcp4_lexer.ll"
++#line 608 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
      }
  }
        YY_BREAK
- case 63:
 -case 59:
++case 58:
  YY_RULE_SETUP
- #line 662 "dhcp4_lexer.ll"
 -#line 624 "dhcp4_lexer.ll"
++#line 618 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
      }
  }
        YY_BREAK
- case 64:
 -case 60:
++case 59:
  YY_RULE_SETUP
- #line 672 "dhcp4_lexer.ll"
 -#line 634 "dhcp4_lexer.ll"
++#line 628 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
      }
  }
        YY_BREAK
- case 65:
 -case 61:
++case 60:
  YY_RULE_SETUP
- #line 682 "dhcp4_lexer.ll"
 -#line 644 "dhcp4_lexer.ll"
++#line 638 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::RESERVATIONS:
      }
  }
        YY_BREAK
- case 66:
 -case 62:
++case 61:
  YY_RULE_SETUP
- #line 691 "dhcp4_lexer.ll"
 -#line 653 "dhcp4_lexer.ll"
++#line 647 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 67:
 -case 63:
++case 62:
  YY_RULE_SETUP
- #line 701 "dhcp4_lexer.ll"
 -#line 663 "dhcp4_lexer.ll"
++#line 657 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DATA:
      }
  }
        YY_BREAK
- case 68:
 -case 64:
++case 63:
  YY_RULE_SETUP
- #line 710 "dhcp4_lexer.ll"
 -#line 672 "dhcp4_lexer.ll"
++#line 666 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 69:
 -case 65:
++case 64:
  YY_RULE_SETUP
- #line 719 "dhcp4_lexer.ll"
 -#line 681 "dhcp4_lexer.ll"
++#line 675 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 70:
 -case 66:
++case 65:
  YY_RULE_SETUP
- #line 728 "dhcp4_lexer.ll"
 -#line 690 "dhcp4_lexer.ll"
++#line 684 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 71:
 -case 67:
++case 66:
  YY_RULE_SETUP
- #line 737 "dhcp4_lexer.ll"
 -#line 699 "dhcp4_lexer.ll"
++#line 693 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
- case 72:
 -case 68:
++case 67:
  YY_RULE_SETUP
- #line 746 "dhcp4_lexer.ll"
 -#line 708 "dhcp4_lexer.ll"
++#line 702 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::RELAY:
      }
  }
        YY_BREAK
- case 73:
 -case 69:
++case 68:
  YY_RULE_SETUP
- #line 756 "dhcp4_lexer.ll"
 -#line 718 "dhcp4_lexer.ll"
++#line 712 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- case 74:
 -case 70:
++case 69:
  YY_RULE_SETUP
- #line 766 "dhcp4_lexer.ll"
 -#line 728 "dhcp4_lexer.ll"
++#line 722 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
      }
  }
        YY_BREAK
- case 75:
 -case 71:
++case 70:
  YY_RULE_SETUP
- #line 775 "dhcp4_lexer.ll"
 -#line 737 "dhcp4_lexer.ll"
++#line 731 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
      }
  }
        YY_BREAK
 -case 72:
++case 71:
+ YY_RULE_SETUP
 -#line 746 "dhcp4_lexer.ll"
++#line 740 "dhcp4_lexer.ll"
+ {
+     switch(driver.ctx_) {
+     case isc::dhcp::Parser4Context::DHCP4:
+         return isc::dhcp::Dhcp4Parser::make_SERVER_ID(driver.loc_);
+     default:
+         return isc::dhcp::Dhcp4Parser::make_STRING("server-id", driver.loc_);
+     }
+ }
+       YY_BREAK
 -case 73:
++case 72:
+ YY_RULE_SETUP
 -#line 755 "dhcp4_lexer.ll"
++#line 749 "dhcp4_lexer.ll"
+ {
+     switch(driver.ctx_) {
+     case isc::dhcp::Parser4Context::SERVER_ID:
+         return isc::dhcp::Dhcp4Parser::make_IDENTIFIER(driver.loc_);
+     default:
+         return isc::dhcp::Dhcp4Parser::make_STRING("identifier", driver.loc_);
+     }
+ }
+       YY_BREAK
 -case 74:
++case 73:
+ YY_RULE_SETUP
 -#line 764 "dhcp4_lexer.ll"
++#line 758 "dhcp4_lexer.ll"
+ {
+     switch(driver.ctx_) {
+     case isc::dhcp::Parser4Context::SERVER_ID:
+         return isc::dhcp::Dhcp4Parser::make_HTYPE(driver.loc_);
+     default:
+         return isc::dhcp::Dhcp4Parser::make_STRING("htype", driver.loc_);
+     }
+ }
+       YY_BREAK
 -case 75:
++case 74:
+ YY_RULE_SETUP
 -#line 773 "dhcp4_lexer.ll"
++#line 767 "dhcp4_lexer.ll"
+ {
+     switch(driver.ctx_) {
+     case isc::dhcp::Parser4Context::SERVER_ID:
+         return isc::dhcp::Dhcp4Parser::make_TIME(driver.loc_);
+     default:
+         return isc::dhcp::Dhcp4Parser::make_STRING("time", driver.loc_);
+     }
+ }
+       YY_BREAK
 -case 76:
++case 75:
+ YY_RULE_SETUP
 -#line 782 "dhcp4_lexer.ll"
++#line 776 "dhcp4_lexer.ll"
+ {
+     switch(driver.ctx_) {
+     case isc::dhcp::Parser4Context::SERVER_ID:
+         return isc::dhcp::Dhcp4Parser::make_ENTERPRISE_ID(driver.loc_);
+     default:
+         return isc::dhcp::Dhcp4Parser::make_STRING("enterprise-id", driver.loc_);
+     }
+ }
+       YY_BREAK
 -case 77:
 +case 76:
  YY_RULE_SETUP
- #line 784 "dhcp4_lexer.ll"
 -#line 791 "dhcp4_lexer.ll"
++#line 785 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
 -case 78:
 +case 77:
  YY_RULE_SETUP
- #line 793 "dhcp4_lexer.ll"
 -#line 800 "dhcp4_lexer.ll"
++#line 794 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
 -case 79:
 +case 78:
  YY_RULE_SETUP
- #line 802 "dhcp4_lexer.ll"
 -#line 809 "dhcp4_lexer.ll"
++#line 803 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
 -case 80:
 +case 79:
  YY_RULE_SETUP
- #line 811 "dhcp4_lexer.ll"
 -#line 818 "dhcp4_lexer.ll"
++#line 812 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
 -case 81:
 +case 80:
  YY_RULE_SETUP
- #line 820 "dhcp4_lexer.ll"
 -#line 827 "dhcp4_lexer.ll"
++#line 821 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
 -case 82:
 +case 81:
  YY_RULE_SETUP
- #line 829 "dhcp4_lexer.ll"
 -#line 836 "dhcp4_lexer.ll"
++#line 830 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
 -case 83:
 +case 82:
  YY_RULE_SETUP
- #line 838 "dhcp4_lexer.ll"
 -#line 845 "dhcp4_lexer.ll"
++#line 839 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
 -case 84:
 +case 83:
  YY_RULE_SETUP
- #line 847 "dhcp4_lexer.ll"
 -#line 854 "dhcp4_lexer.ll"
++#line 848 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
 -case 85:
 +case 84:
  YY_RULE_SETUP
- #line 856 "dhcp4_lexer.ll"
 -#line 863 "dhcp4_lexer.ll"
++#line 857 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
 -case 86:
 +case 85:
  YY_RULE_SETUP
- #line 865 "dhcp4_lexer.ll"
 -#line 872 "dhcp4_lexer.ll"
++#line 866 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::CONTROL_SOCKET:
      }
  }
        YY_BREAK
 -case 87:
 +case 86:
  YY_RULE_SETUP
- #line 874 "dhcp4_lexer.ll"
 -#line 881 "dhcp4_lexer.ll"
++#line 875 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::CONTROL_SOCKET:
      }
  }
        YY_BREAK
 -case 88:
 +case 87:
  YY_RULE_SETUP
- #line 883 "dhcp4_lexer.ll"
 -#line 890 "dhcp4_lexer.ll"
++#line 884 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
- #line 892 "dhcp4_lexer.ll"
 +case 88:
 +YY_RULE_SETUP
++#line 893 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_ENABLE_UPDATES(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
 +    }
 +}
 +      YY_BREAK
  case 89:
  YY_RULE_SETUP
- #line 901 "dhcp4_lexer.ll"
 -#line 899 "dhcp4_lexer.ll"
++#line 902 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_QUALIFYING_SUFFIX(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 90:
 +YY_RULE_SETUP
- #line 910 "dhcp4_lexer.ll"
++#line 911 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 91:
 +YY_RULE_SETUP
- #line 919 "dhcp4_lexer.ll"
++#line 920 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 92:
 +YY_RULE_SETUP
- #line 928 "dhcp4_lexer.ll"
++#line 929 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 93:
 +YY_RULE_SETUP
- #line 937 "dhcp4_lexer.ll"
++#line 938 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 94:
 +YY_RULE_SETUP
- #line 946 "dhcp4_lexer.ll"
++#line 947 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_MAX_QUEUE_SIZE(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 95:
 +YY_RULE_SETUP
- #line 955 "dhcp4_lexer.ll"
++#line 956 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_NCR_PROTOCOL(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 96:
 +YY_RULE_SETUP
- #line 964 "dhcp4_lexer.ll"
++#line 965 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 97:
 +YY_RULE_SETUP
- #line 973 "dhcp4_lexer.ll"
++#line 974 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_ALWAYS_INCLUDE_FQDN(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("always-include-fqdn", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 98:
 +YY_RULE_SETUP
- #line 982 "dhcp4_lexer.ll"
++#line 983 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_ALLOW_CLIENT_UPDATE(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("allow-client-update", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 99:
 +YY_RULE_SETUP
- #line 991 "dhcp4_lexer.ll"
++#line 992 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_OVERRIDE_NO_UPDATE(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 100:
 +YY_RULE_SETUP
- #line 1000 "dhcp4_lexer.ll"
++#line 1001 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_OVERRIDE_CLIENT_UPDATE(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 101:
 +YY_RULE_SETUP
- #line 1009 "dhcp4_lexer.ll"
++#line 1010 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_REPLACE_CLIENT_NAME(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 102:
 +YY_RULE_SETUP
- #line 1018 "dhcp4_lexer.ll"
++#line 1019 "dhcp4_lexer.ll"
 +{
 +    switch(driver.ctx_) {
 +    case isc::dhcp::Parser4Context::DHCP_DDNS:
 +        return isc::dhcp::Dhcp4Parser::make_GENERATED_PREFIX(driver.loc_);
 +    default:
 +        return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
 +    }
 +}
 +      YY_BREAK
 +case 103:
 +YY_RULE_SETUP
- #line 1027 "dhcp4_lexer.ll"
++#line 1028 "dhcp4_lexer.ll"
 +{
 +    /* dhcp-ddns value keywords are case insensitive */
 +    if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
 +         return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
 +    }
 +    std::string tmp(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 104:
 +YY_RULE_SETUP
- #line 1037 "dhcp4_lexer.ll"
++#line 1038 "dhcp4_lexer.ll"
 +{
 +    /* dhcp-ddns value keywords are case insensitive */
 +    if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
 +        return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
 +    }
 +    std::string tmp(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 105:
 +YY_RULE_SETUP
- #line 1047 "dhcp4_lexer.ll"
++#line 1048 "dhcp4_lexer.ll"
 +{
 +    /* dhcp-ddns value keywords are case insensitive */
 +    if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
 +        return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
 +    }
 +    std::string tmp(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 106:
 +YY_RULE_SETUP
- #line 1057 "dhcp4_lexer.ll"
++#line 1058 "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(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 107:
 +YY_RULE_SETUP
- #line 1067 "dhcp4_lexer.ll"
++#line 1068 "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(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 108:
 +YY_RULE_SETUP
- #line 1077 "dhcp4_lexer.ll"
++#line 1078 "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(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 109:
 +YY_RULE_SETUP
- #line 1087 "dhcp4_lexer.ll"
++#line 1088 "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(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 110:
 +YY_RULE_SETUP
- #line 1097 "dhcp4_lexer.ll"
++#line 1098 "dhcp4_lexer.ll"
 +{
 +    /* dhcp-ddns value keywords are case insensitive */
 +    if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
 +        return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
 +    }
 +    std::string tmp(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 111:
 +YY_RULE_SETUP
- #line 1107 "dhcp4_lexer.ll"
++#line 1108 "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_NOT_PRESENT(driver.loc_);
 +    }
 +    std::string tmp(parser4_text+1);
 +    tmp.resize(tmp.size() - 1);
 +    return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
 +}
 +      YY_BREAK
 +case 112:
 +YY_RULE_SETUP
- #line 1117 "dhcp4_lexer.ll"
++#line 1118 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::CONFIG:
      }
  }
        YY_BREAK
 -case 90:
 +case 113:
  YY_RULE_SETUP
- #line 1126 "dhcp4_lexer.ll"
 -#line 908 "dhcp4_lexer.ll"
++#line 1127 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::CONFIG:
      }
  }
        YY_BREAK
 -case 91:
 +case 114:
  YY_RULE_SETUP
- #line 1135 "dhcp4_lexer.ll"
 -#line 917 "dhcp4_lexer.ll"
++#line 1136 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
 -case 92:
 +case 115:
  YY_RULE_SETUP
- #line 1144 "dhcp4_lexer.ll"
 -#line 926 "dhcp4_lexer.ll"
++#line 1145 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
 -case 93:
 +case 116:
  YY_RULE_SETUP
- #line 1153 "dhcp4_lexer.ll"
 -#line 935 "dhcp4_lexer.ll"
++#line 1154 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
 -case 94:
 +case 117:
  YY_RULE_SETUP
- #line 1162 "dhcp4_lexer.ll"
 -#line 944 "dhcp4_lexer.ll"
++#line 1163 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
 -case 95:
 +case 118:
  YY_RULE_SETUP
- #line 1172 "dhcp4_lexer.ll"
 -#line 954 "dhcp4_lexer.ll"
++#line 1173 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
 -case 96:
 +case 119:
  YY_RULE_SETUP
- #line 1182 "dhcp4_lexer.ll"
 -#line 964 "dhcp4_lexer.ll"
++#line 1183 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::DHCP4:
      }
  }
        YY_BREAK
 -case 97:
 +case 120:
  YY_RULE_SETUP
- #line 1194 "dhcp4_lexer.ll"
 -#line 976 "dhcp4_lexer.ll"
++#line 1195 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
 -case 98:
 +case 121:
  YY_RULE_SETUP
- #line 1205 "dhcp4_lexer.ll"
 -#line 987 "dhcp4_lexer.ll"
++#line 1206 "dhcp4_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser4Context::SUBNET4:
      }
  }
        YY_BREAK
 -case 99:
 +case 122:
  YY_RULE_SETUP
- #line 1218 "dhcp4_lexer.ll"
 -#line 1000 "dhcp4_lexer.ll"
++#line 1219 "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.
      return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
  }
        YY_BREAK
 -case 100:
 -/* rule 100 can match eol */
 +case 123:
 +/* rule 123 can match eol */
  YY_RULE_SETUP
- #line 1316 "dhcp4_lexer.ll"
 -#line 1098 "dhcp4_lexer.ll"
++#line 1317 "dhcp4_lexer.ll"
  {
      // Bad string with a forbidden control character inside
      driver.error(driver.loc_, "Invalid control in " + std::string(parser4_text));
  }
        YY_BREAK
 -case 101:
 -/* rule 101 can match eol */
 +case 124:
 +/* rule 124 can match eol */
  YY_RULE_SETUP
- #line 1321 "dhcp4_lexer.ll"
 -#line 1103 "dhcp4_lexer.ll"
++#line 1322 "dhcp4_lexer.ll"
  {
      // Bad string with a bad escape inside
      driver.error(driver.loc_, "Bad escape in " + std::string(parser4_text));
  }
        YY_BREAK
 -case 102:
 +case 125:
  YY_RULE_SETUP
- #line 1326 "dhcp4_lexer.ll"
 -#line 1108 "dhcp4_lexer.ll"
++#line 1327 "dhcp4_lexer.ll"
  {
      // Bad string with an open escape at the end
      driver.error(driver.loc_, "Overflow escape in " + std::string(parser4_text));
  }
        YY_BREAK
 -case 103:
 +case 126:
  YY_RULE_SETUP
- #line 1331 "dhcp4_lexer.ll"
 -#line 1113 "dhcp4_lexer.ll"
++#line 1332 "dhcp4_lexer.ll"
  { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 -case 104:
 +case 127:
  YY_RULE_SETUP
- #line 1332 "dhcp4_lexer.ll"
 -#line 1114 "dhcp4_lexer.ll"
++#line 1333 "dhcp4_lexer.ll"
  { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 -case 105:
 +case 128:
  YY_RULE_SETUP
- #line 1333 "dhcp4_lexer.ll"
 -#line 1115 "dhcp4_lexer.ll"
++#line 1334 "dhcp4_lexer.ll"
  { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 -case 106:
 +case 129:
  YY_RULE_SETUP
- #line 1334 "dhcp4_lexer.ll"
 -#line 1116 "dhcp4_lexer.ll"
++#line 1335 "dhcp4_lexer.ll"
  { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 -case 107:
 +case 130:
  YY_RULE_SETUP
- #line 1335 "dhcp4_lexer.ll"
 -#line 1117 "dhcp4_lexer.ll"
++#line 1336 "dhcp4_lexer.ll"
  { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 -case 108:
 +case 131:
  YY_RULE_SETUP
- #line 1336 "dhcp4_lexer.ll"
 -#line 1118 "dhcp4_lexer.ll"
++#line 1337 "dhcp4_lexer.ll"
  { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 -case 109:
 +case 132:
  YY_RULE_SETUP
- #line 1338 "dhcp4_lexer.ll"
 -#line 1120 "dhcp4_lexer.ll"
++#line 1339 "dhcp4_lexer.ll"
  {
      // An integer was found.
      std::string tmp(parser4_text);
      return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
  }
        YY_BREAK
 -case 110:
 +case 133:
  YY_RULE_SETUP
- #line 1356 "dhcp4_lexer.ll"
 -#line 1138 "dhcp4_lexer.ll"
++#line 1357 "dhcp4_lexer.ll"
  {
      // A floating point was found.
      std::string tmp(parser4_text);
      return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
  }
        YY_BREAK
 -case 111:
 +case 134:
  YY_RULE_SETUP
- #line 1369 "dhcp4_lexer.ll"
 -#line 1151 "dhcp4_lexer.ll"
++#line 1370 "dhcp4_lexer.ll"
  {
      string tmp(parser4_text);
      return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
  }
        YY_BREAK
 -case 112:
 +case 135:
  YY_RULE_SETUP
- #line 1374 "dhcp4_lexer.ll"
 -#line 1156 "dhcp4_lexer.ll"
++#line 1375 "dhcp4_lexer.ll"
  {
     return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
  }
        YY_BREAK
 -case 113:
 +case 136:
  YY_RULE_SETUP
- #line 1378 "dhcp4_lexer.ll"
 -#line 1160 "dhcp4_lexer.ll"
++#line 1379 "dhcp4_lexer.ll"
  driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 -case 114:
 +case 137:
  YY_RULE_SETUP
- #line 1380 "dhcp4_lexer.ll"
 -#line 1162 "dhcp4_lexer.ll"
++#line 1381 "dhcp4_lexer.ll"
  driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 -case 115:
 +case 138:
  YY_RULE_SETUP
- #line 1382 "dhcp4_lexer.ll"
 -#line 1164 "dhcp4_lexer.ll"
++#line 1383 "dhcp4_lexer.ll"
  driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 -case 116:
 +case 139:
  YY_RULE_SETUP
- #line 1384 "dhcp4_lexer.ll"
 -#line 1166 "dhcp4_lexer.ll"
++#line 1385 "dhcp4_lexer.ll"
  driver.error (driver.loc_, "Invalid character: " + std::string(parser4_text));
        YY_BREAK
  case YY_STATE_EOF(INITIAL):
- #line 1386 "dhcp4_lexer.ll"
 -#line 1168 "dhcp4_lexer.ll"
++#line 1387 "dhcp4_lexer.ll"
  {
      if (driver.states_.empty()) {
          return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
      BEGIN(DIR_EXIT);
  }
        YY_BREAK
 -case 117:
 +case 140:
  YY_RULE_SETUP
- #line 1409 "dhcp4_lexer.ll"
 -#line 1191 "dhcp4_lexer.ll"
++#line 1410 "dhcp4_lexer.ll"
  ECHO;
        YY_BREAK
- #line 3488 "dhcp4_lexer.cc"
 -#line 3050 "dhcp4_lexer.cc"
++#line 3484 "dhcp4_lexer.cc"
  
        case YY_END_OF_BUFFER:
                {
@@@ -3801,7 -3363,7 +3797,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 >= 1152 )
 -                      if ( yy_current_state >= 910 )
++                      if ( yy_current_state >= 1147 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
        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 >= 1152 )
 -              if ( yy_current_state >= 910 )
++              if ( yy_current_state >= 1147 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
-       yy_is_jam = (yy_current_state == 1151);
 -      yy_is_jam = (yy_current_state == 909);
++      yy_is_jam = (yy_current_state == 1146);
  
                return yy_is_jam ? 0 : yy_current_state;
  }
@@@ -4587,7 -4149,7 +4583,7 @@@ void parser4_free (void * ptr 
  
  /* %ok-for-header */
  
- #line 1409 "dhcp4_lexer.ll"
 -#line 1191 "dhcp4_lexer.ll"
++#line 1410 "dhcp4_lexer.ll"
  
  
  
Simple merge
index 0b429f9adea9264c0ddb13b0066ef9a01f64c5ec,0f26b846ea92b4b5f057716f40319461e2bb2a0a..60f1be02fe17203f918be3e8d1975bc266b47170
@@@ -253,11 -253,9 +253,10 @@@ namespace isc { namespace dhcp 
    {
        switch (that.type_get ())
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          value.move< ElementPtr > (that.value);
          break;
  
      state = that.state;
        switch (that.type_get ())
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          value.copy< ElementPtr > (that.value);
          break;
  
          << yysym.location << ": ";
      switch (yytype)
      {
 -            case 107: // "constant string"
 +            case 128: // "constant string"
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< std::string > (); }
- #line 360 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 356 "dhcp4_parser.cc" // lalr1.cc:636
++#line 358 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
 -      case 108: // "integer"
 +      case 129: // "integer"
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< int64_t > (); }
- #line 367 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 363 "dhcp4_parser.cc" // lalr1.cc:636
++#line 365 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
 -      case 109: // "floating point"
 +      case 130: // "floating point"
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< double > (); }
- #line 374 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 370 "dhcp4_parser.cc" // lalr1.cc:636
++#line 372 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
 -      case 110: // "boolean"
 +      case 131: // "boolean"
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< bool > (); }
- #line 381 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 377 "dhcp4_parser.cc" // lalr1.cc:636
++#line 379 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
 -      case 123: // value
 +      case 145: // value
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 388 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 384 "dhcp4_parser.cc" // lalr1.cc:636
++#line 386 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
 -      case 127: // map_value
 +      case 186: // socket_type
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 395 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 391 "dhcp4_parser.cc" // lalr1.cc:636
++#line 393 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
-       case 195: // db_type
 -      case 163: // socket_type
++      case 399: // ncr_protocol_value
  
 -#line 200 "dhcp4_parser.yy" // lalr1.cc:636
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 402 "dhcp4_parser.cc" // lalr1.cc:636
 -#line 398 "dhcp4_parser.cc" // lalr1.cc:636
++#line 400 "dhcp4_parser.cc" // lalr1.cc:636
 +        break;
 +
-       case 393: // ncr_protocol_value
++      case 408: // replace_client_name_value
 +
 +#line 202 "dhcp4_parser.yy" // lalr1.cc:636
 +        { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 409 "dhcp4_parser.cc" // lalr1.cc:636
-         break;
-       case 402: // replace_client_name_value
- #line 202 "dhcp4_parser.yy" // lalr1.cc:636
-         { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 416 "dhcp4_parser.cc" // lalr1.cc:636
++#line 407 "dhcp4_parser.cc" // lalr1.cc:636
          break;
  
  
           when using variants.  */
          switch (yyr1_[yyn])
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          yylhs.value.build< ElementPtr > ();
          break;
  
            switch (yyn)
              {
    case 2:
 -#line 209 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 211 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.NO_KEYWORD; }
- #line 660 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 640 "dhcp4_parser.cc" // lalr1.cc:859
++#line 650 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 4:
 -#line 210 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 212 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.CONFIG; }
- #line 666 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 646 "dhcp4_parser.cc" // lalr1.cc:859
++#line 656 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 6:
 -#line 211 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 213 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.DHCP4; }
- #line 672 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 652 "dhcp4_parser.cc" // lalr1.cc:859
++#line 662 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 8:
 -#line 212 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 214 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
- #line 678 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 658 "dhcp4_parser.cc" // lalr1.cc:859
++#line 668 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 10:
 -#line 213 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 215 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.SUBNET4; }
- #line 684 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 664 "dhcp4_parser.cc" // lalr1.cc:859
++#line 674 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 12:
 -#line 214 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 216 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.POOLS; }
- #line 690 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 670 "dhcp4_parser.cc" // lalr1.cc:859
++#line 680 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 14:
 -#line 215 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 217 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.RESERVATIONS; }
- #line 696 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 676 "dhcp4_parser.cc" // lalr1.cc:859
++#line 686 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 16:
 -#line 216 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 218 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.OPTION_DEF; }
- #line 702 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 682 "dhcp4_parser.cc" // lalr1.cc:859
++#line 692 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 18:
 -#line 217 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 219 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.OPTION_DATA; }
- #line 708 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 688 "dhcp4_parser.cc" // lalr1.cc:859
++#line 698 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 20:
 -#line 218 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 220 "dhcp4_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
- #line 714 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 694 "dhcp4_parser.cc" // lalr1.cc:859
++#line 704 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
    case 22:
 -#line 226 "dhcp4_parser.yy" // lalr1.cc:859
 +#line 221 "dhcp4_parser.yy" // lalr1.cc:859
 +    { ctx.ctx_ = ctx.DHCP_DDNS; }
- #line 720 "dhcp4_parser.cc" // lalr1.cc:859
++#line 710 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
 +  case 24:
 +#line 229 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
- #line 726 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 700 "dhcp4_parser.cc" // lalr1.cc:859
++#line 716 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 23:
 -#line 227 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 25:
 +#line 230 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
- #line 732 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 706 "dhcp4_parser.cc" // lalr1.cc:859
++#line 722 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 24:
 -#line 228 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 26:
 +#line 231 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
- #line 738 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 712 "dhcp4_parser.cc" // lalr1.cc:859
++#line 728 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 25:
 -#line 229 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 27:
 +#line 232 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
- #line 744 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 718 "dhcp4_parser.cc" // lalr1.cc:859
++#line 734 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 26:
 -#line 230 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 28:
 +#line 233 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
- #line 750 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 724 "dhcp4_parser.cc" // lalr1.cc:859
++#line 740 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 27:
 -#line 231 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 29:
 +#line 234 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
- #line 756 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 730 "dhcp4_parser.cc" // lalr1.cc:859
++#line 746 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 28:
 -#line 232 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 30:
 +#line 235 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
- #line 762 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 736 "dhcp4_parser.cc" // lalr1.cc:859
++#line 752 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 29:
 -#line 235 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 31:
 +#line 238 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Push back the JSON value on the stack
      ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
  }
- #line 771 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 745 "dhcp4_parser.cc" // lalr1.cc:859
++#line 761 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 30:
 -#line 240 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 32:
 +#line 243 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // This code is executed when we're about to start parsing
      // the content of the map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 782 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 756 "dhcp4_parser.cc" // lalr1.cc:859
++#line 772 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 31:
 -#line 245 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 33:
 +#line 248 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // map parsing completed. If we ever want to do any wrap up
      // (maybe some sanity checking), this would be the best place
      // for it.
  }
- #line 792 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 766 "dhcp4_parser.cc" // lalr1.cc:859
 -    break;
 -
 -  case 32:
 -#line 251 "dhcp4_parser.yy" // lalr1.cc:859
 -    { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 -#line 772 "dhcp4_parser.cc" // lalr1.cc:859
++#line 782 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 35:
 -#line 258 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 36:
 +#line 259 "dhcp4_parser.yy" // lalr1.cc:859
      {
                    // map containing a single entry
                    ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
                    }
- #line 801 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 781 "dhcp4_parser.cc" // lalr1.cc:859
++#line 791 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 36:
 -#line 262 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 37:
 +#line 263 "dhcp4_parser.yy" // lalr1.cc:859
      {
                    // map consisting of a shorter map followed by
                    // comma and string:value
                    ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
                    }
- #line 811 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 791 "dhcp4_parser.cc" // lalr1.cc:859
++#line 801 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 37:
 -#line 269 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 38:
 +#line 270 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(l);
  }
- #line 820 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 800 "dhcp4_parser.cc" // lalr1.cc:859
++#line 810 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 38:
 -#line 272 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 39:
 +#line 273 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // list parsing complete. Put any sanity checking here
  }
- #line 828 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 808 "dhcp4_parser.cc" // lalr1.cc:859
++#line 818 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 39:
 -#line 277 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 42:
 +#line 281 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +                  // List consisting of a single element.
 +                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 +                  }
- #line 837 "dhcp4_parser.cc" // lalr1.cc:859
++#line 827 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
 +  case 43:
 +#line 285 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +                  // List ending with , and a value.
 +                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 +                  }
- #line 846 "dhcp4_parser.cc" // lalr1.cc:859
++#line 836 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
 +  case 44:
 +#line 292 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // List parsing about to start
  }
- #line 854 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 816 "dhcp4_parser.cc" // lalr1.cc:859
++#line 844 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 40:
 -#line 279 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 45:
 +#line 294 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // list parsing complete. Put any sanity checking here
      //ctx.stack_.pop_back();
  }
- #line 863 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 825 "dhcp4_parser.cc" // lalr1.cc:859
++#line 853 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 43:
 -#line 288 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 48:
 +#line 303 "dhcp4_parser.yy" // lalr1.cc:859
      {
 -                  // List consisting of a single element.
 -                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 -                  }
 -#line 834 "dhcp4_parser.cc" // lalr1.cc:859
 +                          ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
 +                          ctx.stack_.back()->add(s);
 +                          }
- #line 872 "dhcp4_parser.cc" // lalr1.cc:859
++#line 862 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 44:
 -#line 292 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 49:
 +#line 307 "dhcp4_parser.yy" // lalr1.cc:859
      {
 -                  // List ending with , and a value.
 -                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 -                  }
 -#line 843 "dhcp4_parser.cc" // lalr1.cc:859
 +                          ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
 +                          ctx.stack_.back()->add(s);
 +                          }
- #line 881 "dhcp4_parser.cc" // lalr1.cc:859
++#line 871 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 45:
 -#line 303 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 50:
 +#line 318 "dhcp4_parser.yy" // lalr1.cc:859
      {
      const std::string& where = ctx.contextName();
      const std::string& keyword = yystack_[1].value.as< std::string > ();
      error(yystack_[1].location,
            "got unexpected keyword \"" + keyword + "\" in " + where + " map.");
  }
- #line 892 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 854 "dhcp4_parser.cc" // lalr1.cc:859
++#line 882 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 46:
 -#line 313 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 51:
 +#line 328 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // This code is executed when we're about to start parsing
      // the content of the map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 903 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 865 "dhcp4_parser.cc" // lalr1.cc:859
++#line 893 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 47:
 -#line 318 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 52:
 +#line 333 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // map parsing completed. If we ever want to do any wrap up
      // (maybe some sanity checking), this would be the best place
      // for it.
  }
- #line 913 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 875 "dhcp4_parser.cc" // lalr1.cc:859
++#line 903 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 55:
 -#line 337 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 60:
 +#line 352 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // This code is executed when we're about to start parsing
      // the content of the map
      ctx.stack_.push_back(m);
      ctx.enter(ctx.DHCP4);
  }
- #line 926 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 888 "dhcp4_parser.cc" // lalr1.cc:859
++#line 916 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 56:
 -#line 344 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 61:
 +#line 359 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // map parsing completed. If we ever want to do any wrap up
      // (maybe some sanity checking), this would be the best place
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 938 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 900 "dhcp4_parser.cc" // lalr1.cc:859
++#line 928 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 57:
 -#line 354 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 62:
 +#line 369 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the Dhcp4 map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 948 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 910 "dhcp4_parser.cc" // lalr1.cc:859
++#line 938 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 58:
 -#line 358 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 63:
 +#line 373 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 956 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 918 "dhcp4_parser.cc" // lalr1.cc:859
++#line 946 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 87:
- #line 406 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 83:
 -#line 392 "dhcp4_parser.yy" // lalr1.cc:859
++  case 88:
++#line 407 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("valid-lifetime", prf);
  }
- #line 965 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 927 "dhcp4_parser.cc" // lalr1.cc:859
++#line 955 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 88:
- #line 411 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 84:
 -#line 397 "dhcp4_parser.yy" // lalr1.cc:859
++  case 89:
++#line 412 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("renew-timer", prf);
  }
- #line 974 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 936 "dhcp4_parser.cc" // lalr1.cc:859
++#line 964 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 89:
- #line 416 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 85:
 -#line 402 "dhcp4_parser.yy" // lalr1.cc:859
++  case 90:
++#line 417 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("rebind-timer", prf);
  }
- #line 983 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 945 "dhcp4_parser.cc" // lalr1.cc:859
++#line 973 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 90:
- #line 421 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 86:
 -#line 407 "dhcp4_parser.yy" // lalr1.cc:859
++  case 91:
++#line 422 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("decline-probation-period", dpp);
  }
- #line 992 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 954 "dhcp4_parser.cc" // lalr1.cc:859
++#line 982 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 91:
- #line 426 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 87:
 -#line 412 "dhcp4_parser.yy" // lalr1.cc:859
++  case 92:
++#line 427 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("echo-client-id", echo);
  }
- #line 1001 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 963 "dhcp4_parser.cc" // lalr1.cc:859
++#line 991 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 92:
- #line 431 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 88:
 -#line 417 "dhcp4_parser.yy" // lalr1.cc:859
++  case 93:
++#line 432 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("match-client-id", match);
  }
- #line 1010 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 972 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1000 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 93:
- #line 437 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 89:
 -#line 423 "dhcp4_parser.yy" // lalr1.cc:859
++  case 94:
++#line 438 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("interfaces-config", i);
      ctx.stack_.push_back(i);
      ctx.enter(ctx.INTERFACES_CONFIG);
  }
- #line 1021 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 983 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1011 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 94:
- #line 442 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 90:
 -#line 428 "dhcp4_parser.yy" // lalr1.cc:859
++  case 95:
++#line 443 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1030 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 992 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1020 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 99:
- #line 455 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 95:
 -#line 441 "dhcp4_parser.yy" // lalr1.cc:859
++  case 100:
++#line 456 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the interfaces-config map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1040 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1002 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1030 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 100:
- #line 459 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 96:
 -#line 445 "dhcp4_parser.yy" // lalr1.cc:859
++  case 101:
++#line 460 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1048 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1010 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1038 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 101:
- #line 463 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 97:
 -#line 449 "dhcp4_parser.yy" // lalr1.cc:859
++  case 102:
++#line 464 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("interfaces", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1059 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1021 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1049 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 102:
- #line 468 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 98:
 -#line 454 "dhcp4_parser.yy" // lalr1.cc:859
++  case 103:
++#line 469 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1068 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1030 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1058 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 103:
- #line 473 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 99:
 -#line 459 "dhcp4_parser.yy" // lalr1.cc:859
++  case 104:
++#line 474 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.DHCP_SOCKET_TYPE);
  }
- #line 1076 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1038 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1066 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 104:
- #line 475 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 100:
 -#line 461 "dhcp4_parser.yy" // lalr1.cc:859
++  case 105:
++#line 476 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 1085 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1047 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1075 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 105:
- #line 480 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 101:
 -#line 466 "dhcp4_parser.yy" // lalr1.cc:859
++  case 106:
++#line 481 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
- #line 1091 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1053 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1081 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 106:
- #line 481 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 102:
 -#line 467 "dhcp4_parser.yy" // lalr1.cc:859
++  case 107:
++#line 482 "dhcp4_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
- #line 1097 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1059 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1087 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 107:
- #line 484 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 103:
 -#line 470 "dhcp4_parser.yy" // lalr1.cc:859
++  case 108:
++#line 485 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("lease-database", i);
      ctx.stack_.push_back(i);
      ctx.enter(ctx.LEASE_DATABASE);
  }
- #line 1108 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1070 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1098 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 108:
- #line 489 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 104:
 -#line 475 "dhcp4_parser.yy" // lalr1.cc:859
++  case 109:
++#line 490 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1117 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1079 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1107 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 109:
- #line 494 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 105:
 -#line 480 "dhcp4_parser.yy" // lalr1.cc:859
++  case 110:
++#line 495 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hosts-database", i);
      ctx.stack_.push_back(i);
      ctx.enter(ctx.HOSTS_DATABASE);
  }
- #line 1128 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1090 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1118 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 110:
- #line 499 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 106:
 -#line 485 "dhcp4_parser.yy" // lalr1.cc:859
++  case 111:
++#line 500 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1137 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1099 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1127 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 118:
 -#line 505 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 123:
 +#line 520 "dhcp4_parser.yy" // lalr1.cc:859
      {
-     ctx.enter(ctx.DATABASE_TYPE);
+     ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1145 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1107 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1135 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 119:
 -#line 507 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 124:
 +#line 522 "dhcp4_parser.yy" // lalr1.cc:859
      {
-     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
+     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("type", prf);
      ctx.leave();
  }
- #line 1154 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1117 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1145 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
 -  case 120:
 -#line 513 "dhcp4_parser.yy" // lalr1.cc:859
 +  case 125:
- #line 527 "dhcp4_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
- #line 1160 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 126:
 +#line 528 "dhcp4_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
- #line 1166 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 127:
- #line 529 "dhcp4_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
- #line 1172 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 128:
- #line 530 "dhcp4_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
- #line 1178 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 129:
- #line 533 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1186 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1125 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1153 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 130:
- #line 535 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 121:
 -#line 515 "dhcp4_parser.yy" // lalr1.cc:859
++  case 126:
++#line 530 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("user", user);
      ctx.leave();
  }
- #line 1196 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1135 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1163 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 131:
- #line 541 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 122:
 -#line 521 "dhcp4_parser.yy" // lalr1.cc:859
++  case 127:
++#line 536 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1204 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1143 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1171 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 132:
- #line 543 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 123:
 -#line 523 "dhcp4_parser.yy" // lalr1.cc:859
++  case 128:
++#line 538 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("password", pwd);
      ctx.leave();
  }
- #line 1214 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1153 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1181 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 133:
- #line 549 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 124:
 -#line 529 "dhcp4_parser.yy" // lalr1.cc:859
++  case 129:
++#line 544 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1222 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1161 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1189 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 134:
- #line 551 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 125:
 -#line 531 "dhcp4_parser.yy" // lalr1.cc:859
++  case 130:
++#line 546 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("host", h);
      ctx.leave();
  }
- #line 1232 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1171 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1199 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 135:
- #line 557 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 126:
 -#line 537 "dhcp4_parser.yy" // lalr1.cc:859
++  case 131:
++#line 552 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1240 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1179 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1207 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 136:
- #line 559 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 127:
 -#line 539 "dhcp4_parser.yy" // lalr1.cc:859
++  case 132:
++#line 554 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("name", name);
      ctx.leave();
  }
- #line 1250 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1189 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1217 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 137:
- #line 565 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 128:
 -#line 545 "dhcp4_parser.yy" // lalr1.cc:859
++  case 133:
++#line 560 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("persist", n);
  }
- #line 1259 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1198 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1226 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 138:
- #line 570 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 129:
 -#line 550 "dhcp4_parser.yy" // lalr1.cc:859
++  case 134:
++#line 565 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("lfc-interval", n);
  }
- #line 1268 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1207 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1235 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 139:
- #line 575 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 130:
 -#line 555 "dhcp4_parser.yy" // lalr1.cc:859
++  case 135:
++#line 570 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("readonly", n);
  }
- #line 1277 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1216 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1244 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 140:
- #line 580 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 131:
 -#line 560 "dhcp4_parser.yy" // lalr1.cc:859
++  case 136:
++#line 575 "dhcp4_parser.yy" // lalr1.cc:859
      {
-     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
-     ctx.stack_.back()->set("connect-timeout", n);
+     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->add(duid);
  }
- #line 1286 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1225 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1253 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 141:
- #line 585 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 132:
 -#line 565 "dhcp4_parser.yy" // lalr1.cc:859
++  case 137:
++#line 580 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("host-reservation-identifiers", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
  }
- #line 1297 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1236 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1264 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 142:
- #line 590 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 133:
 -#line 570 "dhcp4_parser.yy" // lalr1.cc:859
++  case 138:
++#line 585 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1306 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 149:
- #line 605 "dhcp4_parser.yy" // lalr1.cc:859
-     {
-     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
-     ctx.stack_.back()->add(duid);
- }
- #line 1315 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1245 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1273 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 150:
- #line 610 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 140:
 -#line 585 "dhcp4_parser.yy" // lalr1.cc:859
++  case 145:
++#line 600 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(hwaddr);
  }
- #line 1324 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1254 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1282 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 151:
- #line 615 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 141:
 -#line 590 "dhcp4_parser.yy" // lalr1.cc:859
++  case 146:
++#line 605 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(circuit);
  }
- #line 1333 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1263 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1291 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 152:
- #line 620 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 142:
 -#line 595 "dhcp4_parser.yy" // lalr1.cc:859
++  case 147:
++#line 610 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(client);
  }
- #line 1342 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1272 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1300 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 153:
- #line 625 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 143:
 -#line 600 "dhcp4_parser.yy" // lalr1.cc:859
++  case 148:
++#line 615 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hooks-libraries", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.HOOKS_LIBRARIES);
  }
- #line 1353 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1283 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1311 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 154:
- #line 630 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 144:
 -#line 605 "dhcp4_parser.yy" // lalr1.cc:859
++  case 149:
++#line 620 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1362 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1292 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1320 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 159:
- #line 643 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 149:
 -#line 618 "dhcp4_parser.yy" // lalr1.cc:859
++  case 154:
++#line 633 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1372 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1302 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1330 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 160:
- #line 647 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 150:
 -#line 622 "dhcp4_parser.yy" // lalr1.cc:859
++  case 155:
++#line 637 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1380 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1310 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1338 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 161:
- #line 651 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 151:
 -#line 626 "dhcp4_parser.yy" // lalr1.cc:859
++  case 156:
++#line 641 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the hooks-libraries list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1390 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1320 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1348 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 162:
- #line 655 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 152:
 -#line 630 "dhcp4_parser.yy" // lalr1.cc:859
++  case 157:
++#line 645 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1398 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1328 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1356 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 168:
- #line 668 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 158:
 -#line 643 "dhcp4_parser.yy" // lalr1.cc:859
++  case 163:
++#line 658 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1406 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1336 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1364 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 169:
- #line 670 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 159:
 -#line 645 "dhcp4_parser.yy" // lalr1.cc:859
++  case 164:
++#line 660 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("library", lib);
      ctx.leave();
  }
- #line 1416 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1346 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1374 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 170:
- #line 676 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 160:
 -#line 651 "dhcp4_parser.yy" // lalr1.cc:859
++  case 165:
++#line 666 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1424 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1354 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1382 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 171:
- #line 678 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 161:
 -#line 653 "dhcp4_parser.yy" // lalr1.cc:859
++  case 166:
++#line 668 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 1433 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1363 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1391 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 172:
- #line 684 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 162:
 -#line 659 "dhcp4_parser.yy" // lalr1.cc:859
++  case 167:
++#line 674 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("expired-leases-processing", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
  }
- #line 1444 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1374 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1402 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 173:
- #line 689 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 163:
 -#line 664 "dhcp4_parser.yy" // lalr1.cc:859
++  case 168:
++#line 679 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1453 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1383 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1411 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 182:
- #line 706 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 172:
 -#line 681 "dhcp4_parser.yy" // lalr1.cc:859
++  case 177:
++#line 696 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1462 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1392 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1420 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 183:
- #line 711 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 173:
 -#line 686 "dhcp4_parser.yy" // lalr1.cc:859
++  case 178:
++#line 701 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1471 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1401 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1429 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 184:
- #line 716 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 174:
 -#line 691 "dhcp4_parser.yy" // lalr1.cc:859
++  case 179:
++#line 706 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hold-reclaimed-time", value);
  }
- #line 1480 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1410 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1438 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 185:
- #line 721 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 175:
 -#line 696 "dhcp4_parser.yy" // lalr1.cc:859
++  case 180:
++#line 711 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("max-reclaim-leases", value);
  }
- #line 1489 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1419 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1447 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 186:
- #line 726 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 176:
 -#line 701 "dhcp4_parser.yy" // lalr1.cc:859
++  case 181:
++#line 716 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("max-reclaim-time", value);
  }
- #line 1498 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1428 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1456 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 187:
- #line 731 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 177:
 -#line 706 "dhcp4_parser.yy" // lalr1.cc:859
++  case 182:
++#line 721 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
  }
- #line 1507 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1437 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1465 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 188:
- #line 739 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 178:
 -#line 714 "dhcp4_parser.yy" // lalr1.cc:859
++  case 183:
++#line 729 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("subnet4", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.SUBNET4);
  }
- #line 1518 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1448 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1476 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 189:
- #line 744 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 179:
 -#line 719 "dhcp4_parser.yy" // lalr1.cc:859
++  case 184:
++#line 734 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1527 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1457 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1485 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 194:
- #line 764 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 184:
 -#line 739 "dhcp4_parser.yy" // lalr1.cc:859
++  case 189:
++#line 754 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1537 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1467 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1495 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 195:
- #line 768 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 185:
 -#line 743 "dhcp4_parser.yy" // lalr1.cc:859
++  case 190:
++#line 758 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Once we reached this place, the subnet parsing is now complete.
      // If we want to, we can implement default values here.
      // }
      ctx.stack_.pop_back();
  }
- #line 1560 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1490 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1518 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 196:
- #line 787 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 186:
 -#line 762 "dhcp4_parser.yy" // lalr1.cc:859
++  case 191:
++#line 777 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the subnet4 list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1570 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1500 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1528 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 197:
- #line 791 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 187:
 -#line 766 "dhcp4_parser.yy" // lalr1.cc:859
++  case 192:
++#line 781 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1578 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1508 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1536 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 220:
- #line 823 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 210:
 -#line 798 "dhcp4_parser.yy" // lalr1.cc:859
++  case 215:
++#line 813 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1586 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1516 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1544 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 221:
- #line 825 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 211:
 -#line 800 "dhcp4_parser.yy" // lalr1.cc:859
++  case 216:
++#line 815 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("subnet", subnet);
      ctx.leave();
  }
- #line 1596 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1526 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1554 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 222:
- #line 831 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 212:
 -#line 806 "dhcp4_parser.yy" // lalr1.cc:859
++  case 217:
++#line 821 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1604 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1534 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1562 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 223:
- #line 833 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 213:
 -#line 808 "dhcp4_parser.yy" // lalr1.cc:859
++  case 218:
++#line 823 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1614 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1544 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1572 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 224:
- #line 839 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 214:
 -#line 814 "dhcp4_parser.yy" // lalr1.cc:859
++  case 219:
++#line 829 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1622 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1552 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1580 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 225:
- #line 841 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 215:
 -#line 816 "dhcp4_parser.yy" // lalr1.cc:859
++  case 220:
++#line 831 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1632 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1562 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1590 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 226:
- #line 847 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 216:
 -#line 822 "dhcp4_parser.yy" // lalr1.cc:859
++  case 221:
++#line 837 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1640 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1570 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1598 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 227:
- #line 849 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 217:
 -#line 824 "dhcp4_parser.yy" // lalr1.cc:859
++  case 222:
++#line 839 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1650 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1580 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1608 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 228:
- #line 855 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 218:
 -#line 830 "dhcp4_parser.yy" // lalr1.cc:859
++  case 223:
++#line 845 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1658 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1588 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1616 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 229:
- #line 857 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 219:
 -#line 832 "dhcp4_parser.yy" // lalr1.cc:859
++  case 224:
++#line 847 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("interface", iface);
      ctx.leave();
  }
- #line 1668 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1598 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1626 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 230:
- #line 863 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 220:
 -#line 838 "dhcp4_parser.yy" // lalr1.cc:859
++  case 225:
++#line 853 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1676 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1606 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1634 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 231:
- #line 865 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 221:
 -#line 840 "dhcp4_parser.yy" // lalr1.cc:859
++  case 226:
++#line 855 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1686 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1616 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1644 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 232:
- #line 871 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 222:
 -#line 846 "dhcp4_parser.yy" // lalr1.cc:859
++  case 227:
++#line 861 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.CLIENT_CLASS);
  }
- #line 1694 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1624 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1652 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 233:
- #line 873 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 223:
 -#line 848 "dhcp4_parser.yy" // lalr1.cc:859
++  case 228:
++#line 863 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1704 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1634 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1662 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 234:
- #line 879 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 224:
 -#line 854 "dhcp4_parser.yy" // lalr1.cc:859
++  case 229:
++#line 869 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1712 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1642 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1670 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 235:
- #line 881 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 225:
 -#line 856 "dhcp4_parser.yy" // lalr1.cc:859
++  case 230:
++#line 871 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("reservation-mode", rm);
      ctx.leave();
  }
- #line 1722 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1652 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1680 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 236:
- #line 887 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 226:
 -#line 862 "dhcp4_parser.yy" // lalr1.cc:859
++  case 231:
++#line 877 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("id", id);
  }
- #line 1731 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1661 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1689 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 237:
- #line 892 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 227:
 -#line 867 "dhcp4_parser.yy" // lalr1.cc:859
++  case 232:
++#line 882 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("rapid-commit", rc);
  }
- #line 1740 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1670 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1698 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 238:
- #line 901 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 228:
 -#line 876 "dhcp4_parser.yy" // lalr1.cc:859
++  case 233:
++#line 891 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("option-def", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.OPTION_DEF);
  }
- #line 1751 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1681 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1709 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 239:
- #line 906 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 229:
 -#line 881 "dhcp4_parser.yy" // lalr1.cc:859
++  case 234:
++#line 896 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1760 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1690 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1718 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 244:
- #line 923 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 234:
 -#line 898 "dhcp4_parser.yy" // lalr1.cc:859
++  case 239:
++#line 913 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1770 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1700 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1728 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 245:
- #line 927 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 235:
 -#line 902 "dhcp4_parser.yy" // lalr1.cc:859
++  case 240:
++#line 917 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1778 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1708 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1736 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 246:
- #line 934 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 236:
 -#line 909 "dhcp4_parser.yy" // lalr1.cc:859
++  case 241:
++#line 924 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the option-def list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1788 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1718 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1746 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 247:
- #line 938 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 237:
 -#line 913 "dhcp4_parser.yy" // lalr1.cc:859
++  case 242:
++#line 928 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1796 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1726 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1754 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 261:
- #line 964 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 251:
 -#line 939 "dhcp4_parser.yy" // lalr1.cc:859
++  case 256:
++#line 954 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("code", code);
  }
- #line 1805 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1735 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1763 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 263:
- #line 971 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 254:
 -#line 948 "dhcp4_parser.yy" // lalr1.cc:859
++  case 259:
++#line 963 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1813 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1743 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1771 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 264:
- #line 973 "dhcp4_parser.yy" // lalr1.cc:859
-     {
-     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
-     ctx.stack_.back()->set("type", prf);
-     ctx.leave();
- }
- #line 1823 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 265:
- #line 979 "dhcp4_parser.yy" // lalr1.cc:859
-     {
-     ctx.enter(ctx.NO_KEYWORD);
- }
- #line 1831 "dhcp4_parser.cc" // lalr1.cc:859
-     break;
-   case 266:
- #line 981 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 255:
 -#line 950 "dhcp4_parser.yy" // lalr1.cc:859
++  case 260:
++#line 965 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 1841 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1753 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1781 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 267:
- #line 987 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 256:
 -#line 956 "dhcp4_parser.yy" // lalr1.cc:859
++  case 261:
++#line 971 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1849 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1761 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1789 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 268:
- #line 989 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 257:
 -#line 958 "dhcp4_parser.yy" // lalr1.cc:859
++  case 262:
++#line 973 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("space", space);
      ctx.leave();
  }
- #line 1859 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1771 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1799 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 270:
- #line 997 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 259:
 -#line 966 "dhcp4_parser.yy" // lalr1.cc:859
++  case 264:
++#line 981 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1867 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1779 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1807 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 271:
- #line 999 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 260:
 -#line 968 "dhcp4_parser.yy" // lalr1.cc:859
++  case 265:
++#line 983 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("encapsulate", encap);
      ctx.leave();
  }
- #line 1877 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1789 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1817 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 272:
- #line 1005 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 261:
 -#line 974 "dhcp4_parser.yy" // lalr1.cc:859
++  case 266:
++#line 989 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("array", array);
  }
- #line 1886 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1798 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1826 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 273:
- #line 1014 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 262:
 -#line 983 "dhcp4_parser.yy" // lalr1.cc:859
++  case 267:
++#line 998 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("option-data", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.OPTION_DATA);
  }
- #line 1897 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1809 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1837 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 274:
- #line 1019 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 263:
 -#line 988 "dhcp4_parser.yy" // lalr1.cc:859
++  case 268:
++#line 1003 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1906 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1818 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1846 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 279:
- #line 1038 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 268:
 -#line 1007 "dhcp4_parser.yy" // lalr1.cc:859
++  case 273:
++#line 1022 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1916 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1828 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1856 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 280:
- #line 1042 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 269:
 -#line 1011 "dhcp4_parser.yy" // lalr1.cc:859
++  case 274:
++#line 1026 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1924 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1836 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1864 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 281:
- #line 1049 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 270:
 -#line 1018 "dhcp4_parser.yy" // lalr1.cc:859
++  case 275:
++#line 1033 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the option-data list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1934 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1846 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1874 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 282:
- #line 1053 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 271:
 -#line 1022 "dhcp4_parser.yy" // lalr1.cc:859
++  case 276:
++#line 1037 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1942 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1854 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1882 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 294:
- #line 1082 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 283:
 -#line 1051 "dhcp4_parser.yy" // lalr1.cc:859
++  case 288:
++#line 1066 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1950 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1862 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1890 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 295:
- #line 1084 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 284:
 -#line 1053 "dhcp4_parser.yy" // lalr1.cc:859
++  case 289:
++#line 1068 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("data", data);
      ctx.leave();
  }
- #line 1960 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1872 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1900 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 298:
- #line 1094 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 287:
 -#line 1063 "dhcp4_parser.yy" // lalr1.cc:859
++  case 292:
++#line 1078 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("csv-format", space);
  }
- #line 1969 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1881 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1909 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 299:
- #line 1102 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 288:
 -#line 1071 "dhcp4_parser.yy" // lalr1.cc:859
++  case 293:
++#line 1086 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("pools", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.POOLS);
  }
- #line 1980 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1892 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1920 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 300:
- #line 1107 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 289:
 -#line 1076 "dhcp4_parser.yy" // lalr1.cc:859
++  case 294:
++#line 1091 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1989 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1901 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1929 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 305:
- #line 1122 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 294:
 -#line 1091 "dhcp4_parser.yy" // lalr1.cc:859
++  case 299:
++#line 1106 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1999 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1911 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1939 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 306:
- #line 1126 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 295:
 -#line 1095 "dhcp4_parser.yy" // lalr1.cc:859
++  case 300:
++#line 1110 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2007 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1919 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1947 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 307:
- #line 1130 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 296:
 -#line 1099 "dhcp4_parser.yy" // lalr1.cc:859
++  case 301:
++#line 1114 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the pool list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 2017 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1929 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1957 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 308:
- #line 1134 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 297:
 -#line 1103 "dhcp4_parser.yy" // lalr1.cc:859
++  case 302:
++#line 1118 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 2025 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1937 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1965 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 314:
- #line 1147 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 304:
 -#line 1117 "dhcp4_parser.yy" // lalr1.cc:859
++  case 308:
++#line 1131 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2033 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1945 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1973 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 315:
- #line 1149 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 305:
 -#line 1119 "dhcp4_parser.yy" // lalr1.cc:859
++  case 309:
++#line 1133 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("pool", pool);
      ctx.leave();
  }
- #line 2043 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1955 "dhcp4_parser.cc" // lalr1.cc:859
 -    break;
 -
 -  case 306:
 -#line 1125 "dhcp4_parser.yy" // lalr1.cc:859
 -    {
 -    ctx.enter(ctx.NO_KEYWORD);
 -}
 -#line 1963 "dhcp4_parser.cc" // lalr1.cc:859
 -    break;
 -
 -  case 307:
 -#line 1127 "dhcp4_parser.yy" // lalr1.cc:859
 -    {
 -    ctx.stack_.back()->set("user-context", yystack_[0].value.as< ElementPtr > ());
 -    ctx.leave();
 -}
 -#line 1972 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1983 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 316:
- #line 1158 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 308:
 -#line 1135 "dhcp4_parser.yy" // lalr1.cc:859
++  case 310:
++#line 1142 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("reservations", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.RESERVATIONS);
  }
- #line 2054 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1983 "dhcp4_parser.cc" // lalr1.cc:859
++#line 1994 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 317:
- #line 1163 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 309:
 -#line 1140 "dhcp4_parser.yy" // lalr1.cc:859
++  case 311:
++#line 1147 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2063 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 1992 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2003 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 322:
- #line 1176 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 314:
 -#line 1153 "dhcp4_parser.yy" // lalr1.cc:859
++  case 316:
++#line 1160 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2073 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2002 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2013 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 323:
- #line 1180 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 315:
 -#line 1157 "dhcp4_parser.yy" // lalr1.cc:859
++  case 317:
++#line 1164 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2081 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2010 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2021 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 324:
- #line 1184 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 316:
 -#line 1161 "dhcp4_parser.yy" // lalr1.cc:859
++  case 318:
++#line 1168 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // Parse the reservations list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 2091 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2020 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2031 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 325:
- #line 1188 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 317:
 -#line 1165 "dhcp4_parser.yy" // lalr1.cc:859
++  case 319:
++#line 1172 "dhcp4_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 2099 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2028 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2039 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 342:
- #line 1215 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 334:
 -#line 1192 "dhcp4_parser.yy" // lalr1.cc:859
++  case 336:
++#line 1199 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2107 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2036 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2047 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 343:
- #line 1217 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 335:
 -#line 1194 "dhcp4_parser.yy" // lalr1.cc:859
++  case 337:
++#line 1201 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2117 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2046 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2057 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 344:
- #line 1223 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 336:
 -#line 1200 "dhcp4_parser.yy" // lalr1.cc:859
++  case 338:
++#line 1207 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2125 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2054 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2065 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 345:
- #line 1225 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 337:
 -#line 1202 "dhcp4_parser.yy" // lalr1.cc:859
++  case 339:
++#line 1209 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2135 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2064 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2075 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 346:
- #line 1231 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 338:
 -#line 1208 "dhcp4_parser.yy" // lalr1.cc:859
++  case 340:
++#line 1215 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2143 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2072 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2083 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 347:
- #line 1233 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 339:
 -#line 1210 "dhcp4_parser.yy" // lalr1.cc:859
++  case 341:
++#line 1217 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2153 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2082 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2093 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 348:
- #line 1239 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 340:
 -#line 1216 "dhcp4_parser.yy" // lalr1.cc:859
++  case 342:
++#line 1223 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2161 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2090 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2101 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 349:
- #line 1241 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 341:
 -#line 1218 "dhcp4_parser.yy" // lalr1.cc:859
++  case 343:
++#line 1225 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2171 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2100 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2111 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 350:
- #line 1247 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 342:
 -#line 1224 "dhcp4_parser.yy" // lalr1.cc:859
++  case 344:
++#line 1231 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2179 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2108 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2119 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 351:
- #line 1249 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 343:
 -#line 1226 "dhcp4_parser.yy" // lalr1.cc:859
++  case 345:
++#line 1233 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("duid", d);
      ctx.leave();
  }
- #line 2189 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2118 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2129 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 352:
- #line 1255 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 344:
 -#line 1232 "dhcp4_parser.yy" // lalr1.cc:859
++  case 346:
++#line 1239 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2197 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2126 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2137 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 353:
- #line 1257 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 345:
 -#line 1234 "dhcp4_parser.yy" // lalr1.cc:859
++  case 347:
++#line 1241 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2207 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2136 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2147 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 354:
- #line 1263 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 346:
 -#line 1240 "dhcp4_parser.yy" // lalr1.cc:859
++  case 348:
++#line 1247 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2215 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2144 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2155 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 355:
- #line 1265 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 347:
 -#line 1242 "dhcp4_parser.yy" // lalr1.cc:859
++  case 349:
++#line 1249 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2225 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2154 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2165 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 356:
- #line 1271 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 348:
 -#line 1248 "dhcp4_parser.yy" // lalr1.cc:859
++  case 350:
++#line 1255 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2233 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2162 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2173 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 357:
- #line 1273 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 349:
 -#line 1250 "dhcp4_parser.yy" // lalr1.cc:859
++  case 351:
++#line 1257 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2243 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2172 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2183 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 358:
- #line 1280 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 350:
 -#line 1257 "dhcp4_parser.yy" // lalr1.cc:859
++  case 352:
++#line 1264 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2251 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2180 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2191 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 359:
- #line 1282 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 351:
 -#line 1259 "dhcp4_parser.yy" // lalr1.cc:859
++  case 353:
++#line 1266 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hostname", host);
      ctx.leave();
  }
- #line 2261 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2190 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2201 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 360:
- #line 1288 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 352:
 -#line 1265 "dhcp4_parser.yy" // lalr1.cc:859
++  case 354:
++#line 1272 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("client-classes", c);
      ctx.stack_.push_back(c);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2272 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2201 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2212 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 361:
- #line 1293 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 353:
 -#line 1270 "dhcp4_parser.yy" // lalr1.cc:859
++  case 355:
++#line 1277 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2281 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2210 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2221 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 362:
- #line 1301 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 354:
 -#line 1278 "dhcp4_parser.yy" // lalr1.cc:859
++  case 356:
++#line 1285 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("relay", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.RELAY);
  }
- #line 2292 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2221 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2232 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 363:
- #line 1306 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 355:
 -#line 1283 "dhcp4_parser.yy" // lalr1.cc:859
++  case 357:
++#line 1290 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2301 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2230 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2241 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 364:
- #line 1311 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 356:
 -#line 1288 "dhcp4_parser.yy" // lalr1.cc:859
++  case 358:
++#line 1295 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2309 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2238 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2249 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 365:
- #line 1313 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 357:
 -#line 1290 "dhcp4_parser.yy" // lalr1.cc:859
++  case 359:
++#line 1297 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("ip-address", ip);
      ctx.leave();
  }
- #line 2319 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2248 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2259 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 366:
- #line 1322 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 358:
 -#line 1299 "dhcp4_parser.yy" // lalr1.cc:859
++  case 360:
++#line 1306 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("client-classes", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.CLIENT_CLASSES);
  }
- #line 2330 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2259 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2270 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 367:
- #line 1327 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 359:
 -#line 1304 "dhcp4_parser.yy" // lalr1.cc:859
++  case 361:
++#line 1311 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2339 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2268 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2279 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 370:
- #line 1336 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 362:
 -#line 1313 "dhcp4_parser.yy" // lalr1.cc:859
++  case 364:
++#line 1320 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2349 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2278 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2289 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 371:
- #line 1340 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 363:
 -#line 1317 "dhcp4_parser.yy" // lalr1.cc:859
++  case 365:
++#line 1324 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2357 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2286 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2297 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 384:
- #line 1363 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 376:
 -#line 1340 "dhcp4_parser.yy" // lalr1.cc:859
++  case 378:
++#line 1347 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2365 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2294 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2305 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 385:
- #line 1365 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 377:
 -#line 1342 "dhcp4_parser.yy" // lalr1.cc:859
++  case 379:
++#line 1349 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("test", test);
      ctx.leave();
  }
- #line 2375 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2304 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2315 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 378:
 -#line 1351 "dhcp4_parser.yy" // lalr1.cc:859
++  case 380:
++#line 1358 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("server-id", m);
+     ctx.stack_.push_back(m);
+     ctx.enter(ctx.SERVER_ID);
+ }
 -#line 2315 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2326 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 379:
 -#line 1356 "dhcp4_parser.yy" // lalr1.cc:859
++  case 381:
++#line 1363 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ctx.stack_.pop_back();
+     ctx.leave();
+ }
 -#line 2324 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2335 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 389:
 -#line 1374 "dhcp4_parser.yy" // lalr1.cc:859
++  case 391:
++#line 1381 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("htype", htype);
+ }
 -#line 2333 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2344 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 390:
 -#line 1379 "dhcp4_parser.yy" // lalr1.cc:859
++  case 392:
++#line 1386 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ctx.enter(ctx.NO_KEYWORD);
+ }
 -#line 2341 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2352 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 391:
 -#line 1381 "dhcp4_parser.yy" // lalr1.cc:859
++  case 393:
++#line 1388 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("identifier", id);
+     ctx.leave();
+ }
 -#line 2351 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2362 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 392:
 -#line 1387 "dhcp4_parser.yy" // lalr1.cc:859
++  case 394:
++#line 1394 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("time", time);
+ }
 -#line 2360 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2371 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 386:
- #line 1375 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 393:
 -#line 1392 "dhcp4_parser.yy" // lalr1.cc:859
++  case 395:
++#line 1399 "dhcp4_parser.yy" // lalr1.cc:859
+     {
+     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("enterprise-id", time);
+ }
 -#line 2369 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2380 "dhcp4_parser.cc" // lalr1.cc:859
+     break;
 -  case 394:
 -#line 1399 "dhcp4_parser.yy" // lalr1.cc:859
++  case 396:
++#line 1406 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("dhcp4o6-port", time);
  }
- #line 2384 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2378 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2389 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 387:
- #line 1382 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 395:
 -#line 1406 "dhcp4_parser.yy" // lalr1.cc:859
++  case 397:
++#line 1413 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("control-socket", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.CONTROL_SOCKET);
  }
- #line 2395 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2389 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2400 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 388:
- #line 1387 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 396:
 -#line 1411 "dhcp4_parser.yy" // lalr1.cc:859
++  case 398:
++#line 1418 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2404 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2398 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2409 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 393:
- #line 1400 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 401:
 -#line 1424 "dhcp4_parser.yy" // lalr1.cc:859
++  case 403:
++#line 1431 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2412 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2406 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2417 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 394:
- #line 1402 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 402:
 -#line 1426 "dhcp4_parser.yy" // lalr1.cc:859
++  case 404:
++#line 1433 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2422 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2416 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2427 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 395:
- #line 1408 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 403:
 -#line 1432 "dhcp4_parser.yy" // lalr1.cc:859
++  case 405:
++#line 1439 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2430 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2424 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2435 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 396:
- #line 1410 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 404:
 -#line 1434 "dhcp4_parser.yy" // lalr1.cc:859
++  case 406:
++#line 1441 "dhcp4_parser.yy" // lalr1.cc:859
      {
      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 2440 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2434 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2445 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 397:
- #line 1418 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 405:
 -#line 1442 "dhcp4_parser.yy" // lalr1.cc:859
++  case 407:
++#line 1449 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("dhcp-ddns", m);
      ctx.stack_.push_back(m);
 -    ctx.enter(ctx.NO_KEYWORD);
 +    ctx.enter(ctx.DHCP_DDNS);
  }
- #line 2451 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2445 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2456 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 398:
- #line 1423 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 406:
 -#line 1447 "dhcp4_parser.yy" // lalr1.cc:859
++  case 408:
++#line 1454 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2460 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2454 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2465 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 399:
- #line 1428 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 407:
 -#line 1454 "dhcp4_parser.yy" // lalr1.cc:859
++  case 409:
++#line 1459 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    // Parse the dhcp-ddns map
 +    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.push_back(m);
 +}
- #line 2470 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2475 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 400:
- #line 1432 "dhcp4_parser.yy" // lalr1.cc:859
++  case 410:
++#line 1463 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    // parsing completed
 +}
- #line 2478 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2483 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 419:
- #line 1458 "dhcp4_parser.yy" // lalr1.cc:859
++  case 429:
++#line 1489 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("enable-updates", b);
 +}
- #line 2487 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2492 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 420:
- #line 1463 "dhcp4_parser.yy" // lalr1.cc:859
++  case 430:
++#line 1494 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2495 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2462 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2500 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 421:
- #line 1465 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 408:
 -#line 1456 "dhcp4_parser.yy" // lalr1.cc:859
++  case 431:
++#line 1496 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    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 2505 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2510 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 422:
- #line 1471 "dhcp4_parser.yy" // lalr1.cc:859
++  case 432:
++#line 1502 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2513 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2518 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 423:
- #line 1473 "dhcp4_parser.yy" // lalr1.cc:859
++  case 433:
++#line 1504 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    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 2523 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2528 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 424:
- #line 1479 "dhcp4_parser.yy" // lalr1.cc:859
++  case 434:
++#line 1510 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("server-port", i);
 +}
- #line 2532 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2537 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 425:
- #line 1484 "dhcp4_parser.yy" // lalr1.cc:859
++  case 435:
++#line 1515 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2540 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2545 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 426:
- #line 1486 "dhcp4_parser.yy" // lalr1.cc:859
++  case 436:
++#line 1517 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    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 2550 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2555 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 427:
- #line 1492 "dhcp4_parser.yy" // lalr1.cc:859
++  case 437:
++#line 1523 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("sender-port", i);
 +}
- #line 2559 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2564 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 428:
- #line 1497 "dhcp4_parser.yy" // lalr1.cc:859
++  case 438:
++#line 1528 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("max-queue-size", i);
 +}
- #line 2568 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2573 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 429:
- #line 1502 "dhcp4_parser.yy" // lalr1.cc:859
++  case 439:
++#line 1533 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NCR_PROTOCOL);
 +}
- #line 2576 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2581 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 430:
- #line 1504 "dhcp4_parser.yy" // lalr1.cc:859
++  case 440:
++#line 1535 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
 +    ctx.leave();
 +}
- #line 2585 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2590 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 431:
- #line 1510 "dhcp4_parser.yy" // lalr1.cc:859
++  case 441:
++#line 1541 "dhcp4_parser.yy" // lalr1.cc:859
 +    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
- #line 2591 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2596 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 432:
- #line 1511 "dhcp4_parser.yy" // lalr1.cc:859
++  case 442:
++#line 1542 "dhcp4_parser.yy" // lalr1.cc:859
 +    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
- #line 2597 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2602 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 433:
- #line 1514 "dhcp4_parser.yy" // lalr1.cc:859
++  case 443:
++#line 1545 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NCR_FORMAT);
 +}
- #line 2605 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2610 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 434:
- #line 1516 "dhcp4_parser.yy" // lalr1.cc:859
++  case 444:
++#line 1547 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("ncr-format", json);
 +    ctx.leave();
 +}
- #line 2615 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2620 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 435:
- #line 1522 "dhcp4_parser.yy" // lalr1.cc:859
++  case 445:
++#line 1553 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("always-include-fqdn", b);
 +}
- #line 2624 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2629 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 436:
- #line 1527 "dhcp4_parser.yy" // lalr1.cc:859
++  case 446:
++#line 1558 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("allow-client-update",  b);
 +}
- #line 2633 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2638 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 437:
- #line 1532 "dhcp4_parser.yy" // lalr1.cc:859
++  case 447:
++#line 1563 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("override-no-update", b);
 +}
- #line 2642 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2647 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 438:
- #line 1537 "dhcp4_parser.yy" // lalr1.cc:859
++  case 448:
++#line 1568 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("override-client-update", b);
 +}
- #line 2651 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2656 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 439:
- #line 1542 "dhcp4_parser.yy" // lalr1.cc:859
++  case 449:
++#line 1573 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.REPLACE_CLIENT_NAME);
 +}
- #line 2659 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2664 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 440:
- #line 1544 "dhcp4_parser.yy" // lalr1.cc:859
++  case 450:
++#line 1575 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
 +    ctx.leave();
 +}
- #line 2668 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2673 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 441:
- #line 1550 "dhcp4_parser.yy" // lalr1.cc:859
++  case 451:
++#line 1581 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
 +      }
- #line 2676 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2681 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 442:
- #line 1553 "dhcp4_parser.yy" // lalr1.cc:859
++  case 452:
++#line 1584 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
 +      }
- #line 2684 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2689 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 443:
- #line 1556 "dhcp4_parser.yy" // lalr1.cc:859
++  case 453:
++#line 1587 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
 +      }
- #line 2692 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2697 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 444:
- #line 1559 "dhcp4_parser.yy" // lalr1.cc:859
++  case 454:
++#line 1590 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
 +      }
- #line 2700 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2705 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 445:
- #line 1562 "dhcp4_parser.yy" // lalr1.cc:859
++  case 455:
++#line 1593 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +      error(yystack_[0].location, "boolean values for the replace-client-name are "
 +                "no longer supported");
 +      }
- #line 2709 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2714 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 446:
- #line 1568 "dhcp4_parser.yy" // lalr1.cc:859
++  case 456:
++#line 1599 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2717 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2722 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 447:
- #line 1570 "dhcp4_parser.yy" // lalr1.cc:859
++  case 457:
++#line 1601 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    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 2727 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2732 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 448:
- #line 1578 "dhcp4_parser.yy" // lalr1.cc:859
++  case 458:
++#line 1609 "dhcp4_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2735 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2740 "dhcp4_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 449:
- #line 1580 "dhcp4_parser.yy" // lalr1.cc:859
++  case 459:
++#line 1611 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 2744 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2471 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2749 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 450:
- #line 1585 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 409:
 -#line 1461 "dhcp4_parser.yy" // lalr1.cc:859
++  case 460:
++#line 1616 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2752 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2479 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2757 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 451:
- #line 1587 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 410:
 -#line 1463 "dhcp4_parser.yy" // lalr1.cc:859
++  case 461:
++#line 1618 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 2761 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2488 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2766 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 452:
- #line 1597 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 411:
 -#line 1473 "dhcp4_parser.yy" // lalr1.cc:859
++  case 462:
++#line 1628 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("Logging", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.LOGGING);
  }
- #line 2772 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2499 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2777 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 453:
- #line 1602 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 412:
 -#line 1478 "dhcp4_parser.yy" // lalr1.cc:859
++  case 463:
++#line 1633 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2781 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2508 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2786 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 457:
- #line 1619 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 416:
 -#line 1495 "dhcp4_parser.yy" // lalr1.cc:859
++  case 467:
++#line 1650 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("loggers", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.LOGGERS);
  }
- #line 2792 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2519 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2797 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 458:
- #line 1624 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 417:
 -#line 1500 "dhcp4_parser.yy" // lalr1.cc:859
++  case 468:
++#line 1655 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2801 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2528 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2806 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 461:
- #line 1636 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 420:
 -#line 1512 "dhcp4_parser.yy" // lalr1.cc:859
++  case 471:
++#line 1667 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(l);
      ctx.stack_.push_back(l);
  }
- #line 2811 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2538 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2816 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 462:
- #line 1640 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 421:
 -#line 1516 "dhcp4_parser.yy" // lalr1.cc:859
++  case 472:
++#line 1671 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2819 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2546 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2824 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 470:
- #line 1655 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 429:
 -#line 1531 "dhcp4_parser.yy" // lalr1.cc:859
++  case 480:
++#line 1686 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("debuglevel", dl);
  }
- #line 2828 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2555 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2833 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 471:
- #line 1659 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 430:
 -#line 1535 "dhcp4_parser.yy" // lalr1.cc:859
++  case 481:
++#line 1690 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2836 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2563 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2841 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 472:
- #line 1661 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 431:
 -#line 1537 "dhcp4_parser.yy" // lalr1.cc:859
++  case 482:
++#line 1692 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("severity", sev);
      ctx.leave();
  }
- #line 2846 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2573 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2851 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 473:
- #line 1667 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 432:
 -#line 1543 "dhcp4_parser.yy" // lalr1.cc:859
++  case 483:
++#line 1698 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("output_options", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.OUTPUT_OPTIONS);
  }
- #line 2857 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2584 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2862 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 474:
- #line 1672 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 433:
 -#line 1548 "dhcp4_parser.yy" // lalr1.cc:859
++  case 484:
++#line 1703 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2866 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2593 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2871 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 477:
- #line 1681 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 436:
 -#line 1557 "dhcp4_parser.yy" // lalr1.cc:859
++  case 487:
++#line 1712 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2876 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2603 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2881 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 478:
- #line 1685 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 437:
 -#line 1561 "dhcp4_parser.yy" // lalr1.cc:859
++  case 488:
++#line 1716 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2884 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2611 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2889 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 481:
- #line 1693 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 440:
 -#line 1569 "dhcp4_parser.yy" // lalr1.cc:859
++  case 491:
++#line 1724 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2892 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2619 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2897 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
-   case 482:
- #line 1695 "dhcp4_parser.yy" // lalr1.cc:859
 -  case 441:
 -#line 1571 "dhcp4_parser.yy" // lalr1.cc:859
++  case 492:
++#line 1726 "dhcp4_parser.yy" // lalr1.cc:859
      {
      ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("output", sev);
      ctx.leave();
  }
- #line 2902 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2629 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2907 "dhcp4_parser.cc" // lalr1.cc:859
      break;
  
  
- #line 2906 "dhcp4_parser.cc" // lalr1.cc:859
 -#line 2633 "dhcp4_parser.cc" // lalr1.cc:859
++#line 2911 "dhcp4_parser.cc" // lalr1.cc:859
              default:
                break;
              }
    }
  
  
-   const short int Dhcp4Parser::yypact_ninf_ = -469;
 -  const short int Dhcp4Parser::yypact_ninf_ = -419;
++  const short int Dhcp4Parser::yypact_ninf_ = -482;
  
    const signed char Dhcp4Parser::yytable_ninf_ = -1;
  
    const short int
    Dhcp4Parser::yypact_[] =
    {
-      190,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,    32,    19,    57,    72,    74,   103,   115,   130,
-      151,   158,   159,   166,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,    19,    53,    17,    80,
-       44,    18,   -14,   116,    61,    82,   -23,   124,  -469,   185,
-      200,   189,   197,   203,  -469,  -469,  -469,  -469,   229,  -469,
-       26,  -469,  -469,  -469,  -469,  -469,  -469,   236,   237,  -469,
-     -469,  -469,   239,   245,   246,   249,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,   250,  -469,  -469,  -469,    30,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,    62,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,   251,   257,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,    77,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,    84,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,   254,   261,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,   262,  -469,  -469,  -469,   265,  -469,  -469,
-      263,   269,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,   270,  -469,  -469,  -469,  -469,   267,   273,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,    87,
-     -469,  -469,  -469,   274,  -469,  -469,   275,  -469,   278,   279,
-     -469,  -469,   280,   285,   286,   287,  -469,  -469,  -469,    91,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,    19,    19,  -469,
-      137,   291,   293,   295,   296,  -469,    17,  -469,   297,   174,
-      188,   298,   299,   316,   192,   193,   194,   195,   321,   322,
-      323,   324,   325,   326,   327,   204,   328,   330,    80,  -469,
-      331,   332,    44,  -469,    23,   333,   334,   335,   336,   337,
-      338,   339,   217,   216,   344,   345,   346,   347,    18,  -469,
-      348,   -14,  -469,   349,   350,   351,   352,   353,   354,   355,
-      356,   357,  -469,   116,   358,   359,   235,   361,   362,   363,
-      238,  -469,    61,   364,   240,  -469,    82,   366,   368,    46,
-     -469,   242,   370,   371,   247,   373,   252,   253,   374,   375,
-      255,   256,   258,   259,   376,   379,   124,  -469,  -469,  -469,
-      380,   378,   381,    19,    19,  -469,   384,  -469,  -469,   264,
-      386,   387,  -469,  -469,  -469,  -469,   390,   391,   392,   393,
-      394,   395,   396,  -469,   397,   398,  -469,   401,   125,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,   399,   405,  -469,
-     -469,  -469,   281,   282,   283,   407,   288,   289,   290,  -469,
-     -469,   292,   301,   408,   412,  -469,   302,  -469,   303,   304,
-      401,   305,   306,   307,   308,   310,   313,  -469,   314,   315,
-     -469,   318,   319,   320,  -469,  -469,   329,  -469,  -469,   340,
-       19,  -469,  -469,   341,   342,  -469,   343,  -469,  -469,    22,
-      311,  -469,  -469,  -469,  -469,    63,   360,  -469,    19,    80,
-      365,  -469,  -469,    44,  -469,    16,    16,   417,   418,   419,
-      179,    24,   437,   120,    69,   124,  -469,  -469,  -469,  -469,
-     -469,   410,  -469,    23,  -469,  -469,  -469,   442,  -469,  -469,
-     -469,  -469,  -469,   443,   382,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,   135,  -469,
-      149,  -469,  -469,   169,  -469,  -469,  -469,  -469,   447,   449,
-      451,   454,  -469,   171,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,   172,  -469,   453,   457,  -469,  -469,
-      455,   459,  -469,  -469,   458,   460,  -469,  -469,  -469,  -469,
-     -469,    60,  -469,  -469,  -469,  -469,  -469,  -469,    66,  -469,
-      461,   462,  -469,   468,   469,   470,   472,   473,   474,   184,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,   187,
-     -469,  -469,  -469,   201,   367,   369,  -469,  -469,   475,   463,
-     -469,  -469,   476,   477,  -469,  -469,   471,  -469,   479,   365,
-     -469,  -469,   480,   481,   482,   483,   271,   272,   372,   377,
-       16,  -469,  -469,    18,  -469,   417,    61,  -469,   418,    82,
-     -469,   419,   179,  -469,    24,  -469,   -23,  -469,   437,   383,
-      385,   388,   389,   400,   402,   120,  -469,   485,   486,    69,
-     -469,  -469,  -469,   487,   488,  -469,   -14,  -469,   442,   116,
-     -469,   443,   490,  -469,   491,  -469,   233,   404,   406,   409,
-     -469,  -469,  -469,  -469,  -469,   224,  -469,   484,  -469,   492,
-     -469,  -469,  -469,   226,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,   411,   413,  -469,  -469,   414,   227,  -469,   493,
-     -469,   415,   495,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,    97,  -469,    48,   495,  -469,  -469,   494,  -469,
-     -469,  -469,   228,  -469,  -469,  -469,  -469,  -469,   500,   416,
-      501,    48,  -469,   502,  -469,   420,  -469,   503,  -469,  -469,
-      101,  -469,   403,   503,  -469,  -469,   234,  -469,  -469,   504,
-      403,  -469,   421,  -469,  -469
 -     184,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,    27,    23,    35,    60,    67,    78,    86,    95,   106,
 -     145,   149,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,    23,    13,    19,    65,    24,    17,    -6,    99,
 -     165,    48,    -7,  -419,    49,   155,   166,   152,   178,  -419,
 -    -419,  -419,  -419,   216,  -419,    42,  -419,  -419,  -419,  -419,
 -    -419,  -419,   218,   237,  -419,  -419,  -419,   239,   240,   241,
 -     243,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   244,
 -    -419,  -419,  -419,    43,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,    54,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -     250,   251,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,    58,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,    72,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,   193,   234,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,   257,  -419,  -419,  -419,   258,  -419,  -419,  -419,
 -     255,   261,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,   265,  -419,  -419,  -419,  -419,   262,   271,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   102,
 -    -419,  -419,  -419,  -419,    23,    23,  -419,   168,   272,   273,
 -     274,   275,  -419,    19,  -419,   287,   182,   183,   290,   291,
 -     292,   189,   190,   191,   192,   297,   298,   299,   300,   301,
 -     302,   303,   304,   202,   305,   307,    65,  -419,   308,   309,
 -      24,  -419,    20,   310,   311,   312,   313,   314,   315,   316,
 -     214,   215,   317,   319,   320,   322,    17,  -419,   323,   324,
 -      -6,  -419,   325,   326,   327,   328,   329,   330,   331,   332,
 -     333,  -419,    99,   334,   335,   232,   339,   340,   341,   236,
 -    -419,   165,   343,   238,  -419,    48,   345,   346,    36,  -419,
 -    -419,  -419,   347,   348,   349,    23,    23,  -419,   350,  -419,
 -    -419,   245,   351,   352,  -419,  -419,  -419,  -419,   355,   356,
 -     357,   358,   361,   362,   364,   365,  -419,   366,   367,  -419,
 -     363,   114,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -     368,   372,  -419,  -419,  -419,   246,   247,   270,   374,   277,
 -     278,   279,  -419,  -419,   280,   282,   375,   383,  -419,   284,
 -     385,  -419,   286,   289,   363,   293,   294,   295,   296,   306,
 -     318,  -419,   321,   336,  -419,   337,   338,   342,  -419,  -419,
 -     344,  -419,  -419,   353,    23,  -419,    23,    65,   360,  -419,
 -    -419,    24,  -419,   150,   150,   387,   390,   392,   162,    34,
 -     397,   156,   112,    82,    13,  -419,  -419,  -419,  -419,  -419,
 -     377,  -419,    20,  -419,  -419,  -419,   398,  -419,  -419,  -419,
 -    -419,  -419,   399,   359,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,   113,  -419,   133,  -419,  -419,
 -     137,  -419,  -419,  -419,   378,   403,   404,  -419,   139,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   140,  -419,
 -     405,   406,  -419,  -419,   408,   407,  -419,  -419,   409,   413,
 -    -419,  -419,  -419,  -419,  -419,  -419,   177,  -419,  -419,  -419,
 -    -419,  -419,   197,  -419,   411,   415,  -419,   417,   419,   420,
 -     422,   425,   426,   143,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,   427,   428,   429,  -419,  -419,  -419,   151,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,   163,  -419,  -419,  -419,
 -     179,    23,   354,  -419,  -419,   430,   416,  -419,  -419,   431,
 -     432,  -419,  -419,   433,  -419,   434,   360,  -419,  -419,   435,
 -     436,   438,   369,   370,   371,   150,  -419,  -419,    17,  -419,
 -     387,   165,  -419,   390,    48,  -419,   392,   162,  -419,    34,
 -    -419,    -7,  -419,   397,   376,   379,   380,   381,   382,   384,
 -     156,  -419,   442,   386,   388,   389,   112,  -419,   443,   444,
 -      82,  -419,  -419,   446,  -419,    -6,  -419,   398,    99,  -419,
 -     399,   449,  -419,   450,  -419,   373,   391,   393,  -419,  -419,
 -    -419,  -419,   188,  -419,   448,  -419,   451,  -419,  -419,  -419,
 -     194,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   394,
 -    -419,  -419,  -419,  -419,   395,   396,  -419,  -419,   201,  -419,
 -     454,  -419,   400,   447,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   211,  -419,
 -      18,   447,  -419,  -419,   453,  -419,  -419,  -419,   210,  -419,
 -    -419,  -419,  -419,  -419,   459,   401,   460,    18,  -419,   461,
 -    -419,   410,  -419,   458,  -419,  -419,   233,  -419,   412,   458,
 -    -419,  -419,   213,  -419,  -419,   463,   412,  -419,   414,  -419,
 -    -419
++     194,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,    36,    23,    80,   123,   139,   159,   168,   172,
++     215,   221,   222,   223,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,    23,   -85,    19,    93,
++      64,    20,     5,    27,   142,    55,   -35,   235,  -482,    43,
++     102,   205,   108,   208,  -482,  -482,  -482,  -482,   241,  -482,
++      50,  -482,  -482,  -482,  -482,  -482,  -482,   243,   244,  -482,
++    -482,  -482,   245,   246,   247,   248,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,   249,  -482,  -482,  -482,    61,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,    75,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,   250,   252,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,    98,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,    99,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++     230,   254,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,   255,  -482,  -482,  -482,   257,
++    -482,  -482,  -482,   256,   259,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,   261,  -482,  -482,  -482,
++    -482,   258,   260,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,   100,  -482,  -482,  -482,   264,  -482,  -482,   265,
++    -482,   269,   271,  -482,  -482,   272,   274,   275,   276,  -482,
++    -482,  -482,   109,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++      23,    23,  -482,   130,   278,   279,   282,   283,  -482,    19,
++    -482,   284,   162,   163,   291,   295,   297,   174,   175,   176,
++     177,   303,   305,   334,   335,   336,   337,   338,   339,   218,
++     340,   341,    93,  -482,   342,   346,    64,  -482,    42,   347,
++     348,   349,   350,   351,   352,   353,   229,   228,   356,   357,
++     358,   360,    20,  -482,   361,     5,  -482,   362,   363,   364,
++     365,   366,   367,   368,   369,   370,  -482,    27,   371,   372,
++     251,   373,   374,   375,   253,  -482,   142,   377,   262,  -482,
++      55,   378,   379,    68,  -482,   263,   381,   382,   266,   383,
++     267,   268,   384,   385,   270,   273,   277,   280,   386,   387,
++     235,  -482,  -482,  -482,   388,   391,   392,    23,    23,  -482,
++     393,  -482,  -482,   281,   395,   396,  -482,  -482,  -482,  -482,
++     400,   401,   402,   405,   407,   408,   409,   410,  -482,   411,
++     412,  -482,   415,   145,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,   406,   418,  -482,  -482,  -482,   287,   294,   296,
++     420,   301,   302,   306,  -482,  -482,   307,   308,   426,   416,
++    -482,   309,  -482,   310,   311,   415,   312,   314,   317,   319,
++     320,   321,  -482,   322,   324,  -482,   325,   326,   327,  -482,
++    -482,   328,  -482,  -482,   329,    23,  -482,  -482,   331,   332,
++    -482,   333,  -482,  -482,    33,   359,  -482,  -482,  -482,  -482,
++     -66,   343,  -482,    23,    93,   354,  -482,  -482,    64,  -482,
++     116,   116,   458,   459,   460,   171,    26,   461,   118,    40,
++     112,   235,  -482,  -482,  -482,  -482,  -482,   465,  -482,    42,
++    -482,  -482,  -482,   463,  -482,  -482,  -482,  -482,  -482,   466,
++     413,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,   110,  -482,   154,  -482,  -482,   155,
++    -482,  -482,  -482,   468,   470,   471,  -482,   164,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,   166,  -482,   472,
++     473,  -482,  -482,   475,   474,  -482,  -482,   476,   480,  -482,
++    -482,  -482,  -482,  -482,  -482,   220,  -482,  -482,  -482,  -482,
++    -482,   233,  -482,   478,   482,  -482,   483,   484,   485,   486,
++     487,   488,   170,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,   489,   490,   491,  -482,  -482,  -482,   178,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,   196,  -482,  -482,  -482,   198,
++     376,   380,  -482,  -482,   492,   493,  -482,  -482,   494,   496,
++    -482,  -482,   495,  -482,   497,   354,  -482,  -482,   498,   501,
++     502,   355,   389,   390,   116,  -482,  -482,    20,  -482,   458,
++     142,  -482,   459,    55,  -482,   460,   171,  -482,    26,  -482,
++     -35,  -482,   461,   394,   397,   398,   399,   403,   404,   118,
++    -482,   503,   414,   417,   419,    40,  -482,   505,   506,   112,
++    -482,  -482,  -482,   507,   508,  -482,     5,  -482,   463,    27,
++    -482,   466,   510,  -482,   511,  -482,   421,   422,   423,  -482,
++    -482,  -482,  -482,   202,  -482,   504,  -482,   509,  -482,  -482,
++    -482,   204,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++     424,  -482,  -482,  -482,  -482,   425,   427,  -482,  -482,   428,
++     210,  -482,   512,  -482,   429,   515,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,   234,  -482,    89,   515,  -482,  -482,   520,  -482,  -482,
++    -482,   216,  -482,  -482,  -482,  -482,  -482,   521,   430,   525,
++      89,  -482,   514,  -482,   432,  -482,   523,  -482,  -482,   240,
++    -482,   433,   523,  -482,  -482,   217,  -482,  -482,   527,   433,
++    -482,   434,  -482,  -482
    };
  
    const unsigned short int
    Dhcp4Parser::yydefact_[] =
    {
         0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
 -      20,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,     1,    37,    30,    26,    25,    22,    23,    24,
 -      29,     3,    27,    28,    46,     5,    57,     7,    95,     9,
 -     186,    11,   296,    13,   316,    15,   236,    17,   270,    19,
 -     151,    21,    41,    33,     0,     0,     0,     0,     0,   318,
 -     238,   272,     0,    43,     0,    42,     0,     0,    34,    55,
 -     411,   407,   409,     0,    54,     0,    48,    50,    52,    53,
 -      51,    89,     0,     0,   334,   103,   105,     0,     0,     0,
 -       0,   178,   228,   262,   132,   358,   143,   162,   378,     0,
 -     395,   405,    82,     0,    59,    61,    62,    63,    64,    79,
 -      80,    66,    67,    68,    69,    73,    74,    65,    71,    72,
 -      81,    70,    75,    76,    77,    78,    97,    99,     0,    91,
 -      93,    94,   362,   212,   214,   216,   288,   210,   218,   220,
 -       0,     0,   224,   222,   308,   354,   209,   190,   191,   192,
 -     204,     0,   188,   195,   206,   207,   208,   196,   197,   200,
 -     202,   198,   199,   193,   194,   201,   205,   203,   304,   306,
 -     303,   301,     0,   298,   300,   302,   336,   338,   352,   342,
 -     344,   348,   346,   350,   340,   333,   329,     0,   319,   320,
 -     330,   331,   332,   326,   322,   327,   324,   325,   328,   323,
 -     118,   126,     0,   256,   254,   259,     0,   249,   253,   250,
 -       0,   239,   240,   242,   252,   243,   244,   245,   258,   246,
 -     247,   248,   283,     0,   281,   282,   285,   286,     0,   273,
 -     274,   276,   277,   278,   279,   280,   158,   160,   155,     0,
 -     153,   156,   157,    38,     0,     0,    31,     0,     0,     0,
 -       0,     0,    45,     0,    47,     0,     0,     0,     0,     0,
 +      20,    22,     0,     0,     0,     0,     0,     0,     0,     0,
 +       0,     0,     0,     0,     1,    38,    32,    28,    27,    24,
 +      25,    26,    31,     3,    29,    30,    51,     5,    62,     7,
-       99,     9,   196,    11,   307,    13,   324,    15,   246,    17,
-      281,    19,   161,    21,   399,    23,    40,    34,     0,     0,
-        0,     0,     0,   326,   248,   283,     0,     0,    42,     0,
-       41,     0,     0,    35,    60,   452,   448,   450,     0,    59,
-        0,    53,    55,    57,    58,    56,    93,     0,     0,   342,
-      107,   109,     0,     0,     0,     0,   188,   238,   273,   141,
-      366,   153,   172,     0,   387,   397,    86,     0,    64,    66,
-       67,    68,    69,    83,    84,    71,    72,    73,    74,    78,
-       79,    70,    76,    77,    85,    75,    80,    81,    82,   101,
-      103,     0,    95,    97,    98,   370,   222,   224,   226,   299,
-      220,   228,   230,     0,     0,   234,   232,   316,   362,   219,
-      200,   201,   202,   214,     0,   198,   205,   216,   217,   218,
-      206,   207,   210,   212,   208,   209,   203,   204,   211,   215,
-      213,   314,   313,   312,     0,   309,   311,   344,   346,   360,
-      350,   352,   356,   354,   358,   348,   341,   337,     0,   327,
-      328,   338,   339,   340,   334,   330,   335,   332,   333,   336,
-      331,   263,   135,     0,   267,   265,   270,     0,   259,   260,
-        0,   249,   250,   252,   262,   253,   254,   255,   269,   256,
-      257,   258,   294,     0,   292,   293,   296,   297,     0,   284,
-      285,   287,   288,   289,   290,   291,   168,   170,   165,     0,
-      163,   166,   167,     0,   420,   422,     0,   425,     0,     0,
-      429,   433,     0,     0,     0,     0,   439,   446,   418,     0,
-      401,   403,   404,   405,   406,   407,   408,   409,   410,   411,
-      412,   413,   414,   415,   416,   417,    39,     0,     0,    33,
-        0,     0,     0,     0,     0,    50,     0,    52,     0,     0,
++     100,     9,   191,    11,   301,    13,   318,    15,   241,    17,
++     275,    19,   156,    21,   409,    23,    40,    34,     0,     0,
++       0,     0,     0,   320,   243,   277,     0,     0,    42,     0,
++      41,     0,     0,    35,    60,   462,   458,   460,     0,    59,
++       0,    53,    55,    57,    58,    56,    94,     0,     0,   336,
++     108,   110,     0,     0,     0,     0,   183,   233,   267,   137,
++     360,   148,   167,   380,     0,   397,   407,    87,     0,    64,
++      66,    67,    68,    69,    84,    85,    71,    72,    73,    74,
++      78,    79,    70,    76,    77,    86,    75,    80,    81,    82,
++      83,   102,   104,     0,    96,    98,    99,   364,   217,   219,
++     221,   293,   215,   223,   225,     0,     0,   229,   227,   310,
++     356,   214,   195,   196,   197,   209,     0,   193,   200,   211,
++     212,   213,   201,   202,   205,   207,   203,   204,   198,   199,
++     206,   210,   208,   308,   307,   306,     0,   303,   305,   338,
++     340,   354,   344,   346,   350,   348,   352,   342,   335,   331,
++       0,   321,   322,   332,   333,   334,   328,   324,   329,   326,
++     327,   330,   325,   123,   131,     0,   261,   259,   264,     0,
++     254,   258,   255,     0,   244,   245,   247,   257,   248,   249,
++     250,   263,   251,   252,   253,   288,     0,   286,   287,   290,
++     291,     0,   278,   279,   281,   282,   283,   284,   285,   163,
++     165,   160,     0,   158,   161,   162,     0,   430,   432,     0,
++     435,     0,     0,   439,   443,     0,     0,     0,     0,   449,
++     456,   428,     0,   411,   413,   414,   415,   416,   417,   418,
++     419,   420,   421,   422,   423,   424,   425,   426,   427,    39,
++       0,     0,    33,     0,     0,     0,     0,     0,    50,     0,
++      52,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,    63,
-        0,     0,     0,   100,   372,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,     0,   197,
-        0,     0,   308,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   325,     0,     0,     0,     0,     0,     0,     0,
-        0,   247,     0,     0,     0,   282,     0,     0,     0,     0,
-      162,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   400,    43,    36,
-        0,     0,     0,     0,     0,    54,     0,    91,    92,     0,
-        0,     0,    87,    88,    89,    90,     0,     0,     0,     0,
-        0,     0,     0,   386,     0,     0,    65,     0,     0,    96,
-      384,   382,   383,   378,   379,   380,   381,     0,   373,   374,
-      376,   377,     0,     0,     0,     0,     0,     0,     0,   236,
-      237,     0,     0,     0,     0,   199,     0,   310,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   329,     0,     0,
-      261,     0,     0,     0,   272,   251,     0,   298,   286,     0,
-        0,   164,   419,     0,     0,   424,     0,   427,   428,     0,
-        0,   435,   436,   437,   438,     0,     0,   402,     0,     0,
-        0,   449,   451,     0,   343,     0,     0,   190,   240,   275,
-        0,     0,   155,     0,     0,     0,    44,   102,   105,   106,
-      104,     0,   371,     0,   223,   225,   227,   301,   221,   229,
-      231,   235,   233,   318,     0,   315,   345,   347,   361,   351,
-      353,   357,   355,   359,   349,   264,   136,   268,   266,   271,
-      295,   169,   171,   421,   423,   426,   431,   432,   430,   434,
-      441,   442,   443,   444,   445,   440,   447,    37,     0,   457,
-        0,   454,   456,     0,   123,   129,   131,   133,     0,     0,
-        0,     0,   122,     0,   111,   113,   114,   115,   116,   117,
-      118,   119,   120,   121,     0,   194,     0,   191,   192,   244,
-        0,   241,   242,   279,     0,   276,   277,   149,   150,   151,
-      152,     0,   143,   145,   146,   147,   148,   368,     0,   159,
-        0,   156,   157,     0,     0,     0,     0,     0,     0,     0,
-      174,   176,   177,   178,   179,   180,   181,   393,   395,     0,
-      389,   391,   392,     0,    46,     0,   375,   305,     0,   302,
-      303,   322,     0,   319,   320,   364,     0,    61,     0,     0,
-      453,    94,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   108,   110,     0,   189,     0,   248,   239,     0,   283,
-      274,     0,     0,   142,     0,   367,     0,   154,     0,     0,
-        0,     0,     0,     0,     0,     0,   173,     0,     0,     0,
-      388,   398,    48,     0,    47,   385,     0,   300,     0,   326,
-      317,     0,     0,   363,     0,   455,     0,     0,     0,     0,
-      137,   138,   139,   140,   112,     0,   193,     0,   243,     0,
-      278,   144,   369,     0,   158,   182,   183,   184,   185,   186,
-      187,   175,     0,     0,   390,    45,     0,     0,   304,     0,
-      321,     0,     0,   125,   126,   127,   128,   124,   130,   132,
-      134,   195,   245,   280,   160,   394,   396,    49,   306,   323,
-      365,   461,     0,   459,     0,     0,   458,   473,     0,   471,
-      469,   465,     0,   463,   467,   468,   466,   460,     0,     0,
-        0,     0,   462,     0,   470,     0,   464,     0,   472,   477,
-        0,   475,     0,     0,   474,   481,     0,   479,   476,     0,
-        0,   478,     0,   480,   482
++       0,     0,     0,    63,     0,     0,     0,   101,   366,     0,
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,     0,     0,     0,    58,     0,     0,
 -       0,    96,   364,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,     0,     0,     0,   187,     0,     0,
 -       0,   297,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,   317,     0,     0,     0,     0,     0,     0,     0,     0,
 -     237,     0,     0,     0,   271,     0,     0,     0,     0,   152,
 -      44,    35,     0,     0,     0,     0,     0,    49,     0,    87,
 -      88,     0,     0,     0,    83,    84,    85,    86,     0,     0,
 -       0,     0,     0,     0,     0,     0,   394,     0,     0,    60,
 -       0,     0,    92,   376,   374,   375,   370,   371,   372,   373,
 -       0,   365,   366,   368,   369,     0,     0,     0,     0,     0,
 -       0,     0,   226,   227,     0,     0,     0,     0,   189,     0,
 -       0,   299,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,   321,     0,     0,   251,     0,     0,     0,   261,   241,
 -       0,   287,   275,     0,     0,   154,     0,     0,     0,   408,
 -     410,     0,   335,     0,     0,   180,   230,   264,     0,     0,
 -     145,     0,     0,     0,     0,    39,    98,   101,   102,   100,
 -       0,   363,     0,   213,   215,   217,   290,   211,   219,   221,
 -     225,   223,   310,     0,   305,    32,   307,   337,   339,   353,
 -     343,   345,   349,   347,   351,   341,   119,   127,   257,   255,
 -     260,   284,   159,   161,    36,     0,   416,     0,   413,   415,
 -       0,   120,   122,   124,     0,     0,     0,   117,     0,   107,
 -     109,   110,   111,   112,   113,   114,   115,   116,     0,   184,
 -       0,   181,   182,   234,     0,   231,   232,   268,     0,   265,
 -     266,   131,   140,   141,   142,   136,     0,   134,   137,   138,
 -     139,   360,     0,   149,     0,   146,   147,     0,     0,     0,
 -       0,     0,     0,     0,   164,   166,   167,   168,   169,   170,
 -     171,   390,     0,     0,     0,   388,   382,   387,     0,   380,
 -     385,   383,   384,   386,   401,   403,     0,   397,   399,   400,
 -       0,    41,     0,   367,   294,     0,   291,   292,   314,     0,
 -     311,   312,   356,     0,    56,     0,     0,   412,    90,     0,
 -       0,     0,     0,     0,     0,     0,   104,   106,     0,   179,
 -       0,   238,   229,     0,   272,   263,     0,     0,   133,     0,
 -     359,     0,   144,     0,     0,     0,     0,     0,     0,     0,
 -       0,   163,     0,     0,     0,     0,     0,   379,     0,     0,
 -       0,   396,   406,     0,   377,     0,   289,     0,   318,   309,
 -       0,     0,   355,     0,   414,     0,     0,     0,   128,   129,
 -     130,   108,     0,   183,     0,   233,     0,   267,   135,   361,
 -       0,   148,   172,   173,   174,   175,   176,   177,   165,     0,
 -     389,   392,   393,   381,     0,     0,   398,    40,     0,   293,
 -       0,   313,     0,     0,   121,   123,   125,   185,   235,   269,
 -     150,   391,   402,   404,   295,   315,   357,   420,     0,   418,
 -       0,     0,   417,   432,     0,   430,   428,   424,     0,   422,
 -     426,   427,   425,   419,     0,     0,     0,     0,   421,     0,
 -     429,     0,   423,     0,   431,   436,     0,   434,     0,     0,
 -     433,   440,     0,   438,   435,     0,     0,   437,     0,   439,
 -     441
++       0,     0,     0,   192,     0,     0,   302,     0,     0,     0,
++       0,     0,     0,     0,     0,     0,   319,     0,     0,     0,
++       0,     0,     0,     0,     0,   242,     0,     0,     0,   276,
++       0,     0,     0,     0,   157,     0,     0,     0,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
++       0,   410,    43,    36,     0,     0,     0,     0,     0,    54,
++       0,    92,    93,     0,     0,     0,    88,    89,    90,    91,
++       0,     0,     0,     0,     0,     0,     0,     0,   396,     0,
++       0,    65,     0,     0,    97,   378,   376,   377,   372,   373,
++     374,   375,     0,   367,   368,   370,   371,     0,     0,     0,
++       0,     0,     0,     0,   231,   232,     0,     0,     0,     0,
++     194,     0,   304,     0,     0,     0,     0,     0,     0,     0,
++       0,     0,   323,     0,     0,   256,     0,     0,     0,   266,
++     246,     0,   292,   280,     0,     0,   159,   429,     0,     0,
++     434,     0,   437,   438,     0,     0,   445,   446,   447,   448,
++       0,     0,   412,     0,     0,     0,   459,   461,     0,   337,
++       0,     0,   185,   235,   269,     0,     0,   150,     0,     0,
++       0,     0,    44,   103,   106,   107,   105,     0,   365,     0,
++     218,   220,   222,   295,   216,   224,   226,   230,   228,   312,
++       0,   309,   339,   341,   355,   345,   347,   351,   349,   353,
++     343,   124,   132,   262,   260,   265,   289,   164,   166,   431,
++     433,   436,   441,   442,   440,   444,   451,   452,   453,   454,
++     455,   450,   457,    37,     0,   467,     0,   464,   466,     0,
++     125,   127,   129,     0,     0,     0,   122,     0,   112,   114,
++     115,   116,   117,   118,   119,   120,   121,     0,   189,     0,
++     186,   187,   239,     0,   236,   237,   273,     0,   270,   271,
++     136,   145,   146,   147,   141,     0,   139,   142,   143,   144,
++     362,     0,   154,     0,   151,   152,     0,     0,     0,     0,
++       0,     0,     0,   169,   171,   172,   173,   174,   175,   176,
++     392,     0,     0,     0,   390,   384,   389,     0,   382,   387,
++     385,   386,   388,   403,   405,     0,   399,   401,   402,     0,
++      46,     0,   369,   299,     0,   296,   297,   316,     0,   313,
++     314,   358,     0,    61,     0,     0,   463,    95,     0,     0,
++       0,     0,     0,     0,     0,   109,   111,     0,   184,     0,
++     243,   234,     0,   277,   268,     0,     0,   138,     0,   361,
++       0,   149,     0,     0,     0,     0,     0,     0,     0,     0,
++     168,     0,     0,     0,     0,     0,   381,     0,     0,     0,
++     398,   408,    48,     0,    47,   379,     0,   294,     0,   320,
++     311,     0,     0,   357,     0,   465,     0,     0,     0,   133,
++     134,   135,   113,     0,   188,     0,   238,     0,   272,   140,
++     363,     0,   153,   177,   178,   179,   180,   181,   182,   170,
++       0,   391,   394,   395,   383,     0,     0,   400,    45,     0,
++       0,   298,     0,   315,     0,     0,   126,   128,   130,   190,
++     240,   274,   155,   393,   404,   406,    49,   300,   317,   359,
++     471,     0,   469,     0,     0,   468,   483,     0,   481,   479,
++     475,     0,   473,   477,   478,   476,   470,     0,     0,     0,
++       0,   472,     0,   480,     0,   474,     0,   482,   487,     0,
++     485,     0,     0,   484,   491,     0,   489,   486,     0,     0,
++     488,     0,   490,   492
    };
  
    const short int
    Dhcp4Parser::yypgoto_[] =
    {
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,   -39,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,    59,  -469,  -469,  -469,   -58,  -469,  -469,
-     -469,   223,  -469,  -469,  -469,  -469,    34,   208,   -60,   -42,
-      -41,  -469,  -469,   -40,  -469,  -469,    28,   207,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,    35,
-     -130,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-      -63,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -140,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -145,  -469,
-     -469,  -469,  -142,   167,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -150,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -128,  -469,  -469,  -469,  -125,   202,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -468,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -123,  -469,  -469,  -469,  -120,  -469,   181,  -469,   -52,  -469,
-     -469,  -469,  -469,  -469,   -50,  -469,  -469,  -469,  -469,  -469,
-      -51,  -469,  -469,  -469,  -121,  -469,  -469,  -469,  -115,  -469,
-      182,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -141,  -469,  -469,  -469,  -136,   215,  -469,  -469,  -469,
-     -469,  -469,  -469,  -139,  -469,  -469,  -469,  -138,  -469,   210,
-      -47,  -469,  -296,  -469,  -292,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-       51,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -124,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,    64,   180,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-     -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,  -469,
-      -82,  -469,  -469,  -469,  -197,  -469,  -469,  -211,  -469,  -469,
-     -469,  -469,  -469,  -469,  -222,  -469,  -469,  -228,  -469
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,     6,  -419,    22,  -419,  -419,  -419,     0,  -419,
 -    -419,    64,  -419,   -93,  -419,   -54,  -419,  -419,  -419,   217,
 -    -419,  -419,  -419,  -419,    52,   195,   -56,   -40,   -37,  -419,
 -    -419,   -36,  -419,  -419,    51,   196,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,    50,  -112,  -401,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,   -59,  -419,  -418,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -122,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -126,  -419,  -419,  -419,  -119,   157,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -127,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -104,  -419,
 -    -419,  -419,   -97,   199,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -410,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -100,  -419,  -419,  -419,
 -     -92,  -419,   185,  -419,   -52,  -419,  -419,  -419,  -419,   -45,
 -    -419,  -419,  -419,  -419,  -419,   -47,  -419,  -419,  -419,   -91,
 -    -419,  -419,  -419,   -86,  -419,   186,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -117,  -419,  -419,  -419,
 -    -113,   219,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -116,  -419,  -419,  -419,  -115,  -419,   203,   -44,  -419,  -257,
 -    -419,  -256,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,    74,  -419,  -419,
 -    -419,  -419,  -419,  -419,   -98,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,   -96,  -419,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -419,  -419,  -419,  -419,  -419,  -419,   -53,  -419,
 -    -419,  -419,  -171,  -419,  -419,  -185,  -419,  -419,  -419,  -419,
 -    -419,  -419,  -194,  -419,  -419,  -199,  -419
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,   -39,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,    34,  -482,  -482,  -482,   -58,  -482,  -482,
++    -482,   226,  -482,  -482,  -482,  -482,    13,   224,   -60,   -42,
++     -41,  -482,  -482,   -40,  -482,  -482,    46,   219,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,    47,
++    -127,  -468,  -482,  -482,  -482,  -482,  -482,  -482,  -482,   -63,
++    -482,  -481,  -482,  -482,  -482,  -482,  -482,  -482,  -137,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -142,  -482,  -482,  -482,
++    -139,   179,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -145,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -122,  -482,  -482,  -482,  -113,   231,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -470,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -114,  -482,
++    -482,  -482,  -109,  -482,   209,  -482,   -52,  -482,  -482,  -482,
++    -482,   -50,  -482,  -482,  -482,  -482,  -482,   -51,  -482,  -482,
++    -482,  -111,  -482,  -482,  -482,  -107,  -482,   207,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -140,  -482,
++    -482,  -482,  -136,   236,  -482,  -482,  -482,  -482,  -482,  -482,
++    -138,  -482,  -482,  -482,  -135,  -482,   225,   -47,  -482,  -294,
++    -482,  -293,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,    60,  -482,  -482,
++    -482,  -482,  -482,  -482,  -120,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -123,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,    76,   199,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,  -482,
++    -482,  -482,  -482,  -482,  -482,  -482,   -77,  -482,  -482,  -482,
++    -194,  -482,  -482,  -209,  -482,  -482,  -482,  -482,  -482,  -482,
++    -220,  -482,  -482,  -226,  -482
    };
  
    const short int
    Dhcp4Parser::yydefgoto_[] =
    {
 -      -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
 -      20,    21,    63,    31,    32,    53,   456,    67,    68,    33,
 -      52,   436,   561,    64,    65,   102,    35,    54,    75,    76,
 -      77,   248,    37,    55,   103,   104,   105,   106,   107,   108,
 -     109,   110,   111,   255,   128,   129,    39,    56,   130,   278,
 -     131,   279,   439,   112,   259,   113,   260,   488,   489,   208,
 -     313,   491,   579,   492,   580,   493,   581,   209,   314,   495,
 -     496,   497,   515,   114,   268,   516,   517,   518,   519,   520,
 -     115,   270,   524,   525,   526,   601,    51,    62,   239,   240,
 -     241,   326,   242,   327,   116,   271,   533,   534,   535,   536,
 -     537,   538,   539,   540,   117,   265,   500,   501,   502,   588,
 -      41,    57,   151,   152,   153,   287,   154,   283,   155,   284,
 -     156,   285,   157,   288,   158,   289,   159,   293,   160,   292,
 -     161,   162,   118,   266,   504,   505,   506,   591,    47,    60,
 -     210,   211,   212,   213,   214,   215,   216,   217,   317,   218,
 -     316,   219,   220,   318,   221,   119,   267,   508,   509,   510,
 -     594,    49,    61,   228,   229,   230,   231,   232,   322,   233,
 -     234,   235,   164,   286,   565,   566,   567,   625,    43,    58,
 -     172,   173,   174,   298,   175,   299,   165,   294,   569,   570,
 -     571,   628,    45,    59,   187,   188,   189,   120,   258,   191,
 -     302,   192,   303,   193,   310,   194,   305,   195,   306,   196,
 -     308,   197,   307,   198,   309,   199,   304,   167,   295,   573,
 -     631,   121,   269,   522,   282,   370,   371,   372,   373,   374,
 -     440,   122,   272,   548,   549,   550,   551,   612,   552,   553,
 -     123,   124,   274,   556,   557,   558,   618,   559,   619,   125,
 -     275,    78,   250,    79,   251,    80,   249,   477,   478,   479,
 -     575,   688,   689,   690,   698,   699,   700,   701,   706,   702,
 -     704,   716,   717,   718,   722,   723,   725
 +      -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
 +      21,    22,    23,    32,    33,    34,    57,    72,    73,    35,
-       56,    69,    70,   497,   624,   683,   684,   106,    37,    58,
-       80,    81,    82,   281,    39,    59,   107,   108,   109,   110,
-      111,   112,   113,   114,   115,   288,   131,   132,    41,    60,
-      133,   310,   134,   311,   500,   116,   292,   117,   293,   563,
-      564,   565,   642,   737,   566,   643,   567,   644,   568,   645,
-      209,   345,   570,   571,   572,   573,   118,   301,   591,   592,
-      593,   594,   595,   596,   119,   303,   600,   601,   602,   666,
-       53,    66,   239,   240,   241,   357,   242,   358,   120,   304,
-      609,   610,   611,   612,   613,   614,   615,   616,   121,   298,
-      576,   577,   578,   653,    43,    61,   154,   155,   156,   319,
-      157,   315,   158,   316,   159,   317,   160,   320,   161,   321,
-      162,   325,   163,   324,   164,   165,   122,   299,   580,   581,
-      582,   656,    49,    64,   210,   211,   212,   213,   214,   215,
-      216,   344,   217,   348,   218,   347,   219,   220,   349,   221,
-      123,   300,   584,   585,   586,   659,    51,    65,   228,   229,
-      230,   231,   232,   353,   233,   234,   235,   167,   318,   628,
-      629,   630,   686,    45,    62,   174,   175,   176,   330,   168,
-      326,   632,   633,   634,   689,    47,    63,   188,   189,   190,
-      124,   291,   192,   333,   193,   334,   194,   341,   195,   336,
-      196,   337,   197,   339,   198,   338,   199,   340,   200,   335,
-      170,   327,   636,   692,   125,   302,   598,   314,   417,   418,
-      419,   420,   421,   501,   126,   127,   306,   619,   620,   621,
-      677,   622,   678,   128,   307,    55,    67,   259,   260,   261,
-      262,   362,   263,   363,   264,   265,   365,   266,   267,   268,
-      368,   538,   269,   369,   270,   271,   272,   273,   274,   374,
-      545,   275,   375,    83,   283,    84,   284,    85,   282,   550,
-      551,   552,   638,   752,   753,   754,   762,   763,   764,   765,
-      770,   766,   768,   780,   781,   782,   786,   787,   789
++      56,    69,    70,   503,   640,   703,   704,   107,    37,    58,
++      80,    81,    82,   284,    39,    59,   108,   109,   110,   111,
++     112,   113,   114,   115,   116,   291,   133,   134,    41,    60,
++     135,   314,   136,   315,   506,   117,   295,   118,   296,   567,
++     568,   211,   348,   570,   658,   571,   659,   572,   660,   212,
++     349,   574,   575,   576,   594,   119,   304,   595,   596,   597,
++     598,   599,   120,   306,   603,   604,   605,   680,    53,    66,
++     242,   243,   244,   361,   245,   362,   121,   307,   612,   613,
++     614,   615,   616,   617,   618,   619,   122,   301,   579,   580,
++     581,   667,    43,    61,   156,   157,   158,   323,   159,   319,
++     160,   320,   161,   321,   162,   324,   163,   325,   164,   329,
++     165,   328,   166,   167,   123,   302,   583,   584,   585,   670,
++      49,    64,   213,   214,   215,   216,   217,   218,   219,   220,
++     352,   221,   351,   222,   223,   353,   224,   124,   303,   587,
++     588,   589,   673,    51,    65,   231,   232,   233,   234,   235,
++     357,   236,   237,   238,   169,   322,   644,   645,   646,   706,
++      45,    62,   176,   177,   178,   334,   170,   330,   648,   649,
++     650,   709,    47,    63,   190,   191,   192,   125,   294,   194,
++     337,   195,   338,   196,   345,   197,   340,   198,   341,   199,
++     343,   200,   342,   201,   344,   202,   339,   172,   331,   652,
++     712,   126,   305,   601,   318,   422,   423,   424,   425,   426,
++     507,   127,   308,   627,   628,   629,   630,   691,   631,   632,
++     128,   129,   310,   635,   636,   637,   697,   638,   698,   130,
++     311,    55,    67,   262,   263,   264,   265,   366,   266,   367,
++     267,   268,   369,   269,   270,   271,   372,   544,   272,   373,
++     273,   274,   275,   276,   277,   378,   551,   278,   379,    83,
++     286,    84,   287,    85,   285,   556,   557,   558,   654,   771,
++     772,   773,   781,   782,   783,   784,   789,   785,   787,   799,
++     800,   801,   805,   806,   808
    };
  
    const unsigned short int
    Dhcp4Parser::yytable_[] =
    {
-       79,   150,   225,   149,   172,   186,   208,   224,   238,   258,
-      166,   173,   187,   226,   169,   227,   191,    68,   415,   151,
-      152,   153,   416,   597,    25,   135,    26,    74,    27,   286,
-       98,   135,    24,   308,   287,    88,    89,   536,   309,   554,
-      171,    89,   177,   178,   555,   556,   557,   558,   559,   560,
-      561,   236,   237,    92,    93,    94,   129,   130,   136,   137,
-      138,   202,    98,   662,    36,   312,   663,    98,   202,   664,
-      313,   139,   665,   140,   141,   142,   143,   144,   145,    38,
-      328,    40,   146,   147,   201,   329,   410,   331,   146,   148,
-      359,    86,   332,   202,   376,   360,    87,    88,    89,   377,
-      755,    90,    91,   756,   783,    78,   202,   784,   203,   204,
-       42,   205,   206,   207,    78,    92,    93,    94,    95,    96,
-      236,   237,    44,    97,    98,   537,    75,   202,   222,   203,
-      204,   223,    76,    77,    89,   177,   178,    46,   308,   498,
-      499,    99,   100,   637,    78,    78,    78,    28,    29,    30,
-       31,    78,   639,   101,   617,   618,   102,   640,    48,   757,
-       98,   758,   759,   103,   104,    50,    52,   105,   540,   541,
-      542,   543,   312,    54,   650,   650,    78,   641,   179,   651,
-      652,    71,   180,   181,   182,   183,   184,   675,   185,    78,
-      679,   276,   676,   278,   544,   680,   712,   603,   604,   605,
-      606,   607,   608,   277,   376,   279,   280,   415,    78,   681,
-       78,   416,   243,   244,   245,   246,   247,   248,   249,   250,
-      251,   252,   253,   254,   255,   256,   257,   328,    79,   359,
-      331,   771,   741,   285,   744,   748,   772,   790,   378,   379,
-      289,   290,   791,   294,    78,   587,   588,   589,   590,   295,
-      296,   412,    78,   297,   305,   322,   411,   733,   734,   735,
-      736,   323,   342,   413,   343,   380,   346,   414,   150,   350,
-      149,   351,   352,   172,   354,   355,   356,   166,   361,   364,
-      173,   169,   366,   367,   370,   186,   151,   152,   153,   371,
-      372,   373,   187,   225,   208,   381,   191,   382,   224,   383,
-      384,   386,   389,   390,   226,   387,   227,     1,     2,     3,
-        4,     5,     6,     7,     8,     9,    10,    11,   258,   388,
-      391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
-      401,   402,   404,   403,   405,   407,   408,   422,   423,   424,
-      425,   426,   427,   428,   481,   482,   429,   430,   431,   432,
-      433,   434,   436,   438,   439,   440,   441,   442,   443,   444,
-      445,   446,   448,   449,   450,   451,   452,   453,   456,   454,
-      459,   457,   460,   462,   463,   464,   465,   466,   469,   470,
-      475,   467,   468,   476,   478,   479,   471,   472,   480,   473,
-      474,   483,   484,   485,   486,   487,   488,   489,   490,   491,
-      492,   701,   700,   493,   494,   495,   496,   502,   503,   504,
-      505,   506,   507,   513,   625,   539,   508,   509,   510,   514,
-      511,   532,   569,   569,   575,   579,   583,   562,   562,   512,
-      515,   516,   517,   519,   520,   521,   522,   258,   523,   547,
-      412,   524,   525,   526,   599,   411,   527,   528,   529,   627,
-      631,   646,   413,   647,   635,   648,   414,   530,   649,   654,
-      655,   657,   658,   661,   660,   668,   688,   667,   531,   533,
-      534,   535,   669,   670,   671,   549,   672,   673,   674,   693,
-      691,   687,   690,   694,   696,   697,   698,   699,   546,   722,
-      723,   726,   742,   725,   731,   682,   732,   685,   769,   518,
-      743,   749,   751,   702,   773,   775,   703,   777,   792,   385,
-      779,   553,   715,   548,   716,   785,   406,   717,   718,   409,
-      704,   574,   711,   714,   713,   721,   461,   706,   705,   719,
-      435,   720,   738,   455,   739,   708,   707,   740,   458,   745,
-      710,   746,   747,   750,   709,   774,   437,   728,   778,   794,
-      727,   729,   730,   447,   626,   724,   477,   695,   767,   623,
-      776,   788,   793,     0,     0,     0,     0,     0,     0,     0,
 -      74,   147,   225,   146,   170,   185,   207,   224,   238,   226,
 -     163,   171,   186,   166,   547,   190,   227,   148,    30,   521,
 -     149,   150,   490,   490,   132,   368,   369,    22,    23,    69,
 -      24,   546,    25,    93,    83,    84,   126,   127,    84,   176,
 -     177,   132,    34,   168,   169,   253,   276,    87,    88,    89,
 -     254,   277,   133,   134,   135,   243,    93,   280,   201,    93,
 -     201,   296,   281,   236,   237,   136,   297,    36,   137,   138,
 -     139,   140,   141,   142,    38,   300,    81,   143,   144,   363,
 -     301,    82,    83,    84,   145,    40,    85,    86,   201,   222,
 -     202,   203,   223,    42,   143,    87,    88,    89,    90,    91,
 -      73,    73,    44,    92,    93,   328,   236,   237,    70,   693,
 -     329,   694,   695,    46,    71,    72,   276,    84,   176,   177,
 -      66,   574,    94,    95,    73,    73,    73,    73,   437,   438,
 -      26,    27,    28,    29,    96,   200,   576,    97,    93,   484,
 -     280,   577,   585,   585,    98,   578,   610,   586,   587,    99,
 -     100,   611,    48,   101,   616,    73,    50,   178,   244,   617,
 -     246,   179,   180,   181,   182,   183,   620,   184,   554,   555,
 -     245,   621,    73,   200,   481,   482,   483,   484,   485,   486,
 -     597,   247,   247,   598,   490,   368,   369,   622,   200,   649,
 -     201,   296,   541,   542,   543,   544,   677,   328,   547,    74,
 -     599,   311,   680,   600,   300,   201,    73,   202,   203,   684,
 -     204,   205,   206,   707,   691,   546,   726,   692,   708,    73,
 -     252,   727,   256,   365,   511,   512,   513,   514,   364,   527,
 -     528,   529,   530,   531,   532,   366,   719,   312,   367,   720,
 -     147,   257,   146,   261,   262,   263,   170,   264,   273,   163,
 -     330,   331,   166,   171,   290,   291,   148,    73,   185,   149,
 -     150,   315,   319,   320,   321,   186,   225,   207,   190,   323,
 -     324,   224,    73,   226,   325,   332,   333,   334,   335,   336,
 -     227,     1,     2,     3,     4,     5,     6,     7,     8,     9,
 -      10,   338,   339,   340,   341,   342,   343,   344,   345,   346,
 -     347,   348,   349,   350,   351,   352,   353,   354,   355,   357,
 -     356,   358,   360,   361,   375,   376,   377,   378,   379,   380,
 -     381,   384,   382,   385,   386,   383,   387,   389,   390,   392,
 -     393,   394,   395,   396,   397,   398,   399,   400,   402,   403,
 -     404,   419,   420,   405,   406,   407,   408,   410,   411,   413,
 -     414,   416,   422,   443,   444,   417,   418,   421,   423,   424,
 -     425,   426,   427,   428,   494,   494,   429,   430,   435,   487,
 -     487,   431,   432,   433,   434,   442,   441,   445,   545,   446,
 -     452,   562,   582,   365,   447,   448,   449,   450,   364,   451,
 -     453,   454,    24,   457,   499,   366,   458,   503,   367,   507,
 -     460,   461,   462,   463,   523,   564,   568,   583,   584,   590,
 -     593,   589,   455,   464,   592,   595,   596,   602,   603,   627,
 -     473,   604,   474,   605,   606,   465,   607,   572,   466,   608,
 -     609,   613,   614,   615,   560,   630,   626,   629,   633,   635,
 -     636,   632,   637,   467,   468,   469,   659,   664,   665,   470,
 -     476,   471,   667,   672,   687,   673,   678,   705,   459,   679,
 -     472,   624,   685,   709,   711,   715,   713,   728,   623,   475,
 -     337,   359,   480,   641,   498,   648,   362,   651,   639,   638,
 -     674,   640,   650,   658,   652,   415,   643,   653,   654,   655,
 -     656,   642,   657,   645,   660,   388,   661,   662,   675,   644,
 -     676,   681,   682,   683,   721,   647,   409,   686,   646,   710,
 -     669,   412,   668,   670,   671,   401,   563,   714,   663,   391,
 -     703,   730,   712,   634,   666,   724,   494,   729,     0,     0,
 -       0,   487,   147,     0,   146,   225,     0,   207,     0,     0,
 -     224,   163,   226,     0,   166,     0,     0,   238,   148,   227,
 -       0,   149,   150,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
 -       0,   170,     0,     0,   185,     0,     0,     0,   171,     0,
 -       0,   186,     0,     0,   190,     0,     0,     0,     0,     0,
++      79,   152,   228,   151,   174,   188,   210,   227,   241,   261,
++     168,   175,   189,   229,   171,   230,   193,    68,   626,   153,
++     154,   155,   569,   569,   420,   421,   600,   137,    25,    74,
++      26,   625,    27,   137,   239,   240,    24,    88,    89,   546,
++     547,   548,   549,    71,    98,    89,   179,   180,   542,   279,
++      92,    93,    94,   289,   173,   138,   139,   140,   290,    98,
++      89,   179,   180,   203,   312,   550,    98,   563,   141,   313,
++     142,   143,   144,   145,   146,   147,   131,   132,   316,   148,
++     149,    98,   204,   317,   181,   148,   150,    36,   182,   183,
++     184,   185,   186,    78,   187,   204,   225,   205,   206,   226,
++     415,   332,   335,   363,    86,   280,   333,   336,   364,    87,
++      88,    89,   380,   312,    90,    91,   282,   381,   653,   620,
++     621,   622,   623,    92,    93,    94,    95,    96,    75,   204,
++      38,    97,    98,    78,    76,    77,   543,   239,   240,   203,
++     560,   561,   562,   563,   564,   565,    40,    78,    78,    99,
++     100,    28,    29,    30,    31,    78,   204,   655,   316,   504,
++     505,   101,   656,   657,   102,   203,    42,   664,    78,   664,
++      78,   103,   665,   689,   666,    44,   104,   105,   690,    46,
++     106,   695,   204,    78,   205,   206,   696,   207,   208,   209,
++     606,   607,   608,   609,   610,   611,   569,   633,   634,   699,
++     776,   380,   777,   778,   700,   332,   701,   363,   730,   281,
++     759,   283,   762,   335,   626,   420,   421,    78,   767,   790,
++     809,    78,    48,   676,   791,   810,   677,   625,    50,    52,
++      54,    79,   590,   591,   592,   593,   678,   774,   346,   679,
++     775,   382,   383,   802,    78,   288,   803,   292,   293,   297,
++     298,   299,   300,   309,   326,   417,   327,   347,   384,   350,
++     416,   354,   356,   360,   355,   358,   359,   418,   365,   368,
++      78,   419,   152,   370,   151,   371,   374,   174,   375,   376,
++     377,   168,   385,   386,   175,   171,   387,   388,   390,   188,
++     153,   154,   155,   391,   392,   393,   189,   228,   210,   394,
++     193,   395,   227,   396,   397,   398,   399,   400,   229,   401,
++     230,     1,     2,     3,     4,     5,     6,     7,     8,     9,
++      10,    11,   261,   246,   247,   248,   249,   250,   251,   252,
++     253,   254,   255,   256,   257,   258,   259,   260,   402,   403,
++     404,   405,   406,   407,   409,   410,   412,   408,   486,   487,
++     413,   427,   428,   429,   430,   431,   432,   433,   434,   435,
++     436,   437,   438,    78,   439,   441,   443,   444,   445,   446,
++     447,   448,   449,   450,   451,   453,   454,   456,   457,   458,
++     455,   461,   464,   465,   459,   468,   469,   471,   474,   475,
++     480,   481,   483,   462,   467,   470,   472,   473,   484,   485,
++     488,   476,   490,   491,   477,   492,   493,   494,   478,   489,
++     495,   479,   496,   497,   508,   510,   498,   499,   500,   501,
++     502,   509,   511,   520,   512,   513,   538,   573,   573,   514,
++     515,   519,   566,   566,   516,   517,   518,   521,   522,   523,
++     525,   624,   526,   261,   553,   527,   417,   528,   529,   530,
++     531,   416,   532,   533,   534,   535,   536,   537,   418,   539,
++     540,   541,   419,   545,   555,   578,   582,   586,   602,   641,
++     643,   552,   661,   647,   662,   663,   669,   672,   668,   524,
++     651,   671,   674,   675,   681,   682,   719,   683,   684,   685,
++     686,   687,   688,   692,   693,   694,   708,   554,   707,   711,
++     710,   714,   716,   713,   702,   717,   718,   740,   705,   745,
++     746,   749,   760,   748,   754,   389,   755,   761,   720,   796,
++     768,   721,   770,   733,   788,   792,   734,   735,   736,   794,
++     798,   811,   737,   738,   559,   414,   411,   722,   577,   729,
++     732,   731,   466,   741,   739,   804,   742,   724,   743,   756,
++     757,   758,   763,   764,   723,   765,   766,   769,   726,   793,
++     797,   725,   813,   440,   728,   460,   727,   463,   751,   642,
++     750,   442,   452,   753,   752,   744,   747,   639,   715,   482,
++     786,   795,   807,   812,     0,     0,     0,     0,     0,     0,
 +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   569,     0,     0,
-        0,     0,   562,   150,     0,   149,   225,     0,   208,     0,
-        0,   224,   166,     0,     0,     0,   169,   226,   238,   227,
-        0,   151,   152,   153,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
-        0,   186,     0,     0,     0,   173,     0,     0,   187,     0,
-        0,     0,   191,     0,     0,     0,     0,     0,     0,     0,
++       0,   573,     0,     0,     0,     0,   566,   152,     0,   151,
++     228,     0,   210,     0,     0,   227,   168,     0,     0,     0,
++     171,   229,   241,   230,     0,   153,   154,   155,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,   624,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,   174,     0,
++       0,   188,     0,     0,     0,   175,     0,     0,   189,     0,
++       0,     0,   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,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   761,     0,     0,     0,     0,   760,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,     0,   761,     0,
-        0,     0,     0,   760
 -       0,   697,     0,     0,     0,     0,   696,     0,     0,     0,
 -       0,     0,     0,     0,     0,     0,     0,     0,   697,     0,
 -       0,     0,     0,   696
++     780,     0,     0,     0,     0,   779,     0,     0,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,   780,     0,     0,
++       0,     0,   779
    };
  
    const short int
    Dhcp4Parser::yycheck_[] =
    {
 -      54,    57,    61,    57,    58,    59,    60,    61,    62,    61,
 -      57,    58,    59,    57,   432,    59,    61,    57,    12,   429,
 -      57,    57,   423,   424,     7,   282,   282,     0,     5,    10,
 -       7,   432,     9,    39,    17,    18,    12,    13,    18,    19,
 -      20,     7,     7,    49,    50,     3,     3,    30,    31,    32,
 -       8,     8,    35,    36,    37,     6,    39,     3,    40,    39,
 -      40,     3,     8,    70,    71,    48,     8,     7,    51,    52,
 -      53,    54,    55,    56,     7,     3,    11,    60,    61,    59,
 -       8,    16,    17,    18,    67,     7,    21,    22,    40,    41,
 -      42,    43,    44,     7,    60,    30,    31,    32,    33,    34,
 -     107,   107,     7,    38,    39,     3,    70,    71,    89,    91,
 -       8,    93,    94,     7,    95,    96,     3,    18,    19,    20,
 -     107,     8,    57,    58,   107,   107,   107,   107,    14,    15,
 -     107,   108,   109,   110,    69,    23,     3,    72,    39,    27,
 -       3,     8,     3,     3,    79,     8,     3,     8,     8,    84,
 -      85,     8,     7,    88,     3,   107,     7,    58,     3,     8,
 -       8,    62,    63,    64,    65,    66,     3,    68,    86,    87,
 -       4,     8,   107,    23,    24,    25,    26,    27,    28,    29,
 -       3,     3,     3,     6,   585,   442,   442,     8,    23,   599,
 -      40,     3,    80,    81,    82,    83,     8,     3,   616,   253,
 -       3,     8,     8,     6,     3,    40,   107,    42,    43,     8,
 -      45,    46,    47,     3,     3,   616,     3,     6,     8,   107,
 -       4,     8,     4,   282,    62,    63,    64,    65,   282,    73,
 -      74,    75,    76,    77,    78,   282,     3,     3,   282,     6,
 -     296,     4,   296,     4,     4,     4,   300,     4,     4,   296,
 -     244,   245,   296,   300,     4,     4,   296,   107,   312,   296,
 -     296,     4,     4,     8,     3,   312,   325,   321,   312,     4,
 -       8,   325,   107,   325,     3,   107,     4,     4,     4,     4,
 -     325,    97,    98,    99,   100,   101,   102,   103,   104,   105,
 -     106,     4,   110,   110,     4,     4,     4,   108,   108,   108,
 -     108,     4,     4,     4,     4,     4,     4,     4,     4,     4,
 -     108,     4,     4,     4,     4,     4,     4,     4,     4,     4,
 -       4,     4,   108,     4,     4,   110,     4,     4,     4,     4,
 +      58,    61,    65,    61,    62,    63,    64,    65,    66,    67,
-       61,    62,    63,    65,    61,    65,    63,    56,   314,    61,
-       61,    61,   314,   491,     5,     7,     7,    10,     9,     3,
-       44,     7,     0,     3,     8,    17,    18,    15,     8,    23,
-       54,    18,    19,    20,    28,    29,    30,    31,    32,    33,
-       34,    74,    75,    35,    36,    37,    12,    13,    40,    41,
-       42,    45,    44,     3,     7,     3,     6,    44,    45,     3,
-        8,    53,     6,    55,    56,    57,    58,    59,    60,     7,
-        3,     7,    64,    65,    23,     8,    63,     3,    64,    71,
-        3,    11,     8,    45,     3,     8,    16,    17,    18,     8,
-        3,    21,    22,     6,     3,   128,    45,     6,    47,    48,
-        7,    50,    51,    52,   128,    35,    36,    37,    38,    39,
-       74,    75,     7,    43,    44,   103,   109,    45,    46,    47,
-       48,    49,   115,   116,    18,    19,    20,     7,     3,    14,
-       15,    61,    62,     8,   128,   128,   128,   128,   129,   130,
-      131,   128,     3,    73,    85,    86,    76,     8,     7,   111,
-       44,   113,   114,    83,    84,     7,     7,    87,   105,   106,
-      107,   108,     3,     7,     3,     3,   128,     8,    62,     8,
-        8,   128,    66,    67,    68,    69,    70,     3,    72,   128,
-        3,     6,     8,     4,   131,     8,   664,    77,    78,    79,
-       80,    81,    82,     3,     3,     8,     3,   503,   128,     8,
-      128,   503,    88,    89,    90,    91,    92,    93,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,     3,   286,     3,
-        3,     3,     8,     4,     8,     8,     8,     3,   277,   278,
-        4,     4,     8,     4,   128,    66,    67,    68,    69,     4,
-        4,   314,   128,     4,     4,     4,   314,    24,    25,    26,
-       27,     4,     8,   314,     3,   128,     4,   314,   328,     4,
-      328,     8,     3,   331,     4,     8,     3,   328,     4,     4,
-      331,   328,     4,     4,     4,   343,   328,   328,   328,     4,
-        4,     4,   343,   356,   352,     4,   343,     4,   356,     4,
-        4,     4,     4,     4,   356,   131,   356,   117,   118,   119,
-      120,   121,   122,   123,   124,   125,   126,   127,   376,   131,
-        4,   129,   129,   129,   129,     4,     4,     4,     4,     4,
-        4,     4,     4,   129,     4,     4,     4,     4,     4,     4,
-        4,     4,     4,     4,   383,   384,   129,   131,     4,     4,
++      61,    62,    63,    65,    61,    65,    63,    56,   499,    61,
++      61,    61,   490,   491,   318,   318,   496,     7,     5,    10,
++       7,   499,     9,     7,    69,    70,     0,    17,    18,   105,
++     106,   107,   108,   128,    39,    18,    19,    20,    15,     6,
++      30,    31,    32,     3,    49,    35,    36,    37,     8,    39,
++      18,    19,    20,    23,     3,   131,    39,    27,    48,     8,
++      50,    51,    52,    53,    54,    55,    12,    13,     3,    59,
++      60,    39,    40,     8,    57,    59,    66,     7,    61,    62,
++      63,    64,    65,   128,    67,    40,    41,    42,    43,    44,
++      58,     3,     3,     3,    11,     3,     8,     8,     8,    16,
++      17,    18,     3,     3,    21,    22,     8,     8,     8,    79,
++      80,    81,    82,    30,    31,    32,    33,    34,   109,    40,
++       7,    38,    39,   128,   115,   116,   103,    69,    70,    23,
++      24,    25,    26,    27,    28,    29,     7,   128,   128,    56,
++      57,   128,   129,   130,   131,   128,    40,     3,     3,    14,
++      15,    68,     8,     8,    71,    23,     7,     3,   128,     3,
++     128,    78,     8,     3,     8,     7,    83,    84,     8,     7,
++      87,     3,    40,   128,    42,    43,     8,    45,    46,    47,
++      72,    73,    74,    75,    76,    77,   664,    85,    86,     3,
++     111,     3,   113,   114,     8,     3,     8,     3,   678,     4,
++       8,     3,     8,     3,   695,   509,   509,   128,     8,     3,
++       3,   128,     7,     3,     8,     8,     6,   695,     7,     7,
++       7,   289,    61,    62,    63,    64,     3,     3,     8,     6,
++       6,   280,   281,     3,   128,     4,     6,     4,     4,     4,
++       4,     4,     4,     4,     4,   318,     4,     3,   128,     4,
++     318,     4,     3,     3,     8,     4,     8,   318,     4,     4,
++     128,   318,   332,     4,   332,     4,     4,   335,     4,     4,
++       4,   332,     4,     4,   335,   332,     4,     4,     4,   347,
++     332,   332,   332,   131,   131,     4,   347,   360,   356,     4,
++     347,     4,   360,   129,   129,   129,   129,     4,   360,     4,
++     360,   117,   118,   119,   120,   121,   122,   123,   124,   125,
++     126,   127,   380,    88,    89,    90,    91,    92,    93,    94,
++      95,    96,    97,    98,    99,   100,   101,   102,     4,     4,
++       4,     4,     4,     4,     4,     4,     4,   129,   387,   388,
++       4,     4,     4,     4,     4,     4,     4,     4,   129,   131,
++       4,     4,     4,   128,     4,     4,     4,     4,     4,     4,
         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-        4,     4,     4,     4,   129,     4,     4,     4,     4,   131,
-        4,   131,     4,   131,     4,     4,   129,     4,     4,     4,
-        4,   129,   129,     4,     4,     7,   131,   131,     7,   131,
-      131,     7,   128,     7,     7,     5,     5,     5,     5,     5,
-        5,   129,   131,     7,     7,     7,     5,     8,     3,   128,
-      128,   128,     5,     5,     4,   104,   128,   128,   128,     7,
-      128,   460,   485,   486,     7,     7,     7,   485,   486,   128,
-      128,   128,   128,   128,   128,   128,   128,   495,   128,   478,
-      503,   128,   128,   128,     7,   503,   128,   128,   128,     7,
-        7,     4,   503,     4,    72,     4,   503,   128,     4,     6,
-        3,     6,     3,     3,     6,     3,     3,     6,   128,   128,
-      128,   128,     4,     4,     4,   110,     4,     4,     4,     8,
-        3,     6,     6,     4,     4,     4,     4,     4,   128,     4,
-        4,     3,     8,     6,     4,   128,     5,   128,     4,   440,
-        8,     8,     7,   131,     4,     4,   129,     5,     4,   286,
-        7,   483,   129,   479,   129,   112,   308,   129,   129,   312,
-      650,   486,   662,   668,   666,   675,   359,   655,   653,   129,
-      328,   129,   128,   352,   128,   658,   656,   128,   356,   128,
-      661,   128,   128,   128,   659,   129,   331,   688,   128,   128,
-      686,   689,   691,   343,   503,   679,   376,   639,   755,   495,
-      771,   783,   790,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -     108,   335,   336,     4,     4,     4,   110,     4,   110,     4,
 -       4,     4,   107,   107,   107,     7,     7,     7,     7,     7,
 -       5,     5,     5,     5,   423,   424,     5,     5,     5,   423,
 -     424,     7,     7,     7,     7,     3,     8,   107,   432,     5,
 -       5,     4,     4,   442,   107,   107,   107,   107,   442,   107,
 -       7,   107,     7,   107,     7,   442,   107,     7,   442,     7,
 -     107,   107,   107,   107,     7,     7,     7,     4,     4,     3,
 -       3,     6,   390,   107,     6,     6,     3,     6,     3,     3,
 -     414,     4,   416,     4,     4,   107,     4,    68,   107,     4,
 -       4,     4,     4,     4,   434,     3,     6,     6,     4,     4,
 -       4,     8,     4,   107,   107,   107,     4,     4,     4,   107,
 -      90,   107,     6,     4,     7,     5,     8,     4,   394,     8,
 -     107,   107,     8,     4,     4,     7,     5,     4,   561,   417,
 -     253,   276,   421,   585,   424,   597,   280,   603,   108,   110,
 -     107,   110,   601,   610,   108,   328,   590,   108,   108,   108,
 -     108,   588,   108,   593,   108,   296,   108,   108,   107,   591,
 -     107,   107,   107,   107,    92,   596,   321,   107,   594,   108,
 -     627,   325,   625,   628,   630,   312,   442,   107,   616,   300,
 -     691,   107,   707,   576,   620,   719,   585,   726,    -1,    -1,
 -      -1,   585,   588,    -1,   588,   594,    -1,   591,    -1,    -1,
 -     594,   588,   594,    -1,   588,    -1,    -1,   601,   588,   594,
 -      -1,   588,   588,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,   616,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,   625,    -1,    -1,   628,    -1,    -1,    -1,   625,    -1,
 -      -1,   628,    -1,    -1,   628,    -1,    -1,    -1,    -1,    -1,
++     129,     4,     4,     4,   131,     4,     4,     4,     4,     4,
++       4,     4,     4,   131,   131,   129,   129,   129,     7,     7,
++       7,   131,     7,     7,   131,     5,     5,     5,   131,   128,
++       5,   131,     5,     5,     8,   128,     7,     7,     7,     7,
++       5,     3,   128,     7,   128,     5,   465,   490,   491,   128,
++     128,     5,   490,   491,   128,   128,   128,   128,   128,   128,
++     128,   499,   128,   501,   483,   128,   509,   128,   128,   128,
++     128,   509,   128,   128,   128,   128,   128,   128,   509,   128,
++     128,   128,   509,   104,   110,     7,     7,     7,     7,     4,
++       7,   128,     4,     7,     4,     4,     3,     3,     6,   445,
++      67,     6,     6,     3,     6,     3,   131,     4,     4,     4,
++       4,     4,     4,     4,     4,     4,     3,   484,     6,     3,
++       6,     4,     4,     8,   128,     4,     4,     4,   128,     4,
++       4,     3,     8,     6,     4,   289,     5,     8,   129,     5,
++       8,   131,     7,   129,     4,     4,   129,   129,   129,     4,
++       7,     4,   129,   129,   488,   316,   312,   664,   491,   676,
++     682,   680,   363,   129,   689,   112,   129,   669,   129,   128,
++     128,   128,   128,   128,   667,   128,   128,   128,   672,   129,
++     128,   670,   128,   332,   675,   356,   673,   360,   708,   509,
++     706,   335,   347,   711,   709,   695,   699,   501,   655,   380,
++     774,   790,   802,   809,    -1,    -1,    -1,    -1,    -1,    -1,
 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   650,    -1,    -1,
-       -1,    -1,   650,   653,    -1,   653,   659,    -1,   656,    -1,
-       -1,   659,   653,    -1,    -1,    -1,   653,   659,   666,   659,
-       -1,   653,   653,   653,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,
-       -1,   689,    -1,    -1,    -1,   686,    -1,    -1,   689,    -1,
-       -1,    -1,   689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
++      -1,   664,    -1,    -1,    -1,    -1,   664,   667,    -1,   667,
++     673,    -1,   670,    -1,    -1,   673,   667,    -1,    -1,    -1,
++     667,   673,   680,   673,    -1,   667,   667,   667,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,   695,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   706,    -1,
++      -1,   709,    -1,    -1,    -1,   706,    -1,    -1,   709,    -1,
++      -1,    -1,   709,    -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,   754,    -1,    -1,    -1,    -1,   754,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   771,    -1,
-       -1,    -1,    -1,   771
 -      -1,   690,    -1,    -1,    -1,    -1,   690,    -1,    -1,    -1,
 -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   707,    -1,
 -      -1,    -1,    -1,   707
++     773,    -1,    -1,    -1,    -1,   773,    -1,    -1,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,   790,    -1,    -1,
++      -1,    -1,   790
    };
  
    const unsigned short int
    Dhcp4Parser::yystos_[] =
    {
 -       0,    97,    98,    99,   100,   101,   102,   103,   104,   105,
 -     106,   112,   113,   114,   115,   116,   117,   118,   119,   120,
 -     121,   122,     0,     5,     7,     9,   107,   108,   109,   110,
 -     123,   124,   125,   130,     7,   137,     7,   143,     7,   157,
 -       7,   221,     7,   289,     7,   303,     7,   249,     7,   272,
 -       7,   197,   131,   126,   138,   144,   158,   222,   290,   304,
 -     250,   273,   198,   123,   134,   135,   107,   128,   129,    10,
 -      89,    95,    96,   107,   136,   139,   140,   141,   362,   364,
 -     366,    11,    16,    17,    18,    21,    22,    30,    31,    32,
 -      33,    34,    38,    39,    57,    58,    69,    72,    79,    84,
 -      85,    88,   136,   145,   146,   147,   148,   149,   150,   151,
 -     152,   153,   164,   166,   184,   191,   205,   215,   243,   266,
 -     308,   332,   342,   351,   352,   360,    12,    13,   155,   156,
 -     159,   161,     7,    35,    36,    37,    48,    51,    52,    53,
 -      54,    55,    56,    60,    61,    67,   136,   147,   148,   149,
 -     152,   223,   224,   225,   227,   229,   231,   233,   235,   237,
 -     239,   241,   242,   266,   283,   297,   308,   328,    49,    50,
 -     136,   266,   291,   292,   293,   295,    19,    20,    58,    62,
 -      63,    64,    65,    66,    68,   136,   266,   305,   306,   307,
 -     308,   310,   312,   314,   316,   318,   320,   322,   324,   326,
 -      23,    40,    42,    43,    45,    46,    47,   136,   170,   178,
 -     251,   252,   253,   254,   255,   256,   257,   258,   260,   262,
 -     263,   265,    41,    44,   136,   178,   255,   260,   274,   275,
 -     276,   277,   278,   280,   281,   282,    70,    71,   136,   199,
 -     200,   201,   203,     6,     3,     4,     8,     3,   142,   367,
 -     363,   365,     4,     3,     8,   154,     4,     4,   309,   165,
 -     167,     4,     4,     4,     4,   216,   244,   267,   185,   333,
 -     192,   206,   343,     4,   353,   361,     3,     8,   160,   162,
 -       3,     8,   335,   228,   230,   232,   284,   226,   234,   236,
 -       4,     4,   240,   238,   298,   329,     3,     8,   294,   296,
 -       3,     8,   311,   313,   327,   317,   319,   323,   321,   325,
 -     315,     8,     3,   171,   179,     4,   261,   259,   264,     4,
 -       8,     3,   279,     4,     8,     3,   202,   204,     3,     8,
 -     123,   123,   107,     4,     4,     4,     4,   140,     4,   110,
 -     110,     4,     4,     4,   108,   108,   108,   108,     4,     4,
 -       4,     4,     4,     4,     4,     4,   108,     4,     4,   146,
 -       4,     4,   156,    59,   136,   178,   266,   308,   310,   312,
 -     336,   337,   338,   339,   340,     4,     4,     4,     4,     4,
 -       4,     4,   108,   110,     4,     4,     4,     4,   224,     4,
 -       4,   292,     4,     4,     4,     4,     4,     4,     4,     4,
 -       4,   307,     4,     4,   108,     4,     4,     4,   110,   253,
 -       4,   110,   276,     4,     4,   200,     4,     7,     7,   123,
 -     123,     7,   107,     7,     7,     5,     5,     5,     5,     5,
 -       5,     7,     7,     7,     7,     5,   132,    14,    15,   163,
 -     341,     8,     3,   107,   107,   107,     5,   107,   107,   107,
 -     107,   107,     5,     7,   107,   125,   127,   107,   107,   132,
 -     107,   107,   107,   107,   107,   107,   107,   107,   107,   107,
 -     107,   107,   107,   123,   123,   145,    90,   368,   369,   370,
 -     155,    24,    25,    26,    27,    28,    29,   136,   168,   169,
 -     170,   172,   174,   176,   178,   180,   181,   182,   168,     7,
 -     217,   218,   219,     7,   245,   246,   247,     7,   268,   269,
 -     270,    62,    63,    64,    65,   183,   186,   187,   188,   189,
 -     190,   237,   334,     7,   193,   194,   195,    73,    74,    75,
 -      76,    77,    78,   207,   208,   209,   210,   211,   212,   213,
 -     214,    80,    81,    82,    83,   136,   170,   180,   344,   345,
 -     346,   347,   349,   350,    86,    87,   354,   355,   356,   358,
 -     129,   133,     4,   338,     7,   285,   286,   287,     7,   299,
 -     300,   301,    68,   330,     8,   371,     3,     8,     8,   173,
 -     175,   177,     4,     4,     4,     3,     8,     8,   220,     6,
 -       3,   248,     6,     3,   271,     6,     3,     3,     6,     3,
 -       6,   196,     6,     3,     4,     4,     4,     4,     4,     4,
 -       3,     8,   348,     4,     4,     4,     3,     8,   357,   359,
 -       3,     8,     8,   134,   107,   288,     6,     3,   302,     6,
 -       3,   331,     8,     4,   369,     4,     4,     4,   110,   108,
 -     110,   169,   223,   219,   251,   247,   274,   270,   187,   237,
 -     199,   195,   108,   108,   108,   108,   108,   108,   208,     4,
 -     108,   108,   108,   345,     4,     4,   355,     6,   291,   287,
 -     305,   301,     4,     5,   107,   107,   107,     8,     8,     8,
 -       8,   107,   107,   107,     8,     8,   107,     7,   372,   373,
 -     374,     3,     6,    91,    93,    94,   136,   178,   375,   376,
 -     377,   378,   380,   373,   381,     4,   379,     3,     8,     4,
 -     108,     4,   376,     5,   107,     7,   382,   383,   384,     3,
 -       6,    92,   385,   386,   383,   387,     3,     8,     4,   386,
 -     107
 +       0,   117,   118,   119,   120,   121,   122,   123,   124,   125,
 +     126,   127,   133,   134,   135,   136,   137,   138,   139,   140,
 +     141,   142,   143,   144,     0,     5,     7,     9,   128,   129,
 +     130,   131,   145,   146,   147,   151,     7,   160,     7,   166,
-        7,   180,     7,   246,     7,   315,     7,   327,     7,   274,
-        7,   298,     7,   222,     7,   377,   152,   148,   161,   167,
-      181,   247,   316,   328,   275,   299,   223,   378,   145,   153,
++       7,   180,     7,   244,     7,   312,     7,   324,     7,   272,
++       7,   295,     7,   220,     7,   383,   152,   148,   161,   167,
++     181,   245,   313,   325,   273,   296,   221,   384,   145,   153,
 +     154,   128,   149,   150,    10,   109,   115,   116,   128,   159,
-      162,   163,   164,   405,   407,   409,    11,    16,    17,    18,
-       21,    22,    35,    36,    37,    38,    39,    43,    44,    61,
-       62,    73,    76,    83,    84,    87,   159,   168,   169,   170,
-      171,   172,   173,   174,   175,   176,   187,   189,   208,   216,
-      230,   240,   268,   292,   332,   356,   366,   367,   375,    12,
-       13,   178,   179,   182,   184,     7,    40,    41,    42,    53,
-       55,    56,    57,    58,    59,    60,    64,    65,    71,   159,
-      170,   171,   172,   175,   248,   249,   250,   252,   254,   256,
-      258,   260,   262,   264,   266,   267,   292,   309,   321,   332,
-      352,    54,   159,   292,   317,   318,   319,    19,    20,    62,
-       66,    67,    68,    69,    70,    72,   159,   292,   329,   330,
-      331,   332,   334,   336,   338,   340,   342,   344,   346,   348,
-      350,    23,    45,    47,    48,    50,    51,    52,   159,   202,
-      276,   277,   278,   279,   280,   281,   282,   284,   286,   288,
-      289,   291,    46,    49,   159,   202,   280,   286,   300,   301,
-      302,   303,   304,   306,   307,   308,    74,    75,   159,   224,
-      225,   226,   228,    88,    89,    90,    91,    92,    93,    94,
-       95,    96,    97,    98,    99,   100,   101,   102,   159,   379,
-      380,   381,   382,   384,   386,   387,   389,   390,   391,   394,
-      396,   397,   398,   399,   400,   403,     6,     3,     4,     8,
-        3,   165,   410,   406,   408,     4,     3,     8,   177,     4,
-        4,   333,   188,   190,     4,     4,     4,     4,   241,   269,
-      293,   209,   357,   217,   231,     4,   368,   376,     3,     8,
-      183,   185,     3,     8,   359,   253,   255,   257,   310,   251,
-      259,   261,     4,     4,   265,   263,   322,   353,     3,     8,
-      320,     3,     8,   335,   337,   351,   341,   343,   347,   345,
-      349,   339,     8,     3,   283,   203,     4,   287,   285,   290,
-        4,     8,     3,   305,     4,     8,     3,   227,   229,     3,
-        8,     4,   383,   385,     4,   388,     4,     4,   392,   395,
-        4,     4,     4,     4,   401,   404,     3,     8,   145,   145,
-      128,     4,     4,     4,     4,   163,     4,   131,   131,     4,
-        4,     4,   129,   129,   129,   129,     4,     4,     4,     4,
-        4,     4,     4,   129,     4,     4,   169,     4,     4,   179,
-       63,   159,   202,   292,   332,   334,   336,   360,   361,   362,
-      363,   364,     4,     4,     4,     4,     4,     4,     4,   129,
-      131,     4,     4,     4,     4,   249,     4,   318,     4,     4,
-        4,     4,     4,     4,     4,     4,     4,   331,     4,     4,
-      129,     4,     4,     4,   131,   278,     4,   131,   302,     4,
-        4,   225,   131,     4,     4,   129,     4,   129,   129,     4,
-        4,   131,   131,   131,   131,     4,     4,   380,     4,     7,
-        7,   145,   145,     7,   128,     7,     7,     5,     5,     5,
-        5,     5,     5,     7,     7,     7,     5,   155,    14,    15,
-      186,   365,     8,     3,   128,   128,   128,     5,   128,   128,
-      128,   128,   128,     5,     7,   128,   128,   128,   155,   128,
-      128,   128,   128,   128,   128,   128,   128,   128,   128,   128,
-      128,   128,   145,   128,   128,   128,    15,   103,   393,   104,
-      105,   106,   107,   108,   131,   402,   128,   145,   168,   110,
-      411,   412,   413,   178,    23,    28,    29,    30,    31,    32,
-       33,    34,   159,   191,   192,   193,   196,   198,   200,   202,
-      204,   205,   206,   207,   191,     7,   242,   243,   244,     7,
-      270,   271,   272,     7,   294,   295,   296,    66,    67,    68,
-       69,   210,   211,   212,   213,   214,   215,   262,   358,     7,
-      218,   219,   220,    77,    78,    79,    80,    81,    82,   232,
-      233,   234,   235,   236,   237,   238,   239,    85,    86,   369,
-      370,   371,   373,   379,   156,     4,   362,     7,   311,   312,
-      313,     7,   323,   324,   325,    72,   354,     8,   414,     3,
-        8,     8,   194,   197,   199,   201,     4,     4,     4,     4,
-        3,     8,     8,   245,     6,     3,   273,     6,     3,   297,
-        6,     3,     3,     6,     3,     6,   221,     6,     3,     4,
-        4,     4,     4,     4,     4,     3,     8,   372,   374,     3,
-        8,     8,   128,   157,   158,   128,   314,     6,     3,   326,
-        6,     3,   355,     8,     4,   412,     4,     4,     4,     4,
-      131,   129,   131,   129,   192,   248,   244,   276,   272,   300,
-      296,   211,   262,   224,   220,   129,   129,   129,   129,   129,
-      129,   233,     4,     4,   370,     6,     3,   317,   313,   329,
-      325,     4,     5,    24,    25,    26,    27,   195,   128,   128,
-      128,     8,     8,     8,     8,   128,   128,   128,     8,     8,
-      128,     7,   415,   416,   417,     3,     6,   111,   113,   114,
-      159,   202,   418,   419,   420,   421,   423,   416,   424,     4,
-      422,     3,     8,     4,   129,     4,   419,     5,   128,     7,
-      425,   426,   427,     3,     6,   112,   428,   429,   426,   430,
-        3,     8,     4,   429,   128
++     162,   163,   164,   411,   413,   415,    11,    16,    17,    18,
++      21,    22,    30,    31,    32,    33,    34,    38,    39,    56,
++      57,    68,    71,    78,    83,    84,    87,   159,   168,   169,
++     170,   171,   172,   173,   174,   175,   176,   187,   189,   207,
++     214,   228,   238,   266,   289,   329,   353,   363,   372,   373,
++     381,    12,    13,   178,   179,   182,   184,     7,    35,    36,
++      37,    48,    50,    51,    52,    53,    54,    55,    59,    60,
++      66,   159,   170,   171,   172,   175,   246,   247,   248,   250,
++     252,   254,   256,   258,   260,   262,   264,   265,   289,   306,
++     318,   329,   349,    49,   159,   289,   314,   315,   316,    19,
++      20,    57,    61,    62,    63,    64,    65,    67,   159,   289,
++     326,   327,   328,   329,   331,   333,   335,   337,   339,   341,
++     343,   345,   347,    23,    40,    42,    43,    45,    46,    47,
++     159,   193,   201,   274,   275,   276,   277,   278,   279,   280,
++     281,   283,   285,   286,   288,    41,    44,   159,   201,   278,
++     283,   297,   298,   299,   300,   301,   303,   304,   305,    69,
++      70,   159,   222,   223,   224,   226,    88,    89,    90,    91,
++      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
++     102,   159,   385,   386,   387,   388,   390,   392,   393,   395,
++     396,   397,   400,   402,   403,   404,   405,   406,   409,     6,
++       3,     4,     8,     3,   165,   416,   412,   414,     4,     3,
++       8,   177,     4,     4,   330,   188,   190,     4,     4,     4,
++       4,   239,   267,   290,   208,   354,   215,   229,   364,     4,
++     374,   382,     3,     8,   183,   185,     3,     8,   356,   251,
++     253,   255,   307,   249,   257,   259,     4,     4,   263,   261,
++     319,   350,     3,     8,   317,     3,     8,   332,   334,   348,
++     338,   340,   344,   342,   346,   336,     8,     3,   194,   202,
++       4,   284,   282,   287,     4,     8,     3,   302,     4,     8,
++       3,   225,   227,     3,     8,     4,   389,   391,     4,   394,
++       4,     4,   398,   401,     4,     4,     4,     4,   407,   410,
++       3,     8,   145,   145,   128,     4,     4,     4,     4,   163,
++       4,   131,   131,     4,     4,     4,   129,   129,   129,   129,
++       4,     4,     4,     4,     4,     4,     4,     4,   129,     4,
++       4,   169,     4,     4,   179,    58,   159,   201,   289,   329,
++     331,   333,   357,   358,   359,   360,   361,     4,     4,     4,
++       4,     4,     4,     4,   129,   131,     4,     4,     4,     4,
++     247,     4,   315,     4,     4,     4,     4,     4,     4,     4,
++       4,     4,   328,     4,     4,   129,     4,     4,     4,   131,
++     276,     4,   131,   299,     4,     4,   223,   131,     4,     4,
++     129,     4,   129,   129,     4,     4,   131,   131,   131,   131,
++       4,     4,   386,     4,     7,     7,   145,   145,     7,   128,
++       7,     7,     5,     5,     5,     5,     5,     5,     7,     7,
++       7,     7,     5,   155,    14,    15,   186,   362,     8,     3,
++     128,   128,   128,     5,   128,   128,   128,   128,   128,     5,
++       7,   128,   128,   128,   155,   128,   128,   128,   128,   128,
++     128,   128,   128,   128,   128,   128,   128,   128,   145,   128,
++     128,   128,    15,   103,   399,   104,   105,   106,   107,   108,
++     131,   408,   128,   145,   168,   110,   417,   418,   419,   178,
++      24,    25,    26,    27,    28,    29,   159,   191,   192,   193,
++     195,   197,   199,   201,   203,   204,   205,   191,     7,   240,
++     241,   242,     7,   268,   269,   270,     7,   291,   292,   293,
++      61,    62,    63,    64,   206,   209,   210,   211,   212,   213,
++     260,   355,     7,   216,   217,   218,    72,    73,    74,    75,
++      76,    77,   230,   231,   232,   233,   234,   235,   236,   237,
++      79,    80,    81,    82,   159,   193,   203,   365,   366,   367,
++     368,   370,   371,    85,    86,   375,   376,   377,   379,   385,
++     156,     4,   359,     7,   308,   309,   310,     7,   320,   321,
++     322,    67,   351,     8,   420,     3,     8,     8,   196,   198,
++     200,     4,     4,     4,     3,     8,     8,   243,     6,     3,
++     271,     6,     3,   294,     6,     3,     3,     6,     3,     6,
++     219,     6,     3,     4,     4,     4,     4,     4,     4,     3,
++       8,   369,     4,     4,     4,     3,     8,   378,   380,     3,
++       8,     8,   128,   157,   158,   128,   311,     6,     3,   323,
++       6,     3,   352,     8,     4,   418,     4,     4,     4,   131,
++     129,   131,   192,   246,   242,   274,   270,   297,   293,   210,
++     260,   222,   218,   129,   129,   129,   129,   129,   129,   231,
++       4,   129,   129,   129,   366,     4,     4,   376,     6,     3,
++     314,   310,   326,   322,     4,     5,   128,   128,   128,     8,
++       8,     8,     8,   128,   128,   128,   128,     8,     8,   128,
++       7,   421,   422,   423,     3,     6,   111,   113,   114,   159,
++     201,   424,   425,   426,   427,   429,   422,   430,     4,   428,
++       3,     8,     4,   129,     4,   425,     5,   128,     7,   431,
++     432,   433,     3,     6,   112,   434,   435,   432,   436,     3,
++       8,     4,   435,   128
    };
  
    const unsigned short int
    Dhcp4Parser::yyr1_[] =
    {
 -       0,   111,   113,   112,   114,   112,   115,   112,   116,   112,
 -     117,   112,   118,   112,   119,   112,   120,   112,   121,   112,
 -     122,   112,   123,   123,   123,   123,   123,   123,   123,   124,
 -     126,   125,   127,   128,   128,   129,   129,   131,   130,   133,
 -     132,   134,   134,   135,   135,   136,   138,   137,   139,   139,
 -     140,   140,   140,   140,   140,   142,   141,   144,   143,   145,
 -     145,   146,   146,   146,   146,   146,   146,   146,   146,   146,
 -     146,   146,   146,   146,   146,   146,   146,   146,   146,   146,
 -     146,   146,   146,   147,   148,   149,   150,   151,   152,   154,
 -     153,   155,   155,   156,   156,   158,   157,   160,   159,   162,
 -     161,   163,   163,   165,   164,   167,   166,   168,   168,   169,
 -     169,   169,   169,   169,   169,   169,   169,   169,   171,   170,
 -     173,   172,   175,   174,   177,   176,   179,   178,   180,   181,
 -     182,   183,   185,   184,   186,   186,   187,   187,   187,   187,
 -     188,   189,   190,   192,   191,   193,   193,   194,   194,   196,
 -     195,   198,   197,   199,   199,   199,   200,   200,   202,   201,
 -     204,   203,   206,   205,   207,   207,   208,   208,   208,   208,
 -     208,   208,   209,   210,   211,   212,   213,   214,   216,   215,
 -     217,   217,   218,   218,   220,   219,   222,   221,   223,   223,
 -     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
 -     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
 -     226,   225,   228,   227,   230,   229,   232,   231,   234,   233,
 -     236,   235,   238,   237,   240,   239,   241,   242,   244,   243,
 -     245,   245,   246,   246,   248,   247,   250,   249,   251,   251,
 -     252,   252,   253,   253,   253,   253,   253,   253,   253,   253,
 -     254,   255,   256,   257,   259,   258,   261,   260,   262,   264,
 -     263,   265,   267,   266,   268,   268,   269,   269,   271,   270,
 -     273,   272,   274,   274,   275,   275,   276,   276,   276,   276,
 -     276,   276,   277,   279,   278,   280,   281,   282,   284,   283,
 -     285,   285,   286,   286,   288,   287,   290,   289,   291,   291,
 -     292,   292,   292,   292,   294,   293,   296,   295,   298,   297,
 -     299,   299,   300,   300,   302,   301,   304,   303,   305,   305,
 -     306,   306,   307,   307,   307,   307,   307,   307,   307,   307,
 -     307,   307,   307,   307,   309,   308,   311,   310,   313,   312,
 -     315,   314,   317,   316,   319,   318,   321,   320,   323,   322,
 -     325,   324,   327,   326,   329,   328,   331,   330,   333,   332,
 -     334,   334,   335,   237,   336,   336,   337,   337,   338,   338,
 -     338,   338,   338,   338,   338,   339,   341,   340,   343,   342,
 -     344,   344,   345,   345,   345,   345,   345,   345,   345,   346,
 -     348,   347,   349,   350,   351,   353,   352,   354,   354,   355,
 -     355,   357,   356,   359,   358,   361,   360,   363,   362,   365,
 -     364,   367,   366,   368,   368,   369,   371,   370,   372,   372,
 -     374,   373,   375,   375,   376,   376,   376,   376,   376,   377,
 -     379,   378,   381,   380,   382,   382,   384,   383,   385,   385,
 -     387,   386
 +       0,   132,   134,   133,   135,   133,   136,   133,   137,   133,
 +     138,   133,   139,   133,   140,   133,   141,   133,   142,   133,
 +     143,   133,   144,   133,   145,   145,   145,   145,   145,   145,
 +     145,   146,   148,   147,   149,   149,   150,   150,   152,   151,
 +     153,   153,   154,   154,   156,   155,   157,   157,   158,   158,
 +     159,   161,   160,   162,   162,   163,   163,   163,   163,   163,
 +     165,   164,   167,   166,   168,   168,   169,   169,   169,   169,
 +     169,   169,   169,   169,   169,   169,   169,   169,   169,   169,
-      169,   169,   169,   169,   169,   169,   169,   170,   171,   172,
-      173,   174,   175,   177,   176,   178,   178,   179,   179,   181,
-      180,   183,   182,   185,   184,   186,   186,   188,   187,   190,
-      189,   191,   191,   192,   192,   192,   192,   192,   192,   192,
-      192,   192,   192,   194,   193,   195,   195,   195,   195,   197,
-      196,   199,   198,   201,   200,   203,   202,   204,   205,   206,
-      207,   209,   208,   210,   210,   211,   211,   211,   211,   212,
-      213,   214,   215,   217,   216,   218,   218,   219,   219,   221,
-      220,   223,   222,   224,   224,   224,   225,   225,   227,   226,
-      229,   228,   231,   230,   232,   232,   233,   233,   233,   233,
-      233,   233,   234,   235,   236,   237,   238,   239,   241,   240,
-      242,   242,   243,   243,   245,   244,   247,   246,   248,   248,
-      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
-      249,   249,   249,   249,   249,   249,   249,   249,   249,   249,
-      251,   250,   253,   252,   255,   254,   257,   256,   259,   258,
-      261,   260,   263,   262,   265,   264,   266,   267,   269,   268,
-      270,   270,   271,   271,   273,   272,   275,   274,   276,   276,
-      277,   277,   278,   278,   278,   278,   278,   278,   278,   278,
-      279,   280,   281,   283,   282,   285,   284,   287,   286,   288,
-      290,   289,   291,   293,   292,   294,   294,   295,   295,   297,
-      296,   299,   298,   300,   300,   301,   301,   302,   302,   302,
-      302,   302,   302,   303,   305,   304,   306,   307,   308,   310,
-      309,   311,   311,   312,   312,   314,   313,   316,   315,   317,
-      317,   318,   318,   318,   320,   319,   322,   321,   323,   323,
-      324,   324,   326,   325,   328,   327,   329,   329,   330,   330,
-      331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
-      331,   331,   333,   332,   335,   334,   337,   336,   339,   338,
-      341,   340,   343,   342,   345,   344,   347,   346,   349,   348,
-      351,   350,   353,   352,   355,   354,   357,   356,   358,   358,
-      359,   262,   360,   360,   361,   361,   362,   362,   362,   362,
-      362,   362,   362,   363,   365,   364,   366,   368,   367,   369,
-      369,   370,   370,   372,   371,   374,   373,   376,   375,   378,
-      377,   379,   379,   380,   380,   380,   380,   380,   380,   380,
-      380,   380,   380,   380,   380,   380,   380,   380,   380,   381,
-      383,   382,   385,   384,   386,   388,   387,   389,   390,   392,
-      391,   393,   393,   395,   394,   396,   397,   398,   399,   401,
-      400,   402,   402,   402,   402,   402,   404,   403,   406,   405,
-      408,   407,   410,   409,   411,   411,   412,   414,   413,   415,
-      415,   417,   416,   418,   418,   419,   419,   419,   419,   419,
-      420,   422,   421,   424,   423,   425,   425,   427,   426,   428,
-      428,   430,   429
++     169,   169,   169,   169,   169,   169,   169,   169,   170,   171,
++     172,   173,   174,   175,   177,   176,   178,   178,   179,   179,
++     181,   180,   183,   182,   185,   184,   186,   186,   188,   187,
++     190,   189,   191,   191,   192,   192,   192,   192,   192,   192,
++     192,   192,   192,   194,   193,   196,   195,   198,   197,   200,
++     199,   202,   201,   203,   204,   205,   206,   208,   207,   209,
++     209,   210,   210,   210,   210,   211,   212,   213,   215,   214,
++     216,   216,   217,   217,   219,   218,   221,   220,   222,   222,
++     222,   223,   223,   225,   224,   227,   226,   229,   228,   230,
++     230,   231,   231,   231,   231,   231,   231,   232,   233,   234,
++     235,   236,   237,   239,   238,   240,   240,   241,   241,   243,
++     242,   245,   244,   246,   246,   247,   247,   247,   247,   247,
++     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
++     247,   247,   247,   247,   247,   249,   248,   251,   250,   253,
++     252,   255,   254,   257,   256,   259,   258,   261,   260,   263,
++     262,   264,   265,   267,   266,   268,   268,   269,   269,   271,
++     270,   273,   272,   274,   274,   275,   275,   276,   276,   276,
++     276,   276,   276,   276,   276,   277,   278,   279,   280,   282,
++     281,   284,   283,   285,   287,   286,   288,   290,   289,   291,
++     291,   292,   292,   294,   293,   296,   295,   297,   297,   298,
++     298,   299,   299,   299,   299,   299,   299,   300,   302,   301,
++     303,   304,   305,   307,   306,   308,   308,   309,   309,   311,
++     310,   313,   312,   314,   314,   315,   315,   315,   317,   316,
++     319,   318,   320,   320,   321,   321,   323,   322,   325,   324,
++     326,   326,   327,   327,   328,   328,   328,   328,   328,   328,
++     328,   328,   328,   328,   328,   328,   330,   329,   332,   331,
++     334,   333,   336,   335,   338,   337,   340,   339,   342,   341,
++     344,   343,   346,   345,   348,   347,   350,   349,   352,   351,
++     354,   353,   355,   355,   356,   260,   357,   357,   358,   358,
++     359,   359,   359,   359,   359,   359,   359,   360,   362,   361,
++     364,   363,   365,   365,   366,   366,   366,   366,   366,   366,
++     366,   367,   369,   368,   370,   371,   372,   374,   373,   375,
++     375,   376,   376,   378,   377,   380,   379,   382,   381,   384,
++     383,   385,   385,   386,   386,   386,   386,   386,   386,   386,
++     386,   386,   386,   386,   386,   386,   386,   386,   386,   387,
++     389,   388,   391,   390,   392,   394,   393,   395,   396,   398,
++     397,   399,   399,   401,   400,   402,   403,   404,   405,   407,
++     406,   408,   408,   408,   408,   408,   410,   409,   412,   411,
++     414,   413,   416,   415,   417,   417,   418,   420,   419,   421,
++     421,   423,   422,   424,   424,   425,   425,   425,   425,   425,
++     426,   428,   427,   430,   429,   431,   431,   433,   432,   434,
++     434,   436,   435
    };
  
    const unsigned char
    {
         0,     2,     0,     3,     0,     3,     0,     3,     0,     3,
         0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
 -       0,     3,     1,     1,     1,     1,     1,     1,     1,     1,
 -       0,     4,     1,     0,     1,     3,     5,     0,     4,     0,
 -       4,     0,     1,     1,     3,     2,     0,     4,     1,     3,
 -       1,     1,     1,     1,     1,     0,     6,     0,     4,     1,
 -       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 +       0,     3,     0,     3,     1,     1,     1,     1,     1,     1,
 +       1,     1,     0,     4,     0,     1,     3,     5,     0,     4,
 +       0,     1,     1,     3,     0,     4,     0,     1,     1,     3,
 +       2,     0,     4,     1,     3,     1,     1,     1,     1,     1,
 +       0,     6,     0,     4,     1,     3,     1,     1,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
-        3,     3,     3,     0,     6,     1,     3,     1,     1,     0,
-        4,     0,     4,     0,     4,     1,     1,     0,     6,     0,
-        6,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     1,     0,     4,     1,     1,     1,     1,     0,
-        4,     0,     4,     0,     4,     0,     4,     3,     3,     3,
-        3,     0,     6,     1,     3,     1,     1,     1,     1,     1,
 -       1,     1,     1,     3,     3,     3,     3,     3,     3,     0,
 -       6,     1,     3,     1,     1,     0,     4,     0,     4,     0,
 -       4,     1,     1,     0,     6,     0,     6,     1,     3,     1,
 -       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
 -       0,     4,     0,     4,     0,     4,     0,     4,     3,     3,
 -       3,     1,     0,     6,     1,     3,     1,     1,     1,     1,
--       1,     1,     1,     0,     6,     0,     1,     1,     3,     0,
--       4,     0,     4,     1,     3,     1,     1,     1,     0,     4,
--       0,     4,     0,     6,     1,     3,     1,     1,     1,     1,
--       1,     1,     3,     3,     3,     3,     3,     3,     0,     6,
++       1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
++       3,     3,     3,     3,     0,     6,     1,     3,     1,     1,
++       0,     4,     0,     4,     0,     4,     1,     1,     0,     6,
++       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
++       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
++       4,     0,     4,     3,     3,     3,     1,     0,     6,     1,
++       3,     1,     1,     1,     1,     1,     1,     1,     0,     6,
         0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
++       1,     1,     1,     0,     4,     0,     4,     0,     6,     1,
++       3,     1,     1,     1,     1,     1,     1,     3,     3,     3,
++       3,     3,     3,     0,     6,     0,     1,     1,     3,     0,
++       4,     0,     4,     1,     3,     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,     0,     4,     3,     3,     0,     6,
--       0,     1,     1,     3,     0,     4,     0,     4,     0,     1,
--       1,     3,     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,     0,
 -       1,     3,     1,     1,     0,     4,     0,     4,     1,     0,
 -       4,     3,     0,     6,     0,     1,     1,     3,     0,     4,
 -       0,     4,     0,     1,     1,     3,     1,     1,     1,     1,
 -       1,     1,     1,     0,     4,     1,     1,     3,     0,     6,
 -       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
 -       1,     1,     1,     1,     0,     4,     0,     4,     0,     6,
 -       0,     1,     1,     3,     0,     4,     0,     4,     0,     1,
 -       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
 -       1,     1,     1,     1,     0,     4,     0,     4,     0,     4,
++       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
++       4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
++       4,     3,     3,     0,     6,     0,     1,     1,     3,     0,
 +       4,     0,     4,     0,     1,     1,     3,     1,     1,     1,
-        1,     1,     1,     1,     0,     4,     1,     1,     3,     0,
-        6,     0,     1,     1,     3,     0,     4,     0,     4,     1,
-        3,     1,     1,     1,     0,     4,     0,     6,     0,     1,
-        1,     3,     0,     4,     0,     4,     0,     1,     1,     3,
-        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-        1,     1,     0,     4,     0,     4,     0,     4,     0,     4,
++       1,     1,     1,     1,     1,     1,     3,     1,     1,     0,
++       4,     0,     4,     1,     0,     4,     3,     0,     6,     0,
++       1,     1,     3,     0,     4,     0,     4,     0,     1,     1,
++       3,     1,     1,     1,     1,     1,     1,     1,     0,     4,
++       1,     1,     3,     0,     6,     0,     1,     1,     3,     0,
++       4,     0,     4,     1,     3,     1,     1,     1,     0,     4,
++       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
++       0,     1,     1,     3,     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,     6,     0,     4,     0,     6,     1,     3,
-        0,     4,     0,     1,     1,     3,     1,     1,     1,     1,
-        1,     1,     1,     1,     0,     4,     3,     0,     6,     1,
 -       0,     4,     0,     4,     0,     6,     0,     4,     0,     6,
 -       1,     3,     0,     4,     0,     1,     1,     3,     1,     1,
 -       1,     1,     1,     1,     1,     1,     0,     4,     0,     6,
 -       1,     3,     1,     1,     1,     1,     1,     1,     1,     3,
 -       0,     4,     3,     3,     3,     0,     6,     1,     3,     1,
 -       1,     0,     4,     0,     4,     0,     6,     0,     4,     0,
 -       4,     0,     6,     1,     3,     1,     0,     6,     1,     3,
 -       0,     4,     1,     3,     1,     1,     1,     1,     1,     3,
 -       0,     4,     0,     6,     1,     3,     0,     4,     1,     3,
 -       0,     4
++       0,     4,     0,     4,     0,     4,     0,     6,     0,     4,
++       0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
++       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
++       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
++       1,     3,     0,     4,     3,     3,     3,     0,     6,     1,
 +       3,     1,     1,     0,     4,     0,     4,     0,     6,     0,
 +       4,     1,     3,     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,     3,     3,     0,
 +       4,     1,     1,     1,     1,     1,     0,     4,     0,     4,
 +       0,     4,     0,     6,     1,     3,     1,     0,     6,     1,
 +       3,     0,     4,     1,     3,     1,     1,     1,     1,     1,
 +       3,     0,     4,     0,     6,     1,     3,     0,     4,     1,
 +       3,     0,     4
    };
  
  
    "\"4o6-interface\"", "\"4o6-interface-id\"", "\"4o6-subnet\"",
    "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"",
    "\"space\"", "\"csv-format\"", "\"record-types\"", "\"encapsulate\"",
 -  "\"array\"", "\"pools\"", "\"pool\"", "\"user-context\"", "\"subnet\"",
 -  "\"interface\"", "\"interface-id\"", "\"id\"", "\"rapid-commit\"",
 -  "\"reservation-mode\"", "\"host-reservation-identifiers\"",
 -  "\"client-classes\"", "\"test\"", "\"client-class\"", "\"reservations\"",
 -  "\"duid\"", "\"hw-address\"", "\"circuit-id\"", "\"client-id\"",
 -  "\"hostname\"", "\"relay\"", "\"ip-address\"", "\"hooks-libraries\"",
 -  "\"library\"", "\"parameters\"", "\"expired-leases-processing\"",
 -  "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"",
 -  "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"",
 -  "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", "\"server-id\"",
 -  "\"identifier\"", "\"htype\"", "\"time\"", "\"enterprise-id\"",
 -  "\"dhcp4o6-port\"", "\"control-socket\"", "\"socket-type\"",
 -  "\"socket-name\"", "\"dhcp-ddns\"", "\"Logging\"", "\"loggers\"",
 -  "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"",
 -  "\"Dhcp6\"", "\"DhcpDdns\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP4",
 -  "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4", "SUB_POOL4",
 -  "SUB_RESERVATION", "SUB_OPTION_DEF", "SUB_OPTION_DATA",
 -  "SUB_HOOKS_LIBRARY", "\"constant string\"", "\"integer\"",
 -  "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2",
 -  "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "value",
 -  "sub_json", "map2", "$@11", "map_value", "map_content", "not_empty_map",
 -  "list_generic", "$@12", "list2", "$@13", "list_content",
 -  "not_empty_list", "unknown_map_entry", "syntax_map", "$@14",
 -  "global_objects", "global_object", "dhcp4_object", "$@15", "sub_dhcp4",
 -  "$@16", "global_params", "global_param", "valid_lifetime", "renew_timer",
 -  "rebind_timer", "decline_probation_period", "echo_client_id",
 -  "match_client_id", "interfaces_config", "$@17",
 -  "interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
 -  "$@18", "interfaces_list", "$@19", "dhcp_socket_type", "$@20",
 -  "socket_type", "lease_database", "$@21", "hosts_database", "$@22",
 -  "database_map_params", "database_map_param", "type", "$@23", "user",
 -  "$@24", "password", "$@25", "host", "$@26", "name", "$@27", "persist",
 -  "lfc_interval", "readonly", "duid_id", "host_reservation_identifiers",
 -  "$@28", "host_reservation_identifiers_list",
 -  "host_reservation_identifier", "hw_address_id", "circuit_id",
 -  "client_id", "hooks_libraries", "$@29", "hooks_libraries_list",
 -  "not_empty_hooks_libraries_list", "hooks_library", "$@30",
 -  "sub_hooks_library", "$@31", "hooks_params", "hooks_param", "library",
 -  "$@32", "parameters", "$@33", "expired_leases_processing", "$@34",
 -  "expired_leases_params", "expired_leases_param",
 -  "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time",
 -  "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time",
 -  "unwarned_reclaim_cycles", "subnet4_list", "$@35",
 -  "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@36",
 -  "sub_subnet4", "$@37", "subnet4_params", "subnet4_param", "subnet",
 -  "$@38", "subnet_4o6_interface", "$@39", "subnet_4o6_interface_id",
 -  "$@40", "subnet_4o6_subnet", "$@41", "interface", "$@42", "interface_id",
 -  "$@43", "client_class", "$@44", "reservation_mode", "$@45", "id",
 -  "rapid_commit", "option_def_list", "$@46", "option_def_list_content",
 -  "not_empty_option_def_list", "option_def_entry", "$@47",
 -  "sub_option_def", "$@48", "option_def_params",
 -  "not_empty_option_def_params", "option_def_param", "option_def_name",
 -  "code", "option_def_code", "option_def_type", "option_def_record_types",
 -  "$@49", "space", "$@50", "option_def_space", "option_def_encapsulate",
 -  "$@51", "option_def_array", "option_data_list", "$@52",
 -  "option_data_list_content", "not_empty_option_data_list",
 -  "option_data_entry", "$@53", "sub_option_data", "$@54",
 +  "\"array\"", "\"pools\"", "\"pool\"", "\"subnet\"", "\"interface\"",
 +  "\"interface-id\"", "\"id\"", "\"rapid-commit\"", "\"reservation-mode\"",
 +  "\"host-reservation-identifiers\"", "\"client-classes\"", "\"test\"",
 +  "\"client-class\"", "\"reservations\"", "\"duid\"", "\"hw-address\"",
 +  "\"circuit-id\"", "\"client-id\"", "\"hostname\"", "\"relay\"",
 +  "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"",
 +  "\"expired-leases-processing\"", "\"reclaim-timer-wait-time\"",
 +  "\"flush-reclaimed-timer-wait-time\"", "\"hold-reclaimed-time\"",
 +  "\"max-reclaim-leases\"", "\"max-reclaim-time\"",
-   "\"unwarned-reclaim-cycles\"", "\"dhcp4o6-port\"", "\"control-socket\"",
-   "\"socket-type\"", "\"socket-name\"", "\"dhcp-ddns\"",
-   "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"",
-   "\"server-port\"", "\"sender-ip\"", "\"sender-port\"",
++  "\"unwarned-reclaim-cycles\"", "\"server-id\"", "\"identifier\"",
++  "\"htype\"", "\"time\"", "\"enterprise-id\"", "\"dhcp4o6-port\"",
++  "\"control-socket\"", "\"socket-type\"", "\"socket-name\"",
++  "\"dhcp-ddns\"", "\"enable-updates\"", "\"qualifying-suffix\"",
++  "\"server-ip\"", "\"server-port\"", "\"sender-ip\"", "\"sender-port\"",
 +  "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"",
 +  "\"always-include-fqdn\"", "\"allow-client-update\"",
 +  "\"override-no-update\"", "\"override-client-update\"",
 +  "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"",
 +  "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"",
 +  "\"Logging\"", "\"loggers\"", "\"output_options\"", "\"output\"",
 +  "\"debuglevel\"", "\"severity\"", "\"Dhcp6\"", "\"DhcpDdns\"",
 +  "TOPLEVEL_JSON", "TOPLEVEL_DHCP4", "SUB_DHCP4", "SUB_INTERFACES4",
 +  "SUB_SUBNET4", "SUB_POOL4", "SUB_RESERVATION", "SUB_OPTION_DEF",
 +  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS",
 +  "\"constant string\"", "\"integer\"", "\"floating point\"",
 +  "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5",
 +  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "value", "sub_json", "map2",
 +  "$@12", "map_content", "not_empty_map", "list_generic", "$@13",
 +  "list_content", "not_empty_list", "list_strings", "$@14",
 +  "list_strings_content", "not_empty_list_strings", "unknown_map_entry",
 +  "syntax_map", "$@15", "global_objects", "global_object", "dhcp4_object",
 +  "$@16", "sub_dhcp4", "$@17", "global_params", "global_param",
 +  "valid_lifetime", "renew_timer", "rebind_timer",
 +  "decline_probation_period", "echo_client_id", "match_client_id",
 +  "interfaces_config", "$@18", "interfaces_config_params",
 +  "interfaces_config_param", "sub_interfaces4", "$@19", "interfaces_list",
 +  "$@20", "dhcp_socket_type", "$@21", "socket_type", "lease_database",
 +  "$@22", "hosts_database", "$@23", "database_map_params",
-   "database_map_param", "database_type", "$@24", "db_type", "user", "$@25",
-   "password", "$@26", "host", "$@27", "name", "$@28", "persist",
-   "lfc_interval", "readonly", "connect_timeout",
-   "host_reservation_identifiers", "$@29",
++  "database_map_param", "type", "$@24", "user", "$@25", "password", "$@26",
++  "host", "$@27", "name", "$@28", "persist", "lfc_interval", "readonly",
++  "duid_id", "host_reservation_identifiers", "$@29",
 +  "host_reservation_identifiers_list", "host_reservation_identifier",
-   "duid_id", "hw_address_id", "circuit_id", "client_id", "hooks_libraries",
-   "$@30", "hooks_libraries_list", "not_empty_hooks_libraries_list",
++  "hw_address_id", "circuit_id", "client_id", "hooks_libraries", "$@30",
++  "hooks_libraries_list", "not_empty_hooks_libraries_list",
 +  "hooks_library", "$@31", "sub_hooks_library", "$@32", "hooks_params",
 +  "hooks_param", "library", "$@33", "parameters", "$@34",
 +  "expired_leases_processing", "$@35", "expired_leases_params",
 +  "expired_leases_param", "reclaim_timer_wait_time",
 +  "flush_reclaimed_timer_wait_time", "hold_reclaimed_time",
 +  "max_reclaim_leases", "max_reclaim_time", "unwarned_reclaim_cycles",
 +  "subnet4_list", "$@36", "subnet4_list_content", "not_empty_subnet4_list",
 +  "subnet4", "$@37", "sub_subnet4", "$@38", "subnet4_params",
 +  "subnet4_param", "subnet", "$@39", "subnet_4o6_interface", "$@40",
 +  "subnet_4o6_interface_id", "$@41", "subnet_4o6_subnet", "$@42",
 +  "interface", "$@43", "interface_id", "$@44", "client_class", "$@45",
 +  "reservation_mode", "$@46", "id", "rapid_commit", "option_def_list",
 +  "$@47", "option_def_list_content", "not_empty_option_def_list",
 +  "option_def_entry", "$@48", "sub_option_def", "$@49",
 +  "option_def_params", "not_empty_option_def_params", "option_def_param",
-   "option_def_name", "code", "option_def_code", "option_def_type", "$@50",
-   "option_def_record_types", "$@51", "space", "$@52", "option_def_space",
-   "option_def_encapsulate", "$@53", "option_def_array", "option_data_list",
-   "$@54", "option_data_list_content", "not_empty_option_data_list",
-   "option_data_entry", "$@55", "sub_option_data", "$@56",
++  "option_def_name", "code", "option_def_code", "option_def_type",
++  "option_def_record_types", "$@50", "space", "$@51", "option_def_space",
++  "option_def_encapsulate", "$@52", "option_def_array", "option_data_list",
++  "$@53", "option_data_list_content", "not_empty_option_data_list",
++  "option_data_entry", "$@54", "sub_option_data", "$@55",
    "option_data_params", "not_empty_option_data_params",
-   "option_data_param", "option_data_name", "option_data_data", "$@57",
 -  "option_data_param", "option_data_name", "option_data_data", "$@55",
++  "option_data_param", "option_data_name", "option_data_data", "$@56",
    "option_data_code", "option_data_space", "option_data_csv_format",
-   "pools_list", "$@58", "pools_list_content", "not_empty_pools_list",
-   "pool_list_entry", "$@59", "sub_pool4", "$@60", "pool_params",
-   "pool_param", "pool_entry", "$@61", "reservations", "$@62",
 -  "pools_list", "$@56", "pools_list_content", "not_empty_pools_list",
 -  "pool_list_entry", "$@57", "sub_pool4", "$@58", "pool_params",
 -  "pool_param", "pool_entry", "$@59", "user_context", "$@60",
 -  "reservations", "$@61", "reservations_list",
 -  "not_empty_reservations_list", "reservation", "$@62", "sub_reservation",
 -  "$@63", "reservation_params", "not_empty_reservation_params",
 -  "reservation_param", "next_server", "$@64", "server_hostname", "$@65",
 -  "boot_file_name", "$@66", "ip_address", "$@67", "duid", "$@68",
 -  "hw_address", "$@69", "client_id_value", "$@70", "circuit_id_value",
 -  "$@71", "hostname", "$@72", "reservation_client_classes", "$@73",
 -  "relay", "$@74", "relay_map", "$@75", "client_classes", "$@76",
 -  "client_classes_list", "$@77", "client_class_params",
 -  "not_empty_client_class_params", "client_class_param",
 -  "client_class_name", "client_class_test", "$@78", "server_id", "$@79",
 -  "server_id_params", "server_id_param", "htype", "identifier", "$@80",
 -  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@81",
 -  "control_socket_params", "control_socket_param", "control_socket_type",
 -  "$@82", "control_socket_name", "$@83", "dhcp_ddns", "$@84",
 -  "dhcp6_json_object", "$@85", "dhcpddns_json_object", "$@86",
 -  "logging_object", "$@87", "logging_params", "logging_param", "loggers",
 -  "$@88", "loggers_entries", "logger_entry", "$@89", "logger_params",
 -  "logger_param", "debuglevel", "severity", "$@90", "output_options_list",
 -  "$@91", "output_options_list_content", "output_entry", "$@92",
 -  "output_params", "output_param", "$@93", YY_NULLPTR
++  "pools_list", "$@57", "pools_list_content", "not_empty_pools_list",
++  "pool_list_entry", "$@58", "sub_pool4", "$@59", "pool_params",
++  "pool_param", "pool_entry", "$@60", "reservations", "$@61",
 +  "reservations_list", "not_empty_reservations_list", "reservation",
-   "$@63", "sub_reservation", "$@64", "reservation_params",
++  "$@62", "sub_reservation", "$@63", "reservation_params",
 +  "not_empty_reservation_params", "reservation_param", "next_server",
-   "$@65", "server_hostname", "$@66", "boot_file_name", "$@67",
-   "ip_address", "$@68", "duid", "$@69", "hw_address", "$@70",
-   "client_id_value", "$@71", "circuit_id_value", "$@72", "hostname",
-   "$@73", "reservation_client_classes", "$@74", "relay", "$@75",
-   "relay_map", "$@76", "client_classes", "$@77", "client_classes_list",
-   "$@78", "client_class_params", "not_empty_client_class_params",
-   "client_class_param", "client_class_name", "client_class_test", "$@79",
-   "dhcp4o6_port", "control_socket", "$@80", "control_socket_params",
-   "control_socket_param", "control_socket_type", "$@81",
-   "control_socket_name", "$@82", "dhcp_ddns", "$@83", "sub_dhcp_ddns",
-   "$@84", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
-   "qualifying_suffix", "$@85", "server_ip", "$@86", "server_port",
-   "sender_ip", "$@87", "sender_port", "max_queue_size", "ncr_protocol",
-   "$@88", "ncr_protocol_value", "ncr_format", "$@89",
++  "$@64", "server_hostname", "$@65", "boot_file_name", "$@66",
++  "ip_address", "$@67", "duid", "$@68", "hw_address", "$@69",
++  "client_id_value", "$@70", "circuit_id_value", "$@71", "hostname",
++  "$@72", "reservation_client_classes", "$@73", "relay", "$@74",
++  "relay_map", "$@75", "client_classes", "$@76", "client_classes_list",
++  "$@77", "client_class_params", "not_empty_client_class_params",
++  "client_class_param", "client_class_name", "client_class_test", "$@78",
++  "server_id", "$@79", "server_id_params", "server_id_param", "htype",
++  "identifier", "$@80", "time", "enterprise_id", "dhcp4o6_port",
++  "control_socket", "$@81", "control_socket_params",
++  "control_socket_param", "control_socket_type", "$@82",
++  "control_socket_name", "$@83", "dhcp_ddns", "$@84", "sub_dhcp_ddns",
++  "$@85", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
++  "qualifying_suffix", "$@86", "server_ip", "$@87", "server_port",
++  "sender_ip", "$@88", "sender_port", "max_queue_size", "ncr_protocol",
++  "$@89", "ncr_protocol_value", "ncr_format", "$@90",
 +  "always_include_fqdn", "allow_client_update", "override_no_update",
-   "override_client_update", "replace_client_name", "$@90",
-   "replace_client_name_value", "generated_prefix", "$@91",
-   "dhcp6_json_object", "$@92", "dhcpddns_json_object", "$@93",
-   "logging_object", "$@94", "logging_params", "logging_param", "loggers",
-   "$@95", "loggers_entries", "logger_entry", "$@96", "logger_params",
-   "logger_param", "debuglevel", "severity", "$@97", "output_options_list",
-   "$@98", "output_options_list_content", "output_entry", "$@99",
-   "output_params", "output_param", "$@100", YY_NULLPTR
++  "override_client_update", "replace_client_name", "$@91",
++  "replace_client_name_value", "generated_prefix", "$@92",
++  "dhcp6_json_object", "$@93", "dhcpddns_json_object", "$@94",
++  "logging_object", "$@95", "logging_params", "logging_param", "loggers",
++  "$@96", "loggers_entries", "logger_entry", "$@97", "logger_params",
++  "logger_param", "debuglevel", "severity", "$@98", "output_options_list",
++  "$@99", "output_options_list_content", "output_entry", "$@100",
++  "output_params", "output_param", "$@101", YY_NULLPTR
    };
  
  #if PARSER4_DEBUG
    const unsigned short int
    Dhcp4Parser::yyrline_[] =
    {
 -       0,   209,   209,   209,   210,   210,   211,   211,   212,   212,
 -     213,   213,   214,   214,   215,   215,   216,   216,   217,   217,
 -     218,   218,   226,   227,   228,   229,   230,   231,   232,   235,
 -     240,   240,   251,   254,   255,   258,   262,   269,   269,   277,
 -     277,   284,   285,   288,   292,   303,   313,   313,   325,   326,
 -     330,   331,   332,   333,   334,   337,   337,   354,   354,   362,
 -     363,   368,   369,   370,   371,   372,   373,   374,   375,   376,
 -     377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
 -     387,   388,   389,   392,   397,   402,   407,   412,   417,   423,
 -     423,   433,   434,   437,   438,   441,   441,   449,   449,   459,
 -     459,   466,   467,   470,   470,   480,   480,   490,   491,   494,
 -     495,   496,   497,   498,   499,   500,   501,   502,   505,   505,
 -     513,   513,   521,   521,   529,   529,   537,   537,   545,   550,
 -     555,   560,   565,   565,   575,   576,   579,   580,   581,   582,
 -     585,   590,   595,   600,   600,   610,   611,   614,   615,   618,
 -     618,   626,   626,   634,   635,   636,   639,   640,   643,   643,
 -     651,   651,   659,   659,   669,   670,   673,   674,   675,   676,
 -     677,   678,   681,   686,   691,   696,   701,   706,   714,   714,
 -     727,   728,   731,   732,   739,   739,   762,   762,   771,   772,
 -     776,   777,   778,   779,   780,   781,   782,   783,   784,   785,
 -     786,   787,   788,   789,   790,   791,   792,   793,   794,   795,
 -     798,   798,   806,   806,   814,   814,   822,   822,   830,   830,
 -     838,   838,   846,   846,   854,   854,   862,   867,   876,   876,
 -     888,   889,   892,   893,   898,   898,   909,   909,   919,   920,
 -     923,   924,   927,   928,   929,   930,   931,   932,   933,   934,
 -     937,   939,   944,   946,   948,   948,   956,   956,   964,   966,
 -     966,   974,   983,   983,   995,   996,  1001,  1002,  1007,  1007,
 -    1018,  1018,  1029,  1030,  1035,  1036,  1041,  1042,  1043,  1044,
 -    1045,  1046,  1049,  1051,  1051,  1059,  1061,  1063,  1071,  1071,
 -    1083,  1084,  1087,  1088,  1091,  1091,  1099,  1099,  1107,  1108,
 -    1111,  1112,  1113,  1114,  1117,  1117,  1125,  1125,  1135,  1135,
 -    1145,  1146,  1149,  1150,  1153,  1153,  1161,  1161,  1169,  1170,
 -    1173,  1174,  1178,  1179,  1180,  1181,  1182,  1183,  1184,  1185,
 -    1186,  1187,  1188,  1189,  1192,  1192,  1200,  1200,  1208,  1208,
 -    1216,  1216,  1224,  1224,  1232,  1232,  1240,  1240,  1248,  1248,
 -    1257,  1257,  1265,  1265,  1278,  1278,  1288,  1288,  1299,  1299,
 -    1309,  1310,  1313,  1313,  1321,  1322,  1325,  1326,  1329,  1330,
 -    1331,  1332,  1333,  1334,  1335,  1338,  1340,  1340,  1351,  1351,
 -    1361,  1362,  1365,  1366,  1367,  1368,  1369,  1370,  1371,  1374,
 -    1379,  1379,  1387,  1392,  1399,  1406,  1406,  1416,  1417,  1420,
 -    1421,  1424,  1424,  1432,  1432,  1442,  1442,  1454,  1454,  1461,
 -    1461,  1473,  1473,  1486,  1487,  1491,  1495,  1495,  1507,  1508,
 -    1512,  1512,  1520,  1521,  1524,  1525,  1526,  1527,  1528,  1531,
 -    1535,  1535,  1543,  1543,  1553,  1554,  1557,  1557,  1565,  1566,
 -    1569,  1569
 +       0,   211,   211,   211,   212,   212,   213,   213,   214,   214,
 +     215,   215,   216,   216,   217,   217,   218,   218,   219,   219,
 +     220,   220,   221,   221,   229,   230,   231,   232,   233,   234,
 +     235,   238,   243,   243,   255,   256,   259,   263,   270,   270,
 +     277,   278,   281,   285,   292,   292,   299,   300,   303,   307,
 +     318,   328,   328,   340,   341,   345,   346,   347,   348,   349,
 +     352,   352,   369,   369,   377,   378,   383,   384,   385,   386,
 +     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
-      397,   398,   399,   400,   401,   402,   403,   406,   411,   416,
-      421,   426,   431,   437,   437,   447,   448,   451,   452,   455,
-      455,   463,   463,   473,   473,   480,   481,   484,   484,   494,
-      494,   504,   505,   508,   509,   510,   511,   512,   513,   514,
-      515,   516,   517,   520,   520,   527,   528,   529,   530,   533,
-      533,   541,   541,   549,   549,   557,   557,   565,   570,   575,
-      580,   585,   585,   595,   596,   599,   600,   601,   602,   605,
-      610,   615,   620,   625,   625,   635,   636,   639,   640,   643,
-      643,   651,   651,   659,   660,   661,   664,   665,   668,   668,
-      676,   676,   684,   684,   694,   695,   698,   699,   700,   701,
-      702,   703,   706,   711,   716,   721,   726,   731,   739,   739,
-      752,   753,   756,   757,   764,   764,   787,   787,   796,   797,
-      801,   802,   803,   804,   805,   806,   807,   808,   809,   810,
-      811,   812,   813,   814,   815,   816,   817,   818,   819,   820,
-      823,   823,   831,   831,   839,   839,   847,   847,   855,   855,
-      863,   863,   871,   871,   879,   879,   887,   892,   901,   901,
-      913,   914,   917,   918,   923,   923,   934,   934,   944,   945,
-      948,   949,   952,   953,   954,   955,   956,   957,   958,   959,
-      962,   964,   969,   971,   971,   979,   979,   987,   987,   995,
-      997,   997,  1005,  1014,  1014,  1026,  1027,  1032,  1033,  1038,
-     1038,  1049,  1049,  1060,  1061,  1066,  1067,  1072,  1073,  1074,
-     1075,  1076,  1077,  1080,  1082,  1082,  1090,  1092,  1094,  1102,
-     1102,  1114,  1115,  1118,  1119,  1122,  1122,  1130,  1130,  1138,
-     1139,  1142,  1143,  1144,  1147,  1147,  1158,  1158,  1168,  1169,
-     1172,  1173,  1176,  1176,  1184,  1184,  1192,  1193,  1196,  1197,
-     1201,  1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1210,
-     1211,  1212,  1215,  1215,  1223,  1223,  1231,  1231,  1239,  1239,
-     1247,  1247,  1255,  1255,  1263,  1263,  1271,  1271,  1280,  1280,
-     1288,  1288,  1301,  1301,  1311,  1311,  1322,  1322,  1332,  1333,
-     1336,  1336,  1344,  1345,  1348,  1349,  1352,  1353,  1354,  1355,
-     1356,  1357,  1358,  1361,  1363,  1363,  1375,  1382,  1382,  1392,
-     1393,  1396,  1397,  1400,  1400,  1408,  1408,  1418,  1418,  1428,
-     1428,  1436,  1437,  1440,  1441,  1442,  1443,  1444,  1445,  1446,
-     1447,  1448,  1449,  1450,  1451,  1452,  1453,  1454,  1455,  1458,
-     1463,  1463,  1471,  1471,  1479,  1484,  1484,  1492,  1497,  1502,
-     1502,  1510,  1511,  1514,  1514,  1522,  1527,  1532,  1537,  1542,
-     1542,  1550,  1553,  1556,  1559,  1562,  1568,  1568,  1578,  1578,
-     1585,  1585,  1597,  1597,  1610,  1611,  1615,  1619,  1619,  1631,
-     1632,  1636,  1636,  1644,  1645,  1648,  1649,  1650,  1651,  1652,
-     1655,  1659,  1659,  1667,  1667,  1677,  1678,  1681,  1681,  1689,
-     1690,  1693,  1693
++     397,   398,   399,   400,   401,   402,   403,   404,   407,   412,
++     417,   422,   427,   432,   438,   438,   448,   449,   452,   453,
++     456,   456,   464,   464,   474,   474,   481,   482,   485,   485,
++     495,   495,   505,   506,   509,   510,   511,   512,   513,   514,
++     515,   516,   517,   520,   520,   528,   528,   536,   536,   544,
++     544,   552,   552,   560,   565,   570,   575,   580,   580,   590,
++     591,   594,   595,   596,   597,   600,   605,   610,   615,   615,
++     625,   626,   629,   630,   633,   633,   641,   641,   649,   650,
++     651,   654,   655,   658,   658,   666,   666,   674,   674,   684,
++     685,   688,   689,   690,   691,   692,   693,   696,   701,   706,
++     711,   716,   721,   729,   729,   742,   743,   746,   747,   754,
++     754,   777,   777,   786,   787,   791,   792,   793,   794,   795,
++     796,   797,   798,   799,   800,   801,   802,   803,   804,   805,
++     806,   807,   808,   809,   810,   813,   813,   821,   821,   829,
++     829,   837,   837,   845,   845,   853,   853,   861,   861,   869,
++     869,   877,   882,   891,   891,   903,   904,   907,   908,   913,
++     913,   924,   924,   934,   935,   938,   939,   942,   943,   944,
++     945,   946,   947,   948,   949,   952,   954,   959,   961,   963,
++     963,   971,   971,   979,   981,   981,   989,   998,   998,  1010,
++    1011,  1016,  1017,  1022,  1022,  1033,  1033,  1044,  1045,  1050,
++    1051,  1056,  1057,  1058,  1059,  1060,  1061,  1064,  1066,  1066,
++    1074,  1076,  1078,  1086,  1086,  1098,  1099,  1102,  1103,  1106,
++    1106,  1114,  1114,  1122,  1123,  1126,  1127,  1128,  1131,  1131,
++    1142,  1142,  1152,  1153,  1156,  1157,  1160,  1160,  1168,  1168,
++    1176,  1177,  1180,  1181,  1185,  1186,  1187,  1188,  1189,  1190,
++    1191,  1192,  1193,  1194,  1195,  1196,  1199,  1199,  1207,  1207,
++    1215,  1215,  1223,  1223,  1231,  1231,  1239,  1239,  1247,  1247,
++    1255,  1255,  1264,  1264,  1272,  1272,  1285,  1285,  1295,  1295,
++    1306,  1306,  1316,  1317,  1320,  1320,  1328,  1329,  1332,  1333,
++    1336,  1337,  1338,  1339,  1340,  1341,  1342,  1345,  1347,  1347,
++    1358,  1358,  1368,  1369,  1372,  1373,  1374,  1375,  1376,  1377,
++    1378,  1381,  1386,  1386,  1394,  1399,  1406,  1413,  1413,  1423,
++    1424,  1427,  1428,  1431,  1431,  1439,  1439,  1449,  1449,  1459,
++    1459,  1467,  1468,  1471,  1472,  1473,  1474,  1475,  1476,  1477,
++    1478,  1479,  1480,  1481,  1482,  1483,  1484,  1485,  1486,  1489,
++    1494,  1494,  1502,  1502,  1510,  1515,  1515,  1523,  1528,  1533,
++    1533,  1541,  1542,  1545,  1545,  1553,  1558,  1563,  1568,  1573,
++    1573,  1581,  1584,  1587,  1590,  1593,  1599,  1599,  1609,  1609,
++    1616,  1616,  1628,  1628,  1641,  1642,  1646,  1650,  1650,  1662,
++    1663,  1667,  1667,  1675,  1676,  1679,  1680,  1681,  1682,  1683,
++    1686,  1690,  1690,  1698,  1698,  1708,  1709,  1712,  1712,  1720,
++    1721,  1724,  1724
    };
  
    // Print the state stack on the debug stream.
  
  #line 14 "dhcp4_parser.yy" // lalr1.cc:1167
  } } // isc::dhcp
- #line 3957 "dhcp4_parser.cc" // lalr1.cc:1167
- #line 1701 "dhcp4_parser.yy" // lalr1.cc:1168
 -#line 3625 "dhcp4_parser.cc" // lalr1.cc:1167
 -#line 1577 "dhcp4_parser.yy" // lalr1.cc:1168
++#line 3978 "dhcp4_parser.cc" // lalr1.cc:1167
++#line 1732 "dhcp4_parser.yy" // lalr1.cc:1168
  
  
  void
index 2afc33a116f47433bc6e15010e60e82a43cf22b9,2489608a55c8624a0d1965e1ee8a4b46bc0141b5..cc4432a970af0a2641603de9dc960a08ee75fb8c
@@@ -305,10 -305,8 +305,9 @@@ namespace isc { namespace dhcp 
      union union_type
      {
        // value
 -      // map_value
        // socket_type
-       // db_type
 +      // ncr_protocol_value
 +      // replace_client_name_value
        char dummy1[sizeof(ElementPtr)];
  
        // "boolean"
          TOKEN_LEASE_DATABASE = 276,
          TOKEN_HOSTS_DATABASE = 277,
          TOKEN_TYPE = 278,
-         TOKEN_MEMFILE = 279,
-         TOKEN_MYSQL = 280,
-         TOKEN_POSTGRESQL = 281,
-         TOKEN_CQL = 282,
-         TOKEN_USER = 283,
-         TOKEN_PASSWORD = 284,
-         TOKEN_HOST = 285,
-         TOKEN_PERSIST = 286,
-         TOKEN_LFC_INTERVAL = 287,
-         TOKEN_READONLY = 288,
-         TOKEN_CONNECT_TIMEOUT = 289,
-         TOKEN_VALID_LIFETIME = 290,
-         TOKEN_RENEW_TIMER = 291,
-         TOKEN_REBIND_TIMER = 292,
-         TOKEN_DECLINE_PROBATION_PERIOD = 293,
-         TOKEN_SUBNET4 = 294,
-         TOKEN_SUBNET_4O6_INTERFACE = 295,
-         TOKEN_SUBNET_4O6_INTERFACE_ID = 296,
-         TOKEN_SUBNET_4O6_SUBNET = 297,
-         TOKEN_OPTION_DEF = 298,
-         TOKEN_OPTION_DATA = 299,
-         TOKEN_NAME = 300,
-         TOKEN_DATA = 301,
-         TOKEN_CODE = 302,
-         TOKEN_SPACE = 303,
-         TOKEN_CSV_FORMAT = 304,
-         TOKEN_RECORD_TYPES = 305,
-         TOKEN_ENCAPSULATE = 306,
-         TOKEN_ARRAY = 307,
-         TOKEN_POOLS = 308,
-         TOKEN_POOL = 309,
-         TOKEN_SUBNET = 310,
-         TOKEN_INTERFACE = 311,
-         TOKEN_INTERFACE_ID = 312,
-         TOKEN_ID = 313,
-         TOKEN_RAPID_COMMIT = 314,
-         TOKEN_RESERVATION_MODE = 315,
-         TOKEN_HOST_RESERVATION_IDENTIFIERS = 316,
-         TOKEN_CLIENT_CLASSES = 317,
-         TOKEN_TEST = 318,
-         TOKEN_CLIENT_CLASS = 319,
-         TOKEN_RESERVATIONS = 320,
-         TOKEN_DUID = 321,
-         TOKEN_HW_ADDRESS = 322,
-         TOKEN_CIRCUIT_ID = 323,
-         TOKEN_CLIENT_ID = 324,
-         TOKEN_HOSTNAME = 325,
-         TOKEN_RELAY = 326,
-         TOKEN_IP_ADDRESS = 327,
-         TOKEN_HOOKS_LIBRARIES = 328,
-         TOKEN_LIBRARY = 329,
-         TOKEN_PARAMETERS = 330,
-         TOKEN_EXPIRED_LEASES_PROCESSING = 331,
-         TOKEN_RECLAIM_TIMER_WAIT_TIME = 332,
-         TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 333,
-         TOKEN_HOLD_RECLAIMED_TIME = 334,
-         TOKEN_MAX_RECLAIM_LEASES = 335,
-         TOKEN_MAX_RECLAIM_TIME = 336,
-         TOKEN_UNWARNED_RECLAIM_CYCLES = 337,
+         TOKEN_USER = 279,
+         TOKEN_PASSWORD = 280,
+         TOKEN_HOST = 281,
+         TOKEN_PERSIST = 282,
+         TOKEN_LFC_INTERVAL = 283,
+         TOKEN_READONLY = 284,
+         TOKEN_VALID_LIFETIME = 285,
+         TOKEN_RENEW_TIMER = 286,
+         TOKEN_REBIND_TIMER = 287,
+         TOKEN_DECLINE_PROBATION_PERIOD = 288,
+         TOKEN_SUBNET4 = 289,
+         TOKEN_SUBNET_4O6_INTERFACE = 290,
+         TOKEN_SUBNET_4O6_INTERFACE_ID = 291,
+         TOKEN_SUBNET_4O6_SUBNET = 292,
+         TOKEN_OPTION_DEF = 293,
+         TOKEN_OPTION_DATA = 294,
+         TOKEN_NAME = 295,
+         TOKEN_DATA = 296,
+         TOKEN_CODE = 297,
+         TOKEN_SPACE = 298,
+         TOKEN_CSV_FORMAT = 299,
+         TOKEN_RECORD_TYPES = 300,
+         TOKEN_ENCAPSULATE = 301,
+         TOKEN_ARRAY = 302,
+         TOKEN_POOLS = 303,
+         TOKEN_POOL = 304,
 -        TOKEN_USER_CONTEXT = 305,
 -        TOKEN_SUBNET = 306,
 -        TOKEN_INTERFACE = 307,
 -        TOKEN_INTERFACE_ID = 308,
 -        TOKEN_ID = 309,
 -        TOKEN_RAPID_COMMIT = 310,
 -        TOKEN_RESERVATION_MODE = 311,
 -        TOKEN_HOST_RESERVATION_IDENTIFIERS = 312,
 -        TOKEN_CLIENT_CLASSES = 313,
 -        TOKEN_TEST = 314,
 -        TOKEN_CLIENT_CLASS = 315,
 -        TOKEN_RESERVATIONS = 316,
 -        TOKEN_DUID = 317,
 -        TOKEN_HW_ADDRESS = 318,
 -        TOKEN_CIRCUIT_ID = 319,
 -        TOKEN_CLIENT_ID = 320,
 -        TOKEN_HOSTNAME = 321,
 -        TOKEN_RELAY = 322,
 -        TOKEN_IP_ADDRESS = 323,
 -        TOKEN_HOOKS_LIBRARIES = 324,
 -        TOKEN_LIBRARY = 325,
 -        TOKEN_PARAMETERS = 326,
 -        TOKEN_EXPIRED_LEASES_PROCESSING = 327,
 -        TOKEN_RECLAIM_TIMER_WAIT_TIME = 328,
 -        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 329,
 -        TOKEN_HOLD_RECLAIMED_TIME = 330,
 -        TOKEN_MAX_RECLAIM_LEASES = 331,
 -        TOKEN_MAX_RECLAIM_TIME = 332,
 -        TOKEN_UNWARNED_RECLAIM_CYCLES = 333,
 -        TOKEN_SERVER_ID = 334,
 -        TOKEN_IDENTIFIER = 335,
 -        TOKEN_HTYPE = 336,
 -        TOKEN_TIME = 337,
 -        TOKEN_ENTERPRISE_ID = 338,
 -        TOKEN_DHCP4O6_PORT = 339,
 -        TOKEN_CONTROL_SOCKET = 340,
 -        TOKEN_SOCKET_TYPE = 341,
 -        TOKEN_SOCKET_NAME = 342,
 -        TOKEN_DHCP_DDNS = 343,
 -        TOKEN_LOGGING = 344,
 -        TOKEN_LOGGERS = 345,
 -        TOKEN_OUTPUT_OPTIONS = 346,
 -        TOKEN_OUTPUT = 347,
 -        TOKEN_DEBUGLEVEL = 348,
 -        TOKEN_SEVERITY = 349,
 -        TOKEN_DHCP6 = 350,
 -        TOKEN_DHCPDDNS = 351,
 -        TOKEN_TOPLEVEL_JSON = 352,
 -        TOKEN_TOPLEVEL_DHCP4 = 353,
 -        TOKEN_SUB_DHCP4 = 354,
 -        TOKEN_SUB_INTERFACES4 = 355,
 -        TOKEN_SUB_SUBNET4 = 356,
 -        TOKEN_SUB_POOL4 = 357,
 -        TOKEN_SUB_RESERVATION = 358,
 -        TOKEN_SUB_OPTION_DEF = 359,
 -        TOKEN_SUB_OPTION_DATA = 360,
 -        TOKEN_SUB_HOOKS_LIBRARY = 361,
 -        TOKEN_STRING = 362,
 -        TOKEN_INTEGER = 363,
 -        TOKEN_FLOAT = 364,
 -        TOKEN_BOOLEAN = 365
++        TOKEN_SUBNET = 305,
++        TOKEN_INTERFACE = 306,
++        TOKEN_INTERFACE_ID = 307,
++        TOKEN_ID = 308,
++        TOKEN_RAPID_COMMIT = 309,
++        TOKEN_RESERVATION_MODE = 310,
++        TOKEN_HOST_RESERVATION_IDENTIFIERS = 311,
++        TOKEN_CLIENT_CLASSES = 312,
++        TOKEN_TEST = 313,
++        TOKEN_CLIENT_CLASS = 314,
++        TOKEN_RESERVATIONS = 315,
++        TOKEN_DUID = 316,
++        TOKEN_HW_ADDRESS = 317,
++        TOKEN_CIRCUIT_ID = 318,
++        TOKEN_CLIENT_ID = 319,
++        TOKEN_HOSTNAME = 320,
++        TOKEN_RELAY = 321,
++        TOKEN_IP_ADDRESS = 322,
++        TOKEN_HOOKS_LIBRARIES = 323,
++        TOKEN_LIBRARY = 324,
++        TOKEN_PARAMETERS = 325,
++        TOKEN_EXPIRED_LEASES_PROCESSING = 326,
++        TOKEN_RECLAIM_TIMER_WAIT_TIME = 327,
++        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 328,
++        TOKEN_HOLD_RECLAIMED_TIME = 329,
++        TOKEN_MAX_RECLAIM_LEASES = 330,
++        TOKEN_MAX_RECLAIM_TIME = 331,
++        TOKEN_UNWARNED_RECLAIM_CYCLES = 332,
++        TOKEN_SERVER_ID = 333,
++        TOKEN_IDENTIFIER = 334,
++        TOKEN_HTYPE = 335,
++        TOKEN_TIME = 336,
++        TOKEN_ENTERPRISE_ID = 337,
 +        TOKEN_DHCP4O6_PORT = 338,
 +        TOKEN_CONTROL_SOCKET = 339,
 +        TOKEN_SOCKET_TYPE = 340,
 +        TOKEN_SOCKET_NAME = 341,
 +        TOKEN_DHCP_DDNS = 342,
 +        TOKEN_ENABLE_UPDATES = 343,
 +        TOKEN_QUALIFYING_SUFFIX = 344,
 +        TOKEN_SERVER_IP = 345,
 +        TOKEN_SERVER_PORT = 346,
 +        TOKEN_SENDER_IP = 347,
 +        TOKEN_SENDER_PORT = 348,
 +        TOKEN_MAX_QUEUE_SIZE = 349,
 +        TOKEN_NCR_PROTOCOL = 350,
 +        TOKEN_NCR_FORMAT = 351,
 +        TOKEN_ALWAYS_INCLUDE_FQDN = 352,
 +        TOKEN_ALLOW_CLIENT_UPDATE = 353,
 +        TOKEN_OVERRIDE_NO_UPDATE = 354,
 +        TOKEN_OVERRIDE_CLIENT_UPDATE = 355,
 +        TOKEN_REPLACE_CLIENT_NAME = 356,
 +        TOKEN_GENERATED_PREFIX = 357,
 +        TOKEN_TCP = 358,
 +        TOKEN_JSON = 359,
 +        TOKEN_WHEN_PRESENT = 360,
 +        TOKEN_NEVER = 361,
 +        TOKEN_ALWAYS = 362,
 +        TOKEN_WHEN_NOT_PRESENT = 363,
 +        TOKEN_LOGGING = 364,
 +        TOKEN_LOGGERS = 365,
 +        TOKEN_OUTPUT_OPTIONS = 366,
 +        TOKEN_OUTPUT = 367,
 +        TOKEN_DEBUGLEVEL = 368,
 +        TOKEN_SEVERITY = 369,
 +        TOKEN_DHCP6 = 370,
 +        TOKEN_DHCPDDNS = 371,
 +        TOKEN_TOPLEVEL_JSON = 372,
 +        TOKEN_TOPLEVEL_DHCP4 = 373,
 +        TOKEN_SUB_DHCP4 = 374,
 +        TOKEN_SUB_INTERFACES4 = 375,
 +        TOKEN_SUB_SUBNET4 = 376,
 +        TOKEN_SUB_POOL4 = 377,
 +        TOKEN_SUB_RESERVATION = 378,
 +        TOKEN_SUB_OPTION_DEF = 379,
 +        TOKEN_SUB_OPTION_DATA = 380,
 +        TOKEN_SUB_HOOKS_LIBRARY = 381,
 +        TOKEN_SUB_DHCP_DDNS = 382,
 +        TOKEN_STRING = 383,
 +        TOKEN_INTEGER = 384,
 +        TOKEN_FLOAT = 385,
 +        TOKEN_BOOLEAN = 386
        };
      };
  
      enum
      {
        yyeof_ = 0,
-       yylast_ = 713,     ///< Last index in yytable_.
-       yynnts_ = 299,  ///< Number of nonterminal symbols.
 -      yylast_ = 653,     ///< Last index in yytable_.
 -      yynnts_ = 277,  ///< Number of nonterminal symbols.
 -      yyfinal_ = 22, ///< Termination state number.
++      yylast_ = 732,     ///< Last index in yytable_.
++      yynnts_ = 305,  ///< Number of nonterminal symbols.
 +      yyfinal_ = 24, ///< Termination state number.
        yyterror_ = 1,
        yyerrcode_ = 256,
 -      yyntokens_ = 111  ///< Number of tokens.
 +      yyntokens_ = 132  ///< Number of tokens.
      };
  
  
    {
        switch (other.type_get ())
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          value.copy< ElementPtr > (other.value);
          break;
  
      (void) v;
        switch (this->type_get ())
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          value.copy< ElementPtr > (v);
          break;
  
      // Type destructor.
      switch (yytype)
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          value.template destroy< ElementPtr > ();
          break;
  
      super_type::move(s);
        switch (this->type_get ())
      {
 -      case 123: // value
 -      case 127: // map_value
 -      case 163: // socket_type
 +      case 145: // value
 +      case 186: // socket_type
-       case 195: // db_type
-       case 393: // ncr_protocol_value
-       case 402: // replace_client_name_value
++      case 399: // ncr_protocol_value
++      case 408: // replace_client_name_value
          value.move< ElementPtr > (s.value);
          break;
  
  
  #line 14 "dhcp4_parser.yy" // lalr1.cc:377
  } } // isc::dhcp
- #line 2480 "dhcp4_parser.h" // lalr1.cc:377
 -#line 2235 "dhcp4_parser.h" // lalr1.cc:377
++#line 2475 "dhcp4_parser.h" // lalr1.cc:377
  
  
  
index 3d620234234fd9ba714f4d57c26e4f94ad2365f6,27ed20c0ecaa380c03df14e081f64d73368e38f0..a25c101e01e1c3bf342f5832353acbf72416a736
@@@ -194,10 -194,8 +195,11 @@@ using namespace std
  %token <bool> BOOLEAN "boolean"
  
  %type <ElementPtr> value
+ %type <ElementPtr> map_value
  %type <ElementPtr> socket_type
 +%type <ElementPtr> db_type
 +%type <ElementPtr> ncr_protocol_value
 +%type <ElementPtr> replace_client_name_value
  
  %printer { yyoutput << $$; } <*>;
  
Simple merge
index 734db7adcc1536a2b56e0955aa7687a34e803c02,0b38bf7c4b1363e56e7c2e3bef029c85b3ed8220..315b74cebce7cfe3da58714febfdb17f3356469d
@@@ -467,8 -467,8 +467,8 @@@ static void yynoreturn yy_fatal_error (
        (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 146
- #define YY_END_OF_BUFFER 147
 -#define YY_NUM_RULES 118
 -#define YY_END_OF_BUFFER 119
++#define YY_NUM_RULES 141
++#define YY_END_OF_BUFFER 142
  /* This struct is not used in this scanner,
     but its presence is necessary. */
  struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
- static yyconst flex_int16_t yy_accept[1172] =
 -static yyconst flex_int16_t yy_accept[898] =
++static yyconst flex_int16_t yy_accept[1135] =
      {   0,
-       139,  139,    0,    0,    0,    0,    0,    0,    0,    0,
-       147,  145,   10,   11,  145,    1,  139,  136,  139,  139,
-       145,  138,  137,  145,  145,  145,  145,  145,  132,  133,
-       145,  145,  145,  134,  135,    5,    5,    5,  145,  145,
-       145,   10,   11,    0,    0,  128,    0,    0,    0,    0,
 -      111,  111,    0,    0,    0,    0,    0,    0,    0,    0,
 -      119,  117,   10,   11,  117,    1,  111,  108,  111,  111,
 -      117,  110,  109,  117,  117,  117,  117,  117,  104,  105,
 -      117,  117,  117,  106,  107,    5,    5,    5,  117,  117,
 -      117,   10,   11,    0,    0,  100,    0,    0,    0,    0,
++      134,  134,    0,    0,    0,    0,    0,    0,    0,    0,
++      142,  140,   10,   11,  140,    1,  134,  131,  134,  134,
++      140,  133,  132,  140,  140,  140,  140,  140,  127,  128,
++      140,  140,  140,  129,  130,    5,    5,    5,  140,  140,
++      140,   10,   11,    0,    0,  123,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    1,  111,  111,
 -        0,  110,  111,    3,    2,    6,    0,  111,    0,    0,
 -        0,    0,    0,    0,    4,    0,    0,    9,    0,  101,
 -        0,    0,    0,    0,    0,    0,  103,    0,    0,    0,
 -
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    1,  139,  139,    0,
-       138,  139,    3,    2,    6,    0,  139,    0,    0,    0,
-         0,    0,    0,    4,    0,    0,    9,    0,  129,    0,
++        0,    0,    0,    0,    0,    0,    1,  134,  134,    0,
++      133,  134,    3,    2,    6,    0,  134,    0,    0,    0,
++        0,    0,    0,    4,    0,    0,    9,    0,  124,    0,
 +
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,  131,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,  126,    0,    0,    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,   80,   81,    0,    0,    0,  102,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    0,    0,   46,
          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,  108,    0,    0,
-       109,    0,    0,    0,    0,    0,    0,    0,    0,  130,
++        0,    0,    2,    0,    0,    0,    0,    0,    0,    0,
++        8,    0,    0,    0,  103,    0,    0,  104,    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,   74,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,  116,  114,    0,
 -      113,  112,    0,    0,    0,   79,    0,    0,    0,    0,
++        0,    0,    0,   69,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,  139,  137,    0,  136,
++      135,    0,    0,    0,    0,    0,    0,  102,    0,    0,
++       28,    0,   27,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,  144,  142,    0,  141,  140,    0,    0,
-         0,    0,    0,    0,  107,    0,    0,   28,    0,   27,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   46,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,  115,  112,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,   49,    0,    0,
  
 -       33,    0,    0,    0,    0,    0,   65,    0,    0,    0,
 -        0,    0,    0,    0,   21,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    0,    0,   32,
 -        0,    0,    0,    0,    0,    0,   41,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,   61,   84,   18,    0,   19,    0,    0,
 -        0,    0,   98,   12,    0,    0,   72,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,   83,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -
 -        0,    0,   34,    0,    0,    0,    0,    0,    0,    0,
 -       73,    0,    0,    0,    0,    0,    0,   68,    0,    0,
 -        0,    0,    7,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,  143,  140,    0,    0,    0,    0,
-         0,    0,    0,   29,    0,    0,   31,    0,    0,    0,
-         0,    0,    0,   77,    0,    0,    0,   62,    0,    0,
-         0,    0,    0,   93,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,   49,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,   61,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,   70,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,  138,  135,    0,    0,    0,    0,    0,    0,
++        0,   29,    0,    0,   31,    0,    0,    0,    0,    0,
++        0,   72,    0,    0,   57,    0,    0,    0,    0,    0,
++       88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++       45,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   56,    0,    0,    0,
++
++        0,    0,    0,    0,    0,    0,   65,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   84,  107,   42,    0,
++       43,    0,    0,    0,    0,  121,   36,    0,   33,    0,
++       32,    0,    0,    0,    0,   95,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,   89,  112,   42,    0,   47,    0,    0,    0,
-         0,  126,   36,    0,   33,    0,   32,    0,    0,    0,
-         0,  100,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,   56,    0,    0,    0,    0,    0,
 -        0,   36,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,   43,    0,    0,    0,    0,
 -        0,   53,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,  106,    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,   44,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,    0,   58,    0,    0,
++        0,    0,    0,    0,    0,    0,   96,    0,    0,    0,
  
-         0,    0,    0,    0,    0,    0,   63,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,  101,    0,    0,    0,
-         0,    0,    0,    0,    0,   96,    0,    0,    0,    7,
 -        0,    0,    0,    0,    0,    0,   77,   54,    0,    0,
 -        0,    0,    0,    0,    0,   22,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   91,    0,    0,    0,    7,
 +       34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,   29,    0,    0,    0,   99,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,   67,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,   20,   35,    0,    0,
 -       64,    0,   17,    0,    0,    0,    0,    0,    0,    0,
 -       58,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,   97,    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,   65,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   71,
++        0,   79,    0,    0,    0,    0,    0,    0,    0,   60,
++        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   66,    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,    0,    0,   81,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,   44,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,   78,    0,    0,    0,
 -        0,    0,    0,    0,   69,   57,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    0,   66,   82,
 -        0,   14,    0,   74,    0,    0,    0,    0,    0,    0,
 -       30,    0,   76,    0,   37,    0,    0,    0,    0,    0,
++        0,    0,  100,   77,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,   46,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,  105,   82,    0,    0,
-         0,   43,    0,    0,    0,    0,    0,    0,    0,    0,
-        50,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   53,    0,    0,  122,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,   58,    0,    0,  127,    0,    0,    0,    0,
 -        0,    0,   71,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,    0,    0,    0,    0,   50,    0,   31,    0,
 -
 -        0,    0,    0,    0,    0,    0,   26,    0,    0,   96,
 -       95,    0,    0,    0,   60,    0,    0,    0,    0,   93,
 -        0,    0,    0,    0,    0,    0,    0,    0,   45,    0,
 -       63,    0,   23,    0,    0,    0,    0,   47,   27,    0,
 -       70,    0,    0,   62,    0,   42,    0,    0,    0,    0,
 -       40,   85,    0,    0,    0,    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,
 -       59,   94,    0,    0,    0,    0,    0,    0,    0,   16,
 -        0,   15,    0,    0,   55,    0,    0,    0,    0,    0,
 -       25,    0,   38,    0,    0,    0,    0,   75,    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,   48,   64,    0,
-         0,    0,   92,    0,    0,   41,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,   86,    0,
++       44,   59,    0,    0,   87,    0,    0,   41,    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,   72,
 -        0,    0,    0,    0,    0,   91,    0,    0,    0,   48,
 -        0,    0,    0,    0,    0,    0,    0,   13,    0,    0,
 -        0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
 -       24,    0,    0,    0,    0,   39,    0,    0,   89,    0,
++       81,    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,
++       67,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
++      101,   14,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,   92,   80,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
 +
-       106,   14,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,   97,   85,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        94,  110,    0,   38,    0,  102,    0,    0,    0,    0,
-         0,    0,   20,    0,    0,   59,    0,    0,    0,  104,
-        45,    0,   66,    0,    0,    0,    0,    0,    0,    0,
++      105,    0,   38,    0,   97,    0,    0,    0,    0,    0,
++        0,   20,    0,    0,   54,    0,    0,    0,   99,    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,    0,   99,
++        0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,   78,    0,    0,    0,   60,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   55,
-         0,    0,    0,   17,   15,  124,  123,    0,    0,    0,
-        30,    0,    0,   88,    0,    0,    0,    0,    0,  121,
++        0,   73,    0,    0,    0,   55,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   50,    0,    0,    0,
++       17,   15,  119,  118,    0,    0,    0,   30,    0,    0,
++       83,    0,    0,    0,    0,  116,    0,    0,    0,    0,
++
++        0,    0,    0,    0,    0,    0,   68,    0,   86,    0,
++       47,    0,    0,    0,   19,    0,    0,    0,    0,    0,
++       70,   51,    0,   93,    0,    0,    0,   85,    0,    0,
++        0,    0,    0,    0,    0,    0,   64,    0,  108,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        73,    0,   91,    0,   51,    0,    0,    0,   19,    0,
-         0,    0,    0,    0,   75,   56,    0,   98,    0,    0,
-         0,   90,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,   69,    0,  113,    0,    0,    0,    0,    0,    0,
 +        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,   82,  117,    0,   12,
++        0,    0,    0,    0,    0,    0,    0,   40,    0,   39,
++       18,    0,    0,   78,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,   49,    0,    0,    0,    0,   62,    0,
++
++        0,    0,    0,    0,   98,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,   35,    0,
++        0,    0,    0,    0,    0,   26,    0,    0,    0,    0,
++      114,    0,    0,    0,    0,    0,    0,    0,   71,    0,
++        0,    0,    0,    0,    0,    0,    0,    0,   37,    0,
++        0,    0,    0,   13,    0,    0,    0,    0,    0,    0,
++        0,    0,    0,    0,    0,    0,  113,    0,   23,   48,
++        0,    0,    0,    0,   22,   21,    0,   63,    0,    0,
++      112,    0,    0,    0,    0,   25,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
 -        0,    0,   51,    0,    0,    0,    0,    0,   87,   92,
 -       28,    0,    0,    0,   86,    0,    0,    0,    0,    0,
 -        0,    0,   52,    0,    0,   88,    0
  
-         0,   87,    0,  122,    0,   12,    0,    0,    0,    0,
-         0,    0,    0,   40,    0,   39,   18,    0,    0,   83,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,   54,
-         0,    0,    0,   52,    0,   67,    0,    0,    0,    0,
-         0,  103,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,   35,    0,    0,    0,    0,
-         0,    0,   26,    0,    0,    0,    0,  119,    0,    0,
-         0,    0,    0,    0,    0,   76,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,   37,    0,    0,    0,    0,
-        13,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,  118,    0,   23,   53,    0,    0,    0,
-         0,   22,   21,    0,   68,    0,    0,  117,    0,    0,
-         0,    0,   25,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-         0,    0,    0,    0,   24,    0,   79,    0,    0,    0,
-         0,    0,  115,  120,   57,    0,    0,    0,  114,    0,
-         0,    0,    0,    0,    0,    0,   80,    0,    0,  116,
-         0
++        0,    0,    0,    0,    0,    0,    0,   24,    0,   74,
++        0,    0,    0,    0,    0,  110,  115,   52,    0,    0,
++        0,  109,    0,    0,    0,    0,    0,    0,    0,   75,
++        0,    0,  111,    0
      } ;
  
  static yyconst YY_CHAR yy_ec[256] =
          5,    5,    5,    5,    5
      } ;
  
 -static yyconst YY_CHAR yy_meta[61] =
 +static yyconst YY_CHAR yy_meta[72] =
      {   0,
          1,    1,    2,    3,    3,    4,    3,    3,    3,    3,
 -        3,    3,    5,    6,    6,    6,    3,    3,    3,    3,
 -        6,    6,    6,    6,    6,    3,    3,    3,    3,    3,
 -        3,    3,    5,    3,    3,    6,    7,    6,    6,    6,
 -        7,    3,    3,    3,    3,    3,    3,    5,    3,    3,
 -        5,    3,    5,    5,    3,    3,    3,    3,    3,    3
 +        3,    3,    3,    5,    5,    5,    3,    3,    3,    3,
 +        5,    5,    5,    5,    5,    5,    3,    3,    3,    3,
 +        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 +        3,    3,    3,    5,    5,    5,    5,    5,    5,    3,
 +        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 +        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 +        3
      } ;
  
- static yyconst flex_uint16_t yy_base[1184] =
 -static yyconst flex_uint16_t yy_base[910] =
++static yyconst flex_uint16_t yy_base[1147] =
      {   0,
 -        0,    0,   59,   62,   65,    0,   63,   67,   64,   66,
 -     1201, 1202,   83, 1197,  125,    0,  174, 1202,  179,  185,
 -       80,  192, 1202, 1179,   87,   79,   37,   66, 1202, 1202,
 -       83,  156,  164, 1202, 1202, 1202,  110, 1185, 1149,    0,
 -     1177,  118, 1192,  190,  210, 1202, 1151, 1166,  171,  234,
 -     1141,  172,  201,  154, 1145,  173,  229,  229, 1154, 1153,
 -      163,  244,  191,  249,  232,  187, 1152,    0,  286,  292,
 -      303,  309,  313, 1202,    0, 1202,  320,  324,  240,  248,
 -      174,  265,  296,  261, 1202, 1149, 1180, 1202,  314, 1202,
 -     1131, 1146, 1177,  275, 1140, 1175,    0,  340, 1129, 1135,
 -
 -      204, 1123, 1124,  306, 1138, 1131,  192,  259, 1120,  299,
 -     1115, 1161,  290, 1118, 1159, 1133, 1130, 1130, 1124,  293,
 -     1118, 1111, 1110,  306, 1151, 1110, 1111, 1119, 1108,  336,
 -      187, 1119, 1120, 1118, 1102, 1106, 1102, 1095, 1110, 1103,
 -        0,  317,  340,  335,  331,  341,  361, 1102, 1202,    0,
 -     1097, 1202, 1202, 1140, 1103, 1138, 1202,  388, 1107, 1102,
 -     1101, 1087, 1128, 1102, 1083, 1090, 1095, 1084, 1094, 1096,
 -     1091, 1084, 1085, 1076, 1088, 1081, 1072, 1074, 1087, 1202,
 -     1074, 1081, 1084, 1067, 1107, 1066, 1074, 1104, 1103, 1073,
 -     1068, 1061, 1074, 1057, 1058, 1055, 1060, 1064, 1060, 1064,
 -
 -     1058,  322, 1065, 1060, 1059, 1043, 1057, 1051, 1057, 1046,
 -     1040, 1052, 1051, 1054, 1038, 1044,  365, 1202, 1202,  366,
 -     1202, 1202, 1033,    0,  376, 1202, 1042,  416, 1027, 1036,
 -     1077, 1031, 1040, 1074, 1037, 1034, 1035,  382, 1070, 1025,
 -     1023, 1019, 1021, 1028, 1059, 1017,  410, 1028, 1028, 1013,
 -     1014, 1025, 1023, 1018, 1025, 1020, 1007, 1007, 1051, 1007,
 -     1001, 1007,  997, 1003, 1007,  390,  354, 1011, 1000, 1000,
 -     1011,  995,  987,  988,  992, 1002,  990, 1000,  999,  998,
 -     1031, 1030, 1029,  983,  110,  994, 1202, 1202,  993,    0,
 -     1025, 1024,  990,  980,  449, 1021,  973, 1202,  976,  975,
 -
 -     1202,  977,  974,  985,  981,  970, 1202,  966,  967,  977,
 -      975, 1003,  962, 1001, 1202,  960,  974,  998, 1002,  968,
 -      962,  964,  965,  992,  954,  950,  949,  950,  958, 1202,
 -      949,  943,  955,  945,  944,  940, 1202,  985,  939,  932,
 -      977,  939,  947,  941,  945,  389,  972,  927,  930,  936,
 -      926,  972,  924, 1202, 1202, 1202,  928, 1202,  937,  963,
 -      933,    0, 1202, 1202,  924,  929, 1202,  959,  923,  917,
 -      927,  926,  912,  925,  947,  908,  910,  920,  920,  907,
 -      917,  910,  915,  907,  914, 1202,  901,  910,  914,  898,
 -      909,  894,  888,  893,  890,  905,  931,  335,  888,  889,
 -
 -      893,  885, 1202,  886,  408,  898,  889,  923,  886,  921,
 -     1202,  879,  877,  893,  917,  874,  915, 1202,  401,  885,
 -      875,  877, 1202,  870,  915,  882,  908,  871,  862,  905,
 -      875,  866,  902,  866,  867,  871,  898,  868,  869,  862,
 -      853,  864,  867,  862,  857,  862,  859,  862,  857,  890,
 -      889,  843,  847,  853, 1202,  842,  850,  850,  836,  881,
 -      846, 1202,  839,  832,  834,  824,  828,  869,  826,  824,
 -      833,  823,  831,  816,  367, 1202,  867,  833,  823,  826,
 -      863, 1202,  822,  815,  830,  825,  814,  824,  810,  811,
 -      824,  807,  847,  811,  818,  809,  817,  813,  846,  798,
 -
 -      798,  809,  808,  795,  793,  794, 1202, 1202,  806,  807,
 -      382,  792,  790,  834,  833, 1202,  799,  797,  830,  788,
 -      828,  789,  779,  773,  780,  782,  784,  788,  820,  789,
 -      766, 1202,  812,  769,  780, 1202,  784,  770,  765,  771,
 -      765,  804,  808,  764,  759,  771,  760,  769,  762,  771,
 -      755,  754, 1202,  768,  751,  751,  439,  749,  764,  744,
 -      758,  753,  743,  754,  741,  741, 1202, 1202,  781,  743,
 -     1202,  743, 1202,  742,  744,  737,  736,  745,  735,  777,
 -     1202,  735,  731,  729,  739,  738,  725,  738,  769,  768,
 -      724,  726, 1202,  720,  730,  758,  717,  731,  730,  721,
 -
 -      728,  708,  725,  755,  754, 1202,  715,  438,  427,  721,
 -      721,  704,  708,  718,  747,  708,  745,  704,  743,  704,
 -      707,  699,  705,  698,  692,  694, 1202,  701,  700,  699,
 -      681,  684,  684,  690, 1202, 1202,  697,  693,  679,  725,
 -      686,  689,  676,  683,  679,  674,  688,  687, 1202, 1202,
 -      683, 1202,  683, 1202,  668,  683,  672,  711,  705,  709,
 -     1202,  665, 1202,  669, 1202,  659,  660,  670,  657,  664,
 -      687,  423,  679,  660,  626,  604,   79,  429,  172,  277,
 -      360,  417, 1202,  397,  402,  406,  400,  411,  415,  407,
 -      409,  460,  419,  470,  425,  472, 1202,  446, 1202,  431,
 -
 -      439,  475,  476,  432,  478,  453, 1202,  447,  489, 1202,
 -     1202,  450,  491,  451, 1202,  448,  448,  449,  497, 1202,
 -      498,  461,  454,  467,  469,  469,  466,  471, 1202,  464,
 -     1202,  473, 1202,  474,  471,  464,  477, 1202, 1202,  507,
 -     1202,  480,  471, 1202,  485, 1202,  482,  517,  518,  481,
 -     1202, 1202,  469,  516,  489,  518,  478,  482,  526,  492,
 -      528,  499,  489,  531,  485,  483,  529,  502,  498,  537,
 -     1202, 1202,  495,  539,  496,  536,  495,  543,  503, 1202,
 -      508, 1202,  501,  514, 1202,  511,  520,  508,  518,  512,
 -     1202,  512, 1202,  515,  511,  510,  520, 1202,  554,  524,
 -
 -      527,  562,  522,  526,  521,  566,  562,  563,  535,  527,
 -      533,  531,  535,  574,  529, 1202,  542,  530,  531, 1202,
 -      547,  536,  539,  550,  542,  550,  552, 1202,  586,  587,
 -      583,  551,  538,  557,  592,  559,  560,  595,  562, 1202,
 -     1202,  550,  555,  567,  555, 1202,  555,  557, 1202,  561,
 -      566,  563,  566,  569,  562,  604,  563,  570,  566,  579,
 -      571,  577,  566,  579,  584,  619,  574,  588,  580,  593,
 -      589,  625, 1202,  626,  627,  592,  591,  592, 1202, 1202,
 -     1202,  631,  585,  599, 1202,  629,  590,  589,  591,  600,
 -      639,  599, 1202,  607,  642, 1202, 1202,  648,  655,  662,
 -
 -      669,  676,  683,  687,  692,  694,  696,  698,  700
 +        0,   70,   19,   29,   41,   49,   52,   58,   87,   95,
-      1535, 1536,   32, 1531,  141,    0,  201, 1536,  206,   88,
-        11,  213, 1536, 1513,  114,   25,    2,    6, 1536, 1536,
-        73,   11,   17, 1536, 1536, 1536,  104, 1519, 1474,    0,
-      1511,  107, 1526,  217,  241, 1536,  185, 1477, 1497,   93,
-        58,  190,   91,  211,  200,   14,  267,  213,  175,  188,
-        64,  220, 1478,  187,   75,  261,  215,  289,  256,  278,
-      1461,  207,  284,  311,  293, 1480,    0,  337,  352,  360,
-       366,  372, 1536,    0, 1536,  331,  378,  227,  231,  259,
-       329,  341,  325, 1536, 1477, 1516, 1536,  237, 1536,  377,
-       335, 1475, 1514,  366,  253,  321, 1469,  362,  306,  366,
-       366,  293, 1512,    0,  428,  369, 1456, 1464,  356, 1460,
-      1449, 1450,  360, 1466, 1459,  365,  358, 1446, 1452,  361,
-      1440, 1496,  423, 1443, 1494, 1460, 1457, 1457, 1451,  364,
-      1444, 1437, 1442, 1436, 1433, 1432, 1446,  371, 1482, 1431,
-       350, 1443, 1446, 1430,  401,  400, 1442, 1443, 1441, 1423,
-      1428, 1424, 1416, 1433, 1425,    0,  402,  426,  414,  425,
-       437,  442, 1424, 1536,    0,  447, 1419, 1536,  435,  448,
-      1536, 1471, 1426,  445, 1469,  454, 1468,  450, 1467, 1536,
-       494, 1414,  462, 1427, 1422, 1421,  297, 1462, 1456, 1422,
-      1401, 1409, 1415, 1403, 1414, 1415, 1415, 1410, 1402, 1404,
-      1393, 1406, 1406, 1398, 1388, 1391, 1405, 1536, 1391, 1399,
-      1402, 1383, 1433, 1382, 1392, 1430, 1429, 1390, 1378, 1389,
-      1425, 1383, 1375, 1372, 1388, 1369, 1371, 1367, 1373, 1364,
-      1377, 1370, 1372, 1376, 1370,   80, 1377, 1372, 1364, 1370,
-      1370, 1351, 1367, 1360, 1367, 1355, 1348, 1362, 1361, 1364,
-      1346, 1354,  463, 1536, 1536,  464, 1536, 1536, 1341,    0,
-       445,  470,  473, 1398, 1536, 1351,  462, 1536, 1396, 1536,
-      1390,  530, 1334,  457, 1331, 1341, 1391, 1348, 1334, 1536,
-      1345, 1387, 1342, 1339, 1340,  488, 1383, 1333, 1328, 1325,
-      1321, 1323, 1332, 1321, 1370, 1318,  523, 1331, 1331, 1314,
-      1315, 1328, 1326, 1321, 1328, 1323, 1308,  440, 1317, 1313,
-      1361,  455, 1308, 1301, 1303, 1307, 1296, 1303, 1308,   62,
-      1309,  474, 1306, 1310, 1298, 1298, 1310, 1292, 1284, 1285,
-      1306, 1288, 1300, 1299, 1285, 1297, 1296, 1295, 1336, 1335,
-      1334, 1278, 1332, 1290, 1536, 1536, 1289,    0,  496, 1329,
-      1328, 1286, 1326, 1536, 1274, 1324, 1536,  503,  572, 1318,
-       497, 1322, 1264, 1536, 1280, 1267, 1266, 1536, 1268, 1265,
-      1277, 1273, 1261, 1536, 1270, 1255, 1257, 1268, 1266, 1302,
-      1268, 1250, 1299, 1536, 1248, 1264, 1296, 1300, 1258, 1252,
-      1254, 1255, 1290, 1243, 1238, 1237, 1239, 1232, 1247, 1239,
-      1287, 1536, 1234, 1230, 1233, 1226, 1236, 1239, 1228, 1227,
-      1222, 1536, 1277, 1221, 1220, 1213, 1230, 1267, 1220, 1229,
-      1223, 1227,  521, 1262, 1226, 1206, 1209, 1208, 1216, 1204,
-      1260, 1202, 1536, 1536, 1536, 1207, 1536, 1252, 1214,    0,
-      1255, 1536, 1536, 1203, 1536, 1209, 1536,  505,  504, 1212,
-       555, 1536, 1246, 1193, 1200, 1193, 1205, 1204, 1188, 1203,
-      1233, 1237, 1183, 1185, 1197, 1197, 1182, 1179, 1193, 1185,
-      1191, 1182, 1190, 1536, 1175, 1186, 1190, 1172, 1185, 1168,
-      1162, 1167, 1164, 1179, 1180, 1177, 1536, 1163, 1165, 1211,
-       541, 1174, 1157, 1158, 1163, 1154, 1536, 1168, 1154,  558,
-      1146, 1167, 1157, 1200, 1154, 1198, 1536, 1146, 1144, 1158,
-      1161, 1193, 1192, 1139, 1190, 1536,  551, 1152, 1144, 1536,
-      1536, 1136, 1191,  536,  524, 1141, 1143, 1148, 1182, 1181,
-      1135, 1125, 1178, 1140, 1130, 1175, 1121, 1129, 1131, 1135,
-      1170, 1132, 1131, 1132, 1125, 1114, 1127, 1130, 1125, 1120,
-      1125, 1122, 1125, 1120, 1161, 1160, 1104, 1100, 1108, 1156,
-      1105, 1097, 1112, 1536, 1100, 1109, 1108, 1108, 1092, 1147,
-      1090, 1103, 1536, 1095, 1087, 1096, 1089, 1078, 1082, 1133,
-      1080, 1078, 1089, 1129, 1076,  530,  531, 1070,  544, 1536,
-      1131, 1089, 1083, 1128, 1536, 1122,  547, 1080, 1074, 1075,
-      1066, 1066, 1083, 1078, 1066, 1077, 1061, 1063, 1062, 1076,
-      1057, 1107, 1062, 1070, 1068, 1059, 1068, 1064, 1105, 1047,
-      1047, 1060, 1059, 1044, 1042, 1043, 1536, 1536, 1057, 1054,
-      1057, 1536, 1056, 1041,  480, 1039, 1086, 1035, 1089, 1088,
-      1536, 1033, 1045, 1043, 1084, 1032, 1032, 1081, 1034, 1022,
-      1016, 1024, 1026, 1035, 1028, 1020, 1020,  544, 1019, 1070,
-      1031, 1006, 1536, 1062, 1023, 1536,  541,  567, 1023, 1024,
-      1025, 1016, 1009, 1003, 1010, 1003, 1052, 1056, 1003, 1013,
-       996, 1010,  998, 1008, 1000, 1043, 1009,  991,  990, 1536,
-      1006,  987,  987,  599,  985, 1002,  980,  996, 1032,  990,
-       978,  994,  976,  989,  974,  391,   64, 1536, 1536,  191,
-       270,  272, 1536,  299,  426, 1536,  492,  498,  509,  511,
-       554,  549,  550,  605,  551,  607,  608,  561, 1536,  567,
-       565,  564,  578,  594,  599,  571,  575,  569,  576,  587,
-       628,  629,  578,  582, 1536,  577,  595,  592,  630,  581,
-       599,  600,  586,  594,  603,  583,  604,  644,  645, 1536,
-       600,  647,  648,  612,  615,  598,  600,  607,  658,  607,
-       622,  661,  616,  614,  612,  665,  666,  618,  668,  664,
-       624,  629,  622,  631,  625,  620,  630,  626, 1536,  621,
-      1536, 1536,  622,  638,  639,  640,  626,  665,  656,  629,
-       629,  632,  647,  643, 1536, 1536,  653,  651,  637,  638,
-       696,  651,  656,  643,  654,  646,  652,  648,  666,  667,
-      1536, 1536,  665, 1536,  668, 1536,  653,  672,  662,  712,
-       668,  710, 1536,  667,  717, 1536,  666,  673,  715, 1536,
-      1536,  675, 1536,  666,  666,  669,  683,  670,  681,  728,
-       687,  725,  731,  732,  733,  734,  695,  690,  709,  738,
-       734,  699,  741,  690,  701,  706,  694,  746,  705, 1536,
-       707,  706,  708,  701,  710,  711,  708,  698,  700,  757,
-       706,  759,  704,  761, 1536,  699,  714,  764, 1536,  715,
-       725,  710,  726,  712,  772,  773,  719,  775,  734, 1536,
-       726,  728,  779, 1536, 1536, 1536, 1536,  731,  732,  765,
-      1536,  727,  744, 1536,  731,  730,  732,  733,  791, 1536,
-       736,  793,  748,  739,  754,  754,  757,  757,  754,  759,
-      1536,  751, 1536,  761, 1536,  762,  763,  760, 1536,  752,
-       758,  757,  769,  769, 1536, 1536,  808, 1536,  773,  758,
-       764, 1536,  779,  776,  795,  767,  816,  822,  766,  824,
-       779, 1536,  826, 1536,  766,  823,  788,  784,  826,  776,
-       781,  834,  792,  836,  837,  800,  789,  840,  784,  801,
-       786,  801,  785,  842,  843,  808,  804,  851,  823,  812,
-       811, 1536,  855, 1536,  804, 1536,  857,  805,  854,  799,
-       804,  863,  813, 1536,  819, 1536, 1536,  810,  825, 1536,
-       863,  831,  824,  825,  834,  821,  823,  833,  826, 1536,
-       877,  840,  825, 1536,  830, 1536,  833,  828,  827,  885,
-       840, 1536,  882,  844,  847,  890,  833,  835,  843,  833,
-       849,  843,  859,  898,  894, 1536,  843,  860,  897,  861,
-       852,  859, 1536,  856,  861,  908,  853, 1536,  857,  869,
-       870,  913,  857,  858,  866, 1536,  877,  876,  868,  867,
-       870,  882,  873,  882,  884, 1536,  926,  886,  928,  929,
-      1536,  925,  885,  890,  871,  934,  935,  894,  937,  896,
-       897,  940,  899, 1536,  904, 1536, 1536,  886,  892,  945,
-       906, 1536, 1536,  892, 1536,  892,  894, 1536,  899,  894,
-       906,  902, 1536,  905,  909,  900,  952,  901,  917,  910,
-       905,  920,  911,  918,  905,  920,  967,  926,  969,  914,
-       930,  921,  935,  931, 1536,  975, 1536,  976,  977,  934,
-       933,  934, 1536, 1536, 1536,  981,  925,  941, 1536,  979,
-       930,  929,  931,  942,  989,  940, 1536,  949,  992, 1536,
-      1536,  998, 1003, 1008, 1013, 1018, 1023, 1028, 1031, 1005,
-      1010, 1012, 1025
++     1497, 1498,   32, 1493,  141,    0,  201, 1498,  206,   88,
++       11,  213, 1498, 1475,  114,   25,    2,    6, 1498, 1498,
++       73,   11,   17, 1498, 1498, 1498,  104, 1481, 1436,    0,
++     1473,  107, 1488,  217,  241, 1498,  185, 1439, 1459,   93,
++       58,  190,   91,  211,  200,   14,  267,  213,   76,  188,
++       65,  209, 1440,  193,  186,  261, 1443,  238,  256,  278,
++     1422,  193,  279,  300,  287, 1441,    0,  326,  341,  349,
++      355,  361, 1498,    0, 1498,  367,  376,  226,  318,  214,
++      330,  333,  281, 1498, 1438, 1477, 1498,  254, 1498,  366,
++
++      312, 1436, 1475,  355,  356,  240, 1430,  356,  363,  360,
++      366,  369, 1473,    0,  417,  380, 1417, 1425,  355, 1411,
++     1412,  399, 1428, 1421,  353,  354, 1408, 1414,  346, 1402,
++     1458,  399, 1405, 1456, 1422, 1419, 1419, 1413,  268, 1406,
++     1400, 1397, 1396, 1410,  358, 1446, 1395, 1397, 1406, 1409,
++     1393,  412,  394, 1405, 1406, 1404, 1386, 1391, 1387, 1379,
++     1396, 1388,    0,  372,  397,  412,  414,  420,  425, 1387,
++     1498,    0,  447, 1382, 1498,  419,  440, 1498, 1434, 1389,
++      447, 1432,  452, 1431,  448, 1430, 1498,  492, 1377,  458,
++     1390, 1385, 1384, 1368, 1419, 1385, 1364, 1372, 1378, 1366,
++
++     1377, 1378, 1378, 1373, 1365, 1367, 1356, 1369, 1369, 1361,
++     1351, 1354, 1368, 1498, 1354, 1362, 1365, 1346, 1396, 1345,
++     1355, 1393, 1392, 1354, 1390, 1348, 1340, 1337, 1353, 1334,
++     1336, 1332, 1338, 1343, 1336, 1338, 1342, 1336,   66, 1343,
++     1338, 1330, 1336, 1336, 1317, 1333, 1326, 1333, 1321, 1314,
++     1328, 1327, 1330, 1312, 1320,  455, 1498, 1498,  461, 1498,
++     1498, 1307,    0,  443,  468,  462, 1364, 1498, 1317,  460,
++     1498, 1362, 1498, 1356,  528, 1300,  451, 1297, 1307, 1357,
++     1301, 1312, 1354, 1309, 1306, 1307,  474, 1350, 1300, 1295,
++     1292, 1288, 1290, 1299, 1288, 1337, 1285,  521, 1298, 1298,
++
++     1281, 1282, 1295, 1293, 1288, 1295, 1290, 1275,  438, 1330,
++      445, 1277, 1270, 1272, 1276, 1265, 1272, 1277,  495,  472,
++     1276, 1280, 1268, 1268, 1280, 1262, 1254, 1255, 1276, 1258,
++     1270, 1269, 1255, 1267, 1266, 1265, 1306, 1305, 1304, 1248,
++     1302, 1260, 1498, 1498, 1259,    0,  494, 1299, 1298, 1256,
++     1296, 1498, 1244, 1294, 1498,  501,  570, 1288,  500, 1292,
++     1234, 1498, 1238, 1237, 1498, 1239, 1236, 1248, 1244, 1232,
++     1498, 1241, 1226, 1228, 1239, 1237, 1273, 1239, 1221, 1270,
++     1498, 1219, 1235, 1267, 1271, 1229, 1223, 1225, 1226, 1261,
++     1214, 1209, 1208, 1210, 1203, 1218, 1498, 1207, 1203, 1206,
++
++     1199, 1209, 1212, 1201, 1200, 1195, 1498, 1250, 1194, 1187,
++     1204, 1241, 1194, 1203, 1197, 1201,  519, 1236, 1200, 1180,
++     1183, 1182, 1190, 1178, 1234, 1176, 1498, 1498, 1498, 1181,
++     1498, 1226, 1188,    0, 1229, 1498, 1498, 1177, 1498, 1183,
++     1498,  465,  502, 1186,  553, 1498, 1220, 1175, 1168, 1180,
++     1179, 1163, 1178, 1208, 1212, 1158, 1160, 1172, 1172, 1157,
++     1154, 1168, 1160, 1166, 1157, 1165, 1498, 1150, 1161, 1165,
++     1147, 1160, 1143, 1137, 1142, 1139, 1154, 1155, 1139, 1141,
++     1187,  523, 1150, 1133, 1134, 1139, 1130, 1498, 1131,  559,
++     1123, 1144, 1134, 1177, 1131, 1175, 1498, 1123, 1121, 1135,
++
++     1138, 1170, 1169, 1116, 1167, 1498,  506, 1129, 1121, 1498,
++     1498, 1113, 1168,  526,  520, 1118, 1120, 1125, 1159, 1113,
++     1103, 1156, 1118, 1108, 1153, 1099, 1107, 1109, 1113, 1148,
++     1110, 1109, 1110, 1103, 1092, 1105, 1108, 1103, 1098, 1103,
++     1100, 1103, 1098, 1139, 1138, 1082, 1078, 1086, 1084, 1076,
++     1091, 1498, 1079, 1088, 1087, 1087, 1071, 1126, 1083, 1498,
++     1075, 1067, 1076, 1069, 1058, 1062, 1113, 1060, 1058, 1069,
++     1109, 1056,  496,  528, 1050,  525, 1498, 1111, 1069, 1063,
++     1108, 1498, 1102,  535, 1060, 1054, 1055, 1047, 1064, 1059,
++     1047, 1058, 1042, 1044, 1043, 1057, 1038, 1088, 1043, 1051,
++
++     1049, 1040, 1049, 1045, 1086, 1028, 1028, 1041, 1040, 1025,
++     1023, 1024, 1498, 1498, 1038, 1035, 1038, 1037, 1022,  523,
++     1020, 1067, 1016, 1070, 1069, 1498, 1027, 1025, 1066, 1014,
++     1014, 1063, 1016, 1004,  998, 1006, 1008, 1017, 1010, 1002,
++     1002,  543, 1001, 1052, 1013,  988, 1498, 1044, 1005, 1498,
++      547,  556, 1005, 1006, 1007,  992,  986,  993,  986, 1035,
++     1039,  986,  996,  979,  993,  981,  991,  983, 1026,  992,
++      974,  973, 1498,  989,  970,  970,  592,  968,  985,  963,
++      979, 1015,  973,  961,  977,  959,  972,  957,  272,  957,
++     1498, 1498, 1007,  960, 1498,  966,  959, 1498,  958,  961,
++
++      953,  952,  962,  954,  950, 1001,  945,  999,  998,  942,
++     1498,  946,  942,  939,  951,  566,  571,    2,   13,   64,
++       89,  229,  277,  274,  299, 1498,  367,  392,  440,  515,
++      485,  503,  556,  546,  556,  565,  545,  566,  606,  607,
++     1498,  568,  615,  616,  578,  580,  563,  567,  574,  625,
++      574,  589,  628,  583,  581,  579,  632,  584,  634,  630,
++      590,  595,  588,  597,  591,  586,  596,  592, 1498,  587,
++     1498, 1498,  588,  604,  605,  607,  593,  632,  623,  596,
++      596,  599,  608, 1498, 1498,  618,  617,  603,  604,  662,
++      617,  622,  609,  620,  612,  618,  614,  632,  633, 1498,
++
++     1498,  631, 1498,  633, 1498,  619,  638,  628,  678,  633,
++      676, 1498,  633,  683, 1498,  632,  639,  681, 1498,  641,
++     1498,  632,  632,  635,  649,  636,  647,  694,  653,  691,
++      697,  698,  699,  700,  661,  656,  675,  704,  700,  665,
++      707,  666,  671,  659,  711,  670, 1498,  672,  671,  673,
++      666,  675,  676,  673,  663,  665,  722,  671,  724,  669,
++      726, 1498,  664,  679,  729, 1498,  679,  690,  675,  691,
++      677,  737,  738,  684,  740,  699, 1498,  691,  693,  744,
++     1498, 1498, 1498, 1498,  696,  696,  729, 1498,  692,  709,
++     1498,  696,  696,  697,  755, 1498,  700,  757,  712,  703,
++
++      718,  718,  721,  721,  718,  723, 1498,  715, 1498,  725,
++     1498,  726,  727,  724, 1498,  716,  722,  721,  733,  733,
++     1498, 1498,  772, 1498,  737,  722,  728, 1498,  743,  740,
++      759,  731,  780,  786,  787,  742, 1498,  789, 1498,  729,
++      786,  751,  747,  789,  739,  744,  797,  755,  799,  800,
++      763,  752,  803,  747,  764,  749,  764,  748,  804,  806,
++      771,  767,  814,  786,  775,  774, 1498, 1498,  766, 1498,
++      819,  767,  816,  761,  766,  825,  775, 1498,  781, 1498,
++     1498,  772,  787, 1498,  825,  793,  786,  787,  796,  783,
++      785,  795,  788, 1498,  839,  802,  787,  791, 1498,  795,
++
++      790,  789,  847,  802, 1498,  844,  806,  809,  852,  795,
++      797,  805,  795,  811,  805,  821,  860,  856, 1498,  805,
++      822,  859,  823,  814,  821, 1498,  818,  823,  870,  815,
++     1498,  819,  831,  832,  875,  819,  820,  828, 1498,  839,
++      838,  830,  829,  832,  844,  835,  844,  846, 1498,  888,
++      848,  890,  891, 1498,  887,  847,  852,  833,  896,  897,
++      856,  899,  858,  859,  902,  861, 1498,  866, 1498, 1498,
++      848,  854,  907,  868, 1498, 1498,  854, 1498,  854,  856,
++     1498,  861,  856,  868,  864, 1498,  867,  871,  862,  914,
++      863,  879,  872,  867,  882,  873,  880,  867,  882,  929,
++
++      888,  931,  876,  892,  883,  897,  893, 1498,  937, 1498,
++      938,  939,  896,  895,  896, 1498, 1498, 1498,  943,  887,
++      903, 1498,  941,  892,  891,  893,  904,  951,  902, 1498,
++      911,  954, 1498, 1498,  960,  965,  970,  975,  980,  985,
++      990,  993,  967,  972,  974,  987
      } ;
  
- static yyconst flex_int16_t yy_def[1184] =
 -static yyconst flex_int16_t yy_def[910] =
++static yyconst flex_int16_t yy_def[1147] =
      {   0,
-      1172, 1172, 1173, 1173, 1172, 1172, 1172, 1172, 1172, 1172,
-      1171, 1171, 1171, 1171, 1171, 1174, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1175,
-      1171, 1171, 1171, 1176,   15, 1171,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1177,   45,   45,   45,
 -      897,    1,  898,  898,    1,    5,    5,    5,    5,    5,
 -      897,  897,  897,  897,  897,  899,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  900,
 -      897,  897,  897,  901,   15,  897,   45,   45,   45,  902,
++     1135, 1135, 1136, 1136, 1135, 1135, 1135, 1135, 1135, 1135,
++     1134, 1134, 1134, 1134, 1134, 1137, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1138,
++     1134, 1134, 1134, 1139,   15, 1134,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1140,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1174, 1171, 1171, 1171,
-      1171, 1171, 1171, 1178, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1175, 1171, 1176, 1171, 1171,
 -       45,   45,   45,   45,   45,   45,   45,  899,  897,  897,
 -      897,  897,  897,  897,  903,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  900,  897,  901,  897,
 -      904,   45,   45,   45,   45,  905,   45,  902,   45,   45,
++       45,   45,   45,   45,   45,   45, 1137, 1134, 1134, 1134,
++     1134, 1134, 1134, 1141, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1138, 1134, 1139, 1134, 1134,
  
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45, 1179,   45, 1177,   45,   45,   45,   45,   45,
++       45,   45, 1142,   45, 1140,   45,   45,   45,   45,   45,
+        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -      903,  897,  897,  897,  897,  897,  897,  897,  897,  906,
 -       45,  897,  897,   45,   45,  905,  897,  902,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,  897,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45, 1141, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1143,   45,   45, 1134,   45,   45, 1134,   45,   45,
++       45,   45,   45,   45,   45, 1142, 1134, 1140,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1178, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1180,   45,   45, 1171,   45,   45,
-      1171,   45,   45,   45,   45,   45,   45,   45, 1179, 1171,
-      1177,   45,   45,   45,   45,   45,   45,   45,   45,   45,
  
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45, 1171,   45,   45,
 -       45,   45,   45,   45,   45,   45,  897,  897,  897,  897,
 -      897,  897,  897,  907,   45,  897,   45,  902,   45,   45,
++       45,   45,   45, 1134,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1144,   45,   45,   45,   45, 1134,   45,   45,
++     1134,   45, 1134,   45, 1140,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1181,
-        45,   45,   45,   45, 1171,   45,   45, 1171,   45, 1171,
-        45, 1177,   45,   45,   45,   45,   45,   45,   45, 1171,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,  897,  897,  897,  908,
 -       45,   45,   45,   45,  902,   45,   45,  897,   45,   45,
  
 -      897,   45,   45,   45,   45,   45,  897,   45,   45,   45,
 -       45,   45,   45,   45,  897,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,  897,
 -       45,   45,   45,   45,   45,   45,  897,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,  897,  897,  897,   45,  897,   45,   45,
 -      897,  909,  897,  897,   45,   45,  897,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  897,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -
 -       45,   45,  897,   45,   45,   45,   45,   45,   45,   45,
 -      897,   45,   45,   45,   45,   45,   45,  897,   45,   45,
 -       45,   45,  897,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45, 1171, 1171, 1171, 1182,   45,   45,
-        45,   45,   45, 1171,   45,   45, 1171,   45, 1177,   45,
-        45,   45,   45, 1171,   45,   45,   45, 1171,   45,   45,
-        45,   45,   45, 1171,   45,   45,   45,   45,   45,   45,
-        45,   45,   45, 1171,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
-        45, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45, 1134, 1134, 1134, 1145,   45,   45,   45,   45,
++       45, 1134,   45,   45, 1134,   45, 1140,   45,   45,   45,
++       45, 1134,   45,   45, 1134,   45,   45,   45,   45,   45,
++     1134,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++     1134,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
++
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134, 1134, 1134,   45,
++     1134,   45, 1134, 1146,   45, 1134, 1134,   45, 1134,   45,
++     1134,   45,   45,   45,   45, 1134,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45, 1171, 1171, 1171,   45, 1171,   45, 1171, 1183,
-        45, 1171, 1171,   45, 1171,   45, 1171,   45,   45,   45,
-        45, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,  897,   45,   45,   45,   45,   45,
 -       45,  897,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  897,   45,   45,   45,   45,
 -       45,  897,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45, 1171,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1171,   45,   45,   45,
++       45,   45,   45,   45,   45,   45,   45, 1134,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
  
-        45,   45,   45,   45,   45,   45, 1171,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1171,   45,   45,   45,
-        45,   45,   45,   45,   45, 1171,   45,   45,   45, 1171,
-      1171,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,  897,  897,   45,   45,
 -       45,   45,   45,   45,   45,  897,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1134,   45,   45,   45, 1134,
++     1134,   45,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,  897,   45,   45,   45,  897,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45, 1171,   45,   45,   45,   45,   45,   45,
-        45,   45, 1171,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1171,
-        45,   45,   45,   45, 1171,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,  897,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,  897,  897,   45,   45,
 -      897,   45,  897,   45,   45,   45,   45,   45,   45,   45,
 -      897,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,  897,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45, 1171, 1171,   45,   45,
-        45, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
-      1171,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45, 1134,   45,   45,   45,   45,   45,   45,   45, 1134,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45, 1171,   45,   45, 1171,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
++       45, 1134,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1171,
  
 -       45,   45,   45,   45,   45,  897,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45, 1171, 1171,   45,
-        45,   45, 1171,   45,   45, 1171,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1171,   45,
 -       45,   45,   45,   45,   45,   45,  897,   45,   45,   45,
 -       45,   45,   45,   45,  897,  897,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,  897,  897,
 -       45,  897,   45,  897,   45,   45,   45,   45,   45,   45,
 -      897,   45,  897,   45,  897,   45,   45,   45,   45,   45,
++       45,   45, 1134, 1134,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1134,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45, 1171,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1171,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45, 1134,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,  897,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,  897,   45,  897,   45,
 -
 -       45,   45,   45,   45,   45,   45,  897,   45,   45,  897,
 -      897,   45,   45,   45,  897,   45,   45,   45,   45,  897,
 -       45,   45,   45,   45,   45,   45,   45,   45,  897,   45,
 -      897,   45,  897,   45,   45,   45,   45,  897,  897,   45,
 -      897,   45,   45,  897,   45,  897,   45,   45,   45,   45,
 -      897,  897,   45,   45,   45,   45,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45, 1171,   45,
 -      897,  897,   45,   45,   45,   45,   45,   45,   45,  897,
 -       45,  897,   45,   45,  897,   45,   45,   45,   45,   45,
 -      897,   45,  897,   45,   45,   45,   45,  897,   45,   45,
++       45,   45, 1134,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++     1134, 1134,   45,   45, 1134,   45,   45, 1134,   45,   45,
  
-      1171, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45, 1171, 1171,   45,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      1171, 1171,   45, 1171,   45, 1171,   45,   45,   45,   45,
-        45,   45, 1171,   45,   45, 1171,   45,   45,   45, 1171,
-      1171,   45, 1171,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  897,   45,   45,   45,  897,
 -       45,   45,   45,   45,   45,   45,   45,  897,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   45,   45,  897,
 -      897,   45,   45,   45,   45,  897,   45,   45,  897,   45,
++     1134,   45,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45, 1134,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1171,
++     1134,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45, 1171,   45,   45,   45, 1171,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1171,
-        45,   45,   45, 1171, 1171, 1171, 1171,   45,   45,   45,
-      1171,   45,   45, 1171,   45,   45,   45,   45,   45, 1171,
++       45,   45,   45,   45,   45,   45,   45,   45, 1134,   45,
++     1134, 1134,   45,   45,   45,   45,   45,   45,   45,   45,
++       45,   45,   45, 1134, 1134,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45,   45,   45,   45, 1134,
++
++     1134,   45, 1134,   45, 1134,   45,   45,   45,   45,   45,
++       45, 1134,   45,   45, 1134,   45,   45,   45, 1134,   45,
++     1134,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-      1171,   45, 1171,   45, 1171,   45,   45,   45, 1171,   45,
-        45,   45,   45,   45, 1171, 1171,   45, 1171,   45,   45,
-        45, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
-        45, 1171,   45, 1171,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
         45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45, 1171,   45, 1171,   45, 1171,   45,   45,   45,   45,
-        45,   45,   45, 1171,   45, 1171, 1171,   45,   45, 1171,
-        45,   45,   45,   45,   45,   45,   45,   45,   45, 1171,
-        45,   45,   45, 1171,   45, 1171,   45,   45,   45,   45,
-        45, 1171,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1171,   45,   45,   45,   45,
-        45,   45, 1171,   45,   45,   45,   45, 1171,   45,   45,
-        45,   45,   45,   45,   45, 1171,   45,   45,   45,   45,
-        45,   45,   45,   45,   45, 1171,   45,   45,   45,   45,
-      1171,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45, 1171,   45, 1171, 1171,   45,   45,   45,
-        45, 1171, 1171,   45, 1171,   45,   45, 1171,   45,   45,
-        45,   45, 1171,   45,   45,   45,   45,   45,   45,   45,
++       45, 1134,   45,   45,   45, 1134,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45,   45,   45,
++     1134, 1134, 1134, 1134,   45,   45,   45, 1134,   45,   45,
++     1134,   45,   45,   45,   45, 1134,   45,   45,   45,   45,
++
++       45,   45,   45,   45,   45,   45, 1134,   45, 1134,   45,
++     1134,   45,   45,   45, 1134,   45,   45,   45,   45,   45,
++     1134, 1134,   45, 1134,   45,   45,   45, 1134,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45, 1134,   45,
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
-        45,   45,   45,   45, 1171,   45, 1171,   45,   45,   45,
-        45,   45, 1171, 1171, 1171,   45,   45,   45, 1171,   45,
-        45,   45,   45,   45,   45,   45, 1171,   45,   45, 1171,
-         0, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171
 +       45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,  897,   45,   45,   45,   45,   45,  897,  897,
 -      897,   45,   45,   45,  897,   45,   45,   45,   45,   45,
 -       45,   45,  897,   45,   45,  897,    0,  897,  897,  897,
++       45,   45,   45,   45,   45,   45, 1134, 1134,   45, 1134,
++       45,   45,   45,   45,   45,   45,   45, 1134,   45, 1134,
++     1134,   45,   45, 1134,   45,   45,   45,   45,   45,   45,
++       45,   45,   45, 1134,   45,   45,   45,   45, 1134,   45,
++
++       45,   45,   45,   45, 1134,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45,   45,   45, 1134,   45,
++       45,   45,   45,   45,   45, 1134,   45,   45,   45,   45,
++     1134,   45,   45,   45,   45,   45,   45,   45, 1134,   45,
++       45,   45,   45,   45,   45,   45,   45,   45, 1134,   45,
++       45,   45,   45, 1134,   45,   45,   45,   45,   45,   45,
++       45,   45,   45,   45,   45,   45, 1134,   45, 1134, 1134,
++       45,   45,   45,   45, 1134, 1134,   45, 1134,   45,   45,
++     1134,   45,   45,   45,   45, 1134,   45,   45,   45,   45,
+        45,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897
++       45,   45,   45,   45,   45,   45,   45, 1134,   45, 1134,
++       45,   45,   45,   45,   45, 1134, 1134, 1134,   45,   45,
++       45, 1134,   45,   45,   45,   45,   45,   45,   45, 1134,
++       45,   45, 1134,    0, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134
      } ;
  
- static yyconst flex_uint16_t yy_nxt[1608] =
 -static yyconst flex_uint16_t yy_nxt[1263] =
++static yyconst flex_uint16_t yy_nxt[1570] =
      {   0,
-      1171,   13,   14,   13, 1171,   15,   16, 1171,   17,   18,
-        19,   20,   21,   22,   22,   22,   23,   24,   83, 1171,
-        37,   14,   37,   84,   25,   26,   38, 1171, 1171,   27,
 -       12,   13,   14,   13,   12,   15,   16,   12,   17,   18,
 -       19,   20,   21,   22,   22,   22,   23,   24,   12,   12,
 -       12,   12,   12,   25,   26,   12,   27,   12,   12,   28,
 -       12,   29,   12,   30,   12,   12,   12,   12,   12,   25,
 -       31,   12,   12,   12,   12,   12,   12,   32,   12,   12,
 -       12,   12,   33,   12,   12,   12,   12,   12,   34,   35,
 -       37,   14,   37,   37,   14,   37,   38,   80,   40,   38,
 -       12,   12,   40,   12,   12,   12,   12,   12,   12,   12,
 -       12,   12,   12,   41,   42,   41,   42,   74,   12,   12,
 -       80,   12,   75,   81,   12,   77,   12,   77,   12,   79,
 -
 -       78,   78,   78,   79,   12,   12,   12,   12,   39,   12,
 -       12,   42,   12,   42,   79,  358,   81,   12,   82,   42,
 -      359,   42,  714,   12,   12,   44,   44,   44,   45,   45,
 -       46,   45,   45,   45,   45,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   45,   45,   47,   48,   45,
 -       49,   45,   45,   45,   45,   45,   45,   50,   45,   45,
 -       51,   45,   52,   53,   54,   55,   45,   56,   57,   45,
 -       58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
 -       45,   45,   45,   45,   45,   69,   80,   70,   70,   70,
 -       69,   81,   72,   72,   72,   90,   94,   71,   73,   73,
 -
 -       73,  107,   71,   69,  144,   72,   72,   72,   71,   83,
 -      108,  717,  122,   71,   84,   71,  123,  100,   71,   95,
 -      101,  110,   91,  102,   71,  111,  129,  144,  112,  170,
 -      130,   71,   45,   45,  138,   45,  103,  206,  139,   97,
 -      104,  207,  161,  105,  171,   45,   45,   45,   45,   45,
 -       45,  162,   45,   45,  106,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,  142,   45,  113,  116,  117,
 -       45,  135,  118,  143,   45,  136,  114,  119,  115,  124,
 -      153,   45,  125,  126,   45,  142,   45,   98,  131,  137,
 -      142,  144,  127,  143,  128,  180,  172,  132,  133,   73,
 -
 -       73,   73,  134,   69,  154,   70,   70,   70,  173,   71,
 -      145,   77,  718,   77,  147,   71,   78,   78,   78,   90,
 -       69,  143,   72,   72,   72,   71,   73,   73,   73,  181,
 -      188,   71,   71,   78,   78,   78,   71,   78,   78,   78,
 -      455,  146,  165,  166,  175,  217,   91,  176,   71,  189,
 -      177,  167,   71,  158,  158,  158,  193,  194,  219,  217,
 -      158,  158,  158,  158,  158,  218,  218,  271,  217,  456,
 -      272,  200,  201,  202,  219,  158,  158,  158,  158,  158,
 -      158,  203,  220,  204,  219,  218,  221,  205,  287,  287,
 -      291,  292,  305,  339,  411,  337,  306,  340,  293,  412,
 -
 -      222,  228,  228,  228,  287,  288,  476,  719,  228,  228,
 -      228,  228,  228,  462,  530,  315,  477,  563,  463,  531,
 -      316,  564,  720,  228,  228,  228,  228,  228,  228,  295,
 -      295,  295,  654,  708,  715,  721,  295,  295,  295,  295,
 -      295,  338,  722,  652,  606,  723,  724,  464,  653,  607,
 -      725,  295,  295,  295,  295,  295,  295,  317,  726,  727,
 -      728,  318,   45,   45,   45,  729,  655,  730,  716,   45,
 -       45,   45,   45,   45,  709,  731,  732,  733,  736,  737,
 -      738,  739,  740,  741,   45,   45,   45,   45,   45,   45,
 -      608,  734,  742,  743,  744,  745,  746,  747,  735,  748,
 -
 -      749,  750,  751,  752,  753,  754,  755,  756,  757,  758,
 -      759,  760,  761,  762,  763,  764,  765,  766,  767,  768,
 -      769,  770,  771,  772,  773,  774,  775,  776,  777,  778,
 -      779,  780,  781,  782,  783,  784,  785,  786,  787,  788,
 -      789,  790,  791,  792,  793,  795,  796,  797,  798,  794,
 -      799,  800,  801,  802,  803,  804,  805,  806,  807,  808,
 -      809,  810,  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,  838,
 -      839,  840,  841,  842,  843,  844,  845,  846,  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,  875,  876,  877,  878,
 -      879,  880,  881,  882,  883,  884,  885,  886,  887,  888,
 -      889,  890,  891,  892,  893,  894,  895,  896,   36,   36,
 -       36,   36,   36,   36,   36,   68,  713,   68,   68,   68,
 -       68,   68,   87,  712,   87,  711,   87,   87,   87,   89,
 -       89,   89,   89,   89,   89,   89,   96,   96,   96,   96,
 -       96,   96,   96,  141,  710,  141,  141,  141,  141,  141,
 -       89,   89,  707,   89,  156,  156,  156,  156,  156,  224,
 -
 -      224,  290,  290,  362,  362,   89,   89,  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,  668,  667,  666,  665,  664,
 -      663,  662,  661,  660,  659,  658,  657,  656,  651,  650,
 -      649,  648,  647,  646,  645,  644,  643,  642,  641,  640,
 -      639,  638,  637,  636,  635,  634,  633,  632,  631,  630,
 -      629,  628,  627,  626,  625,  624,  623,  622,  621,  620,
 -      619,  618,  617,  616,  615,  614,  613,  612,  611,  610,
 -
 -      609,  605,  604,  603,  602,  601,  600,  599,  598,  597,
 -      596,  595,  594,  593,  592,  591,  590,  589,  588,  587,
 -      586,  585,  584,  583,  582,  581,  580,  579,  578,  577,
 -      576,  575,  574,  573,  572,  571,  570,  569,  568,  567,
 -      566,  565,  562,  561,  560,  559,  558,  557,  556,  555,
 -      554,  553,  552,  551,  550,  549,  548,  547,  546,  545,
 -      544,  543,  542,  541,  540,  539,  538,  537,  536,  535,
 -      534,  533,  532,  529,  528,  527,  526,  525,  524,  523,
 -      522,  521,  520,  519,  518,  517,  516,  515,  514,  513,
 -      512,  511,  510,  509,  508,  507,  506,  505,  504,  503,
 -
 -      502,  501,  500,  499,  498,  497,  496,  495,  494,  493,
 -      492,  491,  490,  489,  488,  487,  486,  485,  484,  483,
 -      482,  481,  480,  479,  478,  475,  474,  473,  472,  471,
 -      470,  469,  468,  467,  466,  465,  461,  460,  459,  458,
 -      457,  454,  453,  452,  451,  450,  449,  448,  447,  446,
 -      445,  444,  443,  442,  441,  440,  439,  438,  437,  436,
 -      435,  434,  433,  432,  431,  430,  429,  428,  427,  426,
 -      425,  424,  423,  422,  421,  420,  419,  418,  417,  416,
 -      415,  414,  413,  410,  409,  408,  407,  406,  405,  404,
 -      403,  402,  401,  400,  399,  398,  397,  396,  395,  394,
 -
 -      393,  392,  391,  390,  389,  388,  387,  386,  385,  384,
 -      383,  382,  381,  380,  379,  378,  377,  376,  375,  374,
 -      373,  372,  371,  370,  369,  368,  367,  366,  365,  364,
 -      363,  361,  360,  357,  356,  355,  354,  353,  352,  351,
 -      350,  349,  348,  347,  346,  345,  344,  343,  342,  341,
 -      336,  335,  334,  333,  332,  331,  330,  329,  328,  327,
 -      326,  325,  324,  323,  322,  321,  320,  319,  314,  313,
 -      312,  311,  310,  309,  308,  307,  304,  303,  302,  301,
 -      300,  299,  298,  297,  296,  294,  289,  286,  285,  284,
 -      283,  282,  281,  280,  279,  278,  277,  276,  275,  274,
 -
 -      273,  270,  269,  268,  267,  266,  265,  264,  263,  262,
 -      261,  260,  259,  258,  257,  256,  255,  254,  253,  252,
 -      251,  250,  249,  248,  247,  246,  245,  244,  243,  242,
 -      241,  240,  239,  238,  237,  236,  235,  234,  233,  232,
 -      231,  230,  229,  157,  227,  226,  225,  223,  216,  215,
 -      214,  213,  212,  211,  210,  209,  208,  199,  198,  197,
 -      196,  195,  192,  191,  190,  187,  186,  185,  184,  183,
 -      182,  179,  178,  174,  169,  168,  164,  163,  160,  159,
 -      157,  155,  152,  151,  150,  149,  148,  140,  121,  120,
 -      109,   99,   93,   92,   43,   88,   86,   85,   76,   43,
 -
 -      897,   11,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897
++     1134,   13,   14,   13, 1134,   15,   16, 1134,   17,   18,
++       19,   20,   21,   22,   22,   22,   23,   24,   83, 1134,
++       37,   14,   37,   84,   25,   26,   38, 1134, 1134,   27,
 +       37,   14,   37,   42,   28,   42,   38,   89,   90,   29,
 +      112,   30,   13,   14,   13,   88,   89,   25,   31,   90,
-        13,   14,   13,   13,   14,   13,   32,   40, 1171,   13,
-        14,   13,   33,   40,  112,   89,   90,  422,   88,   34,
++       13,   14,   13,   13,   14,   13,   32,   40,  780,   13,
++       14,   13,   33,   40,  112,   89,   90,  781,   88,   34,
 +       35,   13,   14,   13,   92,   15,   16,   93,   17,   18,
 +       19,   20,   21,   22,   22,   22,   23,   24,   13,   14,
 +       13,  105,   39,   88,   25,   26,   13,   14,   13,   27,
 +
 +       39,   82,   82,   82,   28,   42,   41,   42,   42,   29,
 +       42,   30,   80,  104,   41,  108,   91,   25,   31,  105,
-       126,  133,   86,  423,   86,  786,   32,   87,   87,   87,
-       127,  134,   33,  135,  337,   80,  104,  338,  108,   34,
++      325,  125,   86,  326,   86,  782,   32,   87,   87,   87,
++      118,  126,   33,  119,  783,   80,  104,  120,  108,   34,
 +       35,   44,   44,   44,   45,   45,   46,   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,   45,   54,   55,   45,   56,   45,
 +       45,   57,   45,   45,   58,   45,   59,   60,   61,   62,
 +       63,   64,   65,   51,   45,   66,   67,   68,   69,   70,
 +
 +       71,   72,   73,   74,   75,   76,   56,   45,   45,   45,
 +       45,   45,   78,  101,   79,   79,   79,   78,  106,   81,
-        81,   81,   99,  111,   78,   80,   81,   81,   81,  118,
-        80,  122,  119,  109,  120,  123,  121,   80,  124,  101,
-       104,  101,   99,  110,  130,  787,  111,  107,   80,  131,
-       154,  125,  132,   80,  155,  167,  109,  100,  140,  168,
-        80,   45,  141,  104,   45,   45,   45,  116,   45,   45,
-        45,  110,  114,  117,  128,   45,   45,  100,   45,   45,
-       788,  167,  142,  180,   45,  168,   45,   45,   45,   45,
-        45,   45,   45,   45,  169,   45,   45,   45,   45,   45,
-        45,   45,   45,   45,   45,   45,   45,   45,  136,  137,
-       180,   45,  138,  108,  145,   45,  111,  188,  139,  146,
-       147,  148,  169,   45,  149,  150,  181,   45,  789,   45,
-       115,  156,  143,  109,  144,  151,  108,  185,  152,  111,
-       188,  157,  158,  110,   87,   87,   87,  159,  790,  163,
-        82,   82,   82,  288,  164,  182,  109,  167,  160,  289,
-       169,   80,  161,   78,  185,   79,   79,   79,   86,  168,
-        86,  110,  176,   87,   87,   87,   80,   78,  162,   81,
-        81,   81,   98,  170,   80,   82,   82,   82,  172,   98,
-        80,   87,   87,   87,  179,  171,   80,  187,  184,   80,
-       176,  186,  196,  209,  201,  202,  176,  239,  206,  226,
-       207,  240,  197,   80,  203,  213,  210,   98,  214,   80,
-       179,   98,  215,  192,  187,   98,  184,  208,  218,  186,
-       227,  235,  236,   98,  193,  263,  784,   98,  265,   98,
-       175,  191,  191,  191,  244,  245,  246,  785,  191,  191,
-       191,  191,  191,  191,  264,  247,  251,  248,  263,  249,
-       252,  265,  250,  263,  253,  264,  265,  271,  273,  277,
-       219,  191,  191,  191,  191,  191,  191,  274,  279,  281,
-       264,  791,  271,  359,  360,  361,  266,  355,  355,  268,
-       271,  267,  277,  362,  366,  359,  273,  363,  382,  408,
-       409,  279,  383,  413,  274,  284,  281,  282,  282,  282,
-       355,  356,  359,  414,  282,  282,  282,  282,  282,  282,
-       363,  425,  366,  713,  371,  426,  517,  714,  394,  451,
-       451,  518,  458,  395,  459,  534,  535,  282,  282,  282,
-       282,  282,  282,  369,  369,  369,  574,  792,  607,  793,
-       369,  369,  369,  369,  369,  369,  600,  451,  461,  458,
-       531,  459,  534,  583,  535,  537,  601,  794,  584,  795,
-       606,  607,  744,  369,  369,  369,  369,  369,  369,  396,
-       678,  666,  668,  575,  397,   45,   45,   45,  667,  669,
-       736,  745,   45,   45,   45,   45,   45,   45,  606,  744,
-       671,  796,  737,  797,  770,  585,  672,  798,  678,  771,
-       799,  800,  801,  802,  745,   45,   45,   45,   45,   45,
-        45,  803,  804,  805,  806,  807,  808,  810,  809,  811,
++       81,   81,   99,  111,   78,   80,   81,   81,   81,  104,
++       80,  121,  132,  109,  784,  122,  151,   80,  123,  101,
++      152,  101,  133,  110,  134,  178,  111,  107,   80,  166,
++      129,  124,  104,   80,  164,  130,  109,  100,  131,   99,
++       80,   45,  108,  127,   45,   45,   45,  116,   45,   45,
++       45,  110,  114,  117,  179,   45,   45,  166,   45,   45,
++      164,  140,  785,  141,   45,  108,   45,   45,   45,   45,
++       45,   45,   45,   45,  100,   45,   45,   45,   45,   45,
++
++       45,   45,   45,   45,   45,   45,   45,   45,  135,  136,
++      111,   45,  137,  222,  142,   45,  166,  755,  138,  143,
++      144,  145,  109,   45,  146,  147,  153,   45,  756,   45,
++      115,  786,  110,  111,  223,  148,  154,  155,  149,   82,
++       82,   82,  156,  160,  169,  109,  165,  157,  161,  173,
++       80,  158,   78,  787,   79,   79,   79,   86,  164,   86,
++      110,  165,   87,   87,   87,   80,   78,  159,   81,   81,
++       81,   98,  165,   80,   82,   82,   82,  173,   98,   80,
++       87,   87,   87,  176,  167,   80,  177,  168,   80,   87,
++       87,   87,  181,  185,  182,  183,  202,  184,  203,  205,
++
++      209,  193,   80,  210,  214,  256,   98,  211,   80,  176,
++       98,  194,  206,  177,   98,  204,  185,  173,  229,  230,
++      181,  182,   98,  183,  184,  257,   98,  788,   98,  172,
++      188,  188,  188,  256,  189,  789,  258,  188,  188,  188,
++      188,  188,  188,  197,  198,  190,  215,  256,  257,  258,
++      244,  257,  266,  199,  245,  237,  238,  239,  246,  258,
++      188,  188,  188,  188,  188,  188,  240,  264,  241,  267,
++      242,  270,  261,  243,  260,  259,  272,  274,  264,  343,
++      266,  347,  348,  349,  369,  343,  351,  790,  370,  347,
++      264,  350,  354,  398,  270,  514,  267,  395,  396,  272,
++
++      407,  277,  343,  399,  274,  275,  275,  275,  344,  351,
++      347,  577,  275,  275,  275,  275,  275,  275,  359,  409,
++      354,  578,  514,  410,  497,  791,  381,  435,  552,  498,
++      442,  382,  443,  435,  515,  275,  275,  275,  275,  275,
++      275,  357,  357,  357,  584,  792,  793,  640,  357,  357,
++      357,  357,  357,  357,  641,  435,  408,  442,  511,  443,
++      583,  445,  515,  517,  560,  553,  686,  584,  652,  561,
++      687,  357,  357,  357,  357,  357,  357,  383,  716,  642,
++      717,  645,  384,   45,   45,   45,  643,  646,  583,  708,
++       45,   45,   45,   45,   45,   45,  652,  741,  778,  794,
++
++      779,  709,  742,  717,  795,  716,  562,  796,  797,  798,
++      799,  800,  801,   45,   45,   45,   45,   45,   45,  802,
++      803,  805,  807,  808,  809,  804,  778,  779,  810,  811,
 +      812,  813,  814,  815,  816,  817,  818,  819,  820,  821,
 +      822,  823,  824,  825,  826,  827,  828,  829,  830,  831,
-       832,  833,  834,  836,  808,  809,  838,  835,  839,  840,
-       772,  841,  842,  843,  844,  845,  846,  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,  837,  875,  876,  877,  878,
-       879,  880,  881,  882,  883,  884,  885,  886,  887,  888,
-       889,  890,  869,  891,  892,  893,  894,  895,  870,  896,
-       897,  898,  899,  900,  901,  902,  903,  904,  905,  906,
-       907,  908,  909,  910,  911,  912,  914,  915,  916,  917,
-       918,  919,  920,  921,  922,  923,  924,  926,  927,  928,
-       929,  930,  931,  932,  933,  934,  935,  936,  937,  938,
-       939,  940,  941,  942,  943,  944,  945,  946,  947,  949,
-       920,  950,  951,  952,  953,  954,  948,  955,  956,  957,
-       958,  959,  960,  961,  962,  963,  913,  964,  925,  965,
++      832,  833,  834,  743,  835,  836,  837,  838,  839,  840,
++      841,  842,  843,  806,  844,  845,  846,  847,  848,  849,
++      850,  851,  852,  853,  854,  855,  856,  857,  858,  837,
++      859,  860,  861,  862,  863,  838,  864,  865,  866,  867,
++      868,  869,  870,  871,  872,  873,  874,  875,  876,  877,
++
++      878,  879,  881,  882,  883,  884,  885,  886,  887,  888,
++      889,  890,  891,  893,  894,  895,  896,  897,  898,  899,
++      900,  901,  902,  903,  904,  905,  906,  907,  908,  909,
++      910,  911,  912,  913,  915,  916,  887,  917,  918,  919,
++      920,  914,  921,  922,  923,  924,  925,  926,  927,  928,
++      929,  930,  880,  931,  892,  932,  933,  934,  935,  936,
++      937,  938,  939,  940,  941,  942,  943,  944,  945,  946,
++      947,  948,  949,  950,  951,  952,  931,  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,  983,  984,  985,
-       986,  987,  965,  988,  989,  990,  991,  992,  993,  994,
-       995,  996,  997,  998,  999, 1000, 1001, 1002, 1003, 1004,
++      986,  987,  988,  989,  990,  964,  991,  992,  993,  994,
++      995,  996,  997,  998,  999, 1001, 1002, 1003, 1004, 1000,
 +     1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
-      1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
-      1025,  999, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
-      1034, 1035, 1036, 1038, 1039, 1040, 1041, 1037, 1042, 1043,
++     1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,  995, 1023,
++     1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
++     1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
 +     1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
-      1054, 1055, 1056, 1057, 1058, 1031, 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, 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, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162,
-      1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,   12,   12,
-        12,   12,   12,   36,   36,   36,   36,   36,   77,  270,
-        77,   77,   77,   96,  358,   96,  450,   96,   98,   98,
-        98,   98,   98,  113,  113,  113,  113,  113,  166,   98,
-       166,  166,  166,  189,  189,  189,  783,  782,  781,  780,
-       779,  778,  777,  776,  775,  774,  773,  769,  768,  767,
-       766,  765,  764,  763,  762,  761,  760,  759,  758,  757,
-       756,  755,  754,  753,  752,  751,  750,  749,  748,  747,
-       746,  743,  742,  741,  740,  739,  738,  735,  734,  733,
-       732,  731,  730,  729,  728,  727,  726,  725,  724,  723,
-       722,  721,  720,  719,  718,  717,  716,  715,  712,  711,
-       710,  709,  708,  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,  677,  676,  675,  674,  673,  670,  665,  664,
-       663,  662,  661,  660,  659,  658,  657,  656,  655,  654,
-       653,  652,  651,  650,  649,  648,  647,  646,  645,  644,
-       643,  642,  641,  640,  639,  638,  637,  636,  635,  634,
-       633,  632,  631,  630,  629,  628,  627,  626,  625,  624,
-       623,  622,  621,  620,  619,  618,  617,  616,  615,  614,
-       613,  612,  611,  610,  609,  608,  605,  604,  603,  602,
-       599,  598,  597,  596,  595,  594,  593,  592,  591,  590,
-       589,  588,  587,  586,  582,  581,  580,  579,  578,  577,
-       576,  573,  572,  571,  570,  569,  568,  567,  566,  565,
-       564,  563,  562,  561,  560,  559,  558,  557,  556,  555,
-       554,  553,  552,  551,  550,  549,  548,  547,  546,  545,
-       544,  543,  542,  541,  540,  539,  538,  536,  533,  532,
-       531,  530,  529,  528,  527,  526,  525,  524,  523,  522,
-       521,  520,  519,  516,  515,  514,  513,  512,  511,  510,
-       509,  508,  507,  506,  505,  504,  503,  502,  501,  500,
-       499,  498,  497,  496,  495,  494,  493,  492,  491,  490,
-       489,  488,  487,  486,  485,  484,  483,  482,  481,  480,
-       479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
-       469,  468,  467,  466,  465,  464,  463,  462,  460,  457,
-       456,  455,  454,  453,  452,  449,  448,  447,  446,  445,
-       444,  443,  442,  441,  440,  439,  438,  437,  436,  435,
-       434,  433,  432,  431,  430,  429,  428,  427,  424,  421,
-       420,  419,  418,  417,  416,  415,  412,  411,  410,  407,
-       406,  405,  404,  403,  402,  401,  400,  399,  398,  393,
-       392,  391,  390,  389,  388,  387,  386,  385,  384,  381,
-       380,  379,  378,  377,  376,  375,  374,  373,  372,  370,
++     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, 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,
++       12,   12,   12,   12,   12,   36,   36,   36,   36,   36,
++       77,  263,   77,   77,   77,   96,  346,   96,  434,   96,
++       98,   98,   98,   98,   98,  113,  113,  113,  113,  113,
++      163,   98,  163,  163,  163,  186,  186,  186,  777,  776,
++
++      775,  774,  773,  772,  771,  770,  769,  768,  767,  766,
++      765,  764,  763,  762,  761,  760,  759,  758,  757,  754,
++      753,  752,  751,  750,  749,  748,  747,  746,  745,  744,
++      740,  739,  738,  737,  736,  735,  734,  733,  732,  731,
++      730,  729,  728,  727,  726,  725,  724,  723,  722,  721,
++      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,  685,
++      684,  683,  682,  681,  680,  679,  678,  677,  676,  675,
++      674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
 +
-       368,  367,  365,  364,  357,  354,  353,  352,  351,  350,
-       349,  348,  347,  346,  345,  344,  343,  342,  341,  340,
-       339,  336,  335,  334,  333,  332,  331,  330,  329,  328,
-       327,  326,  325,  324,  323,  322,  321,  320,  319,  318,
-       317,  316,  315,  314,  313,  312,  311,  310,  309,  308,
-       307,  306,  305,  304,  303,  302,  301,  300,  299,  298,
-       297,  296,  295,  294,  293,  292,  291,  290,  287,  286,
-       285,  283,  190,  280,  278,  276,  275,  272,  269,  262,
-       261,  260,  259,  258,  257,  256,  255,  254,  243,  242,
-       241,  238,  237,  234,  233,  232,  231,  230,  229,  228,
-       225,  224,  223,  222,  221,  220,  217,  216,  212,  211,
-       205,  204,  200,  199,  198,  195,  194,  190,  183,  178,
-       177,  174,  173,  165,  153,  129,  103,  102,   43,   97,
-        95,   94,   85,   43, 1171,   11, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171
++      664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
++      654,  653,  651,  650,  649,  648,  647,  644,  639,  638,
++      637,  636,  635,  634,  633,  632,  631,  630,  629,  628,
++      627,  626,  625,  624,  623,  622,  621,  620,  619,  618,
++      617,  616,  615,  614,  613,  612,  611,  610,  609,  608,
++      607,  606,  605,  604,  603,  602,  601,  600,  599,  598,
++      597,  596,  595,  594,  593,  592,  591,  590,  589,  588,
++      587,  586,  585,  582,  581,  580,  579,  576,  575,  574,
++      573,  572,  571,  570,  569,  568,  567,  566,  565,  564,
++      563,  559,  558,  557,  556,  555,  554,  551,  550,  549,
++
++      548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
++      538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
++      528,  527,  526,  525,  524,  523,  522,  521,  520,  519,
++      518,  516,  513,  512,  511,  510,  509,  508,  507,  506,
++      505,  504,  503,  502,  501,  500,  499,  496,  495,  494,
++      493,  492,  491,  490,  489,  488,  487,  486,  485,  484,
++      483,  482,  481,  480,  479,  478,  477,  476,  475,  474,
++      473,  472,  471,  470,  469,  468,  467,  466,  465,  464,
++      463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
++      453,  452,  451,  450,  449,  448,  447,  446,  444,  441,
++
++      440,  439,  438,  437,  436,  433,  432,  431,  430,  429,
++      428,  427,  426,  425,  424,  423,  422,  421,  420,  419,
++      418,  417,  416,  415,  414,  413,  412,  411,  406,  405,
++      404,  403,  402,  401,  400,  397,  394,  393,  392,  391,
++      390,  389,  388,  387,  386,  385,  380,  379,  378,  377,
++      376,  375,  374,  373,  372,  371,  368,  367,  366,  365,
++      364,  363,  362,  361,  360,  358,  356,  355,  353,  352,
++      345,  342,  341,  340,  339,  338,  337,  336,  335,  334,
++      333,  332,  331,  330,  329,  328,  327,  324,  323,  322,
++      321,  320,  319,  318,  317,  316,  315,  314,  313,  312,
++
++      311,  310,  309,  308,  307,  306,  305,  304,  303,  302,
++      301,  300,  299,  298,  297,  296,  295,  294,  293,  292,
++      291,  290,  289,  288,  287,  286,  285,  284,  283,  282,
++      281,  280,  279,  278,  276,  187,  273,  271,  269,  268,
++      265,  262,  255,  254,  253,  252,  251,  250,  249,  248,
++      247,  236,  235,  234,  233,  232,  231,  228,  227,  226,
++      225,  224,  221,  220,  219,  218,  217,  216,  213,  212,
++      208,  207,  201,  200,  196,  195,  192,  191,  187,  180,
++      175,  174,  171,  170,  162,  150,  139,  128,  103,  102,
++       43,   97,   95,   94,   85,   43, 1134,   11, 1134, 1134,
++
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134
      } ;
  
- static yyconst flex_int16_t yy_chk[1608] =
 -static yyconst flex_int16_t yy_chk[1263] =
++static yyconst flex_int16_t yy_chk[1570] =
      {   0,
 -        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,    1,
 -        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 -        3,    3,    3,    4,    4,    4,    3,   27,    7,    4,
 -        5,    5,    8,    5,    5,    5,    5,    5,    5,    5,
 -        5,    5,    5,    9,   13,   10,   13,   21,    5,    5,
 -       27,    5,   21,   28,    5,   25,    5,   25,    5,   26,
 -
 -       25,   25,   25,   31,    5,    5,    7,    9,    5,   10,
 -        8,   37,    5,   37,   26,  285,   28,    5,   31,   42,
 -      285,   42,  677,    5,    5,   15,   15,   15,   15,   15,
 +        0,    1,    1,    1,    0,    1,    1,    0,    1,    1,
 +        1,    1,    1,    1,    1,    1,    1,    1,   21,    0,
 +        3,    3,    3,   21,    1,    1,    3,    0,    0,    1,
 +        4,    4,    4,   13,    1,   13,    4,   27,   28,    1,
 +       56,    1,    5,    5,    5,   26,   32,    1,    1,   33,
-         6,    6,    6,    7,    7,    7,    1,    7,    0,    8,
-         8,    8,    1,    8,   56,   27,   28,  330,   26,    1,
++        6,    6,    6,    7,    7,    7,    1,    7,  718,    8,
++        8,    8,    1,    8,   56,   27,   28,  719,   26,    1,
 +        1,    2,    2,    2,   32,    2,    2,   33,    2,    2,
 +        2,    2,    2,    2,    2,    2,    2,    2,    9,    9,
 +        9,   51,    5,   31,    2,    2,   10,   10,   10,    2,
 +
 +        6,   20,   20,   20,    2,   37,    9,   37,   42,    2,
 +       42,    2,   20,   50,   10,   53,   31,    2,    2,   51,
-        61,   65,   25,  330,   25,  717,    2,   25,   25,   25,
-        61,   65,    2,   65,  246,   20,   50,  246,   53,    2,
++      239,   61,   25,  239,   25,  720,    2,   25,   25,   25,
++       59,   61,    2,   59,  721,   20,   50,   59,   53,    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,   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,   15,   15,   15,   15,   17,   32,   17,   17,   17,
 -       19,   33,   19,   19,   19,   44,   49,   17,   20,   20,
 -
 -       20,   54,   19,   22,   81,   22,   22,   22,   20,   32,
 -       54,  679,   61,   17,   33,   22,   61,   52,   19,   49,
 -       52,   56,   44,   52,   20,   56,   63,   81,   56,  107,
 -       63,   22,   45,   45,   66,   45,   53,  131,   66,   50,
 -       53,  131,  101,   53,  107,   45,   50,   45,   45,   45,
 -       45,  101,   45,   45,   53,   45,   45,   45,   45,   45,
 -       45,   45,   45,   45,   45,   79,   50,   57,   58,   58,
 -       50,   65,   58,   80,   50,   65,   57,   58,   57,   62,
 -       94,   50,   62,   62,   50,   79,   50,   50,   64,   65,
 -       82,   84,   62,   80,   62,  113,  108,   64,   64,   69,
 -
 -       69,   69,   64,   70,   94,   70,   70,   70,  108,   69,
 -       82,   71,  680,   71,   84,   70,   71,   71,   71,   89,
 -       72,   83,   72,   72,   72,   69,   73,   73,   73,  113,
 -      120,   70,   72,   77,   77,   77,   73,   78,   78,   78,
 -      398,   83,  104,  104,  110,  142,   89,  110,   72,  120,
 -      110,  104,   73,   98,   98,   98,  124,  124,  144,  145,
 -       98,   98,   98,   98,   98,  143,  146,  202,  142,  398,
 -      202,  130,  130,  130,  144,   98,   98,   98,   98,   98,
 -       98,  130,  145,  130,  147,  143,  146,  130,  217,  220,
 -      225,  225,  238,  267,  346,  266,  238,  267,  225,  346,
 -
 -      147,  158,  158,  158,  217,  220,  419,  681,  158,  158,
 -      158,  158,  158,  405,  475,  247,  419,  511,  405,  475,
 -      247,  511,  682,  158,  158,  158,  158,  158,  158,  228,
 -      228,  228,  609,  672,  678,  684,  228,  228,  228,  228,
 -      228,  266,  685,  608,  557,  686,  687,  405,  608,  557,
 -      688,  228,  228,  228,  228,  228,  228,  247,  689,  690,
 -      691,  247,  295,  295,  295,  692,  609,  693,  678,  295,
 -      295,  295,  295,  295,  672,  694,  695,  696,  700,  701,
 -      702,  703,  704,  705,  295,  295,  295,  295,  295,  295,
 -      557,  698,  706,  708,  709,  712,  713,  714,  698,  716,
 -
 -      717,  718,  719,  721,  722,  723,  724,  725,  726,  727,
 -      728,  730,  732,  734,  735,  736,  737,  740,  742,  743,
 -      745,  747,  748,  749,  750,  753,  754,  755,  756,  757,
 -      758,  759,  760,  761,  762,  763,  764,  765,  766,  767,
 -      768,  769,  770,  773,  774,  775,  776,  777,  778,  774,
 -      779,  781,  783,  784,  786,  787,  788,  789,  790,  792,
 -      794,  795,  796,  797,  799,  800,  801,  802,  803,  804,
 -      805,  806,  807,  808,  809,  810,  811,  812,  813,  814,
 -      815,  817,  818,  819,  821,  822,  823,  824,  825,  826,
 -      827,  829,  830,  831,  832,  833,  834,  835,  836,  837,
 -
 -      838,  839,  842,  843,  844,  845,  847,  848,  850,  851,
 -      852,  853,  854,  855,  856,  857,  858,  859,  860,  861,
 -      862,  863,  864,  865,  866,  867,  868,  869,  870,  871,
 -      872,  874,  875,  876,  877,  878,  882,  883,  884,  886,
 -      887,  888,  889,  890,  891,  892,  894,  895,  898,  898,
 -      898,  898,  898,  898,  898,  899,  676,  899,  899,  899,
 -      899,  899,  900,  675,  900,  674,  900,  900,  900,  901,
 -      901,  901,  901,  901,  901,  901,  902,  902,  902,  902,
 -      902,  902,  902,  903,  673,  903,  903,  903,  903,  903,
 -      904,  904,  671,  904,  905,  905,  905,  905,  905,  906,
 -
 -      906,  907,  907,  908,  908,  909,  909,  670,  669,  668,
 -      667,  666,  664,  662,  660,  659,  658,  657,  656,  655,
 -      653,  651,  648,  647,  646,  645,  644,  643,  642,  641,
 -      640,  639,  638,  637,  634,  633,  632,  631,  630,  629,
 -      628,  626,  625,  624,  623,  622,  621,  620,  619,  618,
 -      617,  616,  615,  614,  613,  612,  611,  610,  607,  605,
 -      604,  603,  602,  601,  600,  599,  598,  597,  596,  595,
 -      594,  592,  591,  590,  589,  588,  587,  586,  585,  584,
 -      583,  582,  580,  579,  578,  577,  576,  575,  574,  572,
 -      570,  569,  566,  565,  564,  563,  562,  561,  560,  559,
 -
 -      558,  556,  555,  554,  552,  551,  550,  549,  548,  547,
 -      546,  545,  544,  543,  542,  541,  540,  539,  538,  537,
 -      535,  534,  533,  531,  530,  529,  528,  527,  526,  525,
 -      524,  523,  522,  521,  520,  519,  518,  517,  515,  514,
 -      513,  512,  510,  509,  506,  505,  504,  503,  502,  501,
 -      500,  499,  498,  497,  496,  495,  494,  493,  492,  491,
 -      490,  489,  488,  487,  486,  485,  484,  483,  481,  480,
 -      479,  478,  477,  474,  473,  472,  471,  470,  469,  468,
 -      467,  466,  465,  464,  463,  461,  460,  459,  458,  457,
 -      456,  454,  453,  452,  451,  450,  449,  448,  447,  446,
 -
 -      445,  444,  443,  442,  441,  440,  439,  438,  437,  436,
 -      435,  434,  433,  432,  431,  430,  429,  428,  427,  426,
 -      425,  424,  422,  421,  420,  417,  416,  415,  414,  413,
 -      412,  410,  409,  408,  407,  406,  404,  402,  401,  400,
 -      399,  397,  396,  395,  394,  393,  392,  391,  390,  389,
 -      388,  387,  385,  384,  383,  382,  381,  380,  379,  378,
 -      377,  376,  375,  374,  373,  372,  371,  370,  369,  368,
 -      366,  365,  361,  360,  359,  357,  353,  352,  351,  350,
 -      349,  348,  347,  345,  344,  343,  342,  341,  340,  339,
 -      338,  336,  335,  334,  333,  332,  331,  329,  328,  327,
 -
 -      326,  325,  324,  323,  322,  321,  320,  319,  318,  317,
 -      316,  314,  313,  312,  311,  310,  309,  308,  306,  305,
 -      304,  303,  302,  300,  299,  297,  296,  294,  293,  292,
 -      291,  289,  286,  284,  283,  282,  281,  280,  279,  278,
 -      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
 -      265,  264,  263,  262,  261,  260,  259,  258,  257,  256,
 -      255,  254,  253,  252,  251,  250,  249,  248,  246,  245,
 -      244,  243,  242,  241,  240,  239,  237,  236,  235,  234,
 -      233,  232,  231,  230,  229,  227,  223,  216,  215,  214,
 -      213,  212,  211,  210,  209,  208,  207,  206,  205,  204,
 -
 -      203,  201,  200,  199,  198,  197,  196,  195,  194,  193,
 -      192,  191,  190,  189,  188,  187,  186,  185,  184,  183,
 -      182,  181,  179,  178,  177,  176,  175,  174,  173,  172,
 -      171,  170,  169,  168,  167,  166,  165,  164,  163,  162,
 -      161,  160,  159,  156,  155,  154,  151,  148,  140,  139,
 -      138,  137,  136,  135,  134,  133,  132,  129,  128,  127,
 -      126,  125,  123,  122,  121,  119,  118,  117,  116,  115,
 -      114,  112,  111,  109,  106,  105,  103,  102,  100,   99,
 -       96,   95,   93,   92,   91,   87,   86,   67,   60,   59,
 -       55,   51,   48,   47,   43,   41,   39,   38,   24,   14,
 -
 -       11,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
 -      897,  897
 +       15,   15,   17,   47,   17,   17,   17,   19,   52,   19,
-        19,   19,   44,   55,   22,   17,   22,   22,   22,   59,
-        19,   60,   59,   54,   59,   60,   59,   22,   60,   47,
-        62,   58,   98,   54,   64,  720,   55,   52,   17,   64,
-        72,   60,   64,   19,   72,   88,   54,   44,   67,   89,
-        22,   45,   67,   62,   45,   45,   45,   58,   45,   45,
-        45,   54,   57,   58,   62,   45,   45,   98,   45,   57,
-       721,   88,   67,  105,   45,   89,   45,   45,   45,   45,
-        45,   45,   45,   45,   90,   45,   45,   45,   45,   45,
++       19,   19,   44,   55,   22,   17,   22,   22,   22,   62,
++       19,   60,   65,   54,  722,   60,   72,   22,   60,   47,
++       72,   58,   65,   54,   65,  106,   55,   52,   17,   90,
++       64,   60,   62,   19,   88,   64,   54,   44,   64,   98,
++       22,   45,   68,   62,   45,   45,   45,   58,   45,   45,
++       45,   54,   57,   58,  106,   45,   45,   90,   45,   57,
++       88,   68,  723,   68,   45,   68,   45,   45,   45,   45,
++       45,   45,   45,   45,   98,   45,   45,   45,   45,   45,
 +
 +       45,   45,   45,   45,   45,   45,   45,   57,   66,   66,
-       105,   57,   66,   68,   69,   57,   75,  112,   66,   69,
-        69,   70,   90,   57,   70,   70,  106,   57,  722,   57,
-        57,   73,   68,   74,   68,   70,   68,  109,   70,   75,
-       112,   73,   73,   74,   86,   86,   86,   73,  724,   75,
-        78,   78,   78,  197,   75,  106,   74,   91,   74,  197,
-        93,   78,   74,   79,  109,   79,   79,   79,   80,   92,
-        80,   74,  101,   80,   80,   80,   79,   81,   74,   81,
-        81,   81,  100,   91,   78,   82,   82,   82,   93,  100,
-        81,   87,   87,   87,  104,   92,   82,  111,  108,   79,
-       101,  110,  119,  127,  123,  123,  116,  151,  126,  140,
-       126,  151,  119,   81,  123,  130,  127,  100,  130,   82,
-       104,  100,  130,  116,  111,  100,  108,  126,  133,  110,
-       140,  148,  148,  100,  116,  167,  716,  100,  169,  100,
-       100,  115,  115,  115,  155,  155,  155,  716,  115,  115,
-       115,  115,  115,  115,  168,  155,  156,  155,  170,  155,
-       156,  169,  155,  167,  156,  171,  172,  176,  179,  184,
-       133,  115,  115,  115,  115,  115,  115,  180,  186,  188,
-       168,  725,  193,  271,  272,  272,  170,  263,  266,  172,
-       176,  171,  184,  272,  277,  284,  179,  273,  296,  318,
-       318,  186,  296,  322,  180,  193,  188,  191,  191,  191,
-       263,  266,  271,  322,  191,  191,  191,  191,  191,  191,
-       273,  332,  277,  645,  284,  332,  433,  645,  307,  359,
-       371,  433,  368,  307,  368,  458,  459,  191,  191,  191,
-       191,  191,  191,  282,  282,  282,  501,  727,  535,  728,
-       282,  282,  282,  282,  282,  282,  527,  359,  371,  368,
-       461,  368,  458,  510,  459,  461,  527,  729,  510,  730,
-       534,  535,  677,  282,  282,  282,  282,  282,  282,  307,
-       607,  596,  597,  501,  307,  369,  369,  369,  596,  597,
-       668,  678,  369,  369,  369,  369,  369,  369,  534,  677,
-       599,  731,  668,  732,  704,  510,  599,  733,  607,  704,
-       734,  735,  736,  737,  678,  369,  369,  369,  369,  369,
-       369,  738,  740,  741,  742,  743,  744,  746,  745,  747,
-       748,  749,  750,  751,  752,  753,  754,  756,  757,  758,
-       759,  760,  761,  762,  763,  764,  765,  766,  767,  768,
-       769,  771,  772,  773,  744,  745,  774,  772,  775,  776,
-       704,  777,  778,  779,  780,  781,  782,  783,  784,  785,
-       786,  787,  788,  789,  790,  791,  792,  793,  794,  795,
-       796,  797,  798,  800,  803,  804,  805,  806,  807,  808,
-       809,  810,  811,  812,  813,  773,  814,  817,  818,  819,
-       820,  821,  822,  823,  824,  825,  826,  827,  828,  829,
-       830,  833,  808,  835,  837,  838,  839,  840,  809,  841,
-       842,  844,  845,  847,  848,  849,  852,  854,  855,  856,
-       857,  858,  859,  860,  861,  862,  863,  864,  865,  866,
-       867,  868,  869,  870,  871,  872,  873,  874,  875,  876,
-       877,  878,  879,  881,  882,  883,  884,  885,  886,  887,
-       888,  889,  890,  891,  892,  893,  894,  896,  897,  898,
-       869,  900,  901,  902,  903,  904,  897,  905,  906,  907,
-       908,  909,  911,  912,  913,  918,  862,  919,  873,  920,
-       922,  923,  925,  926,  927,  928,  929,  931,  932,  933,
-       934,  935,  936,  937,  938,  939,  940,  942,  944,  946,
-       947,  948,  920,  950,  951,  952,  953,  954,  957,  959,
-       960,  961,  963,  964,  965,  966,  967,  968,  969,  970,
-       971,  973,  975,  976,  977,  978,  979,  980,  981,  982,
-       983,  984,  985,  986,  987,  988,  989,  990,  991,  992,
-       993,  965,  994,  995,  996,  997,  998,  999, 1000, 1001,
-      1003, 1005, 1007, 1008, 1009, 1010, 1011, 1007, 1012, 1013,
-      1015, 1018, 1019, 1021, 1022, 1023, 1024, 1025, 1026, 1027,
-      1028, 1029, 1031, 1032, 1033,  999, 1035, 1037, 1038, 1039,
-      1040, 1041, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
-      1051, 1052, 1053, 1054, 1055, 1057, 1058, 1059, 1060, 1061,
-      1062, 1064, 1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073,
-      1074, 1075, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
-      1085, 1087, 1088, 1089, 1090, 1092, 1093, 1094, 1095, 1096,
-      1097, 1098, 1099, 1100, 1101, 1102, 1103, 1105, 1108, 1109,
-      1110, 1111, 1114, 1116, 1117, 1119, 1120, 1121, 1122, 1124,
-      1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
-      1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
-      1146, 1148, 1149, 1150, 1151, 1152, 1156, 1157, 1158, 1160,
-      1161, 1162, 1163, 1164, 1165, 1166, 1168, 1169, 1172, 1172,
-      1172, 1172, 1172, 1173, 1173, 1173, 1173, 1173, 1174, 1180,
-      1174, 1174, 1174, 1175, 1181, 1175, 1182, 1175, 1176, 1176,
-      1176, 1176, 1176, 1177, 1177, 1177, 1177, 1177, 1178, 1183,
-      1178, 1178, 1178, 1179, 1179, 1179,  715,  714,  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,  686,  685,  684,  683,  682,  681,  680,
-       679,  675,  674,  672,  671,  670,  669,  667,  666,  665,
-       664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
-       654,  653,  652,  650,  649,  648,  647,  646,  644,  643,
-       641,  640,  639,  636,  635,  634,  633,  632,  631,  630,
-       629,  628,  627,  626,  625,  624,  623,  622,  621,  620,
-       619,  618,  617,  616,  615,  614,  613,  612,  611,  610,
-       609,  608,  606,  604,  603,  602,  601,  598,  595,  594,
-       593,  592,  591,  590,  589,  588,  587,  586,  585,  584,
-       582,  581,  580,  579,  578,  577,  576,  575,  573,  572,
-       571,  570,  569,  568,  567,  566,  565,  564,  563,  562,
-       561,  560,  559,  558,  557,  556,  555,  554,  553,  552,
-       551,  550,  549,  548,  547,  546,  545,  544,  543,  542,
-       541,  540,  539,  538,  537,  536,  533,  532,  529,  528,
-       525,  524,  523,  522,  521,  520,  519,  518,  516,  515,
-       514,  513,  512,  511,  509,  508,  506,  505,  504,  503,
-       502,  500,  499,  498,  496,  495,  494,  493,  492,  491,
-       490,  489,  488,  487,  486,  485,  483,  482,  481,  480,
-       479,  478,  477,  476,  475,  474,  473,  472,  471,  470,
-       469,  468,  467,  466,  465,  464,  463,  460,  456,  454,
-       451,  449,  448,  446,  442,  441,  440,  439,  438,  437,
-       436,  435,  434,  432,  431,  430,  429,  428,  427,  426,
-       425,  424,  423,  421,  420,  419,  418,  417,  416,  415,
-       414,  413,  411,  410,  409,  408,  407,  406,  405,  404,
-       403,  402,  401,  400,  399,  398,  397,  396,  395,  393,
-       392,  391,  390,  389,  388,  387,  386,  385,  383,  382,
-       381,  380,  379,  377,  376,  375,  373,  372,  370,  366,
-       365,  363,  362,  361,  360,  357,  354,  353,  352,  351,
-       350,  349,  348,  347,  346,  345,  344,  343,  342,  341,
-       340,  339,  338,  337,  336,  335,  334,  333,  331,  329,
-       328,  327,  326,  325,  324,  323,  321,  320,  319,  317,
-       316,  315,  314,  313,  312,  311,  310,  309,  308,  306,
-       305,  304,  303,  302,  301,  300,  299,  298,  297,  295,
-       294,  293,  292,  291,  289,  288,  287,  286,  285,  283,
-       281,  279,  276,  274,  269,  262,  261,  260,  259,  258,
-       257,  256,  255,  254,  253,  252,  251,  250,  249,  248,
-       247,  245,  244,  243,  242,  241,  240,  239,  238,  237,
-       236,  235,  234,  233,  232,  231,  230,  229,  228,  227,
-       226,  225,  224,  223,  222,  221,  220,  219,  217,  216,
-       215,  214,  213,  212,  211,  210,  209,  208,  207,  206,
-       205,  204,  203,  202,  201,  200,  199,  198,  196,  195,
-       194,  192,  189,  187,  185,  183,  182,  177,  173,  165,
-       164,  163,  162,  161,  160,  159,  158,  157,  154,  153,
-       152,  150,  149,  147,  146,  145,  144,  143,  142,  141,
-       139,  138,  137,  136,  135,  134,  132,  131,  129,  128,
-       125,  124,  122,  121,  120,  118,  117,  113,  107,  103,
-       102,   96,   95,   76,   71,   63,   49,   48,   43,   41,
-        39,   38,   24,   14,   11, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
-      1171, 1171, 1171, 1171, 1171, 1171, 1171
++       75,   57,   66,  139,   69,   57,   93,  689,   66,   69,
++       69,   70,   74,   57,   70,   70,   73,   57,  689,   57,
++       57,  724,   74,   75,  139,   70,   73,   73,   70,   78,
++       78,   78,   73,   75,   93,   74,   89,   74,   75,  101,
++       78,   74,   79,  725,   79,   79,   79,   80,   91,   80,
++       74,   92,   80,   80,   80,   79,   81,   74,   81,   81,
++       81,  100,   89,   78,   82,   82,   82,  101,  100,   81,
++       86,   86,   86,  104,   91,   82,  105,   92,   79,   87,
++       87,   87,  108,  112,  109,  110,  125,  111,  125,  126,
++
++      129,  119,   81,  129,  132,  164,  100,  129,   82,  104,
++      100,  119,  126,  105,  100,  125,  112,  116,  145,  145,
++      108,  109,  100,  110,  111,  165,  100,  727,  100,  100,
++      115,  115,  115,  164,  116,  728,  166,  115,  115,  115,
++      115,  115,  115,  122,  122,  116,  132,  167,  168,  169,
++      153,  165,  176,  122,  153,  152,  152,  152,  153,  166,
++      115,  115,  115,  115,  115,  115,  152,  173,  152,  177,
++      152,  181,  169,  152,  168,  167,  183,  185,  190,  256,
++      176,  264,  265,  265,  287,  259,  266,  729,  287,  277,
++      173,  265,  270,  311,  181,  442,  177,  309,  309,  183,
++
++      319,  190,  256,  311,  185,  188,  188,  188,  259,  266,
++      264,  507,  188,  188,  188,  188,  188,  188,  277,  320,
++      270,  507,  442,  320,  417,  730,  298,  347,  482,  417,
++      356,  298,  356,  359,  443,  188,  188,  188,  188,  188,
++      188,  275,  275,  275,  515,  731,  732,  573,  275,  275,
++      275,  275,  275,  275,  573,  347,  319,  356,  445,  356,
++      514,  359,  443,  445,  490,  482,  620,  515,  584,  490,
++      620,  275,  275,  275,  275,  275,  275,  298,  651,  574,
++      652,  576,  298,  357,  357,  357,  574,  576,  514,  642,
++      357,  357,  357,  357,  357,  357,  584,  677,  716,  733,
++
++      717,  642,  677,  652,  734,  651,  490,  735,  736,  737,
++      738,  739,  740,  357,  357,  357,  357,  357,  357,  742,
++      743,  744,  745,  746,  747,  743,  716,  717,  748,  749,
++      750,  751,  752,  753,  754,  755,  756,  757,  758,  759,
++      760,  761,  762,  763,  764,  765,  766,  767,  768,  770,
++      773,  774,  775,  677,  776,  777,  778,  779,  780,  781,
++      782,  783,  786,  744,  787,  788,  789,  790,  791,  792,
++      793,  794,  795,  796,  797,  798,  799,  802,  804,  778,
++      806,  807,  808,  809,  810,  779,  811,  813,  814,  816,
++      817,  818,  820,  822,  823,  824,  825,  826,  827,  828,
++
++      829,  830,  831,  832,  833,  834,  835,  836,  837,  838,
++      839,  840,  841,  842,  843,  844,  845,  846,  848,  849,
++      850,  851,  852,  853,  854,  855,  856,  857,  858,  859,
++      860,  861,  863,  864,  865,  867,  837,  868,  869,  870,
++      871,  864,  872,  873,  874,  875,  876,  878,  879,  880,
++      885,  886,  830,  887,  841,  889,  890,  892,  893,  894,
++      895,  897,  898,  899,  900,  901,  902,  903,  904,  905,
++      906,  908,  910,  912,  913,  914,  887,  916,  917,  918,
++      919,  920,  923,  925,  926,  927,  929,  930,  931,  932,
++      933,  934,  935,  936,  938,  940,  941,  942,  943,  944,
++
++      945,  946,  947,  948,  949,  950,  951,  952,  953,  954,
++      955,  956,  957,  958,  959,  931,  960,  961,  962,  963,
++      964,  965,  966,  969,  971,  972,  973,  974,  975,  971,
++      976,  977,  979,  982,  983,  985,  986,  987,  988,  989,
++      990,  991,  992,  993,  995,  996,  997,  998,  964, 1000,
++     1001, 1002, 1003, 1004, 1006, 1007, 1008, 1009, 1010, 1011,
++     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1020, 1021, 1022,
++     1023, 1024, 1025, 1027, 1028, 1029, 1030, 1032, 1033, 1034,
++     1035, 1036, 1037, 1038, 1040, 1041, 1042, 1043, 1044, 1045,
++     1046, 1047, 1048, 1050, 1051, 1052, 1053, 1055, 1056, 1057,
++
++     1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1068,
++     1071, 1072, 1073, 1074, 1077, 1079, 1080, 1082, 1083, 1084,
++     1085, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
++     1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
++     1106, 1107, 1109, 1111, 1112, 1113, 1114, 1115, 1119, 1120,
++     1121, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1131, 1132,
++     1135, 1135, 1135, 1135, 1135, 1136, 1136, 1136, 1136, 1136,
++     1137, 1143, 1137, 1137, 1137, 1138, 1144, 1138, 1145, 1138,
++     1139, 1139, 1139, 1139, 1139, 1140, 1140, 1140, 1140, 1140,
++     1141, 1146, 1141, 1141, 1141, 1142, 1142, 1142,  715,  714,
++
++      713,  712,  710,  709,  708,  707,  706,  705,  704,  703,
++      702,  701,  700,  699,  697,  696,  694,  693,  690,  688,
++      687,  686,  685,  684,  683,  682,  681,  680,  679,  678,
++      676,  675,  674,  672,  671,  670,  669,  668,  667,  666,
++      665,  664,  663,  662,  661,  660,  659,  658,  657,  656,
++      655,  654,  653,  649,  648,  646,  645,  644,  643,  641,
++      640,  639,  638,  637,  636,  635,  634,  633,  632,  631,
++      630,  629,  628,  627,  625,  624,  623,  622,  621,  619,
++      618,  617,  616,  615,  612,  611,  610,  609,  608,  607,
++      606,  605,  604,  603,  602,  601,  600,  599,  598,  597,
++
++      596,  595,  594,  593,  592,  591,  590,  589,  588,  587,
++      586,  585,  583,  581,  580,  579,  578,  575,  572,  571,
++      570,  569,  568,  567,  566,  565,  564,  563,  562,  561,
++      559,  558,  557,  556,  555,  554,  553,  551,  550,  549,
++      548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
++      538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
++      528,  527,  526,  525,  524,  523,  522,  521,  520,  519,
++      518,  517,  516,  513,  512,  509,  508,  505,  504,  503,
++      502,  501,  500,  499,  498,  496,  495,  494,  493,  492,
++      491,  489,  487,  486,  485,  484,  483,  481,  480,  479,
++
++      478,  477,  476,  475,  474,  473,  472,  471,  470,  469,
++      468,  466,  465,  464,  463,  462,  461,  460,  459,  458,
++      457,  456,  455,  454,  453,  452,  451,  450,  449,  448,
++      447,  444,  440,  438,  435,  433,  432,  430,  426,  425,
++      424,  423,  422,  421,  420,  419,  418,  416,  415,  414,
++      413,  412,  411,  410,  409,  408,  406,  405,  404,  403,
++      402,  401,  400,  399,  398,  396,  395,  394,  393,  392,
++      391,  390,  389,  388,  387,  386,  385,  384,  383,  382,
++      380,  379,  378,  377,  376,  375,  374,  373,  372,  370,
++      369,  368,  367,  366,  364,  363,  361,  360,  358,  354,
++
++      353,  351,  350,  349,  348,  345,  342,  341,  340,  339,
++      338,  337,  336,  335,  334,  333,  332,  331,  330,  329,
++      328,  327,  326,  325,  324,  323,  322,  321,  318,  317,
++      316,  315,  314,  313,  312,  310,  308,  307,  306,  305,
++      304,  303,  302,  301,  300,  299,  297,  296,  295,  294,
++      293,  292,  291,  290,  289,  288,  286,  285,  284,  283,
++      282,  281,  280,  279,  278,  276,  274,  272,  269,  267,
++      262,  255,  254,  253,  252,  251,  250,  249,  248,  247,
++      246,  245,  244,  243,  242,  241,  240,  238,  237,  236,
++      235,  234,  233,  232,  231,  230,  229,  228,  227,  226,
++
++      225,  224,  223,  222,  221,  220,  219,  218,  217,  216,
++      215,  213,  212,  211,  210,  209,  208,  207,  206,  205,
++      204,  203,  202,  201,  200,  199,  198,  197,  196,  195,
++      194,  193,  192,  191,  189,  186,  184,  182,  180,  179,
++      174,  170,  162,  161,  160,  159,  158,  157,  156,  155,
++      154,  151,  150,  149,  148,  147,  146,  144,  143,  142,
++      141,  140,  138,  137,  136,  135,  134,  133,  131,  130,
++      128,  127,  124,  123,  121,  120,  118,  117,  113,  107,
++      103,  102,   96,   95,   76,   71,   67,   63,   49,   48,
++       43,   41,   39,   38,   24,   14,   11, 1134, 1134, 1134,
++
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
++     1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134
      } ;
  
  static yy_state_type yy_last_accepting_state;
@@@ -1289,24 -1121,21 +1267,23 @@@ static char *yy_last_accepting_cpos
  extern int parser6__flex_debug;
  int parser6__flex_debug = 1;
  
- static yyconst flex_int16_t yy_rule_linenum[146] =
 -static yyconst flex_int16_t yy_rule_linenum[118] =
++static yyconst flex_int16_t yy_rule_linenum[141] =
      {   0,
 -      130,  132,  134,  139,  140,  145,  146,  147,  159,  162,
 -      167,  174,  183,  192,  201,  210,  219,  228,  240,  250,
 -      260,  270,  281,  291,  301,  311,  321,  331,  340,  349,
 -      358,  373,  388,  397,  406,  415,  424,  433,  442,  451,
 -      460,  469,  479,  488,  497,  506,  515,  524,  533,  543,
 -      552,  561,  570,  579,  588,  597,  606,  615,  624,  634,
 -      644,  654,  663,  672,  681,  692,  702,  711,  721,  730,
 -      739,  748,  757,  766,  775,  785,  794,  803,  812,  821,
 -      830,  839,  848,  857,  866,  875,  884,  893,  902,  911,
 -      920,  929,  938,  947,  956,  965,  974,  983,  992, 1001,
 -
 -     1099, 1104, 1109, 1114, 1115, 1116, 1117, 1118, 1119, 1121,
 -     1139, 1152, 1157, 1161, 1163, 1165, 1167
 +      132,  134,  136,  141,  142,  147,  148,  149,  161,  164,
 +      169,  176,  185,  194,  203,  212,  221,  230,  239,  248,
 +      257,  266,  275,  284,  293,  302,  311,  321,  331,  341,
 +      351,  361,  371,  381,  391,  401,  410,  419,  428,  437,
-       446,  455,  467,  476,  485,  494,  503,  513,  523,  533,
-       544,  554,  564,  574,  584,  594,  604,  613,  622,  631,
-       646,  661,  670,  679,  688,  697,  706,  715,  724,  733,
-       742,  751,  760,  769,  778,  787,  796,  806,  815,  824,
-       833,  842,  851,  860,  869,  878,  887,  897,  907,  917,
-       926,  935,  944,  955,  965,  974,  984,  993, 1002, 1011,
-      1020, 1029, 1038, 1048, 1057, 1066, 1075, 1084, 1093, 1102,
-      1111, 1120, 1129, 1138, 1147, 1156, 1165, 1174, 1183, 1192,
-      1201, 1210, 1219, 1228, 1237, 1246, 1255, 1264, 1362, 1367,
-      1372, 1377, 1378, 1379, 1380, 1381, 1382, 1384, 1402, 1415,
-      1420, 1424, 1426, 1428, 1430
++      446,  455,  467,  477,  487,  497,  508,  518,  528,  538,
++      548,  558,  567,  576,  585,  600,  615,  624,  633,  642,
++      651,  660,  669,  678,  687,  696,  705,  714,  723,  732,
++      741,  750,  760,  769,  778,  787,  796,  805,  814,  823,
++      832,  841,  851,  861,  871,  880,  889,  898,  909,  919,
++      928,  938,  947,  956,  965,  974,  983,  992, 1002, 1011,
++
++     1020, 1029, 1038, 1047, 1056, 1065, 1074, 1083, 1092, 1101,
++     1110, 1119, 1128, 1137, 1146, 1155, 1164, 1173, 1182, 1191,
++     1200, 1209, 1218, 1316, 1321, 1326, 1331, 1332, 1333, 1334,
++     1335, 1336, 1338, 1356, 1369, 1374, 1378, 1380, 1382, 1384
      } ;
  
  /* The intent behind this definition is that it'll catch
@@@ -1377,7 -1206,7 +1354,7 @@@ unsigned int comment_start_line = 0
  // by moving it ahead by parser6_leng bytes. parser6_leng specifies the length of the
  // currently matched token.
  #define YY_USER_ACTION  driver.loc_.columns(parser6_leng);
- #line 1381 "dhcp6_lexer.cc"
 -#line 1210 "dhcp6_lexer.cc"
++#line 1358 "dhcp6_lexer.cc"
  
  #define INITIAL 0
  #define COMMENT 1
@@@ -1705,7 -1532,7 +1682,7 @@@ YY_DEC
      }
  
  
- #line 1709 "dhcp6_lexer.cc"
 -#line 1536 "dhcp6_lexer.cc"
++#line 1686 "dhcp6_lexer.cc"
  
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@@ -1734,13 -1561,13 +1711,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 >= 1172 )
 -                              if ( yy_current_state >= 898 )
++                              if ( yy_current_state >= 1135 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 1171 );
 -              while ( yy_current_state != 897 );
++              while ( yy_current_state != 1134 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
  
@@@ -1759,13 -1586,13 +1736,13 @@@ do_action:   /* This label is used only t
                        {
                        if ( yy_act == 0 )
                                fprintf( stderr, "--scanner backing up\n" );
-                       else if ( yy_act < 146 )
 -                      else if ( yy_act < 118 )
++                      else if ( yy_act < 141 )
                                fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
                                         (long)yy_rule_linenum[yy_act], parser6_text );
-                       else if ( yy_act == 146 )
 -                      else if ( yy_act == 118 )
++                      else if ( yy_act == 141 )
                                fprintf( stderr, "--accepting default rule (\"%s\")\n",
                                         parser6_text );
-                       else if ( yy_act == 147 )
 -                      else if ( yy_act == 119 )
++                      else if ( yy_act == 142 )
                                fprintf( stderr, "--(end of buffer or a NUL)\n" );
                        else
                                fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
@@@ -2253,57 -1783,9 +2230,9 @@@ YY_RULE_SETU
      }
  }
        YY_BREAK
 -case 19:
 +case 43:
  YY_RULE_SETUP
 -#line 240 "dhcp6_lexer.ll"
 +#line 467 "dhcp6_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser6Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
-     }
- }
-       YY_BREAK
- case 44:
- YY_RULE_SETUP
- #line 476 "dhcp6_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser6Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
-     }
- }
-       YY_BREAK
- case 45:
- YY_RULE_SETUP
- #line 485 "dhcp6_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser6Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
-     }
- }
-       YY_BREAK
- case 46:
- YY_RULE_SETUP
- #line 494 "dhcp6_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser6Context::DATABASE_TYPE:
-         return isc::dhcp::Dhcp6Parser::make_CQL(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp6Parser::make_STRING("cql", driver.loc_);
-     }
- }
-       YY_BREAK
- case 47:
- YY_RULE_SETUP
- #line 503 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 48:
 -case 20:
++case 44:
  YY_RULE_SETUP
- #line 513 "dhcp6_lexer.ll"
 -#line 250 "dhcp6_lexer.ll"
++#line 477 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 49:
 -case 21:
++case 45:
  YY_RULE_SETUP
- #line 523 "dhcp6_lexer.ll"
 -#line 260 "dhcp6_lexer.ll"
++#line 487 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 50:
 -case 22:
++case 46:
  YY_RULE_SETUP
- #line 533 "dhcp6_lexer.ll"
 -#line 270 "dhcp6_lexer.ll"
++#line 497 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 51:
 -case 23:
++case 47:
  YY_RULE_SETUP
- #line 544 "dhcp6_lexer.ll"
 -#line 281 "dhcp6_lexer.ll"
++#line 508 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 52:
- YY_RULE_SETUP
- #line 554 "dhcp6_lexer.ll"
- {
-     switch(driver.ctx_) {
-     case isc::dhcp::Parser6Context::LEASE_DATABASE:
-     case isc::dhcp::Parser6Context::HOSTS_DATABASE:
-         return isc::dhcp::Dhcp6Parser::make_CONNECT_TIMEOUT(driver.loc_);
-     default:
-         return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
-     }
- }
-       YY_BREAK
- case 53:
 -case 24:
++case 48:
  YY_RULE_SETUP
- #line 564 "dhcp6_lexer.ll"
 -#line 291 "dhcp6_lexer.ll"
++#line 518 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 54:
 -case 25:
++case 49:
  YY_RULE_SETUP
- #line 574 "dhcp6_lexer.ll"
 -#line 301 "dhcp6_lexer.ll"
++#line 528 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 55:
 -case 26:
++case 50:
  YY_RULE_SETUP
- #line 584 "dhcp6_lexer.ll"
 -#line 311 "dhcp6_lexer.ll"
++#line 538 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 56:
 -case 27:
++case 51:
  YY_RULE_SETUP
- #line 594 "dhcp6_lexer.ll"
 -#line 321 "dhcp6_lexer.ll"
++#line 548 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 57:
 -case 28:
++case 52:
  YY_RULE_SETUP
- #line 604 "dhcp6_lexer.ll"
 -#line 331 "dhcp6_lexer.ll"
++#line 558 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 58:
 -case 29:
++case 53:
  YY_RULE_SETUP
- #line 613 "dhcp6_lexer.ll"
 -#line 340 "dhcp6_lexer.ll"
++#line 567 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 59:
 -case 30:
++case 54:
  YY_RULE_SETUP
- #line 622 "dhcp6_lexer.ll"
 -#line 349 "dhcp6_lexer.ll"
++#line 576 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 60:
 -case 31:
++case 55:
  YY_RULE_SETUP
- #line 631 "dhcp6_lexer.ll"
 -#line 358 "dhcp6_lexer.ll"
++#line 585 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 61:
 -case 32:
++case 56:
  YY_RULE_SETUP
- #line 646 "dhcp6_lexer.ll"
 -#line 373 "dhcp6_lexer.ll"
++#line 600 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LEASE_DATABASE:
      }
  }
        YY_BREAK
- case 62:
 -case 33:
++case 57:
  YY_RULE_SETUP
- #line 661 "dhcp6_lexer.ll"
 -#line 388 "dhcp6_lexer.ll"
++#line 615 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DATA:
      }
  }
        YY_BREAK
- case 63:
 -case 34:
++case 58:
  YY_RULE_SETUP
- #line 670 "dhcp6_lexer.ll"
 -#line 397 "dhcp6_lexer.ll"
++#line 624 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 64:
 -case 35:
++case 59:
  YY_RULE_SETUP
- #line 679 "dhcp6_lexer.ll"
 -#line 406 "dhcp6_lexer.ll"
++#line 633 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 65:
 -case 36:
++case 60:
  YY_RULE_SETUP
- #line 688 "dhcp6_lexer.ll"
 -#line 415 "dhcp6_lexer.ll"
++#line 642 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::PD_POOLS:
      }
  }
        YY_BREAK
- case 66:
 -case 37:
++case 61:
  YY_RULE_SETUP
- #line 697 "dhcp6_lexer.ll"
 -#line 424 "dhcp6_lexer.ll"
++#line 651 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::PD_POOLS:
      }
  }
        YY_BREAK
- case 67:
 -case 38:
++case 62:
  YY_RULE_SETUP
- #line 706 "dhcp6_lexer.ll"
 -#line 433 "dhcp6_lexer.ll"
++#line 660 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::PD_POOLS:
      }
  }
        YY_BREAK
- case 68:
 -case 39:
++case 63:
  YY_RULE_SETUP
- #line 715 "dhcp6_lexer.ll"
 -#line 442 "dhcp6_lexer.ll"
++#line 669 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::PD_POOLS:
      }
  }
        YY_BREAK
- case 69:
 -case 40:
++case 64:
  YY_RULE_SETUP
- #line 724 "dhcp6_lexer.ll"
 -#line 451 "dhcp6_lexer.ll"
++#line 678 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::PD_POOLS:
      }
  }
        YY_BREAK
- case 70:
 -case 41:
++case 65:
  YY_RULE_SETUP
- #line 733 "dhcp6_lexer.ll"
 -#line 460 "dhcp6_lexer.ll"
++#line 687 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::POOLS:
      }
  }
        YY_BREAK
- case 71:
 -case 42:
 -YY_RULE_SETUP
 -#line 469 "dhcp6_lexer.ll"
 -{
 -    switch(driver.ctx_) {
 -    case isc::dhcp::Parser6Context::POOLS:
 -    case isc::dhcp::Parser6Context::PD_POOLS:
 -        return isc::dhcp::Dhcp6Parser::make_USER_CONTEXT(driver.loc_);
 -    default:
 -        return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
 -    }
 -}
 -      YY_BREAK
 -case 43:
++case 66:
  YY_RULE_SETUP
- #line 742 "dhcp6_lexer.ll"
 -#line 479 "dhcp6_lexer.ll"
++#line 696 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 72:
 -case 44:
++case 67:
  YY_RULE_SETUP
- #line 751 "dhcp6_lexer.ll"
 -#line 488 "dhcp6_lexer.ll"
++#line 705 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 73:
 -case 45:
++case 68:
  YY_RULE_SETUP
- #line 760 "dhcp6_lexer.ll"
 -#line 497 "dhcp6_lexer.ll"
++#line 714 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 74:
 -case 46:
++case 69:
  YY_RULE_SETUP
- #line 769 "dhcp6_lexer.ll"
 -#line 506 "dhcp6_lexer.ll"
++#line 723 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 75:
 -case 47:
++case 70:
  YY_RULE_SETUP
- #line 778 "dhcp6_lexer.ll"
 -#line 515 "dhcp6_lexer.ll"
++#line 732 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 76:
 -case 48:
++case 71:
  YY_RULE_SETUP
- #line 787 "dhcp6_lexer.ll"
 -#line 524 "dhcp6_lexer.ll"
++#line 741 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 77:
 -case 49:
++case 72:
  YY_RULE_SETUP
- #line 796 "dhcp6_lexer.ll"
 -#line 533 "dhcp6_lexer.ll"
++#line 750 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 78:
 -case 50:
++case 73:
  YY_RULE_SETUP
- #line 806 "dhcp6_lexer.ll"
 -#line 543 "dhcp6_lexer.ll"
++#line 760 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 79:
 -case 51:
++case 74:
  YY_RULE_SETUP
- #line 815 "dhcp6_lexer.ll"
 -#line 552 "dhcp6_lexer.ll"
++#line 769 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 80:
 -case 52:
++case 75:
  YY_RULE_SETUP
- #line 824 "dhcp6_lexer.ll"
 -#line 561 "dhcp6_lexer.ll"
++#line 778 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 81:
 -case 53:
++case 76:
  YY_RULE_SETUP
- #line 833 "dhcp6_lexer.ll"
 -#line 570 "dhcp6_lexer.ll"
++#line 787 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::CONFIG:
      }
  }
        YY_BREAK
- case 82:
 -case 54:
++case 77:
  YY_RULE_SETUP
- #line 842 "dhcp6_lexer.ll"
 -#line 579 "dhcp6_lexer.ll"
++#line 796 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LOGGING:
      }
  }
        YY_BREAK
- case 83:
 -case 55:
++case 78:
  YY_RULE_SETUP
- #line 851 "dhcp6_lexer.ll"
 -#line 588 "dhcp6_lexer.ll"
++#line 805 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LOGGERS:
      }
  }
        YY_BREAK
- case 84:
 -case 56:
++case 79:
  YY_RULE_SETUP
- #line 860 "dhcp6_lexer.ll"
 -#line 597 "dhcp6_lexer.ll"
++#line 814 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
      }
  }
        YY_BREAK
- case 85:
 -case 57:
++case 80:
  YY_RULE_SETUP
- #line 869 "dhcp6_lexer.ll"
 -#line 606 "dhcp6_lexer.ll"
++#line 823 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LOGGERS:
      }
  }
        YY_BREAK
- case 86:
 -case 58:
++case 81:
  YY_RULE_SETUP
- #line 878 "dhcp6_lexer.ll"
 -#line 615 "dhcp6_lexer.ll"
++#line 832 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::LOGGERS:
      }
  }
        YY_BREAK
- case 87:
 -case 59:
++case 82:
  YY_RULE_SETUP
- #line 887 "dhcp6_lexer.ll"
 -#line 624 "dhcp6_lexer.ll"
++#line 841 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 88:
 -case 60:
++case 83:
  YY_RULE_SETUP
- #line 897 "dhcp6_lexer.ll"
 -#line 634 "dhcp6_lexer.ll"
++#line 851 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 89:
 -case 61:
++case 84:
  YY_RULE_SETUP
- #line 907 "dhcp6_lexer.ll"
 -#line 644 "dhcp6_lexer.ll"
++#line 861 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::CLIENT_CLASSES:
      }
  }
        YY_BREAK
- case 90:
 -case 62:
++case 85:
  YY_RULE_SETUP
- #line 917 "dhcp6_lexer.ll"
 -#line 654 "dhcp6_lexer.ll"
++#line 871 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 91:
 -case 63:
++case 86:
  YY_RULE_SETUP
- #line 926 "dhcp6_lexer.ll"
 -#line 663 "dhcp6_lexer.ll"
++#line 880 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::RESERVATIONS:
      }
  }
        YY_BREAK
- case 92:
 -case 64:
++case 87:
  YY_RULE_SETUP
- #line 935 "dhcp6_lexer.ll"
 -#line 672 "dhcp6_lexer.ll"
++#line 889 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::RESERVATIONS:
      }
  }
        YY_BREAK
- case 93:
 -case 65:
++case 88:
  YY_RULE_SETUP
- #line 944 "dhcp6_lexer.ll"
 -#line 681 "dhcp6_lexer.ll"
++#line 898 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::MAC_SOURCES:
      }
  }
        YY_BREAK
- case 94:
 -case 66:
++case 89:
  YY_RULE_SETUP
- #line 955 "dhcp6_lexer.ll"
 -#line 692 "dhcp6_lexer.ll"
++#line 909 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
      }
  }
        YY_BREAK
- case 95:
 -case 67:
++case 90:
  YY_RULE_SETUP
- #line 965 "dhcp6_lexer.ll"
 -#line 702 "dhcp6_lexer.ll"
++#line 919 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::RESERVATIONS:
      }
  }
        YY_BREAK
- case 96:
 -case 68:
++case 91:
  YY_RULE_SETUP
- #line 974 "dhcp6_lexer.ll"
 -#line 711 "dhcp6_lexer.ll"
++#line 928 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 97:
 -case 69:
++case 92:
  YY_RULE_SETUP
- #line 984 "dhcp6_lexer.ll"
 -#line 721 "dhcp6_lexer.ll"
++#line 938 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DATA:
      }
  }
        YY_BREAK
- case 98:
 -case 70:
++case 93:
  YY_RULE_SETUP
- #line 993 "dhcp6_lexer.ll"
 -#line 730 "dhcp6_lexer.ll"
++#line 947 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 99:
 -case 71:
++case 94:
  YY_RULE_SETUP
- #line 1002 "dhcp6_lexer.ll"
 -#line 739 "dhcp6_lexer.ll"
++#line 956 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 100:
 -case 72:
++case 95:
  YY_RULE_SETUP
- #line 1011 "dhcp6_lexer.ll"
 -#line 748 "dhcp6_lexer.ll"
++#line 965 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::OPTION_DEF:
      }
  }
        YY_BREAK
- case 101:
 -case 73:
++case 96:
  YY_RULE_SETUP
- #line 1020 "dhcp6_lexer.ll"
 -#line 757 "dhcp6_lexer.ll"
++#line 974 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SUBNET6:
      }
  }
        YY_BREAK
- case 102:
 -case 74:
++case 97:
  YY_RULE_SETUP
- #line 1029 "dhcp6_lexer.ll"
 -#line 766 "dhcp6_lexer.ll"
++#line 983 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::RELAY:
      }
  }
        YY_BREAK
- case 103:
 -case 75:
++case 98:
  YY_RULE_SETUP
- #line 1038 "dhcp6_lexer.ll"
 -#line 775 "dhcp6_lexer.ll"
++#line 992 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 104:
 -case 76:
++case 99:
  YY_RULE_SETUP
- #line 1048 "dhcp6_lexer.ll"
 -#line 785 "dhcp6_lexer.ll"
++#line 1002 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
      }
  }
        YY_BREAK
- case 105:
 -case 77:
++case 100:
  YY_RULE_SETUP
- #line 1057 "dhcp6_lexer.ll"
 -#line 794 "dhcp6_lexer.ll"
++#line 1011 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
      }
  }
        YY_BREAK
- case 106:
 -case 78:
++case 101:
  YY_RULE_SETUP
- #line 1066 "dhcp6_lexer.ll"
 -#line 803 "dhcp6_lexer.ll"
++#line 1020 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 107:
 -case 79:
++case 102:
  YY_RULE_SETUP
- #line 1075 "dhcp6_lexer.ll"
 -#line 812 "dhcp6_lexer.ll"
++#line 1029 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DUID_TYPE:
      }
  }
        YY_BREAK
- case 108:
 -case 80:
++case 103:
  YY_RULE_SETUP
- #line 1084 "dhcp6_lexer.ll"
 -#line 821 "dhcp6_lexer.ll"
++#line 1038 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DUID_TYPE:
      }
  }
        YY_BREAK
- case 109:
 -case 81:
++case 104:
  YY_RULE_SETUP
- #line 1093 "dhcp6_lexer.ll"
 -#line 830 "dhcp6_lexer.ll"
++#line 1047 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DUID_TYPE:
      }
  }
        YY_BREAK
- case 110:
 -case 82:
++case 105:
  YY_RULE_SETUP
- #line 1102 "dhcp6_lexer.ll"
 -#line 839 "dhcp6_lexer.ll"
++#line 1056 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SERVER_ID:
      }
  }
        YY_BREAK
- case 111:
 -case 83:
++case 106:
  YY_RULE_SETUP
- #line 1111 "dhcp6_lexer.ll"
 -#line 848 "dhcp6_lexer.ll"
++#line 1065 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SERVER_ID:
      }
  }
        YY_BREAK
- case 112:
 -case 84:
++case 107:
  YY_RULE_SETUP
- #line 1120 "dhcp6_lexer.ll"
 -#line 857 "dhcp6_lexer.ll"
++#line 1074 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SERVER_ID:
      }
  }
        YY_BREAK
- case 113:
 -case 85:
++case 108:
  YY_RULE_SETUP
- #line 1129 "dhcp6_lexer.ll"
 -#line 866 "dhcp6_lexer.ll"
++#line 1083 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::SERVER_ID:
      }
  }
        YY_BREAK
- case 114:
 -case 86:
++case 109:
  YY_RULE_SETUP
- #line 1138 "dhcp6_lexer.ll"
 -#line 875 "dhcp6_lexer.ll"
++#line 1092 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 115:
 -case 87:
++case 110:
  YY_RULE_SETUP
- #line 1147 "dhcp6_lexer.ll"
 -#line 884 "dhcp6_lexer.ll"
++#line 1101 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
- case 116:
 -case 88:
++case 111:
  YY_RULE_SETUP
- #line 1156 "dhcp6_lexer.ll"
 -#line 893 "dhcp6_lexer.ll"
++#line 1110 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
- case 117:
 -case 89:
++case 112:
  YY_RULE_SETUP
- #line 1165 "dhcp6_lexer.ll"
 -#line 902 "dhcp6_lexer.ll"
++#line 1119 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
- case 118:
 -case 90:
++case 113:
  YY_RULE_SETUP
- #line 1174 "dhcp6_lexer.ll"
 -#line 911 "dhcp6_lexer.ll"
++#line 1128 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
- case 119:
 -case 91:
++case 114:
  YY_RULE_SETUP
- #line 1183 "dhcp6_lexer.ll"
 -#line 920 "dhcp6_lexer.ll"
++#line 1137 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
- case 120:
 -case 92:
++case 115:
  YY_RULE_SETUP
- #line 1192 "dhcp6_lexer.ll"
 -#line 929 "dhcp6_lexer.ll"
++#line 1146 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
      }
  }
        YY_BREAK
- case 121:
 -case 93:
++case 116:
  YY_RULE_SETUP
- #line 1201 "dhcp6_lexer.ll"
 -#line 938 "dhcp6_lexer.ll"
++#line 1155 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 122:
 -case 94:
++case 117:
  YY_RULE_SETUP
- #line 1210 "dhcp6_lexer.ll"
 -#line 947 "dhcp6_lexer.ll"
++#line 1164 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 123:
 -case 95:
++case 118:
  YY_RULE_SETUP
- #line 1219 "dhcp6_lexer.ll"
 -#line 956 "dhcp6_lexer.ll"
++#line 1173 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::CONTROL_SOCKET:
      }
  }
        YY_BREAK
- case 124:
 -case 96:
++case 119:
  YY_RULE_SETUP
- #line 1228 "dhcp6_lexer.ll"
 -#line 965 "dhcp6_lexer.ll"
++#line 1182 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::CONTROL_SOCKET:
      }
  }
        YY_BREAK
- case 125:
 -case 97:
++case 120:
  YY_RULE_SETUP
- #line 1237 "dhcp6_lexer.ll"
 -#line 974 "dhcp6_lexer.ll"
++#line 1191 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::DHCP6:
      }
  }
        YY_BREAK
- case 126:
 -case 98:
++case 121:
  YY_RULE_SETUP
- #line 1246 "dhcp6_lexer.ll"
 -#line 983 "dhcp6_lexer.ll"
++#line 1200 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::CONFIG:
      }
  }
        YY_BREAK
- case 127:
 -case 99:
++case 122:
  YY_RULE_SETUP
- #line 1255 "dhcp6_lexer.ll"
 -#line 992 "dhcp6_lexer.ll"
++#line 1209 "dhcp6_lexer.ll"
  {
      switch(driver.ctx_) {
      case isc::dhcp::Parser6Context::CONFIG:
      }
  }
        YY_BREAK
- case 128:
 -case 100:
++case 123:
  YY_RULE_SETUP
- #line 1264 "dhcp6_lexer.ll"
 -#line 1001 "dhcp6_lexer.ll"
++#line 1218 "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.
      return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
  }
        YY_BREAK
- case 129:
- /* rule 129 can match eol */
 -case 101:
 -/* rule 101 can match eol */
++case 124:
++/* rule 124 can match eol */
  YY_RULE_SETUP
- #line 1362 "dhcp6_lexer.ll"
 -#line 1099 "dhcp6_lexer.ll"
++#line 1316 "dhcp6_lexer.ll"
  {
      // Bad string with a forbidden control character inside
      driver.error(driver.loc_, "Invalid control in " + std::string(parser6_text));
  }
        YY_BREAK
- case 130:
- /* rule 130 can match eol */
 -case 102:
 -/* rule 102 can match eol */
++case 125:
++/* rule 125 can match eol */
  YY_RULE_SETUP
- #line 1367 "dhcp6_lexer.ll"
 -#line 1104 "dhcp6_lexer.ll"
++#line 1321 "dhcp6_lexer.ll"
  {
      // Bad string with a bad escape inside
      driver.error(driver.loc_, "Bad escape in " + std::string(parser6_text));
  }
        YY_BREAK
- case 131:
 -case 103:
++case 126:
  YY_RULE_SETUP
- #line 1372 "dhcp6_lexer.ll"
 -#line 1109 "dhcp6_lexer.ll"
++#line 1326 "dhcp6_lexer.ll"
  {
      // Bad string with an open escape at the end
      driver.error(driver.loc_, "Overflow escape in " + std::string(parser6_text));
  }
        YY_BREAK
- case 132:
 -case 104:
++case 127:
  YY_RULE_SETUP
- #line 1377 "dhcp6_lexer.ll"
 -#line 1114 "dhcp6_lexer.ll"
++#line 1331 "dhcp6_lexer.ll"
  { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
- case 133:
 -case 105:
++case 128:
  YY_RULE_SETUP
- #line 1378 "dhcp6_lexer.ll"
 -#line 1115 "dhcp6_lexer.ll"
++#line 1332 "dhcp6_lexer.ll"
  { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
- case 134:
 -case 106:
++case 129:
  YY_RULE_SETUP
- #line 1379 "dhcp6_lexer.ll"
 -#line 1116 "dhcp6_lexer.ll"
++#line 1333 "dhcp6_lexer.ll"
  { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
- case 135:
 -case 107:
++case 130:
  YY_RULE_SETUP
- #line 1380 "dhcp6_lexer.ll"
 -#line 1117 "dhcp6_lexer.ll"
++#line 1334 "dhcp6_lexer.ll"
  { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
- case 136:
 -case 108:
++case 131:
  YY_RULE_SETUP
- #line 1381 "dhcp6_lexer.ll"
 -#line 1118 "dhcp6_lexer.ll"
++#line 1335 "dhcp6_lexer.ll"
  { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
- case 137:
 -case 109:
++case 132:
  YY_RULE_SETUP
- #line 1382 "dhcp6_lexer.ll"
 -#line 1119 "dhcp6_lexer.ll"
++#line 1336 "dhcp6_lexer.ll"
  { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
- case 138:
 -case 110:
++case 133:
  YY_RULE_SETUP
- #line 1384 "dhcp6_lexer.ll"
 -#line 1121 "dhcp6_lexer.ll"
++#line 1338 "dhcp6_lexer.ll"
  {
      // An integer was found.
      std::string tmp(parser6_text);
      return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
  }
        YY_BREAK
- case 139:
 -case 111:
++case 134:
  YY_RULE_SETUP
- #line 1402 "dhcp6_lexer.ll"
 -#line 1139 "dhcp6_lexer.ll"
++#line 1356 "dhcp6_lexer.ll"
  {
      // A floating point was found.
      std::string tmp(parser6_text);
      return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
  }
        YY_BREAK
- case 140:
 -case 112:
++case 135:
  YY_RULE_SETUP
- #line 1415 "dhcp6_lexer.ll"
 -#line 1152 "dhcp6_lexer.ll"
++#line 1369 "dhcp6_lexer.ll"
  {
      string tmp(parser6_text);
      return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
  }
        YY_BREAK
- case 141:
 -case 113:
++case 136:
  YY_RULE_SETUP
- #line 1420 "dhcp6_lexer.ll"
 -#line 1157 "dhcp6_lexer.ll"
++#line 1374 "dhcp6_lexer.ll"
  {
     return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
  }
        YY_BREAK
- case 142:
 -case 114:
++case 137:
  YY_RULE_SETUP
- #line 1424 "dhcp6_lexer.ll"
 -#line 1161 "dhcp6_lexer.ll"
++#line 1378 "dhcp6_lexer.ll"
  driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
- case 143:
 -case 115:
++case 138:
  YY_RULE_SETUP
- #line 1426 "dhcp6_lexer.ll"
 -#line 1163 "dhcp6_lexer.ll"
++#line 1380 "dhcp6_lexer.ll"
  driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
- case 144:
 -case 116:
++case 139:
  YY_RULE_SETUP
- #line 1428 "dhcp6_lexer.ll"
 -#line 1165 "dhcp6_lexer.ll"
++#line 1382 "dhcp6_lexer.ll"
  driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
- case 145:
 -case 117:
++case 140:
  YY_RULE_SETUP
- #line 1430 "dhcp6_lexer.ll"
 -#line 1167 "dhcp6_lexer.ll"
++#line 1384 "dhcp6_lexer.ll"
  driver.error (driver.loc_, "Invalid character: " + std::string(parser6_text));
        YY_BREAK
  case YY_STATE_EOF(INITIAL):
- #line 1432 "dhcp6_lexer.ll"
 -#line 1169 "dhcp6_lexer.ll"
++#line 1386 "dhcp6_lexer.ll"
  {
      if (driver.states_.empty()) {
          return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
      BEGIN(DIR_EXIT);
  }
        YY_BREAK
- case 146:
 -case 118:
++case 141:
  YY_RULE_SETUP
- #line 1455 "dhcp6_lexer.ll"
 -#line 1192 "dhcp6_lexer.ll"
++#line 1409 "dhcp6_lexer.ll"
  ECHO;
        YY_BREAK
- #line 3567 "dhcp6_lexer.cc"
 -#line 3049 "dhcp6_lexer.cc"
++#line 3483 "dhcp6_lexer.cc"
  
        case YY_END_OF_BUFFER:
                {
@@@ -3880,7 -3362,7 +3796,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 >= 1172 )
 -                      if ( yy_current_state >= 898 )
++                      if ( yy_current_state >= 1135 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
        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 >= 1172 )
 -              if ( yy_current_state >= 898 )
++              if ( yy_current_state >= 1135 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
-       yy_is_jam = (yy_current_state == 1171);
 -      yy_is_jam = (yy_current_state == 897);
++      yy_is_jam = (yy_current_state == 1134);
  
                return yy_is_jam ? 0 : yy_current_state;
  }
@@@ -4666,7 -4148,7 +4582,7 @@@ void parser6_free (void * ptr 
  
  /* %ok-for-header */
  
- #line 1455 "dhcp6_lexer.ll"
 -#line 1192 "dhcp6_lexer.ll"
++#line 1409 "dhcp6_lexer.ll"
  
  
  
Simple merge
index 5cdc4c4b68271488fec48fc2cdfa3531d4aedd26,84e809cba35e8bf71e60afac5fbaf299ca9fc28c..5c026ca972a135b4cb1921a948869e5c3b345131
@@@ -253,27 -253,25 +253,26 @@@ namespace isc { namespace dhcp 
    {
        switch (that.type_get ())
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          value.move< ElementPtr > (that.value);
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          value.move< bool > (that.value);
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          value.move< double > (that.value);
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          value.move< int64_t > (that.value);
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          value.move< std::string > (that.value);
          break;
  
      state = that.state;
        switch (that.type_get ())
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          value.copy< ElementPtr > (that.value);
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          value.copy< bool > (that.value);
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          value.copy< double > (that.value);
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          value.copy< int64_t > (that.value);
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          value.copy< std::string > (that.value);
          break;
  
          << yysym.location << ": ";
      switch (yytype)
      {
-             case 136: // "constant string"
 -            case 109: // "constant string"
++            case 131: // "constant string"
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< std::string > (); }
- #line 360 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 356 "dhcp6_parser.cc" // lalr1.cc:636
++#line 358 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< int64_t > (); }
- #line 367 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 363 "dhcp6_parser.cc" // lalr1.cc:636
++#line 365 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< double > (); }
- #line 374 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 370 "dhcp6_parser.cc" // lalr1.cc:636
++#line 372 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< bool > (); }
- #line 381 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 377 "dhcp6_parser.cc" // lalr1.cc:636
++#line 379 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
-       case 154: // value
 -      case 126: // value
++      case 149: // value
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 388 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 384 "dhcp6_parser.cc" // lalr1.cc:636
++#line 386 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
-       case 198: // db_type
 -      case 130: // map_value
++      case 376: // duid_type
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 395 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 391 "dhcp6_parser.cc" // lalr1.cc:636
++#line 393 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
-       case 383: // duid_type
 -      case 354: // duid_type
++      case 409: // ncr_protocol_value
  
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
 -#line 201 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
          { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 402 "dhcp6_parser.cc" // lalr1.cc:636
 -#line 398 "dhcp6_parser.cc" // lalr1.cc:636
++#line 400 "dhcp6_parser.cc" // lalr1.cc:636
 +        break;
 +
-       case 416: // ncr_protocol_value
++      case 418: // replace_client_name_value
 +
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
++#line 204 "dhcp6_parser.yy" // lalr1.cc:636
 +        { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 409 "dhcp6_parser.cc" // lalr1.cc:636
-         break;
-       case 425: // replace_client_name_value
- #line 210 "dhcp6_parser.yy" // lalr1.cc:636
-         { yyoutput << yysym.value.template as< ElementPtr > (); }
- #line 416 "dhcp6_parser.cc" // lalr1.cc:636
++#line 407 "dhcp6_parser.cc" // lalr1.cc:636
          break;
  
  
           when using variants.  */
          switch (yyr1_[yyn])
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          yylhs.value.build< ElementPtr > ();
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          yylhs.value.build< bool > ();
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          yylhs.value.build< double > ();
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          yylhs.value.build< int64_t > ();
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          yylhs.value.build< std::string > ();
          break;
  
            switch (yyn)
              {
    case 2:
- #line 219 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 210 "dhcp6_parser.yy" // lalr1.cc:859
++#line 213 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.NO_KEYWORD; }
- #line 660 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 640 "dhcp6_parser.cc" // lalr1.cc:859
++#line 650 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 4:
- #line 220 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 211 "dhcp6_parser.yy" // lalr1.cc:859
++#line 214 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.CONFIG; }
- #line 666 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 646 "dhcp6_parser.cc" // lalr1.cc:859
++#line 656 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 6:
- #line 221 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 212 "dhcp6_parser.yy" // lalr1.cc:859
++#line 215 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.DHCP6; }
- #line 672 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 652 "dhcp6_parser.cc" // lalr1.cc:859
++#line 662 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 8:
- #line 222 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 213 "dhcp6_parser.yy" // lalr1.cc:859
++#line 216 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
- #line 678 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 658 "dhcp6_parser.cc" // lalr1.cc:859
++#line 668 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 10:
- #line 223 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 214 "dhcp6_parser.yy" // lalr1.cc:859
++#line 217 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.SUBNET6; }
- #line 684 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 664 "dhcp6_parser.cc" // lalr1.cc:859
++#line 674 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 12:
- #line 224 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 215 "dhcp6_parser.yy" // lalr1.cc:859
++#line 218 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.POOLS; }
- #line 690 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 670 "dhcp6_parser.cc" // lalr1.cc:859
++#line 680 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 14:
- #line 225 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 216 "dhcp6_parser.yy" // lalr1.cc:859
++#line 219 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.PD_POOLS; }
- #line 696 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 676 "dhcp6_parser.cc" // lalr1.cc:859
++#line 686 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 16:
- #line 226 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 217 "dhcp6_parser.yy" // lalr1.cc:859
++#line 220 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.RESERVATIONS; }
- #line 702 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 682 "dhcp6_parser.cc" // lalr1.cc:859
++#line 692 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 18:
- #line 227 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 218 "dhcp6_parser.yy" // lalr1.cc:859
++#line 221 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.OPTION_DEF; }
- #line 708 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 688 "dhcp6_parser.cc" // lalr1.cc:859
++#line 698 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 20:
- #line 228 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 219 "dhcp6_parser.yy" // lalr1.cc:859
++#line 222 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.OPTION_DATA; }
- #line 714 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 694 "dhcp6_parser.cc" // lalr1.cc:859
++#line 704 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 22:
- #line 229 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 220 "dhcp6_parser.yy" // lalr1.cc:859
++#line 223 "dhcp6_parser.yy" // lalr1.cc:859
      { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
- #line 720 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 700 "dhcp6_parser.cc" // lalr1.cc:859
++#line 710 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
    case 24:
- #line 230 "dhcp6_parser.yy" // lalr1.cc:859
 -#line 228 "dhcp6_parser.yy" // lalr1.cc:859
++#line 224 "dhcp6_parser.yy" // lalr1.cc:859
 +    { ctx.ctx_ = ctx.DHCP_DDNS; }
- #line 726 "dhcp6_parser.cc" // lalr1.cc:859
++#line 716 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
 +  case 26:
- #line 238 "dhcp6_parser.yy" // lalr1.cc:859
++#line 232 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
- #line 732 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 706 "dhcp6_parser.cc" // lalr1.cc:859
++#line 722 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 25:
 -#line 229 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 27:
- #line 239 "dhcp6_parser.yy" // lalr1.cc:859
++#line 233 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
- #line 738 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 712 "dhcp6_parser.cc" // lalr1.cc:859
++#line 728 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 26:
 -#line 230 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 28:
- #line 240 "dhcp6_parser.yy" // lalr1.cc:859
++#line 234 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
- #line 744 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 718 "dhcp6_parser.cc" // lalr1.cc:859
++#line 734 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 27:
 -#line 231 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 29:
- #line 241 "dhcp6_parser.yy" // lalr1.cc:859
++#line 235 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
- #line 750 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 724 "dhcp6_parser.cc" // lalr1.cc:859
++#line 740 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 28:
 -#line 232 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 30:
- #line 242 "dhcp6_parser.yy" // lalr1.cc:859
++#line 236 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
- #line 756 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 730 "dhcp6_parser.cc" // lalr1.cc:859
++#line 746 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 29:
 -#line 233 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 31:
- #line 243 "dhcp6_parser.yy" // lalr1.cc:859
++#line 237 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
- #line 762 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 736 "dhcp6_parser.cc" // lalr1.cc:859
++#line 752 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 30:
 -#line 234 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 32:
- #line 244 "dhcp6_parser.yy" // lalr1.cc:859
++#line 238 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
- #line 768 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 742 "dhcp6_parser.cc" // lalr1.cc:859
++#line 758 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 31:
 -#line 237 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 33:
- #line 247 "dhcp6_parser.yy" // lalr1.cc:859
++#line 241 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Push back the JSON value on the stack
      ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
  }
- #line 777 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 751 "dhcp6_parser.cc" // lalr1.cc:859
++#line 767 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 32:
 -#line 242 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 34:
- #line 252 "dhcp6_parser.yy" // lalr1.cc:859
++#line 246 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // This code is executed when we're about to start parsing
      // the content of the map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 788 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 762 "dhcp6_parser.cc" // lalr1.cc:859
++#line 778 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 33:
 -#line 247 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 35:
- #line 257 "dhcp6_parser.yy" // lalr1.cc:859
++#line 251 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // map parsing completed. If we ever want to do any wrap up
      // (maybe some sanity checking), this would be the best place
      // for it.
  }
- #line 798 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 772 "dhcp6_parser.cc" // lalr1.cc:859
++#line 788 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 34:
 -#line 253 "dhcp6_parser.yy" // lalr1.cc:859
 -    { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 -#line 778 "dhcp6_parser.cc" // lalr1.cc:859
 -    break;
 -
 -  case 37:
 -#line 260 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 38:
- #line 268 "dhcp6_parser.yy" // lalr1.cc:859
++#line 262 "dhcp6_parser.yy" // lalr1.cc:859
      {
                    // map containing a single entry
                    ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
                    }
- #line 807 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 787 "dhcp6_parser.cc" // lalr1.cc:859
++#line 797 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 38:
 -#line 264 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 39:
- #line 272 "dhcp6_parser.yy" // lalr1.cc:859
++#line 266 "dhcp6_parser.yy" // lalr1.cc:859
      {
                    // map consisting of a shorter map followed by
                    // comma and string:value
                    ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
                    }
- #line 817 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 797 "dhcp6_parser.cc" // lalr1.cc:859
++#line 807 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 39:
 -#line 271 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 40:
- #line 279 "dhcp6_parser.yy" // lalr1.cc:859
++#line 273 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(l);
  }
- #line 826 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 806 "dhcp6_parser.cc" // lalr1.cc:859
++#line 816 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 40:
 -#line 274 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 41:
- #line 282 "dhcp6_parser.yy" // lalr1.cc:859
++#line 276 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // list parsing complete. Put any sanity checking here
  }
- #line 834 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 814 "dhcp6_parser.cc" // lalr1.cc:859
++#line 824 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 41:
 -#line 279 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 44:
- #line 290 "dhcp6_parser.yy" // lalr1.cc:859
++#line 284 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +                  // List consisting of a single element.
 +                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 +                  }
- #line 843 "dhcp6_parser.cc" // lalr1.cc:859
++#line 833 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
 +  case 45:
- #line 294 "dhcp6_parser.yy" // lalr1.cc:859
++#line 288 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +                  // List ending with , and a value.
 +                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 +                  }
- #line 852 "dhcp6_parser.cc" // lalr1.cc:859
++#line 842 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
 +  case 46:
- #line 301 "dhcp6_parser.yy" // lalr1.cc:859
++#line 295 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // List parsing about to start
  }
- #line 860 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 822 "dhcp6_parser.cc" // lalr1.cc:859
++#line 850 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 42:
 -#line 281 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 47:
- #line 303 "dhcp6_parser.yy" // lalr1.cc:859
++#line 297 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // list parsing complete. Put any sanity checking here
      //ctx.stack_.pop_back();
  }
- #line 869 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 831 "dhcp6_parser.cc" // lalr1.cc:859
++#line 859 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 45:
 -#line 290 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 50:
- #line 312 "dhcp6_parser.yy" // lalr1.cc:859
++#line 306 "dhcp6_parser.yy" // lalr1.cc:859
      {
 -                  // List consisting of a single element.
 -                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 -                  }
 -#line 840 "dhcp6_parser.cc" // lalr1.cc:859
 +                          ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
 +                          ctx.stack_.back()->add(s);
 +                          }
- #line 878 "dhcp6_parser.cc" // lalr1.cc:859
++#line 868 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 46:
 -#line 294 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 51:
- #line 316 "dhcp6_parser.yy" // lalr1.cc:859
++#line 310 "dhcp6_parser.yy" // lalr1.cc:859
      {
 -                  // List ending with , and a value.
 -                  ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
 -                  }
 -#line 849 "dhcp6_parser.cc" // lalr1.cc:859
 +                          ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
 +                          ctx.stack_.back()->add(s);
 +                          }
- #line 887 "dhcp6_parser.cc" // lalr1.cc:859
++#line 877 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 47:
 -#line 305 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 52:
- #line 327 "dhcp6_parser.yy" // lalr1.cc:859
++#line 321 "dhcp6_parser.yy" // lalr1.cc:859
      {
      const std::string& where = ctx.contextName();
      const std::string& keyword = yystack_[1].value.as< std::string > ();
      error(yystack_[1].location,
            "got unexpected keyword \"" + keyword + "\" in " + where + " map.");
  }
- #line 898 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 860 "dhcp6_parser.cc" // lalr1.cc:859
++#line 888 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 48:
 -#line 315 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 53:
- #line 337 "dhcp6_parser.yy" // lalr1.cc:859
++#line 331 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // This code is executed when we're about to start parsing
      // the content of the map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 909 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 871 "dhcp6_parser.cc" // lalr1.cc:859
++#line 899 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 49:
 -#line 320 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 54:
- #line 342 "dhcp6_parser.yy" // lalr1.cc:859
++#line 336 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // map parsing completed. If we ever want to do any wrap up
      // (maybe some sanity checking), this would be the best place
      // for it.
  }
- #line 919 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 881 "dhcp6_parser.cc" // lalr1.cc:859
++#line 909 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 57:
 -#line 339 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 62:
- #line 361 "dhcp6_parser.yy" // lalr1.cc:859
++#line 355 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // This code is executed when we're about to start parsing
      // the content of the map
      ctx.stack_.push_back(m);
      ctx.enter(ctx.DHCP6);
  }
- #line 932 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 894 "dhcp6_parser.cc" // lalr1.cc:859
++#line 922 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 58:
 -#line 346 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 63:
- #line 368 "dhcp6_parser.yy" // lalr1.cc:859
++#line 362 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // map parsing completed. If we ever want to do any wrap up
      // (maybe some sanity checking), this would be the best place
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 944 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 906 "dhcp6_parser.cc" // lalr1.cc:859
++#line 934 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 59:
 -#line 356 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 64:
- #line 378 "dhcp6_parser.yy" // lalr1.cc:859
++#line 372 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the Dhcp6 map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 954 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 916 "dhcp6_parser.cc" // lalr1.cc:859
++#line 944 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 60:
 -#line 360 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 65:
- #line 382 "dhcp6_parser.yy" // lalr1.cc:859
++#line 376 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 962 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 924 "dhcp6_parser.cc" // lalr1.cc:859
++#line 952 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 85:
 -#line 394 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 90:
- #line 416 "dhcp6_parser.yy" // lalr1.cc:859
++#line 410 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("preferred-lifetime", prf);
  }
- #line 971 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 933 "dhcp6_parser.cc" // lalr1.cc:859
++#line 961 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 86:
 -#line 399 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 91:
- #line 421 "dhcp6_parser.yy" // lalr1.cc:859
++#line 415 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("valid-lifetime", prf);
  }
- #line 980 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 942 "dhcp6_parser.cc" // lalr1.cc:859
++#line 970 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 87:
 -#line 404 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 92:
- #line 426 "dhcp6_parser.yy" // lalr1.cc:859
++#line 420 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("renew-timer", prf);
  }
- #line 989 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 951 "dhcp6_parser.cc" // lalr1.cc:859
++#line 979 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 88:
 -#line 409 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 93:
- #line 431 "dhcp6_parser.yy" // lalr1.cc:859
++#line 425 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("rebind-timer", prf);
  }
- #line 998 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 960 "dhcp6_parser.cc" // lalr1.cc:859
++#line 988 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 89:
 -#line 414 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 94:
- #line 436 "dhcp6_parser.yy" // lalr1.cc:859
++#line 430 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("decline-probation-period", dpp);
  }
- #line 1007 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 969 "dhcp6_parser.cc" // lalr1.cc:859
++#line 997 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 90:
 -#line 419 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 95:
- #line 441 "dhcp6_parser.yy" // lalr1.cc:859
++#line 435 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("interfaces-config", i);
      ctx.stack_.push_back(i);
      ctx.enter(ctx.INTERFACES_CONFIG);
  }
- #line 1018 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 980 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1008 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 91:
 -#line 424 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 96:
- #line 446 "dhcp6_parser.yy" // lalr1.cc:859
++#line 440 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1027 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 989 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1017 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 92:
 -#line 429 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 97:
- #line 451 "dhcp6_parser.yy" // lalr1.cc:859
++#line 445 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the interfaces-config map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1037 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 999 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1027 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 93:
 -#line 433 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 98:
- #line 455 "dhcp6_parser.yy" // lalr1.cc:859
++#line 449 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1045 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1007 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1035 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 94:
 -#line 437 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 99:
- #line 459 "dhcp6_parser.yy" // lalr1.cc:859
++#line 453 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("interfaces", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1056 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1018 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1046 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 95:
 -#line 442 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 100:
- #line 464 "dhcp6_parser.yy" // lalr1.cc:859
++#line 458 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1065 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1027 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1055 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 96:
 -#line 447 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 101:
- #line 469 "dhcp6_parser.yy" // lalr1.cc:859
++#line 463 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("lease-database", i);
      ctx.stack_.push_back(i);
      ctx.enter(ctx.LEASE_DATABASE);
  }
- #line 1076 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1038 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1066 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 97:
 -#line 452 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 102:
- #line 474 "dhcp6_parser.yy" // lalr1.cc:859
++#line 468 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1085 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1047 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1075 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 98:
 -#line 457 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 103:
- #line 479 "dhcp6_parser.yy" // lalr1.cc:859
++#line 473 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hosts-database", i);
      ctx.stack_.push_back(i);
      ctx.enter(ctx.HOSTS_DATABASE);
  }
- #line 1096 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1058 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1086 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
 -  case 99:
 -#line 462 "dhcp6_parser.yy" // lalr1.cc:859
 +  case 104:
- #line 484 "dhcp6_parser.yy" // lalr1.cc:859
++#line 478 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1105 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1067 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1095 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 117:
- #line 505 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 111:
 -#line 482 "dhcp6_parser.yy" // lalr1.cc:859
++  case 116:
++#line 498 "dhcp6_parser.yy" // lalr1.cc:859
      {
-     ctx.enter(ctx.DATABASE_TYPE);
+     ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1113 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1075 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1103 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 118:
- #line 507 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 112:
 -#line 484 "dhcp6_parser.yy" // lalr1.cc:859
++  case 117:
++#line 500 "dhcp6_parser.yy" // lalr1.cc:859
      {
-     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
+     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+     ctx.stack_.back()->set("type", prf);
      ctx.leave();
  }
- #line 1122 "dhcp6_parser.cc" // lalr1.cc:859
-     break;
-   case 119:
- #line 512 "dhcp6_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
- #line 1128 "dhcp6_parser.cc" // lalr1.cc:859
-     break;
-   case 120:
- #line 513 "dhcp6_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
- #line 1134 "dhcp6_parser.cc" // lalr1.cc:859
-     break;
-   case 121:
- #line 514 "dhcp6_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
- #line 1140 "dhcp6_parser.cc" // lalr1.cc:859
-     break;
-   case 122:
- #line 515 "dhcp6_parser.yy" // lalr1.cc:859
-     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
- #line 1146 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1085 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1113 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 123:
- #line 518 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 113:
 -#line 490 "dhcp6_parser.yy" // lalr1.cc:859
++  case 118:
++#line 506 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1154 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1093 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1121 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 124:
- #line 520 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 114:
 -#line 492 "dhcp6_parser.yy" // lalr1.cc:859
++  case 119:
++#line 508 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("user", user);
      ctx.leave();
  }
- #line 1164 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1103 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1131 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 125:
- #line 526 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 115:
 -#line 498 "dhcp6_parser.yy" // lalr1.cc:859
++  case 120:
++#line 514 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1172 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1111 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1139 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 126:
- #line 528 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 116:
 -#line 500 "dhcp6_parser.yy" // lalr1.cc:859
++  case 121:
++#line 516 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("password", pwd);
      ctx.leave();
  }
- #line 1182 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1121 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1149 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 127:
- #line 534 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 117:
 -#line 506 "dhcp6_parser.yy" // lalr1.cc:859
++  case 122:
++#line 522 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1190 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1129 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1157 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 128:
- #line 536 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 118:
 -#line 508 "dhcp6_parser.yy" // lalr1.cc:859
++  case 123:
++#line 524 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("host", h);
      ctx.leave();
  }
- #line 1200 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1139 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1167 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 129:
- #line 542 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 119:
 -#line 514 "dhcp6_parser.yy" // lalr1.cc:859
++  case 124:
++#line 530 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1208 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1147 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1175 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 130:
- #line 544 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 120:
 -#line 516 "dhcp6_parser.yy" // lalr1.cc:859
++  case 125:
++#line 532 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("name", name);
      ctx.leave();
  }
- #line 1218 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1157 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1185 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 131:
- #line 550 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 121:
 -#line 522 "dhcp6_parser.yy" // lalr1.cc:859
++  case 126:
++#line 538 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("persist", n);
  }
- #line 1227 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1166 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1194 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 132:
- #line 555 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 122:
 -#line 527 "dhcp6_parser.yy" // lalr1.cc:859
++  case 127:
++#line 543 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("lfc-interval", n);
  }
- #line 1236 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1175 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1203 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 133:
- #line 560 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 123:
 -#line 532 "dhcp6_parser.yy" // lalr1.cc:859
++  case 128:
++#line 548 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("readonly", n);
  }
- #line 1245 "dhcp6_parser.cc" // lalr1.cc:859
-     break;
-   case 134:
- #line 565 "dhcp6_parser.yy" // lalr1.cc:859
-     {
-     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
-     ctx.stack_.back()->set("connect-timeout", n);
- }
- #line 1254 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1184 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1212 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 135:
- #line 570 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 124:
 -#line 537 "dhcp6_parser.yy" // lalr1.cc:859
++  case 129:
++#line 553 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("mac-sources", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.MAC_SOURCES);
  }
- #line 1265 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1195 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1223 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 136:
- #line 575 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 125:
 -#line 542 "dhcp6_parser.yy" // lalr1.cc:859
++  case 130:
++#line 558 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1274 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1204 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1232 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 141:
- #line 588 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 130:
 -#line 555 "dhcp6_parser.yy" // lalr1.cc:859
++  case 135:
++#line 571 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(duid);
  }
- #line 1283 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1213 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1241 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 142:
- #line 593 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 131:
 -#line 560 "dhcp6_parser.yy" // lalr1.cc:859
++  case 136:
++#line 576 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(duid);
  }
- #line 1292 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1222 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1250 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 143:
- #line 598 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 132:
 -#line 565 "dhcp6_parser.yy" // lalr1.cc:859
++  case 137:
++#line 581 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("host-reservation-identifiers", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
  }
- #line 1303 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1233 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1261 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 144:
- #line 603 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 133:
 -#line 570 "dhcp6_parser.yy" // lalr1.cc:859
++  case 138:
++#line 586 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1312 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1242 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1270 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 149:
- #line 616 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 138:
 -#line 583 "dhcp6_parser.yy" // lalr1.cc:859
++  case 143:
++#line 599 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(hwaddr);
  }
- #line 1321 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1251 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1279 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 150:
- #line 623 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 139:
 -#line 588 "dhcp6_parser.yy" // lalr1.cc:859
++  case 144:
++#line 606 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("relay-supplied-options", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1332 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1262 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1290 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 151:
- #line 628 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 140:
 -#line 593 "dhcp6_parser.yy" // lalr1.cc:859
++  case 145:
++#line 611 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1341 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1271 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1299 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 152:
- #line 633 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 141:
 -#line 598 "dhcp6_parser.yy" // lalr1.cc:859
++  case 146:
++#line 616 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hooks-libraries", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.HOOKS_LIBRARIES);
  }
- #line 1352 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1282 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1310 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 153:
- #line 638 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 142:
 -#line 603 "dhcp6_parser.yy" // lalr1.cc:859
++  case 147:
++#line 621 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1361 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1291 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1319 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 158:
- #line 651 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 147:
 -#line 616 "dhcp6_parser.yy" // lalr1.cc:859
++  case 152:
++#line 634 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1371 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1301 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1329 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 159:
- #line 655 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 148:
 -#line 620 "dhcp6_parser.yy" // lalr1.cc:859
++  case 153:
++#line 638 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1379 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1309 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1337 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 160:
- #line 659 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 149:
 -#line 624 "dhcp6_parser.yy" // lalr1.cc:859
++  case 154:
++#line 642 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the hooks-libraries list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1389 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1319 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1347 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 161:
- #line 663 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 150:
 -#line 628 "dhcp6_parser.yy" // lalr1.cc:859
++  case 155:
++#line 646 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1397 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1327 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1355 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 167:
- #line 676 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 156:
 -#line 641 "dhcp6_parser.yy" // lalr1.cc:859
++  case 161:
++#line 659 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1405 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1335 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1363 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 168:
- #line 678 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 157:
 -#line 643 "dhcp6_parser.yy" // lalr1.cc:859
++  case 162:
++#line 661 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("library", lib);
      ctx.leave();
  }
- #line 1415 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1345 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1373 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 169:
- #line 684 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 158:
 -#line 649 "dhcp6_parser.yy" // lalr1.cc:859
++  case 163:
++#line 667 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1423 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1353 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1381 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 170:
- #line 686 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 159:
 -#line 651 "dhcp6_parser.yy" // lalr1.cc:859
++  case 164:
++#line 669 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 1432 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1362 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1390 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 171:
- #line 692 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 160:
 -#line 657 "dhcp6_parser.yy" // lalr1.cc:859
++  case 165:
++#line 675 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("expired-leases-processing", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
  }
- #line 1443 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1373 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1401 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 172:
- #line 697 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 161:
 -#line 662 "dhcp6_parser.yy" // lalr1.cc:859
++  case 166:
++#line 680 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1452 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1382 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1410 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 181:
- #line 714 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 170:
 -#line 679 "dhcp6_parser.yy" // lalr1.cc:859
++  case 175:
++#line 697 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 1461 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1391 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1419 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 182:
- #line 719 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 171:
 -#line 684 "dhcp6_parser.yy" // lalr1.cc:859
++  case 176:
++#line 702 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 1470 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1400 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1428 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 183:
- #line 724 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 172:
 -#line 689 "dhcp6_parser.yy" // lalr1.cc:859
++  case 177:
++#line 707 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hold-reclaimed-time", value);
  }
- #line 1479 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1409 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1437 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 184:
- #line 729 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 173:
 -#line 694 "dhcp6_parser.yy" // lalr1.cc:859
++  case 178:
++#line 712 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("max-reclaim-leases", value);
  }
- #line 1488 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1418 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1446 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 185:
- #line 734 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 174:
 -#line 699 "dhcp6_parser.yy" // lalr1.cc:859
++  case 179:
++#line 717 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("max-reclaim-time", value);
  }
- #line 1497 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1427 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1455 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 186:
- #line 739 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 175:
 -#line 704 "dhcp6_parser.yy" // lalr1.cc:859
++  case 180:
++#line 722 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
  }
- #line 1506 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1436 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1464 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 187:
- #line 747 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 176:
 -#line 712 "dhcp6_parser.yy" // lalr1.cc:859
++  case 181:
++#line 730 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("subnet6", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.SUBNET6);
  }
- #line 1517 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1447 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1475 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 188:
- #line 752 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 177:
 -#line 717 "dhcp6_parser.yy" // lalr1.cc:859
++  case 182:
++#line 735 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1526 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1456 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1484 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 193:
- #line 772 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 182:
 -#line 737 "dhcp6_parser.yy" // lalr1.cc:859
++  case 187:
++#line 755 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1536 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1466 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1494 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 194:
- #line 776 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 183:
 -#line 741 "dhcp6_parser.yy" // lalr1.cc:859
++  case 188:
++#line 759 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Once we reached this place, the subnet parsing is now complete.
      // If we want to, we can implement default values here.
      // }
      ctx.stack_.pop_back();
  }
- #line 1559 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1489 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1517 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 195:
- #line 795 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 184:
 -#line 760 "dhcp6_parser.yy" // lalr1.cc:859
++  case 189:
++#line 778 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the subnet6 list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1569 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1499 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1527 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 196:
- #line 799 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 185:
 -#line 764 "dhcp6_parser.yy" // lalr1.cc:859
++  case 190:
++#line 782 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1577 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1507 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1535 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 216:
- #line 828 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 205:
 -#line 793 "dhcp6_parser.yy" // lalr1.cc:859
++  case 210:
++#line 811 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1585 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1515 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1543 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 217:
- #line 830 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 206:
 -#line 795 "dhcp6_parser.yy" // lalr1.cc:859
++  case 211:
++#line 813 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("subnet", subnet);
      ctx.leave();
  }
- #line 1595 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1525 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1553 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 218:
- #line 836 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 207:
 -#line 801 "dhcp6_parser.yy" // lalr1.cc:859
++  case 212:
++#line 819 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1603 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1533 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1561 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 219:
- #line 838 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 208:
 -#line 803 "dhcp6_parser.yy" // lalr1.cc:859
++  case 213:
++#line 821 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("interface", iface);
      ctx.leave();
  }
- #line 1613 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1543 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1571 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 220:
- #line 844 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 209:
 -#line 809 "dhcp6_parser.yy" // lalr1.cc:859
++  case 214:
++#line 827 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1621 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1551 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1579 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 221:
- #line 846 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 210:
 -#line 811 "dhcp6_parser.yy" // lalr1.cc:859
++  case 215:
++#line 829 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 1631 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1561 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1589 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 222:
- #line 852 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 211:
 -#line 817 "dhcp6_parser.yy" // lalr1.cc:859
++  case 216:
++#line 835 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.CLIENT_CLASS);
  }
- #line 1639 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1569 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1597 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 223:
- #line 854 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 212:
 -#line 819 "dhcp6_parser.yy" // lalr1.cc:859
++  case 217:
++#line 837 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 1649 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1579 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1607 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 224:
- #line 860 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 213:
 -#line 825 "dhcp6_parser.yy" // lalr1.cc:859
++  case 218:
++#line 843 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1657 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1587 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1615 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 225:
- #line 862 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 214:
 -#line 827 "dhcp6_parser.yy" // lalr1.cc:859
++  case 219:
++#line 845 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("reservation-mode", rm);
      ctx.leave();
  }
- #line 1667 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1597 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1625 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 226:
- #line 868 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 215:
 -#line 833 "dhcp6_parser.yy" // lalr1.cc:859
++  case 220:
++#line 851 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("id", id);
  }
- #line 1676 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1606 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1634 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 227:
- #line 873 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 216:
 -#line 838 "dhcp6_parser.yy" // lalr1.cc:859
++  case 221:
++#line 856 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("rapid-commit", rc);
  }
- #line 1685 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1615 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1643 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 228:
- #line 882 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 217:
 -#line 847 "dhcp6_parser.yy" // lalr1.cc:859
++  case 222:
++#line 865 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("option-def", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.OPTION_DEF);
  }
- #line 1696 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1626 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1654 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 229:
- #line 887 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 218:
 -#line 852 "dhcp6_parser.yy" // lalr1.cc:859
++  case 223:
++#line 870 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1705 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1635 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1663 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 234:
- #line 904 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 223:
 -#line 869 "dhcp6_parser.yy" // lalr1.cc:859
++  case 228:
++#line 887 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1715 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1645 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1673 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 235:
- #line 908 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 224:
 -#line 873 "dhcp6_parser.yy" // lalr1.cc:859
++  case 229:
++#line 891 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1723 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1653 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1681 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 236:
- #line 915 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 225:
 -#line 880 "dhcp6_parser.yy" // lalr1.cc:859
++  case 230:
++#line 898 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the option-def list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1733 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1663 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1691 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 237:
- #line 919 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 226:
 -#line 884 "dhcp6_parser.yy" // lalr1.cc:859
++  case 231:
++#line 902 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1741 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1671 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1699 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 251:
- #line 945 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 240:
 -#line 910 "dhcp6_parser.yy" // lalr1.cc:859
++  case 245:
++#line 928 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("code", code);
  }
- #line 1750 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1680 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1708 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 253:
- #line 952 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 242:
 -#line 917 "dhcp6_parser.yy" // lalr1.cc:859
++  case 247:
++#line 935 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1758 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1688 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1716 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 254:
- #line 954 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 243:
 -#line 919 "dhcp6_parser.yy" // lalr1.cc:859
++  case 248:
++#line 937 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("type", prf);
      ctx.leave();
  }
- #line 1768 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1698 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1726 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 255:
- #line 960 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 244:
 -#line 925 "dhcp6_parser.yy" // lalr1.cc:859
++  case 249:
++#line 943 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1776 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1706 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1734 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 256:
- #line 962 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 245:
 -#line 927 "dhcp6_parser.yy" // lalr1.cc:859
++  case 250:
++#line 945 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 1786 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1716 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1744 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 257:
- #line 968 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 246:
 -#line 933 "dhcp6_parser.yy" // lalr1.cc:859
++  case 251:
++#line 951 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1794 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1724 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1752 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 258:
- #line 970 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 247:
 -#line 935 "dhcp6_parser.yy" // lalr1.cc:859
++  case 252:
++#line 953 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("space", space);
      ctx.leave();
  }
- #line 1804 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1734 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1762 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 260:
- #line 978 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 249:
 -#line 943 "dhcp6_parser.yy" // lalr1.cc:859
++  case 254:
++#line 961 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1812 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1742 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1770 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 261:
- #line 980 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 250:
 -#line 945 "dhcp6_parser.yy" // lalr1.cc:859
++  case 255:
++#line 963 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("encapsulate", encap);
      ctx.leave();
  }
- #line 1822 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1752 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1780 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 262:
- #line 986 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 251:
 -#line 951 "dhcp6_parser.yy" // lalr1.cc:859
++  case 256:
++#line 969 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("array", array);
  }
- #line 1831 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1761 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1789 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 263:
- #line 995 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 252:
 -#line 960 "dhcp6_parser.yy" // lalr1.cc:859
++  case 257:
++#line 978 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("option-data", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.OPTION_DATA);
  }
- #line 1842 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1772 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1800 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 264:
- #line 1000 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 253:
 -#line 965 "dhcp6_parser.yy" // lalr1.cc:859
++  case 258:
++#line 983 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1851 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1781 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1809 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 269:
- #line 1019 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 258:
 -#line 984 "dhcp6_parser.yy" // lalr1.cc:859
++  case 263:
++#line 1002 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1861 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1791 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1819 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 270:
- #line 1023 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 259:
 -#line 988 "dhcp6_parser.yy" // lalr1.cc:859
++  case 264:
++#line 1006 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1869 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1799 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1827 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 271:
- #line 1030 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 260:
 -#line 995 "dhcp6_parser.yy" // lalr1.cc:859
++  case 265:
++#line 1013 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the option-data list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1879 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1809 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1837 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 272:
- #line 1034 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 261:
 -#line 999 "dhcp6_parser.yy" // lalr1.cc:859
++  case 266:
++#line 1017 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1887 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1817 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1845 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 284:
- #line 1063 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 273:
 -#line 1028 "dhcp6_parser.yy" // lalr1.cc:859
++  case 278:
++#line 1046 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1895 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1825 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1853 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 285:
- #line 1065 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 274:
 -#line 1030 "dhcp6_parser.yy" // lalr1.cc:859
++  case 279:
++#line 1048 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("data", data);
      ctx.leave();
  }
- #line 1905 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1835 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1863 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 288:
- #line 1075 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 277:
 -#line 1040 "dhcp6_parser.yy" // lalr1.cc:859
++  case 282:
++#line 1058 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("csv-format", space);
  }
- #line 1914 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1844 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1872 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 289:
- #line 1083 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 278:
 -#line 1048 "dhcp6_parser.yy" // lalr1.cc:859
++  case 283:
++#line 1066 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("pools", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.POOLS);
  }
- #line 1925 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1855 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1883 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 290:
- #line 1088 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 279:
 -#line 1053 "dhcp6_parser.yy" // lalr1.cc:859
++  case 284:
++#line 1071 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 1934 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1864 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1892 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 295:
- #line 1103 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 284:
 -#line 1068 "dhcp6_parser.yy" // lalr1.cc:859
++  case 289:
++#line 1086 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 1944 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1874 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1902 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 296:
- #line 1107 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 285:
 -#line 1072 "dhcp6_parser.yy" // lalr1.cc:859
++  case 290:
++#line 1090 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 1952 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1882 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1910 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 297:
- #line 1111 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 286:
 -#line 1076 "dhcp6_parser.yy" // lalr1.cc:859
++  case 291:
++#line 1094 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the pool list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 1962 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1892 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1920 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 298:
- #line 1115 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 287:
 -#line 1080 "dhcp6_parser.yy" // lalr1.cc:859
++  case 292:
++#line 1098 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 1970 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1900 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1928 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 304:
- #line 1128 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 294:
 -#line 1094 "dhcp6_parser.yy" // lalr1.cc:859
++  case 298:
++#line 1111 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 1978 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1908 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1936 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 305:
- #line 1130 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 295:
 -#line 1096 "dhcp6_parser.yy" // lalr1.cc:859
++  case 299:
++#line 1113 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("pool", pool);
      ctx.leave();
  }
- #line 1988 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1918 "dhcp6_parser.cc" // lalr1.cc:859
 -    break;
 -
 -  case 296:
 -#line 1102 "dhcp6_parser.yy" // lalr1.cc:859
 -    {
 -    ctx.enter(ctx.NO_KEYWORD);
 -}
 -#line 1926 "dhcp6_parser.cc" // lalr1.cc:859
 -    break;
 -
 -  case 297:
 -#line 1104 "dhcp6_parser.yy" // lalr1.cc:859
 -    {
 -    ctx.stack_.back()->set("user-context", yystack_[0].value.as< ElementPtr > ());
 -    ctx.leave();
 -}
 -#line 1935 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1946 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 306:
- #line 1139 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 298:
 -#line 1112 "dhcp6_parser.yy" // lalr1.cc:859
++  case 300:
++#line 1122 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("pd-pools", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.PD_POOLS);
  }
- #line 1999 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1946 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1957 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 307:
- #line 1144 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 299:
 -#line 1117 "dhcp6_parser.yy" // lalr1.cc:859
++  case 301:
++#line 1127 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2008 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1955 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1966 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 312:
- #line 1159 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 304:
 -#line 1132 "dhcp6_parser.yy" // lalr1.cc:859
++  case 306:
++#line 1142 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2018 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1965 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1976 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 313:
- #line 1163 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 305:
 -#line 1136 "dhcp6_parser.yy" // lalr1.cc:859
++  case 307:
++#line 1146 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2026 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1973 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1984 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 314:
- #line 1167 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 306:
 -#line 1140 "dhcp6_parser.yy" // lalr1.cc:859
++  case 308:
++#line 1150 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the pd-pool list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 2036 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1983 "dhcp6_parser.cc" // lalr1.cc:859
++#line 1994 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 315:
- #line 1171 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 307:
 -#line 1144 "dhcp6_parser.yy" // lalr1.cc:859
++  case 309:
++#line 1154 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 2044 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1991 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2002 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 325:
- #line 1188 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 318:
 -#line 1162 "dhcp6_parser.yy" // lalr1.cc:859
++  case 319:
++#line 1171 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2052 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 1999 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2010 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 326:
- #line 1190 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 319:
 -#line 1164 "dhcp6_parser.yy" // lalr1.cc:859
++  case 320:
++#line 1173 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("prefix", prf);
      ctx.leave();
  }
- #line 2062 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2009 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2020 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 327:
- #line 1196 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 320:
 -#line 1170 "dhcp6_parser.yy" // lalr1.cc:859
++  case 321:
++#line 1179 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("prefix-len", prf);
  }
- #line 2071 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2018 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2029 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 328:
- #line 1201 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 321:
 -#line 1175 "dhcp6_parser.yy" // lalr1.cc:859
++  case 322:
++#line 1184 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2079 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2026 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2037 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 329:
- #line 1203 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 322:
 -#line 1177 "dhcp6_parser.yy" // lalr1.cc:859
++  case 323:
++#line 1186 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 2089 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2036 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2047 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 330:
- #line 1209 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 323:
 -#line 1183 "dhcp6_parser.yy" // lalr1.cc:859
++  case 324:
++#line 1192 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("excluded-prefix-len", prf);
  }
- #line 2098 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2045 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2056 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 331:
- #line 1214 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 324:
 -#line 1188 "dhcp6_parser.yy" // lalr1.cc:859
++  case 325:
++#line 1197 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("delegated-len", deleg);
  }
- #line 2107 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2054 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2065 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 332:
- #line 1222 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 325:
 -#line 1196 "dhcp6_parser.yy" // lalr1.cc:859
++  case 326:
++#line 1205 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("reservations", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.RESERVATIONS);
  }
- #line 2118 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2065 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2076 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 333:
- #line 1227 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 326:
 -#line 1201 "dhcp6_parser.yy" // lalr1.cc:859
++  case 327:
++#line 1210 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2127 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2074 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2085 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 338:
- #line 1240 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 331:
 -#line 1214 "dhcp6_parser.yy" // lalr1.cc:859
++  case 332:
++#line 1223 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2137 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2084 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2095 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 339:
- #line 1244 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 332:
 -#line 1218 "dhcp6_parser.yy" // lalr1.cc:859
++  case 333:
++#line 1227 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2145 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2092 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2103 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 340:
- #line 1248 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 333:
 -#line 1222 "dhcp6_parser.yy" // lalr1.cc:859
++  case 334:
++#line 1231 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // Parse the reservations list entry map
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.push_back(m);
  }
- #line 2155 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2102 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2113 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 341:
- #line 1252 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 334:
 -#line 1226 "dhcp6_parser.yy" // lalr1.cc:859
++  case 335:
++#line 1235 "dhcp6_parser.yy" // lalr1.cc:859
      {
      // parsing completed
  }
- #line 2163 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2110 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2121 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 354:
- #line 1275 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 347:
 -#line 1249 "dhcp6_parser.yy" // lalr1.cc:859
++  case 348:
++#line 1258 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("ip-addresses", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2174 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2121 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2132 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 355:
- #line 1280 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 348:
 -#line 1254 "dhcp6_parser.yy" // lalr1.cc:859
++  case 349:
++#line 1263 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2183 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2130 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2141 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 356:
- #line 1285 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 349:
 -#line 1259 "dhcp6_parser.yy" // lalr1.cc:859
++  case 350:
++#line 1268 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("prefixes", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2194 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2141 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2152 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 357:
- #line 1290 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 350:
 -#line 1264 "dhcp6_parser.yy" // lalr1.cc:859
++  case 351:
++#line 1273 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2203 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2150 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2161 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 358:
- #line 1295 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 351:
 -#line 1269 "dhcp6_parser.yy" // lalr1.cc:859
++  case 352:
++#line 1278 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2211 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2158 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2169 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 359:
- #line 1297 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 352:
 -#line 1271 "dhcp6_parser.yy" // lalr1.cc:859
++  case 353:
++#line 1280 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("duid", d);
      ctx.leave();
  }
- #line 2221 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2168 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2179 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 360:
- #line 1303 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 353:
 -#line 1277 "dhcp6_parser.yy" // lalr1.cc:859
++  case 354:
++#line 1286 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2229 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2176 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2187 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 361:
- #line 1305 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 354:
 -#line 1279 "dhcp6_parser.yy" // lalr1.cc:859
++  case 355:
++#line 1288 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 2239 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2186 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2197 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 362:
- #line 1311 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 355:
 -#line 1285 "dhcp6_parser.yy" // lalr1.cc:859
++  case 356:
++#line 1294 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2247 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2194 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2205 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 363:
- #line 1313 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 356:
 -#line 1287 "dhcp6_parser.yy" // lalr1.cc:859
++  case 357:
++#line 1296 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("hostname", host);
      ctx.leave();
  }
- #line 2257 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2204 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2215 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 364:
- #line 1319 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 357:
 -#line 1293 "dhcp6_parser.yy" // lalr1.cc:859
++  case 358:
++#line 1302 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("client-classes", c);
      ctx.stack_.push_back(c);
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2268 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2215 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2226 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 365:
- #line 1324 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 358:
 -#line 1298 "dhcp6_parser.yy" // lalr1.cc:859
++  case 359:
++#line 1307 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2277 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2224 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2235 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 366:
- #line 1332 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 359:
 -#line 1306 "dhcp6_parser.yy" // lalr1.cc:859
++  case 360:
++#line 1315 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("relay", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.RELAY);
  }
- #line 2288 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2235 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2246 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 367:
- #line 1337 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 360:
 -#line 1311 "dhcp6_parser.yy" // lalr1.cc:859
++  case 361:
++#line 1320 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2297 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2244 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2255 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 368:
- #line 1342 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 361:
 -#line 1316 "dhcp6_parser.yy" // lalr1.cc:859
++  case 362:
++#line 1325 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2305 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2252 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2263 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 369:
- #line 1344 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 362:
 -#line 1318 "dhcp6_parser.yy" // lalr1.cc:859
++  case 363:
++#line 1327 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("ip-address", ip);
      ctx.leave();
  }
- #line 2315 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2262 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2273 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 370:
- #line 1353 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 363:
 -#line 1327 "dhcp6_parser.yy" // lalr1.cc:859
++  case 364:
++#line 1336 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("client-classes", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.CLIENT_CLASSES);
  }
- #line 2326 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2273 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2284 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 371:
- #line 1358 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 364:
 -#line 1332 "dhcp6_parser.yy" // lalr1.cc:859
++  case 365:
++#line 1341 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2335 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2282 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2293 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 374:
- #line 1367 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 367:
 -#line 1341 "dhcp6_parser.yy" // lalr1.cc:859
++  case 368:
++#line 1350 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2345 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2292 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2303 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 375:
- #line 1371 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 368:
 -#line 1345 "dhcp6_parser.yy" // lalr1.cc:859
++  case 369:
++#line 1354 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2353 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2300 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2311 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 385:
- #line 1391 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 378:
 -#line 1365 "dhcp6_parser.yy" // lalr1.cc:859
++  case 379:
++#line 1374 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2361 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2308 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2319 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 386:
- #line 1393 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 379:
 -#line 1367 "dhcp6_parser.yy" // lalr1.cc:859
++  case 380:
++#line 1376 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("test", test);
      ctx.leave();
  }
- #line 2371 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2318 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2329 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 387:
- #line 1402 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 380:
 -#line 1376 "dhcp6_parser.yy" // lalr1.cc:859
++  case 381:
++#line 1385 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("server-id", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.SERVER_ID);
  }
- #line 2382 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2329 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2340 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 388:
- #line 1407 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 381:
 -#line 1381 "dhcp6_parser.yy" // lalr1.cc:859
++  case 382:
++#line 1390 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2391 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2338 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2349 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 398:
- #line 1425 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 391:
 -#line 1399 "dhcp6_parser.yy" // lalr1.cc:859
++  case 392:
++#line 1408 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.DUID_TYPE);
  }
- #line 2399 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2346 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2357 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 399:
- #line 1427 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 392:
 -#line 1401 "dhcp6_parser.yy" // lalr1.cc:859
++  case 393:
++#line 1410 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 2408 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2355 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2366 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 400:
- #line 1432 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 393:
 -#line 1406 "dhcp6_parser.yy" // lalr1.cc:859
++  case 394:
++#line 1415 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
- #line 2414 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2361 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2372 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 401:
- #line 1433 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 394:
 -#line 1407 "dhcp6_parser.yy" // lalr1.cc:859
++  case 395:
++#line 1416 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
- #line 2420 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2367 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2378 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 402:
- #line 1434 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 395:
 -#line 1408 "dhcp6_parser.yy" // lalr1.cc:859
++  case 396:
++#line 1417 "dhcp6_parser.yy" // lalr1.cc:859
      { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
- #line 2426 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2373 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2384 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 403:
- #line 1437 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 396:
 -#line 1411 "dhcp6_parser.yy" // lalr1.cc:859
++  case 397:
++#line 1420 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("htype", htype);
  }
- #line 2435 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2382 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2393 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 404:
- #line 1442 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 397:
 -#line 1416 "dhcp6_parser.yy" // lalr1.cc:859
++  case 398:
++#line 1425 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2443 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2390 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2401 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 405:
- #line 1444 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 398:
 -#line 1418 "dhcp6_parser.yy" // lalr1.cc:859
++  case 399:
++#line 1427 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("identifier", id);
      ctx.leave();
  }
- #line 2453 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2400 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2411 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 406:
- #line 1450 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 399:
 -#line 1424 "dhcp6_parser.yy" // lalr1.cc:859
++  case 400:
++#line 1433 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("time", time);
  }
- #line 2462 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2409 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2420 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 407:
- #line 1455 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 400:
 -#line 1429 "dhcp6_parser.yy" // lalr1.cc:859
++  case 401:
++#line 1438 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("enterprise-id", time);
  }
- #line 2471 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2418 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2429 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 408:
- #line 1462 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 401:
 -#line 1436 "dhcp6_parser.yy" // lalr1.cc:859
++  case 402:
++#line 1445 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("dhcp4o6-port", time);
  }
- #line 2480 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2427 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2438 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 409:
- #line 1469 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 402:
 -#line 1443 "dhcp6_parser.yy" // lalr1.cc:859
++  case 403:
++#line 1452 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("control-socket", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.CONTROL_SOCKET);
  }
- #line 2491 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2438 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2449 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 410:
- #line 1474 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 403:
 -#line 1448 "dhcp6_parser.yy" // lalr1.cc:859
++  case 404:
++#line 1457 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2500 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2447 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2458 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 415:
- #line 1487 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 408:
 -#line 1461 "dhcp6_parser.yy" // lalr1.cc:859
++  case 409:
++#line 1470 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2508 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2455 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2466 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 416:
- #line 1489 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 409:
 -#line 1463 "dhcp6_parser.yy" // lalr1.cc:859
++  case 410:
++#line 1472 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 2518 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2465 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2476 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 417:
- #line 1495 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 410:
 -#line 1469 "dhcp6_parser.yy" // lalr1.cc:859
++  case 411:
++#line 1478 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2526 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2473 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2484 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 418:
- #line 1497 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 411:
 -#line 1471 "dhcp6_parser.yy" // lalr1.cc:859
++  case 412:
++#line 1480 "dhcp6_parser.yy" // lalr1.cc:859
      {
      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 2536 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2483 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2494 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 419:
- #line 1505 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 412:
 -#line 1479 "dhcp6_parser.yy" // lalr1.cc:859
++  case 413:
++#line 1488 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("dhcp-ddns", m);
      ctx.stack_.push_back(m);
 -    ctx.enter(ctx.NO_KEYWORD);
 +    ctx.enter(ctx.DHCP_DDNS);
  }
- #line 2547 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2494 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2505 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 420:
- #line 1510 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 413:
 -#line 1484 "dhcp6_parser.yy" // lalr1.cc:859
++  case 414:
++#line 1493 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2556 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2503 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2514 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 421:
- #line 1515 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 414:
 -#line 1491 "dhcp6_parser.yy" // lalr1.cc:859
++  case 415:
++#line 1498 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    // Parse the dhcp-ddns map
 +    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.push_back(m);
 +}
- #line 2566 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2524 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 422:
- #line 1519 "dhcp6_parser.yy" // lalr1.cc:859
++  case 416:
++#line 1502 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    // parsing completed
 +}
- #line 2574 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2532 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 441:
- #line 1545 "dhcp6_parser.yy" // lalr1.cc:859
++  case 435:
++#line 1528 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("enable-updates", b);
 +}
- #line 2583 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2541 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 442:
- #line 1550 "dhcp6_parser.yy" // lalr1.cc:859
++  case 436:
++#line 1533 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2591 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2511 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2549 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 443:
- #line 1552 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 415:
 -#line 1493 "dhcp6_parser.yy" // lalr1.cc:859
++  case 437:
++#line 1535 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    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 2601 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2559 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 444:
- #line 1558 "dhcp6_parser.yy" // lalr1.cc:859
++  case 438:
++#line 1541 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2609 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2567 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 445:
- #line 1560 "dhcp6_parser.yy" // lalr1.cc:859
++  case 439:
++#line 1543 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    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 2619 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2577 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 446:
- #line 1566 "dhcp6_parser.yy" // lalr1.cc:859
++  case 440:
++#line 1549 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("server-port", i);
 +}
- #line 2628 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2586 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 447:
- #line 1571 "dhcp6_parser.yy" // lalr1.cc:859
++  case 441:
++#line 1554 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2636 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2594 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 448:
- #line 1573 "dhcp6_parser.yy" // lalr1.cc:859
++  case 442:
++#line 1556 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    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 2646 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2604 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 449:
- #line 1579 "dhcp6_parser.yy" // lalr1.cc:859
++  case 443:
++#line 1562 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("sender-port", i);
 +}
- #line 2655 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2613 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 450:
- #line 1584 "dhcp6_parser.yy" // lalr1.cc:859
++  case 444:
++#line 1567 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("max-queue-size", i);
 +}
- #line 2664 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2622 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 451:
- #line 1589 "dhcp6_parser.yy" // lalr1.cc:859
++  case 445:
++#line 1572 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NCR_PROTOCOL);
 +}
- #line 2672 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2630 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 452:
- #line 1591 "dhcp6_parser.yy" // lalr1.cc:859
++  case 446:
++#line 1574 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
 +    ctx.leave();
 +}
- #line 2681 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2639 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 453:
- #line 1597 "dhcp6_parser.yy" // lalr1.cc:859
++  case 447:
++#line 1580 "dhcp6_parser.yy" // lalr1.cc:859
 +    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
- #line 2687 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2645 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 454:
- #line 1598 "dhcp6_parser.yy" // lalr1.cc:859
++  case 448:
++#line 1581 "dhcp6_parser.yy" // lalr1.cc:859
 +    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
- #line 2693 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2651 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 455:
- #line 1601 "dhcp6_parser.yy" // lalr1.cc:859
++  case 449:
++#line 1584 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NCR_FORMAT);
 +}
- #line 2701 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2659 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 456:
- #line 1603 "dhcp6_parser.yy" // lalr1.cc:859
++  case 450:
++#line 1586 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("ncr-format", json);
 +    ctx.leave();
 +}
- #line 2711 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2669 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 457:
- #line 1609 "dhcp6_parser.yy" // lalr1.cc:859
++  case 451:
++#line 1592 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("always-include-fqdn", b);
 +}
- #line 2720 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2678 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 458:
- #line 1614 "dhcp6_parser.yy" // lalr1.cc:859
++  case 452:
++#line 1597 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("allow-client-update",  b);
 +}
- #line 2729 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2687 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 459:
- #line 1619 "dhcp6_parser.yy" // lalr1.cc:859
++  case 453:
++#line 1602 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("override-no-update", b);
 +}
- #line 2738 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2696 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 460:
- #line 1624 "dhcp6_parser.yy" // lalr1.cc:859
++  case 454:
++#line 1607 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
 +    ctx.stack_.back()->set("override-client-update", b);
 +}
- #line 2747 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2705 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 461:
- #line 1629 "dhcp6_parser.yy" // lalr1.cc:859
++  case 455:
++#line 1612 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.REPLACE_CLIENT_NAME);
 +}
- #line 2755 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2713 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 462:
- #line 1631 "dhcp6_parser.yy" // lalr1.cc:859
++  case 456:
++#line 1614 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
 +    ctx.leave();
 +}
- #line 2764 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2722 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 463:
- #line 1637 "dhcp6_parser.yy" // lalr1.cc:859
++  case 457:
++#line 1620 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
 +      }
- #line 2772 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2730 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 464:
- #line 1640 "dhcp6_parser.yy" // lalr1.cc:859
++  case 458:
++#line 1623 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
 +      }
- #line 2780 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2738 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 465:
- #line 1643 "dhcp6_parser.yy" // lalr1.cc:859
++  case 459:
++#line 1626 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
 +      }
- #line 2788 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2746 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 466:
- #line 1646 "dhcp6_parser.yy" // lalr1.cc:859
++  case 460:
++#line 1629 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +      yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
 +      }
- #line 2796 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2754 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 467:
- #line 1649 "dhcp6_parser.yy" // lalr1.cc:859
++  case 461:
++#line 1632 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +      error(yystack_[0].location, "boolean values for the replace-client-name are "
 +                "no longer supported");
 +      }
- #line 2805 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2763 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 468:
- #line 1655 "dhcp6_parser.yy" // lalr1.cc:859
++  case 462:
++#line 1638 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2813 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2771 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 469:
- #line 1657 "dhcp6_parser.yy" // lalr1.cc:859
++  case 463:
++#line 1640 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    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 2823 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2781 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 470:
- #line 1665 "dhcp6_parser.yy" // lalr1.cc:859
++  case 464:
++#line 1648 "dhcp6_parser.yy" // lalr1.cc:859
 +    {
 +    ctx.enter(ctx.NO_KEYWORD);
 +}
- #line 2831 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2789 "dhcp6_parser.cc" // lalr1.cc:859
 +    break;
 +
-   case 471:
- #line 1667 "dhcp6_parser.yy" // lalr1.cc:859
++  case 465:
++#line 1650 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 2840 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2520 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2798 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 472:
- #line 1672 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 416:
 -#line 1498 "dhcp6_parser.yy" // lalr1.cc:859
++  case 466:
++#line 1655 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2848 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2528 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2806 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 473:
- #line 1674 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 417:
 -#line 1500 "dhcp6_parser.yy" // lalr1.cc:859
++  case 467:
++#line 1657 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
      ctx.leave();
  }
- #line 2857 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2537 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2815 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 474:
- #line 1684 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 418:
 -#line 1510 "dhcp6_parser.yy" // lalr1.cc:859
++  case 468:
++#line 1667 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("Logging", m);
      ctx.stack_.push_back(m);
      ctx.enter(ctx.LOGGING);
  }
- #line 2868 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2548 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2826 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 475:
- #line 1689 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 419:
 -#line 1515 "dhcp6_parser.yy" // lalr1.cc:859
++  case 469:
++#line 1672 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2877 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2557 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2835 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 479:
- #line 1706 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 423:
 -#line 1532 "dhcp6_parser.yy" // lalr1.cc:859
++  case 473:
++#line 1689 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("loggers", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.LOGGERS);
  }
- #line 2888 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2568 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2846 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 480:
- #line 1711 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 424:
 -#line 1537 "dhcp6_parser.yy" // lalr1.cc:859
++  case 474:
++#line 1694 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2897 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2577 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2855 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 483:
- #line 1723 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 427:
 -#line 1549 "dhcp6_parser.yy" // lalr1.cc:859
++  case 477:
++#line 1706 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(l);
      ctx.stack_.push_back(l);
  }
- #line 2907 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2587 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2865 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 484:
- #line 1727 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 428:
 -#line 1553 "dhcp6_parser.yy" // lalr1.cc:859
++  case 478:
++#line 1710 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2915 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2595 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2873 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 492:
- #line 1742 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 436:
 -#line 1568 "dhcp6_parser.yy" // lalr1.cc:859
++  case 486:
++#line 1725 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("debuglevel", dl);
  }
- #line 2924 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2604 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2882 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 493:
- #line 1746 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 437:
 -#line 1572 "dhcp6_parser.yy" // lalr1.cc:859
++  case 487:
++#line 1729 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2932 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2612 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2890 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 494:
- #line 1748 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 438:
 -#line 1574 "dhcp6_parser.yy" // lalr1.cc:859
++  case 488:
++#line 1731 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("severity", sev);
      ctx.leave();
  }
- #line 2942 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2622 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2900 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 495:
- #line 1754 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 439:
 -#line 1580 "dhcp6_parser.yy" // lalr1.cc:859
++  case 489:
++#line 1737 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("output_options", l);
      ctx.stack_.push_back(l);
      ctx.enter(ctx.OUTPUT_OPTIONS);
  }
- #line 2953 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2633 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2911 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 496:
- #line 1759 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 440:
 -#line 1585 "dhcp6_parser.yy" // lalr1.cc:859
++  case 490:
++#line 1742 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
      ctx.leave();
  }
- #line 2962 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2642 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2920 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 499:
- #line 1768 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 443:
 -#line 1594 "dhcp6_parser.yy" // lalr1.cc:859
++  case 493:
++#line 1751 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->add(m);
      ctx.stack_.push_back(m);
  }
- #line 2972 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2652 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2930 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 500:
- #line 1772 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 444:
 -#line 1598 "dhcp6_parser.yy" // lalr1.cc:859
++  case 494:
++#line 1755 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.stack_.pop_back();
  }
- #line 2980 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2660 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2938 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 503:
- #line 1780 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 447:
 -#line 1606 "dhcp6_parser.yy" // lalr1.cc:859
++  case 497:
++#line 1763 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ctx.enter(ctx.NO_KEYWORD);
  }
- #line 2988 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2668 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2946 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
-   case 504:
- #line 1782 "dhcp6_parser.yy" // lalr1.cc:859
 -  case 448:
 -#line 1608 "dhcp6_parser.yy" // lalr1.cc:859
++  case 498:
++#line 1765 "dhcp6_parser.yy" // lalr1.cc:859
      {
      ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
      ctx.stack_.back()->set("output", sev);
      ctx.leave();
  }
- #line 2998 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2678 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2956 "dhcp6_parser.cc" // lalr1.cc:859
      break;
  
  
- #line 3002 "dhcp6_parser.cc" // lalr1.cc:859
 -#line 2682 "dhcp6_parser.cc" // lalr1.cc:859
++#line 2960 "dhcp6_parser.cc" // lalr1.cc:859
              default:
                break;
              }
    const short int
    Dhcp6Parser::yypact_[] =
    {
-      181,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,    30,    19,    25,    31,    43,    75,    85,
-      111,   120,   137,   154,   164,   170,  -497,  -497,  -497,  -497,
 -     101,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,    43,    19,    40,    89,   108,   110,   138,   152,
 -     154,   163,   165,   174,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,    19,    80,    17,    65,
 -      47,    16,    66,     7,    77,    67,    39,    -8,  -432,   190,
 -     210,   216,   220,   229,  -432,  -432,  -432,  -432,   234,  -432,
 -      54,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,   238,
 -     247,   250,   260,   263,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,   267,  -432,  -432,  -432,   119,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,   264,  -432,  -432,  -432,  -432,  -432,  -432,   269,
 -     270,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -     144,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,   150,  -432,
 -    -432,  -432,  -432,   271,  -432,   272,   273,  -432,  -432,  -432,
 -     170,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,   274,   275,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,   276,  -432,  -432,  -432,
 -     279,  -432,  -432,   277,   281,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,   282,  -432,  -432,  -432,
 -    -432,   280,   284,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,   176,  -432,  -432,  -432,  -432,    19,    19,  -432,
 -     183,   285,   286,   287,   289,  -432,    17,  -432,   290,   291,
 -     292,   188,   191,   192,   193,   194,   293,   295,   296,   301,
 -     302,   303,   304,   305,   306,   307,   202,   309,   310,    65,
 -    -432,   311,  -432,   114,   312,   313,   314,   315,   316,   212,
 -     213,   317,   319,   320,   322,    16,  -432,   323,   324,    66,
 -    -432,   325,   222,   326,   223,   224,     7,  -432,   327,   331,
 -     332,   333,   334,   335,  -432,    77,   336,   337,   232,   341,
 -     342,   343,   236,  -432,    67,   345,   239,  -432,    39,   346,
 -     348,   178,  -432,  -432,  -432,   349,   347,   351,    19,    19,
 -    -432,   352,   353,   354,  -432,  -432,  -432,  -432,  -432,   350,
 -     357,   360,   361,   362,   363,   364,   365,   366,   369,  -432,
 -     370,   371,  -432,   362,  -432,  -432,  -432,  -432,   372,   368,
 -    -432,  -432,  -432,   367,   374,   278,   283,   288,  -432,  -432,
 -     294,   297,   377,   376,  -432,   298,   378,  -432,   299,  -432,
 -     300,  -432,  -432,  -432,   362,   362,   362,   308,   318,   321,
 -    -432,   328,   329,  -432,   330,   338,   339,  -432,  -432,   340,
 -    -432,  -432,   344,    19,  -432,    19,    65,   355,  -432,  -432,
 -      47,    14,    14,   379,   381,   383,   -25,  -432,  -432,    23,
 -      76,   384,    93,    27,   181,    80,  -432,   380,  -432,   114,
 -     386,   387,  -432,  -432,  -432,  -432,  -432,   388,   356,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,   177,
 -    -432,   179,  -432,  -432,   390,  -432,  -432,  -432,  -432,   392,
 -     395,   396,  -432,   180,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,   189,  -432,   398,   399,  -432,  -432,   404,
 -     402,  -432,  -432,   405,   409,  -432,  -432,  -432,    52,  -432,
 -    -432,  -432,    19,  -432,  -432,    74,  -432,  -432,  -432,   143,
 -    -432,   407,   411,  -432,   397,   412,   415,   417,   419,   420,
 -     207,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -     421,   422,   424,  -432,  -432,   208,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,   209,  -432,  -432,  -432,   211,   358,
 -    -432,  -432,   423,   428,  -432,  -432,   426,   430,  -432,  -432,
 -     429,   431,  -432,  -432,   432,  -432,   437,   355,  -432,  -432,
 -     438,   439,   440,   441,   359,   373,   375,    14,  -432,  -432,
 -      16,  -432,   379,    67,  -432,   381,    39,  -432,   383,   -25,
 -    -432,   444,    23,  -432,    76,  -432,    -8,  -432,   384,   382,
 -     385,   389,   391,   393,   394,    93,  -432,   447,   448,   400,
 -     401,   403,    27,  -432,   450,   451,   181,  -432,  -432,  -432,
 -      66,  -432,   386,     7,  -432,   387,    77,  -432,   388,   452,
 -    -432,   410,  -432,   406,   408,   414,   416,  -432,  -432,  -432,
 -    -432,   218,  -432,   449,  -432,   453,  -432,  -432,  -432,  -432,
 -    -432,   219,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -     182,   418,  -432,  -432,  -432,  -432,   425,   427,  -432,   221,
 -    -432,   227,  -432,   454,  -432,   433,   456,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,   187,  -432,    68,
 -     456,  -432,  -432,   455,  -432,  -432,  -432,   228,  -432,  -432,
 -    -432,  -432,  -432,   460,   434,   461,    68,  -432,   463,  -432,
 -     442,  -432,   459,  -432,  -432,   237,  -432,   413,   459,  -432,
 -    -432,   231,  -432,  -432,   465,   413,  -432,   443,  -432,  -432
++      91,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,    37,    19,    50,    70,    80,    89,    92,
++     101,   149,   189,   241,   246,   254,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-       19,    27,    17,    26,   183,    18,    -1,   100,    64,    53,
-       40,   -31,   144,  -497,   206,   232,   233,   249,   258,  -497,
-     -497,  -497,  -497,   259,  -497,    41,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,   260,   261,   262,   265,   266,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   268,
-     -497,  -497,  -497,   114,  -497,  -497,  -497,  -497,  -497,  -497,
++      19,   -83,    17,    78,    43,    18,     7,     9,    59,    48,
++      93,     6,   141,  -497,    88,   263,   245,   261,   267,  -497,
++    -497,  -497,  -497,   269,  -497,    87,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,   270,   271,   272,   273,   276,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   277,
++    -497,  -497,  -497,    90,  -497,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,   254,  -497,  -497,
-     -497,  -497,  -497,  -497,   269,   270,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,   117,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,   284,  -497,  -497,
++    -497,  -497,  -497,  -497,   280,   290,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,   133,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,   118,  -497,  -497,  -497,   271,  -497,   272,   273,
-     -497,  -497,   133,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,   276,   278,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   288,  -497,
-     -497,  -497,   290,  -497,  -497,   287,   294,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   295,  -497,
-     -497,  -497,  -497,   293,   299,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,   135,  -497,  -497,  -497,   313,  -497,
-     -497,   314,  -497,   315,   317,  -497,  -497,   318,   319,   320,
-      321,  -497,  -497,  -497,   156,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,   156,  -497,  -497,  -497,   291,  -497,   293,   295,
++    -497,  -497,   157,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,   294,   298,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   301,  -497,
++    -497,  -497,   302,  -497,  -497,   299,   305,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   306,  -497,
++    -497,  -497,  -497,   303,   309,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,   166,  -497,  -497,  -497,   310,  -497,
++    -497,   311,  -497,   312,   313,  -497,  -497,   314,   315,   317,
++     318,  -497,  -497,  -497,   167,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,    19,    19,  -497,   190,   323,   324,   325,   326,
-     -497,    17,  -497,   327,   328,   329,   197,   200,   201,   202,
-      203,   331,   332,   337,   338,   339,   340,   341,   342,   343,
-      344,   212,   346,   347,    26,  -497,   348,  -497,     1,   349,
-      350,   351,   352,   353,   221,   220,   356,   357,   358,   359,
-       18,  -497,   360,    -1,  -497,   361,   229,   363,   231,   234,
-      100,  -497,   365,   366,   368,   369,   370,   371,  -497,    64,
-      372,   373,   241,   375,   376,   377,   243,  -497,    53,   379,
-      245,  -497,    40,   381,   382,    29,  -497,   248,   384,   385,
-      253,   387,   255,   256,   390,   391,   257,   263,   264,   267,
-      395,   396,   144,  -497,  -497,  -497,   397,   398,   400,    19,
-       19,  -497,   401,   402,   403,  -497,  -497,  -497,  -497,  -497,
-      399,   406,   407,   408,   409,   410,   411,   412,   413,   414,
-     -497,   415,   416,  -497,   419,  -497,  -497,  -497,  -497,   420,
-      424,  -497,  -497,  -497,   426,   427,   282,   283,   297,  -497,
-     -497,   298,   301,   430,   432,  -497,   304,  -497,   305,  -497,
-      306,  -497,  -497,  -497,   419,   419,   419,   308,   309,   310,
-     -497,   312,   316,  -497,   322,   330,   333,  -497,  -497,   334,
-     -497,  -497,   336,    19,  -497,  -497,   345,   354,  -497,   355,
-     -497,  -497,    42,   362,  -497,  -497,  -497,  -497,    66,   364,
-     -497,    19,    26,   367,  -497,  -497,   183,    88,    88,   442,
-      443,   444,   -37,    19,   192,    44,   446,   107,    81,   131,
-      144,  -497,  -497,   451,  -497,     1,   449,   450,  -497,  -497,
-     -497,  -497,  -497,   452,   392,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,    19,    19,  -497,   178,   319,   320,   321,   322,
++    -497,    17,  -497,   323,   324,   325,   181,   198,   199,   200,
++     201,   330,   331,   332,   333,   334,   335,   336,   337,   338,
++     339,   212,   341,   342,    78,  -497,   343,  -497,    41,   344,
++     345,   346,   347,   348,   221,   222,   350,   351,   353,   354,
++      18,  -497,   355,     7,  -497,   356,   229,   358,   231,   232,
++       9,  -497,   361,   362,   363,   364,   365,   366,  -497,    59,
++     367,   368,   247,   369,   370,   371,   248,  -497,    48,   372,
++     249,  -497,    93,   373,   374,   100,  -497,   250,   376,   377,
++     253,   382,   255,   257,   384,   386,   258,   259,   260,   262,
++     387,   391,   141,  -497,  -497,  -497,   395,   393,   394,    19,
++      19,  -497,   396,   397,   398,  -497,  -497,  -497,  -497,  -497,
++     401,   402,   403,   404,   405,   406,   407,   408,   409,   410,
++    -497,   411,   412,  -497,   415,  -497,  -497,  -497,  -497,   413,
++     399,  -497,  -497,  -497,   417,   418,   283,   296,   297,  -497,
++    -497,   300,   304,   419,   425,  -497,   308,  -497,   326,  -497,
++     327,  -497,  -497,  -497,   415,   415,   415,   328,   329,   349,
++    -497,   352,   357,  -497,   359,   360,   375,  -497,  -497,   378,
++    -497,  -497,   379,    19,  -497,  -497,   380,   381,  -497,   383,
++    -497,  -497,    73,   340,  -497,  -497,  -497,  -497,   -48,   385,
++    -497,    19,    78,   388,  -497,  -497,    43,    14,    14,   426,
++     427,   430,   -22,    19,   146,    72,   433,   110,    30,   139,
++     141,  -497,  -497,   437,  -497,    41,   435,   438,  -497,  -497,
++    -497,  -497,  -497,   441,   390,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,   157,  -497,   185,
-     -497,  -497,   453,  -497,  -497,  -497,  -497,   456,   459,   460,
-      461,  -497,   188,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,   189,  -497,   462,   464,  -497,  -497,   468,
-      472,  -497,  -497,   470,   474,  -497,  -497,  -497,    28,  -497,
-     -497,  -497,   473,  -497,  -497,   139,  -497,  -497,  -497,   167,
-     -497,   476,   475,  -497,   479,   481,   482,   483,   484,   488,
-      191,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-      489,   490,   491,  -497,  -497,   195,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,   198,  -497,  -497,  -497,   199,   374,
-      378,  -497,  -497,   492,   477,  -497,  -497,   493,   494,  -497,
-     -497,   495,   499,  -497,  -497,   496,  -497,   501,   367,  -497,
-     -497,   502,   503,   504,   505,   380,   383,   386,   389,    88,
-     -497,  -497,    18,  -497,   442,    53,  -497,   443,    40,  -497,
-      444,   -37,  -497,  -497,   192,  -497,    44,  -497,   -31,  -497,
-      446,   393,   394,   404,   405,   417,   418,   107,  -497,   507,
-      508,   421,   422,   423,    81,  -497,   509,   511,   131,  -497,
-     -497,  -497,   497,   513,  -497,    -1,  -497,   449,   100,  -497,
-      450,    64,  -497,   452,   514,  -497,   512,  -497,    48,   388,
-      425,   428,  -497,  -497,  -497,  -497,  -497,   207,  -497,   515,
-     -497,   519,  -497,  -497,  -497,  -497,   208,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,   150,   429,  -497,  -497,  -497,
-     -497,   431,   433,  -497,  -497,   434,   210,  -497,   211,  -497,
-      520,  -497,   435,   522,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,   168,  -497,   183,
++    -497,  -497,   436,  -497,  -497,  -497,  -497,   445,   446,   447,
++    -497,   184,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,   185,  -497,   450,   449,  -497,  -497,   455,   459,  -497,
++    -497,   457,   461,  -497,  -497,  -497,   136,  -497,  -497,  -497,
++     460,  -497,  -497,   140,  -497,  -497,  -497,   251,  -497,   462,
++     464,  -497,   465,   466,   468,   469,   470,   471,   186,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   472,   473,
++     474,  -497,  -497,   192,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,   194,  -497,  -497,  -497,   195,   389,   392,  -497,
++    -497,   475,   476,  -497,  -497,   478,   479,  -497,  -497,   480,
++     482,  -497,  -497,   484,  -497,   483,   388,  -497,  -497,   489,
++     490,   491,   492,   281,   400,   414,    14,  -497,  -497,    18,
++    -497,   426,    48,  -497,   427,    93,  -497,   430,   -22,  -497,
++    -497,   146,  -497,    72,  -497,     6,  -497,   433,   420,   421,
++     422,   423,   424,   428,   110,  -497,   493,   494,   429,   431,
++     432,    30,  -497,   495,   497,   139,  -497,  -497,  -497,   496,
++     500,  -497,     7,  -497,   435,     9,  -497,   438,    59,  -497,
++     441,   501,  -497,   448,  -497,   416,   434,   439,   440,  -497,
++    -497,  -497,  -497,   196,  -497,   499,  -497,   505,  -497,  -497,
++    -497,  -497,   219,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,    38,   442,  -497,  -497,  -497,  -497,   443,   444,  -497,
++    -497,   451,   220,  -497,   242,  -497,   507,  -497,   452,   458,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,   224,
-     -497,    54,   522,  -497,  -497,   517,  -497,  -497,  -497,   217,
-     -497,  -497,  -497,  -497,  -497,   518,   436,   528,    54,  -497,
-      529,  -497,   438,  -497,   526,  -497,  -497,   225,  -497,   437,
-      526,  -497,  -497,   218,  -497,  -497,   531,   437,  -497,   439,
-     -497,  -497
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,   252,  -497,    42,   458,  -497,  -497,   504,  -497,  -497,
++    -497,   243,  -497,  -497,  -497,  -497,  -497,   513,   453,   514,
++      42,  -497,   516,  -497,   456,  -497,   512,  -497,  -497,   256,
++    -497,   454,   512,  -497,  -497,   244,  -497,  -497,   518,   454,
++    -497,   463,  -497,  -497
    };
  
    const unsigned short int
    Dhcp6Parser::yydefact_[] =
    {
         0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
 -      20,    22,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,     1,    39,    32,    28,    27,    24,
 -      25,    26,    31,     3,    29,    30,    48,     5,    59,     7,
 -      92,     9,   184,    11,   286,    13,   306,    15,   333,    17,
 -     225,    19,   260,    21,   149,    23,    43,    35,     0,     0,
 -       0,     0,     0,     0,   335,   227,   262,     0,    45,     0,
 -      44,     0,     0,    36,    57,   418,   414,   416,     0,    56,
 -       0,    50,    52,    54,    55,    53,    90,    96,    98,     0,
 -       0,     0,     0,     0,   176,   217,   252,   124,   139,   132,
 -     363,   141,   160,   380,     0,   402,   412,    84,     0,    61,
 -      63,    64,    65,    66,    67,    69,    70,    71,    72,    74,
 -      73,    78,    79,    68,    76,    77,    75,    80,    81,    82,
 -      83,    94,     0,   367,   278,   298,   205,   207,   209,     0,
 -       0,   213,   211,   325,   359,   204,   188,   189,   190,   191,
 -       0,   186,   195,   196,   197,   200,   202,   198,   199,   192,
 -     193,   194,   201,   203,   294,   296,   293,   291,     0,   288,
 -     290,   292,   318,     0,   321,     0,     0,   317,   313,   316,
 -       0,   308,   310,   311,   314,   315,   312,   357,   347,   349,
 -     351,   353,   355,   346,   345,     0,   336,   337,   341,   342,
 -     339,   343,   344,   340,   242,   119,     0,   246,   244,   249,
 -       0,   238,   239,     0,   228,   229,   231,   241,   232,   233,
 -     234,   248,   235,   236,   237,   273,     0,   271,   272,   275,
 -     276,     0,   263,   264,   266,   267,   268,   269,   270,   156,
 -     158,   153,     0,   151,   154,   155,    40,     0,     0,    33,
 -       0,     0,     0,     0,     0,    47,     0,    49,     0,     0,
 +      20,    22,    24,     0,     0,     0,     0,     0,     0,     0,
 +       0,     0,     0,     0,     0,     0,     1,    40,    34,    30,
 +      29,    26,    27,    28,    33,     3,    31,    32,    53,     5,
-       64,     7,    97,     9,   195,    11,   297,    13,   314,    15,
-      340,    17,   236,    19,   271,    21,   160,    23,   421,    25,
-       42,    36,     0,     0,     0,     0,     0,     0,   342,   238,
-      273,     0,     0,    44,     0,    43,     0,     0,    37,    62,
-      474,   470,   472,     0,    61,     0,    55,    57,    59,    60,
-       58,    95,   101,   103,     0,     0,     0,     0,     0,   187,
-      228,   263,   135,   150,   143,   370,   152,   171,   387,     0,
-      409,   419,    89,     0,    66,    68,    69,    70,    71,    72,
++      64,     7,    97,     9,   189,    11,   291,    13,   308,    15,
++     334,    17,   230,    19,   265,    21,   154,    23,   415,    25,
++      42,    36,     0,     0,     0,     0,     0,     0,   336,   232,
++     267,     0,     0,    44,     0,    43,     0,     0,    37,    62,
++     468,   464,   466,     0,    61,     0,    55,    57,    59,    60,
++      58,    95,   101,   103,     0,     0,     0,     0,     0,   181,
++     222,   257,   129,   144,   137,   364,   146,   165,   381,     0,
++     403,   413,    89,     0,    66,    68,    69,    70,    71,    72,
 +      74,    75,    76,    77,    79,    78,    83,    84,    73,    81,
-       82,    80,    85,    86,    87,    88,    99,     0,   374,   289,
-      306,   216,   218,   220,     0,     0,   224,   222,   332,   366,
-      215,   199,   200,   201,   202,     0,   197,   206,   207,   208,
-      211,   213,   209,   210,   203,   204,   205,   212,   214,   304,
-      303,   302,     0,   299,   301,   325,     0,   328,     0,     0,
-      324,   321,     0,   316,   318,   319,   322,   323,   320,   364,
-      354,   356,   358,   360,   362,   353,   352,     0,   343,   344,
-      348,   349,   346,   350,   351,   347,   253,   129,     0,   257,
-      255,   260,     0,   249,   250,     0,   239,   240,   242,   252,
-      243,   244,   245,   259,   246,   247,   248,   284,     0,   282,
-      283,   286,   287,     0,   274,   275,   277,   278,   279,   280,
-      281,   167,   169,   164,     0,   162,   165,   166,     0,   442,
-      444,     0,   447,     0,     0,   451,   455,     0,     0,     0,
-        0,   461,   468,   440,     0,   423,   425,   426,   427,   428,
-      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
-      439,    41,     0,     0,    35,     0,     0,     0,     0,     0,
++      82,    80,    85,    86,    87,    88,    99,     0,   368,   283,
++     300,   210,   212,   214,     0,     0,   218,   216,   326,   360,
++     209,   193,   194,   195,   196,     0,   191,   200,   201,   202,
++     205,   207,   203,   204,   197,   198,   199,   206,   208,   298,
++     297,   296,     0,   293,   295,   319,     0,   322,     0,     0,
++     318,   315,     0,   310,   312,   313,   316,   317,   314,   358,
++     348,   350,   352,   354,   356,   347,   346,     0,   337,   338,
++     342,   343,   340,   344,   345,   341,   247,   124,     0,   251,
++     249,   254,     0,   243,   244,     0,   233,   234,   236,   246,
++     237,   238,   239,   253,   240,   241,   242,   278,     0,   276,
++     277,   280,   281,     0,   268,   269,   271,   272,   273,   274,
++     275,   161,   163,   158,     0,   156,   159,   160,     0,   436,
++     438,     0,   441,     0,     0,   445,   449,     0,     0,     0,
++       0,   455,   462,   434,     0,   417,   419,   420,   421,   422,
++     423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
++     433,    41,     0,     0,    35,     0,     0,     0,     0,     0,
 +      52,     0,    54,     0,     0,     0,     0,     0,     0,     0,
 +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,    65,     0,    98,   376,     0,
++       0,     0,     0,     0,     0,    65,     0,    98,   370,     0,
 +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,   196,     0,     0,   298,     0,     0,     0,     0,     0,
-        0,   315,     0,     0,     0,     0,     0,     0,   341,     0,
-        0,     0,     0,     0,     0,     0,     0,   237,     0,     0,
-        0,   272,     0,     0,     0,     0,   161,     0,     0,     0,
++       0,   190,     0,     0,   292,     0,     0,     0,     0,     0,
++       0,   309,     0,     0,     0,     0,     0,     0,   335,     0,
++       0,     0,     0,     0,     0,     0,     0,   231,     0,     0,
++       0,   266,     0,     0,     0,     0,   155,     0,     0,     0,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   422,    45,    38,     0,     0,     0,     0,
++       0,     0,     0,   416,    45,    38,     0,     0,     0,     0,
 +       0,    56,     0,     0,     0,    90,    91,    92,    93,    94,
         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      408,     0,     0,    67,     0,   385,   383,   384,   382,     0,
-      377,   378,   380,   381,     0,     0,     0,     0,     0,   226,
-      227,     0,     0,     0,     0,   198,     0,   300,     0,   327,
-        0,   330,   331,   317,     0,     0,     0,     0,     0,     0,
-      345,     0,     0,   251,     0,     0,     0,   262,   241,     0,
-      288,   276,     0,     0,   163,   441,     0,     0,   446,     0,
-      449,   450,     0,     0,   457,   458,   459,   460,     0,     0,
-      424,     0,     0,     0,   471,   473,     0,     0,     0,   189,
-      230,   265,     0,    42,     0,     0,   154,     0,     0,     0,
-        0,    46,   100,     0,   375,     0,   291,   308,   217,   219,
-      221,   225,   223,   334,     0,   305,   326,   329,   365,   355,
-      357,   359,   361,   363,   254,   130,   258,   256,   261,   285,
-      168,   170,   443,   445,   448,   453,   454,   452,   456,   463,
-      464,   465,   466,   467,   462,   469,    39,     0,   479,     0,
-      476,   478,     0,   117,   123,   125,   127,     0,     0,     0,
-        0,   116,     0,   105,   107,   108,   109,   110,   111,   112,
-      113,   114,   115,     0,   193,     0,   190,   191,   234,     0,
-      231,   232,   269,     0,   266,   267,   141,   142,     0,   137,
-      139,   140,     0,   149,   147,     0,   145,   148,   372,     0,
-      158,     0,   155,   156,     0,     0,     0,     0,     0,     0,
-        0,   173,   175,   176,   177,   178,   179,   180,   398,   404,
-        0,     0,     0,   397,   396,     0,   389,   391,   394,   392,
-      393,   395,   415,   417,     0,   411,   413,   414,     0,    48,
-        0,   379,   295,     0,   292,   293,   312,     0,   309,   310,
-      338,     0,   335,   336,   368,     0,    63,     0,     0,   475,
-       96,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      102,   104,     0,   188,     0,   238,   229,     0,   273,   264,
-        0,     0,   136,   151,     0,   144,     0,   371,     0,   153,
-        0,     0,     0,     0,     0,     0,     0,     0,   172,     0,
-        0,     0,     0,     0,     0,   388,     0,     0,     0,   410,
-      420,    50,     0,    49,   386,     0,   290,     0,     0,   307,
-        0,   342,   333,     0,     0,   367,     0,   477,     0,     0,
-        0,     0,   131,   132,   133,   134,   106,     0,   192,     0,
-      233,     0,   268,   138,   146,   373,     0,   157,   181,   182,
-      183,   184,   185,   186,   174,     0,     0,   403,   406,   407,
-      390,     0,     0,   412,    47,     0,     0,   294,     0,   311,
-        0,   337,     0,     0,   119,   120,   121,   122,   118,   124,
-      126,   128,   194,   235,   270,   159,   400,   401,   402,   399,
-      405,   416,   418,    51,   296,   313,   339,   369,   483,     0,
-      481,     0,     0,   480,   495,     0,   493,   491,   487,     0,
-      485,   489,   490,   488,   482,     0,     0,     0,     0,   484,
-        0,   492,     0,   486,     0,   494,   499,     0,   497,     0,
-        0,   496,   503,     0,   501,   498,     0,     0,   500,     0,
-      502,   504
 -      60,     0,    93,   369,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,     0,     0,   185,     0,     0,     0,
 -     287,     0,     0,     0,     0,     0,     0,   307,     0,     0,
 -       0,     0,     0,     0,   334,     0,     0,     0,     0,     0,
 -       0,     0,     0,   226,     0,     0,     0,   261,     0,     0,
 -       0,     0,   150,    46,    37,     0,     0,     0,     0,     0,
 -      51,     0,     0,     0,    85,    86,    87,    88,    89,     0,
 -       0,     0,     0,     0,     0,     0,     0,     0,     0,   401,
 -       0,     0,    62,     0,   378,   376,   377,   375,     0,   370,
 -     371,   373,   374,     0,     0,     0,     0,     0,   215,   216,
 -       0,     0,     0,     0,   187,     0,     0,   289,     0,   320,
 -       0,   323,   324,   309,     0,     0,     0,     0,     0,     0,
 -     338,     0,     0,   240,     0,     0,     0,   251,   230,     0,
 -     277,   265,     0,     0,   152,     0,     0,     0,   415,   417,
 -       0,     0,     0,   178,   219,   254,     0,    41,   140,     0,
 -       0,   143,     0,     0,     0,     0,    95,     0,   368,     0,
 -     280,   300,   206,   208,   210,   214,   212,   327,     0,   295,
 -      34,   297,   319,   322,   358,   348,   350,   352,   354,   356,
 -     243,   120,   247,   245,   250,   274,   157,   159,    38,     0,
 -     423,     0,   420,   422,     0,   111,   113,   115,   117,     0,
 -       0,     0,   110,     0,   100,   102,   103,   104,   105,   106,
 -     107,   108,   109,     0,   182,     0,   179,   180,   223,     0,
 -     220,   221,   258,     0,   255,   256,   130,   131,     0,   126,
 -     128,   129,    43,   138,   136,     0,   134,   137,   365,     0,
 -     147,     0,   144,   145,     0,     0,     0,     0,     0,     0,
 -       0,   162,   164,   165,   166,   167,   168,   169,   391,   397,
 -       0,     0,     0,   390,   389,     0,   382,   384,   387,   385,
 -     386,   388,   408,   410,     0,   404,   406,   407,     0,     0,
 -     372,   284,     0,   281,   282,   304,     0,   301,   302,   331,
 -       0,   328,   329,   361,     0,    58,     0,     0,   419,    91,
 -       0,     0,     0,     0,     0,     0,     0,     0,    97,    99,
 -       0,   177,     0,   227,   218,     0,   262,   253,     0,     0,
 -     125,     0,     0,   133,     0,   364,     0,   142,     0,     0,
 -       0,     0,     0,     0,     0,     0,   161,     0,     0,     0,
 -       0,     0,     0,   381,     0,     0,     0,   403,   413,   379,
 -       0,   279,     0,     0,   299,     0,   335,   326,     0,     0,
 -     360,     0,   421,     0,     0,     0,     0,   121,   122,   123,
 -     101,     0,   181,     0,   222,     0,   257,   127,    42,   135,
 -     366,     0,   146,   170,   171,   172,   173,   174,   175,   163,
 -       0,     0,   396,   399,   400,   383,     0,     0,   405,     0,
 -     283,     0,   303,     0,   330,     0,     0,   112,   114,   116,
 -     118,   183,   224,   259,   148,   393,   394,   395,   392,   398,
 -     409,   411,   285,   305,   332,   362,   427,     0,   425,     0,
 -       0,   424,   439,     0,   437,   435,   431,     0,   429,   433,
 -     434,   432,   426,     0,     0,     0,     0,   428,     0,   436,
 -       0,   430,     0,   438,   443,     0,   441,     0,     0,   440,
 -     447,     0,   445,   442,     0,     0,   444,     0,   446,   448
++     402,     0,     0,    67,     0,   379,   377,   378,   376,     0,
++     371,   372,   374,   375,     0,     0,     0,     0,     0,   220,
++     221,     0,     0,     0,     0,   192,     0,   294,     0,   321,
++       0,   324,   325,   311,     0,     0,     0,     0,     0,     0,
++     339,     0,     0,   245,     0,     0,     0,   256,   235,     0,
++     282,   270,     0,     0,   157,   435,     0,     0,   440,     0,
++     443,   444,     0,     0,   451,   452,   453,   454,     0,     0,
++     418,     0,     0,     0,   465,   467,     0,     0,     0,   183,
++     224,   259,     0,    42,     0,     0,   148,     0,     0,     0,
++       0,    46,   100,     0,   369,     0,   285,   302,   211,   213,
++     215,   219,   217,   328,     0,   299,   320,   323,   359,   349,
++     351,   353,   355,   357,   248,   125,   252,   250,   255,   279,
++     162,   164,   437,   439,   442,   447,   448,   446,   450,   457,
++     458,   459,   460,   461,   456,   463,    39,     0,   473,     0,
++     470,   472,     0,   116,   118,   120,   122,     0,     0,     0,
++     115,     0,   105,   107,   108,   109,   110,   111,   112,   113,
++     114,     0,   187,     0,   184,   185,   228,     0,   225,   226,
++     263,     0,   260,   261,   135,   136,     0,   131,   133,   134,
++       0,   143,   141,     0,   139,   142,   366,     0,   152,     0,
++     149,   150,     0,     0,     0,     0,     0,     0,     0,   167,
++     169,   170,   171,   172,   173,   174,   392,   398,     0,     0,
++       0,   391,   390,     0,   383,   385,   388,   386,   387,   389,
++     409,   411,     0,   405,   407,   408,     0,    48,     0,   373,
++     289,     0,   286,   287,   306,     0,   303,   304,   332,     0,
++     329,   330,   362,     0,    63,     0,     0,   469,    96,     0,
++       0,     0,     0,     0,     0,     0,     0,   102,   104,     0,
++     182,     0,   232,   223,     0,   267,   258,     0,     0,   130,
++     145,     0,   138,     0,   365,     0,   147,     0,     0,     0,
++       0,     0,     0,     0,     0,   166,     0,     0,     0,     0,
++       0,     0,   382,     0,     0,     0,   404,   414,    50,     0,
++      49,   380,     0,   284,     0,     0,   301,     0,   336,   327,
++       0,     0,   361,     0,   471,     0,     0,     0,     0,   126,
++     127,   128,   106,     0,   186,     0,   227,     0,   262,   132,
++     140,   367,     0,   151,   175,   176,   177,   178,   179,   180,
++     168,     0,     0,   397,   400,   401,   384,     0,     0,   406,
++      47,     0,     0,   288,     0,   305,     0,   331,     0,     0,
++     117,   119,   121,   123,   188,   229,   264,   153,   394,   395,
++     396,   393,   399,   410,   412,    51,   290,   307,   333,   363,
++     477,     0,   475,     0,     0,   474,   489,     0,   487,   485,
++     481,     0,   479,   483,   484,   482,   476,     0,     0,     0,
++       0,   478,     0,   486,     0,   480,     0,   488,   493,     0,
++     491,     0,     0,   490,   497,     0,   495,   492,     0,     0,
++     494,     0,   496,   498
    };
  
    const short int
    Dhcp6Parser::yypgoto_[] =
    {
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,     5,  -432,    50,  -432,  -432,  -432,    25,
 -    -432,  -432,  -239,  -432,   -54,  -432,   -58,  -432,  -432,  -432,
 -     214,  -432,  -432,  -432,  -432,    56,   195,   -51,   -45,   -40,
 -     -36,  -432,  -432,  -432,  -432,  -432,    53,  -432,  -432,  -432,
 -    -432,  -432,    55,  -112,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,   -65,  -432,  -431,  -432,  -432,  -432,  -432,  -432,
 -    -123,  -407,  -432,  -432,  -432,  -432,  -124,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -129,  -432,  -432,  -432,  -126,   151,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -134,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -108,  -432,
 -    -432,  -432,  -105,   196,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -410,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -109,  -432,  -432,  -432,  -104,  -432,   164,  -432,   -49,  -432,
 -    -432,  -432,  -432,  -432,   -47,  -432,  -432,  -432,  -432,  -432,
 -     -50,  -432,  -432,  -432,  -102,  -432,  -432,  -432,  -106,  -432,
 -     166,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -139,  -432,  -432,  -432,  -133,   199,  -432,  -432,   -48,
 -    -432,  -432,  -432,  -432,  -432,  -135,  -432,  -432,  -432,  -131,
 -     201,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -130,  -432,  -432,  -432,  -127,  -432,   197,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,    75,  -432,  -432,  -432,  -432,  -432,  -432,  -117,  -432,
 -    -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -110,  -432,  -432,  -432,  -432,  -432,  -432,  -432,  -432,
 -    -432,  -432,  -432,  -432,  -432,   -59,  -432,  -432,  -432,  -191,
 -    -432,  -432,  -206,  -432,  -432,  -432,  -432,  -432,  -432,  -217,
 -    -432,  -432,  -221,  -432
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,     8,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,     3,  -497,  -191,  -497,  -497,  -497,   -62,  -497,
-     -497,  -497,   246,  -497,  -497,  -497,  -497,    56,   222,   -47,
-      -45,   -44,   -42,  -497,  -497,  -497,  -497,  -497,    57,  -497,
-     -497,  -497,  -497,  -497,    51,  -129,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,   -58,  -497,  -496,  -497,  -497,
-     -497,  -497,  -497,  -497,  -137,  -475,  -497,  -497,  -497,  -497,
-     -139,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -144,  -497,
-     -497,  -497,  -141,   184,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -149,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -124,  -497,  -497,  -497,  -121,   223,  -497,  -497,
-     -497,  -497,  -497,  -497,  -482,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -125,  -497,  -497,  -497,  -118,  -497,
-      204,  -497,   -69,  -497,  -497,  -497,  -497,  -497,   -59,  -497,
-     -497,  -497,  -497,  -497,   -51,  -497,  -497,  -497,  -117,  -497,
-     -497,  -497,  -112,  -497,   214,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,  -145,  -497,  -497,  -497,  -147,
-      244,  -497,  -497,  -497,  -497,  -497,  -497,  -142,  -497,  -497,
-     -497,  -138,   239,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -140,  -497,  -497,  -497,  -136,  -497,
-      235,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,    11,  -497,  -181,  -497,  -497,  -497,   -62,  -497,
++    -497,  -497,   233,  -497,  -497,  -497,  -497,    44,   211,   -47,
++     -45,   -44,   -42,  -497,  -497,  -497,  -497,  -497,    45,  -497,
++    -497,  -497,  -497,  -497,    39,  -138,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,   -58,  -497,  -496,  -497,  -497,  -497,
++    -497,  -497,  -149,  -475,  -497,  -497,  -497,  -497,  -151,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -154,  -497,  -497,  -497,
++    -150,   169,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -158,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -134,  -497,  -497,  -497,  -131,   209,  -497,  -497,  -497,  -497,
++    -497,  -497,  -482,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -133,  -497,  -497,  -497,  -132,  -497,   187,  -497,
++     -69,  -497,  -497,  -497,  -497,  -497,   -59,  -497,  -497,  -497,
++    -497,  -497,   -51,  -497,  -497,  -497,  -135,  -497,  -497,  -497,
++    -129,  -497,   182,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -171,  -497,  -497,  -497,  -163,   217,  -497,
++    -497,  -497,  -497,  -497,  -497,  -166,  -497,  -497,  -497,  -157,
++     226,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -161,  -497,  -497,  -497,  -156,  -497,   208,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,    76,  -497,  -497,  -497,  -497,  -497,  -497,
-     -122,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -120,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,    86,   205,  -497,  -497,  -497,  -497,  -497,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,    62,  -497,  -497,  -497,  -497,  -497,  -497,  -125,  -497,
 +    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
-     -497,  -497,  -497,  -497,  -497,   -68,  -497,  -497,  -497,  -213,
-     -497,  -497,  -227,  -497,  -497,  -497,  -497,  -497,  -497,  -238,
-     -497,  -497,  -244,  -497
++    -497,  -136,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++      77,   190,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,  -497,
++    -497,  -497,  -497,   -78,  -497,  -497,  -497,  -215,  -497,  -497,
++    -230,  -497,  -497,  -497,  -497,  -497,  -497,  -241,  -497,  -497,
++    -245,  -497
    };
  
    const short int
    Dhcp6Parser::yydefgoto_[] =
    {
 -      -1,    12,    13,    14,    15,    16,    17,    18,    19,    20,
 -      21,    22,    23,    68,    33,    34,    57,   451,    72,    73,
 -      35,    56,   428,   512,    69,    70,   107,    37,    58,    80,
 -      81,    82,   251,    39,    59,   108,   109,   110,   111,   112,
 -     113,   114,   115,   258,    41,    60,   132,   281,   116,   259,
 -     117,   260,   483,   484,   485,   580,   486,   581,   487,   582,
 -     488,   583,   212,   317,   490,   491,   492,   118,   269,   508,
 -     509,   510,   511,   119,   271,   515,   516,   517,   120,   270,
 -     121,   273,   521,   522,   523,   606,    55,    67,   242,   243,
 -     244,   329,   245,   330,   122,   274,   530,   531,   532,   533,
 -     534,   535,   536,   537,   123,   266,   495,   496,   497,   590,
 -      43,    61,   150,   151,   152,   286,   153,   287,   154,   288,
 -     155,   292,   156,   291,   157,   158,   124,   267,   499,   500,
 -     501,   593,    51,    65,   213,   214,   215,   216,   217,   218,
 -     219,   316,   220,   320,   221,   319,   222,   223,   321,   224,
 -     125,   268,   503,   504,   505,   596,    53,    66,   231,   232,
 -     233,   234,   235,   325,   236,   237,   238,   160,   284,   562,
 -     563,   564,   630,    45,    62,   168,   169,   170,   297,   171,
 -     298,   161,   285,   566,   567,   568,   633,    47,    63,   180,
 -     181,   182,   301,   183,   184,   303,   185,   186,   162,   293,
 -     570,   571,   572,   636,    49,    64,   195,   196,   197,   198,
 -     309,   199,   310,   200,   311,   201,   312,   202,   313,   203,
 -     308,   163,   294,   574,   639,   126,   272,   519,   283,   368,
 -     369,   370,   371,   372,   437,   127,   275,   545,   546,   547,
 -     617,   698,   548,   549,   618,   550,   551,   128,   129,   277,
 -     554,   555,   556,   624,   557,   625,   130,   278,    83,   253,
 -      84,   254,    85,   252,   471,   472,   473,   576,   707,   708,
 -     709,   717,   718,   719,   720,   725,   721,   723,   735,   736,
 -     737,   741,   742,   744
 +      -1,    13,    14,    15,    16,    17,    18,    19,    20,    21,
 +      22,    23,    24,    25,    73,    35,    36,    61,    77,    78,
-       37,    60,    74,    75,   502,   639,   712,   713,   112,    39,
++      37,    60,    74,    75,   502,   637,   709,   710,   112,    39,
 +      62,    85,    86,    87,   286,    41,    63,   113,   114,   115,
 +     116,   117,   118,   119,   120,   293,    43,    64,   137,   316,
-      121,   294,   122,   295,   562,   563,   564,   661,   778,   565,
-      662,   566,   663,   567,   664,   214,   351,   569,   570,   571,
-      572,   123,   304,   588,   589,   590,   591,   124,   306,   595,
-      596,   597,   125,   305,   126,   308,   601,   602,   603,   688,
-       57,    71,   244,   245,   246,   363,   247,   364,   127,   309,
-      610,   611,   612,   613,   614,   615,   616,   617,   128,   301,
-      575,   576,   577,   672,    45,    65,   155,   156,   157,   321,
-      158,   322,   159,   323,   160,   327,   161,   326,   162,   163,
-      129,   302,   579,   580,   581,   675,    53,    69,   215,   216,
-      217,   218,   219,   220,   221,   350,   222,   354,   223,   353,
-      224,   225,   355,   226,   130,   303,   583,   584,   585,   678,
-       55,    70,   233,   234,   235,   236,   237,   359,   238,   239,
-      240,   165,   319,   643,   644,   645,   715,    47,    66,   172,
-      173,   174,   332,   166,   320,   647,   648,   649,   718,    49,
-       67,   182,   183,   184,   335,   185,   186,   337,   187,   188,
-      167,   328,   651,   652,   653,   721,    51,    68,   197,   198,
-      199,   200,   343,   201,   344,   202,   345,   203,   346,   204,
-      347,   205,   342,   168,   329,   655,   724,   131,   307,   599,
-      318,   419,   420,   421,   422,   423,   503,   132,   310,   625,
-      626,   627,   699,   789,   628,   629,   700,   630,   631,   133,
-      134,   312,   634,   635,   636,   706,   637,   707,   135,   313,
-       59,    72,   264,   265,   266,   267,   368,   268,   369,   269,
-      270,   371,   271,   272,   273,   374,   537,   274,   375,   275,
-      276,   277,   278,   279,   380,   544,   280,   381,    88,   288,
-       89,   289,    90,   287,   549,   550,   551,   657,   799,   800,
-      801,   809,   810,   811,   812,   817,   813,   815,   827,   828,
-      829,   833,   834,   836
++     121,   294,   122,   295,   561,   562,   563,   659,   564,   660,
++     565,   661,   566,   662,   214,   351,   568,   569,   570,   123,
++     304,   586,   587,   588,   589,   124,   306,   593,   594,   595,
++     125,   305,   126,   308,   599,   600,   601,   685,    57,    71,
++     244,   245,   246,   363,   247,   364,   127,   309,   608,   609,
++     610,   611,   612,   613,   614,   615,   128,   301,   573,   574,
++     575,   669,    45,    65,   155,   156,   157,   321,   158,   322,
++     159,   323,   160,   327,   161,   326,   162,   163,   129,   302,
++     577,   578,   579,   672,    53,    69,   215,   216,   217,   218,
++     219,   220,   221,   350,   222,   354,   223,   353,   224,   225,
++     355,   226,   130,   303,   581,   582,   583,   675,    55,    70,
++     233,   234,   235,   236,   237,   359,   238,   239,   240,   165,
++     319,   641,   642,   643,   712,    47,    66,   172,   173,   174,
++     332,   166,   320,   645,   646,   647,   715,    49,    67,   182,
++     183,   184,   335,   185,   186,   337,   187,   188,   167,   328,
++     649,   650,   651,   718,    51,    68,   197,   198,   199,   200,
++     343,   201,   344,   202,   345,   203,   346,   204,   347,   205,
++     342,   168,   329,   653,   721,   131,   307,   597,   318,   419,
++     420,   421,   422,   423,   503,   132,   310,   623,   624,   625,
++     696,   781,   626,   627,   697,   628,   629,   133,   134,   312,
++     632,   633,   634,   703,   635,   704,   135,   313,    59,    72,
++     264,   265,   266,   267,   368,   268,   369,   269,   270,   371,
++     271,   272,   273,   374,   537,   274,   375,   275,   276,   277,
++     278,   279,   380,   544,   280,   381,    88,   288,    89,   289,
++      90,   287,   549,   550,   551,   655,   791,   792,   793,   801,
++     802,   803,   804,   809,   805,   807,   819,   820,   821,   825,
++     826,   828
    };
  
    const unsigned short int
    Dhcp6Parser::yytable_[] =
    {
-       84,   231,   624,   150,   170,   180,   195,   213,   229,   243,
-      263,   232,   230,   598,   164,   171,   181,   196,   151,   594,
-      152,   153,    34,   154,    27,   138,    28,    79,    29,   586,
-       26,   681,    38,   101,   682,   101,   207,    91,    40,    92,
-       93,   241,   242,   169,   291,    94,    95,    96,    97,   292,
-       42,   138,   101,    94,    95,    96,    97,    98,    99,   100,
-      101,   139,   415,   140,   774,   775,   776,   777,   206,   141,
-      142,   143,   144,   145,   146,   207,   227,   208,   209,   228,
-      147,   148,    44,   102,   103,   104,   105,   149,   207,   207,
-      208,   209,    46,   210,   211,   212,   618,   106,   101,   587,
-      107,   241,   242,   553,   557,    83,   147,   108,   554,   555,
-      556,   557,   558,   559,   560,   109,   110,   314,    48,   111,
-      330,   333,   315,   207,   189,   331,   334,    50,   190,   191,
-      192,   193,   194,    80,   101,    83,   340,    83,   365,    81,
-       82,   341,   684,   366,    52,   685,   175,   176,   177,   178,
-      179,   535,   536,    83,    83,    30,    31,    32,    33,   382,
-      314,    54,    83,    76,   383,   656,   619,   620,   621,   622,
-      686,    56,   804,   687,   805,   806,    83,    58,   539,   540,
-      541,   542,   604,   605,   606,   607,   608,   609,   658,    83,
-       83,   669,   669,   659,   697,   136,   670,   671,   704,   698,
-       83,   708,   382,   705,   745,   543,   709,   710,   624,   594,
-      330,   365,   281,   333,   340,   782,   785,    83,   794,   795,
-      818,   837,   632,   633,    83,   819,   838,   802,   830,    84,
-      803,   831,   786,   787,   788,   282,    83,   283,   248,   249,
-      250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
-      260,   261,   262,   518,   519,   520,   416,   284,   586,   593,
-      417,   285,   317,   290,   296,   297,   298,   418,   150,   299,
-      300,   170,   311,   324,   325,   336,   338,   339,   180,   164,
-       83,   349,   171,   151,   348,   152,   153,   195,   154,   181,
-      384,   385,   352,   231,   356,   357,   213,   358,   196,   360,
-      229,   361,   362,   232,   230,     1,     2,     3,     4,     5,
-        6,     7,     8,     9,    10,    11,    12,   367,   370,   372,
-      263,   373,   376,   377,   378,   379,   386,   387,   388,   389,
-      390,   392,   393,   394,   395,   400,   401,   396,   397,   398,
-      399,   402,   403,   404,   405,   406,   407,   408,   409,   410,
-      411,   412,   414,   424,   425,   426,   427,   428,   429,   430,
-      431,   432,   433,   434,   436,   438,   439,   440,   441,   444,
-      445,   442,   446,   447,   448,   449,   451,   452,   453,   454,
-      455,   456,   457,   459,   460,   462,   463,   465,   466,   467,
-      468,   469,   470,   471,   472,   473,   474,   484,   485,   478,
-      479,   481,   475,   476,   489,   482,   477,   483,   486,   487,
-      488,   490,   491,   492,   493,   494,   495,   496,   508,   509,
-      497,   498,   499,   500,   501,   561,   561,   505,   504,   568,
-      568,   506,   507,   510,   511,   513,   623,   512,   263,   514,
-      515,   516,   517,   416,   521,   522,   523,   417,   524,   574,
-      578,   582,   525,   600,   418,   640,   642,   646,   526,   650,
-      665,   660,   654,   666,   667,   668,   527,   674,   673,   528,
-      529,   531,   530,   538,   676,   677,   679,   680,   690,   683,
-      717,   532,   689,   691,   548,   692,   693,   694,   695,   546,
-      533,   534,   696,   701,   702,   703,   592,   720,   716,   719,
-      545,   722,   723,   764,   725,   726,   728,   729,   730,   731,
-      711,   755,   756,   761,   714,   762,   765,   773,   772,   732,
-      733,   816,   820,   783,   779,   734,   735,   784,   796,   798,
-      748,   749,   822,   826,   824,   839,   413,   391,   547,   573,
-      736,   750,   751,   552,   743,   744,   747,   746,   754,   464,
-      738,   737,   740,   435,   752,   753,   832,   739,   757,   758,
-      759,   780,   458,   742,   781,   790,   741,   791,   766,   792,
-      793,   797,   767,   821,   825,   841,   461,   437,   769,   443,
-      768,   641,   760,   771,   450,   770,   638,   480,   763,   814,
-      727,   823,   835,   840,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,     0,   561,     0,   231,
-      150,   568,     0,   213,     0,     0,   229,     0,     0,   232,
-      230,   164,     0,     0,     0,   151,   243,   152,   153,     0,
-      154,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,   623,     0,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,   170,     0,     0,   180,     0,     0,   195,
-        0,     0,     0,     0,   171,     0,     0,   181,     0,     0,
-      196,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 -      79,   228,   544,   145,   166,   177,   193,   211,   227,   241,
 -     146,   159,   167,   178,   194,   179,   147,   229,    32,   230,
 -     518,   148,   514,   133,    25,   149,    26,    74,    27,   475,
 -     476,   477,   478,   479,   480,   481,    96,   506,    89,    90,
 -      91,    92,   538,    24,   205,    96,   479,    36,   172,   173,
 -     174,   175,   176,   165,   134,   599,   135,   256,   600,   131,
 -     239,   240,   257,   136,   137,   138,   139,   140,   141,   205,
 -     225,   206,   207,   226,   142,   143,    86,   602,    87,    88,
 -     603,   144,   204,   133,   507,   506,   513,    89,    90,    91,
 -      92,    93,    94,    95,    96,    96,    38,   205,   205,   206,
 -     207,    78,   208,   209,   210,   164,    96,    75,   539,   540,
 -     541,   542,   165,    76,    77,    40,    78,    42,    97,    98,
 -      99,   100,   279,    78,   436,    78,    78,   280,    28,    29,
 -      30,    31,   101,   187,   142,   102,    78,   188,   189,   190,
 -     191,   192,   103,    96,   205,    44,   604,   295,    78,   605,
 -     104,   105,   296,   299,   106,   454,   455,   456,   300,    46,
 -     712,    48,   713,   714,   524,   525,   526,   527,   528,   529,
 -      50,   364,    52,   306,    78,    78,    78,    78,   307,   331,
 -     279,    54,   577,   587,   332,   575,    78,   578,   588,    71,
 -     710,   544,   587,   711,   660,   514,   246,   589,    79,     1,
 -       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
 -     615,   622,   626,   247,   250,   616,   623,   627,   366,   628,
 -     248,   295,   331,    78,   299,   365,   691,   694,   249,   702,
 -     306,   726,   250,   367,   745,   703,   727,   145,   255,   746,
 -     738,   166,   261,   739,   146,   159,   239,   240,   177,   167,
 -     147,   262,   333,   334,   263,   148,   178,   193,   179,   149,
 -     695,   696,   697,   228,   264,   194,   211,   265,   552,   553,
 -     227,   276,   282,   289,   290,   302,   304,   305,   315,   229,
 -     318,   230,   314,   322,   324,   323,   326,   328,   327,   336,
 -     337,   338,   335,   339,   341,   342,   343,   349,   344,   350,
 -     351,   345,   346,   347,   348,   352,   353,   354,   355,   356,
 -     357,   358,   359,   360,   361,   363,   373,   374,   375,   376,
 -     377,   380,   378,   381,   382,   379,   383,   385,   386,   388,
 -     390,   394,   389,   391,   392,   395,   396,   397,   398,   399,
 -     401,   402,   403,   418,   419,   404,   405,   406,   407,   409,
 -     412,   410,   413,   415,   416,   423,   489,   489,   417,   420,
 -     421,   422,   424,   482,   482,   425,   426,   427,   429,   430,
 -     431,   439,   440,   432,   366,   543,   433,   434,   435,   441,
 -     438,   365,   447,   448,   559,    26,   494,   442,   498,   367,
 -     502,   520,   443,   561,   565,   569,   584,   444,   579,   585,
 -     586,   609,   592,   445,   591,   595,   446,   449,   452,   453,
 -     594,   597,   598,   607,   608,   686,   610,   457,   467,   611,
 -     468,   612,   573,   613,   614,   619,   620,   458,   621,   631,
 -     459,   632,   634,   635,   638,   637,   450,   460,   461,   462,
 -     640,   641,   643,   644,   645,   646,   470,   463,   464,   465,
 -     658,   670,   671,   466,   676,   677,   685,   692,   601,   724,
 -     558,   693,   704,   706,   728,   730,   734,   629,   732,   747,
 -     340,   647,   469,   474,   362,   650,   657,   493,   659,   662,
 -     661,   669,   414,   648,   652,   651,   654,   649,   408,   653,
 -     655,   384,   663,   680,   411,   664,   656,   679,   387,   665,
 -     682,   666,   681,   667,   668,   675,   740,   393,   684,   683,
 -     672,   673,   400,   674,   560,   687,   678,   688,   642,   722,
 -     731,   743,   489,   689,   748,   690,     0,   699,     0,   482,
 -       0,   228,   145,     0,   700,   211,   701,     0,   227,   146,
 -     159,     0,   705,     0,   729,   147,     0,   229,   241,   230,
 -     148,   733,   749,     0,   149,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,   543,     0,     0,     0,     0,     0,
 -       0,     0,   166,     0,     0,   177,     0,     0,   193,     0,
 -     167,     0,     0,   178,     0,   179,   194,     0,     0,     0,
++      84,   231,   622,   150,   170,   180,   195,   213,   229,   243,
++     263,   232,   230,   596,   164,   171,   181,   196,   151,   592,
++     152,   153,    34,   154,    27,   138,    28,    79,    29,   553,
++     554,   555,   556,   557,   558,   559,   101,    26,   101,   584,
++      94,    95,    96,    97,   207,   616,   169,   101,    76,   557,
++     175,   176,   177,   178,   179,   136,   139,    38,   140,   539,
++     540,   541,   542,   206,   141,   142,   143,   144,   145,   146,
++     101,   207,   207,   241,   242,   147,   148,    40,   207,   138,
++     208,   209,   149,   210,   211,   212,   543,    42,   101,    91,
++     291,    92,    93,   314,   281,   292,    44,   415,   315,    46,
++      94,    95,    96,    97,    98,    99,   100,   101,    48,   585,
++     617,   618,   619,   620,   189,   778,   779,   780,   190,   191,
++     192,   193,   194,   207,   227,   208,   209,   228,    80,   147,
++     102,   103,   104,   105,    81,    82,   330,    83,    83,   678,
++      83,   331,   679,   681,   106,    83,   682,   107,    83,    83,
++      30,    31,    32,    33,   108,   796,    50,   797,   798,   333,
++     340,    83,   109,   110,   334,   341,   111,   241,   242,   365,
++     382,   314,    83,    83,   366,   383,   654,   535,   536,    83,
++     602,   603,   604,   605,   606,   607,   656,   666,   666,   694,
++      83,   657,   667,   668,   695,   701,    52,   705,   382,   330,
++     702,   741,   706,   707,   774,   622,   592,   584,   591,    83,
++       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
++      11,    12,   365,   333,    83,   630,   631,   777,   786,    84,
++     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
++     258,   259,   260,   261,   262,   340,   810,   829,    54,   283,
++     787,   811,   830,    56,   683,   794,   416,   684,   795,   822,
++     417,    58,   823,   518,   519,   520,   282,   418,   150,   284,
++     285,   170,    83,   290,   296,   297,   298,   299,   180,   164,
++     300,   311,   171,   151,   324,   152,   153,   195,   154,   181,
++     384,   385,   317,   231,   325,   336,   213,   338,   196,   339,
++     229,   349,   348,   232,   230,   352,   356,   357,   358,   386,
++     360,   361,   362,   395,   367,   370,   372,   373,   376,   377,
++     263,   378,   379,   387,   388,   389,   390,   392,   393,   394,
++     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
++     406,   407,   408,   409,   410,   411,   412,   414,   424,   425,
++     426,   427,   428,   429,   431,   432,   430,   433,   434,   436,
++     438,   439,   440,   441,   442,   444,   445,   446,   447,   448,
++     449,   451,   452,   454,   455,   456,   459,   462,   463,   453,
++     466,   467,   457,   460,   465,   468,   469,   470,   472,   471,
++     473,   478,   474,   475,   476,   479,   477,   484,   485,   481,
++     482,   483,   505,   486,   487,   488,   489,   490,   491,   492,
++     493,   494,   495,   496,   508,   729,   497,   498,   499,   500,
++     501,   504,   506,   507,   513,   560,   560,   509,   510,   567,
++     567,   511,   514,   572,   576,   512,   621,   580,   263,   515,
++     598,   638,   640,   416,   658,   644,   538,   417,   648,   663,
++     664,   665,   671,   769,   418,   652,   670,   516,   517,   521,
++     522,   673,   674,   676,   677,   790,   680,   687,   686,   688,
++     689,   531,   690,   691,   692,   693,   698,   699,   700,   714,
++     523,   713,   717,   524,   716,   720,   719,   723,   525,   546,
++     526,   527,   722,   725,   726,   727,   728,   751,   752,   757,
++     548,   758,   760,   761,   590,   768,   528,   775,   808,   529,
++     530,   532,   533,   776,   534,   788,   545,   812,   814,   818,
++     708,   816,   831,   711,   391,   413,   547,   571,   732,   739,
++     740,   552,   730,   743,   464,   742,   750,   734,   733,   435,
++     735,   736,   738,   763,   461,   458,   737,   770,   731,   762,
++     437,   765,   744,   745,   746,   747,   748,   450,   764,   767,
++     749,   753,   766,   754,   755,   771,   443,   639,   824,   759,
++     772,   773,   480,   782,   783,   784,   756,   636,   724,   806,
++     815,   827,   785,   789,   832,   813,     0,   817,     0,     0,
++       0,     0,     0,     0,   833,     0,     0,     0,     0,     0,
++       0,     0,     0,     0,   560,     0,   231,   150,   567,     0,
++     213,     0,     0,   229,     0,     0,   232,   230,   164,     0,
++       0,     0,   151,   243,   152,   153,     0,   154,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,     0,   621,
++       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
++     170,     0,     0,   180,     0,     0,   195,     0,     0,     0,
++       0,   171,     0,     0,   181,     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,     0,   807,
-        0,     0,     0,   808,     0,     0,     0,     0,     0,     0,
-        0,     0,     0,     0,     0,     0,   807,     0,     0,     0,
-      808
+        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,     0,     0,     0,   716,     0,     0,     0,     0,     0,
 -       0,   715,     0,     0,     0,     0,     0,     0,     0,     0,
 -       0,   716,     0,     0,     0,     0,     0,     0,   715
++       0,   799,     0,     0,     0,   800,     0,     0,     0,     0,
++       0,     0,     0,     0,     0,     0,     0,     0,   799,     0,
++       0,     0,   800
    };
  
    const short int
    Dhcp6Parser::yycheck_[] =
    {
 -      58,    66,   433,    61,    62,    63,    64,    65,    66,    67,
 -      61,    61,    62,    63,    64,    63,    61,    66,    13,    66,
 -     430,    61,   429,     7,     5,    61,     7,    10,     9,    15,
 -      16,    17,    18,    19,    20,    21,    29,    62,    22,    23,
 -      24,    25,    15,     0,    30,    29,    19,     7,    41,    42,
 -      43,    44,    45,    46,    38,     3,    40,     3,     6,    12,
 -      68,    69,     8,    47,    48,    49,    50,    51,    52,    30,
 -      31,    32,    33,    34,    58,    59,    11,     3,    13,    14,
 -       6,    65,    15,     7,   109,    62,    63,    22,    23,    24,
 -      25,    26,    27,    28,    29,    29,     7,    30,    30,    32,
 -      33,   109,    35,    36,    37,    39,    29,    90,    81,    82,
 -      83,    84,    46,    96,    97,     7,   109,     7,    53,    54,
 -      55,    56,     3,   109,   363,   109,   109,     8,   109,   110,
 -     111,   112,    67,    56,    58,    70,   109,    60,    61,    62,
 -      63,    64,    77,    29,    30,     7,     3,     3,   109,     6,
 -      85,    86,     8,     3,    89,   394,   395,   396,     8,     7,
 -      92,     7,    94,    95,    71,    72,    73,    74,    75,    76,
 -       7,    57,     7,     3,   109,   109,   109,   109,     8,     3,
 -       3,     7,     3,     3,     8,     8,   109,     8,     8,   109,
 -       3,   622,     3,     6,   604,   602,     6,     8,   256,    98,
 -      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
 -       3,     3,     3,     3,     3,     8,     8,     8,   283,     8,
 -       4,     3,     3,   109,     3,   283,     8,     8,     8,     8,
 -       3,     3,     3,   283,     3,     8,     8,   295,     4,     8,
 -       3,   299,     4,     6,   295,   295,    68,    69,   306,   299,
 -     295,     4,   247,   248,     4,   295,   306,   315,   306,   295,
 -      78,    79,    80,   328,     4,   315,   324,     4,    87,    88,
 -     328,     4,     8,     4,     4,     4,     4,     4,     3,   328,
 -       4,   328,     8,     4,     3,     8,     4,     3,     8,     4,
 -       4,     4,   109,     4,     4,     4,     4,     4,   110,     4,
 -       4,   110,   110,   110,   110,     4,     4,     4,     4,     4,
 -       4,     4,   110,     4,     4,     4,     4,     4,     4,     4,
 -       4,     4,   110,     4,     4,   112,     4,     4,     4,     4,
 -       4,     4,   110,   110,   110,     4,     4,     4,     4,     4,
 -       4,     4,   110,   338,   339,     4,     4,     4,   112,     4,
 -       4,   112,     4,     4,     7,     5,   421,   422,     7,     7,
 -       7,     7,     5,   421,   422,     5,     5,     5,     5,     5,
 -       5,     3,     5,     7,   439,   433,     7,     7,     7,     5,
 -       8,   439,     5,     7,     4,     7,     7,   109,     7,   439,
 -       7,     7,   109,     7,     7,     7,     4,   109,     8,     4,
 -       4,     4,     3,   109,     6,     3,   109,   109,   109,   109,
 -       6,     6,     3,     6,     3,     5,     4,   109,   413,     4,
 -     415,     4,    66,     4,     4,     4,     4,   109,     4,     6,
 -     109,     3,     6,     3,     3,     6,   386,   109,   109,   109,
 -       8,     4,     4,     4,     4,     4,    91,   109,   109,   109,
 -       6,     4,     4,   109,     4,     4,     4,     8,   512,     4,
 -     435,     8,     8,     7,     4,     4,     7,   109,     5,     4,
 -     256,   112,   416,   420,   279,   587,   599,   422,   602,   608,
 -     606,   615,   331,   110,   592,   590,   595,   112,   324,   593,
 -     596,   295,   110,   632,   328,   110,   598,   630,   299,   110,
 -     635,   110,   633,   110,   110,   622,    93,   306,   638,   636,
 -     110,   110,   315,   110,   439,   109,   626,   109,   577,   710,
 -     726,   738,   587,   109,   745,   109,    -1,   109,    -1,   587,
 -      -1,   596,   590,    -1,   109,   593,   109,    -1,   596,   590,
 -     590,    -1,   109,    -1,   110,   590,    -1,   596,   606,   596,
 -     590,   109,   109,    -1,   590,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,    -1,    -1,   622,    -1,    -1,    -1,    -1,    -1,
 -      -1,    -1,   630,    -1,    -1,   633,    -1,    -1,   636,    -1,
 -     630,    -1,    -1,   633,    -1,   633,   636,    -1,    -1,    -1,
 +      62,    70,   498,    65,    66,    67,    68,    69,    70,    71,
 +      72,    70,    70,   495,    65,    66,    67,    68,    65,   494,
-       65,    65,    14,    65,     5,     7,     7,    10,     9,    66,
-        0,     3,     7,    34,     6,    34,    35,    11,     7,    13,
-       14,    72,    73,    44,     3,    27,    28,    29,    30,     8,
-        7,     7,    34,    27,    28,    29,    30,    31,    32,    33,
-       34,    43,    61,    45,    16,    17,    18,    19,    15,    51,
-       52,    53,    54,    55,    56,    35,    36,    37,    38,    39,
-       62,    63,     7,    57,    58,    59,    60,    69,    35,    35,
-       37,    38,     7,    40,    41,    42,    15,    71,    34,   136,
-       74,    72,    73,    15,    23,   136,    62,    81,    20,    21,
-       22,    23,    24,    25,    26,    89,    90,     3,     7,    93,
-        3,     3,     8,    35,    60,     8,     8,     7,    64,    65,
-       66,    67,    68,   116,    34,   136,     3,   136,     3,   122,
-      123,     8,     3,     8,     7,     6,    46,    47,    48,    49,
-       50,   109,   110,   136,   136,   136,   137,   138,   139,     3,
-        3,     7,   136,   136,     8,     8,    85,    86,    87,    88,
-        3,     7,   118,     6,   120,   121,   136,     7,   112,   113,
-      114,   115,    75,    76,    77,    78,    79,    80,     3,   136,
-      136,     3,     3,     8,     3,    12,     8,     8,     3,     8,
-      136,     3,     3,     8,   686,   139,     8,     8,   704,   684,
-        3,     3,     6,     3,     3,     8,     8,   136,     8,     8,
-        3,     3,    91,    92,   136,     8,     8,     3,     3,   291,
-        6,     6,    82,    83,    84,     3,   136,     4,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-      106,   107,   108,   444,   445,   446,   318,     8,    66,    67,
-      318,     3,     8,     4,     4,     4,     4,   318,   330,     4,
-        4,   333,     4,     4,     4,     4,     4,     4,   340,   330,
-      136,     3,   333,   330,     8,   330,   330,   349,   330,   340,
-      282,   283,     4,   362,     4,     8,   358,     3,   349,     4,
-      362,     8,     3,   362,   362,   124,   125,   126,   127,   128,
-      129,   130,   131,   132,   133,   134,   135,     4,     4,     4,
-      382,     4,     4,     4,     4,     4,   136,     4,     4,     4,
-        4,     4,     4,     4,   137,     4,     4,   137,   137,   137,
-      137,     4,     4,     4,     4,     4,     4,     4,     4,   137,
-        4,     4,     4,     4,     4,     4,     4,     4,   137,   139,
-        4,     4,     4,     4,     4,     4,   137,     4,   137,     4,
-        4,   137,     4,     4,     4,     4,     4,     4,   137,     4,
-        4,     4,   139,     4,   139,     4,     4,   139,     4,     4,
-      137,     4,   137,   137,     4,     4,   139,   389,   390,     4,
-        4,     4,   139,   139,     5,     7,   139,     7,     7,     7,
-        7,     5,     5,     5,     5,     5,     5,     5,   136,   136,
-        7,     7,     7,     7,     5,   487,   488,     3,     8,   487,
-      488,     5,     5,   136,   136,     5,   498,   136,   500,     7,
-      136,   136,   136,   505,   136,   136,   136,   505,   136,     7,
-        7,     7,   136,     7,   505,     4,     7,     7,   136,     7,
-        4,     8,    70,     4,     4,     4,   136,     3,     6,   136,
-      136,   463,   136,   111,     6,     3,     6,     3,     3,     6,
-        3,   136,     6,     4,   117,     4,     4,     4,     4,   481,
-      136,   136,     4,     4,     4,     4,   493,     3,     6,     6,
-      136,     6,     3,     6,     8,     4,     4,     4,     4,     4,
-      136,     4,     4,     4,   136,     4,     3,     5,     4,   139,
-      137,     4,     4,     8,   136,   139,   137,     8,     8,     7,
-      137,   137,     4,     7,     5,     4,   314,   291,   482,   488,
-      669,   137,   137,   486,   681,   684,   690,   688,   697,   365,
-      674,   672,   677,   330,   137,   137,   119,   675,   137,   137,
-      137,   136,   358,   680,   136,   136,   678,   136,   715,   136,
-      136,   136,   717,   137,   136,   136,   362,   333,   720,   340,
-      718,   505,   704,   723,   349,   721,   500,   382,   708,   802,
-      658,   818,   830,   837,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,   669,    -1,   678,
-      672,   669,    -1,   675,    -1,    -1,   678,    -1,    -1,   678,
-      678,   672,    -1,    -1,    -1,   672,   688,   672,   672,    -1,
-      672,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,   704,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,   715,    -1,    -1,   718,    -1,    -1,   721,
-       -1,    -1,    -1,    -1,   715,    -1,    -1,   718,    -1,    -1,
-      721,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
++      65,    65,    14,    65,     5,     7,     7,    10,     9,    15,
++      16,    17,    18,    19,    20,    21,    29,     0,    29,    61,
++      22,    23,    24,    25,    30,    15,    39,    29,   131,    19,
++      41,    42,    43,    44,    45,    12,    38,     7,    40,   107,
++     108,   109,   110,    15,    46,    47,    48,    49,    50,    51,
++      29,    30,    30,    67,    68,    57,    58,     7,    30,     7,
++      32,    33,    64,    35,    36,    37,   134,     7,    29,    11,
++       3,    13,    14,     3,     6,     8,     7,    56,     8,     7,
++      22,    23,    24,    25,    26,    27,    28,    29,     7,   131,
++      80,    81,    82,    83,    55,    77,    78,    79,    59,    60,
++      61,    62,    63,    30,    31,    32,    33,    34,   111,    57,
++      52,    53,    54,    55,   117,   118,     3,   131,   131,     3,
++     131,     8,     6,     3,    66,   131,     6,    69,   131,   131,
++     131,   132,   133,   134,    76,   113,     7,   115,   116,     3,
++       3,   131,    84,    85,     8,     8,    88,    67,    68,     3,
++       3,     3,   131,   131,     8,     8,     8,   104,   105,   131,
++      70,    71,    72,    73,    74,    75,     3,     3,     3,     3,
++     131,     8,     8,     8,     8,     3,     7,     3,     3,     3,
++       8,   683,     8,     8,     8,   701,   681,    61,    62,   131,
++     119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
++     129,   130,     3,     3,   131,    86,    87,     8,     8,   291,
++      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
++      99,   100,   101,   102,   103,     3,     3,     3,     7,     4,
++       8,     8,     8,     7,     3,     3,   318,     6,     6,     3,
++     318,     7,     6,   444,   445,   446,     3,   318,   330,     8,
++       3,   333,   131,     4,     4,     4,     4,     4,   340,   330,
++       4,     4,   333,   330,     4,   330,   330,   349,   330,   340,
++     282,   283,     8,   362,     4,     4,   358,     4,   349,     4,
++     362,     3,     8,   362,   362,     4,     4,     8,     3,   131,
++       4,     8,     3,   132,     4,     4,     4,     4,     4,     4,
++     382,     4,     4,     4,     4,     4,     4,     4,     4,     4,
++     132,   132,   132,   132,     4,     4,     4,     4,     4,     4,
++       4,     4,     4,     4,   132,     4,     4,     4,     4,     4,
++       4,     4,     4,   132,     4,     4,   134,     4,     4,     4,
++       4,   132,     4,   132,   132,     4,     4,     4,     4,     4,
++       4,     4,     4,     4,     4,     4,     4,     4,     4,   132,
++       4,     4,   134,   134,   134,   132,     4,   132,     4,   132,
++       4,     4,   134,   134,   134,     4,   134,   389,   390,     4,
++       7,     7,     3,     7,     7,     7,     5,     5,     5,     5,
++       5,     5,     5,     5,   131,   134,     7,     7,     7,     7,
++       5,     8,     5,     5,     5,   487,   488,   131,   131,   487,
++     488,   131,     7,     7,     7,   131,   498,     7,   500,   131,
++       7,     4,     7,   505,     8,     7,   106,   505,     7,     4,
++       4,     4,     3,     5,   505,    65,     6,   131,   131,   131,
++     131,     6,     3,     6,     3,     7,     6,     3,     6,     4,
++       4,   463,     4,     4,     4,     4,     4,     4,     4,     3,
++     131,     6,     3,   131,     6,     3,     6,     4,   131,   481,
++     131,   131,     8,     4,     4,     4,     4,     4,     4,     4,
++     112,     4,     6,     3,   493,     4,   131,     8,     4,   131,
++     131,   131,   131,     8,   131,     8,   131,     4,     4,     7,
++     131,     5,     4,   131,   291,   314,   482,   488,   666,   678,
++     681,   486,   132,   687,   365,   685,   694,   671,   669,   330,
++     672,   674,   677,   714,   362,   358,   675,   131,   134,   712,
++     333,   717,   132,   132,   132,   132,   132,   349,   715,   720,
++     132,   132,   718,   132,   132,   131,   340,   505,   114,   705,
++     131,   131,   382,   131,   131,   131,   701,   500,   656,   794,
++     810,   822,   131,   131,   829,   132,    -1,   131,    -1,    -1,
++      -1,    -1,    -1,    -1,   131,    -1,    -1,    -1,    -1,    -1,
++      -1,    -1,    -1,    -1,   666,    -1,   675,   669,   666,    -1,
++     672,    -1,    -1,   675,    -1,    -1,   675,   675,   669,    -1,
++      -1,    -1,   669,   685,   669,   669,    -1,   669,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   701,
+       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
++     712,    -1,    -1,   715,    -1,    -1,   718,    -1,    -1,    -1,
++      -1,   712,    -1,    -1,   715,    -1,    -1,   718,    -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,   709,    -1,    -1,    -1,    -1,    -1,
 -      -1,   709,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 -      -1,   726,    -1,    -1,    -1,    -1,    -1,    -1,   726
 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   801,
-       -1,    -1,    -1,   801,    -1,    -1,    -1,    -1,    -1,    -1,
-       -1,    -1,    -1,    -1,    -1,    -1,   818,    -1,    -1,    -1,
-      818
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
++      -1,   793,    -1,    -1,    -1,   793,    -1,    -1,    -1,    -1,
++      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   810,    -1,
++      -1,    -1,   810
    };
  
    const unsigned short int
    Dhcp6Parser::yystos_[] =
    {
-        0,   124,   125,   126,   127,   128,   129,   130,   131,   132,
-      133,   134,   135,   141,   142,   143,   144,   145,   146,   147,
-      148,   149,   150,   151,   152,   153,     0,     5,     7,     9,
-      136,   137,   138,   139,   154,   155,   156,   160,     7,   169,
-        7,   175,     7,   186,     7,   254,     7,   317,     7,   329,
-        7,   346,     7,   276,     7,   300,     7,   230,     7,   400,
-      161,   157,   170,   176,   187,   255,   318,   330,   347,   277,
-      301,   231,   401,   154,   162,   163,   136,   158,   159,    10,
-      116,   122,   123,   136,   168,   171,   172,   173,   428,   430,
-      432,    11,    13,    14,    27,    28,    29,    30,    31,    32,
-       33,    34,    57,    58,    59,    60,    71,    74,    81,    89,
-       90,    93,   168,   177,   178,   179,   180,   181,   182,   183,
-      184,   190,   192,   211,   217,   222,   224,   238,   248,   270,
-      294,   367,   377,   389,   390,   398,    12,   188,     7,    43,
-       45,    51,    52,    53,    54,    55,    56,    62,    63,    69,
-      168,   179,   180,   181,   182,   256,   257,   258,   260,   262,
-      264,   266,   268,   269,   294,   311,   323,   340,   363,    44,
-      168,   294,   319,   320,   321,    46,    47,    48,    49,    50,
-      168,   294,   331,   332,   333,   335,   336,   338,   339,    60,
-       64,    65,    66,    67,    68,   168,   294,   348,   349,   350,
-      351,   353,   355,   357,   359,   361,    15,    35,    37,    38,
-       40,    41,    42,   168,   205,   278,   279,   280,   281,   282,
-      283,   284,   286,   288,   290,   291,   293,    36,    39,   168,
-      205,   282,   288,   302,   303,   304,   305,   306,   308,   309,
-      310,    72,    73,   168,   232,   233,   234,   236,    94,    95,
-       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
-      106,   107,   108,   168,   402,   403,   404,   405,   407,   409,
-      410,   412,   413,   414,   417,   419,   420,   421,   422,   423,
-      426,     6,     3,     4,     8,     3,   174,   433,   429,   431,
-        4,     3,     8,   185,   191,   193,     4,     4,     4,     4,
-        4,   249,   271,   295,   212,   223,   218,   368,   225,   239,
-      378,     4,   391,   399,     3,     8,   189,     8,   370,   312,
-      324,   259,   261,   263,     4,     4,   267,   265,   341,   364,
-        3,     8,   322,     3,     8,   334,     4,   337,     4,     4,
-        3,     8,   362,   352,   354,   356,   358,   360,     8,     3,
-      285,   206,     4,   289,   287,   292,     4,     8,     3,   307,
-        4,     8,     3,   235,   237,     3,     8,     4,   406,   408,
-        4,   411,     4,     4,   415,   418,     4,     4,     4,     4,
-      424,   427,     3,     8,   154,   154,   136,     4,     4,     4,
-        4,   172,     4,     4,     4,   137,   137,   137,   137,   137,
 -       0,    98,    99,   100,   101,   102,   103,   104,   105,   106,
 -     107,   108,   114,   115,   116,   117,   118,   119,   120,   121,
 -     122,   123,   124,   125,     0,     5,     7,     9,   109,   110,
 -     111,   112,   126,   127,   128,   133,     7,   140,     7,   146,
 -       7,   157,     7,   223,     7,   286,     7,   300,     7,   317,
 -       7,   245,     7,   269,     7,   199,   134,   129,   141,   147,
 -     158,   224,   287,   301,   318,   246,   270,   200,   126,   137,
 -     138,   109,   131,   132,    10,    90,    96,    97,   109,   139,
 -     142,   143,   144,   371,   373,   375,    11,    13,    14,    22,
 -      23,    24,    25,    26,    27,    28,    29,    53,    54,    55,
 -      56,    67,    70,    77,    85,    86,    89,   139,   148,   149,
 -     150,   151,   152,   153,   154,   155,   161,   163,   180,   186,
 -     191,   193,   207,   217,   239,   263,   338,   348,   360,   361,
 -     369,    12,   159,     7,    38,    40,    47,    48,    49,    50,
 -      51,    52,    58,    59,    65,   139,   150,   151,   152,   153,
 -     225,   226,   227,   229,   231,   233,   235,   237,   238,   263,
 -     280,   294,   311,   334,    39,    46,   139,   263,   288,   289,
 -     290,   292,    41,    42,    43,    44,    45,   139,   263,   292,
 -     302,   303,   304,   306,   307,   309,   310,    56,    60,    61,
 -      62,    63,    64,   139,   263,   319,   320,   321,   322,   324,
 -     326,   328,   330,   332,    15,    30,    32,    33,    35,    36,
 -      37,   139,   175,   247,   248,   249,   250,   251,   252,   253,
 -     255,   257,   259,   260,   262,    31,    34,   139,   175,   251,
 -     257,   271,   272,   273,   274,   275,   277,   278,   279,    68,
 -      69,   139,   201,   202,   203,   205,     6,     3,     4,     8,
 -       3,   145,   376,   372,   374,     4,     3,     8,   156,   162,
 -     164,     4,     4,     4,     4,     4,   218,   240,   264,   181,
 -     192,   187,   339,   194,   208,   349,     4,   362,   370,     3,
 -       8,   160,     8,   341,   281,   295,   228,   230,   232,     4,
 -       4,   236,   234,   312,   335,     3,     8,   291,   293,     3,
 -       8,   305,     4,   308,     4,     4,     3,     8,   333,   323,
 -     325,   327,   329,   331,     8,     3,   254,   176,     4,   258,
 -     256,   261,     4,     8,     3,   276,     4,     8,     3,   204,
 -     206,     3,     8,   126,   126,   109,     4,     4,     4,     4,
 -     143,     4,     4,     4,   110,   110,   110,   110,   110,     4,
 -       4,     4,     4,     4,     4,     4,     4,     4,     4,   110,
 -       4,     4,   149,     4,    57,   139,   175,   263,   342,   343,
 -     344,   345,   346,     4,     4,     4,     4,     4,   110,   112,
 -       4,     4,     4,     4,   226,     4,     4,   289,     4,   110,
 -       4,   110,   110,   303,     4,     4,     4,     4,     4,     4,
 -     321,     4,     4,   110,     4,     4,     4,   112,   249,     4,
 -     112,   273,     4,     4,   202,     4,     7,     7,   126,   126,
 -       7,     7,     7,     5,     5,     5,     5,     5,   135,     5,
 -       5,     5,     7,     7,     7,     7,   135,   347,     8,     3,
 -       5,     5,   109,   109,   109,   109,   109,     5,     7,   109,
 -     128,   130,   109,   109,   135,   135,   135,   109,   109,   109,
 -     109,   109,   109,   109,   109,   109,   109,   126,   126,   148,
 -      91,   377,   378,   379,   159,    15,    16,    17,    18,    19,
 -      20,    21,   139,   165,   166,   167,   169,   171,   173,   175,
 -     177,   178,   179,   165,     7,   219,   220,   221,     7,   241,
 -     242,   243,     7,   265,   266,   267,    62,   109,   182,   183,
 -     184,   185,   136,    63,   184,   188,   189,   190,   233,   340,
 -       7,   195,   196,   197,    71,    72,    73,    74,    75,    76,
 -     209,   210,   211,   212,   213,   214,   215,   216,    15,    81,
 -      82,    83,    84,   139,   177,   350,   351,   352,   355,   356,
 -     358,   359,    87,    88,   363,   364,   365,   367,   132,     4,
 -     344,     7,   282,   283,   284,     7,   296,   297,   298,     7,
 -     313,   314,   315,    66,   336,     8,   380,     3,     8,     8,
 -     168,   170,   172,   174,     4,     4,     4,     3,     8,     8,
 -     222,     6,     3,   244,     6,     3,   268,     6,     3,     3,
 -       6,   137,     3,     6,     3,     6,   198,     6,     3,     4,
 -       4,     4,     4,     4,     4,     3,     8,   353,   357,     4,
 -       4,     4,     3,     8,   366,   368,     3,     8,     8,   109,
 -     285,     6,     3,   299,     6,     3,   316,     6,     3,   337,
 -       8,     4,   378,     4,     4,     4,     4,   112,   110,   112,
 -     166,   225,   221,   247,   243,   271,   267,   183,     6,   189,
 -     233,   201,   197,   110,   110,   110,   110,   110,   110,   210,
 -       4,     4,   110,   110,   110,   351,     4,     4,   364,   288,
 -     284,   302,   298,   319,   315,     4,     5,   109,   109,   109,
 -     109,     8,     8,     8,     8,    78,    79,    80,   354,   109,
 -     109,   109,     8,     8,     8,   109,     7,   381,   382,   383,
 -       3,     6,    92,    94,    95,   139,   175,   384,   385,   386,
 -     387,   389,   382,   390,     4,   388,     3,     8,     4,   110,
 -       4,   385,     5,   109,     7,   391,   392,   393,     3,     6,
 -      93,   394,   395,   392,   396,     3,     8,     4,   395,   109
++       0,   119,   120,   121,   122,   123,   124,   125,   126,   127,
++     128,   129,   130,   136,   137,   138,   139,   140,   141,   142,
++     143,   144,   145,   146,   147,   148,     0,     5,     7,     9,
++     131,   132,   133,   134,   149,   150,   151,   155,     7,   164,
++       7,   170,     7,   181,     7,   247,     7,   310,     7,   322,
++       7,   339,     7,   269,     7,   293,     7,   223,     7,   393,
++     156,   152,   165,   171,   182,   248,   311,   323,   340,   270,
++     294,   224,   394,   149,   157,   158,   131,   153,   154,    10,
++     111,   117,   118,   131,   163,   166,   167,   168,   421,   423,
++     425,    11,    13,    14,    22,    23,    24,    25,    26,    27,
++      28,    29,    52,    53,    54,    55,    66,    69,    76,    84,
++      85,    88,   163,   172,   173,   174,   175,   176,   177,   178,
++     179,   185,   187,   204,   210,   215,   217,   231,   241,   263,
++     287,   360,   370,   382,   383,   391,    12,   183,     7,    38,
++      40,    46,    47,    48,    49,    50,    51,    57,    58,    64,
++     163,   174,   175,   176,   177,   249,   250,   251,   253,   255,
++     257,   259,   261,   262,   287,   304,   316,   333,   356,    39,
++     163,   287,   312,   313,   314,    41,    42,    43,    44,    45,
++     163,   287,   324,   325,   326,   328,   329,   331,   332,    55,
++      59,    60,    61,    62,    63,   163,   287,   341,   342,   343,
++     344,   346,   348,   350,   352,   354,    15,    30,    32,    33,
++      35,    36,    37,   163,   199,   271,   272,   273,   274,   275,
++     276,   277,   279,   281,   283,   284,   286,    31,    34,   163,
++     199,   275,   281,   295,   296,   297,   298,   299,   301,   302,
++     303,    67,    68,   163,   225,   226,   227,   229,    89,    90,
++      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
++     101,   102,   103,   163,   395,   396,   397,   398,   400,   402,
++     403,   405,   406,   407,   410,   412,   413,   414,   415,   416,
++     419,     6,     3,     4,     8,     3,   169,   426,   422,   424,
++       4,     3,     8,   180,   186,   188,     4,     4,     4,     4,
++       4,   242,   264,   288,   205,   216,   211,   361,   218,   232,
++     371,     4,   384,   392,     3,     8,   184,     8,   363,   305,
++     317,   252,   254,   256,     4,     4,   260,   258,   334,   357,
++       3,     8,   315,     3,     8,   327,     4,   330,     4,     4,
++       3,     8,   355,   345,   347,   349,   351,   353,     8,     3,
++     278,   200,     4,   282,   280,   285,     4,     8,     3,   300,
++       4,     8,     3,   228,   230,     3,     8,     4,   399,   401,
++       4,   404,     4,     4,   408,   411,     4,     4,     4,     4,
++     417,   420,     3,     8,   149,   149,   131,     4,     4,     4,
++       4,   167,     4,     4,     4,   132,   132,   132,   132,   132,
 +       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-      137,     4,     4,   178,     4,    61,   168,   205,   294,   371,
-      372,   373,   374,   375,     4,     4,     4,     4,     4,   137,
-      139,     4,     4,     4,     4,   257,     4,   320,     4,   137,
-        4,   137,   137,   332,     4,     4,     4,     4,     4,     4,
-      350,     4,     4,   137,     4,     4,     4,   139,   280,     4,
-      139,   304,     4,     4,   233,   139,     4,     4,   137,     4,
-      137,   137,     4,     4,   139,   139,   139,   139,     4,     4,
-      403,     4,     7,     7,   154,   154,     7,     7,     7,     5,
++     132,     4,     4,   173,     4,    56,   163,   199,   287,   364,
++     365,   366,   367,   368,     4,     4,     4,     4,     4,   132,
++     134,     4,     4,     4,     4,   250,     4,   313,     4,   132,
++       4,   132,   132,   325,     4,     4,     4,     4,     4,     4,
++     343,     4,     4,   132,     4,     4,     4,   134,   273,     4,
++     134,   297,     4,     4,   226,   134,     4,     4,   132,     4,
++     132,   132,     4,     4,   134,   134,   134,   134,     4,     4,
++     396,     4,     7,     7,   149,   149,     7,     7,     7,     5,
 +       5,     5,     5,     5,     5,     5,     5,     7,     7,     7,
-        7,     5,   164,   376,     8,     3,     5,     5,   136,   136,
-      136,   136,   136,     5,     7,   136,   136,   136,   164,   164,
-      164,   136,   136,   136,   136,   136,   136,   136,   136,   136,
-      136,   154,   136,   136,   136,   109,   110,   416,   111,   112,
-      113,   114,   115,   139,   425,   136,   154,   177,   117,   434,
-      435,   436,   188,    15,    20,    21,    22,    23,    24,    25,
-       26,   168,   194,   195,   196,   199,   201,   203,   205,   207,
-      208,   209,   210,   194,     7,   250,   251,   252,     7,   272,
-      273,   274,     7,   296,   297,   298,    66,   136,   213,   214,
-      215,   216,   162,    67,   215,   219,   220,   221,   264,   369,
-        7,   226,   227,   228,    75,    76,    77,    78,    79,    80,
-      240,   241,   242,   243,   244,   245,   246,   247,    15,    85,
-       86,    87,    88,   168,   207,   379,   380,   381,   384,   385,
-      387,   388,    91,    92,   392,   393,   394,   396,   402,   165,
-        4,   373,     7,   313,   314,   315,     7,   325,   326,   327,
-        7,   342,   343,   344,    70,   365,     8,   437,     3,     8,
-        8,   197,   200,   202,   204,     4,     4,     4,     4,     3,
-        8,     8,   253,     6,     3,   275,     6,     3,   299,     6,
-        3,     3,     6,     6,     3,     6,     3,     6,   229,     6,
-        3,     4,     4,     4,     4,     4,     4,     3,     8,   382,
-      386,     4,     4,     4,     3,     8,   395,   397,     3,     8,
-        8,   136,   166,   167,   136,   316,     6,     3,   328,     6,
-        3,   345,     6,     3,   366,     8,     4,   435,     4,     4,
-        4,     4,   139,   137,   139,   137,   195,   256,   252,   278,
-      274,   302,   298,   214,   220,   264,   232,   228,   137,   137,
-      137,   137,   137,   137,   241,     4,     4,   137,   137,   137,
-      380,     4,     4,   393,     6,     3,   319,   315,   331,   327,
-      348,   344,     4,     5,    16,    17,    18,    19,   198,   136,
-      136,   136,     8,     8,     8,     8,    82,    83,    84,   383,
-      136,   136,   136,   136,     8,     8,     8,   136,     7,   438,
-      439,   440,     3,     6,   118,   120,   121,   168,   205,   441,
-      442,   443,   444,   446,   439,   447,     4,   445,     3,     8,
-        4,   137,     4,   442,     5,   136,     7,   448,   449,   450,
-        3,     6,   119,   451,   452,   449,   453,     3,     8,     4,
-      452,   136
++       7,     5,   159,   369,     8,     3,     5,     5,   131,   131,
++     131,   131,   131,     5,     7,   131,   131,   131,   159,   159,
++     159,   131,   131,   131,   131,   131,   131,   131,   131,   131,
++     131,   149,   131,   131,   131,   104,   105,   409,   106,   107,
++     108,   109,   110,   134,   418,   131,   149,   172,   112,   427,
++     428,   429,   183,    15,    16,    17,    18,    19,    20,    21,
++     163,   189,   190,   191,   193,   195,   197,   199,   201,   202,
++     203,   189,     7,   243,   244,   245,     7,   265,   266,   267,
++       7,   289,   290,   291,    61,   131,   206,   207,   208,   209,
++     157,    62,   208,   212,   213,   214,   257,   362,     7,   219,
++     220,   221,    70,    71,    72,    73,    74,    75,   233,   234,
++     235,   236,   237,   238,   239,   240,    15,    80,    81,    82,
++      83,   163,   201,   372,   373,   374,   377,   378,   380,   381,
++      86,    87,   385,   386,   387,   389,   395,   160,     4,   366,
++       7,   306,   307,   308,     7,   318,   319,   320,     7,   335,
++     336,   337,    65,   358,     8,   430,     3,     8,     8,   192,
++     194,   196,   198,     4,     4,     4,     3,     8,     8,   246,
++       6,     3,   268,     6,     3,   292,     6,     3,     3,     6,
++       6,     3,     6,     3,     6,   222,     6,     3,     4,     4,
++       4,     4,     4,     4,     3,     8,   375,   379,     4,     4,
++       4,     3,     8,   388,   390,     3,     8,     8,   131,   161,
++     162,   131,   309,     6,     3,   321,     6,     3,   338,     6,
++       3,   359,     8,     4,   428,     4,     4,     4,     4,   134,
++     132,   134,   190,   249,   245,   271,   267,   295,   291,   207,
++     213,   257,   225,   221,   132,   132,   132,   132,   132,   132,
++     234,     4,     4,   132,   132,   132,   373,     4,     4,   386,
++       6,     3,   312,   308,   324,   320,   341,   337,     4,     5,
++     131,   131,   131,   131,     8,     8,     8,     8,    77,    78,
++      79,   376,   131,   131,   131,   131,     8,     8,     8,   131,
++       7,   431,   432,   433,     3,     6,   113,   115,   116,   163,
++     199,   434,   435,   436,   437,   439,   432,   440,     4,   438,
++       3,     8,     4,   132,     4,   435,     5,   131,     7,   441,
++     442,   443,     3,     6,   114,   444,   445,   442,   446,     3,
++       8,     4,   445,   131
    };
  
    const unsigned short int
    Dhcp6Parser::yyr1_[] =
    {
-        0,   140,   142,   141,   143,   141,   144,   141,   145,   141,
-      146,   141,   147,   141,   148,   141,   149,   141,   150,   141,
-      151,   141,   152,   141,   153,   141,   154,   154,   154,   154,
-      154,   154,   154,   155,   157,   156,   158,   158,   159,   159,
-      161,   160,   162,   162,   163,   163,   165,   164,   166,   166,
-      167,   167,   168,   170,   169,   171,   171,   172,   172,   172,
-      172,   172,   174,   173,   176,   175,   177,   177,   178,   178,
-      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
-      178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
-      179,   180,   181,   182,   183,   185,   184,   187,   186,   189,
-      188,   191,   190,   193,   192,   194,   194,   195,   195,   195,
-      195,   195,   195,   195,   195,   195,   195,   197,   196,   198,
-      198,   198,   198,   200,   199,   202,   201,   204,   203,   206,
-      205,   207,   208,   209,   210,   212,   211,   213,   213,   214,
-      214,   215,   216,   218,   217,   219,   219,   220,   220,   221,
-      223,   222,   225,   224,   226,   226,   227,   227,   229,   228,
-      231,   230,   232,   232,   232,   233,   233,   235,   234,   237,
-      236,   239,   238,   240,   240,   241,   241,   241,   241,   241,
-      241,   242,   243,   244,   245,   246,   247,   249,   248,   250,
-      250,   251,   251,   253,   252,   255,   254,   256,   256,   257,
-      257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
-      257,   257,   257,   257,   257,   257,   259,   258,   261,   260,
-      263,   262,   265,   264,   267,   266,   268,   269,   271,   270,
-      272,   272,   273,   273,   275,   274,   277,   276,   278,   278,
-      279,   279,   280,   280,   280,   280,   280,   280,   280,   280,
-      281,   282,   283,   285,   284,   287,   286,   289,   288,   290,
-      292,   291,   293,   295,   294,   296,   296,   297,   297,   299,
-      298,   301,   300,   302,   302,   303,   303,   304,   304,   304,
-      304,   304,   304,   305,   307,   306,   308,   309,   310,   312,
-      311,   313,   313,   314,   314,   316,   315,   318,   317,   319,
-      319,   320,   320,   320,   322,   321,   324,   323,   325,   325,
-      326,   326,   328,   327,   330,   329,   331,   331,   332,   332,
-      332,   332,   332,   332,   332,   334,   333,   335,   337,   336,
-      338,   339,   341,   340,   342,   342,   343,   343,   345,   344,
-      347,   346,   348,   348,   349,   349,   350,   350,   350,   350,
-      350,   350,   350,   350,   352,   351,   354,   353,   356,   355,
-      358,   357,   360,   359,   362,   361,   364,   363,   366,   365,
-      368,   367,   369,   369,   370,   264,   371,   371,   372,   372,
-      373,   373,   373,   373,   374,   376,   375,   378,   377,   379,
-      379,   380,   380,   380,   380,   380,   380,   380,   382,   381,
-      383,   383,   383,   384,   386,   385,   387,   388,   389,   391,
-      390,   392,   392,   393,   393,   395,   394,   397,   396,   399,
-      398,   401,   400,   402,   402,   403,   403,   403,   403,   403,
-      403,   403,   403,   403,   403,   403,   403,   403,   403,   403,
-      403,   404,   406,   405,   408,   407,   409,   411,   410,   412,
-      413,   415,   414,   416,   416,   418,   417,   419,   420,   421,
-      422,   424,   423,   425,   425,   425,   425,   425,   427,   426,
-      429,   428,   431,   430,   433,   432,   434,   434,   435,   437,
-      436,   438,   438,   440,   439,   441,   441,   442,   442,   442,
-      442,   442,   443,   445,   444,   447,   446,   448,   448,   450,
-      449,   451,   451,   453,   452
 -       0,   113,   115,   114,   116,   114,   117,   114,   118,   114,
 -     119,   114,   120,   114,   121,   114,   122,   114,   123,   114,
 -     124,   114,   125,   114,   126,   126,   126,   126,   126,   126,
 -     126,   127,   129,   128,   130,   131,   131,   132,   132,   134,
 -     133,   136,   135,   137,   137,   138,   138,   139,   141,   140,
 -     142,   142,   143,   143,   143,   143,   143,   145,   144,   147,
 -     146,   148,   148,   149,   149,   149,   149,   149,   149,   149,
 -     149,   149,   149,   149,   149,   149,   149,   149,   149,   149,
 -     149,   149,   149,   149,   149,   150,   151,   152,   153,   154,
 -     156,   155,   158,   157,   160,   159,   162,   161,   164,   163,
 -     165,   165,   166,   166,   166,   166,   166,   166,   166,   166,
 -     166,   168,   167,   170,   169,   172,   171,   174,   173,   176,
 -     175,   177,   178,   179,   181,   180,   182,   182,   183,   183,
 -     184,   185,   187,   186,   188,   188,   189,   189,   190,   192,
 -     191,   194,   193,   195,   195,   196,   196,   198,   197,   200,
 -     199,   201,   201,   201,   202,   202,   204,   203,   206,   205,
 -     208,   207,   209,   209,   210,   210,   210,   210,   210,   210,
 -     211,   212,   213,   214,   215,   216,   218,   217,   219,   219,
 -     220,   220,   222,   221,   224,   223,   225,   225,   226,   226,
 -     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
 -     226,   226,   226,   226,   226,   228,   227,   230,   229,   232,
 -     231,   234,   233,   236,   235,   237,   238,   240,   239,   241,
 -     241,   242,   242,   244,   243,   246,   245,   247,   247,   248,
 -     248,   249,   249,   249,   249,   249,   249,   249,   249,   250,
 -     251,   252,   254,   253,   256,   255,   258,   257,   259,   261,
 -     260,   262,   264,   263,   265,   265,   266,   266,   268,   267,
++       0,   135,   137,   136,   138,   136,   139,   136,   140,   136,
++     141,   136,   142,   136,   143,   136,   144,   136,   145,   136,
++     146,   136,   147,   136,   148,   136,   149,   149,   149,   149,
++     149,   149,   149,   150,   152,   151,   153,   153,   154,   154,
++     156,   155,   157,   157,   158,   158,   160,   159,   161,   161,
++     162,   162,   163,   165,   164,   166,   166,   167,   167,   167,
++     167,   167,   169,   168,   171,   170,   172,   172,   173,   173,
++     173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
++     173,   173,   173,   173,   173,   173,   173,   173,   173,   173,
++     174,   175,   176,   177,   178,   180,   179,   182,   181,   184,
++     183,   186,   185,   188,   187,   189,   189,   190,   190,   190,
++     190,   190,   190,   190,   190,   190,   192,   191,   194,   193,
++     196,   195,   198,   197,   200,   199,   201,   202,   203,   205,
++     204,   206,   206,   207,   207,   208,   209,   211,   210,   212,
++     212,   213,   213,   214,   216,   215,   218,   217,   219,   219,
++     220,   220,   222,   221,   224,   223,   225,   225,   225,   226,
++     226,   228,   227,   230,   229,   232,   231,   233,   233,   234,
++     234,   234,   234,   234,   234,   235,   236,   237,   238,   239,
++     240,   242,   241,   243,   243,   244,   244,   246,   245,   248,
++     247,   249,   249,   250,   250,   250,   250,   250,   250,   250,
++     250,   250,   250,   250,   250,   250,   250,   250,   250,   250,
++     252,   251,   254,   253,   256,   255,   258,   257,   260,   259,
++     261,   262,   264,   263,   265,   265,   266,   266,   268,   267,
+      270,   269,   271,   271,   272,   272,   273,   273,   273,   273,
 -     273,   273,   274,   276,   275,   277,   278,   279,   281,   280,
 -     282,   282,   283,   283,   285,   284,   287,   286,   288,   288,
 -     289,   289,   289,   289,   291,   290,   293,   292,   295,   294,
 -     296,   296,   297,   297,   299,   298,   301,   300,   302,   302,
 -     303,   303,   303,   303,   303,   303,   303,   303,   305,   304,
 -     306,   308,   307,   309,   310,   312,   311,   313,   313,   314,
 -     314,   316,   315,   318,   317,   319,   319,   320,   320,   321,
 -     321,   321,   321,   321,   321,   321,   321,   323,   322,   325,
 -     324,   327,   326,   329,   328,   331,   330,   333,   332,   335,
 -     334,   337,   336,   339,   338,   340,   340,   341,   233,   342,
 -     342,   343,   343,   344,   344,   344,   344,   345,   347,   346,
 -     349,   348,   350,   350,   351,   351,   351,   351,   351,   351,
 -     351,   353,   352,   354,   354,   354,   355,   357,   356,   358,
 -     359,   360,   362,   361,   363,   363,   364,   364,   366,   365,
 -     368,   367,   370,   369,   372,   371,   374,   373,   376,   375,
 -     377,   377,   378,   380,   379,   381,   381,   383,   382,   384,
 -     384,   385,   385,   385,   385,   385,   386,   388,   387,   390,
 -     389,   391,   391,   393,   392,   394,   394,   396,   395
++     273,   273,   273,   273,   274,   275,   276,   278,   277,   280,
++     279,   282,   281,   283,   285,   284,   286,   288,   287,   289,
++     289,   290,   290,   292,   291,   294,   293,   295,   295,   296,
++     296,   297,   297,   297,   297,   297,   297,   298,   300,   299,
++     301,   302,   303,   305,   304,   306,   306,   307,   307,   309,
++     308,   311,   310,   312,   312,   313,   313,   313,   315,   314,
++     317,   316,   318,   318,   319,   319,   321,   320,   323,   322,
++     324,   324,   325,   325,   325,   325,   325,   325,   325,   327,
++     326,   328,   330,   329,   331,   332,   334,   333,   335,   335,
++     336,   336,   338,   337,   340,   339,   341,   341,   342,   342,
++     343,   343,   343,   343,   343,   343,   343,   343,   345,   344,
++     347,   346,   349,   348,   351,   350,   353,   352,   355,   354,
++     357,   356,   359,   358,   361,   360,   362,   362,   363,   257,
++     364,   364,   365,   365,   366,   366,   366,   366,   367,   369,
++     368,   371,   370,   372,   372,   373,   373,   373,   373,   373,
++     373,   373,   375,   374,   376,   376,   376,   377,   379,   378,
++     380,   381,   382,   384,   383,   385,   385,   386,   386,   388,
++     387,   390,   389,   392,   391,   394,   393,   395,   395,   396,
++     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
++     396,   396,   396,   396,   396,   397,   399,   398,   401,   400,
++     402,   404,   403,   405,   406,   408,   407,   409,   409,   411,
++     410,   412,   413,   414,   415,   417,   416,   418,   418,   418,
++     418,   418,   420,   419,   422,   421,   424,   423,   426,   425,
++     427,   427,   428,   430,   429,   431,   431,   433,   432,   434,
++     434,   435,   435,   435,   435,   435,   436,   438,   437,   440,
++     439,   441,   441,   443,   442,   444,   444,   446,   445
    };
  
    const unsigned char
    {
         0,     2,     0,     3,     0,     3,     0,     3,     0,     3,
         0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
 -       0,     3,     0,     3,     1,     1,     1,     1,     1,     1,
 -       1,     1,     0,     4,     1,     0,     1,     3,     5,     0,
 -       4,     0,     4,     0,     1,     1,     3,     2,     0,     4,
 -       1,     3,     1,     1,     1,     1,     1,     0,     6,     0,
 -       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
 +       0,     3,     0,     3,     0,     3,     1,     1,     1,     1,
 +       1,     1,     1,     1,     0,     4,     0,     1,     3,     5,
 +       0,     4,     0,     1,     1,     3,     0,     4,     0,     1,
 +       1,     3,     2,     0,     4,     1,     3,     1,     1,     1,
 +       1,     1,     0,     6,     0,     4,     1,     3,     1,     1,
         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 -       1,     1,     1,     1,     1,     3,     3,     3,     3,     3,
 -       0,     6,     0,     4,     0,     4,     0,     6,     0,     6,
 -       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
 -       1,     0,     4,     0,     4,     0,     4,     0,     4,     0,
 -       4,     3,     3,     3,     0,     6,     1,     3,     1,     1,
 -       1,     1,     0,     6,     1,     3,     1,     1,     1,     0,
 -       4,     0,     6,     0,     1,     1,     3,     0,     4,     0,
 -       4,     1,     3,     1,     1,     1,     0,     4,     0,     4,
 -       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
 -       3,     3,     3,     3,     3,     3,     0,     6,     0,     1,
 +       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 +       3,     3,     3,     3,     3,     0,     6,     0,     4,     0,
 +       4,     0,     6,     0,     6,     1,     3,     1,     1,     1,
-        1,     1,     1,     1,     1,     1,     1,     0,     4,     1,
-        1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
-        4,     3,     3,     3,     3,     0,     6,     1,     3,     1,
-        1,     1,     1,     0,     6,     1,     3,     1,     1,     1,
-        0,     6,     0,     6,     0,     1,     1,     3,     0,     4,
-        0,     4,     1,     3,     1,     1,     1,     0,     4,     0,
-        4,     0,     6,     1,     3,     1,     1,     1,     1,     1,
-        1,     3,     3,     3,     3,     3,     3,     0,     6,     0,
-        1,     1,     3,     0,     4,     0,     4,     1,     3,     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,     0,     6,
-        0,     1,     1,     3,     0,     4,     0,     4,     0,     1,
-        1,     3,     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,     0,
-        4,     0,     4,     0,     1,     1,     3,     1,     1,     1,
-        1,     1,     1,     1,     0,     4,     1,     1,     3,     0,
-        6,     0,     1,     1,     3,     0,     4,     0,     4,     1,
-        3,     1,     1,     1,     0,     4,     0,     6,     0,     1,
++       0,     4,     0,     4,     0,     4,     3,     3,     3,     0,
++       6,     1,     3,     1,     1,     1,     1,     0,     6,     1,
++       3,     1,     1,     1,     0,     6,     0,     6,     0,     1,
         1,     3,     0,     4,     0,     4,     1,     3,     1,     1,
-        1,     1,     1,     1,     1,     0,     4,     3,     0,     4,
++       1,     0,     4,     0,     4,     0,     6,     1,     3,     1,
++       1,     1,     1,     1,     1,     3,     3,     3,     3,     3,
++       3,     0,     6,     0,     1,     1,     3,     0,     4,     0,
++       4,     1,     3,     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,     0,     6,     0,
 -       1,     1,     3,     0,     4,     0,     4,     0,     1,     1,
 -       3,     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,     0,     4,
++       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
 +       3,     3,     0,     6,     0,     1,     1,     3,     0,     4,
         0,     4,     0,     1,     1,     3,     1,     1,     1,     1,
-        1,     1,     1,     1,     0,     4,     0,     4,     0,     4,
-        0,     4,     0,     4,     0,     4,     0,     6,     0,     4,
-        0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
-        1,     1,     1,     1,     1,     0,     4,     0,     6,     1,
 -       1,     1,     1,     0,     4,     1,     1,     3,     0,     6,
 -       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
 -       1,     1,     1,     1,     0,     4,     0,     4,     0,     6,
 -       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
++       1,     1,     1,     1,     1,     3,     1,     0,     4,     0,
++       4,     0,     4,     1,     0,     4,     3,     0,     6,     0,
++       1,     1,     3,     0,     4,     0,     4,     0,     1,     1,
 +       3,     1,     1,     1,     1,     1,     1,     1,     0,     4,
-        1,     1,     1,     3,     0,     4,     3,     3,     3,     0,
-        6,     1,     3,     1,     1,     0,     4,     0,     4,     0,
-        6,     0,     4,     1,     3,     1,     1,     1,     1,     1,
++       1,     1,     3,     0,     6,     0,     1,     1,     3,     0,
++       4,     0,     4,     1,     3,     1,     1,     1,     0,     4,
++       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
++       1,     3,     1,     1,     1,     1,     1,     1,     1,     0,
++       4,     3,     0,     4,     3,     3,     0,     6,     0,     1,
++       1,     3,     0,     4,     0,     4,     0,     1,     1,     3,
+        1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
 -       3,     0,     4,     3,     3,     0,     6,     0,     1,     1,
 -       3,     0,     4,     0,     4,     0,     1,     1,     3,     1,
 -       1,     1,     1,     1,     1,     1,     1,     0,     4,     0,
 -       4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
 -       6,     0,     4,     0,     6,     1,     3,     0,     4,     0,
 -       1,     1,     3,     1,     1,     1,     1,     1,     0,     4,
 -       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
 -       1,     0,     4,     1,     1,     1,     3,     0,     4,     3,
 -       3,     3,     0,     6,     1,     3,     1,     1,     0,     4,
 -       0,     4,     0,     6,     0,     4,     0,     4,     0,     6,
++       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
++       0,     6,     0,     4,     0,     6,     1,     3,     0,     4,
++       0,     1,     1,     3,     1,     1,     1,     1,     1,     0,
++       4,     0,     6,     1,     3,     1,     1,     1,     1,     1,
++       1,     1,     0,     4,     1,     1,     1,     3,     0,     4,
++       3,     3,     3,     0,     6,     1,     3,     1,     1,     0,
++       4,     0,     4,     0,     6,     0,     4,     1,     3,     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,     3,
-        3,     0,     4,     1,     1,     1,     1,     1,     0,     4,
-        0,     4,     0,     4,     0,     6,     1,     3,     1,     0,
-        6,     1,     3,     0,     4,     1,     3,     1,     1,     1,
-        1,     1,     3,     0,     4,     0,     6,     1,     3,     0,
-        4,     1,     3,     0,     4
++       1,     1,     1,     1,     1,     3,     0,     4,     0,     4,
++       3,     0,     4,     3,     3,     0,     4,     1,     1,     0,
++       4,     3,     3,     3,     3,     0,     4,     1,     1,     1,
++       1,     1,     0,     4,     0,     4,     0,     4,     0,     6,
+        1,     3,     1,     0,     6,     1,     3,     0,     4,     1,
+        3,     1,     1,     1,     1,     1,     3,     0,     4,     0,
+        6,     1,     3,     0,     4,     1,     3,     0,     4
    };
  
  
    "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", "\"server-id\"",
    "\"LLT\"", "\"EN\"", "\"LL\"", "\"identifier\"", "\"htype\"", "\"time\"",
    "\"enterprise-id\"", "\"dhcp4o6-port\"", "\"control-socket\"",
 -  "\"socket-type\"", "\"socket-name\"", "\"dhcp-ddns\"", "\"Logging\"",
 -  "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"",
 -  "\"severity\"", "\"Dhcp4\"", "\"DhcpDdns\"", "TOPLEVEL_JSON",
 -  "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6",
 -  "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEF",
 -  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "\"constant string\"",
 +  "\"socket-type\"", "\"socket-name\"", "\"dhcp-ddns\"",
 +  "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"",
 +  "\"server-port\"", "\"sender-ip\"", "\"sender-port\"",
 +  "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"",
 +  "\"always-include-fqdn\"", "\"allow-client-update\"",
 +  "\"override-no-update\"", "\"override-client-update\"",
 +  "\"replace-client-name\"", "\"generated-prefix\"", "\"UDP\"", "\"TCP\"",
 +  "\"JSON\"", "\"when-present\"", "\"never\"", "\"always\"",
 +  "\"when-not-present\"", "\"Logging\"", "\"loggers\"",
 +  "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"",
 +  "\"Dhcp4\"", "\"DhcpDdns\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6",
 +  "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6",
 +  "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEF", "SUB_OPTION_DATA",
 +  "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "\"constant string\"",
    "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start",
    "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10",
 -  "$@11", "value", "sub_json", "map2", "$@12", "map_value", "map_content",
 -  "not_empty_map", "list_generic", "$@13", "list2", "$@14", "list_content",
 -  "not_empty_list", "unknown_map_entry", "syntax_map", "$@15",
 -  "global_objects", "global_object", "dhcp6_object", "$@16", "sub_dhcp6",
 -  "$@17", "global_params", "global_param", "preferred_lifetime",
 +  "$@11", "$@12", "value", "sub_json", "map2", "$@13", "map_content",
 +  "not_empty_map", "list_generic", "$@14", "list_content",
 +  "not_empty_list", "list_strings", "$@15", "list_strings_content",
 +  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@16",
 +  "global_objects", "global_object", "dhcp6_object", "$@17", "sub_dhcp6",
 +  "$@18", "global_params", "global_param", "preferred_lifetime",
    "valid_lifetime", "renew_timer", "rebind_timer",
 -  "decline_probation_period", "interfaces_config", "$@18",
 -  "sub_interfaces6", "$@19", "interface_config_map", "$@20",
 -  "lease_database", "$@21", "hosts_database", "$@22",
 -  "database_map_params", "database_map_param", "database_type", "$@23",
 -  "user", "$@24", "password", "$@25", "host", "$@26", "name", "$@27",
 -  "persist", "lfc_interval", "readonly", "mac_sources", "$@28",
 +  "decline_probation_period", "interfaces_config", "$@19",
 +  "sub_interfaces6", "$@20", "interface_config_map", "$@21",
 +  "lease_database", "$@22", "hosts_database", "$@23",
 +  "database_map_params", "database_map_param", "database_type", "$@24",
-   "db_type", "user", "$@25", "password", "$@26", "host", "$@27", "name",
-   "$@28", "persist", "lfc_interval", "readonly", "connect_timeout",
-   "mac_sources", "$@29", "mac_sources_list", "mac_sources_value",
-   "duid_id", "string_id", "host_reservation_identifiers", "$@30",
++  "user", "$@25", "password", "$@26", "host", "$@27", "name", "$@28",
++  "persist", "lfc_interval", "readonly", "mac_sources", "$@29",
+   "mac_sources_list", "mac_sources_value", "duid_id", "string_id",
 -  "host_reservation_identifiers", "$@29",
++  "host_reservation_identifiers", "$@30",
    "host_reservation_identifiers_list", "host_reservation_identifier",
 -  "hw_address_id", "relay_supplied_options", "$@30", "hooks_libraries",
 -  "$@31", "hooks_libraries_list", "not_empty_hooks_libraries_list",
 -  "hooks_library", "$@32", "sub_hooks_library", "$@33", "hooks_params",
 -  "hooks_param", "library", "$@34", "parameters", "$@35",
 -  "expired_leases_processing", "$@36", "expired_leases_params",
 +  "hw_address_id", "relay_supplied_options", "$@31", "hooks_libraries",
 +  "$@32", "hooks_libraries_list", "not_empty_hooks_libraries_list",
 +  "hooks_library", "$@33", "sub_hooks_library", "$@34", "hooks_params",
 +  "hooks_param", "library", "$@35", "parameters", "$@36",
 +  "expired_leases_processing", "$@37", "expired_leases_params",
    "expired_leases_param", "reclaim_timer_wait_time",
    "flush_reclaimed_timer_wait_time", "hold_reclaimed_time",
    "max_reclaim_leases", "max_reclaim_time", "unwarned_reclaim_cycles",
    const unsigned short int
    Dhcp6Parser::yyrline_[] =
    {
-        0,   219,   219,   219,   220,   220,   221,   221,   222,   222,
-      223,   223,   224,   224,   225,   225,   226,   226,   227,   227,
-      228,   228,   229,   229,   230,   230,   238,   239,   240,   241,
-      242,   243,   244,   247,   252,   252,   264,   265,   268,   272,
-      279,   279,   286,   287,   290,   294,   301,   301,   308,   309,
-      312,   316,   327,   337,   337,   349,   350,   354,   355,   356,
-      357,   358,   361,   361,   378,   378,   386,   387,   392,   393,
-      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
-      404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
-      416,   421,   426,   431,   436,   441,   441,   451,   451,   459,
-      459,   469,   469,   479,   479,   489,   490,   493,   494,   495,
-      496,   497,   498,   499,   500,   501,   502,   505,   505,   512,
-      513,   514,   515,   518,   518,   526,   526,   534,   534,   542,
-      542,   550,   555,   560,   565,   570,   570,   580,   581,   584,
-      585,   588,   593,   598,   598,   608,   609,   612,   613,   616,
-      623,   623,   633,   633,   643,   644,   647,   648,   651,   651,
-      659,   659,   667,   668,   669,   672,   673,   676,   676,   684,
-      684,   692,   692,   702,   703,   706,   707,   708,   709,   710,
-      711,   714,   719,   724,   729,   734,   739,   747,   747,   760,
-      761,   764,   765,   772,   772,   795,   795,   804,   805,   809,
-      810,   811,   812,   813,   814,   815,   816,   817,   818,   819,
-      820,   821,   822,   823,   824,   825,   828,   828,   836,   836,
-      844,   844,   852,   852,   860,   860,   868,   873,   882,   882,
-      894,   895,   898,   899,   904,   904,   915,   915,   925,   926,
-      929,   930,   933,   934,   935,   936,   937,   938,   939,   940,
-      943,   945,   950,   952,   952,   960,   960,   968,   968,   976,
-      978,   978,   986,   995,   995,  1007,  1008,  1013,  1014,  1019,
-     1019,  1030,  1030,  1041,  1042,  1047,  1048,  1053,  1054,  1055,
-     1056,  1057,  1058,  1061,  1063,  1063,  1071,  1073,  1075,  1083,
-     1083,  1095,  1096,  1099,  1100,  1103,  1103,  1111,  1111,  1119,
-     1120,  1123,  1124,  1125,  1128,  1128,  1139,  1139,  1151,  1152,
-     1155,  1156,  1159,  1159,  1167,  1167,  1175,  1176,  1179,  1180,
-     1181,  1182,  1183,  1184,  1185,  1188,  1188,  1196,  1201,  1201,
-     1209,  1214,  1222,  1222,  1232,  1233,  1236,  1237,  1240,  1240,
-     1248,  1248,  1256,  1257,  1260,  1261,  1265,  1266,  1267,  1268,
-     1269,  1270,  1271,  1272,  1275,  1275,  1285,  1285,  1295,  1295,
-     1303,  1303,  1311,  1311,  1319,  1319,  1332,  1332,  1342,  1342,
-     1353,  1353,  1363,  1364,  1367,  1367,  1375,  1376,  1379,  1380,
-     1383,  1384,  1385,  1386,  1389,  1391,  1391,  1402,  1402,  1412,
-     1413,  1416,  1417,  1418,  1419,  1420,  1421,  1422,  1425,  1425,
-     1432,  1433,  1434,  1437,  1442,  1442,  1450,  1455,  1462,  1469,
-     1469,  1479,  1480,  1483,  1484,  1487,  1487,  1495,  1495,  1505,
-     1505,  1515,  1515,  1523,  1524,  1527,  1528,  1529,  1530,  1531,
-     1532,  1533,  1534,  1535,  1536,  1537,  1538,  1539,  1540,  1541,
-     1542,  1545,  1550,  1550,  1558,  1558,  1566,  1571,  1571,  1579,
-     1584,  1589,  1589,  1597,  1598,  1601,  1601,  1609,  1614,  1619,
-     1624,  1629,  1629,  1637,  1640,  1643,  1646,  1649,  1655,  1655,
-     1665,  1665,  1672,  1672,  1684,  1684,  1697,  1698,  1702,  1706,
-     1706,  1718,  1719,  1723,  1723,  1731,  1732,  1735,  1736,  1737,
-     1738,  1739,  1742,  1746,  1746,  1754,  1754,  1764,  1765,  1768,
-     1768,  1776,  1777,  1780,  1780
 -       0,   210,   210,   210,   211,   211,   212,   212,   213,   213,
 -     214,   214,   215,   215,   216,   216,   217,   217,   218,   218,
 -     219,   219,   220,   220,   228,   229,   230,   231,   232,   233,
 -     234,   237,   242,   242,   253,   256,   257,   260,   264,   271,
 -     271,   279,   279,   286,   287,   290,   294,   305,   315,   315,
 -     327,   328,   332,   333,   334,   335,   336,   339,   339,   356,
 -     356,   364,   365,   370,   371,   372,   373,   374,   375,   376,
 -     377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
 -     387,   388,   389,   390,   391,   394,   399,   404,   409,   414,
 -     419,   419,   429,   429,   437,   437,   447,   447,   457,   457,
 -     467,   468,   471,   472,   473,   474,   475,   476,   477,   478,
 -     479,   482,   482,   490,   490,   498,   498,   506,   506,   514,
 -     514,   522,   527,   532,   537,   537,   547,   548,   551,   552,
 -     555,   560,   565,   565,   575,   576,   579,   580,   583,   588,
 -     588,   598,   598,   608,   609,   612,   613,   616,   616,   624,
 -     624,   632,   633,   634,   637,   638,   641,   641,   649,   649,
 -     657,   657,   667,   668,   671,   672,   673,   674,   675,   676,
 -     679,   684,   689,   694,   699,   704,   712,   712,   725,   726,
 -     729,   730,   737,   737,   760,   760,   769,   770,   774,   775,
 -     776,   777,   778,   779,   780,   781,   782,   783,   784,   785,
 -     786,   787,   788,   789,   790,   793,   793,   801,   801,   809,
 -     809,   817,   817,   825,   825,   833,   838,   847,   847,   859,
 -     860,   863,   864,   869,   869,   880,   880,   890,   891,   894,
 -     895,   898,   899,   900,   901,   902,   903,   904,   905,   908,
 -     910,   915,   917,   917,   925,   925,   933,   933,   941,   943,
 -     943,   951,   960,   960,   972,   973,   978,   979,   984,   984,
 -     995,   995,  1006,  1007,  1012,  1013,  1018,  1019,  1020,  1021,
 -    1022,  1023,  1026,  1028,  1028,  1036,  1038,  1040,  1048,  1048,
 -    1060,  1061,  1064,  1065,  1068,  1068,  1076,  1076,  1084,  1085,
 -    1088,  1089,  1090,  1091,  1094,  1094,  1102,  1102,  1112,  1112,
 -    1124,  1125,  1128,  1129,  1132,  1132,  1140,  1140,  1148,  1149,
 -    1152,  1153,  1154,  1155,  1156,  1157,  1158,  1159,  1162,  1162,
 -    1170,  1175,  1175,  1183,  1188,  1196,  1196,  1206,  1207,  1210,
 -    1211,  1214,  1214,  1222,  1222,  1230,  1231,  1234,  1235,  1239,
 -    1240,  1241,  1242,  1243,  1244,  1245,  1246,  1249,  1249,  1259,
 -    1259,  1269,  1269,  1277,  1277,  1285,  1285,  1293,  1293,  1306,
 -    1306,  1316,  1316,  1327,  1327,  1337,  1338,  1341,  1341,  1349,
 -    1350,  1353,  1354,  1357,  1358,  1359,  1360,  1363,  1365,  1365,
 -    1376,  1376,  1386,  1387,  1390,  1391,  1392,  1393,  1394,  1395,
 -    1396,  1399,  1399,  1406,  1407,  1408,  1411,  1416,  1416,  1424,
 -    1429,  1436,  1443,  1443,  1453,  1454,  1457,  1458,  1461,  1461,
 -    1469,  1469,  1479,  1479,  1491,  1491,  1498,  1498,  1510,  1510,
 -    1523,  1524,  1528,  1532,  1532,  1544,  1545,  1549,  1549,  1557,
 -    1558,  1561,  1562,  1563,  1564,  1565,  1568,  1572,  1572,  1580,
 -    1580,  1590,  1591,  1594,  1594,  1602,  1603,  1606,  1606
++       0,   213,   213,   213,   214,   214,   215,   215,   216,   216,
++     217,   217,   218,   218,   219,   219,   220,   220,   221,   221,
++     222,   222,   223,   223,   224,   224,   232,   233,   234,   235,
++     236,   237,   238,   241,   246,   246,   258,   259,   262,   266,
++     273,   273,   280,   281,   284,   288,   295,   295,   302,   303,
++     306,   310,   321,   331,   331,   343,   344,   348,   349,   350,
++     351,   352,   355,   355,   372,   372,   380,   381,   386,   387,
++     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
++     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
++     410,   415,   420,   425,   430,   435,   435,   445,   445,   453,
++     453,   463,   463,   473,   473,   483,   484,   487,   488,   489,
++     490,   491,   492,   493,   494,   495,   498,   498,   506,   506,
++     514,   514,   522,   522,   530,   530,   538,   543,   548,   553,
++     553,   563,   564,   567,   568,   571,   576,   581,   581,   591,
++     592,   595,   596,   599,   606,   606,   616,   616,   626,   627,
++     630,   631,   634,   634,   642,   642,   650,   651,   652,   655,
++     656,   659,   659,   667,   667,   675,   675,   685,   686,   689,
++     690,   691,   692,   693,   694,   697,   702,   707,   712,   717,
++     722,   730,   730,   743,   744,   747,   748,   755,   755,   778,
++     778,   787,   788,   792,   793,   794,   795,   796,   797,   798,
++     799,   800,   801,   802,   803,   804,   805,   806,   807,   808,
++     811,   811,   819,   819,   827,   827,   835,   835,   843,   843,
++     851,   856,   865,   865,   877,   878,   881,   882,   887,   887,
++     898,   898,   908,   909,   912,   913,   916,   917,   918,   919,
++     920,   921,   922,   923,   926,   928,   933,   935,   935,   943,
++     943,   951,   951,   959,   961,   961,   969,   978,   978,   990,
++     991,   996,   997,  1002,  1002,  1013,  1013,  1024,  1025,  1030,
++    1031,  1036,  1037,  1038,  1039,  1040,  1041,  1044,  1046,  1046,
++    1054,  1056,  1058,  1066,  1066,  1078,  1079,  1082,  1083,  1086,
++    1086,  1094,  1094,  1102,  1103,  1106,  1107,  1108,  1111,  1111,
++    1122,  1122,  1134,  1135,  1138,  1139,  1142,  1142,  1150,  1150,
++    1158,  1159,  1162,  1163,  1164,  1165,  1166,  1167,  1168,  1171,
++    1171,  1179,  1184,  1184,  1192,  1197,  1205,  1205,  1215,  1216,
++    1219,  1220,  1223,  1223,  1231,  1231,  1239,  1240,  1243,  1244,
++    1248,  1249,  1250,  1251,  1252,  1253,  1254,  1255,  1258,  1258,
++    1268,  1268,  1278,  1278,  1286,  1286,  1294,  1294,  1302,  1302,
++    1315,  1315,  1325,  1325,  1336,  1336,  1346,  1347,  1350,  1350,
++    1358,  1359,  1362,  1363,  1366,  1367,  1368,  1369,  1372,  1374,
++    1374,  1385,  1385,  1395,  1396,  1399,  1400,  1401,  1402,  1403,
++    1404,  1405,  1408,  1408,  1415,  1416,  1417,  1420,  1425,  1425,
++    1433,  1438,  1445,  1452,  1452,  1462,  1463,  1466,  1467,  1470,
++    1470,  1478,  1478,  1488,  1488,  1498,  1498,  1506,  1507,  1510,
++    1511,  1512,  1513,  1514,  1515,  1516,  1517,  1518,  1519,  1520,
++    1521,  1522,  1523,  1524,  1525,  1528,  1533,  1533,  1541,  1541,
++    1549,  1554,  1554,  1562,  1567,  1572,  1572,  1580,  1581,  1584,
++    1584,  1592,  1597,  1602,  1607,  1612,  1612,  1620,  1623,  1626,
++    1629,  1632,  1638,  1638,  1648,  1648,  1655,  1655,  1667,  1667,
++    1680,  1681,  1685,  1689,  1689,  1701,  1702,  1706,  1706,  1714,
++    1715,  1718,  1719,  1720,  1721,  1722,  1725,  1729,  1729,  1737,
++    1737,  1747,  1748,  1751,  1751,  1759,  1760,  1763,  1763
    };
  
    // Print the state stack on the debug stream.
  
  #line 14 "dhcp6_parser.yy" // lalr1.cc:1167
  } } // isc::dhcp
- #line 4092 "dhcp6_parser.cc" // lalr1.cc:1167
- #line 1788 "dhcp6_parser.yy" // lalr1.cc:1168
 -#line 3683 "dhcp6_parser.cc" // lalr1.cc:1167
 -#line 1614 "dhcp6_parser.yy" // lalr1.cc:1168
++#line 4041 "dhcp6_parser.cc" // lalr1.cc:1167
++#line 1771 "dhcp6_parser.yy" // lalr1.cc:1168
  
  
  void
index 1cda5533265a50a180225b1b68139cc9e5bd671c,08ad20088761696781b776b986326663caa03989..f9fa9f9b7167efa80753b029abb8a91d51be01d9
@@@ -305,10 -305,8 +305,9 @@@ namespace isc { namespace dhcp 
      union union_type
      {
        // value
-       // db_type
 -      // map_value
        // duid_type
 +      // ncr_protocol_value
 +      // replace_client_name_value
        char dummy1[sizeof(ElementPtr)];
  
        // "boolean"
          TOKEN_LEASE_DATABASE = 268,
          TOKEN_HOSTS_DATABASE = 269,
          TOKEN_TYPE = 270,
-         TOKEN_MEMFILE = 271,
-         TOKEN_MYSQL = 272,
-         TOKEN_POSTGRESQL = 273,
-         TOKEN_CQL = 274,
-         TOKEN_USER = 275,
-         TOKEN_PASSWORD = 276,
-         TOKEN_HOST = 277,
-         TOKEN_PERSIST = 278,
-         TOKEN_LFC_INTERVAL = 279,
-         TOKEN_READONLY = 280,
-         TOKEN_CONNECT_TIMEOUT = 281,
-         TOKEN_PREFERRED_LIFETIME = 282,
-         TOKEN_VALID_LIFETIME = 283,
-         TOKEN_RENEW_TIMER = 284,
-         TOKEN_REBIND_TIMER = 285,
-         TOKEN_DECLINE_PROBATION_PERIOD = 286,
-         TOKEN_SUBNET6 = 287,
-         TOKEN_OPTION_DEF = 288,
-         TOKEN_OPTION_DATA = 289,
-         TOKEN_NAME = 290,
-         TOKEN_DATA = 291,
-         TOKEN_CODE = 292,
-         TOKEN_SPACE = 293,
-         TOKEN_CSV_FORMAT = 294,
-         TOKEN_RECORD_TYPES = 295,
-         TOKEN_ENCAPSULATE = 296,
-         TOKEN_ARRAY = 297,
-         TOKEN_POOLS = 298,
-         TOKEN_POOL = 299,
-         TOKEN_PD_POOLS = 300,
-         TOKEN_PREFIX = 301,
-         TOKEN_PREFIX_LEN = 302,
-         TOKEN_EXCLUDED_PREFIX = 303,
-         TOKEN_EXCLUDED_PREFIX_LEN = 304,
-         TOKEN_DELEGATED_LEN = 305,
-         TOKEN_SUBNET = 306,
-         TOKEN_INTERFACE = 307,
-         TOKEN_INTERFACE_ID = 308,
-         TOKEN_ID = 309,
-         TOKEN_RAPID_COMMIT = 310,
-         TOKEN_RESERVATION_MODE = 311,
-         TOKEN_MAC_SOURCES = 312,
-         TOKEN_RELAY_SUPPLIED_OPTIONS = 313,
-         TOKEN_HOST_RESERVATION_IDENTIFIERS = 314,
-         TOKEN_CLIENT_CLASSES = 315,
-         TOKEN_TEST = 316,
-         TOKEN_CLIENT_CLASS = 317,
-         TOKEN_RESERVATIONS = 318,
-         TOKEN_IP_ADDRESSES = 319,
-         TOKEN_PREFIXES = 320,
-         TOKEN_DUID = 321,
-         TOKEN_HW_ADDRESS = 322,
-         TOKEN_HOSTNAME = 323,
-         TOKEN_RELAY = 324,
-         TOKEN_IP_ADDRESS = 325,
-         TOKEN_HOOKS_LIBRARIES = 326,
-         TOKEN_LIBRARY = 327,
-         TOKEN_PARAMETERS = 328,
-         TOKEN_EXPIRED_LEASES_PROCESSING = 329,
-         TOKEN_RECLAIM_TIMER_WAIT_TIME = 330,
-         TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 331,
-         TOKEN_HOLD_RECLAIMED_TIME = 332,
-         TOKEN_MAX_RECLAIM_LEASES = 333,
-         TOKEN_MAX_RECLAIM_TIME = 334,
-         TOKEN_UNWARNED_RECLAIM_CYCLES = 335,
-         TOKEN_SERVER_ID = 336,
-         TOKEN_LLT = 337,
-         TOKEN_EN = 338,
-         TOKEN_LL = 339,
-         TOKEN_IDENTIFIER = 340,
-         TOKEN_HTYPE = 341,
-         TOKEN_TIME = 342,
-         TOKEN_ENTERPRISE_ID = 343,
-         TOKEN_DHCP4O6_PORT = 344,
-         TOKEN_CONTROL_SOCKET = 345,
-         TOKEN_SOCKET_TYPE = 346,
-         TOKEN_SOCKET_NAME = 347,
-         TOKEN_DHCP_DDNS = 348,
-         TOKEN_ENABLE_UPDATES = 349,
-         TOKEN_QUALIFYING_SUFFIX = 350,
-         TOKEN_SERVER_IP = 351,
-         TOKEN_SERVER_PORT = 352,
-         TOKEN_SENDER_IP = 353,
-         TOKEN_SENDER_PORT = 354,
-         TOKEN_MAX_QUEUE_SIZE = 355,
-         TOKEN_NCR_PROTOCOL = 356,
-         TOKEN_NCR_FORMAT = 357,
-         TOKEN_ALWAYS_INCLUDE_FQDN = 358,
-         TOKEN_ALLOW_CLIENT_UPDATE = 359,
-         TOKEN_OVERRIDE_NO_UPDATE = 360,
-         TOKEN_OVERRIDE_CLIENT_UPDATE = 361,
-         TOKEN_REPLACE_CLIENT_NAME = 362,
-         TOKEN_GENERATED_PREFIX = 363,
-         TOKEN_UDP = 364,
-         TOKEN_TCP = 365,
-         TOKEN_JSON = 366,
-         TOKEN_WHEN_PRESENT = 367,
-         TOKEN_NEVER = 368,
-         TOKEN_ALWAYS = 369,
-         TOKEN_WHEN_NOT_PRESENT = 370,
-         TOKEN_LOGGING = 371,
-         TOKEN_LOGGERS = 372,
-         TOKEN_OUTPUT_OPTIONS = 373,
-         TOKEN_OUTPUT = 374,
-         TOKEN_DEBUGLEVEL = 375,
-         TOKEN_SEVERITY = 376,
-         TOKEN_DHCP4 = 377,
-         TOKEN_DHCPDDNS = 378,
-         TOKEN_TOPLEVEL_JSON = 379,
-         TOKEN_TOPLEVEL_DHCP6 = 380,
-         TOKEN_SUB_DHCP6 = 381,
-         TOKEN_SUB_INTERFACES6 = 382,
-         TOKEN_SUB_SUBNET6 = 383,
-         TOKEN_SUB_POOL6 = 384,
-         TOKEN_SUB_PD_POOL = 385,
-         TOKEN_SUB_RESERVATION = 386,
-         TOKEN_SUB_OPTION_DEF = 387,
-         TOKEN_SUB_OPTION_DATA = 388,
-         TOKEN_SUB_HOOKS_LIBRARY = 389,
-         TOKEN_SUB_DHCP_DDNS = 390,
-         TOKEN_STRING = 391,
-         TOKEN_INTEGER = 392,
-         TOKEN_FLOAT = 393,
-         TOKEN_BOOLEAN = 394
+         TOKEN_USER = 271,
+         TOKEN_PASSWORD = 272,
+         TOKEN_HOST = 273,
+         TOKEN_PERSIST = 274,
+         TOKEN_LFC_INTERVAL = 275,
+         TOKEN_READONLY = 276,
+         TOKEN_PREFERRED_LIFETIME = 277,
+         TOKEN_VALID_LIFETIME = 278,
+         TOKEN_RENEW_TIMER = 279,
+         TOKEN_REBIND_TIMER = 280,
+         TOKEN_DECLINE_PROBATION_PERIOD = 281,
+         TOKEN_SUBNET6 = 282,
+         TOKEN_OPTION_DEF = 283,
+         TOKEN_OPTION_DATA = 284,
+         TOKEN_NAME = 285,
+         TOKEN_DATA = 286,
+         TOKEN_CODE = 287,
+         TOKEN_SPACE = 288,
+         TOKEN_CSV_FORMAT = 289,
+         TOKEN_RECORD_TYPES = 290,
+         TOKEN_ENCAPSULATE = 291,
+         TOKEN_ARRAY = 292,
+         TOKEN_POOLS = 293,
+         TOKEN_POOL = 294,
+         TOKEN_PD_POOLS = 295,
+         TOKEN_PREFIX = 296,
+         TOKEN_PREFIX_LEN = 297,
+         TOKEN_EXCLUDED_PREFIX = 298,
+         TOKEN_EXCLUDED_PREFIX_LEN = 299,
+         TOKEN_DELEGATED_LEN = 300,
 -        TOKEN_USER_CONTEXT = 301,
 -        TOKEN_SUBNET = 302,
 -        TOKEN_INTERFACE = 303,
 -        TOKEN_INTERFACE_ID = 304,
 -        TOKEN_ID = 305,
 -        TOKEN_RAPID_COMMIT = 306,
 -        TOKEN_RESERVATION_MODE = 307,
 -        TOKEN_MAC_SOURCES = 308,
 -        TOKEN_RELAY_SUPPLIED_OPTIONS = 309,
 -        TOKEN_HOST_RESERVATION_IDENTIFIERS = 310,
 -        TOKEN_CLIENT_CLASSES = 311,
 -        TOKEN_TEST = 312,
 -        TOKEN_CLIENT_CLASS = 313,
 -        TOKEN_RESERVATIONS = 314,
 -        TOKEN_IP_ADDRESSES = 315,
 -        TOKEN_PREFIXES = 316,
 -        TOKEN_DUID = 317,
 -        TOKEN_HW_ADDRESS = 318,
 -        TOKEN_HOSTNAME = 319,
 -        TOKEN_RELAY = 320,
 -        TOKEN_IP_ADDRESS = 321,
 -        TOKEN_HOOKS_LIBRARIES = 322,
 -        TOKEN_LIBRARY = 323,
 -        TOKEN_PARAMETERS = 324,
 -        TOKEN_EXPIRED_LEASES_PROCESSING = 325,
 -        TOKEN_RECLAIM_TIMER_WAIT_TIME = 326,
 -        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 327,
 -        TOKEN_HOLD_RECLAIMED_TIME = 328,
 -        TOKEN_MAX_RECLAIM_LEASES = 329,
 -        TOKEN_MAX_RECLAIM_TIME = 330,
 -        TOKEN_UNWARNED_RECLAIM_CYCLES = 331,
 -        TOKEN_SERVER_ID = 332,
 -        TOKEN_LLT = 333,
 -        TOKEN_EN = 334,
 -        TOKEN_LL = 335,
 -        TOKEN_IDENTIFIER = 336,
 -        TOKEN_HTYPE = 337,
 -        TOKEN_TIME = 338,
 -        TOKEN_ENTERPRISE_ID = 339,
 -        TOKEN_DHCP4O6_PORT = 340,
 -        TOKEN_CONTROL_SOCKET = 341,
 -        TOKEN_SOCKET_TYPE = 342,
 -        TOKEN_SOCKET_NAME = 343,
 -        TOKEN_DHCP_DDNS = 344,
 -        TOKEN_LOGGING = 345,
 -        TOKEN_LOGGERS = 346,
 -        TOKEN_OUTPUT_OPTIONS = 347,
 -        TOKEN_OUTPUT = 348,
 -        TOKEN_DEBUGLEVEL = 349,
 -        TOKEN_SEVERITY = 350,
 -        TOKEN_DHCP4 = 351,
 -        TOKEN_DHCPDDNS = 352,
 -        TOKEN_TOPLEVEL_JSON = 353,
 -        TOKEN_TOPLEVEL_DHCP6 = 354,
 -        TOKEN_SUB_DHCP6 = 355,
 -        TOKEN_SUB_INTERFACES6 = 356,
 -        TOKEN_SUB_SUBNET6 = 357,
 -        TOKEN_SUB_POOL6 = 358,
 -        TOKEN_SUB_PD_POOL = 359,
 -        TOKEN_SUB_RESERVATION = 360,
 -        TOKEN_SUB_OPTION_DEF = 361,
 -        TOKEN_SUB_OPTION_DATA = 362,
 -        TOKEN_SUB_HOOKS_LIBRARY = 363,
 -        TOKEN_STRING = 364,
 -        TOKEN_INTEGER = 365,
 -        TOKEN_FLOAT = 366,
 -        TOKEN_BOOLEAN = 367
++        TOKEN_SUBNET = 301,
++        TOKEN_INTERFACE = 302,
++        TOKEN_INTERFACE_ID = 303,
++        TOKEN_ID = 304,
++        TOKEN_RAPID_COMMIT = 305,
++        TOKEN_RESERVATION_MODE = 306,
++        TOKEN_MAC_SOURCES = 307,
++        TOKEN_RELAY_SUPPLIED_OPTIONS = 308,
++        TOKEN_HOST_RESERVATION_IDENTIFIERS = 309,
++        TOKEN_CLIENT_CLASSES = 310,
++        TOKEN_TEST = 311,
++        TOKEN_CLIENT_CLASS = 312,
++        TOKEN_RESERVATIONS = 313,
++        TOKEN_IP_ADDRESSES = 314,
++        TOKEN_PREFIXES = 315,
++        TOKEN_DUID = 316,
++        TOKEN_HW_ADDRESS = 317,
++        TOKEN_HOSTNAME = 318,
++        TOKEN_RELAY = 319,
++        TOKEN_IP_ADDRESS = 320,
++        TOKEN_HOOKS_LIBRARIES = 321,
++        TOKEN_LIBRARY = 322,
++        TOKEN_PARAMETERS = 323,
++        TOKEN_EXPIRED_LEASES_PROCESSING = 324,
++        TOKEN_RECLAIM_TIMER_WAIT_TIME = 325,
++        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 326,
++        TOKEN_HOLD_RECLAIMED_TIME = 327,
++        TOKEN_MAX_RECLAIM_LEASES = 328,
++        TOKEN_MAX_RECLAIM_TIME = 329,
++        TOKEN_UNWARNED_RECLAIM_CYCLES = 330,
++        TOKEN_SERVER_ID = 331,
++        TOKEN_LLT = 332,
++        TOKEN_EN = 333,
++        TOKEN_LL = 334,
++        TOKEN_IDENTIFIER = 335,
++        TOKEN_HTYPE = 336,
++        TOKEN_TIME = 337,
++        TOKEN_ENTERPRISE_ID = 338,
++        TOKEN_DHCP4O6_PORT = 339,
++        TOKEN_CONTROL_SOCKET = 340,
++        TOKEN_SOCKET_TYPE = 341,
++        TOKEN_SOCKET_NAME = 342,
++        TOKEN_DHCP_DDNS = 343,
++        TOKEN_ENABLE_UPDATES = 344,
++        TOKEN_QUALIFYING_SUFFIX = 345,
++        TOKEN_SERVER_IP = 346,
++        TOKEN_SERVER_PORT = 347,
++        TOKEN_SENDER_IP = 348,
++        TOKEN_SENDER_PORT = 349,
++        TOKEN_MAX_QUEUE_SIZE = 350,
++        TOKEN_NCR_PROTOCOL = 351,
++        TOKEN_NCR_FORMAT = 352,
++        TOKEN_ALWAYS_INCLUDE_FQDN = 353,
++        TOKEN_ALLOW_CLIENT_UPDATE = 354,
++        TOKEN_OVERRIDE_NO_UPDATE = 355,
++        TOKEN_OVERRIDE_CLIENT_UPDATE = 356,
++        TOKEN_REPLACE_CLIENT_NAME = 357,
++        TOKEN_GENERATED_PREFIX = 358,
++        TOKEN_UDP = 359,
++        TOKEN_TCP = 360,
++        TOKEN_JSON = 361,
++        TOKEN_WHEN_PRESENT = 362,
++        TOKEN_NEVER = 363,
++        TOKEN_ALWAYS = 364,
++        TOKEN_WHEN_NOT_PRESENT = 365,
++        TOKEN_LOGGING = 366,
++        TOKEN_LOGGERS = 367,
++        TOKEN_OUTPUT_OPTIONS = 368,
++        TOKEN_OUTPUT = 369,
++        TOKEN_DEBUGLEVEL = 370,
++        TOKEN_SEVERITY = 371,
++        TOKEN_DHCP4 = 372,
++        TOKEN_DHCPDDNS = 373,
++        TOKEN_TOPLEVEL_JSON = 374,
++        TOKEN_TOPLEVEL_DHCP6 = 375,
++        TOKEN_SUB_DHCP6 = 376,
++        TOKEN_SUB_INTERFACES6 = 377,
++        TOKEN_SUB_SUBNET6 = 378,
++        TOKEN_SUB_POOL6 = 379,
++        TOKEN_SUB_PD_POOL = 380,
++        TOKEN_SUB_RESERVATION = 381,
++        TOKEN_SUB_OPTION_DEF = 382,
++        TOKEN_SUB_OPTION_DATA = 383,
++        TOKEN_SUB_HOOKS_LIBRARY = 384,
++        TOKEN_SUB_DHCP_DDNS = 385,
++        TOKEN_STRING = 386,
++        TOKEN_INTEGER = 387,
++        TOKEN_FLOAT = 388,
++        TOKEN_BOOLEAN = 389
        };
      };
  
      enum
      {
        yyeof_ = 0,
-       yylast_ = 760,     ///< Last index in yytable_.
-       yynnts_ = 314,  ///< Number of nonterminal symbols.
 -      yylast_ = 668,     ///< Last index in yytable_.
 -      yynnts_ = 284,  ///< Number of nonterminal symbols.
 -      yyfinal_ = 24, ///< Termination state number.
++      yylast_ = 752,     ///< Last index in yytable_.
++      yynnts_ = 312,  ///< Number of nonterminal symbols.
 +      yyfinal_ = 26, ///< Termination state number.
        yyterror_ = 1,
        yyerrcode_ = 256,
-       yyntokens_ = 140  ///< Number of tokens.
 -      yyntokens_ = 113  ///< Number of tokens.
++      yyntokens_ = 135  ///< Number of tokens.
      };
  
  
        75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
        85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
 -     105,   106,   107,   108,   109,   110,   111,   112
 +     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
 +     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-      135,   136,   137,   138,   139
++     125,   126,   127,   128,   129,   130,   131,   132,   133,   134
      };
-     const unsigned int user_token_number_max_ = 394;
 -    const unsigned int user_token_number_max_ = 367;
++    const unsigned int user_token_number_max_ = 389;
      const token_number_type undef_token_ = 2;
  
      if (static_cast<int>(t) <= yyeof_)
    {
        switch (other.type_get ())
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          value.copy< ElementPtr > (other.value);
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          value.copy< bool > (other.value);
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          value.copy< double > (other.value);
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          value.copy< int64_t > (other.value);
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          value.copy< std::string > (other.value);
          break;
  
      (void) v;
        switch (this->type_get ())
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          value.copy< ElementPtr > (v);
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          value.copy< bool > (v);
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          value.copy< double > (v);
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          value.copy< int64_t > (v);
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          value.copy< std::string > (v);
          break;
  
      // Type destructor.
      switch (yytype)
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          value.template destroy< ElementPtr > ();
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          value.template destroy< bool > ();
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          value.template destroy< double > ();
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          value.template destroy< int64_t > ();
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          value.template destroy< std::string > ();
          break;
  
      super_type::move(s);
        switch (this->type_get ())
      {
-       case 154: // value
-       case 198: // db_type
-       case 383: // duid_type
-       case 416: // ncr_protocol_value
-       case 425: // replace_client_name_value
 -      case 126: // value
 -      case 130: // map_value
 -      case 354: // duid_type
++      case 149: // value
++      case 376: // duid_type
++      case 409: // ncr_protocol_value
++      case 418: // replace_client_name_value
          value.move< ElementPtr > (s.value);
          break;
  
-       case 139: // "boolean"
 -      case 112: // "boolean"
++      case 134: // "boolean"
          value.move< bool > (s.value);
          break;
  
-       case 138: // "floating point"
 -      case 111: // "floating point"
++      case 133: // "floating point"
          value.move< double > (s.value);
          break;
  
-       case 137: // "integer"
 -      case 110: // "integer"
++      case 132: // "integer"
          value.move< int64_t > (s.value);
          break;
  
-       case 136: // "constant string"
 -      case 109: // "constant string"
++      case 131: // "constant string"
          value.move< std::string > (s.value);
          break;
  
       335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
       345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
       355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
 -     365,   366,   367
 +     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
 +     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-      385,   386,   387,   388,   389,   390,   391,   392,   393,   394
++     385,   386,   387,   388,   389
      };
      return static_cast<token_type> (yytoken_number_[type]);
    }
  
  #line 14 "dhcp6_parser.yy" // lalr1.cc:377
  } } // isc::dhcp
- #line 2569 "dhcp6_parser.h" // lalr1.cc:377
 -#line 2257 "dhcp6_parser.h" // lalr1.cc:377
++#line 2508 "dhcp6_parser.h" // lalr1.cc:377
  
  
  
index fa13b1c60c66dcf2b1b4e22806fd6f92fd70f555,1530d88dda555b0127dba26268fc9a1abc343b4c..76b824a07d768d9d54d6b91fd077275e69361ee4
@@@ -202,10 -195,8 +203,11 @@@ using namespace std
  %token <bool> BOOLEAN "boolean"
  
  %type <ElementPtr> value
+ %type <ElementPtr> map_value
 +%type <ElementPtr> db_type
  %type <ElementPtr> duid_type
 +%type <ElementPtr> ncr_protocol_value
 +%type <ElementPtr> replace_client_name_value
  
  %printer { yyoutput << $$; } <*>;
  
Simple merge