From cba469bf3e3470e32780bdbd93bb4d9184cef955 Mon Sep 17 00:00:00 2001 From: Simon Wisselink Date: Fri, 5 Jul 2024 11:12:44 +0200 Subject: [PATCH 1/2] Initial attempt. I think we can do this with less impact on compilation flow and thus less risk for stability. --- lexer/smarty_internal_templateparser.y | 39 +- .../smarty_internal_templateparser.php | 1612 +++++++++-------- .../PHPfunctions/PhpFunctionTest.php | 15 +- 3 files changed, 882 insertions(+), 784 deletions(-) diff --git a/lexer/smarty_internal_templateparser.y b/lexer/smarty_internal_templateparser.y index ffc85bc06..6ed9e418b 100644 --- a/lexer/smarty_internal_templateparser.y +++ b/lexer/smarty_internal_templateparser.y @@ -759,6 +759,19 @@ value(res) ::= varindexed(vi) DOUBLECOLON static_class_access(r). { res = $prefixVar .'::'.r[0].r[1]; } +value(res) ::= varindexed(vi) DOUBLECOLON static_class_constant(r). { + if ($this->security && $this->security->static_classes !== array()) { + $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); + } + $prefixVar = $this->compiler->getNewPrefixVariable(); + if (vi['var'] === '\'smarty\'') { + $this->compiler->appendPrefixCode("compiler->compileTag('private_special_variable',array(),vi['smarty_internal_index']).';?>'); + } else { + $this->compiler->appendPrefixCode("compiler->compileVariable(vi['var']).vi['smarty_internal_index'].';?>'); + } + res = $prefixVar .'::'.r[0]; +} + // Smarty tag value(res) ::= smartytag(st). { $prefixVar = $this->compiler->getNewPrefixVariable(); @@ -779,7 +792,21 @@ value(res) ::= NAMESPACE(c). { value(res) ::= arraydef(a). { res = a; } - // static class access + + // static class constant access +value(res) ::= ns1(c)DOUBLECOLON static_class_constant(s). { + if (!in_array(strtolower(c), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess(c, s, $this->compiler))) { + if (isset($this->smarty->registered_classes[c])) { + res = $this->smarty->registered_classes[c].'::'.s[0]; + } else { + res = c.'::'.s[0]; + } + } else { + $this->compiler->trigger_template_error ('static class \''.c.'\' is undefined or not allowed by security setting'); + } +} + + // other static class access value(res) ::= ns1(c)DOUBLECOLON static_class_access(s). { if (!in_array(strtolower(c), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess(c, s, $this->compiler))) { if (isset($this->smarty->registered_classes[c])) { @@ -1111,6 +1138,11 @@ modparameter(res) ::= COLON array(mp). { res = array(mp); } + // static class constant +static_class_constant(res) ::= ID(v). { + res = array(v); +} + // static class methode call static_class_access(res) ::= method(m). { res = array(m, '', 'method'); @@ -1121,11 +1153,6 @@ static_class_access(res) ::= method(m) objectchain(oc). { res = array(m, oc, 'method'); } - // static class constant -static_class_access(res) ::= ID(v). { - res = array(v, ''); -} - // static class variables static_class_access(res) ::= DOLLARID(v) arrayindex(a). { res = array(v, a, 'property'); diff --git a/libs/sysplugins/smarty_internal_templateparser.php b/libs/sysplugins/smarty_internal_templateparser.php index c37d3c187..fc5319f08 100644 --- a/libs/sysplugins/smarty_internal_templateparser.php +++ b/libs/sysplugins/smarty_internal_templateparser.php @@ -262,464 +262,492 @@ public function mergePrefixCode($code) const TP_ARRAYOPEN = 58; const TP_QUOTE = 59; const TP_BACKTICK = 60; - const YY_NO_ACTION = 514; - const YY_ACCEPT_ACTION = 513; - const YY_ERROR_ACTION = 512; + const YY_NO_ACTION = 518; + const YY_ACCEPT_ACTION = 517; + const YY_ERROR_ACTION = 516; - const YY_SZ_ACTTAB = 1997; + const YY_SZ_ACTTAB = 2137; public static $yy_action = array( - 249, 250, 239, 1, 27, 127, 220, 184, 160, 213, - 11, 54, 278, 10, 173, 34, 108, 387, 282, 279, - 223, 321, 221, 8, 194, 387, 18, 387, 85, 41, - 387, 285, 42, 44, 264, 222, 387, 209, 387, 198, - 387, 52, 5, 307, 288, 288, 164, 283, 224, 4, - 50, 249, 250, 239, 1, 232, 131, 381, 189, 205, - 213, 11, 54, 39, 35, 243, 31, 108, 94, 17, - 381, 223, 321, 221, 439, 226, 381, 33, 49, 426, - 41, 439, 89, 42, 44, 264, 222, 9, 235, 163, - 198, 426, 52, 5, 131, 288, 212, 284, 102, 106, - 4, 50, 249, 250, 239, 1, 232, 129, 426, 189, - 347, 213, 11, 54, 175, 324, 347, 208, 108, 22, - 426, 301, 223, 321, 221, 302, 226, 135, 18, 49, - 52, 41, 26, 288, 42, 44, 264, 222, 16, 235, - 294, 198, 204, 52, 5, 170, 288, 32, 90, 267, - 268, 4, 50, 249, 250, 239, 1, 20, 129, 185, - 179, 255, 213, 11, 54, 455, 288, 192, 455, 108, - 175, 167, 455, 223, 321, 221, 439, 226, 256, 18, - 55, 292, 41, 439, 132, 42, 44, 264, 222, 427, - 235, 12, 198, 165, 52, 5, 232, 288, 288, 347, - 153, 427, 4, 50, 249, 250, 239, 1, 232, 129, - 286, 181, 347, 213, 11, 54, 24, 13, 347, 49, - 108, 232, 320, 426, 223, 321, 221, 195, 201, 173, - 18, 49, 139, 41, 296, 426, 42, 44, 264, 222, - 7, 235, 286, 198, 49, 52, 5, 147, 288, 117, - 150, 317, 263, 4, 50, 249, 250, 239, 1, 95, - 130, 173, 189, 155, 213, 11, 54, 22, 244, 271, - 192, 108, 323, 286, 101, 223, 321, 221, 294, 226, - 204, 18, 348, 257, 41, 166, 283, 42, 44, 264, - 222, 28, 235, 300, 198, 348, 52, 5, 247, 288, - 117, 348, 94, 206, 4, 50, 249, 250, 239, 1, - 95, 129, 22, 189, 277, 213, 11, 54, 91, 274, - 224, 426, 108, 323, 216, 156, 223, 321, 221, 132, - 180, 262, 18, 426, 100, 41, 12, 288, 42, 44, - 264, 222, 15, 235, 216, 198, 254, 52, 5, 233, - 288, 210, 190, 192, 100, 4, 50, 249, 250, 239, - 1, 3, 131, 94, 189, 192, 213, 11, 54, 269, - 10, 204, 290, 108, 325, 216, 224, 223, 321, 221, - 23, 226, 211, 33, 315, 100, 45, 513, 92, 42, - 44, 264, 222, 102, 235, 178, 198, 268, 52, 5, - 275, 288, 161, 192, 37, 25, 4, 50, 249, 250, - 239, 1, 286, 129, 172, 187, 305, 213, 11, 54, - 164, 283, 310, 141, 108, 281, 281, 236, 223, 321, - 221, 169, 226, 230, 18, 122, 171, 41, 225, 175, - 42, 44, 264, 222, 144, 235, 303, 198, 134, 52, - 5, 265, 288, 151, 286, 192, 175, 4, 50, 249, - 250, 239, 1, 286, 128, 94, 189, 143, 213, 11, - 54, 219, 152, 207, 193, 108, 149, 281, 31, 223, - 321, 221, 100, 226, 21, 6, 286, 288, 41, 158, - 16, 42, 44, 264, 222, 102, 235, 238, 198, 286, - 52, 5, 157, 288, 281, 122, 168, 283, 4, 50, - 249, 250, 239, 1, 30, 93, 308, 51, 215, 213, - 11, 54, 53, 251, 140, 248, 108, 245, 304, 116, - 223, 321, 221, 111, 226, 176, 18, 270, 266, 41, - 224, 322, 42, 44, 264, 222, 7, 235, 259, 198, - 147, 52, 5, 257, 288, 43, 40, 38, 83, 4, - 50, 241, 214, 204, 319, 280, 88, 107, 138, 182, - 97, 64, 311, 312, 313, 316, 95, 281, 298, 258, - 142, 234, 94, 105, 272, 197, 231, 482, 237, 323, - 37, 133, 324, 241, 214, 204, 319, 314, 88, 107, - 296, 183, 97, 82, 84, 43, 40, 38, 95, 296, - 296, 258, 296, 296, 296, 159, 272, 197, 231, 296, - 237, 323, 311, 312, 313, 316, 241, 296, 204, 296, - 296, 103, 296, 296, 199, 104, 77, 296, 296, 110, - 296, 95, 296, 296, 258, 278, 296, 296, 34, 272, - 197, 231, 279, 237, 323, 43, 40, 38, 296, 296, - 296, 241, 26, 204, 196, 276, 103, 296, 16, 199, - 104, 77, 311, 312, 313, 316, 95, 192, 296, 258, - 146, 296, 296, 296, 272, 197, 231, 296, 237, 323, - 286, 393, 39, 35, 243, 296, 296, 296, 296, 191, - 276, 296, 26, 318, 252, 253, 126, 296, 16, 249, - 250, 239, 1, 296, 296, 131, 296, 261, 213, 11, - 54, 296, 296, 296, 426, 108, 393, 393, 393, 223, - 321, 221, 241, 296, 204, 299, 426, 103, 107, 296, - 183, 97, 82, 393, 393, 393, 393, 95, 296, 260, - 258, 52, 296, 296, 288, 272, 197, 231, 296, 237, - 323, 293, 296, 296, 296, 296, 296, 249, 250, 239, - 2, 296, 295, 296, 296, 296, 213, 11, 54, 296, - 296, 177, 296, 108, 136, 296, 296, 223, 321, 221, - 296, 296, 296, 293, 43, 40, 38, 296, 296, 249, - 250, 239, 2, 296, 295, 43, 40, 38, 213, 11, - 54, 311, 312, 313, 316, 108, 296, 291, 14, 223, - 321, 221, 311, 312, 313, 316, 296, 296, 241, 296, - 204, 296, 192, 103, 296, 296, 199, 104, 77, 296, - 296, 296, 296, 95, 383, 296, 258, 296, 296, 297, - 14, 272, 197, 231, 296, 237, 323, 383, 296, 296, - 241, 296, 204, 383, 296, 99, 296, 287, 199, 120, - 48, 241, 112, 204, 296, 95, 103, 296, 258, 199, - 120, 74, 296, 272, 197, 231, 95, 237, 323, 258, - 455, 296, 296, 455, 272, 197, 231, 455, 237, 323, - 241, 296, 204, 296, 296, 103, 200, 296, 199, 120, - 74, 296, 296, 296, 296, 95, 296, 296, 258, 278, - 296, 296, 34, 272, 197, 231, 279, 237, 323, 241, - 455, 204, 296, 296, 99, 202, 296, 199, 120, 56, - 241, 211, 204, 296, 95, 103, 296, 258, 199, 120, - 74, 296, 272, 197, 231, 95, 237, 323, 258, 227, - 296, 296, 296, 272, 197, 231, 296, 237, 323, 241, - 296, 204, 148, 296, 103, 203, 86, 199, 120, 73, - 296, 296, 286, 296, 95, 296, 296, 258, 278, 296, - 296, 34, 272, 197, 231, 279, 237, 323, 241, 296, - 204, 175, 296, 103, 296, 296, 199, 120, 75, 241, - 296, 204, 296, 95, 103, 296, 258, 199, 120, 63, - 296, 272, 197, 231, 95, 237, 323, 258, 229, 192, - 296, 296, 272, 197, 231, 296, 237, 323, 241, 296, - 204, 380, 296, 103, 296, 296, 199, 120, 58, 296, - 296, 296, 296, 95, 380, 296, 258, 296, 296, 296, - 380, 272, 197, 231, 296, 237, 323, 241, 296, 204, - 296, 296, 103, 296, 296, 199, 120, 71, 241, 296, - 204, 296, 95, 103, 296, 258, 199, 120, 79, 296, - 272, 197, 231, 95, 237, 323, 258, 296, 296, 296, - 154, 272, 197, 231, 87, 237, 323, 241, 296, 204, - 286, 296, 103, 296, 296, 199, 120, 70, 296, 296, - 296, 296, 95, 296, 296, 258, 296, 296, 296, 175, - 272, 197, 231, 296, 237, 323, 241, 296, 204, 296, - 296, 103, 296, 296, 199, 120, 56, 241, 296, 204, - 296, 95, 103, 296, 258, 199, 120, 46, 296, 272, - 197, 231, 95, 237, 323, 258, 296, 296, 296, 296, - 272, 197, 231, 296, 237, 323, 241, 296, 204, 296, - 296, 103, 296, 296, 199, 120, 78, 296, 296, 296, - 296, 95, 296, 296, 258, 296, 296, 296, 296, 272, - 197, 231, 296, 237, 323, 241, 296, 204, 296, 296, - 103, 296, 296, 199, 120, 66, 241, 296, 204, 296, - 95, 103, 296, 258, 199, 120, 59, 296, 272, 197, - 231, 95, 237, 323, 258, 296, 296, 296, 296, 272, - 197, 231, 296, 237, 323, 241, 296, 204, 296, 296, - 103, 296, 296, 186, 109, 57, 296, 296, 296, 296, - 95, 296, 296, 258, 296, 296, 296, 296, 272, 197, - 231, 296, 237, 323, 241, 296, 204, 296, 296, 103, - 296, 296, 188, 120, 67, 241, 296, 204, 296, 95, - 103, 296, 258, 199, 96, 62, 296, 272, 197, 231, - 95, 237, 323, 258, 296, 296, 296, 296, 272, 197, - 231, 296, 237, 323, 241, 296, 204, 296, 296, 103, - 296, 296, 199, 120, 80, 296, 296, 296, 296, 95, - 296, 296, 258, 296, 296, 296, 296, 272, 197, 231, - 296, 237, 323, 241, 296, 204, 296, 296, 103, 296, - 296, 199, 120, 76, 241, 296, 204, 296, 95, 103, - 296, 258, 199, 120, 81, 296, 272, 197, 231, 95, - 237, 323, 258, 296, 296, 296, 296, 272, 197, 231, - 296, 237, 323, 241, 296, 204, 296, 296, 103, 296, - 296, 199, 120, 65, 296, 296, 296, 296, 95, 296, - 296, 258, 296, 296, 296, 296, 272, 197, 231, 296, - 237, 323, 241, 296, 204, 296, 296, 103, 296, 296, - 199, 96, 68, 241, 296, 204, 296, 95, 103, 296, - 258, 199, 120, 61, 296, 272, 197, 231, 95, 237, - 323, 258, 296, 296, 296, 296, 272, 197, 231, 296, - 237, 323, 241, 296, 204, 296, 296, 103, 296, 296, - 199, 98, 69, 296, 296, 296, 296, 95, 296, 296, - 258, 296, 296, 296, 296, 272, 197, 231, 296, 237, - 323, 241, 296, 204, 296, 296, 103, 296, 296, 199, - 120, 72, 241, 296, 204, 296, 95, 103, 296, 258, - 199, 120, 47, 296, 272, 197, 231, 95, 237, 323, - 258, 296, 296, 296, 296, 272, 197, 231, 296, 237, - 323, 241, 192, 204, 296, 296, 103, 296, 296, 199, - 120, 60, 296, 296, 351, 296, 95, 296, 217, 258, - 296, 296, 296, 296, 272, 197, 231, 26, 237, 323, - 241, 296, 204, 16, 296, 103, 426, 296, 199, 125, - 296, 241, 296, 204, 296, 95, 103, 296, 426, 199, - 118, 296, 242, 272, 197, 231, 95, 237, 323, 296, - 296, 296, 296, 246, 272, 197, 231, 296, 237, 323, - 241, 296, 204, 278, 296, 103, 34, 296, 199, 121, - 279, 296, 296, 296, 296, 95, 296, 296, 296, 296, - 26, 296, 162, 272, 197, 231, 16, 237, 323, 241, - 296, 204, 296, 296, 103, 296, 296, 199, 123, 296, - 241, 296, 204, 296, 95, 103, 296, 296, 199, 114, - 296, 296, 272, 197, 231, 95, 237, 323, 296, 296, - 296, 296, 296, 272, 197, 231, 296, 237, 323, 241, - 296, 204, 296, 145, 103, 296, 296, 199, 124, 296, - 296, 296, 296, 286, 95, 39, 35, 243, 296, 296, - 296, 296, 272, 197, 231, 296, 237, 323, 241, 296, - 204, 296, 296, 103, 296, 296, 199, 115, 296, 241, - 296, 204, 296, 95, 103, 296, 296, 199, 113, 296, - 296, 272, 197, 231, 95, 237, 323, 296, 296, 296, - 296, 296, 272, 197, 231, 228, 237, 323, 241, 296, - 204, 296, 455, 103, 296, 455, 199, 119, 3, 455, - 439, 296, 296, 95, 296, 296, 296, 296, 296, 296, - 296, 272, 197, 231, 228, 237, 323, 296, 296, 296, - 296, 455, 296, 296, 455, 296, 296, 439, 455, 439, - 439, 228, 455, 296, 439, 296, 296, 137, 455, 296, - 296, 455, 296, 296, 32, 455, 439, 286, 296, 39, - 35, 243, 29, 296, 26, 296, 439, 296, 296, 439, - 16, 455, 296, 439, 306, 43, 40, 38, 296, 296, - 296, 296, 296, 439, 296, 296, 439, 296, 455, 296, - 439, 26, 311, 312, 313, 316, 296, 16, 228, 296, - 296, 296, 43, 40, 38, 455, 296, 296, 455, 296, - 296, 296, 455, 439, 296, 296, 19, 296, 296, 311, - 312, 313, 316, 455, 296, 296, 455, 296, 296, 296, - 455, 439, 296, 296, 296, 43, 40, 38, 296, 296, - 439, 296, 296, 439, 174, 455, 296, 439, 296, 240, - 309, 296, 311, 312, 313, 316, 296, 289, 439, 296, - 36, 439, 296, 455, 296, 439, 296, 296, 43, 40, - 38, 296, 296, 43, 40, 38, 296, 296, 296, 296, - 296, 43, 40, 38, 296, 311, 312, 313, 316, 296, - 311, 312, 313, 316, 296, 43, 40, 38, 311, 312, - 313, 316, 273, 43, 40, 38, 296, 296, 296, 296, - 296, 296, 311, 312, 313, 316, 296, 296, 296, 296, - 311, 312, 313, 316, 455, 296, 296, 455, 43, 40, - 38, 455, 439, 218, 43, 40, 38, 296, 296, 296, - 296, 296, 296, 296, 296, 311, 312, 313, 316, 296, - 296, 311, 312, 313, 316, 296, 296, 296, 296, 439, - 296, 296, 439, 296, 455, 296, 439, + 238, 239, 240, 1, 303, 127, 206, 185, 101, 207, + 6, 53, 27, 303, 192, 206, 107, 389, 97, 430, + 208, 253, 209, 486, 200, 389, 22, 389, 310, 41, + 389, 430, 42, 43, 267, 216, 389, 226, 389, 195, + 389, 52, 4, 316, 291, 55, 305, 97, 215, 5, + 50, 238, 239, 240, 1, 299, 95, 383, 51, 227, + 207, 6, 53, 44, 21, 275, 261, 107, 171, 294, + 383, 208, 253, 209, 132, 214, 383, 22, 144, 430, + 41, 12, 246, 42, 43, 267, 216, 3, 271, 97, + 195, 430, 52, 4, 131, 291, 222, 517, 94, 135, + 5, 50, 238, 239, 240, 1, 131, 129, 259, 194, + 192, 207, 6, 53, 251, 192, 37, 18, 107, 92, + 90, 250, 208, 253, 209, 16, 214, 169, 22, 217, + 52, 41, 325, 291, 42, 43, 267, 216, 291, 271, + 260, 195, 52, 52, 4, 291, 291, 121, 170, 294, + 258, 5, 50, 238, 239, 240, 1, 96, 129, 295, + 186, 281, 207, 6, 53, 237, 257, 206, 256, 107, + 293, 289, 349, 208, 253, 209, 133, 214, 349, 22, + 273, 274, 41, 172, 294, 42, 43, 267, 216, 122, + 271, 49, 195, 244, 52, 4, 168, 291, 33, 170, + 294, 192, 5, 50, 238, 239, 240, 1, 19, 128, + 184, 194, 263, 207, 6, 53, 145, 211, 249, 144, + 107, 147, 176, 430, 208, 253, 209, 443, 214, 264, + 11, 248, 224, 41, 443, 430, 42, 43, 267, 216, + 313, 271, 192, 195, 134, 52, 4, 249, 291, 291, + 349, 175, 106, 5, 50, 238, 239, 240, 1, 256, + 129, 83, 181, 349, 207, 6, 53, 13, 13, 349, + 34, 107, 97, 14, 14, 208, 253, 209, 150, 203, + 249, 22, 49, 291, 41, 136, 165, 42, 43, 267, + 216, 138, 271, 163, 195, 248, 52, 4, 323, 291, + 121, 102, 92, 223, 5, 50, 238, 239, 240, 1, + 96, 130, 176, 194, 84, 207, 6, 53, 459, 176, + 252, 459, 107, 97, 289, 459, 208, 253, 209, 30, + 214, 220, 22, 151, 139, 41, 141, 291, 42, 43, + 267, 216, 256, 271, 248, 195, 248, 52, 4, 261, + 291, 204, 189, 92, 152, 5, 50, 238, 239, 240, + 1, 249, 129, 17, 179, 49, 207, 6, 53, 14, + 291, 156, 192, 107, 173, 228, 236, 208, 253, 209, + 301, 214, 326, 22, 350, 102, 41, 192, 158, 42, + 43, 267, 216, 132, 271, 159, 195, 350, 52, 4, + 12, 291, 143, 350, 175, 248, 5, 50, 238, 239, + 240, 1, 248, 129, 26, 194, 162, 207, 6, 53, + 255, 29, 280, 279, 107, 256, 248, 249, 208, 253, + 209, 122, 180, 37, 22, 235, 236, 41, 15, 166, + 42, 43, 267, 216, 7, 271, 149, 195, 49, 52, + 4, 89, 291, 210, 256, 311, 248, 5, 50, 238, + 239, 240, 1, 215, 131, 176, 194, 443, 207, 6, + 53, 312, 430, 252, 443, 107, 175, 49, 431, 208, + 253, 209, 290, 214, 430, 20, 8, 10, 45, 9, + 431, 42, 43, 267, 216, 25, 271, 292, 195, 93, + 52, 4, 9, 291, 306, 190, 32, 309, 5, 50, + 238, 239, 240, 1, 25, 131, 317, 194, 228, 207, + 6, 53, 25, 85, 318, 229, 107, 91, 102, 153, + 208, 253, 209, 234, 214, 215, 20, 154, 164, 41, + 167, 241, 42, 43, 267, 216, 242, 271, 247, 195, + 215, 52, 4, 174, 291, 39, 40, 38, 108, 5, + 50, 277, 205, 206, 243, 254, 86, 104, 113, 183, + 98, 82, 284, 285, 286, 287, 96, 146, 300, 265, + 262, 87, 266, 268, 270, 196, 272, 248, 269, 278, + 289, 7, 288, 277, 205, 206, 243, 251, 86, 104, + 18, 182, 98, 62, 250, 23, 54, 176, 96, 155, + 225, 265, 251, 157, 314, 18, 270, 196, 272, 250, + 315, 278, 289, 324, 34, 327, 277, 35, 206, 245, + 299, 109, 104, 299, 183, 98, 82, 219, 277, 299, + 206, 96, 299, 109, 265, 299, 193, 111, 74, 270, + 196, 272, 212, 96, 278, 289, 265, 251, 160, 299, + 18, 270, 196, 272, 250, 299, 278, 289, 248, 192, + 44, 21, 275, 299, 13, 299, 142, 199, 308, 228, + 14, 385, 299, 277, 299, 206, 230, 191, 109, 102, + 299, 193, 111, 74, 385, 299, 299, 299, 96, 299, + 385, 265, 299, 299, 299, 148, 270, 196, 272, 88, + 304, 278, 289, 299, 299, 248, 238, 239, 240, 2, + 299, 302, 198, 308, 299, 207, 6, 53, 299, 299, + 299, 137, 107, 299, 299, 176, 208, 253, 209, 299, + 299, 248, 304, 44, 21, 275, 299, 299, 238, 239, + 240, 2, 299, 302, 299, 299, 299, 207, 6, 53, + 299, 192, 299, 299, 107, 299, 297, 28, 208, 253, + 209, 299, 299, 382, 231, 232, 233, 125, 299, 299, + 238, 239, 240, 1, 299, 299, 382, 299, 299, 207, + 6, 53, 382, 299, 299, 299, 107, 299, 298, 28, + 208, 253, 209, 277, 299, 206, 299, 299, 103, 299, + 299, 193, 114, 47, 299, 112, 299, 299, 96, 299, + 299, 265, 251, 299, 299, 18, 270, 196, 272, 250, + 299, 278, 289, 277, 299, 206, 299, 459, 109, 13, + 459, 193, 114, 69, 459, 14, 299, 299, 96, 299, + 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 277, 299, 206, 299, 299, 109, 202, + 299, 193, 114, 69, 299, 299, 299, 459, 96, 299, + 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 277, 299, 206, 299, 299, 109, 197, + 299, 193, 111, 74, 299, 299, 299, 299, 96, 299, + 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 299, 299, 299, 299, 299, 299, 277, + 299, 206, 299, 307, 109, 299, 299, 193, 114, 69, + 299, 299, 299, 299, 96, 299, 299, 265, 299, 299, + 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, + 299, 206, 299, 299, 103, 201, 299, 193, 114, 61, + 299, 229, 299, 299, 96, 299, 299, 265, 299, 299, + 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, + 299, 206, 299, 299, 109, 299, 299, 188, 110, 60, + 299, 277, 299, 206, 96, 299, 109, 265, 299, 193, + 99, 81, 270, 196, 272, 299, 96, 278, 289, 265, + 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, + 100, 80, 299, 299, 299, 299, 96, 299, 299, 265, + 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, + 114, 56, 299, 277, 299, 206, 96, 299, 109, 265, + 299, 193, 114, 68, 270, 196, 272, 299, 96, 278, + 289, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, + 299, 193, 99, 57, 299, 299, 299, 299, 96, 299, + 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, + 299, 193, 114, 67, 299, 277, 299, 206, 96, 299, + 109, 265, 299, 193, 114, 58, 270, 196, 272, 299, + 96, 278, 289, 265, 299, 299, 299, 299, 270, 196, + 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, + 109, 299, 299, 193, 114, 59, 299, 299, 299, 299, + 96, 299, 299, 265, 299, 299, 299, 299, 270, 196, + 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, + 109, 299, 299, 193, 114, 70, 299, 277, 299, 206, + 96, 299, 109, 265, 299, 193, 114, 61, 270, 196, + 272, 299, 96, 278, 289, 265, 299, 299, 299, 299, + 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, + 299, 299, 109, 299, 299, 193, 114, 66, 299, 299, + 299, 299, 96, 299, 299, 265, 299, 299, 299, 299, + 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, + 299, 299, 109, 299, 299, 193, 114, 71, 299, 277, + 299, 206, 96, 299, 109, 265, 299, 193, 114, 72, + 270, 196, 272, 299, 96, 278, 289, 265, 299, 299, + 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, + 299, 206, 299, 299, 109, 299, 299, 193, 114, 73, + 299, 299, 299, 299, 96, 299, 299, 265, 299, 299, + 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, + 299, 206, 299, 299, 109, 299, 299, 193, 114, 75, + 299, 277, 299, 206, 96, 299, 109, 265, 299, 187, + 114, 63, 270, 196, 272, 299, 96, 278, 289, 265, + 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, + 114, 64, 299, 299, 299, 299, 96, 299, 299, 265, + 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, + 114, 65, 299, 277, 299, 206, 96, 299, 109, 265, + 299, 193, 114, 76, 270, 196, 272, 299, 96, 278, + 289, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, + 299, 193, 114, 77, 299, 299, 299, 299, 96, 299, + 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, + 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, + 299, 193, 114, 78, 299, 277, 299, 206, 96, 299, + 109, 265, 299, 193, 114, 79, 270, 196, 272, 299, + 96, 278, 289, 265, 299, 299, 299, 299, 270, 196, + 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, + 109, 299, 299, 193, 114, 46, 299, 299, 299, 299, + 96, 299, 299, 265, 299, 299, 299, 299, 270, 196, + 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, + 109, 299, 299, 193, 114, 48, 299, 277, 299, 206, + 96, 299, 109, 265, 299, 193, 126, 299, 270, 196, + 272, 299, 96, 278, 289, 299, 299, 299, 299, 321, + 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, + 299, 161, 109, 299, 299, 193, 120, 299, 299, 299, + 299, 248, 96, 44, 21, 275, 299, 299, 299, 276, + 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, + 299, 299, 109, 299, 299, 193, 124, 299, 299, 277, + 299, 206, 96, 299, 109, 299, 299, 193, 115, 299, + 270, 196, 272, 299, 96, 278, 289, 299, 299, 299, + 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, + 299, 206, 299, 299, 109, 299, 299, 193, 116, 299, + 299, 299, 299, 299, 96, 299, 299, 299, 299, 299, + 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, + 299, 206, 299, 299, 109, 299, 299, 193, 117, 299, + 299, 277, 299, 206, 96, 299, 109, 299, 299, 193, + 118, 299, 270, 196, 272, 299, 96, 278, 289, 299, + 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, + 119, 299, 299, 299, 299, 299, 96, 299, 299, 299, + 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 277, 299, 206, 299, 36, 109, 13, 299, 193, + 123, 299, 299, 14, 299, 299, 96, 299, 39, 40, + 38, 299, 299, 299, 270, 196, 272, 299, 299, 278, + 289, 299, 213, 299, 299, 284, 285, 286, 287, 459, + 299, 213, 459, 299, 299, 3, 459, 443, 459, 299, + 213, 459, 299, 299, 299, 459, 443, 459, 299, 299, + 459, 299, 299, 33, 459, 443, 299, 395, 299, 299, + 299, 299, 299, 299, 443, 299, 299, 443, 299, 459, + 299, 443, 299, 443, 299, 299, 443, 299, 459, 299, + 443, 282, 443, 299, 299, 443, 299, 459, 299, 443, + 430, 299, 395, 395, 395, 299, 299, 299, 299, 299, + 299, 299, 430, 299, 299, 299, 299, 13, 299, 395, + 395, 395, 395, 14, 213, 299, 299, 299, 39, 40, + 38, 459, 299, 299, 459, 299, 299, 299, 459, 443, + 299, 299, 24, 299, 105, 284, 285, 286, 287, 459, + 299, 299, 459, 299, 299, 299, 459, 443, 299, 299, + 39, 40, 38, 299, 299, 299, 443, 299, 299, 443, + 299, 459, 299, 443, 299, 320, 299, 284, 285, 286, + 287, 299, 299, 299, 443, 140, 299, 443, 299, 459, + 299, 443, 299, 299, 299, 39, 40, 38, 299, 39, + 40, 38, 299, 319, 39, 40, 38, 299, 299, 296, + 299, 299, 284, 285, 286, 287, 284, 285, 286, 287, + 299, 284, 285, 286, 287, 39, 40, 38, 218, 39, + 40, 38, 177, 39, 40, 38, 178, 299, 299, 299, + 283, 322, 284, 285, 286, 287, 284, 285, 286, 287, + 284, 285, 286, 287, 31, 299, 39, 40, 38, 299, + 39, 40, 38, 299, 299, 39, 40, 38, 299, 299, + 299, 299, 299, 284, 285, 286, 287, 284, 285, 286, + 287, 299, 284, 285, 286, 287, 299, 299, 299, 39, + 40, 38, 459, 299, 299, 459, 39, 40, 38, 459, + 443, 299, 299, 299, 299, 299, 284, 285, 286, 287, + 192, 299, 299, 284, 285, 286, 287, 299, 299, 299, + 299, 299, 353, 299, 299, 299, 221, 443, 299, 299, + 443, 299, 459, 299, 443, 13, 299, 299, 299, 299, + 299, 14, 299, 299, 430, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 430, ); public static $yy_lookahead = array( - 9, 10, 11, 12, 12, 14, 14, 16, 16, 18, - 19, 20, 9, 34, 102, 12, 25, 13, 70, 16, - 29, 30, 31, 35, 33, 21, 35, 23, 95, 38, - 26, 52, 41, 42, 43, 44, 32, 46, 34, 48, - 36, 50, 51, 52, 53, 53, 98, 99, 44, 58, - 59, 9, 10, 11, 12, 22, 14, 13, 16, 15, - 18, 19, 20, 85, 86, 87, 15, 25, 17, 21, - 26, 29, 30, 31, 44, 33, 32, 35, 45, 35, - 38, 51, 34, 41, 42, 43, 44, 35, 46, 77, - 48, 47, 50, 51, 14, 53, 16, 13, 47, 47, - 58, 59, 9, 10, 11, 12, 22, 14, 35, 16, - 26, 18, 19, 20, 102, 103, 32, 44, 25, 34, - 47, 36, 29, 30, 31, 52, 33, 14, 35, 45, - 50, 38, 26, 53, 41, 42, 43, 44, 32, 46, - 66, 48, 68, 50, 51, 77, 53, 15, 35, 7, - 8, 58, 59, 9, 10, 11, 12, 12, 14, 14, - 16, 16, 18, 19, 20, 9, 53, 1, 12, 25, - 102, 82, 16, 29, 30, 31, 44, 33, 33, 35, - 106, 107, 38, 51, 44, 41, 42, 43, 44, 35, - 46, 51, 48, 82, 50, 51, 22, 53, 53, 13, - 73, 47, 58, 59, 9, 10, 11, 12, 22, 14, - 83, 16, 26, 18, 19, 20, 28, 12, 32, 45, - 25, 22, 70, 35, 29, 30, 31, 65, 33, 102, - 35, 45, 73, 38, 60, 47, 41, 42, 43, 44, - 35, 46, 83, 48, 45, 50, 51, 95, 53, 71, - 95, 52, 74, 58, 59, 9, 10, 11, 12, 81, - 14, 102, 16, 73, 18, 19, 20, 34, 90, 36, - 1, 25, 94, 83, 81, 29, 30, 31, 66, 33, - 68, 35, 13, 96, 38, 98, 99, 41, 42, 43, - 44, 15, 46, 100, 48, 26, 50, 51, 14, 53, - 71, 32, 17, 74, 58, 59, 9, 10, 11, 12, - 81, 14, 34, 16, 36, 18, 19, 20, 82, 107, - 44, 35, 25, 94, 71, 95, 29, 30, 31, 44, - 33, 78, 35, 47, 81, 38, 51, 53, 41, 42, - 43, 44, 15, 46, 71, 48, 16, 50, 51, 22, - 53, 78, 79, 1, 81, 58, 59, 9, 10, 11, - 12, 15, 14, 17, 16, 1, 18, 19, 20, 66, - 34, 68, 36, 25, 16, 71, 44, 29, 30, 31, - 28, 33, 78, 35, 52, 81, 38, 62, 63, 41, - 42, 43, 44, 47, 46, 6, 48, 8, 50, 51, - 16, 53, 73, 1, 2, 40, 58, 59, 9, 10, - 11, 12, 83, 14, 77, 16, 52, 18, 19, 20, - 98, 99, 52, 95, 25, 97, 97, 92, 29, 30, - 31, 77, 33, 49, 35, 100, 14, 38, 16, 102, - 41, 42, 43, 44, 73, 46, 14, 48, 14, 50, - 51, 36, 53, 73, 83, 1, 102, 58, 59, 9, - 10, 11, 12, 83, 14, 17, 16, 50, 18, 19, - 20, 17, 71, 64, 65, 25, 73, 97, 15, 29, - 30, 31, 81, 33, 26, 35, 83, 53, 38, 73, - 32, 41, 42, 43, 44, 47, 46, 92, 48, 83, - 50, 51, 95, 53, 97, 100, 98, 99, 58, 59, - 9, 10, 11, 12, 23, 14, 52, 16, 16, 18, - 19, 20, 16, 7, 50, 16, 25, 13, 13, 16, - 29, 30, 31, 16, 33, 16, 35, 33, 33, 38, - 44, 16, 41, 42, 43, 44, 35, 46, 16, 48, - 95, 50, 51, 96, 53, 37, 38, 39, 81, 58, - 59, 66, 67, 68, 69, 83, 71, 72, 95, 74, - 75, 76, 54, 55, 56, 57, 81, 97, 60, 84, - 95, 13, 17, 80, 89, 90, 91, 1, 93, 94, - 2, 81, 103, 66, 67, 68, 69, 99, 71, 72, - 108, 74, 75, 76, 81, 37, 38, 39, 81, 108, - 108, 84, 108, 108, 108, 95, 89, 90, 91, 108, - 93, 94, 54, 55, 56, 57, 66, 108, 68, 108, - 108, 71, 108, 108, 74, 75, 76, 108, 108, 21, - 108, 81, 108, 108, 84, 9, 108, 108, 12, 89, - 90, 91, 16, 93, 94, 37, 38, 39, 108, 108, - 108, 66, 26, 68, 104, 105, 71, 108, 32, 74, - 75, 76, 54, 55, 56, 57, 81, 1, 108, 84, - 73, 108, 108, 108, 89, 90, 91, 108, 93, 94, - 83, 2, 85, 86, 87, 108, 108, 108, 108, 104, - 105, 108, 26, 3, 4, 5, 6, 108, 32, 9, - 10, 11, 12, 108, 108, 14, 108, 16, 18, 19, - 20, 108, 108, 108, 35, 25, 37, 38, 39, 29, - 30, 31, 66, 108, 68, 69, 47, 71, 72, 108, - 74, 75, 76, 54, 55, 56, 57, 81, 108, 48, - 84, 50, 108, 108, 53, 89, 90, 91, 108, 93, - 94, 3, 108, 108, 108, 108, 108, 9, 10, 11, - 12, 108, 14, 108, 108, 108, 18, 19, 20, 108, - 108, 13, 108, 25, 27, 108, 108, 29, 30, 31, - 108, 108, 108, 3, 37, 38, 39, 108, 108, 9, - 10, 11, 12, 108, 14, 37, 38, 39, 18, 19, - 20, 54, 55, 56, 57, 25, 108, 59, 60, 29, - 30, 31, 54, 55, 56, 57, 108, 108, 66, 108, - 68, 108, 1, 71, 108, 108, 74, 75, 76, 108, - 108, 108, 108, 81, 13, 108, 84, 108, 108, 59, - 60, 89, 90, 91, 108, 93, 94, 26, 108, 108, - 66, 108, 68, 32, 108, 71, 108, 105, 74, 75, - 76, 66, 78, 68, 108, 81, 71, 108, 84, 74, - 75, 76, 108, 89, 90, 91, 81, 93, 94, 84, - 9, 108, 108, 12, 89, 90, 91, 16, 93, 94, - 66, 108, 68, 108, 108, 71, 101, 108, 74, 75, - 76, 108, 108, 108, 108, 81, 108, 108, 84, 9, - 108, 108, 12, 89, 90, 91, 16, 93, 94, 66, - 49, 68, 108, 108, 71, 101, 108, 74, 75, 76, - 66, 78, 68, 108, 81, 71, 108, 84, 74, 75, - 76, 108, 89, 90, 91, 81, 93, 94, 84, 49, - 108, 108, 108, 89, 90, 91, 108, 93, 94, 66, - 108, 68, 73, 108, 71, 101, 77, 74, 75, 76, - 108, 108, 83, 108, 81, 108, 108, 84, 9, 108, - 108, 12, 89, 90, 91, 16, 93, 94, 66, 108, - 68, 102, 108, 71, 108, 108, 74, 75, 76, 66, - 108, 68, 108, 81, 71, 108, 84, 74, 75, 76, - 108, 89, 90, 91, 81, 93, 94, 84, 49, 1, - 108, 108, 89, 90, 91, 108, 93, 94, 66, 108, - 68, 13, 108, 71, 108, 108, 74, 75, 76, 108, - 108, 108, 108, 81, 26, 108, 84, 108, 108, 108, - 32, 89, 90, 91, 108, 93, 94, 66, 108, 68, - 108, 108, 71, 108, 108, 74, 75, 76, 66, 108, - 68, 108, 81, 71, 108, 84, 74, 75, 76, 108, - 89, 90, 91, 81, 93, 94, 84, 108, 108, 108, - 73, 89, 90, 91, 77, 93, 94, 66, 108, 68, - 83, 108, 71, 108, 108, 74, 75, 76, 108, 108, - 108, 108, 81, 108, 108, 84, 108, 108, 108, 102, - 89, 90, 91, 108, 93, 94, 66, 108, 68, 108, - 108, 71, 108, 108, 74, 75, 76, 66, 108, 68, - 108, 81, 71, 108, 84, 74, 75, 76, 108, 89, - 90, 91, 81, 93, 94, 84, 108, 108, 108, 108, - 89, 90, 91, 108, 93, 94, 66, 108, 68, 108, - 108, 71, 108, 108, 74, 75, 76, 108, 108, 108, - 108, 81, 108, 108, 84, 108, 108, 108, 108, 89, - 90, 91, 108, 93, 94, 66, 108, 68, 108, 108, - 71, 108, 108, 74, 75, 76, 66, 108, 68, 108, - 81, 71, 108, 84, 74, 75, 76, 108, 89, 90, - 91, 81, 93, 94, 84, 108, 108, 108, 108, 89, - 90, 91, 108, 93, 94, 66, 108, 68, 108, 108, - 71, 108, 108, 74, 75, 76, 108, 108, 108, 108, - 81, 108, 108, 84, 108, 108, 108, 108, 89, 90, - 91, 108, 93, 94, 66, 108, 68, 108, 108, 71, - 108, 108, 74, 75, 76, 66, 108, 68, 108, 81, - 71, 108, 84, 74, 75, 76, 108, 89, 90, 91, - 81, 93, 94, 84, 108, 108, 108, 108, 89, 90, - 91, 108, 93, 94, 66, 108, 68, 108, 108, 71, - 108, 108, 74, 75, 76, 108, 108, 108, 108, 81, - 108, 108, 84, 108, 108, 108, 108, 89, 90, 91, - 108, 93, 94, 66, 108, 68, 108, 108, 71, 108, - 108, 74, 75, 76, 66, 108, 68, 108, 81, 71, - 108, 84, 74, 75, 76, 108, 89, 90, 91, 81, - 93, 94, 84, 108, 108, 108, 108, 89, 90, 91, - 108, 93, 94, 66, 108, 68, 108, 108, 71, 108, - 108, 74, 75, 76, 108, 108, 108, 108, 81, 108, - 108, 84, 108, 108, 108, 108, 89, 90, 91, 108, - 93, 94, 66, 108, 68, 108, 108, 71, 108, 108, - 74, 75, 76, 66, 108, 68, 108, 81, 71, 108, - 84, 74, 75, 76, 108, 89, 90, 91, 81, 93, - 94, 84, 108, 108, 108, 108, 89, 90, 91, 108, - 93, 94, 66, 108, 68, 108, 108, 71, 108, 108, - 74, 75, 76, 108, 108, 108, 108, 81, 108, 108, - 84, 108, 108, 108, 108, 89, 90, 91, 108, 93, - 94, 66, 108, 68, 108, 108, 71, 108, 108, 74, - 75, 76, 66, 108, 68, 108, 81, 71, 108, 84, - 74, 75, 76, 108, 89, 90, 91, 81, 93, 94, - 84, 108, 108, 108, 108, 89, 90, 91, 108, 93, - 94, 66, 1, 68, 108, 108, 71, 108, 108, 74, - 75, 76, 108, 108, 13, 108, 81, 108, 17, 84, - 108, 108, 108, 108, 89, 90, 91, 26, 93, 94, - 66, 108, 68, 32, 108, 71, 35, 108, 74, 75, - 108, 66, 108, 68, 108, 81, 71, 108, 47, 74, - 75, 108, 88, 89, 90, 91, 81, 93, 94, 108, - 108, 108, 108, 88, 89, 90, 91, 108, 93, 94, - 66, 108, 68, 9, 108, 71, 12, 108, 74, 75, - 16, 108, 108, 108, 108, 81, 108, 108, 108, 108, - 26, 108, 28, 89, 90, 91, 32, 93, 94, 66, - 108, 68, 108, 108, 71, 108, 108, 74, 75, 108, - 66, 108, 68, 108, 81, 71, 108, 108, 74, 75, - 108, 108, 89, 90, 91, 81, 93, 94, 108, 108, - 108, 108, 108, 89, 90, 91, 108, 93, 94, 66, - 108, 68, 108, 73, 71, 108, 108, 74, 75, 108, - 108, 108, 108, 83, 81, 85, 86, 87, 108, 108, - 108, 108, 89, 90, 91, 108, 93, 94, 66, 108, - 68, 108, 108, 71, 108, 108, 74, 75, 108, 66, - 108, 68, 108, 81, 71, 108, 108, 74, 75, 108, - 108, 89, 90, 91, 81, 93, 94, 108, 108, 108, - 108, 108, 89, 90, 91, 2, 93, 94, 66, 108, - 68, 108, 9, 71, 108, 12, 74, 75, 15, 16, - 17, 108, 108, 81, 108, 108, 108, 108, 108, 108, - 108, 89, 90, 91, 2, 93, 94, 108, 108, 108, - 108, 9, 108, 108, 12, 108, 108, 44, 16, 17, - 47, 2, 49, 108, 51, 108, 108, 73, 9, 108, - 108, 12, 108, 108, 15, 16, 17, 83, 108, 85, - 86, 87, 24, 108, 26, 108, 44, 108, 108, 47, - 32, 49, 108, 51, 52, 37, 38, 39, 108, 108, - 108, 108, 108, 44, 108, 108, 47, 108, 49, 108, - 51, 26, 54, 55, 56, 57, 108, 32, 2, 108, - 108, 108, 37, 38, 39, 9, 108, 108, 12, 108, - 108, 108, 16, 17, 108, 108, 2, 108, 108, 54, - 55, 56, 57, 9, 108, 108, 12, 108, 108, 108, - 16, 17, 108, 108, 108, 37, 38, 39, 108, 108, - 44, 108, 108, 47, 13, 49, 108, 51, 108, 13, - 52, 108, 54, 55, 56, 57, 108, 13, 44, 108, - 2, 47, 108, 49, 108, 51, 108, 108, 37, 38, - 39, 108, 108, 37, 38, 39, 108, 108, 108, 108, - 108, 37, 38, 39, 108, 54, 55, 56, 57, 108, - 54, 55, 56, 57, 108, 37, 38, 39, 54, 55, - 56, 57, 36, 37, 38, 39, 108, 108, 108, 108, - 108, 108, 54, 55, 56, 57, 108, 108, 108, 108, - 54, 55, 56, 57, 9, 108, 108, 12, 37, 38, - 39, 16, 17, 36, 37, 38, 39, 108, 108, 108, - 108, 108, 108, 108, 108, 54, 55, 56, 57, 108, - 108, 54, 55, 56, 57, 108, 108, 108, 108, 44, - 108, 108, 47, 108, 49, 108, 51, + 9, 10, 11, 12, 66, 14, 68, 16, 81, 18, + 19, 20, 28, 66, 1, 68, 25, 13, 17, 35, + 29, 30, 31, 1, 33, 21, 35, 23, 101, 38, + 26, 47, 41, 42, 43, 44, 32, 46, 34, 48, + 36, 50, 51, 52, 53, 107, 108, 17, 44, 58, + 59, 9, 10, 11, 12, 108, 14, 13, 16, 15, + 18, 19, 20, 85, 86, 87, 97, 25, 99, 100, + 26, 29, 30, 31, 44, 33, 32, 35, 96, 35, + 38, 51, 83, 41, 42, 43, 44, 15, 46, 17, + 48, 47, 50, 51, 14, 53, 16, 62, 63, 14, + 58, 59, 9, 10, 11, 12, 14, 14, 16, 16, + 1, 18, 19, 20, 9, 1, 2, 12, 25, 47, + 35, 16, 29, 30, 31, 15, 33, 14, 35, 16, + 50, 38, 22, 53, 41, 42, 43, 44, 53, 46, + 48, 48, 50, 50, 51, 53, 53, 71, 99, 100, + 74, 58, 59, 9, 10, 11, 12, 81, 14, 13, + 16, 52, 18, 19, 20, 66, 90, 68, 22, 25, + 70, 95, 26, 29, 30, 31, 81, 33, 32, 35, + 92, 93, 38, 99, 100, 41, 42, 43, 44, 101, + 46, 45, 48, 70, 50, 51, 77, 53, 15, 99, + 100, 1, 58, 59, 9, 10, 11, 12, 12, 14, + 14, 16, 16, 18, 19, 20, 96, 17, 98, 96, + 25, 73, 103, 35, 29, 30, 31, 44, 33, 33, + 35, 83, 44, 38, 51, 47, 41, 42, 43, 44, + 52, 46, 1, 48, 14, 50, 51, 98, 53, 53, + 13, 103, 80, 58, 59, 9, 10, 11, 12, 22, + 14, 81, 16, 26, 18, 19, 20, 26, 26, 32, + 15, 25, 17, 32, 32, 29, 30, 31, 96, 33, + 98, 35, 45, 53, 38, 73, 77, 41, 42, 43, + 44, 71, 46, 77, 48, 83, 50, 51, 14, 53, + 71, 81, 47, 74, 58, 59, 9, 10, 11, 12, + 81, 14, 103, 16, 81, 18, 19, 20, 9, 103, + 104, 12, 25, 17, 95, 16, 29, 30, 31, 12, + 33, 14, 35, 16, 73, 38, 73, 53, 41, 42, + 43, 44, 22, 46, 83, 48, 83, 50, 51, 97, + 53, 64, 65, 47, 96, 58, 59, 9, 10, 11, + 12, 98, 14, 26, 16, 45, 18, 19, 20, 32, + 53, 96, 1, 25, 6, 71, 8, 29, 30, 31, + 60, 33, 78, 35, 13, 81, 38, 1, 96, 41, + 42, 43, 44, 44, 46, 73, 48, 26, 50, 51, + 51, 53, 73, 32, 103, 83, 58, 59, 9, 10, + 11, 12, 83, 14, 28, 16, 73, 18, 19, 20, + 16, 12, 92, 93, 25, 22, 83, 98, 29, 30, + 31, 101, 33, 2, 35, 7, 8, 38, 21, 77, + 41, 42, 43, 44, 35, 46, 73, 48, 45, 50, + 51, 34, 53, 49, 22, 52, 83, 58, 59, 9, + 10, 11, 12, 44, 14, 103, 16, 44, 18, 19, + 20, 52, 35, 104, 51, 25, 103, 45, 35, 29, + 30, 31, 100, 33, 47, 35, 35, 35, 38, 34, + 47, 41, 42, 43, 44, 34, 46, 36, 48, 47, + 50, 51, 34, 53, 36, 65, 15, 52, 58, 59, + 9, 10, 11, 12, 34, 14, 36, 16, 71, 18, + 19, 20, 34, 96, 36, 78, 25, 82, 81, 96, + 29, 30, 31, 7, 33, 44, 35, 96, 82, 38, + 82, 13, 41, 42, 43, 44, 13, 46, 14, 48, + 44, 50, 51, 16, 53, 37, 38, 39, 16, 58, + 59, 66, 67, 68, 69, 16, 71, 72, 16, 74, + 75, 76, 54, 55, 56, 57, 81, 73, 60, 84, + 16, 77, 16, 33, 89, 90, 91, 83, 33, 94, + 95, 35, 16, 66, 67, 68, 69, 9, 71, 72, + 12, 74, 75, 76, 16, 40, 16, 103, 81, 50, + 16, 84, 9, 50, 52, 12, 89, 90, 91, 16, + 52, 94, 95, 16, 15, 36, 66, 23, 68, 69, + 109, 71, 72, 109, 74, 75, 76, 49, 66, 109, + 68, 81, 109, 71, 84, 109, 74, 75, 76, 89, + 90, 91, 49, 81, 94, 95, 84, 9, 73, 109, + 12, 89, 90, 91, 16, 109, 94, 95, 83, 1, + 85, 86, 87, 109, 26, 109, 28, 105, 106, 71, + 32, 13, 109, 66, 109, 68, 78, 79, 71, 81, + 109, 74, 75, 76, 26, 109, 109, 109, 81, 109, + 32, 84, 109, 109, 109, 73, 89, 90, 91, 77, + 3, 94, 95, 109, 109, 83, 9, 10, 11, 12, + 109, 14, 105, 106, 109, 18, 19, 20, 109, 109, + 109, 73, 25, 109, 109, 103, 29, 30, 31, 109, + 109, 83, 3, 85, 86, 87, 109, 109, 9, 10, + 11, 12, 109, 14, 109, 109, 109, 18, 19, 20, + 109, 1, 109, 109, 25, 109, 59, 60, 29, 30, + 31, 109, 109, 13, 3, 4, 5, 6, 109, 109, + 9, 10, 11, 12, 109, 109, 26, 109, 109, 18, + 19, 20, 32, 109, 109, 109, 25, 109, 59, 60, + 29, 30, 31, 66, 109, 68, 109, 109, 71, 109, + 109, 74, 75, 76, 109, 78, 109, 109, 81, 109, + 109, 84, 9, 109, 109, 12, 89, 90, 91, 16, + 109, 94, 95, 66, 109, 68, 109, 9, 71, 26, + 12, 74, 75, 76, 16, 32, 109, 109, 81, 109, + 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 66, 109, 68, 109, 109, 71, 102, + 109, 74, 75, 76, 109, 109, 109, 49, 81, 109, + 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 66, 109, 68, 109, 109, 71, 102, + 109, 74, 75, 76, 109, 109, 109, 109, 81, 109, + 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 109, 109, 109, 109, 109, 109, 66, + 109, 68, 109, 106, 71, 109, 109, 74, 75, 76, + 109, 109, 109, 109, 81, 109, 109, 84, 109, 109, + 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, + 109, 68, 109, 109, 71, 102, 109, 74, 75, 76, + 109, 78, 109, 109, 81, 109, 109, 84, 109, 109, + 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, + 109, 68, 109, 109, 71, 109, 109, 74, 75, 76, + 109, 66, 109, 68, 81, 109, 71, 84, 109, 74, + 75, 76, 89, 90, 91, 109, 81, 94, 95, 84, + 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, + 75, 76, 109, 109, 109, 109, 81, 109, 109, 84, + 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, + 75, 76, 109, 66, 109, 68, 81, 109, 71, 84, + 109, 74, 75, 76, 89, 90, 91, 109, 81, 94, + 95, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, + 109, 74, 75, 76, 109, 109, 109, 109, 81, 109, + 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, + 109, 74, 75, 76, 109, 66, 109, 68, 81, 109, + 71, 84, 109, 74, 75, 76, 89, 90, 91, 109, + 81, 94, 95, 84, 109, 109, 109, 109, 89, 90, + 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, + 71, 109, 109, 74, 75, 76, 109, 109, 109, 109, + 81, 109, 109, 84, 109, 109, 109, 109, 89, 90, + 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, + 71, 109, 109, 74, 75, 76, 109, 66, 109, 68, + 81, 109, 71, 84, 109, 74, 75, 76, 89, 90, + 91, 109, 81, 94, 95, 84, 109, 109, 109, 109, + 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, + 109, 109, 71, 109, 109, 74, 75, 76, 109, 109, + 109, 109, 81, 109, 109, 84, 109, 109, 109, 109, + 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, + 109, 109, 71, 109, 109, 74, 75, 76, 109, 66, + 109, 68, 81, 109, 71, 84, 109, 74, 75, 76, + 89, 90, 91, 109, 81, 94, 95, 84, 109, 109, + 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, + 109, 68, 109, 109, 71, 109, 109, 74, 75, 76, + 109, 109, 109, 109, 81, 109, 109, 84, 109, 109, + 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, + 109, 68, 109, 109, 71, 109, 109, 74, 75, 76, + 109, 66, 109, 68, 81, 109, 71, 84, 109, 74, + 75, 76, 89, 90, 91, 109, 81, 94, 95, 84, + 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, + 75, 76, 109, 109, 109, 109, 81, 109, 109, 84, + 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, + 75, 76, 109, 66, 109, 68, 81, 109, 71, 84, + 109, 74, 75, 76, 89, 90, 91, 109, 81, 94, + 95, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, + 109, 74, 75, 76, 109, 109, 109, 109, 81, 109, + 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, + 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, + 109, 74, 75, 76, 109, 66, 109, 68, 81, 109, + 71, 84, 109, 74, 75, 76, 89, 90, 91, 109, + 81, 94, 95, 84, 109, 109, 109, 109, 89, 90, + 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, + 71, 109, 109, 74, 75, 76, 109, 109, 109, 109, + 81, 109, 109, 84, 109, 109, 109, 109, 89, 90, + 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, + 71, 109, 109, 74, 75, 76, 109, 66, 109, 68, + 81, 109, 71, 84, 109, 74, 75, 109, 89, 90, + 91, 109, 81, 94, 95, 109, 109, 109, 109, 88, + 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, + 109, 73, 71, 109, 109, 74, 75, 109, 109, 109, + 109, 83, 81, 85, 86, 87, 109, 109, 109, 88, + 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, + 109, 109, 71, 109, 109, 74, 75, 109, 109, 66, + 109, 68, 81, 109, 71, 109, 109, 74, 75, 109, + 89, 90, 91, 109, 81, 94, 95, 109, 109, 109, + 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, + 109, 68, 109, 109, 71, 109, 109, 74, 75, 109, + 109, 109, 109, 109, 81, 109, 109, 109, 109, 109, + 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, + 109, 68, 109, 109, 71, 109, 109, 74, 75, 109, + 109, 66, 109, 68, 81, 109, 71, 109, 109, 74, + 75, 109, 89, 90, 91, 109, 81, 94, 95, 109, + 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, + 75, 109, 109, 109, 109, 109, 81, 109, 109, 109, + 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 66, 109, 68, 109, 24, 71, 26, 109, 74, + 75, 109, 109, 32, 109, 109, 81, 109, 37, 38, + 39, 109, 109, 109, 89, 90, 91, 109, 109, 94, + 95, 109, 2, 109, 109, 54, 55, 56, 57, 9, + 109, 2, 12, 109, 109, 15, 16, 17, 9, 109, + 2, 12, 109, 109, 109, 16, 17, 9, 109, 109, + 12, 109, 109, 15, 16, 17, 109, 2, 109, 109, + 109, 109, 109, 109, 44, 109, 109, 47, 109, 49, + 109, 51, 109, 44, 109, 109, 47, 109, 49, 109, + 51, 52, 44, 109, 109, 47, 109, 49, 109, 51, + 35, 109, 37, 38, 39, 109, 109, 109, 109, 109, + 109, 109, 47, 109, 109, 109, 109, 26, 109, 54, + 55, 56, 57, 32, 2, 109, 109, 109, 37, 38, + 39, 9, 109, 109, 12, 109, 109, 109, 16, 17, + 109, 109, 2, 109, 21, 54, 55, 56, 57, 9, + 109, 109, 12, 109, 109, 109, 16, 17, 109, 109, + 37, 38, 39, 109, 109, 109, 44, 109, 109, 47, + 109, 49, 109, 51, 109, 13, 109, 54, 55, 56, + 57, 109, 109, 109, 44, 27, 109, 47, 109, 49, + 109, 51, 109, 109, 109, 37, 38, 39, 109, 37, + 38, 39, 109, 36, 37, 38, 39, 109, 109, 13, + 109, 109, 54, 55, 56, 57, 54, 55, 56, 57, + 109, 54, 55, 56, 57, 37, 38, 39, 36, 37, + 38, 39, 13, 37, 38, 39, 13, 109, 109, 109, + 52, 13, 54, 55, 56, 57, 54, 55, 56, 57, + 54, 55, 56, 57, 2, 109, 37, 38, 39, 109, + 37, 38, 39, 109, 109, 37, 38, 39, 109, 109, + 109, 109, 109, 54, 55, 56, 57, 54, 55, 56, + 57, 109, 54, 55, 56, 57, 109, 109, 109, 37, + 38, 39, 9, 109, 109, 12, 37, 38, 39, 16, + 17, 109, 109, 109, 109, 109, 54, 55, 56, 57, + 1, 109, 109, 54, 55, 56, 57, 109, 109, 109, + 109, 109, 13, 109, 109, 109, 17, 44, 109, 109, + 47, 109, 49, 109, 51, 26, 109, 109, 109, 109, + 109, 32, 109, 109, 35, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 47, ); - const YY_SHIFT_USE_DFLT = -22; + const YY_SHIFT_USE_DFLT = -17; const YY_SHIFT_MAX = 230; public static $yy_shift_ofst = array( - -22, 501, 501, 93, 399, 399, 450, 93, 93, 93, - 399, 450, -9, 93, 93, 93, 93, 93, 93, 144, - 93, 195, 93, 93, 93, 246, 195, 93, 93, 93, - 93, 93, 297, 93, 93, 93, 93, 348, 42, 42, - 42, 42, 42, 42, 42, 42, 1768, 1795, 1795, 701, - 758, 1521, 80, 676, 113, 790, 1927, 1828, 1896, 568, - 768, 1861, 757, 1866, 1874, 1888, 618, 518, 1921, 1921, - 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, - 1921, 1921, 1921, 1584, 636, 285, 676, 676, 346, 113, - 113, 402, 700, 1723, -8, 910, 831, 269, 1028, 51, - 3, 3, 422, 448, 352, 106, 422, 106, 458, 364, - 434, 454, 106, 166, 166, 166, 166, 565, 166, 166, - 166, 586, 565, 166, 166, -22, -22, 1752, 1769, 1826, - 1844, 1945, 145, 979, 156, 132, 284, 106, 140, 106, - 30, 140, 140, 30, 106, 106, 106, 140, 106, 106, - 140, 106, 327, 106, 106, 106, 140, 140, 106, 140, - 205, 106, 284, 166, 565, 588, 565, 588, 565, 166, - 166, -12, 166, -22, -22, -22, -22, -22, -22, 689, - 4, 44, 84, 186, 73, 881, 199, 188, 174, 286, - 48, 336, 384, 389, 332, 142, -21, 52, 154, 33, - 85, 276, 278, 233, 515, 509, 474, 516, 502, 464, - 491, 415, 417, 432, 514, 370, 463, 506, 365, 513, - -12, 517, 504, 519, 505, 511, 496, 525, 532, 330, - 358, + -17, 42, 42, 93, 144, 144, 195, 93, 93, 144, + 93, 195, -9, 246, 93, 93, 93, 246, 93, 93, + 93, 93, 93, 297, 348, 93, 93, 93, 93, 93, + 93, 93, 93, 399, 93, 93, 93, 450, 501, 501, + 501, 501, 501, 501, 501, 501, 1761, 1871, 1871, 92, + 707, 2089, 80, 85, 241, 739, 1903, 1938, 1942, 1947, + 1968, 1972, 1976, 518, 1999, 2003, 2032, 2008, 2039, 2039, + 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, + 2039, 2039, 2039, 648, 813, 30, 72, 241, 241, 85, + 85, 114, 113, 113, 771, 1810, 588, 317, 371, 668, + 760, 105, 105, 255, 242, 230, 242, 337, 200, 306, + 109, 386, 242, 13, 13, 13, 13, 13, 13, 13, + 13, 1, 1, 22, 13, -17, -17, 1819, 1828, 1902, + 1920, 2063, 196, 603, 309, 183, 242, 242, 110, 242, + 284, 242, 284, 242, 349, 349, 242, 242, 242, 242, + 349, 409, 349, 349, 349, 423, 349, 423, 349, 242, + 242, 242, 242, 13, 431, 13, 13, 431, 13, 451, + 1, 1, 1, -17, -17, -17, -17, -17, -17, 1845, + 4, 44, 146, 237, 828, 188, -16, 320, 403, 368, + 428, 417, 404, 432, 437, 443, 452, 461, 468, 455, + 419, 480, 488, 491, 526, 528, 533, 534, 537, 542, + 549, 552, 564, 566, 506, 550, 555, 556, 565, 576, + 451, 590, 559, 563, 594, 562, 568, 607, 609, 589, + 604, ); - const YY_REDUCE_USE_DFLT = -89; + const YY_REDUCE_USE_DFLT = -74; const YY_REDUCE_MAX = 178; public static $yy_reduce_ofst = array( - 325, 527, 495, 666, 595, 560, 863, 874, 834, 805, - 762, 794, 1179, 1455, 1208, 1012, 1386, 1139, 1070, 1110, - 1150, 1219, 1248, 1277, 1288, 1317, 1346, 1357, 1415, 1426, - 1081, 1041, 1001, 972, 943, 932, 903, 1484, 1495, 1622, - 1633, 1662, 1593, 1564, 1553, 1524, 1704, 607, 1590, 178, - 74, 1027, 229, 899, 273, 212, -22, -22, -22, -22, + 35, 495, 527, 560, 572, 617, 737, 767, 797, 827, + 863, 893, 923, 935, 965, 995, 1007, 1037, 1067, 1079, + 1109, 1139, 1151, 1181, 1211, 1223, 1253, 1283, 1295, 1325, + 1355, 1367, 1397, 1427, 1439, 1469, 1499, 1511, 1541, 1571, + 1583, 1613, 1643, 1655, 1685, 1715, 585, 658, 1538, 76, + -62, 504, 229, 608, 632, -53, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, -22, -22, 380, 329, 187, 159, 127, -52, 253, - 304, 12, 303, 152, 193, 328, 68, 68, 68, 322, - 328, 407, 405, 322, 68, 190, 335, 416, 403, 68, - 401, 354, 371, 68, 68, 68, 337, 322, 68, 68, - 68, 68, 408, 68, 68, 68, 409, 455, 455, 455, - 455, 455, 510, 480, 455, 455, 477, 482, 457, 482, - 473, 457, 457, 485, 482, 482, 482, 457, 482, 482, - 457, 482, 503, 482, 482, 482, 457, 457, 482, 457, - 520, 482, 523, -88, 498, 489, 498, 489, 498, -88, - -88, -67, -88, 111, 155, 89, 236, 230, 162, + -22, -22, -22, 263, 329, -31, 100, 148, 373, 304, + 447, 216, 88, 330, 99, 123, 120, -73, 119, 119, + 119, 182, 120, 49, 212, 220, 261, 322, 209, 49, + 119, 119, 343, 362, 119, 119, 119, 119, 119, 119, + 119, 49, 84, 119, 119, 287, 119, -18, -18, -18, + -18, -18, 95, 149, -18, -18, -1, -1, 172, -1, + 180, -1, 233, -1, 252, 252, -1, -1, -1, -1, + 252, 258, 252, 252, 252, 275, 252, 292, 252, -1, + -1, -1, -1, 301, 369, 301, 301, 369, 301, 427, + 382, 382, 382, 440, 445, 456, 458, 433, 441, ); public static $yyExpectedTokens = array( array(), @@ -775,21 +803,21 @@ public function mergePrefixCode($code) array(3, 9, 10, 11, 12, 14, 18, 19, 20, 25, 29, 30, 31, 59, 60, ), array(1, 13, 17, 26, 32, 35, 47, ), array(14, 16, 50, 53, ), - array(1, 26, 32, ), array(14, 35, 53, ), + array(1, 26, 32, ), array(3, 9, 10, 11, 12, 14, 18, 19, 20, 25, 29, 30, 31, 59, 60, ), + array(21, 37, 38, 39, 54, 55, 56, 57, ), + array(27, 37, 38, 39, 54, 55, 56, 57, ), + array(13, 37, 38, 39, 54, 55, 56, 57, ), array(36, 37, 38, 39, 54, 55, 56, 57, ), array(37, 38, 39, 52, 54, 55, 56, 57, ), array(36, 37, 38, 39, 54, 55, 56, 57, ), array(13, 37, 38, 39, 54, 55, 56, 57, ), - array(13, 37, 38, 39, 54, 55, 56, 57, ), - array(13, 37, 38, 39, 54, 55, 56, 57, ), - array(27, 37, 38, 39, 54, 55, 56, 57, ), + array(37, 38, 39, 54, 55, 56, 57, 60, ), array(13, 37, 38, 39, 54, 55, 56, 57, ), array(13, 37, 38, 39, 54, 55, 56, 57, ), array(2, 37, 38, 39, 54, 55, 56, 57, ), - array(21, 37, 38, 39, 54, 55, 56, 57, ), - array(37, 38, 39, 54, 55, 56, 57, 60, ), + array(13, 37, 38, 39, 54, 55, 56, 57, ), array(37, 38, 39, 54, 55, 56, 57, ), array(37, 38, 39, 54, 55, 56, 57, ), array(37, 38, 39, 54, 55, 56, 57, ), @@ -808,43 +836,43 @@ public function mergePrefixCode($code) array(9, 12, 16, 26, 28, 32, ), array(9, 12, 16, 26, 32, ), array(17, 44, 51, ), + array(15, 17, 47, ), array(1, 26, 32, ), array(1, 26, 32, ), - array(15, 17, 47, ), array(14, 35, 53, ), array(14, 35, 53, ), array(1, 2, ), + array(14, 16, ), + array(14, 16, ), array(3, 4, 5, 6, 9, 10, 11, 12, 18, 19, 20, 25, 29, 30, 31, ), array(2, 9, 12, 15, 16, 17, 44, 47, 49, 51, ), - array(12, 14, 16, 53, ), array(9, 12, 16, 49, ), + array(12, 14, 16, 53, ), array(1, 13, 26, 32, ), array(1, 13, 26, 32, ), array(1, 13, 26, 32, ), - array(15, 17, 47, ), array(9, 12, 16, ), array(9, 12, 16, ), - array(14, 16, ), - array(17, 47, ), - array(1, 28, ), + array(15, 17, 47, ), array(26, 32, ), - array(14, 16, ), + array(14, 53, ), array(26, 32, ), array(26, 32, ), - array(1, 52, ), - array(14, 53, ), array(1, 17, ), + array(17, 47, ), + array(1, 52, ), + array(1, 28, ), array(26, 32, ), array(1, ), array(1, ), array(1, ), array(1, ), - array(17, ), array(1, ), array(1, ), array(1, ), array(1, ), array(17, ), + array(17, ), array(1, ), array(1, ), array(), @@ -858,43 +886,43 @@ public function mergePrefixCode($code) array(9, 12, 16, 49, ), array(9, 12, 16, ), array(15, 44, 51, ), - array(14, 53, ), array(26, 32, ), - array(44, 51, ), array(26, 32, ), - array(44, 51, ), - array(44, 51, ), - array(44, 51, ), - array(44, 51, ), + array(15, 22, ), array(26, 32, ), + array(14, 53, ), array(26, 32, ), + array(14, 53, ), array(26, 32, ), array(44, 51, ), - array(26, 32, ), - array(26, 32, ), array(44, 51, ), array(26, 32, ), - array(15, 22, ), array(26, 32, ), array(26, 32, ), array(26, 32, ), array(44, 51, ), + array(12, 35, ), + array(44, 51, ), + array(44, 51, ), + array(44, 51, ), + array(44, 51, ), + array(44, 51, ), array(44, 51, ), - array(26, 32, ), array(44, 51, ), - array(12, 35, ), array(26, 32, ), - array(14, 53, ), + array(26, 32, ), + array(26, 32, ), + array(26, 32, ), array(1, ), - array(17, ), - array(2, ), - array(17, ), array(2, ), - array(17, ), array(1, ), array(1, ), - array(35, ), + array(2, ), array(1, ), + array(35, ), + array(17, ), + array(17, ), + array(17, ), array(), array(), array(), @@ -906,53 +934,55 @@ public function mergePrefixCode($code) array(13, 15, 26, 32, 35, 47, ), array(13, 22, 26, 32, 45, ), array(13, 22, 26, 32, 45, ), - array(35, 44, 47, 52, ), array(9, 12, 16, 49, ), - array(22, 45, 52, ), + array(35, 44, 47, 52, ), array(28, 35, 47, ), array(22, 45, 60, ), - array(35, 47, ), - array(21, 34, ), - array(34, 36, ), - array(16, 49, ), + array(22, 45, 52, ), array(6, 8, ), - array(44, 52, ), array(7, 8, ), - array(34, 52, ), + array(21, 34, ), + array(16, 49, ), + array(22, 45, ), + array(35, 47, ), array(35, 47, ), array(35, 47, ), - array(22, 45, ), array(34, 36, ), - array(15, 44, ), + array(34, 36, ), + array(34, 52, ), + array(44, 52, ), array(34, 36, ), array(34, 36, ), + array(15, 44, ), + array(7, ), array(13, ), + array(13, ), + array(14, ), array(16, ), - array(50, ), - array(7, ), array(16, ), - array(52, ), - array(23, ), - array(36, ), - array(50, ), - array(14, ), - array(13, ), - array(52, ), - array(15, ), array(16, ), - array(40, ), array(16, ), - array(35, ), array(16, ), - array(33, ), array(16, ), + array(44, ), + array(33, ), array(33, ), array(35, ), - array(44, ), + array(40, ), array(16, ), + array(35, ), array(16, ), + array(50, ), + array(50, ), array(16, ), + array(52, ), + array(52, ), array(16, ), + array(15, ), + array(36, ), + array(23, ), + array(), + array(), array(), array(), array(), @@ -1050,44 +1080,44 @@ public function mergePrefixCode($code) array(), ); public static $yy_default = array( - 336, 512, 512, 512, 497, 497, 512, 474, 474, 474, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 377, 377, 356, 512, - 512, 413, 512, 377, 512, 512, 512, 512, 512, 512, - 512, 512, 382, 512, 349, 512, 512, 512, 382, 379, - 389, 388, 384, 402, 473, 397, 498, 500, 401, 361, - 472, 499, 349, 377, 377, 487, 377, 377, 429, 512, - 512, 368, 326, 428, 512, 439, 391, 391, 391, 429, - 439, 439, 512, 429, 391, 377, 512, 377, 377, 391, - 512, 371, 358, 395, 394, 396, 373, 429, 400, 404, - 391, 404, 484, 406, 405, 481, 334, 428, 428, 428, - 428, 428, 512, 441, 439, 455, 512, 363, 435, 354, - 434, 437, 433, 432, 359, 357, 364, 436, 353, 367, - 466, 365, 512, 352, 350, 360, 467, 465, 346, 464, - 439, 366, 512, 369, 461, 475, 488, 476, 485, 372, - 422, 439, 374, 480, 439, 480, 480, 439, 334, 413, - 409, 413, 403, 403, 413, 440, 403, 413, 403, 413, - 512, 512, 512, 332, 409, 512, 512, 512, 423, 403, - 512, 409, 512, 512, 512, 512, 512, 512, 512, 418, - 385, 512, 512, 512, 512, 512, 512, 512, 415, 512, - 455, 512, 512, 512, 411, 486, 409, 512, 512, 512, - 512, 419, 407, 362, 445, 418, 425, 424, 420, 339, - 460, 421, 483, 398, 416, 340, 399, 455, 378, 337, - 338, 330, 328, 329, 442, 443, 444, 438, 392, 393, - 427, 426, 386, 417, 408, 390, 410, 331, 333, 335, - 412, 470, 414, 415, 503, 478, 495, 471, 459, 458, - 375, 457, 344, 462, 508, 493, 376, 496, 456, 509, - 494, 501, 504, 511, 510, 507, 505, 502, 506, 345, - 468, 469, 446, 355, 341, 452, 450, 454, 448, 453, - 447, 489, 490, 491, 463, 449, 492, 451, 327, 342, - 343, 370, 430, 431, 479, 477, + 338, 516, 516, 516, 501, 501, 516, 478, 478, 516, + 478, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 516, 516, 379, 358, 379, 516, + 516, 415, 516, 516, 379, 516, 516, 384, 516, 516, + 516, 516, 351, 516, 516, 516, 516, 516, 363, 477, + 399, 403, 476, 502, 504, 503, 404, 386, 390, 391, + 381, 384, 351, 379, 379, 491, 433, 379, 379, 516, + 516, 370, 516, 516, 328, 432, 443, 516, 393, 393, + 393, 443, 443, 433, 379, 516, 379, 379, 373, 433, + 393, 393, 360, 375, 393, 397, 406, 407, 408, 398, + 402, 433, 489, 406, 396, 336, 485, 432, 432, 432, + 432, 432, 516, 445, 443, 459, 348, 359, 516, 362, + 516, 367, 516, 368, 440, 441, 352, 354, 355, 356, + 469, 443, 468, 471, 470, 436, 437, 438, 439, 369, + 365, 366, 361, 371, 479, 374, 376, 480, 425, 443, + 465, 492, 490, 336, 484, 484, 484, 443, 443, 415, + 411, 415, 405, 405, 444, 415, 415, 405, 405, 334, + 516, 516, 516, 405, 415, 426, 516, 516, 516, 516, + 411, 516, 516, 411, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 411, 413, 516, 488, 417, 516, + 459, 516, 516, 516, 516, 516, 420, 516, 516, 516, + 387, 329, 330, 331, 332, 333, 335, 337, 339, 340, + 341, 342, 343, 344, 345, 347, 377, 357, 378, 461, + 462, 463, 483, 372, 481, 482, 409, 418, 419, 430, + 431, 442, 446, 447, 448, 394, 395, 410, 412, 414, + 416, 420, 421, 422, 423, 400, 401, 424, 427, 428, + 429, 456, 454, 457, 493, 494, 495, 496, 434, 435, + 467, 460, 475, 346, 466, 512, 513, 505, 506, 507, + 510, 509, 511, 514, 515, 508, 498, 500, 499, 497, + 472, 455, 453, 450, 451, 452, 458, 473, 474, 417, + 449, 487, 464, 459, 380, 364, 388, 392, ); - const YYNOCODE = 109; + const YYNOCODE = 110; const YYSTACKDEPTH = 500; - const YYNSTATE = 326; - const YYNRULE = 186; + const YYNSTATE = 328; + const YYNRULE = 188; const YYERRORSYMBOL = 61; const YYERRSYMDT = 'yy0'; const YYFALLBACK = 0; @@ -1140,10 +1170,11 @@ public function PrintTrace() 'foraction', 'varvar', 'modparameters', 'attribute', 'ternary', 'tlop', 'lop', 'scond', 'array', 'function', 'ns1', 'doublequoted_with_quotes', - 'static_class_access', 'arraydef', 'object', 'arrayindex', - 'indexdef', 'varvarele', 'objectchain', 'objectelement', - 'method', 'params', 'modifier', 'modparameter', - 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent', + 'static_class_access', 'static_class_constant', 'arraydef', 'object', + 'arrayindex', 'indexdef', 'varvarele', 'objectchain', + 'objectelement', 'method', 'params', 'modifier', + 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', + 'doublequotedcontent', ); public static $yyRuleName = array( @@ -1242,10 +1273,12 @@ public function PrintTrace() 'value ::= SINGLEQUOTESTRING', 'value ::= doublequoted_with_quotes', 'value ::= varindexed DOUBLECOLON static_class_access', + 'value ::= varindexed DOUBLECOLON static_class_constant', 'value ::= smartytag', 'value ::= value modifierlist', 'value ::= NAMESPACE', 'value ::= arraydef', + 'value ::= ns1 DOUBLECOLON static_class_constant', 'value ::= ns1 DOUBLECOLON static_class_access', 'ns1 ::= ID', 'ns1 ::= NAMESPACE', @@ -1305,9 +1338,9 @@ public function PrintTrace() 'modparameter ::= COLON value', 'modparameter ::= COLON UNIMATH value', 'modparameter ::= COLON array', + 'static_class_constant ::= ID', 'static_class_access ::= method', 'static_class_access ::= method objectchain', - 'static_class_access ::= ID', 'static_class_access ::= DOLLARID arrayindex', 'static_class_access ::= DOLLARID arrayindex objectchain', 'lop ::= LOGOP', @@ -1743,11 +1776,13 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 3 ), + array( 0 => 75, 1 => 3 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 2 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 3 ), + array( 0 => 75, 1 => 3 ), array( 0 => 90, 1 => 1 ), array( 0 => 90, 1 => 1 ), array( 0 => 74, 1 => 1 ), @@ -1760,80 +1795,80 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) array( 0 => 74, 1 => 4 ), array( 0 => 71, 1 => 2 ), array( 0 => 71, 1 => 2 ), - array( 0 => 95, 1 => 2 ), - array( 0 => 95, 1 => 0 ), - array( 0 => 96, 1 => 2 ), - array( 0 => 96, 1 => 2 ), - array( 0 => 96, 1 => 4 ), - array( 0 => 96, 1 => 2 ), - array( 0 => 96, 1 => 2 ), - array( 0 => 96, 1 => 4 ), - array( 0 => 96, 1 => 3 ), - array( 0 => 96, 1 => 5 ), - array( 0 => 96, 1 => 3 ), - array( 0 => 96, 1 => 3 ), - array( 0 => 96, 1 => 3 ), - array( 0 => 96, 1 => 3 ), - array( 0 => 96, 1 => 3 ), - array( 0 => 96, 1 => 3 ), array( 0 => 96, 1 => 2 ), + array( 0 => 96, 1 => 0 ), + array( 0 => 97, 1 => 2 ), + array( 0 => 97, 1 => 2 ), + array( 0 => 97, 1 => 4 ), + array( 0 => 97, 1 => 2 ), + array( 0 => 97, 1 => 2 ), + array( 0 => 97, 1 => 4 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 5 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 97, 1 => 2 ), array( 0 => 81, 1 => 1 ), array( 0 => 81, 1 => 1 ), array( 0 => 81, 1 => 2 ), - array( 0 => 97, 1 => 1 ), - array( 0 => 97, 1 => 1 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 94, 1 => 2 ), array( 0 => 98, 1 => 1 ), - array( 0 => 98, 1 => 2 ), - array( 0 => 99, 1 => 3 ), - array( 0 => 99, 1 => 3 ), - array( 0 => 99, 1 => 5 ), - array( 0 => 99, 1 => 6 ), + array( 0 => 98, 1 => 1 ), + array( 0 => 98, 1 => 3 ), + array( 0 => 95, 1 => 2 ), + array( 0 => 99, 1 => 1 ), array( 0 => 99, 1 => 2 ), + array( 0 => 100, 1 => 3 ), + array( 0 => 100, 1 => 3 ), + array( 0 => 100, 1 => 5 ), + array( 0 => 100, 1 => 6 ), + array( 0 => 100, 1 => 2 ), array( 0 => 89, 1 => 4 ), - array( 0 => 100, 1 => 4 ), - array( 0 => 100, 1 => 4 ), - array( 0 => 101, 1 => 3 ), - array( 0 => 101, 1 => 1 ), - array( 0 => 101, 1 => 0 ), + array( 0 => 101, 1 => 4 ), + array( 0 => 101, 1 => 4 ), + array( 0 => 102, 1 => 3 ), + array( 0 => 102, 1 => 1 ), + array( 0 => 102, 1 => 0 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 2 ), - array( 0 => 102, 1 => 3 ), - array( 0 => 102, 1 => 2 ), - array( 0 => 82, 1 => 2 ), - array( 0 => 82, 1 => 0 ), - array( 0 => 103, 1 => 2 ), array( 0 => 103, 1 => 3 ), array( 0 => 103, 1 => 2 ), + array( 0 => 82, 1 => 2 ), + array( 0 => 82, 1 => 0 ), + array( 0 => 104, 1 => 2 ), + array( 0 => 104, 1 => 3 ), + array( 0 => 104, 1 => 2 ), + array( 0 => 93, 1 => 1 ), array( 0 => 92, 1 => 1 ), array( 0 => 92, 1 => 2 ), - array( 0 => 92, 1 => 1 ), array( 0 => 92, 1 => 2 ), array( 0 => 92, 1 => 3 ), array( 0 => 86, 1 => 1 ), array( 0 => 86, 1 => 1 ), array( 0 => 85, 1 => 1 ), array( 0 => 87, 1 => 1 ), - array( 0 => 93, 1 => 3 ), - array( 0 => 93, 1 => 3 ), - array( 0 => 104, 1 => 1 ), - array( 0 => 104, 1 => 3 ), - array( 0 => 104, 1 => 0 ), - array( 0 => 105, 1 => 3 ), - array( 0 => 105, 1 => 3 ), + array( 0 => 94, 1 => 3 ), + array( 0 => 94, 1 => 3 ), array( 0 => 105, 1 => 1 ), + array( 0 => 105, 1 => 3 ), + array( 0 => 105, 1 => 0 ), + array( 0 => 106, 1 => 3 ), + array( 0 => 106, 1 => 3 ), + array( 0 => 106, 1 => 1 ), array( 0 => 91, 1 => 2 ), array( 0 => 91, 1 => 3 ), - array( 0 => 106, 1 => 2 ), - array( 0 => 106, 1 => 1 ), - array( 0 => 107, 1 => 3 ), - array( 0 => 107, 1 => 3 ), - array( 0 => 107, 1 => 1 ), - array( 0 => 107, 1 => 3 ), - array( 0 => 107, 1 => 3 ), - array( 0 => 107, 1 => 1 ), + array( 0 => 107, 1 => 2 ), array( 0 => 107, 1 => 1 ), + array( 0 => 108, 1 => 3 ), + array( 0 => 108, 1 => 3 ), + array( 0 => 108, 1 => 1 ), + array( 0 => 108, 1 => 3 ), + array( 0 => 108, 1 => 3 ), + array( 0 => 108, 1 => 1 ), + array( 0 => 108, 1 => 1 ), ); public static $yyReduceMap = array( @@ -1858,12 +1893,12 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 88 => 6, 92 => 6, 93 => 6, - 97 => 6, 98 => 6, - 100 => 6, - 105 => 6, - 169 => 6, - 174 => 6, + 99 => 6, + 102 => 6, + 107 => 6, + 171 => 6, + 176 => 6, 7 => 7, 8 => 8, 9 => 9, @@ -1904,18 +1939,19 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 49 => 49, 50 => 50, 59 => 50, - 147 => 50, - 151 => 50, - 155 => 50, + 149 => 50, + 153 => 50, 157 => 50, + 159 => 50, + 160 => 50, 51 => 51, - 148 => 51, - 154 => 51, + 150 => 51, + 156 => 51, 52 => 52, 53 => 53, 54 => 53, 55 => 55, - 132 => 55, + 134 => 55, 58 => 58, 60 => 60, 61 => 61, @@ -1935,7 +1971,7 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 78 => 78, 80 => 78, 81 => 78, - 112 => 78, + 114 => 78, 79 => 79, 84 => 84, 85 => 85, @@ -1947,40 +1983,40 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 94 => 94, 95 => 95, 96 => 96, - 99 => 99, + 97 => 97, + 100 => 100, 101 => 101, - 102 => 102, 103 => 103, 104 => 104, + 105 => 105, 106 => 106, - 107 => 107, 108 => 108, 109 => 109, 110 => 110, 111 => 111, + 112 => 112, 113 => 113, - 171 => 113, - 114 => 114, 115 => 115, + 173 => 115, 116 => 116, 117 => 117, 118 => 118, 119 => 119, - 127 => 119, 120 => 120, 121 => 121, + 129 => 121, 122 => 122, - 123 => 122, - 125 => 122, - 126 => 122, + 123 => 123, 124 => 124, - 128 => 128, - 129 => 129, + 125 => 124, + 127 => 124, + 128 => 124, + 126 => 126, 130 => 130, - 175 => 130, 131 => 131, + 132 => 132, + 177 => 132, 133 => 133, - 134 => 134, 135 => 135, 136 => 136, 137 => 137, @@ -1993,14 +2029,13 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 144 => 144, 145 => 145, 146 => 146, - 149 => 149, - 150 => 150, + 147 => 147, + 148 => 148, + 151 => 151, 152 => 152, - 153 => 153, - 156 => 156, + 154 => 154, + 155 => 155, 158 => 158, - 159 => 159, - 160 => 160, 161 => 161, 162 => 162, 163 => 163, @@ -2008,20 +2043,22 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 165 => 165, 166 => 166, 167 => 167, - 168 => 167, - 170 => 170, + 168 => 168, + 169 => 169, + 170 => 169, 172 => 172, - 173 => 173, - 176 => 176, - 177 => 177, + 174 => 174, + 175 => 175, 178 => 178, 179 => 179, - 182 => 179, 180 => 180, - 183 => 180, 181 => 181, - 184 => 184, - 185 => 185, + 184 => 181, + 182 => 182, + 185 => 182, + 183 => 183, + 186 => 186, + 187 => 187, ); // line 233 "../smarty/lexer/smarty_internal_templateparser.y" public function yy_r0(){ @@ -2397,9 +2434,9 @@ public function yy_r90(){ } // line 749 "../smarty/lexer/smarty_internal_templateparser.y" public function yy_r94(){ - if ($this->security && $this->security->static_classes !== array()) { - $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); - } + if ($this->security && $this->security->static_classes !== array()) { + $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); + } $prefixVar = $this->compiler->getNewPrefixVariable(); if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') { $this->compiler->appendPrefixCode("compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>'); @@ -2408,42 +2445,67 @@ public function yy_r94(){ } $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } -// line 760 "../smarty/lexer/smarty_internal_templateparser.y" +// line 762 "../smarty/lexer/smarty_internal_templateparser.y" public function yy_r95(){ + if ($this->security && $this->security->static_classes !== array()) { + $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); + } + $prefixVar = $this->compiler->getNewPrefixVariable(); + if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') { + $this->compiler->appendPrefixCode("compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>'); + } else { + $this->compiler->appendPrefixCode("compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>'); + } + $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0]; + } +// line 776 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r96(){ $prefixVar = $this->compiler->getNewPrefixVariable(); $tmp = $this->compiler->appendCode('', $this->yystack[$this->yyidx + 0]->minor); $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "")); $this->_retvalue = $prefixVar; } -// line 767 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r96(){ +// line 783 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r97(){ $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor)); } -// line 780 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r99(){ +// line 797 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r100(){ + if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) { + if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { + $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0]; + } else { + $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0]; + } + } else { + $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting'); + } + } +// line 810 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r101(){ if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) { if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } else { trigger_error('Using unregistered static method "' . $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0] . '" in a template is deprecated and will be ' . - 'removed in a future release. Use Smarty::registerClass to explicitly register ' . - 'a class for access.', E_USER_DEPRECATED); + 'removed in a future release. Use Smarty::registerClass to explicitly register ' . + 'a class for access.', E_USER_DEPRECATED); $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } } else { $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting'); } } -// line 799 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r101(){ +// line 832 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r103(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -// line 810 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r102(){ +// line 843 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r104(){ $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''); } -// line 813 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r103(){ +// line 846 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r105(){ if ($this->yystack[$this->yyidx + 0]->minor['var'] === '\'smarty\'') { $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']); $this->_retvalue = $smarty_var; @@ -2454,164 +2516,164 @@ public function yy_r103(){ $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']; } } -// line 826 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r104(){ +// line 859 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r106(){ $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor; } -// line 836 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r106(){ +// line 869 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r108(){ $this->_retvalue = $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -1]->minor . '\''); } -// line 840 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r107(){ +// line 873 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r109(){ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -2]->minor . '\'') . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)'; } -// line 844 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r108(){ +// line 877 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r110(){ $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor); } -// line 848 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r109(){ +// line 881 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r111(){ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)'; } -// line 852 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r110(){ +// line 885 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r112(){ $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } -// line 855 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r111(){ +// line 888 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r113(){ $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } -// line 868 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r113(){ +// line 901 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r115(){ return; } -// line 874 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r114(){ +// line 907 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r116(){ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']'; } -// line 877 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r115(){ +// line 910 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r117(){ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']'; } -// line 881 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r116(){ +// line 914 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r118(){ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']'; } -// line 885 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r117(){ +// line 918 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r119(){ $this->_retvalue = '[\''. $this->yystack[$this->yyidx + 0]->minor .'\']'; } -// line 889 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r118(){ +// line 922 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r120(){ $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']'; } -// line 894 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r119(){ +// line 927 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r121(){ $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']'; } -// line 899 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r120(){ +// line 932 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r122(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } -// line 903 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r121(){ +// line 936 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r123(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; } -// line 906 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r122(){ +// line 939 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r124(){ $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']'; } -// line 912 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r124(){ +// line 945 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r126(){ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']'; } -// line 928 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r128(){ +// line 961 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r130(){ $this->_retvalue = '[]'; } -// line 938 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r129(){ +// line 971 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r131(){ $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''; } -// line 942 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r130(){ +// line 975 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r132(){ $this->_retvalue = '\'\''; } -// line 947 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r131(){ +// line 980 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r133(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } -// line 955 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r133(){ +// line 988 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r135(){ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $'); $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\''); } -// line 961 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r134(){ +// line 994 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r136(){ $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; } -// line 968 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r135(){ +// line 1001 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r137(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] === '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor; } else { $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; } } -// line 977 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r136(){ +// line 1010 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r138(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -// line 982 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r137(){ +// line 1015 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r139(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -// line 987 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r138(){ +// line 1020 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r140(){ if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) === '_') { $this->compiler->trigger_template_error (self::ERR1); } $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -// line 994 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r139(){ +// line 1027 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r141(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}'; } -// line 1001 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r140(){ +// line 1034 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r142(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -// line 1008 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r141(){ +// line 1041 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r143(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -// line 1016 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r142(){ +// line 1049 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r144(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; } -// line 1024 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r143(){ +// line 1057 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r145(){ $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -// line 1032 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r144(){ +// line 1065 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r146(){ if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) === '_') { $this->compiler->trigger_template_error (self::ERR1); } $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . '('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } -// line 1039 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r145(){ +// line 1072 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r147(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } @@ -2619,56 +2681,52 @@ public function yy_r145(){ $this->compiler->appendPrefixCode("compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>'); $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } -// line 1050 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r146(){ +// line 1083 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r148(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor)); } -// line 1067 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r149(){ +// line 1100 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r151(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor))); } -// line 1071 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r150(){ +// line 1104 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r152(){ $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)); } -// line 1079 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r152(){ +// line 1112 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r154(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -// line 1087 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r153(){ +// line 1120 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r155(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } -// line 1100 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r156(){ +// line 1133 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r158(){ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor); } -// line 1109 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r158(){ +// line 1147 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r161(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method'); } -// line 1114 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r159(){ +// line 1152 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r162(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method'); } -// line 1119 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r160(){ - $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, ''); - } -// line 1124 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r161(){ +// line 1157 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r163(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property'); } -// line 1129 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r162(){ +// line 1162 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r164(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property'); } -// line 1135 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r163(){ +// line 1168 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r165(){ $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' '; } -// line 1139 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r164(){ +// line 1172 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r166(){ static $lops = array( 'eq' => ' == ', 'ne' => ' != ', @@ -2687,8 +2745,8 @@ public function yy_r164(){ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $lops[$op]; } -// line 1158 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r165(){ +// line 1191 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r167(){ static $tlops = array( 'isdivby' => array('op' => ' % ', 'pre' => '!('), 'isnotdivby' => array('op' => ' % ', 'pre' => '('), @@ -2700,8 +2758,8 @@ public function yy_r165(){ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $tlops[$op]; } -// line 1171 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r166(){ +// line 1204 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r168(){ static $scond = array ( 'iseven' => '!(1 & ', 'isnoteven' => '(1 & ', @@ -2711,54 +2769,54 @@ public function yy_r166(){ $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $scond[$op]; } -// line 1185 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r167(){ +// line 1218 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r169(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } -// line 1196 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r170(){ +// line 1229 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r172(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } -// line 1204 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r172(){ +// line 1237 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r174(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } -// line 1208 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r173(){ +// line 1241 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r175(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } -// line 1224 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r176(){ +// line 1257 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r178(){ $this->compiler->leaveDoubleQuote(); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this); } -// line 1230 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r177(){ +// line 1263 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r179(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -// line 1235 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r178(){ +// line 1268 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r180(){ $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor); } -// line 1239 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r179(){ +// line 1272 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r181(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor); } -// line 1243 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r180(){ +// line 1276 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r182(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')'); } -// line 1247 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r181(){ +// line 1280 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r183(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value'); } -// line 1259 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r184(){ +// line 1292 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r186(){ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor); } -// line 1263 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r185(){ +// line 1296 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r187(){ $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor); } diff --git a/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php b/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php index 9a3f63191..d7dcce102 100644 --- a/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php +++ b/tests/UnitTests/TemplateSource/ValueTests/PHPfunctions/PhpFunctionTest.php @@ -255,8 +255,9 @@ public function testDeprecationNoticesForSmarty5($strTemplateSource, $expected = } if ($shouldTriggerDeprecationNotice) { - $this->assertStringContainsString('Using unregistered function', $errorMessage); + $this->assertStringContainsString('Using unregistered ', $errorMessage); } else { + $this->assertEquals('', $errorMessage); $this->assertEquals($expected, $output); $this->assertEquals('', $errorMessage); } @@ -295,6 +296,9 @@ public function dataDeprecationNoticesForSmarty5() ['{$a|addslashes}', '', true], ['{$a|sha1}', '', true], ['{$a|get_parent_class}', '', true], + + ['{StaticMethodsTesterClass::giveMeEmptyString($a)}', '', true], + ['{StaticMethodsTesterClass::EMPTY_STRING}', '', false], ]; } @@ -326,3 +330,12 @@ public function pass($v) { return $v; } } + +class StaticMethodsTesterClass { + + const EMPTY_STRING = ''; + + public static function giveMeEmptyString($data) { + return ''; + } +} \ No newline at end of file From 86f303b9f9905874f6fa349fd6f073f70de4dcd9 Mon Sep 17 00:00:00 2001 From: Simon Wisselink Date: Fri, 5 Jul 2024 23:35:26 +0200 Subject: [PATCH 2/2] Yes, this fix is easier. --- lexer/smarty_internal_templateparser.y | 47 +- .../smarty_internal_templateparser.php | 1492 ++++++++--------- 2 files changed, 731 insertions(+), 808 deletions(-) diff --git a/lexer/smarty_internal_templateparser.y b/lexer/smarty_internal_templateparser.y index 6ed9e418b..28cb12cb6 100644 --- a/lexer/smarty_internal_templateparser.y +++ b/lexer/smarty_internal_templateparser.y @@ -759,19 +759,6 @@ value(res) ::= varindexed(vi) DOUBLECOLON static_class_access(r). { res = $prefixVar .'::'.r[0].r[1]; } -value(res) ::= varindexed(vi) DOUBLECOLON static_class_constant(r). { - if ($this->security && $this->security->static_classes !== array()) { - $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); - } - $prefixVar = $this->compiler->getNewPrefixVariable(); - if (vi['var'] === '\'smarty\'') { - $this->compiler->appendPrefixCode("compiler->compileTag('private_special_variable',array(),vi['smarty_internal_index']).';?>'); - } else { - $this->compiler->appendPrefixCode("compiler->compileVariable(vi['var']).vi['smarty_internal_index'].';?>'); - } - res = $prefixVar .'::'.r[0]; -} - // Smarty tag value(res) ::= smartytag(st). { $prefixVar = $this->compiler->getNewPrefixVariable(); @@ -792,29 +779,17 @@ value(res) ::= NAMESPACE(c). { value(res) ::= arraydef(a). { res = a; } - - // static class constant access -value(res) ::= ns1(c)DOUBLECOLON static_class_constant(s). { - if (!in_array(strtolower(c), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess(c, s, $this->compiler))) { - if (isset($this->smarty->registered_classes[c])) { - res = $this->smarty->registered_classes[c].'::'.s[0]; - } else { - res = c.'::'.s[0]; - } - } else { - $this->compiler->trigger_template_error ('static class \''.c.'\' is undefined or not allowed by security setting'); - } -} - - // other static class access + // static class access value(res) ::= ns1(c)DOUBLECOLON static_class_access(s). { if (!in_array(strtolower(c), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess(c, s, $this->compiler))) { if (isset($this->smarty->registered_classes[c])) { res = $this->smarty->registered_classes[c].'::'.s[0].s[1]; } else { - trigger_error('Using unregistered static method "' . c.'::'.s[0] . '" in a template is deprecated and will be ' . - 'removed in a future release. Use Smarty::registerClass to explicitly register ' . - 'a class for access.', E_USER_DEPRECATED); + if (s[2] === 'method') { + trigger_error('Using unregistered static method "' . c.'::'.s[0] . '" in a template is deprecated and will be ' . + 'removed in a future release. Use Smarty::registerClass to explicitly register ' . + 'a class for access.', E_USER_DEPRECATED); + } res = c.'::'.s[0].s[1]; } } else { @@ -1138,11 +1113,6 @@ modparameter(res) ::= COLON array(mp). { res = array(mp); } - // static class constant -static_class_constant(res) ::= ID(v). { - res = array(v); -} - // static class methode call static_class_access(res) ::= method(m). { res = array(m, '', 'method'); @@ -1153,6 +1123,11 @@ static_class_access(res) ::= method(m) objectchain(oc). { res = array(m, oc, 'method'); } + // static class constant +static_class_access(res) ::= ID(v). { + res = array(v, '', 'constant'); +} + // static class variables static_class_access(res) ::= DOLLARID(v) arrayindex(a). { res = array(v, a, 'property'); diff --git a/libs/sysplugins/smarty_internal_templateparser.php b/libs/sysplugins/smarty_internal_templateparser.php index fc5319f08..7030f7019 100644 --- a/libs/sysplugins/smarty_internal_templateparser.php +++ b/libs/sysplugins/smarty_internal_templateparser.php @@ -262,492 +262,468 @@ public function mergePrefixCode($code) const TP_ARRAYOPEN = 58; const TP_QUOTE = 59; const TP_BACKTICK = 60; - const YY_NO_ACTION = 518; - const YY_ACCEPT_ACTION = 517; - const YY_ERROR_ACTION = 516; + const YY_NO_ACTION = 514; + const YY_ACCEPT_ACTION = 513; + const YY_ERROR_ACTION = 512; - const YY_SZ_ACTTAB = 2137; + const YY_SZ_ACTTAB = 2016; public static $yy_action = array( - 238, 239, 240, 1, 303, 127, 206, 185, 101, 207, - 6, 53, 27, 303, 192, 206, 107, 389, 97, 430, - 208, 253, 209, 486, 200, 389, 22, 389, 310, 41, - 389, 430, 42, 43, 267, 216, 389, 226, 389, 195, - 389, 52, 4, 316, 291, 55, 305, 97, 215, 5, - 50, 238, 239, 240, 1, 299, 95, 383, 51, 227, - 207, 6, 53, 44, 21, 275, 261, 107, 171, 294, - 383, 208, 253, 209, 132, 214, 383, 22, 144, 430, - 41, 12, 246, 42, 43, 267, 216, 3, 271, 97, - 195, 430, 52, 4, 131, 291, 222, 517, 94, 135, + 238, 239, 240, 1, 99, 127, 301, 185, 206, 207, + 6, 53, 44, 21, 274, 192, 105, 387, 513, 92, + 208, 253, 209, 308, 200, 387, 22, 387, 192, 41, + 387, 211, 42, 43, 267, 216, 387, 226, 387, 195, + 387, 52, 4, 314, 289, 141, 55, 303, 215, 5, + 50, 238, 239, 240, 1, 248, 93, 381, 51, 227, + 207, 6, 53, 261, 244, 171, 292, 105, 147, 249, + 381, 208, 253, 209, 95, 214, 381, 22, 248, 426, + 41, 170, 292, 42, 43, 267, 216, 95, 271, 144, + 195, 426, 52, 4, 131, 289, 222, 175, 426, 135, 5, 50, 238, 239, 240, 1, 131, 129, 259, 194, - 192, 207, 6, 53, 251, 192, 37, 18, 107, 92, - 90, 250, 208, 253, 209, 16, 214, 169, 22, 217, - 52, 41, 325, 291, 42, 43, 267, 216, 291, 271, - 260, 195, 52, 52, 4, 291, 291, 121, 170, 294, - 258, 5, 50, 238, 239, 240, 1, 96, 129, 295, - 186, 281, 207, 6, 53, 237, 257, 206, 256, 107, - 293, 289, 349, 208, 253, 209, 133, 214, 349, 22, - 273, 274, 41, 172, 294, 42, 43, 267, 216, 122, - 271, 49, 195, 244, 52, 4, 168, 291, 33, 170, - 294, 192, 5, 50, 238, 239, 240, 1, 19, 128, - 184, 194, 263, 207, 6, 53, 145, 211, 249, 144, - 107, 147, 176, 430, 208, 253, 209, 443, 214, 264, - 11, 248, 224, 41, 443, 430, 42, 43, 267, 216, - 313, 271, 192, 195, 134, 52, 4, 249, 291, 291, - 349, 175, 106, 5, 50, 238, 239, 240, 1, 256, - 129, 83, 181, 349, 207, 6, 53, 13, 13, 349, - 34, 107, 97, 14, 14, 208, 253, 209, 150, 203, - 249, 22, 49, 291, 41, 136, 165, 42, 43, 267, - 216, 138, 271, 163, 195, 248, 52, 4, 323, 291, - 121, 102, 92, 223, 5, 50, 238, 239, 240, 1, - 96, 130, 176, 194, 84, 207, 6, 53, 459, 176, - 252, 459, 107, 97, 289, 459, 208, 253, 209, 30, - 214, 220, 22, 151, 139, 41, 141, 291, 42, 43, - 267, 216, 256, 271, 248, 195, 248, 52, 4, 261, - 291, 204, 189, 92, 152, 5, 50, 238, 239, 240, - 1, 249, 129, 17, 179, 49, 207, 6, 53, 14, - 291, 156, 192, 107, 173, 228, 236, 208, 253, 209, - 301, 214, 326, 22, 350, 102, 41, 192, 158, 42, - 43, 267, 216, 132, 271, 159, 195, 350, 52, 4, - 12, 291, 143, 350, 175, 248, 5, 50, 238, 239, - 240, 1, 248, 129, 26, 194, 162, 207, 6, 53, - 255, 29, 280, 279, 107, 256, 248, 249, 208, 253, - 209, 122, 180, 37, 22, 235, 236, 41, 15, 166, - 42, 43, 267, 216, 7, 271, 149, 195, 49, 52, - 4, 89, 291, 210, 256, 311, 248, 5, 50, 238, - 239, 240, 1, 215, 131, 176, 194, 443, 207, 6, - 53, 312, 430, 252, 443, 107, 175, 49, 431, 208, - 253, 209, 290, 214, 430, 20, 8, 10, 45, 9, - 431, 42, 43, 267, 216, 25, 271, 292, 195, 93, - 52, 4, 9, 291, 306, 190, 32, 309, 5, 50, - 238, 239, 240, 1, 25, 131, 317, 194, 228, 207, - 6, 53, 25, 85, 318, 229, 107, 91, 102, 153, - 208, 253, 209, 234, 214, 215, 20, 154, 164, 41, - 167, 241, 42, 43, 267, 216, 242, 271, 247, 195, - 215, 52, 4, 174, 291, 39, 40, 38, 108, 5, - 50, 277, 205, 206, 243, 254, 86, 104, 113, 183, - 98, 82, 284, 285, 286, 287, 96, 146, 300, 265, - 262, 87, 266, 268, 270, 196, 272, 248, 269, 278, - 289, 7, 288, 277, 205, 206, 243, 251, 86, 104, - 18, 182, 98, 62, 250, 23, 54, 176, 96, 155, - 225, 265, 251, 157, 314, 18, 270, 196, 272, 250, - 315, 278, 289, 324, 34, 327, 277, 35, 206, 245, - 299, 109, 104, 299, 183, 98, 82, 219, 277, 299, - 206, 96, 299, 109, 265, 299, 193, 111, 74, 270, - 196, 272, 212, 96, 278, 289, 265, 251, 160, 299, - 18, 270, 196, 272, 250, 299, 278, 289, 248, 192, - 44, 21, 275, 299, 13, 299, 142, 199, 308, 228, - 14, 385, 299, 277, 299, 206, 230, 191, 109, 102, - 299, 193, 111, 74, 385, 299, 299, 299, 96, 299, - 385, 265, 299, 299, 299, 148, 270, 196, 272, 88, - 304, 278, 289, 299, 299, 248, 238, 239, 240, 2, - 299, 302, 198, 308, 299, 207, 6, 53, 299, 299, - 299, 137, 107, 299, 299, 176, 208, 253, 209, 299, - 299, 248, 304, 44, 21, 275, 299, 299, 238, 239, - 240, 2, 299, 302, 299, 299, 299, 207, 6, 53, - 299, 192, 299, 299, 107, 299, 297, 28, 208, 253, - 209, 299, 299, 382, 231, 232, 233, 125, 299, 299, - 238, 239, 240, 1, 299, 299, 382, 299, 299, 207, - 6, 53, 382, 299, 299, 299, 107, 299, 298, 28, - 208, 253, 209, 277, 299, 206, 299, 299, 103, 299, - 299, 193, 114, 47, 299, 112, 299, 299, 96, 299, - 299, 265, 251, 299, 299, 18, 270, 196, 272, 250, - 299, 278, 289, 277, 299, 206, 299, 459, 109, 13, - 459, 193, 114, 69, 459, 14, 299, 299, 96, 299, - 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 277, 299, 206, 299, 299, 109, 202, - 299, 193, 114, 69, 299, 299, 299, 459, 96, 299, - 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 277, 299, 206, 299, 299, 109, 197, - 299, 193, 111, 74, 299, 299, 299, 299, 96, 299, - 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 299, 299, 299, 299, 299, 299, 277, - 299, 206, 299, 307, 109, 299, 299, 193, 114, 69, - 299, 299, 299, 299, 96, 299, 299, 265, 299, 299, - 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, - 299, 206, 299, 299, 103, 201, 299, 193, 114, 61, - 299, 229, 299, 299, 96, 299, 299, 265, 299, 299, - 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, - 299, 206, 299, 299, 109, 299, 299, 188, 110, 60, - 299, 277, 299, 206, 96, 299, 109, 265, 299, 193, - 99, 81, 270, 196, 272, 299, 96, 278, 289, 265, - 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, - 100, 80, 299, 299, 299, 299, 96, 299, 299, 265, - 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, - 114, 56, 299, 277, 299, 206, 96, 299, 109, 265, - 299, 193, 114, 68, 270, 196, 272, 299, 96, 278, - 289, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, - 299, 193, 99, 57, 299, 299, 299, 299, 96, 299, - 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, - 299, 193, 114, 67, 299, 277, 299, 206, 96, 299, - 109, 265, 299, 193, 114, 58, 270, 196, 272, 299, - 96, 278, 289, 265, 299, 299, 299, 299, 270, 196, - 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, - 109, 299, 299, 193, 114, 59, 299, 299, 299, 299, - 96, 299, 299, 265, 299, 299, 299, 299, 270, 196, - 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, - 109, 299, 299, 193, 114, 70, 299, 277, 299, 206, - 96, 299, 109, 265, 299, 193, 114, 61, 270, 196, - 272, 299, 96, 278, 289, 265, 299, 299, 299, 299, - 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, - 299, 299, 109, 299, 299, 193, 114, 66, 299, 299, - 299, 299, 96, 299, 299, 265, 299, 299, 299, 299, - 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, - 299, 299, 109, 299, 299, 193, 114, 71, 299, 277, - 299, 206, 96, 299, 109, 265, 299, 193, 114, 72, - 270, 196, 272, 299, 96, 278, 289, 265, 299, 299, - 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, - 299, 206, 299, 299, 109, 299, 299, 193, 114, 73, - 299, 299, 299, 299, 96, 299, 299, 265, 299, 299, - 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, - 299, 206, 299, 299, 109, 299, 299, 193, 114, 75, - 299, 277, 299, 206, 96, 299, 109, 265, 299, 187, - 114, 63, 270, 196, 272, 299, 96, 278, 289, 265, - 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, - 114, 64, 299, 299, 299, 299, 96, 299, 299, 265, - 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, - 114, 65, 299, 277, 299, 206, 96, 299, 109, 265, - 299, 193, 114, 76, 270, 196, 272, 299, 96, 278, - 289, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, - 299, 193, 114, 77, 299, 299, 299, 299, 96, 299, - 299, 265, 299, 299, 299, 299, 270, 196, 272, 299, - 299, 278, 289, 277, 299, 206, 299, 299, 109, 299, - 299, 193, 114, 78, 299, 277, 299, 206, 96, 299, - 109, 265, 299, 193, 114, 79, 270, 196, 272, 299, - 96, 278, 289, 265, 299, 299, 299, 299, 270, 196, - 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, - 109, 299, 299, 193, 114, 46, 299, 299, 299, 299, - 96, 299, 299, 265, 299, 299, 299, 299, 270, 196, - 272, 299, 299, 278, 289, 277, 299, 206, 299, 299, - 109, 299, 299, 193, 114, 48, 299, 277, 299, 206, - 96, 299, 109, 265, 299, 193, 126, 299, 270, 196, - 272, 299, 96, 278, 289, 299, 299, 299, 299, 321, - 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, - 299, 161, 109, 299, 299, 193, 120, 299, 299, 299, - 299, 248, 96, 44, 21, 275, 299, 299, 299, 276, - 270, 196, 272, 299, 299, 278, 289, 277, 299, 206, - 299, 299, 109, 299, 299, 193, 124, 299, 299, 277, - 299, 206, 96, 299, 109, 299, 299, 193, 115, 299, - 270, 196, 272, 299, 96, 278, 289, 299, 299, 299, - 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, - 299, 206, 299, 299, 109, 299, 299, 193, 116, 299, - 299, 299, 299, 299, 96, 299, 299, 299, 299, 299, - 299, 299, 270, 196, 272, 299, 299, 278, 289, 277, - 299, 206, 299, 299, 109, 299, 299, 193, 117, 299, - 299, 277, 299, 206, 96, 299, 109, 299, 299, 193, - 118, 299, 270, 196, 272, 299, 96, 278, 289, 299, - 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 277, 299, 206, 299, 299, 109, 299, 299, 193, - 119, 299, 299, 299, 299, 299, 96, 299, 299, 299, - 299, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 277, 299, 206, 299, 36, 109, 13, 299, 193, - 123, 299, 299, 14, 299, 299, 96, 299, 39, 40, - 38, 299, 299, 299, 270, 196, 272, 299, 299, 278, - 289, 299, 213, 299, 299, 284, 285, 286, 287, 459, - 299, 213, 459, 299, 299, 3, 459, 443, 459, 299, - 213, 459, 299, 299, 299, 459, 443, 459, 299, 299, - 459, 299, 299, 33, 459, 443, 299, 395, 299, 299, - 299, 299, 299, 299, 443, 299, 299, 443, 299, 459, - 299, 443, 299, 443, 299, 299, 443, 299, 459, 299, - 443, 282, 443, 299, 299, 443, 299, 459, 299, 443, - 430, 299, 395, 395, 395, 299, 299, 299, 299, 299, - 299, 299, 430, 299, 299, 299, 299, 13, 299, 395, - 395, 395, 395, 14, 213, 299, 299, 299, 39, 40, - 38, 459, 299, 299, 459, 299, 299, 299, 459, 443, - 299, 299, 24, 299, 105, 284, 285, 286, 287, 459, - 299, 299, 459, 299, 299, 299, 459, 443, 299, 299, - 39, 40, 38, 299, 299, 299, 443, 299, 299, 443, - 299, 459, 299, 443, 299, 320, 299, 284, 285, 286, - 287, 299, 299, 299, 443, 140, 299, 443, 299, 459, - 299, 443, 299, 299, 299, 39, 40, 38, 299, 39, - 40, 38, 299, 319, 39, 40, 38, 299, 299, 296, - 299, 299, 284, 285, 286, 287, 284, 285, 286, 287, - 299, 284, 285, 286, 287, 39, 40, 38, 218, 39, - 40, 38, 177, 39, 40, 38, 178, 299, 299, 299, - 283, 322, 284, 285, 286, 287, 284, 285, 286, 287, - 284, 285, 286, 287, 31, 299, 39, 40, 38, 299, - 39, 40, 38, 299, 299, 39, 40, 38, 299, 299, - 299, 299, 299, 284, 285, 286, 287, 284, 285, 286, - 287, 299, 284, 285, 286, 287, 299, 299, 299, 39, - 40, 38, 459, 299, 299, 459, 39, 40, 38, 459, - 443, 299, 299, 299, 299, 299, 284, 285, 286, 287, - 192, 299, 299, 284, 285, 286, 287, 299, 299, 299, - 299, 299, 353, 299, 299, 299, 221, 443, 299, 299, - 443, 299, 459, 299, 443, 13, 299, 299, 299, 299, - 299, 14, 299, 299, 430, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 299, 299, 430, + 426, 207, 6, 53, 132, 192, 37, 3, 105, 95, + 90, 12, 208, 253, 209, 237, 214, 206, 22, 192, + 52, 41, 255, 289, 42, 43, 267, 216, 289, 271, + 260, 195, 52, 52, 4, 289, 289, 121, 482, 108, + 258, 5, 50, 238, 239, 240, 1, 94, 129, 293, + 186, 13, 207, 6, 53, 210, 257, 14, 256, 105, + 287, 291, 347, 208, 253, 209, 273, 214, 347, 22, + 279, 145, 41, 249, 122, 42, 43, 267, 216, 427, + 271, 49, 195, 256, 52, 4, 163, 289, 33, 170, + 292, 427, 5, 50, 238, 239, 240, 1, 19, 128, + 184, 194, 263, 207, 6, 53, 49, 204, 189, 168, + 105, 176, 252, 426, 208, 253, 209, 439, 214, 264, + 11, 299, 224, 41, 439, 426, 42, 43, 267, 216, + 311, 271, 192, 195, 176, 52, 4, 134, 289, 289, + 347, 136, 144, 5, 50, 238, 239, 240, 1, 256, + 129, 248, 181, 347, 207, 6, 53, 13, 17, 347, + 34, 105, 95, 14, 14, 208, 253, 209, 301, 203, + 206, 22, 49, 149, 41, 138, 289, 42, 43, 267, + 216, 16, 271, 248, 195, 100, 52, 4, 323, 289, + 121, 133, 108, 223, 5, 50, 238, 239, 240, 1, + 94, 130, 175, 194, 228, 207, 6, 53, 27, 297, + 32, 324, 105, 287, 100, 426, 208, 253, 209, 30, + 214, 220, 22, 151, 150, 41, 249, 426, 42, 43, + 267, 216, 159, 271, 139, 195, 249, 52, 4, 215, + 289, 143, 248, 10, 248, 5, 50, 238, 239, 240, + 1, 248, 129, 165, 179, 109, 207, 6, 53, 251, + 289, 246, 18, 105, 256, 249, 250, 208, 253, 209, + 15, 214, 95, 22, 104, 169, 41, 217, 176, 42, + 43, 267, 216, 89, 271, 228, 195, 49, 52, 4, + 166, 289, 230, 191, 309, 100, 5, 50, 238, 239, + 240, 1, 108, 129, 278, 194, 162, 207, 6, 53, + 455, 192, 122, 455, 105, 176, 248, 455, 208, 253, + 209, 132, 180, 321, 22, 172, 292, 41, 12, 439, + 42, 43, 267, 216, 83, 271, 439, 195, 26, 52, + 4, 84, 289, 29, 173, 256, 236, 5, 50, 238, + 239, 240, 1, 25, 131, 290, 194, 228, 207, 6, + 53, 9, 289, 304, 229, 105, 7, 100, 49, 208, + 253, 209, 261, 214, 152, 20, 156, 9, 45, 235, + 236, 42, 43, 267, 216, 25, 271, 315, 195, 215, + 52, 4, 25, 289, 316, 307, 175, 310, 5, 50, + 238, 239, 240, 1, 37, 131, 158, 194, 252, 207, + 6, 53, 8, 85, 288, 190, 105, 91, 164, 167, + 208, 253, 209, 153, 214, 154, 20, 234, 241, 41, + 247, 242, 42, 43, 267, 216, 215, 271, 174, 195, + 106, 52, 4, 254, 289, 39, 40, 38, 113, 5, + 50, 276, 205, 206, 243, 262, 86, 102, 266, 183, + 96, 82, 282, 283, 284, 285, 94, 268, 298, 265, + 269, 318, 286, 7, 270, 196, 272, 312, 277, 287, + 23, 54, 225, 276, 205, 206, 243, 313, 86, 102, + 322, 182, 96, 62, 155, 39, 40, 38, 94, 157, + 34, 265, 35, 325, 296, 296, 270, 196, 272, 296, + 277, 287, 282, 283, 284, 285, 276, 296, 206, 245, + 296, 107, 102, 296, 183, 96, 82, 276, 296, 206, + 296, 94, 107, 296, 265, 193, 111, 74, 296, 270, + 196, 272, 94, 277, 287, 265, 296, 296, 296, 296, + 270, 196, 272, 251, 277, 287, 18, 296, 296, 276, + 250, 206, 296, 296, 107, 199, 306, 193, 111, 74, + 13, 146, 142, 296, 94, 87, 14, 265, 296, 296, + 160, 248, 270, 196, 272, 296, 277, 287, 296, 213, + 248, 296, 44, 21, 274, 296, 455, 198, 306, 455, + 176, 302, 3, 455, 439, 296, 296, 238, 239, 240, + 2, 296, 300, 296, 296, 296, 207, 6, 53, 296, + 192, 296, 296, 105, 296, 296, 296, 208, 253, 209, + 296, 439, 348, 302, 439, 296, 455, 296, 439, 238, + 239, 240, 2, 296, 300, 348, 296, 296, 207, 6, + 53, 348, 192, 296, 296, 105, 296, 295, 28, 208, + 253, 209, 296, 296, 383, 231, 232, 233, 125, 296, + 296, 238, 239, 240, 1, 296, 192, 383, 296, 296, + 207, 6, 53, 383, 296, 296, 296, 105, 380, 296, + 28, 208, 253, 209, 276, 296, 206, 296, 296, 101, + 296, 380, 193, 114, 47, 296, 112, 380, 296, 94, + 296, 296, 265, 251, 296, 296, 18, 270, 196, 272, + 250, 277, 287, 296, 276, 296, 206, 296, 296, 107, + 13, 296, 193, 114, 69, 296, 14, 296, 296, 94, + 148, 296, 265, 296, 88, 296, 296, 270, 196, 272, + 248, 277, 287, 296, 296, 296, 276, 296, 206, 202, + 296, 107, 296, 296, 193, 114, 69, 296, 296, 176, + 296, 94, 296, 296, 265, 296, 296, 296, 296, 270, + 196, 272, 296, 277, 287, 276, 13, 206, 296, 296, + 107, 197, 14, 193, 111, 74, 296, 39, 40, 38, + 94, 296, 296, 265, 251, 296, 296, 18, 270, 196, + 272, 250, 277, 287, 282, 283, 284, 285, 276, 296, + 206, 296, 296, 107, 305, 296, 193, 114, 69, 296, + 296, 296, 296, 94, 296, 296, 265, 296, 296, 296, + 296, 270, 196, 272, 219, 277, 287, 276, 296, 206, + 296, 296, 101, 201, 296, 193, 114, 61, 276, 229, + 206, 296, 94, 107, 296, 265, 188, 110, 60, 296, + 270, 196, 272, 94, 277, 287, 265, 251, 296, 296, + 18, 270, 196, 272, 250, 277, 287, 276, 296, 206, + 296, 296, 107, 296, 296, 193, 97, 81, 296, 296, + 296, 296, 94, 296, 296, 265, 455, 296, 296, 455, + 270, 196, 272, 455, 277, 287, 276, 212, 206, 296, + 296, 107, 296, 296, 193, 98, 80, 276, 296, 206, + 296, 94, 107, 296, 265, 193, 114, 56, 296, 270, + 196, 272, 94, 277, 287, 265, 455, 296, 296, 296, + 270, 196, 272, 296, 277, 287, 276, 296, 206, 296, + 296, 107, 296, 296, 193, 114, 68, 296, 296, 296, + 296, 94, 296, 296, 265, 296, 296, 296, 296, 270, + 196, 272, 296, 277, 287, 276, 296, 206, 296, 296, + 107, 296, 296, 193, 97, 57, 276, 296, 206, 296, + 94, 107, 296, 265, 193, 114, 67, 296, 270, 196, + 272, 94, 277, 287, 265, 296, 296, 296, 296, 270, + 196, 272, 296, 277, 287, 276, 296, 206, 296, 296, + 107, 296, 296, 193, 114, 58, 296, 296, 296, 296, + 94, 296, 296, 265, 296, 296, 296, 296, 270, 196, + 272, 296, 277, 287, 276, 296, 206, 296, 296, 107, + 296, 296, 193, 114, 59, 276, 296, 206, 296, 94, + 107, 296, 265, 193, 114, 70, 296, 270, 196, 272, + 94, 277, 287, 265, 296, 296, 296, 296, 270, 196, + 272, 296, 277, 287, 276, 296, 206, 296, 296, 107, + 296, 296, 193, 114, 61, 296, 296, 296, 296, 94, + 296, 296, 265, 296, 296, 296, 296, 270, 196, 272, + 296, 277, 287, 276, 296, 206, 296, 296, 107, 296, + 296, 193, 114, 66, 276, 296, 206, 296, 94, 107, + 296, 265, 193, 114, 71, 296, 270, 196, 272, 94, + 277, 287, 265, 296, 296, 296, 296, 270, 196, 272, + 296, 277, 287, 276, 296, 206, 296, 296, 107, 296, + 296, 193, 114, 72, 296, 296, 296, 296, 94, 296, + 296, 265, 296, 296, 296, 296, 270, 196, 272, 296, + 277, 287, 276, 296, 206, 296, 296, 107, 296, 296, + 193, 114, 73, 276, 296, 206, 296, 94, 107, 296, + 265, 193, 114, 75, 296, 270, 196, 272, 94, 277, + 287, 265, 296, 296, 296, 296, 270, 196, 272, 296, + 277, 287, 276, 296, 206, 296, 296, 107, 296, 296, + 187, 114, 63, 296, 296, 296, 296, 94, 296, 296, + 265, 296, 296, 296, 296, 270, 196, 272, 296, 277, + 287, 276, 296, 206, 296, 296, 107, 296, 296, 193, + 114, 64, 276, 296, 206, 296, 94, 107, 296, 265, + 193, 114, 65, 296, 270, 196, 272, 94, 277, 287, + 265, 296, 296, 296, 296, 270, 196, 272, 296, 277, + 287, 276, 296, 206, 296, 296, 107, 296, 296, 193, + 114, 76, 296, 296, 296, 296, 94, 296, 296, 265, + 296, 296, 296, 296, 270, 196, 272, 296, 277, 287, + 276, 296, 206, 296, 296, 107, 296, 296, 193, 114, + 77, 276, 296, 206, 296, 94, 107, 296, 265, 193, + 114, 78, 296, 270, 196, 272, 94, 277, 287, 265, + 296, 296, 296, 296, 270, 196, 272, 296, 277, 287, + 276, 296, 206, 296, 296, 107, 296, 296, 193, 114, + 79, 296, 296, 296, 296, 94, 296, 296, 265, 296, + 296, 296, 296, 270, 196, 272, 296, 277, 287, 276, + 296, 206, 296, 296, 107, 296, 296, 193, 114, 46, + 276, 296, 206, 296, 94, 107, 296, 265, 193, 114, + 48, 296, 270, 196, 272, 94, 277, 287, 265, 296, + 296, 296, 296, 270, 196, 272, 296, 277, 287, 276, + 192, 206, 296, 296, 107, 296, 296, 193, 126, 296, + 296, 296, 351, 296, 94, 296, 221, 296, 296, 296, + 296, 319, 270, 196, 272, 13, 277, 287, 276, 296, + 206, 14, 296, 107, 426, 296, 193, 120, 296, 276, + 296, 206, 296, 94, 107, 296, 426, 193, 124, 296, + 275, 270, 196, 272, 94, 277, 287, 296, 296, 296, + 296, 296, 270, 196, 272, 296, 277, 287, 276, 296, + 206, 296, 296, 107, 137, 296, 193, 115, 296, 296, + 296, 296, 296, 94, 248, 296, 44, 21, 274, 296, + 296, 270, 196, 272, 296, 277, 287, 276, 296, 206, + 296, 296, 107, 296, 296, 193, 116, 296, 276, 296, + 206, 296, 94, 107, 296, 296, 193, 117, 296, 296, + 270, 196, 272, 94, 277, 287, 296, 296, 296, 296, + 296, 270, 196, 272, 296, 277, 287, 276, 296, 206, + 296, 161, 107, 296, 296, 193, 118, 296, 296, 296, + 296, 248, 94, 44, 21, 274, 296, 296, 296, 296, + 270, 196, 272, 296, 277, 287, 276, 296, 206, 296, + 296, 107, 296, 296, 193, 119, 296, 276, 296, 206, + 296, 94, 107, 296, 296, 193, 123, 296, 296, 270, + 196, 272, 94, 277, 287, 296, 296, 296, 296, 296, + 270, 196, 272, 213, 277, 287, 36, 296, 13, 296, + 455, 296, 296, 455, 14, 296, 213, 455, 439, 39, + 40, 38, 296, 455, 296, 296, 455, 296, 296, 33, + 455, 439, 296, 393, 296, 296, 282, 283, 284, 285, + 296, 296, 296, 296, 140, 439, 296, 296, 439, 296, + 455, 296, 439, 280, 39, 40, 38, 296, 439, 103, + 296, 439, 296, 455, 296, 439, 426, 296, 393, 393, + 393, 282, 283, 284, 285, 39, 40, 38, 426, 296, + 296, 296, 296, 296, 296, 393, 393, 393, 393, 213, + 296, 296, 282, 283, 284, 285, 455, 296, 296, 455, + 296, 296, 24, 455, 439, 317, 39, 40, 38, 455, + 296, 296, 455, 296, 296, 296, 455, 439, 296, 296, + 296, 296, 296, 282, 283, 284, 285, 296, 296, 296, + 296, 439, 296, 296, 439, 296, 455, 296, 439, 296, + 39, 40, 38, 296, 439, 294, 296, 439, 31, 455, + 177, 439, 296, 296, 296, 281, 296, 282, 283, 284, + 285, 218, 39, 40, 38, 296, 296, 296, 296, 39, + 40, 38, 178, 296, 39, 40, 38, 296, 296, 282, + 283, 284, 285, 39, 40, 38, 282, 283, 284, 285, + 296, 282, 283, 284, 285, 320, 39, 40, 38, 296, + 282, 283, 284, 285, 296, 296, 296, 296, 296, 296, + 296, 296, 296, 282, 283, 284, 285, 296, 296, 39, + 40, 38, 296, 455, 296, 296, 455, 39, 40, 38, + 455, 439, 296, 296, 296, 296, 282, 283, 284, 285, + 296, 296, 296, 296, 282, 283, 284, 285, 296, 296, + 296, 296, 296, 296, 296, 296, 296, 296, 439, 296, + 296, 439, 296, 455, 296, 439, ); public static $yy_lookahead = array( - 9, 10, 11, 12, 66, 14, 68, 16, 81, 18, - 19, 20, 28, 66, 1, 68, 25, 13, 17, 35, - 29, 30, 31, 1, 33, 21, 35, 23, 101, 38, - 26, 47, 41, 42, 43, 44, 32, 46, 34, 48, - 36, 50, 51, 52, 53, 107, 108, 17, 44, 58, - 59, 9, 10, 11, 12, 108, 14, 13, 16, 15, - 18, 19, 20, 85, 86, 87, 97, 25, 99, 100, - 26, 29, 30, 31, 44, 33, 32, 35, 96, 35, - 38, 51, 83, 41, 42, 43, 44, 15, 46, 17, - 48, 47, 50, 51, 14, 53, 16, 62, 63, 14, + 9, 10, 11, 12, 81, 14, 66, 16, 68, 18, + 19, 20, 85, 86, 87, 1, 25, 13, 62, 63, + 29, 30, 31, 100, 33, 21, 35, 23, 1, 38, + 26, 17, 41, 42, 43, 44, 32, 46, 34, 48, + 36, 50, 51, 52, 53, 73, 106, 107, 44, 58, + 59, 9, 10, 11, 12, 83, 14, 13, 16, 15, + 18, 19, 20, 96, 70, 98, 99, 25, 73, 97, + 26, 29, 30, 31, 17, 33, 32, 35, 83, 35, + 38, 98, 99, 41, 42, 43, 44, 17, 46, 95, + 48, 47, 50, 51, 14, 53, 16, 102, 35, 14, 58, 59, 9, 10, 11, 12, 14, 14, 16, 16, - 1, 18, 19, 20, 9, 1, 2, 12, 25, 47, - 35, 16, 29, 30, 31, 15, 33, 14, 35, 16, - 50, 38, 22, 53, 41, 42, 43, 44, 53, 46, - 48, 48, 50, 50, 51, 53, 53, 71, 99, 100, + 47, 18, 19, 20, 44, 1, 2, 15, 25, 17, + 35, 51, 29, 30, 31, 66, 33, 68, 35, 1, + 50, 38, 16, 53, 41, 42, 43, 44, 53, 46, + 48, 48, 50, 50, 51, 53, 53, 71, 1, 47, 74, 58, 59, 9, 10, 11, 12, 81, 14, 13, - 16, 52, 18, 19, 20, 66, 90, 68, 22, 25, - 70, 95, 26, 29, 30, 31, 81, 33, 32, 35, - 92, 93, 38, 99, 100, 41, 42, 43, 44, 101, - 46, 45, 48, 70, 50, 51, 77, 53, 15, 99, - 100, 1, 58, 59, 9, 10, 11, 12, 12, 14, - 14, 16, 16, 18, 19, 20, 96, 17, 98, 96, - 25, 73, 103, 35, 29, 30, 31, 44, 33, 33, - 35, 83, 44, 38, 51, 47, 41, 42, 43, 44, - 52, 46, 1, 48, 14, 50, 51, 98, 53, 53, - 13, 103, 80, 58, 59, 9, 10, 11, 12, 22, - 14, 81, 16, 26, 18, 19, 20, 26, 26, 32, - 15, 25, 17, 32, 32, 29, 30, 31, 96, 33, - 98, 35, 45, 53, 38, 73, 77, 41, 42, 43, - 44, 71, 46, 77, 48, 83, 50, 51, 14, 53, + 16, 26, 18, 19, 20, 49, 90, 32, 22, 25, + 94, 70, 26, 29, 30, 31, 92, 33, 32, 35, + 52, 95, 38, 97, 100, 41, 42, 43, 44, 35, + 46, 45, 48, 22, 50, 51, 77, 53, 15, 98, + 99, 47, 58, 59, 9, 10, 11, 12, 12, 14, + 14, 16, 16, 18, 19, 20, 45, 64, 65, 77, + 25, 102, 103, 35, 29, 30, 31, 44, 33, 33, + 35, 60, 44, 38, 51, 47, 41, 42, 43, 44, + 52, 46, 1, 48, 102, 50, 51, 14, 53, 53, + 13, 73, 95, 58, 59, 9, 10, 11, 12, 22, + 14, 83, 16, 26, 18, 19, 20, 26, 26, 32, + 15, 25, 17, 32, 32, 29, 30, 31, 66, 33, + 68, 35, 45, 73, 38, 71, 53, 41, 42, 43, + 44, 15, 46, 83, 48, 81, 50, 51, 22, 53, 71, 81, 47, 74, 58, 59, 9, 10, 11, 12, - 81, 14, 103, 16, 81, 18, 19, 20, 9, 103, - 104, 12, 25, 17, 95, 16, 29, 30, 31, 12, - 33, 14, 35, 16, 73, 38, 73, 53, 41, 42, - 43, 44, 22, 46, 83, 48, 83, 50, 51, 97, - 53, 64, 65, 47, 96, 58, 59, 9, 10, 11, - 12, 98, 14, 26, 16, 45, 18, 19, 20, 32, - 53, 96, 1, 25, 6, 71, 8, 29, 30, 31, - 60, 33, 78, 35, 13, 81, 38, 1, 96, 41, - 42, 43, 44, 44, 46, 73, 48, 26, 50, 51, - 51, 53, 73, 32, 103, 83, 58, 59, 9, 10, - 11, 12, 83, 14, 28, 16, 73, 18, 19, 20, - 16, 12, 92, 93, 25, 22, 83, 98, 29, 30, - 31, 101, 33, 2, 35, 7, 8, 38, 21, 77, - 41, 42, 43, 44, 35, 46, 73, 48, 45, 50, - 51, 34, 53, 49, 22, 52, 83, 58, 59, 9, - 10, 11, 12, 44, 14, 103, 16, 44, 18, 19, - 20, 52, 35, 104, 51, 25, 103, 45, 35, 29, - 30, 31, 100, 33, 47, 35, 35, 35, 38, 34, - 47, 41, 42, 43, 44, 34, 46, 36, 48, 47, - 50, 51, 34, 53, 36, 65, 15, 52, 58, 59, - 9, 10, 11, 12, 34, 14, 36, 16, 71, 18, - 19, 20, 34, 96, 36, 78, 25, 82, 81, 96, - 29, 30, 31, 7, 33, 44, 35, 96, 82, 38, - 82, 13, 41, 42, 43, 44, 13, 46, 14, 48, - 44, 50, 51, 16, 53, 37, 38, 39, 16, 58, + 81, 14, 102, 16, 71, 18, 19, 20, 28, 107, + 15, 78, 25, 94, 81, 35, 29, 30, 31, 12, + 33, 14, 35, 16, 95, 38, 97, 47, 41, 42, + 43, 44, 73, 46, 73, 48, 97, 50, 51, 44, + 53, 73, 83, 35, 83, 58, 59, 9, 10, 11, + 12, 83, 14, 77, 16, 47, 18, 19, 20, 9, + 53, 83, 12, 25, 22, 97, 16, 29, 30, 31, + 21, 33, 17, 35, 80, 14, 38, 16, 102, 41, + 42, 43, 44, 34, 46, 71, 48, 45, 50, 51, + 77, 53, 78, 79, 52, 81, 58, 59, 9, 10, + 11, 12, 47, 14, 92, 16, 73, 18, 19, 20, + 9, 1, 100, 12, 25, 102, 83, 16, 29, 30, + 31, 44, 33, 14, 35, 98, 99, 38, 51, 44, + 41, 42, 43, 44, 81, 46, 51, 48, 28, 50, + 51, 81, 53, 12, 6, 22, 8, 58, 59, 9, + 10, 11, 12, 34, 14, 36, 16, 71, 18, 19, + 20, 34, 53, 36, 78, 25, 35, 81, 45, 29, + 30, 31, 96, 33, 95, 35, 95, 34, 38, 7, + 8, 41, 42, 43, 44, 34, 46, 36, 48, 44, + 50, 51, 34, 53, 36, 52, 102, 52, 58, 59, + 9, 10, 11, 12, 2, 14, 95, 16, 103, 18, + 19, 20, 35, 95, 99, 65, 25, 82, 82, 82, + 29, 30, 31, 95, 33, 95, 35, 7, 13, 38, + 14, 13, 41, 42, 43, 44, 44, 46, 16, 48, + 16, 50, 51, 16, 53, 37, 38, 39, 16, 58, 59, 66, 67, 68, 69, 16, 71, 72, 16, 74, - 75, 76, 54, 55, 56, 57, 81, 73, 60, 84, - 16, 77, 16, 33, 89, 90, 91, 83, 33, 94, - 95, 35, 16, 66, 67, 68, 69, 9, 71, 72, - 12, 74, 75, 76, 16, 40, 16, 103, 81, 50, - 16, 84, 9, 50, 52, 12, 89, 90, 91, 16, - 52, 94, 95, 16, 15, 36, 66, 23, 68, 69, - 109, 71, 72, 109, 74, 75, 76, 49, 66, 109, - 68, 81, 109, 71, 84, 109, 74, 75, 76, 89, - 90, 91, 49, 81, 94, 95, 84, 9, 73, 109, - 12, 89, 90, 91, 16, 109, 94, 95, 83, 1, - 85, 86, 87, 109, 26, 109, 28, 105, 106, 71, - 32, 13, 109, 66, 109, 68, 78, 79, 71, 81, - 109, 74, 75, 76, 26, 109, 109, 109, 81, 109, - 32, 84, 109, 109, 109, 73, 89, 90, 91, 77, - 3, 94, 95, 109, 109, 83, 9, 10, 11, 12, - 109, 14, 105, 106, 109, 18, 19, 20, 109, 109, - 109, 73, 25, 109, 109, 103, 29, 30, 31, 109, - 109, 83, 3, 85, 86, 87, 109, 109, 9, 10, - 11, 12, 109, 14, 109, 109, 109, 18, 19, 20, - 109, 1, 109, 109, 25, 109, 59, 60, 29, 30, - 31, 109, 109, 13, 3, 4, 5, 6, 109, 109, - 9, 10, 11, 12, 109, 109, 26, 109, 109, 18, - 19, 20, 32, 109, 109, 109, 25, 109, 59, 60, - 29, 30, 31, 66, 109, 68, 109, 109, 71, 109, - 109, 74, 75, 76, 109, 78, 109, 109, 81, 109, - 109, 84, 9, 109, 109, 12, 89, 90, 91, 16, - 109, 94, 95, 66, 109, 68, 109, 9, 71, 26, - 12, 74, 75, 76, 16, 32, 109, 109, 81, 109, - 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 66, 109, 68, 109, 109, 71, 102, - 109, 74, 75, 76, 109, 109, 109, 49, 81, 109, - 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 66, 109, 68, 109, 109, 71, 102, - 109, 74, 75, 76, 109, 109, 109, 109, 81, 109, - 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 109, 109, 109, 109, 109, 109, 66, - 109, 68, 109, 106, 71, 109, 109, 74, 75, 76, - 109, 109, 109, 109, 81, 109, 109, 84, 109, 109, - 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, - 109, 68, 109, 109, 71, 102, 109, 74, 75, 76, - 109, 78, 109, 109, 81, 109, 109, 84, 109, 109, - 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, - 109, 68, 109, 109, 71, 109, 109, 74, 75, 76, - 109, 66, 109, 68, 81, 109, 71, 84, 109, 74, - 75, 76, 89, 90, 91, 109, 81, 94, 95, 84, - 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, - 75, 76, 109, 109, 109, 109, 81, 109, 109, 84, - 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, - 75, 76, 109, 66, 109, 68, 81, 109, 71, 84, - 109, 74, 75, 76, 89, 90, 91, 109, 81, 94, - 95, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, - 109, 74, 75, 76, 109, 109, 109, 109, 81, 109, - 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, - 109, 74, 75, 76, 109, 66, 109, 68, 81, 109, - 71, 84, 109, 74, 75, 76, 89, 90, 91, 109, - 81, 94, 95, 84, 109, 109, 109, 109, 89, 90, - 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, - 71, 109, 109, 74, 75, 76, 109, 109, 109, 109, - 81, 109, 109, 84, 109, 109, 109, 109, 89, 90, - 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, - 71, 109, 109, 74, 75, 76, 109, 66, 109, 68, - 81, 109, 71, 84, 109, 74, 75, 76, 89, 90, - 91, 109, 81, 94, 95, 84, 109, 109, 109, 109, - 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, - 109, 109, 71, 109, 109, 74, 75, 76, 109, 109, - 109, 109, 81, 109, 109, 84, 109, 109, 109, 109, - 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, - 109, 109, 71, 109, 109, 74, 75, 76, 109, 66, - 109, 68, 81, 109, 71, 84, 109, 74, 75, 76, - 89, 90, 91, 109, 81, 94, 95, 84, 109, 109, - 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, - 109, 68, 109, 109, 71, 109, 109, 74, 75, 76, - 109, 109, 109, 109, 81, 109, 109, 84, 109, 109, - 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, - 109, 68, 109, 109, 71, 109, 109, 74, 75, 76, - 109, 66, 109, 68, 81, 109, 71, 84, 109, 74, - 75, 76, 89, 90, 91, 109, 81, 94, 95, 84, - 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, - 75, 76, 109, 109, 109, 109, 81, 109, 109, 84, - 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, - 75, 76, 109, 66, 109, 68, 81, 109, 71, 84, - 109, 74, 75, 76, 89, 90, 91, 109, 81, 94, - 95, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, - 109, 74, 75, 76, 109, 109, 109, 109, 81, 109, - 109, 84, 109, 109, 109, 109, 89, 90, 91, 109, - 109, 94, 95, 66, 109, 68, 109, 109, 71, 109, - 109, 74, 75, 76, 109, 66, 109, 68, 81, 109, - 71, 84, 109, 74, 75, 76, 89, 90, 91, 109, - 81, 94, 95, 84, 109, 109, 109, 109, 89, 90, - 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, - 71, 109, 109, 74, 75, 76, 109, 109, 109, 109, - 81, 109, 109, 84, 109, 109, 109, 109, 89, 90, - 91, 109, 109, 94, 95, 66, 109, 68, 109, 109, - 71, 109, 109, 74, 75, 76, 109, 66, 109, 68, - 81, 109, 71, 84, 109, 74, 75, 109, 89, 90, - 91, 109, 81, 94, 95, 109, 109, 109, 109, 88, - 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, - 109, 73, 71, 109, 109, 74, 75, 109, 109, 109, - 109, 83, 81, 85, 86, 87, 109, 109, 109, 88, - 89, 90, 91, 109, 109, 94, 95, 66, 109, 68, - 109, 109, 71, 109, 109, 74, 75, 109, 109, 66, - 109, 68, 81, 109, 71, 109, 109, 74, 75, 109, - 89, 90, 91, 109, 81, 94, 95, 109, 109, 109, - 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, - 109, 68, 109, 109, 71, 109, 109, 74, 75, 109, - 109, 109, 109, 109, 81, 109, 109, 109, 109, 109, - 109, 109, 89, 90, 91, 109, 109, 94, 95, 66, - 109, 68, 109, 109, 71, 109, 109, 74, 75, 109, - 109, 66, 109, 68, 81, 109, 71, 109, 109, 74, - 75, 109, 89, 90, 91, 109, 81, 94, 95, 109, - 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 66, 109, 68, 109, 109, 71, 109, 109, 74, - 75, 109, 109, 109, 109, 109, 81, 109, 109, 109, - 109, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 66, 109, 68, 109, 24, 71, 26, 109, 74, - 75, 109, 109, 32, 109, 109, 81, 109, 37, 38, - 39, 109, 109, 109, 89, 90, 91, 109, 109, 94, - 95, 109, 2, 109, 109, 54, 55, 56, 57, 9, - 109, 2, 12, 109, 109, 15, 16, 17, 9, 109, - 2, 12, 109, 109, 109, 16, 17, 9, 109, 109, - 12, 109, 109, 15, 16, 17, 109, 2, 109, 109, - 109, 109, 109, 109, 44, 109, 109, 47, 109, 49, - 109, 51, 109, 44, 109, 109, 47, 109, 49, 109, - 51, 52, 44, 109, 109, 47, 109, 49, 109, 51, - 35, 109, 37, 38, 39, 109, 109, 109, 109, 109, - 109, 109, 47, 109, 109, 109, 109, 26, 109, 54, - 55, 56, 57, 32, 2, 109, 109, 109, 37, 38, - 39, 9, 109, 109, 12, 109, 109, 109, 16, 17, - 109, 109, 2, 109, 21, 54, 55, 56, 57, 9, - 109, 109, 12, 109, 109, 109, 16, 17, 109, 109, - 37, 38, 39, 109, 109, 109, 44, 109, 109, 47, - 109, 49, 109, 51, 109, 13, 109, 54, 55, 56, - 57, 109, 109, 109, 44, 27, 109, 47, 109, 49, - 109, 51, 109, 109, 109, 37, 38, 39, 109, 37, - 38, 39, 109, 36, 37, 38, 39, 109, 109, 13, - 109, 109, 54, 55, 56, 57, 54, 55, 56, 57, - 109, 54, 55, 56, 57, 37, 38, 39, 36, 37, - 38, 39, 13, 37, 38, 39, 13, 109, 109, 109, - 52, 13, 54, 55, 56, 57, 54, 55, 56, 57, - 54, 55, 56, 57, 2, 109, 37, 38, 39, 109, - 37, 38, 39, 109, 109, 37, 38, 39, 109, 109, - 109, 109, 109, 54, 55, 56, 57, 54, 55, 56, - 57, 109, 54, 55, 56, 57, 109, 109, 109, 37, - 38, 39, 9, 109, 109, 12, 37, 38, 39, 16, - 17, 109, 109, 109, 109, 109, 54, 55, 56, 57, - 1, 109, 109, 54, 55, 56, 57, 109, 109, 109, - 109, 109, 13, 109, 109, 109, 17, 44, 109, 109, - 47, 109, 49, 109, 51, 26, 109, 109, 109, 109, - 109, 32, 109, 109, 35, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 47, + 75, 76, 54, 55, 56, 57, 81, 33, 60, 84, + 33, 13, 16, 35, 89, 90, 91, 52, 93, 94, + 40, 16, 16, 66, 67, 68, 69, 52, 71, 72, + 16, 74, 75, 76, 50, 37, 38, 39, 81, 50, + 15, 84, 23, 36, 108, 108, 89, 90, 91, 108, + 93, 94, 54, 55, 56, 57, 66, 108, 68, 69, + 108, 71, 72, 108, 74, 75, 76, 66, 108, 68, + 108, 81, 71, 108, 84, 74, 75, 76, 108, 89, + 90, 91, 81, 93, 94, 84, 108, 108, 108, 108, + 89, 90, 91, 9, 93, 94, 12, 108, 108, 66, + 16, 68, 108, 108, 71, 104, 105, 74, 75, 76, + 26, 73, 28, 108, 81, 77, 32, 84, 108, 108, + 73, 83, 89, 90, 91, 108, 93, 94, 108, 2, + 83, 108, 85, 86, 87, 108, 9, 104, 105, 12, + 102, 3, 15, 16, 17, 108, 108, 9, 10, 11, + 12, 108, 14, 108, 108, 108, 18, 19, 20, 108, + 1, 108, 108, 25, 108, 108, 108, 29, 30, 31, + 108, 44, 13, 3, 47, 108, 49, 108, 51, 9, + 10, 11, 12, 108, 14, 26, 108, 108, 18, 19, + 20, 32, 1, 108, 108, 25, 108, 59, 60, 29, + 30, 31, 108, 108, 13, 3, 4, 5, 6, 108, + 108, 9, 10, 11, 12, 108, 1, 26, 108, 108, + 18, 19, 20, 32, 108, 108, 108, 25, 13, 59, + 60, 29, 30, 31, 66, 108, 68, 108, 108, 71, + 108, 26, 74, 75, 76, 108, 78, 32, 108, 81, + 108, 108, 84, 9, 108, 108, 12, 89, 90, 91, + 16, 93, 94, 108, 66, 108, 68, 108, 108, 71, + 26, 108, 74, 75, 76, 108, 32, 108, 108, 81, + 73, 108, 84, 108, 77, 108, 108, 89, 90, 91, + 83, 93, 94, 108, 108, 108, 66, 108, 68, 101, + 108, 71, 108, 108, 74, 75, 76, 108, 108, 102, + 108, 81, 108, 108, 84, 108, 108, 108, 108, 89, + 90, 91, 108, 93, 94, 66, 26, 68, 108, 108, + 71, 101, 32, 74, 75, 76, 108, 37, 38, 39, + 81, 108, 108, 84, 9, 108, 108, 12, 89, 90, + 91, 16, 93, 94, 54, 55, 56, 57, 66, 108, + 68, 108, 108, 71, 105, 108, 74, 75, 76, 108, + 108, 108, 108, 81, 108, 108, 84, 108, 108, 108, + 108, 89, 90, 91, 49, 93, 94, 66, 108, 68, + 108, 108, 71, 101, 108, 74, 75, 76, 66, 78, + 68, 108, 81, 71, 108, 84, 74, 75, 76, 108, + 89, 90, 91, 81, 93, 94, 84, 9, 108, 108, + 12, 89, 90, 91, 16, 93, 94, 66, 108, 68, + 108, 108, 71, 108, 108, 74, 75, 76, 108, 108, + 108, 108, 81, 108, 108, 84, 9, 108, 108, 12, + 89, 90, 91, 16, 93, 94, 66, 49, 68, 108, + 108, 71, 108, 108, 74, 75, 76, 66, 108, 68, + 108, 81, 71, 108, 84, 74, 75, 76, 108, 89, + 90, 91, 81, 93, 94, 84, 49, 108, 108, 108, + 89, 90, 91, 108, 93, 94, 66, 108, 68, 108, + 108, 71, 108, 108, 74, 75, 76, 108, 108, 108, + 108, 81, 108, 108, 84, 108, 108, 108, 108, 89, + 90, 91, 108, 93, 94, 66, 108, 68, 108, 108, + 71, 108, 108, 74, 75, 76, 66, 108, 68, 108, + 81, 71, 108, 84, 74, 75, 76, 108, 89, 90, + 91, 81, 93, 94, 84, 108, 108, 108, 108, 89, + 90, 91, 108, 93, 94, 66, 108, 68, 108, 108, + 71, 108, 108, 74, 75, 76, 108, 108, 108, 108, + 81, 108, 108, 84, 108, 108, 108, 108, 89, 90, + 91, 108, 93, 94, 66, 108, 68, 108, 108, 71, + 108, 108, 74, 75, 76, 66, 108, 68, 108, 81, + 71, 108, 84, 74, 75, 76, 108, 89, 90, 91, + 81, 93, 94, 84, 108, 108, 108, 108, 89, 90, + 91, 108, 93, 94, 66, 108, 68, 108, 108, 71, + 108, 108, 74, 75, 76, 108, 108, 108, 108, 81, + 108, 108, 84, 108, 108, 108, 108, 89, 90, 91, + 108, 93, 94, 66, 108, 68, 108, 108, 71, 108, + 108, 74, 75, 76, 66, 108, 68, 108, 81, 71, + 108, 84, 74, 75, 76, 108, 89, 90, 91, 81, + 93, 94, 84, 108, 108, 108, 108, 89, 90, 91, + 108, 93, 94, 66, 108, 68, 108, 108, 71, 108, + 108, 74, 75, 76, 108, 108, 108, 108, 81, 108, + 108, 84, 108, 108, 108, 108, 89, 90, 91, 108, + 93, 94, 66, 108, 68, 108, 108, 71, 108, 108, + 74, 75, 76, 66, 108, 68, 108, 81, 71, 108, + 84, 74, 75, 76, 108, 89, 90, 91, 81, 93, + 94, 84, 108, 108, 108, 108, 89, 90, 91, 108, + 93, 94, 66, 108, 68, 108, 108, 71, 108, 108, + 74, 75, 76, 108, 108, 108, 108, 81, 108, 108, + 84, 108, 108, 108, 108, 89, 90, 91, 108, 93, + 94, 66, 108, 68, 108, 108, 71, 108, 108, 74, + 75, 76, 66, 108, 68, 108, 81, 71, 108, 84, + 74, 75, 76, 108, 89, 90, 91, 81, 93, 94, + 84, 108, 108, 108, 108, 89, 90, 91, 108, 93, + 94, 66, 108, 68, 108, 108, 71, 108, 108, 74, + 75, 76, 108, 108, 108, 108, 81, 108, 108, 84, + 108, 108, 108, 108, 89, 90, 91, 108, 93, 94, + 66, 108, 68, 108, 108, 71, 108, 108, 74, 75, + 76, 66, 108, 68, 108, 81, 71, 108, 84, 74, + 75, 76, 108, 89, 90, 91, 81, 93, 94, 84, + 108, 108, 108, 108, 89, 90, 91, 108, 93, 94, + 66, 108, 68, 108, 108, 71, 108, 108, 74, 75, + 76, 108, 108, 108, 108, 81, 108, 108, 84, 108, + 108, 108, 108, 89, 90, 91, 108, 93, 94, 66, + 108, 68, 108, 108, 71, 108, 108, 74, 75, 76, + 66, 108, 68, 108, 81, 71, 108, 84, 74, 75, + 76, 108, 89, 90, 91, 81, 93, 94, 84, 108, + 108, 108, 108, 89, 90, 91, 108, 93, 94, 66, + 1, 68, 108, 108, 71, 108, 108, 74, 75, 108, + 108, 108, 13, 108, 81, 108, 17, 108, 108, 108, + 108, 88, 89, 90, 91, 26, 93, 94, 66, 108, + 68, 32, 108, 71, 35, 108, 74, 75, 108, 66, + 108, 68, 108, 81, 71, 108, 47, 74, 75, 108, + 88, 89, 90, 91, 81, 93, 94, 108, 108, 108, + 108, 108, 89, 90, 91, 108, 93, 94, 66, 108, + 68, 108, 108, 71, 73, 108, 74, 75, 108, 108, + 108, 108, 108, 81, 83, 108, 85, 86, 87, 108, + 108, 89, 90, 91, 108, 93, 94, 66, 108, 68, + 108, 108, 71, 108, 108, 74, 75, 108, 66, 108, + 68, 108, 81, 71, 108, 108, 74, 75, 108, 108, + 89, 90, 91, 81, 93, 94, 108, 108, 108, 108, + 108, 89, 90, 91, 108, 93, 94, 66, 108, 68, + 108, 73, 71, 108, 108, 74, 75, 108, 108, 108, + 108, 83, 81, 85, 86, 87, 108, 108, 108, 108, + 89, 90, 91, 108, 93, 94, 66, 108, 68, 108, + 108, 71, 108, 108, 74, 75, 108, 66, 108, 68, + 108, 81, 71, 108, 108, 74, 75, 108, 108, 89, + 90, 91, 81, 93, 94, 108, 108, 108, 108, 108, + 89, 90, 91, 2, 93, 94, 24, 108, 26, 108, + 9, 108, 108, 12, 32, 108, 2, 16, 17, 37, + 38, 39, 108, 9, 108, 108, 12, 108, 108, 15, + 16, 17, 108, 2, 108, 108, 54, 55, 56, 57, + 108, 108, 108, 108, 27, 44, 108, 108, 47, 108, + 49, 108, 51, 52, 37, 38, 39, 108, 44, 21, + 108, 47, 108, 49, 108, 51, 35, 108, 37, 38, + 39, 54, 55, 56, 57, 37, 38, 39, 47, 108, + 108, 108, 108, 108, 108, 54, 55, 56, 57, 2, + 108, 108, 54, 55, 56, 57, 9, 108, 108, 12, + 108, 108, 2, 16, 17, 36, 37, 38, 39, 9, + 108, 108, 12, 108, 108, 108, 16, 17, 108, 108, + 108, 108, 108, 54, 55, 56, 57, 108, 108, 108, + 108, 44, 108, 108, 47, 108, 49, 108, 51, 108, + 37, 38, 39, 108, 44, 13, 108, 47, 2, 49, + 13, 51, 108, 108, 108, 52, 108, 54, 55, 56, + 57, 36, 37, 38, 39, 108, 108, 108, 108, 37, + 38, 39, 13, 108, 37, 38, 39, 108, 108, 54, + 55, 56, 57, 37, 38, 39, 54, 55, 56, 57, + 108, 54, 55, 56, 57, 13, 37, 38, 39, 108, + 54, 55, 56, 57, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 54, 55, 56, 57, 108, 108, 37, + 38, 39, 108, 9, 108, 108, 12, 37, 38, 39, + 16, 17, 108, 108, 108, 108, 54, 55, 56, 57, + 108, 108, 108, 108, 54, 55, 56, 57, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 44, 108, + 108, 47, 108, 49, 108, 51, ); - const YY_SHIFT_USE_DFLT = -17; + const YY_SHIFT_USE_DFLT = -10; const YY_SHIFT_MAX = 230; public static $yy_shift_ofst = array( - -17, 42, 42, 93, 144, 144, 195, 93, 93, 144, + -10, 42, 42, 93, 144, 144, 195, 93, 93, 144, 93, 195, -9, 246, 93, 93, 93, 246, 93, 93, 93, 93, 93, 297, 348, 93, 93, 93, 93, 93, 93, 93, 93, 399, 93, 93, 93, 450, 501, 501, - 501, 501, 501, 501, 501, 501, 1761, 1871, 1871, 92, - 707, 2089, 80, 85, 241, 739, 1903, 1938, 1942, 1947, - 1968, 1972, 1976, 518, 1999, 2003, 2032, 2008, 2039, 2039, - 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, 2039, - 2039, 2039, 2039, 648, 813, 30, 72, 241, 241, 85, - 85, 114, 113, 113, 771, 1810, 588, 317, 371, 668, - 760, 105, 105, 255, 242, 230, 242, 337, 200, 306, - 109, 386, 242, 13, 13, 13, 13, 13, 13, 13, - 13, 1, 1, 22, 13, -17, -17, 1819, 1828, 1902, - 1920, 2063, 196, 603, 309, 183, 242, 242, 110, 242, - 284, 242, 284, 242, 349, 349, 242, 242, 242, 242, - 349, 409, 349, 349, 349, 423, 349, 423, 349, 242, - 242, 242, 242, 13, 431, 13, 13, 431, 13, 451, - 1, 1, 1, -17, -17, -17, -17, -17, -17, 1845, - 4, 44, 146, 237, 828, 188, -16, 320, 403, 368, - 428, 417, 404, 432, 437, 443, 452, 461, 468, 455, - 419, 480, 488, 491, 526, 528, 533, 534, 537, 542, - 549, 552, 564, 566, 506, 550, 555, 556, 565, 576, - 451, 590, 559, 563, 594, 562, 568, 607, 609, 589, - 604, + 501, 501, 501, 501, 501, 501, 1732, 870, 870, 92, + 708, 1549, 80, 85, 241, 740, 1788, 1767, 568, 1819, + 1853, 1875, 1882, 518, 1887, 1909, 1896, 1932, 1940, 1940, + 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, + 1940, 1940, 1940, 654, 814, 70, 102, 241, 241, 85, + 85, 114, 772, 697, 905, 317, 729, 761, 785, 360, + 360, 255, 135, 233, 135, 242, 14, 365, 371, 371, + 128, 420, 135, 27, 27, 27, 27, 27, 27, 27, + 27, 57, 57, 147, 27, -10, -10, 1751, 1764, 1837, + 1850, 1964, 196, 978, 411, 183, 135, 135, 276, 135, + 419, 135, 419, 135, 387, 387, 135, 135, 135, 135, + 387, 441, 387, 387, 387, 395, 387, 395, 387, 135, + 135, 135, 135, 27, 512, 27, 27, 512, 27, 487, + 57, 57, 57, -10, -10, -10, -10, -10, -10, 1781, + 4, 44, 146, 237, 1007, 188, 290, 171, 352, 448, + 482, 359, 116, 433, 63, 154, 318, 429, 437, 453, + 455, 461, 468, 305, 530, 525, 528, 526, 532, 534, + 537, 542, 549, 552, 502, 544, 547, 548, 550, 566, + 487, 575, 554, 559, 576, 535, 545, 584, 595, 577, + 589, ); - const YY_REDUCE_USE_DFLT = -74; + const YY_REDUCE_USE_DFLT = -78; const YY_REDUCE_MAX = 178; public static $yy_reduce_ofst = array( - 35, 495, 527, 560, 572, 617, 737, 767, 797, 827, - 863, 893, 923, 935, 965, 995, 1007, 1037, 1067, 1079, - 1109, 1139, 1151, 1181, 1211, 1223, 1253, 1283, 1295, 1325, - 1355, 1367, 1397, 1427, 1439, 1469, 1499, 1511, 1541, 1571, - 1583, 1613, 1643, 1655, 1685, 1715, 585, 658, 1538, 76, - -62, 504, 229, 608, 632, -53, -22, -22, -22, -22, - -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, - -22, -22, -22, 263, 329, -31, 100, 148, 373, 304, - 447, 216, 88, 330, 99, 123, 120, -73, 119, 119, - 119, 182, 120, 49, 212, 220, 261, 322, 209, 49, - 119, 119, 343, 362, 119, 119, 119, 119, 119, 119, - 119, 49, 84, 119, 119, 287, 119, -18, -18, -18, - -18, -18, 95, 149, -18, -18, -1, -1, 172, -1, - 180, -1, 233, -1, 252, 252, -1, -1, -1, -1, - 252, 258, 252, 252, 252, 275, 252, 292, 252, -1, - -1, -1, -1, 301, 369, 301, 301, 369, 301, 427, - 382, 382, 382, 440, 445, 456, 458, 433, 441, + -44, 495, 527, 560, 571, 603, 738, 768, 800, 829, + 862, 891, 902, 931, 960, 971, 1000, 1029, 1040, 1069, + 1098, 1109, 1138, 1167, 1178, 1207, 1236, 1247, 1276, 1305, + 1316, 1345, 1374, 1385, 1414, 1443, 1454, 1483, 1512, 1523, + 1552, 1581, 1592, 1621, 1650, 1661, 617, 1551, 1618, 76, + -60, 608, 229, 324, 777, 212, -73, -73, -73, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, + -73, -73, -73, -28, 278, -33, 101, -5, 210, 243, + 396, 119, 59, -6, 86, -77, 142, 142, 142, 239, + 86, -17, 178, 214, 271, 269, 286, -17, 84, 322, + 142, 142, 343, 323, 142, 142, 142, 142, 142, 142, + 142, -17, 337, 142, 142, 153, 142, 157, 157, 157, + 157, 157, 220, 249, 157, 157, 288, 288, 304, 288, + 363, 288, 370, 288, 386, 386, 288, 288, 288, 288, + 386, 389, 386, 386, 386, 391, 386, 421, 386, 288, + 288, 288, 288, 404, 415, 404, 404, 415, 404, 428, + 425, 425, 425, 460, 445, 446, 447, 438, 440, ); public static $yyExpectedTokens = array( array(), @@ -842,8 +818,6 @@ public function mergePrefixCode($code) array(14, 35, 53, ), array(14, 35, 53, ), array(1, 2, ), - array(14, 16, ), - array(14, 16, ), array(3, 4, 5, 6, 9, 10, 11, 12, 18, 19, 20, 25, 29, 30, 31, ), array(2, 9, 12, 15, 16, 17, 44, 47, 49, 51, ), array(9, 12, 16, 49, ), @@ -860,6 +834,8 @@ public function mergePrefixCode($code) array(26, 32, ), array(1, 17, ), array(17, 47, ), + array(14, 16, ), + array(14, 16, ), array(1, 52, ), array(1, 28, ), array(26, 32, ), @@ -1076,48 +1052,46 @@ public function mergePrefixCode($code) array(), array(), array(), - array(), - array(), ); public static $yy_default = array( - 338, 516, 516, 516, 501, 501, 516, 478, 478, 516, - 478, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 516, 516, 379, 358, 379, 516, - 516, 415, 516, 516, 379, 516, 516, 384, 516, 516, - 516, 516, 351, 516, 516, 516, 516, 516, 363, 477, - 399, 403, 476, 502, 504, 503, 404, 386, 390, 391, - 381, 384, 351, 379, 379, 491, 433, 379, 379, 516, - 516, 370, 516, 516, 328, 432, 443, 516, 393, 393, - 393, 443, 443, 433, 379, 516, 379, 379, 373, 433, - 393, 393, 360, 375, 393, 397, 406, 407, 408, 398, - 402, 433, 489, 406, 396, 336, 485, 432, 432, 432, - 432, 432, 516, 445, 443, 459, 348, 359, 516, 362, - 516, 367, 516, 368, 440, 441, 352, 354, 355, 356, - 469, 443, 468, 471, 470, 436, 437, 438, 439, 369, - 365, 366, 361, 371, 479, 374, 376, 480, 425, 443, - 465, 492, 490, 336, 484, 484, 484, 443, 443, 415, - 411, 415, 405, 405, 444, 415, 415, 405, 405, 334, - 516, 516, 516, 405, 415, 426, 516, 516, 516, 516, - 411, 516, 516, 411, 516, 516, 516, 516, 516, 516, - 516, 516, 516, 516, 411, 413, 516, 488, 417, 516, - 459, 516, 516, 516, 516, 516, 420, 516, 516, 516, - 387, 329, 330, 331, 332, 333, 335, 337, 339, 340, - 341, 342, 343, 344, 345, 347, 377, 357, 378, 461, - 462, 463, 483, 372, 481, 482, 409, 418, 419, 430, - 431, 442, 446, 447, 448, 394, 395, 410, 412, 414, - 416, 420, 421, 422, 423, 400, 401, 424, 427, 428, - 429, 456, 454, 457, 493, 494, 495, 496, 434, 435, - 467, 460, 475, 346, 466, 512, 513, 505, 506, 507, - 510, 509, 511, 514, 515, 508, 498, 500, 499, 497, - 472, 455, 453, 450, 451, 452, 458, 473, 474, 417, - 449, 487, 464, 459, 380, 364, 388, 392, + 336, 512, 512, 512, 497, 497, 512, 474, 474, 512, + 474, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 512, 512, 377, 356, 377, 512, + 512, 413, 512, 512, 377, 512, 512, 382, 512, 512, + 512, 512, 349, 512, 512, 512, 512, 512, 361, 473, + 397, 401, 472, 498, 500, 499, 402, 384, 388, 389, + 379, 382, 349, 377, 377, 487, 429, 377, 377, 512, + 512, 368, 326, 428, 439, 512, 391, 391, 391, 439, + 439, 429, 377, 512, 377, 377, 371, 429, 512, 512, + 391, 391, 358, 373, 391, 395, 404, 405, 406, 396, + 400, 429, 484, 404, 394, 334, 481, 428, 428, 428, + 428, 428, 512, 441, 439, 455, 346, 357, 512, 360, + 512, 365, 512, 366, 436, 437, 350, 352, 353, 354, + 465, 439, 464, 467, 466, 432, 433, 434, 435, 367, + 363, 364, 359, 369, 475, 372, 374, 476, 422, 439, + 461, 488, 485, 334, 480, 480, 480, 439, 439, 413, + 409, 413, 403, 403, 440, 413, 413, 403, 403, 332, + 512, 512, 512, 403, 413, 423, 512, 512, 512, 512, + 409, 512, 512, 409, 512, 512, 512, 512, 512, 512, + 512, 512, 512, 512, 409, 411, 512, 486, 415, 512, + 455, 512, 512, 512, 512, 512, 418, 512, 512, 512, + 385, 327, 328, 329, 330, 331, 333, 335, 337, 338, + 339, 340, 341, 342, 343, 345, 375, 355, 376, 457, + 458, 459, 479, 370, 477, 478, 407, 416, 417, 426, + 427, 438, 442, 443, 444, 392, 393, 408, 410, 412, + 414, 418, 419, 420, 398, 399, 421, 424, 425, 452, + 450, 453, 489, 490, 491, 492, 430, 431, 463, 456, + 471, 344, 462, 508, 509, 501, 502, 503, 506, 505, + 507, 510, 511, 504, 494, 496, 495, 493, 468, 451, + 449, 446, 447, 448, 454, 469, 470, 415, 445, 483, + 460, 455, 378, 362, 386, 390, ); - const YYNOCODE = 110; + const YYNOCODE = 109; const YYSTACKDEPTH = 500; - const YYNSTATE = 328; - const YYNRULE = 188; + const YYNSTATE = 326; + const YYNRULE = 186; const YYERRORSYMBOL = 61; const YYERRSYMDT = 'yy0'; const YYFALLBACK = 0; @@ -1170,11 +1144,10 @@ public function PrintTrace() 'foraction', 'varvar', 'modparameters', 'attribute', 'ternary', 'tlop', 'lop', 'scond', 'array', 'function', 'ns1', 'doublequoted_with_quotes', - 'static_class_access', 'static_class_constant', 'arraydef', 'object', - 'arrayindex', 'indexdef', 'varvarele', 'objectchain', - 'objectelement', 'method', 'params', 'modifier', - 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', - 'doublequotedcontent', + 'static_class_access', 'arraydef', 'object', 'arrayindex', + 'indexdef', 'varvarele', 'objectchain', 'objectelement', + 'method', 'params', 'modifier', 'modparameter', + 'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent', ); public static $yyRuleName = array( @@ -1273,12 +1246,10 @@ public function PrintTrace() 'value ::= SINGLEQUOTESTRING', 'value ::= doublequoted_with_quotes', 'value ::= varindexed DOUBLECOLON static_class_access', - 'value ::= varindexed DOUBLECOLON static_class_constant', 'value ::= smartytag', 'value ::= value modifierlist', 'value ::= NAMESPACE', 'value ::= arraydef', - 'value ::= ns1 DOUBLECOLON static_class_constant', 'value ::= ns1 DOUBLECOLON static_class_access', 'ns1 ::= ID', 'ns1 ::= NAMESPACE', @@ -1338,9 +1309,9 @@ public function PrintTrace() 'modparameter ::= COLON value', 'modparameter ::= COLON UNIMATH value', 'modparameter ::= COLON array', - 'static_class_constant ::= ID', 'static_class_access ::= method', 'static_class_access ::= method objectchain', + 'static_class_access ::= ID', 'static_class_access ::= DOLLARID arrayindex', 'static_class_access ::= DOLLARID arrayindex objectchain', 'lop ::= LOGOP', @@ -1776,13 +1747,11 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 3 ), - array( 0 => 75, 1 => 3 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 2 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 1 ), array( 0 => 75, 1 => 3 ), - array( 0 => 75, 1 => 3 ), array( 0 => 90, 1 => 1 ), array( 0 => 90, 1 => 1 ), array( 0 => 74, 1 => 1 ), @@ -1795,80 +1764,80 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) array( 0 => 74, 1 => 4 ), array( 0 => 71, 1 => 2 ), array( 0 => 71, 1 => 2 ), + array( 0 => 95, 1 => 2 ), + array( 0 => 95, 1 => 0 ), + array( 0 => 96, 1 => 2 ), + array( 0 => 96, 1 => 2 ), + array( 0 => 96, 1 => 4 ), + array( 0 => 96, 1 => 2 ), + array( 0 => 96, 1 => 2 ), + array( 0 => 96, 1 => 4 ), + array( 0 => 96, 1 => 3 ), + array( 0 => 96, 1 => 5 ), + array( 0 => 96, 1 => 3 ), + array( 0 => 96, 1 => 3 ), + array( 0 => 96, 1 => 3 ), + array( 0 => 96, 1 => 3 ), + array( 0 => 96, 1 => 3 ), + array( 0 => 96, 1 => 3 ), array( 0 => 96, 1 => 2 ), - array( 0 => 96, 1 => 0 ), - array( 0 => 97, 1 => 2 ), - array( 0 => 97, 1 => 2 ), - array( 0 => 97, 1 => 4 ), - array( 0 => 97, 1 => 2 ), - array( 0 => 97, 1 => 2 ), - array( 0 => 97, 1 => 4 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 5 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 3 ), - array( 0 => 97, 1 => 2 ), array( 0 => 81, 1 => 1 ), array( 0 => 81, 1 => 1 ), array( 0 => 81, 1 => 2 ), + array( 0 => 97, 1 => 1 ), + array( 0 => 97, 1 => 1 ), + array( 0 => 97, 1 => 3 ), + array( 0 => 94, 1 => 2 ), array( 0 => 98, 1 => 1 ), - array( 0 => 98, 1 => 1 ), - array( 0 => 98, 1 => 3 ), - array( 0 => 95, 1 => 2 ), - array( 0 => 99, 1 => 1 ), + array( 0 => 98, 1 => 2 ), + array( 0 => 99, 1 => 3 ), + array( 0 => 99, 1 => 3 ), + array( 0 => 99, 1 => 5 ), + array( 0 => 99, 1 => 6 ), array( 0 => 99, 1 => 2 ), - array( 0 => 100, 1 => 3 ), - array( 0 => 100, 1 => 3 ), - array( 0 => 100, 1 => 5 ), - array( 0 => 100, 1 => 6 ), - array( 0 => 100, 1 => 2 ), array( 0 => 89, 1 => 4 ), - array( 0 => 101, 1 => 4 ), - array( 0 => 101, 1 => 4 ), - array( 0 => 102, 1 => 3 ), - array( 0 => 102, 1 => 1 ), - array( 0 => 102, 1 => 0 ), + array( 0 => 100, 1 => 4 ), + array( 0 => 100, 1 => 4 ), + array( 0 => 101, 1 => 3 ), + array( 0 => 101, 1 => 1 ), + array( 0 => 101, 1 => 0 ), array( 0 => 77, 1 => 3 ), array( 0 => 77, 1 => 2 ), - array( 0 => 103, 1 => 3 ), - array( 0 => 103, 1 => 2 ), + array( 0 => 102, 1 => 3 ), + array( 0 => 102, 1 => 2 ), array( 0 => 82, 1 => 2 ), array( 0 => 82, 1 => 0 ), - array( 0 => 104, 1 => 2 ), - array( 0 => 104, 1 => 3 ), - array( 0 => 104, 1 => 2 ), - array( 0 => 93, 1 => 1 ), + array( 0 => 103, 1 => 2 ), + array( 0 => 103, 1 => 3 ), + array( 0 => 103, 1 => 2 ), array( 0 => 92, 1 => 1 ), array( 0 => 92, 1 => 2 ), + array( 0 => 92, 1 => 1 ), array( 0 => 92, 1 => 2 ), array( 0 => 92, 1 => 3 ), array( 0 => 86, 1 => 1 ), array( 0 => 86, 1 => 1 ), array( 0 => 85, 1 => 1 ), array( 0 => 87, 1 => 1 ), - array( 0 => 94, 1 => 3 ), - array( 0 => 94, 1 => 3 ), - array( 0 => 105, 1 => 1 ), + array( 0 => 93, 1 => 3 ), + array( 0 => 93, 1 => 3 ), + array( 0 => 104, 1 => 1 ), + array( 0 => 104, 1 => 3 ), + array( 0 => 104, 1 => 0 ), array( 0 => 105, 1 => 3 ), - array( 0 => 105, 1 => 0 ), - array( 0 => 106, 1 => 3 ), - array( 0 => 106, 1 => 3 ), - array( 0 => 106, 1 => 1 ), + array( 0 => 105, 1 => 3 ), + array( 0 => 105, 1 => 1 ), array( 0 => 91, 1 => 2 ), array( 0 => 91, 1 => 3 ), - array( 0 => 107, 1 => 2 ), + array( 0 => 106, 1 => 2 ), + array( 0 => 106, 1 => 1 ), + array( 0 => 107, 1 => 3 ), + array( 0 => 107, 1 => 3 ), + array( 0 => 107, 1 => 1 ), + array( 0 => 107, 1 => 3 ), + array( 0 => 107, 1 => 3 ), + array( 0 => 107, 1 => 1 ), array( 0 => 107, 1 => 1 ), - array( 0 => 108, 1 => 3 ), - array( 0 => 108, 1 => 3 ), - array( 0 => 108, 1 => 1 ), - array( 0 => 108, 1 => 3 ), - array( 0 => 108, 1 => 3 ), - array( 0 => 108, 1 => 1 ), - array( 0 => 108, 1 => 1 ), ); public static $yyReduceMap = array( @@ -1893,12 +1862,12 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 88 => 6, 92 => 6, 93 => 6, + 97 => 6, 98 => 6, - 99 => 6, - 102 => 6, - 107 => 6, - 171 => 6, - 176 => 6, + 100 => 6, + 105 => 6, + 169 => 6, + 174 => 6, 7 => 7, 8 => 8, 9 => 9, @@ -1939,19 +1908,18 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 49 => 49, 50 => 50, 59 => 50, - 149 => 50, - 153 => 50, + 147 => 50, + 151 => 50, + 155 => 50, 157 => 50, - 159 => 50, - 160 => 50, 51 => 51, - 150 => 51, - 156 => 51, + 148 => 51, + 154 => 51, 52 => 52, 53 => 53, 54 => 53, 55 => 55, - 134 => 55, + 132 => 55, 58 => 58, 60 => 60, 61 => 61, @@ -1971,7 +1939,7 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 78 => 78, 80 => 78, 81 => 78, - 114 => 78, + 112 => 78, 79 => 79, 84 => 84, 85 => 85, @@ -1983,40 +1951,40 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 94 => 94, 95 => 95, 96 => 96, - 97 => 97, - 100 => 100, + 99 => 99, 101 => 101, + 102 => 102, 103 => 103, 104 => 104, - 105 => 105, 106 => 106, + 107 => 107, 108 => 108, 109 => 109, 110 => 110, 111 => 111, - 112 => 112, 113 => 113, + 171 => 113, + 114 => 114, 115 => 115, - 173 => 115, 116 => 116, 117 => 117, 118 => 118, 119 => 119, + 127 => 119, 120 => 120, 121 => 121, - 129 => 121, 122 => 122, - 123 => 123, + 123 => 122, + 125 => 122, + 126 => 122, 124 => 124, - 125 => 124, - 127 => 124, - 128 => 124, - 126 => 126, + 128 => 128, + 129 => 129, 130 => 130, + 175 => 130, 131 => 131, - 132 => 132, - 177 => 132, 133 => 133, + 134 => 134, 135 => 135, 136 => 136, 137 => 137, @@ -2029,13 +1997,14 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 144 => 144, 145 => 145, 146 => 146, - 147 => 147, - 148 => 148, - 151 => 151, + 149 => 149, + 150 => 150, 152 => 152, - 154 => 154, - 155 => 155, + 153 => 153, + 156 => 156, 158 => 158, + 159 => 159, + 160 => 160, 161 => 161, 162 => 162, 163 => 163, @@ -2043,22 +2012,20 @@ public function yy_shift($yyNewState, $yyMajor, $yypMinor) 165 => 165, 166 => 166, 167 => 167, - 168 => 168, - 169 => 169, - 170 => 169, + 168 => 167, + 170 => 170, 172 => 172, - 174 => 174, - 175 => 175, + 173 => 173, + 176 => 176, + 177 => 177, 178 => 178, 179 => 179, + 182 => 179, 180 => 180, + 183 => 180, 181 => 181, - 184 => 181, - 182 => 182, - 185 => 182, - 183 => 183, - 186 => 186, - 187 => 187, + 184 => 184, + 185 => 185, ); // line 233 "../smarty/lexer/smarty_internal_templateparser.y" public function yy_r0(){ @@ -2445,67 +2412,44 @@ public function yy_r94(){ } $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } -// line 762 "../smarty/lexer/smarty_internal_templateparser.y" +// line 763 "../smarty/lexer/smarty_internal_templateparser.y" public function yy_r95(){ - if ($this->security && $this->security->static_classes !== array()) { - $this->compiler->trigger_template_error('dynamic static class not allowed by security setting'); - } - $prefixVar = $this->compiler->getNewPrefixVariable(); - if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') { - $this->compiler->appendPrefixCode("compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>'); - } else { - $this->compiler->appendPrefixCode("compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>'); - } - $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0]; - } -// line 776 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r96(){ $prefixVar = $this->compiler->getNewPrefixVariable(); $tmp = $this->compiler->appendCode('', $this->yystack[$this->yyidx + 0]->minor); $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "")); $this->_retvalue = $prefixVar; } -// line 783 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r97(){ +// line 770 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r96(){ $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor)); } -// line 797 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r100(){ - if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) { - if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { - $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0]; - } else { - $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0]; - } - } else { - $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting'); - } - } -// line 810 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r101(){ +// line 783 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r99(){ if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) { if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } else { - trigger_error('Using unregistered static method "' . $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0] . '" in a template is deprecated and will be ' . - 'removed in a future release. Use Smarty::registerClass to explicitly register ' . - 'a class for access.', E_USER_DEPRECATED); + if ($this->yystack[$this->yyidx + 0]->minor[2] === 'method') { + trigger_error('Using unregistered static method "' . $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0] . '" in a template is deprecated and will be ' . + 'removed in a future release. Use Smarty::registerClass to explicitly register ' . + 'a class for access.', E_USER_DEPRECATED); + } $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1]; } } else { $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting'); } } -// line 832 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r103(){ +// line 807 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r101(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -// line 843 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r104(){ +// line 818 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r102(){ $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''); } -// line 846 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r105(){ +// line 821 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r103(){ if ($this->yystack[$this->yyidx + 0]->minor['var'] === '\'smarty\'') { $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']); $this->_retvalue = $smarty_var; @@ -2516,164 +2460,164 @@ public function yy_r105(){ $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']; } } -// line 859 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r106(){ +// line 834 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r104(){ $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor; } -// line 869 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r108(){ +// line 844 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r106(){ $this->_retvalue = $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -1]->minor . '\''); } -// line 873 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r109(){ +// line 848 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r107(){ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -2]->minor . '\'') . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)'; } -// line 877 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r110(){ +// line 852 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r108(){ $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor); } -// line 881 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r111(){ +// line 856 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r109(){ $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)'; } -// line 885 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r112(){ +// line 860 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r110(){ $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } -// line 888 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r113(){ +// line 863 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r111(){ $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } -// line 901 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r115(){ +// line 876 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r113(){ return; } -// line 907 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r116(){ +// line 882 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r114(){ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']'; } -// line 910 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r117(){ +// line 885 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r115(){ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']'; } -// line 914 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r118(){ +// line 889 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r116(){ $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']'; } -// line 918 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r119(){ +// line 893 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r117(){ $this->_retvalue = '[\''. $this->yystack[$this->yyidx + 0]->minor .'\']'; } -// line 922 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r120(){ +// line 897 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r118(){ $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']'; } -// line 927 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r121(){ +// line 902 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r119(){ $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']'; } -// line 932 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r122(){ +// line 907 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r120(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } -// line 936 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r123(){ +// line 911 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r121(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; } -// line 939 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r124(){ +// line 914 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r122(){ $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']'; } -// line 945 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r126(){ +// line 920 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r124(){ $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']'; } -// line 961 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r130(){ +// line 936 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r128(){ $this->_retvalue = '[]'; } -// line 971 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r131(){ +// line 946 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r129(){ $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\''; } -// line 975 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r132(){ +// line 950 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r130(){ $this->_retvalue = '\'\''; } -// line 980 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r133(){ +// line 955 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r131(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } -// line 988 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r135(){ +// line 963 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r133(){ $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $'); $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\''); } -// line 994 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r136(){ +// line 969 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r134(){ $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; } -// line 1001 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r137(){ +// line 976 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r135(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] === '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor; } else { $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; } } -// line 1010 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r138(){ +// line 985 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r136(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -// line 1015 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r139(){ +// line 990 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r137(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -// line 1020 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r140(){ +// line 995 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r138(){ if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) === '_') { $this->compiler->trigger_template_error (self::ERR1); } $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -// line 1027 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r141(){ +// line 1002 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r139(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}'; } -// line 1034 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r142(){ +// line 1009 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r140(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -// line 1041 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r143(){ +// line 1016 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r141(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -// line 1049 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r144(){ +// line 1024 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r142(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; } -// line 1057 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r145(){ +// line 1032 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r143(){ $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor); } -// line 1065 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r146(){ +// line 1040 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r144(){ if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) === '_') { $this->compiler->trigger_template_error (self::ERR1); } $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . '('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } -// line 1072 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r147(){ +// line 1047 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r145(){ if ($this->security) { $this->compiler->trigger_template_error (self::ERR2); } @@ -2681,52 +2625,56 @@ public function yy_r147(){ $this->compiler->appendPrefixCode("compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>'); $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } -// line 1083 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r148(){ +// line 1058 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r146(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor)); } -// line 1100 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r151(){ +// line 1075 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r149(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor))); } -// line 1104 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r152(){ +// line 1079 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r150(){ $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)); } -// line 1112 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r154(){ +// line 1087 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r152(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -// line 1120 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r155(){ +// line 1095 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r153(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } -// line 1133 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r158(){ +// line 1108 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r156(){ $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor); } -// line 1147 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r161(){ +// line 1117 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r158(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method'); } -// line 1152 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r162(){ +// line 1122 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r159(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method'); } -// line 1157 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r163(){ +// line 1127 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r160(){ + $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'constant'); + } +// line 1132 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r161(){ $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property'); } -// line 1162 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r164(){ +// line 1137 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r162(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property'); } -// line 1168 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r165(){ +// line 1143 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r163(){ $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' '; } -// line 1172 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r166(){ +// line 1147 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r164(){ static $lops = array( 'eq' => ' == ', 'ne' => ' != ', @@ -2745,8 +2693,8 @@ public function yy_r166(){ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $lops[$op]; } -// line 1191 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r167(){ +// line 1166 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r165(){ static $tlops = array( 'isdivby' => array('op' => ' % ', 'pre' => '!('), 'isnotdivby' => array('op' => ' % ', 'pre' => '('), @@ -2758,8 +2706,8 @@ public function yy_r167(){ $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $tlops[$op]; } -// line 1204 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r168(){ +// line 1179 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r166(){ static $scond = array ( 'iseven' => '!(1 & ', 'isnoteven' => '(1 & ', @@ -2769,54 +2717,54 @@ public function yy_r168(){ $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor)); $this->_retvalue = $scond[$op]; } -// line 1218 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r169(){ +// line 1193 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r167(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } -// line 1229 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r172(){ +// line 1204 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r170(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } -// line 1237 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r174(){ +// line 1212 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r172(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } -// line 1241 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r175(){ +// line 1216 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r173(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } -// line 1257 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r178(){ +// line 1232 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r176(){ $this->compiler->leaveDoubleQuote(); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this); } -// line 1263 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r179(){ +// line 1238 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r177(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -// line 1268 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r180(){ +// line 1243 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r178(){ $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor); } -// line 1272 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r181(){ +// line 1247 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r179(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor); } -// line 1276 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r182(){ +// line 1251 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r180(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')'); } -// line 1280 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r183(){ +// line 1255 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r181(){ $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value'); } -// line 1292 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r186(){ +// line 1267 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r184(){ $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor); } -// line 1296 "../smarty/lexer/smarty_internal_templateparser.y" - public function yy_r187(){ +// line 1271 "../smarty/lexer/smarty_internal_templateparser.y" + public function yy_r185(){ $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor); }