diff --git a/change_log.txt b/change_log.txt index 7f5bcae5..f7fbc0df 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,4 +1,8 @@ ===== 3.1.32 - dev === +12.10.2017 + - bugfix $smarty.block.child and $smarty.block.parent could not be used like any + $smarty special variable https://github.com/smarty-php/smarty/issues/393 + 07.10.2017 - bugfix modification of 9.8.2017 did fail on some recursive tag nesting. https://github.com/smarty-php/smarty/issues/389 diff --git a/lexer/smarty_internal_templatelexer.plex b/lexer/smarty_internal_templatelexer.plex index d70fabad..cbd13626 100644 --- a/lexer/smarty_internal_templatelexer.plex +++ b/lexer/smarty_internal_templatelexer.plex @@ -344,7 +344,6 @@ class Smarty_Internal_Templatelexer rdel = ~\s*SMARTYrdel~ nocacherdel = ~(\s+nocache)?\s*SMARTYrdel~ notblockid = ~(?:(?!block)[0-9]*[a-zA-Z_]\w*)~ - smartyblockchildparent = ~[\$]smarty\.block\.(child|parent)~ integer = ~\d+~ hex = ~0[xX][0-9a-fA-F]+~ math = ~\s*([*]{1,2}|[%/^&]|[<>]{2})\s*~ @@ -515,10 +514,6 @@ class Smarty_Internal_Templatelexer singlequotestring { $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING; } - smartyblockchildparent { - $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT; - $this->taglineno = $this->line; - } dollar id { $this->token = Smarty_Internal_Templateparser::TP_DOLLARID; } diff --git a/lexer/smarty_internal_templateparser.y b/lexer/smarty_internal_templateparser.y index e4e00f6f..d623639e 100644 --- a/lexer/smarty_internal_templateparser.y +++ b/lexer/smarty_internal_templateparser.y @@ -514,18 +514,6 @@ tag(res) ::= LDELSETFILTER ID(m) modparameters(p) modifierlist(l). { res = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array(m),p)),l))); } - // {$smarty.block.child} or {$smarty.block.parent} -tag(res) ::= LDEL SMARTYBLOCKCHILDPARENT(i). { - $j = strrpos(i,'.'); - if (i[$j+1] == 'c') { - // {$smarty.block.child} - res = $this->compiler->compileTag('block_child',array());; - } else { - // {$smarty.block.parent} - res = $this->compiler->compileTag('block_parent',array());; - } -} - // end of block tag {/....} smartytag(res)::= CLOSETAG(t). { diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 23f56818..521ba914 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -108,7 +108,7 @@ class Smarty extends Smarty_Internal_TemplateBase /** * smarty version */ - const SMARTY_VERSION = '3.1.32-dev-23'; + const SMARTY_VERSION = '3.1.32-dev-24'; /** * define variable scopes @@ -893,7 +893,7 @@ class Smarty extends Smarty_Internal_TemplateBase $dir = &$this->template_dir; } if ($isConfig ? !$this->_configDirNormalized : !$this->_templateDirNormalized) { - $this->_nomalizeTemplateConfig($isConfig); + $this->_normalizeTemplateConfig($isConfig); } if ($index !== null) { return isset($dir[ $index ]) ? $dir[ $index ] : null; @@ -1068,7 +1068,7 @@ class Smarty extends Smarty_Internal_TemplateBase * @param bool $isConfig true for config_dir * */ - private function _nomalizeTemplateConfig($isConfig) + private function _normalizeTemplateConfig($isConfig) { if ($isConfig) { $processed = &$this->_processedConfigDir; @@ -1115,7 +1115,7 @@ class Smarty extends Smarty_Internal_TemplateBase $data = null; } if (!$this->_templateDirNormalized) { - $this->_nomalizeTemplateConfig(false); + $this->_normalizeTemplateConfig(false); } $_templateId = $this->_getTemplateId($template, $cache_id, $compile_id); $tpl = null; diff --git a/libs/sysplugins/smarty_internal_block.php b/libs/sysplugins/smarty_internal_block.php index a33ad1b1..596b6a30 100644 --- a/libs/sysplugins/smarty_internal_block.php +++ b/libs/sysplugins/smarty_internal_block.php @@ -38,7 +38,7 @@ class Smarty_Internal_Block public $prepend = false; /** - * Block calls {$smarty.block.child} + * Block calls $smarty.block.child * * @var bool */ diff --git a/libs/sysplugins/smarty_internal_compile_block.php b/libs/sysplugins/smarty_internal_compile_block.php index 5098d62f..7a245e76 100644 --- a/libs/sysplugins/smarty_internal_compile_block.php +++ b/libs/sysplugins/smarty_internal_compile_block.php @@ -61,14 +61,14 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object * @param array $parameter array with compilation parameter * - * @return bool true + * @return string compiled code */ public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) { - if (!isset($compiler->_cache[ 'blockNesting' ])) { - $compiler->_cache[ 'blockNesting' ] = 0; + if (!isset($compiler->_cache['blockNesting'])) { + $compiler->_cache['blockNesting'] = 0; } - if ($compiler->_cache[ 'blockNesting' ] == 0) { + if ($compiler->_cache['blockNesting'] == 0) { // make sure that inheritance gets initialized in template code $this->registerInit($compiler); $this->option_flags = array('hide', 'nocache', 'append', 'prepend'); @@ -77,28 +77,69 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_Compile_Shared_Inher } // check and get attributes $_attr = $this->getAttributes($compiler, $args); - $compiler->_cache[ 'blockNesting' ] ++; + $compiler->_cache['blockNesting']++; $_className = 'Block_' . preg_replace('![^\w]+!', '_', uniqid(rand(), true)); - $compiler->_cache[ 'blockName' ][ $compiler->_cache[ 'blockNesting' ] ] = $_attr[ 'name' ]; - $compiler->_cache[ 'blockClass' ][ $compiler->_cache[ 'blockNesting' ] ] = $_className; - $compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ] = array(); - $compiler->_cache[ 'blockParams' ][ 1 ][ 'subBlocks' ][ trim($_attr[ 'name' ], '"\'') ][] = $_className; - $this->openTag($compiler, 'block', array($_attr, $compiler->nocache, $compiler->parser->current_buffer, - $compiler->template->compiled->has_nocache_code, - $compiler->template->caching)); + $compiler->_cache['blockName'][ $compiler->_cache['blockNesting'] ] = $_attr['name']; + $compiler->_cache['blockClass'][ $compiler->_cache['blockNesting'] ] = $_className; + $compiler->_cache['blockParams'][ $compiler->_cache['blockNesting'] ] = array(); + $compiler->_cache['blockParams'][1]['subBlocks'][ trim($_attr['name'], '"\'') ][] = $_className; + $this->openTag($compiler, + 'block', + array($_attr, $compiler->nocache, $compiler->parser->current_buffer, + $compiler->template->compiled->has_nocache_code, + $compiler->template->caching)); // must whole block be nocache ? if ($compiler->tag_nocache) { $i = 0; } $compiler->nocache = $compiler->nocache | $compiler->tag_nocache; // $compiler->suppressNocacheProcessing = true; - if ($_attr[ 'nocache' ] === true) { + if ($_attr['nocache'] === true) { //$compiler->trigger_template_error('nocache option not allowed', $compiler->parser->lex->taglineno); } $compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template(); $compiler->template->compiled->has_nocache_code = false; $compiler->suppressNocacheProcessing = true; } + + /** + * Compiles code for the {$smarty.foreach.xxx} or {$smarty.section.xxx}tag + * + * @param array $args array with attributes from parser + * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object + * @param array $parameter array with compilation parameter + * + * @return string compiled code + * @throws \SmartyCompilerException + */ + public function compileSpecialVariable($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) + { + $name = isset($parameter[1]) ? $compiler->getId($parameter[1]) : false; + if (!$name) { + $compiler->trigger_template_error("invalid \"\$smarty.block\" expected \"\$smarty.block.child\" or \"\$smarty.block.parent\"", + null, + true); + } + if (!isset($compiler->_cache['blockNesting'])) { + $compiler->trigger_template_error(" \"\$smarty.block.{$name}\" used outside {block} tags ", + $compiler->parser->lex->taglineno); + } + $compiler->has_code = true; + $compiler->suppressNocacheProcessing = true; + switch ($name) { + case 'child': + $compiler->_cache['blockParams'][ $compiler->_cache['blockNesting'] ]['callsChild'] = 'true'; + return '$_smarty_tpl->inheritance->callChild($_smarty_tpl, $this, true)'; + break; + case 'parent': + return '$_smarty_tpl->inheritance->callParent($_smarty_tpl, $this, null, true)'; + break; + default: + $compiler->trigger_template_error("invalid \"\$smarty.block.{$name}\" expected \"\$smarty.block.child\" or \"\$smarty.block.parent\"", + null, + true); + } + } } /** @@ -114,23 +155,23 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_ * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object * @param array $parameter array with compilation parameter * - * @return bool true + * @return string compiled code */ public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) { list($_attr, $_nocache, $_buffer, $_has_nocache_code, $_caching) = $this->closeTag($compiler, array('block')); // init block parameter - $_block = $compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ]; - unset($compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ]); - $_name = $_attr[ 'name' ]; - $_assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : null; - unset($_attr[ 'assign' ], $_attr[ 'name' ]); + $_block = $compiler->_cache['blockParams'][ $compiler->_cache['blockNesting'] ]; + unset($compiler->_cache['blockParams'][ $compiler->_cache['blockNesting'] ]); + $_name = $_attr['name']; + $_assign = isset($_attr['assign']) ? $_attr['assign'] : null; + unset($_attr['assign'], $_attr['name']); foreach ($_attr as $name => $stat) { if ((is_bool($stat) && $stat !== false) || (!is_bool($stat) && $stat != 'false')) { $_block[ $name ] = 'true'; } } - $_className = $compiler->_cache[ 'blockClass' ][ $compiler->_cache[ 'blockNesting' ] ]; + $_className = $compiler->_cache['blockClass'][ $compiler->_cache['blockNesting'] ]; // get compiled block code $_functionCode = $compiler->parser->current_buffer; // setup buffer for template function code @@ -141,7 +182,7 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_ $output .= "class {$_className} extends Smarty_Internal_Block\n"; $output .= "{\n"; foreach ($_block as $property => $value) { - $output .= "public \${$property} = " . var_export($value,true) .";\n"; + $output .= "public \${$property} = " . var_export($value, true) . ";\n"; } $output .= "public function callBlock(Smarty_Internal_Template \$_smarty_tpl) {\n"; //$output .= "/*/%%SmartyNocache:{$compiler->template->compiled->nocache_hash}%%*/\n"; @@ -170,10 +211,10 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_ $compiler->blockOrFunctionCode .= $f = $compiler->parser->current_buffer->to_smarty_php($compiler->parser); $compiler->parser->current_buffer = new Smarty_Internal_ParseTree_Template(); // nocache plugins must be copied - if (!empty($compiler->template->compiled->required_plugins[ 'nocache' ])) { - foreach ($compiler->template->compiled->required_plugins[ 'nocache' ] as $plugin => $tmp) { + if (!empty($compiler->template->compiled->required_plugins['nocache'])) { + foreach ($compiler->template->compiled->required_plugins['nocache'] as $plugin => $tmp) { foreach ($tmp as $type => $data) { - $compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ $plugin ][ $type ] = + $compiler->parent_compiler->template->compiled->required_plugins['compiled'][ $plugin ][ $type ] = $data; } } @@ -185,15 +226,15 @@ class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_Compile_Shared_ $compiler->nocache = $_nocache; $compiler->parser->current_buffer = $_buffer; $output = "_cache[ 'blockNesting' ] == 1) { + if ($compiler->_cache['blockNesting'] == 1) { $output .= "\$_smarty_tpl->inheritance->instanceBlock(\$_smarty_tpl, '$_className', $_name);\n"; } else { $output .= "\$_smarty_tpl->inheritance->instanceBlock(\$_smarty_tpl, '$_className', $_name, \$this->tplIndex);\n"; } $output .= "?>\n"; - $compiler->_cache[ 'blockNesting' ] --; - if ($compiler->_cache[ 'blockNesting' ] == 0) { - unset($compiler->_cache[ 'blockNesting' ]); + $compiler->_cache['blockNesting']--; + if ($compiler->_cache['blockNesting'] == 0) { + unset($compiler->_cache['blockNesting']); } $compiler->has_code = true; $compiler->suppressNocacheProcessing = true; diff --git a/libs/sysplugins/smarty_internal_compile_block_child.php b/libs/sysplugins/smarty_internal_compile_block_child.php deleted file mode 100644 index bb070ebe..00000000 --- a/libs/sysplugins/smarty_internal_compile_block_child.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class Smarty_Internal_Compile_Block_Child extends Smarty_Internal_CompileBase -{ - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $option_flags = array(); - - /** - * Saved compiler object - * - * @var Smarty_Internal_TemplateCompilerBase - */ - public $compiler = null; - - /** - * Compiles code for the {block_parent} tag - * - * @param array $args array with attributes from parser - * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object - * @param array $parameter array with compilation parameter - * - * @return bool true - */ - public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) - { - if (!isset($compiler->_cache[ 'blockNesting' ])) { - $compiler->trigger_template_error(' tag {$smarty.block.child} used outside {block} tags ', - $compiler->parser->lex->taglineno); - } - $compiler->has_code = true; - $compiler->suppressNocacheProcessing = true; - $compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ][ 'callsChild' ] = 'true'; - $output = "inheritance->callChild(\$_smarty_tpl, \$this);\n?>\n"; - return $output; - } -} \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_compile_block_parent.php b/libs/sysplugins/smarty_internal_compile_block_parent.php deleted file mode 100644 index 0ec1e848..00000000 --- a/libs/sysplugins/smarty_internal_compile_block_parent.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Smarty_Internal_Compile_Block_Parent extends Smarty_Internal_Compile_Shared_Inheritance -{ - - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $optional_attributes = array('name'); - - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $shorttag_order = array('name'); - - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $option_flags = array(); - - /** - * Saved compiler object - * - * @var Smarty_Internal_TemplateCompilerBase - */ - public $compiler = null; - - /** - * Compiles code for the {block_parent} tag - * - * @param array $args array with attributes from parser - * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object - * @param array $parameter array with compilation parameter - * - * @return bool true - */ - public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter) - { - // check and get attributes - $_attr = $this->getAttributes($compiler, $args); - if (!isset($compiler->_cache[ 'blockNesting' ])) { - $compiler->trigger_template_error(' tag {$smarty.block.parent} used outside {block} tags ', - $compiler->parser->lex->taglineno); - } - $compiler->suppressNocacheProcessing = true; - $compiler->has_code = true; - $output = "inheritance->callParent(\$_smarty_tpl, \$this" . - (isset($_attr[ 'name' ]) ? ", {$_attr[ 'name' ]}" : '') . ");\n?>\n"; - return $output; - } -} \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_compile_private_special_variable.php b/libs/sysplugins/smarty_internal_compile_private_special_variable.php index 0c6be44f..967b186f 100644 --- a/libs/sysplugins/smarty_internal_compile_private_special_variable.php +++ b/libs/sysplugins/smarty_internal_compile_private_special_variable.php @@ -51,6 +51,9 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C return ''; case 'now': return 'time()'; + case 'block': + $tag = $compiler->getTagCompiler('block'); + return $tag->compileSpecialVariable(array(), $compiler, $_index); case 'cookies': if (isset($compiler->smarty->security_policy) && !$compiler->smarty->security_policy->allow_super_globals diff --git a/libs/sysplugins/smarty_internal_compile_shared_inheritance.php b/libs/sysplugins/smarty_internal_compile_shared_inheritance.php index c9557659..a32173cd 100644 --- a/libs/sysplugins/smarty_internal_compile_shared_inheritance.php +++ b/libs/sysplugins/smarty_internal_compile_shared_inheritance.php @@ -16,22 +16,6 @@ */ class Smarty_Internal_Compile_Shared_Inheritance extends Smarty_Internal_CompileBase { - /** - * Register post compile callback to compile inheritance initialization code - * - * @param \Smarty_Internal_TemplateCompilerBase $compiler - * @param bool|false $initChildSequence if true force child template - */ - public function registerInit(Smarty_Internal_TemplateCompilerBase $compiler, $initChildSequence = false) - { - if ($initChildSequence || !isset($compiler->_cache[ 'inheritanceInit' ])) { - $compiler->registerPostCompileCallback(array('Smarty_Internal_Compile_Shared_Inheritance', 'postCompile'), - array($initChildSequence), 'inheritanceInit', $initChildSequence); - - $compiler->_cache[ 'inheritanceInit' ] = true; - } - } - /** * Compile inheritance initialization code as prefix * @@ -43,4 +27,22 @@ class Smarty_Internal_Compile_Shared_Inheritance extends Smarty_Internal_Compile $compiler->prefixCompiledCode .= "_loadInheritance();\n\$_smarty_tpl->inheritance->init(\$_smarty_tpl, " . var_export($initChildSequence, true) . ");\n?>\n"; } + + /** + * Register post compile callback to compile inheritance initialization code + * + * @param \Smarty_Internal_TemplateCompilerBase $compiler + * @param bool|false $initChildSequence if true force child template + */ + public function registerInit(Smarty_Internal_TemplateCompilerBase $compiler, $initChildSequence = false) + { + if ($initChildSequence || !isset($compiler->_cache['inheritanceInit'])) { + $compiler->registerPostCompileCallback(array('Smarty_Internal_Compile_Shared_Inheritance', 'postCompile'), + array($initChildSequence), + 'inheritanceInit', + $initChildSequence); + + $compiler->_cache['inheritanceInit'] = true; + } + } } \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_runtime_inheritance.php b/libs/sysplugins/smarty_internal_runtime_inheritance.php index 5e4bd2ab..289e3ba0 100644 --- a/libs/sysplugins/smarty_internal_runtime_inheritance.php +++ b/libs/sysplugins/smarty_internal_runtime_inheritance.php @@ -42,7 +42,7 @@ class Smarty_Internal_Runtime_Inheritance * * @var int */ - public $tplIndex = - 1; + public $tplIndex = -1; /** * Array of template source objects @@ -75,7 +75,7 @@ class Smarty_Internal_Runtime_Inheritance $tpl->inheritance->init($tpl, $initChild, $blockNames); return; } - $this->tplIndex ++; + $this->tplIndex++; $this->sources[ $this->tplIndex ] = $tpl->source; // start of child sub template(s) @@ -85,7 +85,7 @@ class Smarty_Internal_Runtime_Inheritance //grab any output of child templates ob_start(); } - $this->inheritanceLevel ++; + $this->inheritanceLevel++; // $tpl->startRenderCallbacks[ 'inheritance' ] = array($this, 'subTemplateStart'); // $tpl->endRenderCallbacks[ 'inheritance' ] = array($this, 'subTemplateEnd'); } @@ -106,14 +106,23 @@ class Smarty_Internal_Runtime_Inheritance */ public function endChild(Smarty_Internal_Template $tpl, $template = null, $uid = null, $func = null) { - $this->inheritanceLevel --; + $this->inheritanceLevel--; if (!$this->inheritanceLevel) { ob_end_clean(); $this->state = 2; } - if (isset($template) && (($tpl->parent->_isTplObj() && $tpl->parent->source->type !== 'extends') || $tpl->smarty->extends_recursion)) { - $tpl->_subTemplateRender($template, $tpl->cache_id, $tpl->compile_id, $tpl->caching ? 9999 : 0, - $tpl->cache_lifetime, array(), 2, false, $uid, $func); + if (isset($template) && (($tpl->parent->_isTplObj() && $tpl->parent->source->type !== 'extends') || + $tpl->smarty->extends_recursion)) { + $tpl->_subTemplateRender($template, + $tpl->cache_id, + $tpl->compile_id, + $tpl->caching ? 9999 : 0, + $tpl->cache_lifetime, + array(), + 2, + false, + $uid, + $func); } } @@ -153,7 +162,8 @@ class Smarty_Internal_Runtime_Inheritance * * @throws \SmartyException */ - public function process(Smarty_Internal_Template $tpl, Smarty_Internal_Block $block, + public function process(Smarty_Internal_Template $tpl, + Smarty_Internal_Block $block, Smarty_Internal_Block $parent = null) { if ($block->hide && !isset($block->child)) { @@ -187,30 +197,47 @@ class Smarty_Internal_Runtime_Inheritance } /** - * Render child on {$smarty.block.child} + * Render child on $smarty.block.child * * @param \Smarty_Internal_Template $tpl * @param \Smarty_Internal_Block $block + * @param boolean $returnContent flag if content shall be returned + * + * @return null|string null or block content dependent on $returnContent */ - public function callChild(Smarty_Internal_Template $tpl, Smarty_Internal_Block $block) + public function callChild(Smarty_Internal_Template $tpl, Smarty_Internal_Block $block, $returnContent = false) { + if ($returnContent) { + ob_start(); + } if (isset($block->child)) { $this->process($tpl, $block->child, $block); } + if ($returnContent) { + return ob_get_clean(); + } + return; } /** - * Render parent on {$smarty.block.parent} or {block append/prepend} * + * Render parent block on $smarty.block.parent or {block append/prepend} * * * @param \Smarty_Internal_Template $tpl * @param \Smarty_Internal_Block $block + * @param null|string $name + * @param boolean $returnContent flag if content shall be returned * - * @param null $name - * + * @return null|string null or block content dependent on $returnContent * @throws \SmartyException */ - public function callParent(Smarty_Internal_Template $tpl, Smarty_Internal_Block $block, $name = null) + public function callParent(Smarty_Internal_Template $tpl, + Smarty_Internal_Block $block, + $name = null, + $returnContent = false) { + if ($returnContent) { + ob_start(); + } if (isset($name)) { $block = $block->parent; while (isset($block)) { @@ -223,11 +250,17 @@ class Smarty_Internal_Runtime_Inheritance } else if (isset($block->parent)) { $this->callBlock($block->parent, $tpl); } else { - throw new SmartyException("inheritance: illegal {\$smarty.block.parent} or {block append/prepend} used in parent template '{$tpl->inheritance->sources[$block->tplIndex]->filepath}' block '{$block->name}'"); + throw new SmartyException("inheritance: illegal '\$smarty.block.parent' or {block append/prepend} used in parent template '{$tpl->inheritance->sources[$block->tplIndex]->filepath}' block '{$block->name}'"); } + if ($returnContent) { + return ob_get_clean(); + } + return; } /** + * redender block + * * @param \Smarty_Internal_Block $block * @param \Smarty_Internal_Template $tpl */ diff --git a/libs/sysplugins/smarty_internal_templatelexer.php b/libs/sysplugins/smarty_internal_templatelexer.php index 46e0f835..53b929ea 100644 --- a/libs/sysplugins/smarty_internal_templatelexer.php +++ b/libs/sysplugins/smarty_internal_templatelexer.php @@ -18,146 +18,131 @@ */ class Smarty_Internal_Templatelexer { + const TEXT = 1; + const TAG = 2; + const TAGBODY = 3; + const LITERAL = 4; + const DOUBLEQUOTEDSTRING = 5; /** * Source * * @var string */ public $data; - /** * Source length * * @var int */ public $dataLength = null; - /** * byte counter * * @var int */ public $counter; - /** * token number * * @var int */ public $token; - /** * token value * * @var string */ public $value; - /** * current line * * @var int */ public $line; - /** * tag start line * * @var */ public $taglineno; - /** * php code type * * @var string */ public $phpType = ''; - /** * escaped left delimiter * * @var string */ public $ldel = ''; - /** * escaped left delimiter with space * * @var string */ public $ldel_q = ''; - /** * escaped left delimiter length * * @var int */ public $ldel_length = 0; - /** * escaped right delimiter * * @var string */ public $rdel = ''; - /** * escaped right delimiter length * * @var int */ public $rdel_length = 0; - /** * state number * * @var int */ public $state = 1; - /** * Smarty object * * @var Smarty */ public $smarty = null; - /** * compiler object * * @var Smarty_Internal_TemplateCompilerBase */ public $compiler = null; - /** * trace file * * @var resource */ public $yyTraceFILE; - /** * trace prompt * * @var string */ public $yyTracePrompt; - /** * XML flag true while processing xml * * @var bool */ public $is_xml = false; - /** * state names * * @var array */ public $state_name = array(1 => 'TEXT', 2 => 'TAG', 3 => 'TAGBODY', 4 => 'LITERAL', 5 => 'DOUBLEQUOTEDSTRING',); - /** * token names * @@ -201,55 +186,50 @@ class Smarty_Internal_Templatelexer 'TLOGOP' => '"lt", "eq" ... logical operator; "is div by" ... if condition', 'SCOND' => '"is even" ... if condition', ); - /** * preg string of user defined litereals * * @var string */ public $literals = ''; - /** * literal tag nesting level * * @var int */ private $literal_cnt = 0; - /** * preg token pattern for state TEXT * * @var string */ private $yy_global_pattern1 = null; - /** * preg token pattern for state TAG * * @var string */ private $yy_global_pattern2 = null; - /** * preg token pattern for state TAGBODY * * @var string */ private $yy_global_pattern3 = null; - /** * preg token pattern for state LITERAL * * @var string */ private $yy_global_pattern4 = null; - /** * preg token pattern for state DOUBLEQUOTEDSTRING * * @var null */ private $yy_global_pattern5 = null; + private $_yy_state = 1; + private $_yy_stack = array(); /** * constructor @@ -277,9 +257,10 @@ class Smarty_Internal_Templatelexer $literals = $this->smarty->getLiterals(); if (!empty($literals)) { foreach ($literals as $key => $literal) { - $literals[$key] = preg_quote($literal, '/'); + $literals[ $key ] = preg_quote($literal, '/'); } } + if ($this->smarty->auto_literal) { $literals[] = $this->ldel . '{1,}\\s+'; } @@ -300,19 +281,19 @@ class Smarty_Internal_Templatelexer $this->yyTracePrompt = '
'; } - /** + /** * replace placeholders with runtime preg code * * @param string $input * * @return string */ - public function replace($input) - { + public function replace($input) + { return str_replace(array('SMARTYldel', 'SMARTYliteral', 'SMARTYrdel'), array($this->ldel, $this->literals, $this->rdel), $input); - } + } /** * check if current value is an autoliteral left delimiter @@ -323,11 +304,7 @@ class Smarty_Internal_Templatelexer { return $this->smarty->auto_literal && isset($this->value[ $this->ldel_length ]) ? strpos(" \n\t\r", $this->value[ $this->ldel_length ]) !== false : false; - } - - - private $_yy_state = 1; - private $_yy_stack = array(); + } // end function public function yylex() { @@ -337,60 +314,79 @@ class Smarty_Internal_Templatelexer public function yypushstate($state) { if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sState push %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, + "%sState push %s\n", + $this->yyTracePrompt, + isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : + $this->_yy_state); } array_push($this->_yy_stack, $this->_yy_state); $this->_yy_state = $state; if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, + "%snew State %s\n", + $this->yyTracePrompt, + isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : + $this->_yy_state); } } public function yypopstate() { - if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sState pop %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); - } - $this->_yy_state = array_pop($this->_yy_stack); if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%snew State %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, + "%sState pop %s\n", + $this->yyTracePrompt, + isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : + $this->_yy_state); + } + $this->_yy_state = array_pop($this->_yy_stack); + if ($this->yyTraceFILE) { + fprintf($this->yyTraceFILE, + "%snew State %s\n", + $this->yyTracePrompt, + isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : + $this->_yy_state); } - } public function yybegin($state) { - $this->_yy_state = $state; + $this->_yy_state = $state; if ($this->yyTraceFILE) { - fprintf($this->yyTraceFILE, "%sState set %s\n", $this->yyTracePrompt, isset($this->state_name[$this->_yy_state]) ? $this->state_name[$this->_yy_state] : $this->_yy_state); + fprintf($this->yyTraceFILE, + "%sState set %s\n", + $this->yyTracePrompt, + isset($this->state_name[ $this->_yy_state ]) ? $this->state_name[ $this->_yy_state ] : + $this->_yy_state); } } - - public function yylex1() { if (!isset($this->yy_global_pattern1)) { - $this->yy_global_pattern1 = $this->replace("/\G([{][}])|\G(SMARTYldel[*])|\G((SMARTYldelphp([ ].*?)?SMARTYrdel)|(SMARTYldel[\/]phpSMARTYrdel))|\G(SMARTYliteral)|\G(SMARTYldelliteral\\s*SMARTYrdel)|\G(SMARTYldel[\/]literal\\s*SMARTYrdel)|\G(SMARTYldel)|\G(([<][?]((php\\s+|=)|\\s+))|([<][%])|([<][?]xml\\s+)|([<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>])|([?][>])|([%][>]))|\G(((.*?)(?=(SMARTYliteral|[{]|([<][?]((php\\s+|=)|\\s+))|([<][%])|([<][?]xml\\s+)|([<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>])|([?][>])|([%][>]))))|(.*))/isS"); + $this->yy_global_pattern1 = + $this->replace("/\G([{][}])|\G(SMARTYldel[*])|\G((SMARTYldelphp([ ].*?)?SMARTYrdel)|(SMARTYldel[\/]phpSMARTYrdel))|\G(SMARTYliteral)|\G(SMARTYldelliteral\\s*SMARTYrdel)|\G(SMARTYldel[\/]literal\\s*SMARTYrdel)|\G(SMARTYldel)|\G(([<][?]((php\\s+|=)|\\s+))|([<][%])|([<][?]xml\\s+)|([<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>])|([?][>])|([%][>]))|\G(((.*?)(?=(SMARTYliteral|[{]|([<][?]((php\\s+|=)|\\s+))|([<][%])|([<][?]xml\\s+)|([<]script\\s+language\\s*=\\s*[\"']?\\s*php\\s*[\"']?\\s*[>])|([?][>])|([%][>]))))|(.*))/isS"); } if (!isset($this->dataLength)) { $this->dataLength = strlen($this->data); } - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } - + do { - if (preg_match($this->yy_global_pattern1,$this->data, $yymatches, 0, $this->counter)) { - if (!isset($yymatches[ 0 ][1])) { - $yymatches = preg_grep("/(.|\s)+/", $yymatches); + if (preg_match($this->yy_global_pattern1, $this->data, $yymatches, 0, $this->counter)) { + if (!isset($yymatches[0][1])) { + $yymatches = preg_grep("/(.|\s)+/", $yymatches); } else { $yymatches = array_filter($yymatches); } if (empty($yymatches)) { throw new Exception('Error: lexing failed because a rule matched' . - ' an empty string. Input "' . substr($this->data, - $this->counter, 5) . '... state TEXT'); + ' an empty string. Input "' . substr($this->data, + $this->counter, + 5) . '... state TEXT'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number @@ -401,109 +397,107 @@ class Smarty_Internal_Templatelexer $this->line += substr_count($this->value, "\n"); // accept this token return true; - } elseif ($r === true) { + } else if ($r === true) { // we have changed state // process this token in the new state return $this->yylex(); - } elseif ($r === false) { + } else if ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } // skip this token continue; - } } else { + } + } else { throw new Exception('Unexpected input at line' . $this->line . - ': ' . $this->data[$this->counter]); + ': ' . $this->data[ $this->counter ]); } break; } while (true); + } - } // end function - - - const TEXT = 1; function yy_r1_1() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } + function yy_r1_2() { - - preg_match("/[*]{$this->rdel}/",$this->data,$match,PREG_OFFSET_CAPTURE,$this->counter); + preg_match("/[*]{$this->rdel}/", $this->data, $match, PREG_OFFSET_CAPTURE, $this->counter); if (isset($match[0][1])) { $to = $match[0][1] + strlen($match[0][0]); } else { - $this->compiler->trigger_template_error ("missing or misspelled comment closing tag '*{$this->smarty->right_delimiter}'"); + $this->compiler->trigger_template_error("missing or misspelled comment closing tag '*{$this->smarty->right_delimiter}'"); } - $this->value = substr($this->data,$this->counter,$to-$this->counter); + $this->value = substr($this->data, $this->counter, $to - $this->counter); return false; - } + } + function yy_r1_3() { - $this->compiler->getTagCompiler('private_php')->parsePhp($this); - } + } + function yy_r1_7() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } + function yy_r1_8() { - $this->token = Smarty_Internal_Templateparser::TP_LITERALSTART; $this->yypushstate(self::LITERAL); - } + } + function yy_r1_9() { - $this->token = Smarty_Internal_Templateparser::TP_LITERALEND; $this->yypushstate(self::LITERAL); - } + } // end function + function yy_r1_10() { - $this->yypushstate(self::TAG); return true; - } + } + function yy_r1_11() { - $this->compiler->getTagCompiler('private_php')->parsePhp($this); - } + } + function yy_r1_20() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } - public function yylex2() { if (!isset($this->yy_global_pattern2)) { - $this->yy_global_pattern2 = $this->replace("/\G(SMARTYldel(if|elseif|else if|while)\\s+)|\G(SMARTYldelfor\\s+)|\G(SMARTYldelforeach(?![^\s]))|\G(SMARTYldelsetfilter\\s+)|\G(SMARTYldelmake_nocache\\s+)|\G(SMARTYldel[0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G(SMARTYldel[\/](?:(?!block)[0-9]*[a-zA-Z_]\\w*)\\s*SMARTYrdel)|\G(SMARTYldel[$][0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G(SMARTYldel[\/])|\G(SMARTYldel)/isS"); + $this->yy_global_pattern2 = + $this->replace("/\G(SMARTYldel(if|elseif|else if|while)\\s+)|\G(SMARTYldelfor\\s+)|\G(SMARTYldelforeach(?![^\s]))|\G(SMARTYldelsetfilter\\s+)|\G(SMARTYldelmake_nocache\\s+)|\G(SMARTYldel[0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G(SMARTYldel[\/](?:(?!block)[0-9]*[a-zA-Z_]\\w*)\\s*SMARTYrdel)|\G(SMARTYldel[$][0-9]*[a-zA-Z_]\\w*(\\s+nocache)?\\s*SMARTYrdel)|\G(SMARTYldel[\/])|\G(SMARTYldel)/isS"); } if (!isset($this->dataLength)) { $this->dataLength = strlen($this->data); } - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } - + do { - if (preg_match($this->yy_global_pattern2,$this->data, $yymatches, 0, $this->counter)) { - if (!isset($yymatches[ 0 ][1])) { - $yymatches = preg_grep("/(.|\s)+/", $yymatches); + if (preg_match($this->yy_global_pattern2, $this->data, $yymatches, 0, $this->counter)) { + if (!isset($yymatches[0][1])) { + $yymatches = preg_grep("/(.|\s)+/", $yymatches); } else { $yymatches = array_filter($yymatches); } if (empty($yymatches)) { throw new Exception('Error: lexing failed because a rule matched' . - ' an empty string. Input "' . substr($this->data, - $this->counter, 5) . '... state TAG'); + ' an empty string. Input "' . substr($this->data, + $this->counter, + 5) . '... state TAG'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number @@ -514,82 +508,79 @@ class Smarty_Internal_Templatelexer $this->line += substr_count($this->value, "\n"); // accept this token return true; - } elseif ($r === true) { + } else if ($r === true) { // we have changed state // process this token in the new state return $this->yylex(); - } elseif ($r === false) { + } else if ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } // skip this token continue; - } } else { + } + } else { throw new Exception('Unexpected input at line' . $this->line . - ': ' . $this->data[$this->counter]); + ': ' . $this->data[ $this->counter ]); } break; } while (true); + } - } // end function - - - const TAG = 2; function yy_r2_1() { - $this->token = Smarty_Internal_Templateparser::TP_LDELIF; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r2_3() { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOR; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r2_4() { - $this->token = Smarty_Internal_Templateparser::TP_LDELFOREACH; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r2_5() { - $this->token = Smarty_Internal_Templateparser::TP_LDELSETFILTER; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r2_6() { - $this->token = Smarty_Internal_Templateparser::TP_LDELMAKENOCACHE; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r2_7() { - $this->yypopstate(); $this->token = Smarty_Internal_Templateparser::TP_SIMPLETAG; $this->taglineno = $this->line; - } + } + function yy_r2_9() { - $this->yypopstate(); $this->token = Smarty_Internal_Templateparser::TP_CLOSETAG; $this->taglineno = $this->line; - } + } + function yy_r2_10() { - - if ($this->_yy_stack[count($this->_yy_stack)-1] == self::TEXT) { + if ($this->_yy_stack[ count($this->_yy_stack) - 1 ] == self::TEXT) { $this->yypopstate(); $this->token = Smarty_Internal_Templateparser::TP_SIMPELOUTPUT; $this->taglineno = $this->line; @@ -599,46 +590,47 @@ class Smarty_Internal_Templatelexer $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; } - } + } // end function + function yy_r2_12() { - $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r2_13() { - $this->token = Smarty_Internal_Templateparser::TP_LDEL; $this->yybegin(self::TAGBODY); $this->taglineno = $this->line; - } + } - public function yylex3() { if (!isset($this->yy_global_pattern3)) { - $this->yy_global_pattern3 = $this->replace("/\G(\\s*SMARTYrdel)|\G(SMARTYldel)|\G([\"])|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$]smarty\\.block\\.(child|parent))|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*(([!=][=]{1,2})|([<][=>]?)|([>][=]?)|[&|]{2})\\s*)|\G(\\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\\s+)|\G(\\s+(is\\s+(not\\s+)?(odd|even|div)\\s+by)\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G(([!]\\s*)|(not\\s+))|\G([(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\\s*)|\G(\\s*[(]\\s*)|\G(\\s*[)])|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*[-][>]\\s*)|\G(\\s*[=][>]\\s*)|\G(\\s*[=]\\s*)|\G(([+]|[-]){2})|\G(\\s*([+]|[-])\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G([@])|\G([#])|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*[=]\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G([`])|\G([|])|\G([.])|\G(\\s*[,]\\s*)|\G(\\s*[;]\\s*)|\G([:]{2})|\G(\\s*[:]\\s*)|\G(\\s*[?]\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G([\S\s])/isS"); + $this->yy_global_pattern3 = + $this->replace("/\G(\\s*SMARTYrdel)|\G(SMARTYldel)|\G([\"])|\G('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(\\s+is\\s+in\\s+)|\G(\\s+as\\s+)|\G(\\s+to\\s+)|\G(\\s+step\\s+)|\G(\\s+instanceof\\s+)|\G(\\s*(([!=][=]{1,2})|([<][=>]?)|([>][=]?)|[&|]{2})\\s*)|\G(\\s+(eq|ne|neq|gt|ge|gte|lt|le|lte|mod|and|or|xor)\\s+)|\G(\\s+(is\\s+(not\\s+)?(odd|even|div)\\s+by)\\s+)|\G(\\s+is\\s+(not\\s+)?(odd|even))|\G(([!]\\s*)|(not\\s+))|\G([(](int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)[)]\\s*)|\G(\\s*[(]\\s*)|\G(\\s*[)])|\G(\\[\\s*)|\G(\\s*\\])|\G(\\s*[-][>]\\s*)|\G(\\s*[=][>]\\s*)|\G(\\s*[=]\\s*)|\G(([+]|[-]){2})|\G(\\s*([+]|[-])\\s*)|\G(\\s*([*]{1,2}|[%\/^&]|[<>]{2})\\s*)|\G([@])|\G([#])|\G(\\s+[0-9]*[a-zA-Z_][a-zA-Z0-9_\-:]*\\s*[=]\\s*)|\G(([0-9]*[a-zA-Z_]\\w*)?(\\\\[0-9]*[a-zA-Z_]\\w*)+)|\G([0-9]*[a-zA-Z_]\\w*)|\G(\\d+)|\G([`])|\G([|])|\G([.])|\G(\\s*[,]\\s*)|\G(\\s*[;]\\s*)|\G([:]{2})|\G(\\s*[:]\\s*)|\G(\\s*[?]\\s*)|\G(0[xX][0-9a-fA-F]+)|\G(\\s+)|\G([\S\s])/isS"); } if (!isset($this->dataLength)) { $this->dataLength = strlen($this->data); } - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } - + do { - if (preg_match($this->yy_global_pattern3,$this->data, $yymatches, 0, $this->counter)) { - if (!isset($yymatches[ 0 ][1])) { - $yymatches = preg_grep("/(.|\s)+/", $yymatches); + if (preg_match($this->yy_global_pattern3, $this->data, $yymatches, 0, $this->counter)) { + if (!isset($yymatches[0][1])) { + $yymatches = preg_grep("/(.|\s)+/", $yymatches); } else { $yymatches = array_filter($yymatches); } if (empty($yymatches)) { throw new Exception('Error: lexing failed because a rule matched' . - ' an empty string. Input "' . substr($this->data, - $this->counter, 5) . '... state TAGBODY'); + ' an empty string. Input "' . substr($this->data, + $this->counter, + 5) . '... state TAGBODY'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number @@ -649,292 +641,284 @@ class Smarty_Internal_Templatelexer $this->line += substr_count($this->value, "\n"); // accept this token return true; - } elseif ($r === true) { + } else if ($r === true) { // we have changed state // process this token in the new state return $this->yylex(); - } elseif ($r === false) { + } else if ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } // skip this token continue; - } } else { + } + } else { throw new Exception('Unexpected input at line' . $this->line . - ': ' . $this->data[$this->counter]); + ': ' . $this->data[ $this->counter ]); } break; } while (true); + } - } // end function - - - const TAGBODY = 3; function yy_r3_1() { - $this->token = Smarty_Internal_Templateparser::TP_RDEL; $this->yypopstate(); - } + } + function yy_r3_2() { - $this->yypushstate(self::TAG); return true; - } + } + function yy_r3_3() { - $this->token = Smarty_Internal_Templateparser::TP_QUOTE; $this->yypushstate(self::DOUBLEQUOTEDSTRING); - } + } + function yy_r3_4() { - $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING; - } + } + function yy_r3_5() { + $this->token = Smarty_Internal_Templateparser::TP_DOLLARID; + } + + function yy_r3_6() + { + $this->token = Smarty_Internal_Templateparser::TP_DOLLAR; + } - $this->token = Smarty_Internal_Templateparser::TP_SMARTYBLOCKCHILDPARENT; - $this->taglineno = $this->line; - } function yy_r3_7() { + $this->token = Smarty_Internal_Templateparser::TP_ISIN; + } - $this->token = Smarty_Internal_Templateparser::TP_DOLLARID; - } function yy_r3_8() { + $this->token = Smarty_Internal_Templateparser::TP_AS; + } - $this->token = Smarty_Internal_Templateparser::TP_DOLLAR; - } function yy_r3_9() { + $this->token = Smarty_Internal_Templateparser::TP_TO; + } - $this->token = Smarty_Internal_Templateparser::TP_ISIN; - } function yy_r3_10() { + $this->token = Smarty_Internal_Templateparser::TP_STEP; + } - $this->token = Smarty_Internal_Templateparser::TP_AS; - } function yy_r3_11() { + $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; + } - $this->token = Smarty_Internal_Templateparser::TP_TO; - } function yy_r3_12() { - - $this->token = Smarty_Internal_Templateparser::TP_STEP; - } - function yy_r3_13() - { - - $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; - } - function yy_r3_14() - { - $this->token = Smarty_Internal_Templateparser::TP_LOGOP; - } + } + + function yy_r3_17() + { + $this->token = Smarty_Internal_Templateparser::TP_SLOGOP; + } + function yy_r3_19() { - - $this->token = Smarty_Internal_Templateparser::TP_SLOGOP; - } - function yy_r3_21() - { - $this->token = Smarty_Internal_Templateparser::TP_TLOGOP; - } - function yy_r3_25() - { + } + function yy_r3_23() + { $this->token = Smarty_Internal_Templateparser::TP_SINGLECOND; - } - function yy_r3_28() - { + } + function yy_r3_26() + { $this->token = Smarty_Internal_Templateparser::TP_NOT; - } - function yy_r3_31() - { + } + function yy_r3_29() + { $this->token = Smarty_Internal_Templateparser::TP_TYPECAST; - } + } + + function yy_r3_33() + { + $this->token = Smarty_Internal_Templateparser::TP_OPENP; + } + + function yy_r3_34() + { + $this->token = Smarty_Internal_Templateparser::TP_CLOSEP; + } + function yy_r3_35() { + $this->token = Smarty_Internal_Templateparser::TP_OPENB; + } - $this->token = Smarty_Internal_Templateparser::TP_OPENP; - } function yy_r3_36() { + $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; + } - $this->token = Smarty_Internal_Templateparser::TP_CLOSEP; - } function yy_r3_37() { + $this->token = Smarty_Internal_Templateparser::TP_PTR; + } - $this->token = Smarty_Internal_Templateparser::TP_OPENB; - } function yy_r3_38() { + $this->token = Smarty_Internal_Templateparser::TP_APTR; + } - $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; - } function yy_r3_39() { + $this->token = Smarty_Internal_Templateparser::TP_EQUAL; + } - $this->token = Smarty_Internal_Templateparser::TP_PTR; - } function yy_r3_40() { + $this->token = Smarty_Internal_Templateparser::TP_INCDEC; + } - $this->token = Smarty_Internal_Templateparser::TP_APTR; - } - function yy_r3_41() - { - - $this->token = Smarty_Internal_Templateparser::TP_EQUAL; - } function yy_r3_42() { + $this->token = Smarty_Internal_Templateparser::TP_UNIMATH; + } - $this->token = Smarty_Internal_Templateparser::TP_INCDEC; - } function yy_r3_44() { + $this->token = Smarty_Internal_Templateparser::TP_MATH; + } - $this->token = Smarty_Internal_Templateparser::TP_UNIMATH; - } function yy_r3_46() { + $this->token = Smarty_Internal_Templateparser::TP_AT; + } + + function yy_r3_47() + { + $this->token = Smarty_Internal_Templateparser::TP_HATCH; + } - $this->token = Smarty_Internal_Templateparser::TP_MATH; - } function yy_r3_48() { - - $this->token = Smarty_Internal_Templateparser::TP_AT; - } - function yy_r3_49() - { - - $this->token = Smarty_Internal_Templateparser::TP_HATCH; - } - function yy_r3_50() - { - // resolve conflicts with shorttag and right_delimiter starting with '=' - if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->rdel_length) == $this->smarty->right_delimiter) { - preg_match("/\s+/",$this->value,$match); + if (substr($this->data, $this->counter + strlen($this->value) - 1, $this->rdel_length) == + $this->smarty->right_delimiter) { + preg_match("/\s+/", $this->value, $match); $this->value = $match[0]; $this->token = Smarty_Internal_Templateparser::TP_SPACE; } else { $this->token = Smarty_Internal_Templateparser::TP_ATTR; } - } - function yy_r3_51() - { + } + function yy_r3_49() + { $this->token = Smarty_Internal_Templateparser::TP_NAMESPACE; - } + } + + function yy_r3_52() + { + $this->token = Smarty_Internal_Templateparser::TP_ID; + } + + function yy_r3_53() + { + $this->token = Smarty_Internal_Templateparser::TP_INTEGER; + } + function yy_r3_54() { - - $this->token = Smarty_Internal_Templateparser::TP_ID; - } - function yy_r3_55() - { - - $this->token = Smarty_Internal_Templateparser::TP_INTEGER; - } - function yy_r3_56() - { - $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; $this->yypopstate(); - } + } + + function yy_r3_55() + { + $this->token = Smarty_Internal_Templateparser::TP_VERT; + } + + function yy_r3_56() + { + $this->token = Smarty_Internal_Templateparser::TP_DOT; + } + function yy_r3_57() { + $this->token = Smarty_Internal_Templateparser::TP_COMMA; + } - $this->token = Smarty_Internal_Templateparser::TP_VERT; - } function yy_r3_58() { + $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON; + } - $this->token = Smarty_Internal_Templateparser::TP_DOT; - } function yy_r3_59() { + $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON; + } - $this->token = Smarty_Internal_Templateparser::TP_COMMA; - } function yy_r3_60() { + $this->token = Smarty_Internal_Templateparser::TP_COLON; + } - $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON; - } function yy_r3_61() { + $this->token = Smarty_Internal_Templateparser::TP_QMARK; + } - $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON; - } function yy_r3_62() { + $this->token = Smarty_Internal_Templateparser::TP_HEX; + } - $this->token = Smarty_Internal_Templateparser::TP_COLON; - } function yy_r3_63() { + $this->token = Smarty_Internal_Templateparser::TP_SPACE; + } // end function - $this->token = Smarty_Internal_Templateparser::TP_QMARK; - } function yy_r3_64() { - - $this->token = Smarty_Internal_Templateparser::TP_HEX; - } - function yy_r3_65() - { - - $this->token = Smarty_Internal_Templateparser::TP_SPACE; - } - function yy_r3_66() - { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } - - public function yylex4() { if (!isset($this->yy_global_pattern4)) { - $this->yy_global_pattern4 = $this->replace("/\G(SMARTYldelliteral\\s*SMARTYrdel)|\G(SMARTYldel[\/]literal\\s*SMARTYrdel)|\G((.*?)(?=SMARTYldel[\/]?literalSMARTYrdel))|\G(.*)/isS"); + $this->yy_global_pattern4 = + $this->replace("/\G(SMARTYldelliteral\\s*SMARTYrdel)|\G(SMARTYldel[\/]literal\\s*SMARTYrdel)|\G((.*?)(?=SMARTYldel[\/]?literalSMARTYrdel))|\G(.*)/isS"); } if (!isset($this->dataLength)) { $this->dataLength = strlen($this->data); } - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } - + do { - if (preg_match($this->yy_global_pattern4,$this->data, $yymatches, 0, $this->counter)) { - if (!isset($yymatches[ 0 ][1])) { - $yymatches = preg_grep("/(.|\s)+/", $yymatches); + if (preg_match($this->yy_global_pattern4, $this->data, $yymatches, 0, $this->counter)) { + if (!isset($yymatches[0][1])) { + $yymatches = preg_grep("/(.|\s)+/", $yymatches); } else { $yymatches = array_filter($yymatches); } if (empty($yymatches)) { throw new Exception('Error: lexing failed because a rule matched' . - ' an empty string. Input "' . substr($this->data, - $this->counter, 5) . '... state LITERAL'); + ' an empty string. Input "' . substr($this->data, + $this->counter, + 5) . '... state LITERAL'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number @@ -945,81 +929,79 @@ class Smarty_Internal_Templatelexer $this->line += substr_count($this->value, "\n"); // accept this token return true; - } elseif ($r === true) { + } else if ($r === true) { // we have changed state // process this token in the new state return $this->yylex(); - } elseif ($r === false) { + } else if ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } // skip this token continue; - } } else { + } + } else { throw new Exception('Unexpected input at line' . $this->line . - ': ' . $this->data[$this->counter]); + ': ' . $this->data[ $this->counter ]); } break; } while (true); + } - } // end function - - - const LITERAL = 4; function yy_r4_1() { - $this->literal_cnt++; $this->token = Smarty_Internal_Templateparser::TP_LITERAL; - } + } + function yy_r4_2() { - if ($this->literal_cnt) { - $this->literal_cnt--; + $this->literal_cnt--; $this->token = Smarty_Internal_Templateparser::TP_LITERAL; } else { $this->token = Smarty_Internal_Templateparser::TP_LITERALEND; $this->yypopstate(); } - } + } + function yy_r4_3() { - $this->token = Smarty_Internal_Templateparser::TP_LITERAL; - } + } + function yy_r4_5() { - $this->token = Smarty_Internal_Templateparser::TP_LITERAL; - } + } // end function - public function yylex5() { if (!isset($this->yy_global_pattern5)) { - $this->yy_global_pattern5 = $this->replace("/\G(SMARTYliteral)|\G(SMARTYldelliteral\\s*SMARTYrdel)|\G(SMARTYldel[\/]literal\\s*SMARTYrdel)|\G(SMARTYldel[\/])|\G(SMARTYldel[0-9]*[a-zA-Z_]\\w*)|\G(SMARTYldel)|\G([\"])|\G([`][$])|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(SMARTYliteral|SMARTYldel|\\$|`\\$|\")))/isS"); + $this->yy_global_pattern5 = + $this->replace("/\G(SMARTYliteral)|\G(SMARTYldelliteral\\s*SMARTYrdel)|\G(SMARTYldel[\/]literal\\s*SMARTYrdel)|\G(SMARTYldel[\/])|\G(SMARTYldel[0-9]*[a-zA-Z_]\\w*)|\G(SMARTYldel)|\G([\"])|\G([`][$])|\G([$][0-9]*[a-zA-Z_]\\w*)|\G([$])|\G(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(SMARTYliteral|SMARTYldel|\\$|`\\$|\")))/isS"); } if (!isset($this->dataLength)) { $this->dataLength = strlen($this->data); } - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } - + do { - if (preg_match($this->yy_global_pattern5,$this->data, $yymatches, 0, $this->counter)) { - if (!isset($yymatches[ 0 ][1])) { - $yymatches = preg_grep("/(.|\s)+/", $yymatches); + if (preg_match($this->yy_global_pattern5, $this->data, $yymatches, 0, $this->counter)) { + if (!isset($yymatches[0][1])) { + $yymatches = preg_grep("/(.|\s)+/", $yymatches); } else { $yymatches = array_filter($yymatches); } if (empty($yymatches)) { throw new Exception('Error: lexing failed because a rule matched' . - ' an empty string. Input "' . substr($this->data, - $this->counter, 5) . '... state DOUBLEQUOTEDSTRING'); + ' an empty string. Input "' . substr($this->data, + $this->counter, + 5) . '... state DOUBLEQUOTEDSTRING'); } next($yymatches); // skip global match $this->token = key($yymatches); // token number @@ -1030,93 +1012,90 @@ class Smarty_Internal_Templatelexer $this->line += substr_count($this->value, "\n"); // accept this token return true; - } elseif ($r === true) { + } else if ($r === true) { // we have changed state // process this token in the new state return $this->yylex(); - } elseif ($r === false) { + } else if ($r === false) { $this->counter += strlen($this->value); $this->line += substr_count($this->value, "\n"); - if ($this->counter >= $this->dataLength) { + if ($this->counter >= $this->dataLength) { return false; // end of input } // skip this token continue; - } } else { + } + } else { throw new Exception('Unexpected input at line' . $this->line . - ': ' . $this->data[$this->counter]); + ': ' . $this->data[ $this->counter ]); } break; } while (true); + } - } // end function - - - const DOUBLEQUOTEDSTRING = 5; function yy_r5_1() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } + function yy_r5_2() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } + function yy_r5_3() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } + function yy_r5_4() { - $this->yypushstate(self::TAG); return true; - } + } + function yy_r5_5() { - $this->yypushstate(self::TAG); return true; - } + } + function yy_r5_6() { - $this->token = Smarty_Internal_Templateparser::TP_LDEL; $this->taglineno = $this->line; $this->yypushstate(self::TAGBODY); - } + } + function yy_r5_7() { - $this->token = Smarty_Internal_Templateparser::TP_QUOTE; $this->yypopstate(); - } + } + function yy_r5_8() { - $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; - $this->value = substr($this->value,0,-1); + $this->value = substr($this->value, 0, -1); $this->yypushstate(self::TAGBODY); $this->taglineno = $this->line; - } + } + function yy_r5_9() { - $this->token = Smarty_Internal_Templateparser::TP_DOLLARID; - } + } + function yy_r5_10() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } + function yy_r5_11() { - $this->token = Smarty_Internal_Templateparser::TP_TEXT; - } + } - } +} \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_templateparser.php b/libs/sysplugins/smarty_internal_templateparser.php index 45aa3e97..f8ae717c 100644 --- a/libs/sysplugins/smarty_internal_templateparser.php +++ b/libs/sysplugins/smarty_internal_templateparser.php @@ -90,799 +90,779 @@ class Smarty_Internal_Templateparser { #line 23 "../smarty/lexer/smarty_internal_templateparser.y" - const Err1 = 'Security error: Call to private object member not allowed'; - const Err2 = 'Security error: Call to dynamic object member not allowed'; - const Err3 = 'PHP in template not allowed. Use SmartyBC to enable it'; - const TP_VERT = 1; - const TP_COLON = 2; - const TP_UNIMATH = 3; - const TP_PHP = 4; - const TP_TEXT = 5; - const TP_STRIPON = 6; - const TP_STRIPOFF = 7; - const TP_LITERALSTART = 8; - const TP_LITERALEND = 9; - const TP_LITERAL = 10; - const TP_RDEL = 11; - const TP_SIMPELOUTPUT = 12; - const TP_LDEL = 13; - const TP_DOLLARID = 14; - const TP_EQUAL = 15; - const TP_SIMPLETAG = 16; - const TP_ID = 17; - const TP_PTR = 18; - const TP_LDELMAKENOCACHE = 19; - const TP_LDELIF = 20; - const TP_LDELFOR = 21; - const TP_SEMICOLON = 22; - const TP_INCDEC = 23; - const TP_TO = 24; - const TP_STEP = 25; - const TP_LDELFOREACH = 26; - const TP_SPACE = 27; - const TP_AS = 28; - const TP_APTR = 29; - const TP_LDELSETFILTER = 30; - const TP_SMARTYBLOCKCHILDPARENT = 31; - const TP_CLOSETAG = 32; - const TP_LDELSLASH = 33; - const TP_ATTR = 34; - const TP_INTEGER = 35; - const TP_COMMA = 36; - const TP_OPENP = 37; - const TP_CLOSEP = 38; - const TP_MATH = 39; - const TP_ISIN = 40; - const TP_QMARK = 41; - const TP_NOT = 42; - const TP_TYPECAST = 43; - const TP_HEX = 44; - const TP_DOT = 45; - const TP_INSTANCEOF = 46; - const TP_SINGLEQUOTESTRING = 47; - const TP_DOUBLECOLON = 48; - const TP_NAMESPACE = 49; - const TP_AT = 50; - const TP_HATCH = 51; - const TP_OPENB = 52; - const TP_CLOSEB = 53; - const TP_DOLLAR = 54; - const TP_LOGOP = 55; - const TP_SLOGOP = 56; - const TP_TLOGOP = 57; - const TP_SINGLECOND = 58; - const TP_QUOTE = 59; - const TP_BACKTICK = 60; - const YY_NO_ACTION = 523; - const YY_ACCEPT_ACTION = 522; - const YY_ERROR_ACTION = 521; - const YY_SZ_ACTTAB = 2143; - const YY_SHIFT_USE_DFLT = -23; - const YY_SHIFT_MAX = 231; - const YY_REDUCE_USE_DFLT = -94; - const YY_REDUCE_MAX = 185; - const YYNOCODE = 107; - const YYSTACKDEPTH = 500; - const YYNSTATE = 328; - const YYNRULE = 193; - const YYERRORSYMBOL = 61; - const YYERRSYMDT = 'yy0'; - const YYFALLBACK = 0; + const Err1 = 'Security error: Call to private object member not allowed'; + const Err2 = 'Security error: Call to dynamic object member not allowed'; + const Err3 = 'PHP in template not allowed. Use SmartyBC to enable it'; + const TP_VERT = 1; + const TP_COLON = 2; + const TP_UNIMATH = 3; + const TP_PHP = 4; + const TP_TEXT = 5; + const TP_STRIPON = 6; + const TP_STRIPOFF = 7; + const TP_LITERALSTART = 8; + const TP_LITERALEND = 9; + const TP_LITERAL = 10; + const TP_RDEL = 11; + const TP_SIMPELOUTPUT = 12; + const TP_LDEL = 13; + const TP_DOLLARID = 14; + const TP_EQUAL = 15; + const TP_SIMPLETAG = 16; + const TP_ID = 17; + const TP_PTR = 18; + const TP_LDELMAKENOCACHE = 19; + const TP_LDELIF = 20; + const TP_LDELFOR = 21; + const TP_SEMICOLON = 22; + const TP_INCDEC = 23; + const TP_TO = 24; + const TP_STEP = 25; + const TP_LDELFOREACH = 26; + const TP_SPACE = 27; + const TP_AS = 28; + const TP_APTR = 29; + const TP_LDELSETFILTER = 30; + const TP_CLOSETAG = 31; + const TP_LDELSLASH = 32; + const TP_ATTR = 33; + const TP_INTEGER = 34; + const TP_COMMA = 35; + const TP_OPENP = 36; + const TP_CLOSEP = 37; + const TP_MATH = 38; + const TP_ISIN = 39; + const TP_QMARK = 40; + const TP_NOT = 41; + const TP_TYPECAST = 42; + const TP_HEX = 43; + const TP_DOT = 44; + const TP_INSTANCEOF = 45; + const TP_SINGLEQUOTESTRING = 46; + const TP_DOUBLECOLON = 47; + const TP_NAMESPACE = 48; + const TP_AT = 49; + const TP_HATCH = 50; + const TP_OPENB = 51; + const TP_CLOSEB = 52; + const TP_DOLLAR = 53; + const TP_LOGOP = 54; + const TP_SLOGOP = 55; + const TP_TLOGOP = 56; + const TP_SINGLECOND = 57; + const TP_QUOTE = 58; + const TP_BACKTICK = 59; + const YY_NO_ACTION = 521; + const YY_ACCEPT_ACTION = 520; + const YY_ERROR_ACTION = 519; + const YY_SZ_ACTTAB = 2057; + const YY_SHIFT_USE_DFLT = -30; + const YY_SHIFT_MAX = 231; + const YY_REDUCE_USE_DFLT = -68; + const YY_REDUCE_MAX = 185; + const YYNOCODE = 106; + const YYSTACKDEPTH = 500; + const YYNSTATE = 327; + const YYNRULE = 192; + const YYERRORSYMBOL = 60; + const YYERRSYMDT = 'yy0'; + const YYFALLBACK = 0; static public $yy_action = array( - 41, 312, 214, 290, 228, 197, 13, 102, 262, 265, - 9, 129, 151, 268, 80, 312, 209, 4, 84, 12, - 260, 25, 263, 114, 78, 259, 15, 213, 273, 261, - 211, 311, 207, 200, 34, 258, 450, 17, 78, 42, - 39, 324, 210, 450, 280, 241, 198, 275, 82, 1, - 41, 291, 225, 195, 92, 119, 79, 107, 212, 265, - 9, 130, 99, 268, 190, 142, 209, 4, 84, 178, - 315, 196, 282, 114, 287, 263, 214, 213, 216, 261, - 211, 102, 201, 181, 34, 103, 179, 245, 255, 42, - 39, 324, 210, 182, 223, 30, 198, 234, 82, 1, - 257, 291, 41, 304, 35, 224, 79, 33, 168, 19, - 96, 265, 9, 132, 348, 268, 204, 437, 209, 4, - 84, 250, 252, 253, 217, 114, 312, 225, 437, 213, - 12, 261, 211, 200, 207, 43, 34, 15, 5, 208, - 111, 42, 39, 324, 210, 291, 280, 310, 198, 78, - 82, 1, 41, 291, 260, 25, 24, 189, 79, 259, - 313, 265, 9, 132, 239, 268, 188, 200, 209, 4, - 84, 40, 38, 200, 22, 114, 37, 96, 314, 213, - 244, 261, 211, 350, 203, 295, 34, 294, 296, 297, - 298, 42, 39, 324, 210, 29, 280, 291, 198, 12, - 82, 1, 41, 291, 291, 306, 15, 111, 79, 121, - 21, 265, 9, 133, 99, 268, 204, 162, 209, 4, - 84, 89, 100, 271, 88, 114, 287, 263, 161, 213, - 149, 261, 211, 200, 207, 43, 20, 312, 263, 163, - 12, 42, 39, 324, 210, 182, 280, 15, 198, 263, - 82, 1, 41, 291, 112, 231, 181, 93, 79, 121, - 78, 265, 9, 132, 99, 268, 186, 181, 209, 4, - 84, 40, 38, 200, 299, 114, 287, 133, 6, 213, - 206, 261, 211, 200, 207, 43, 34, 294, 296, 297, - 298, 42, 39, 324, 210, 320, 280, 165, 198, 12, - 82, 1, 41, 291, 466, 466, 15, 263, 79, 466, - 158, 265, 9, 131, 82, 268, 204, 291, 209, 4, - 84, 40, 38, 178, 303, 114, 169, 285, 96, 213, - 174, 261, 211, 200, 207, 43, 34, 294, 296, 297, - 298, 42, 39, 324, 210, 233, 280, 182, 198, 450, - 82, 1, 41, 291, 182, 262, 450, 159, 79, 466, - 466, 265, 9, 128, 466, 268, 204, 263, 209, 4, - 84, 40, 38, 200, 30, 114, 240, 11, 226, 213, - 258, 261, 211, 393, 207, 43, 7, 294, 296, 297, - 298, 42, 39, 324, 210, 176, 280, 466, 198, 393, - 82, 1, 41, 291, 173, 137, 393, 208, 79, 260, - 25, 265, 9, 132, 259, 268, 193, 289, 209, 4, - 84, 40, 38, 200, 438, 114, 180, 285, 91, 213, - 96, 261, 211, 390, 207, 438, 34, 294, 296, 297, - 298, 42, 39, 324, 210, 291, 280, 218, 198, 390, - 82, 1, 41, 291, 14, 266, 390, 134, 79, 200, - 37, 265, 9, 132, 10, 268, 204, 164, 209, 4, - 84, 90, 437, 148, 30, 114, 307, 263, 3, 213, - 220, 261, 211, 437, 187, 214, 34, 264, 308, 124, - 102, 42, 39, 324, 210, 182, 280, 18, 198, 134, - 82, 1, 41, 291, 15, 319, 10, 277, 79, 172, - 225, 265, 9, 133, 117, 268, 204, 327, 209, 4, - 84, 466, 466, 200, 2, 114, 466, 450, 175, 213, - 309, 261, 211, 182, 207, 109, 20, 44, 23, 272, - 222, 42, 39, 324, 210, 283, 280, 156, 198, 221, - 82, 437, 182, 291, 450, 260, 25, 450, 79, 466, - 259, 450, 437, 254, 248, 243, 242, 179, 319, 136, - 12, 265, 9, 225, 279, 268, 96, 15, 209, 4, - 84, 117, 147, 177, 141, 114, 230, 102, 175, 213, - 133, 261, 211, 302, 263, 275, 36, 44, 23, 272, - 225, 195, 238, 110, 66, 107, 111, 85, 317, 291, - 99, 144, 182, 323, 293, 270, 200, 170, 315, 196, - 282, 263, 287, 312, 3, 301, 354, 82, 246, 275, - 291, 247, 202, 326, 225, 195, 83, 118, 74, 107, - 138, 182, 258, 27, 99, 146, 78, 323, 293, 175, - 171, 285, 315, 196, 282, 263, 287, 288, 44, 23, - 272, 275, 316, 194, 108, 140, 225, 195, 269, 118, - 74, 107, 167, 182, 258, 263, 99, 154, 325, 323, - 293, 200, 318, 208, 315, 196, 282, 263, 287, 265, - 8, 300, 305, 268, 249, 199, 209, 4, 84, 183, - 256, 322, 22, 114, 152, 267, 153, 213, 303, 261, - 211, 522, 52, 251, 252, 253, 217, 157, 106, 225, - 275, 87, 135, 258, 160, 225, 195, 155, 110, 66, - 107, 86, 301, 276, 301, 99, 278, 16, 323, 293, - 301, 301, 301, 315, 196, 282, 275, 287, 301, 301, - 301, 225, 195, 301, 118, 74, 107, 301, 321, 301, - 301, 99, 301, 301, 323, 293, 301, 301, 301, 315, - 196, 282, 301, 287, 301, 301, 275, 301, 301, 301, - 205, 225, 195, 301, 118, 56, 101, 301, 216, 301, - 301, 99, 301, 301, 323, 293, 301, 318, 301, 315, - 196, 282, 301, 287, 265, 8, 300, 301, 268, 301, - 301, 209, 4, 84, 301, 301, 301, 301, 114, 301, - 301, 275, 213, 301, 261, 211, 225, 195, 301, 118, - 47, 101, 301, 113, 301, 301, 99, 301, 301, 323, - 293, 301, 301, 301, 315, 196, 282, 301, 287, 301, - 275, 284, 16, 301, 301, 225, 195, 301, 118, 45, - 107, 301, 301, 301, 301, 99, 301, 301, 323, 293, - 301, 301, 301, 315, 196, 282, 301, 287, 275, 301, - 301, 301, 301, 225, 195, 301, 118, 76, 107, 301, - 301, 301, 301, 99, 145, 301, 323, 293, 175, 301, - 301, 315, 196, 282, 263, 287, 275, 44, 23, 272, - 301, 225, 195, 301, 105, 51, 107, 301, 301, 301, - 301, 99, 182, 301, 323, 293, 301, 301, 301, 315, - 196, 282, 301, 287, 275, 301, 301, 301, 301, 225, - 195, 301, 118, 56, 107, 301, 301, 301, 301, 99, - 139, 301, 323, 293, 175, 301, 301, 315, 196, 282, - 263, 287, 275, 44, 23, 272, 301, 225, 195, 301, - 118, 50, 107, 301, 301, 301, 301, 99, 182, 301, - 323, 293, 301, 301, 301, 315, 196, 282, 301, 287, - 275, 301, 301, 301, 301, 225, 195, 301, 118, 61, - 107, 301, 301, 301, 301, 99, 143, 301, 323, 293, - 175, 301, 301, 315, 196, 282, 263, 287, 275, 44, - 23, 272, 301, 225, 195, 301, 118, 63, 107, 301, - 301, 301, 301, 99, 182, 301, 323, 293, 301, 301, - 301, 315, 196, 282, 301, 287, 275, 301, 301, 301, - 301, 225, 195, 301, 118, 60, 107, 301, 301, 301, - 301, 99, 166, 301, 323, 293, 175, 301, 301, 315, - 196, 282, 263, 287, 275, 44, 23, 272, 301, 225, - 195, 301, 97, 69, 107, 301, 301, 301, 301, 99, - 182, 301, 323, 293, 301, 301, 301, 315, 196, 282, - 301, 287, 275, 301, 301, 301, 301, 225, 191, 301, - 118, 54, 107, 301, 301, 301, 301, 99, 301, 301, - 323, 293, 301, 301, 301, 315, 196, 282, 301, 287, - 275, 301, 301, 301, 301, 225, 195, 301, 118, 73, - 107, 301, 301, 301, 301, 99, 301, 301, 323, 293, - 301, 301, 301, 315, 196, 282, 301, 287, 275, 301, - 301, 301, 301, 225, 195, 301, 118, 71, 107, 301, - 301, 301, 301, 99, 301, 301, 323, 293, 301, 301, - 301, 315, 196, 282, 301, 287, 275, 301, 301, 301, - 301, 225, 195, 301, 98, 65, 107, 301, 301, 301, - 301, 99, 301, 301, 323, 293, 301, 301, 301, 315, - 196, 282, 301, 287, 275, 301, 301, 301, 301, 225, - 94, 301, 81, 46, 104, 301, 301, 301, 301, 99, - 301, 301, 323, 293, 301, 301, 301, 315, 196, 282, - 301, 287, 275, 301, 301, 301, 301, 225, 95, 301, - 81, 49, 104, 301, 301, 301, 301, 99, 301, 301, - 323, 293, 301, 301, 301, 315, 196, 282, 301, 287, - 275, 301, 301, 301, 301, 225, 192, 301, 115, 57, - 107, 301, 301, 301, 301, 99, 301, 301, 323, 293, - 301, 301, 301, 315, 196, 282, 301, 287, 275, 301, - 301, 301, 301, 225, 195, 301, 118, 70, 107, 301, - 301, 301, 301, 99, 301, 301, 323, 293, 301, 301, - 301, 315, 196, 282, 301, 287, 275, 301, 301, 301, - 301, 225, 195, 301, 98, 62, 107, 301, 301, 301, - 301, 99, 301, 301, 323, 293, 301, 301, 301, 315, - 196, 282, 301, 287, 275, 301, 301, 301, 301, 225, - 195, 301, 118, 68, 107, 301, 301, 301, 301, 99, - 301, 301, 323, 293, 301, 301, 301, 315, 196, 282, - 301, 287, 275, 301, 301, 301, 301, 225, 195, 301, - 118, 48, 107, 301, 301, 301, 301, 99, 301, 301, - 323, 293, 301, 301, 301, 315, 196, 282, 301, 287, - 275, 301, 301, 301, 301, 225, 195, 301, 118, 59, - 107, 301, 301, 301, 301, 99, 301, 301, 323, 293, - 301, 301, 301, 315, 196, 282, 301, 287, 275, 301, - 301, 301, 301, 225, 195, 301, 118, 77, 107, 301, - 301, 301, 301, 99, 301, 301, 323, 293, 301, 301, - 301, 315, 196, 282, 301, 287, 275, 301, 301, 301, - 301, 225, 195, 301, 118, 72, 107, 301, 301, 301, - 301, 99, 301, 301, 323, 293, 301, 301, 301, 315, - 196, 282, 301, 287, 275, 301, 301, 301, 301, 225, - 195, 301, 118, 67, 107, 301, 301, 301, 301, 99, - 301, 301, 323, 293, 301, 301, 301, 315, 196, 282, - 301, 287, 275, 301, 301, 301, 301, 225, 195, 301, - 118, 53, 107, 301, 301, 301, 301, 99, 301, 301, - 323, 293, 301, 301, 301, 315, 196, 282, 301, 287, - 275, 301, 301, 301, 301, 225, 195, 301, 118, 64, - 107, 301, 301, 301, 301, 99, 301, 301, 323, 293, - 301, 301, 301, 315, 196, 282, 301, 287, 275, 301, - 301, 301, 301, 225, 195, 301, 118, 55, 107, 301, - 301, 301, 301, 99, 301, 301, 323, 293, 301, 301, - 301, 315, 196, 282, 301, 287, 275, 301, 301, 301, - 301, 225, 195, 301, 118, 58, 107, 301, 301, 301, - 301, 99, 301, 301, 323, 293, 301, 301, 301, 315, - 196, 282, 301, 287, 275, 301, 200, 301, 43, 225, - 195, 301, 118, 75, 107, 200, 301, 43, 301, 99, - 301, 301, 323, 293, 301, 292, 301, 315, 196, 282, - 26, 287, 12, 301, 301, 301, 301, 301, 301, 15, - 301, 12, 260, 25, 40, 38, 301, 259, 15, 301, - 403, 403, 403, 40, 38, 301, 301, 12, 301, 150, - 294, 296, 297, 298, 15, 301, 301, 301, 301, 294, - 296, 297, 298, 301, 301, 275, 301, 301, 301, 301, - 225, 195, 301, 127, 301, 107, 437, 301, 403, 403, - 99, 301, 301, 301, 235, 301, 301, 437, 315, 196, - 282, 301, 287, 301, 403, 403, 403, 403, 301, 301, - 275, 301, 200, 301, 43, 225, 195, 301, 120, 301, - 107, 301, 301, 301, 301, 99, 301, 301, 301, 274, - 301, 301, 215, 315, 196, 282, 301, 287, 12, 301, - 301, 301, 466, 466, 301, 15, 301, 466, 450, 275, - 40, 38, 301, 301, 225, 195, 301, 125, 301, 107, - 301, 301, 301, 301, 99, 301, 294, 296, 297, 298, - 301, 301, 315, 196, 282, 450, 287, 301, 450, 301, - 466, 275, 450, 286, 215, 301, 225, 195, 301, 123, - 301, 107, 301, 301, 466, 466, 99, 32, 301, 466, - 450, 301, 301, 301, 315, 196, 282, 301, 287, 301, - 301, 301, 301, 275, 301, 301, 301, 301, 225, 195, - 301, 126, 301, 107, 301, 301, 301, 450, 99, 301, - 450, 301, 466, 301, 450, 301, 315, 196, 282, 275, - 287, 301, 301, 301, 225, 195, 301, 122, 301, 107, - 275, 200, 301, 43, 99, 225, 195, 301, 116, 301, - 107, 301, 315, 196, 282, 99, 287, 301, 215, 301, - 301, 301, 301, 315, 196, 282, 215, 287, 466, 466, - 301, 13, 301, 466, 450, 301, 466, 466, 232, 40, - 38, 466, 450, 200, 31, 43, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 294, 296, 297, 298, 301, - 301, 450, 301, 200, 450, 43, 466, 301, 450, 450, - 301, 301, 450, 185, 466, 200, 450, 43, 301, 301, - 301, 40, 38, 200, 301, 43, 301, 301, 301, 301, - 301, 301, 301, 184, 301, 301, 301, 294, 296, 297, - 298, 40, 38, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 219, 40, 38, 301, 301, 294, 296, 297, - 298, 40, 38, 301, 301, 301, 301, 301, 301, 294, - 296, 297, 298, 28, 301, 301, 301, 294, 296, 297, - 298, 301, 301, 466, 466, 301, 301, 301, 466, 450, - 200, 200, 43, 301, 200, 301, 43, 301, 301, 301, - 237, 360, 301, 301, 236, 301, 301, 301, 229, 301, - 301, 301, 301, 301, 301, 301, 450, 12, 200, 450, - 43, 466, 301, 450, 15, 301, 301, 437, 40, 38, - 301, 301, 40, 38, 301, 301, 301, 301, 437, 391, - 301, 301, 301, 227, 294, 296, 297, 298, 294, 296, - 297, 298, 301, 301, 301, 391, 40, 38, 301, 301, - 301, 301, 391, 301, 301, 437, 301, 301, 397, 301, - 301, 301, 294, 296, 297, 298, 437, 281, 301, 397, - 301, 397, 301, 301, 397, 301, 301, 301, 301, 301, - 301, 397, 301, 397, 301, 397, 301, 301, 301, 301, - 301, 301, 208, + 41, 464, 464, 306, 18, 189, 464, 122, 300, 258, + 36, 130, 99, 260, 190, 134, 213, 7, 83, 15, + 295, 269, 8, 110, 293, 312, 435, 214, 256, 212, + 38, 198, 305, 33, 136, 305, 25, 435, 40, 39, + 316, 208, 11, 215, 296, 205, 25, 81, 1, 270, + 296, 41, 11, 232, 78, 79, 89, 78, 464, 464, + 258, 36, 132, 464, 260, 197, 219, 213, 7, 83, + 122, 284, 267, 296, 110, 99, 204, 436, 214, 256, + 212, 347, 216, 305, 33, 210, 391, 293, 436, 40, + 39, 316, 208, 305, 323, 464, 205, 25, 81, 1, + 41, 296, 391, 11, 97, 78, 79, 16, 391, 258, + 36, 131, 304, 260, 197, 78, 213, 7, 83, 290, + 244, 245, 230, 110, 27, 227, 237, 214, 256, 212, + 2, 216, 22, 33, 133, 157, 166, 207, 40, 39, + 316, 208, 204, 323, 448, 205, 263, 81, 1, 41, + 296, 448, 388, 20, 225, 79, 251, 162, 258, 36, + 132, 206, 260, 186, 182, 213, 7, 83, 388, 97, + 81, 182, 110, 296, 388, 145, 214, 256, 212, 91, + 216, 217, 33, 223, 200, 263, 102, 40, 39, 316, + 208, 204, 323, 296, 205, 134, 81, 1, 41, 296, + 13, 349, 8, 181, 79, 268, 17, 258, 36, 129, + 265, 260, 80, 90, 213, 7, 83, 25, 204, 34, + 204, 110, 97, 11, 435, 214, 256, 212, 313, 216, + 353, 33, 226, 227, 204, 435, 40, 39, 316, 208, + 302, 323, 231, 205, 25, 81, 1, 41, 296, 24, + 11, 107, 97, 79, 268, 17, 258, 36, 132, 265, + 260, 188, 14, 213, 7, 83, 294, 85, 324, 309, + 110, 177, 271, 168, 214, 256, 212, 88, 203, 234, + 33, 107, 27, 263, 241, 40, 39, 316, 208, 141, + 323, 211, 205, 179, 81, 1, 41, 296, 147, 263, + 204, 181, 79, 23, 9, 258, 36, 132, 263, 260, + 192, 266, 213, 7, 83, 268, 17, 181, 296, 110, + 265, 264, 154, 214, 256, 212, 313, 216, 101, 33, + 3, 227, 263, 448, 40, 39, 316, 208, 305, 323, + 448, 205, 150, 81, 1, 41, 296, 321, 158, 206, + 182, 79, 263, 435, 258, 36, 128, 303, 260, 197, + 78, 213, 7, 83, 435, 264, 274, 27, 110, 233, + 5, 93, 214, 256, 212, 242, 216, 169, 4, 137, + 97, 109, 179, 40, 39, 316, 208, 204, 323, 144, + 205, 264, 81, 1, 41, 296, 204, 178, 252, 243, + 79, 181, 267, 258, 36, 133, 181, 260, 197, 107, + 213, 7, 83, 222, 217, 160, 262, 110, 296, 102, + 102, 214, 256, 212, 171, 216, 217, 12, 220, 280, + 159, 102, 40, 39, 316, 208, 116, 323, 281, 205, + 263, 81, 1, 41, 296, 173, 271, 176, 138, 79, + 175, 271, 258, 36, 132, 164, 260, 197, 263, 213, + 7, 83, 19, 172, 254, 263, 110, 253, 11, 167, + 214, 256, 212, 273, 187, 174, 33, 24, 228, 263, + 116, 40, 39, 316, 208, 235, 323, 181, 205, 103, + 81, 1, 41, 296, 204, 38, 153, 163, 79, 264, + 206, 258, 36, 133, 170, 260, 197, 310, 213, 7, + 83, 464, 464, 257, 184, 110, 464, 448, 299, 214, + 256, 212, 261, 216, 84, 12, 106, 311, 181, 121, + 40, 39, 316, 208, 292, 323, 315, 205, 35, 81, + 320, 156, 296, 448, 268, 17, 448, 79, 464, 265, + 448, 6, 246, 248, 249, 250, 178, 301, 317, 25, + 258, 36, 180, 224, 260, 11, 255, 213, 7, 83, + 2, 42, 32, 277, 110, 31, 247, 309, 214, 256, + 212, 401, 401, 401, 279, 259, 181, 92, 152, 227, + 194, 299, 105, 67, 108, 148, 264, 86, 299, 99, + 87, 135, 314, 289, 113, 155, 299, 322, 195, 272, + 299, 293, 299, 299, 299, 161, 435, 325, 401, 401, + 299, 196, 318, 299, 258, 28, 298, 435, 260, 299, + 299, 213, 7, 83, 401, 401, 401, 401, 110, 299, + 299, 299, 214, 256, 212, 268, 17, 299, 299, 279, + 265, 299, 299, 299, 227, 194, 299, 120, 70, 108, + 25, 204, 149, 44, 99, 142, 11, 314, 289, 180, + 276, 10, 322, 195, 272, 263, 293, 299, 42, 32, + 277, 299, 279, 202, 299, 299, 299, 227, 194, 299, + 105, 67, 108, 181, 299, 299, 299, 99, 43, 37, + 314, 289, 299, 299, 299, 322, 195, 272, 299, 293, + 299, 299, 283, 299, 285, 286, 287, 288, 299, 279, + 319, 299, 299, 299, 227, 194, 299, 120, 58, 100, + 299, 220, 299, 299, 99, 140, 299, 314, 289, 180, + 299, 299, 322, 195, 272, 263, 293, 279, 42, 32, + 277, 299, 227, 194, 299, 120, 70, 108, 299, 299, + 299, 299, 99, 181, 299, 314, 289, 299, 325, 299, + 322, 195, 272, 299, 293, 258, 28, 298, 299, 260, + 299, 199, 213, 7, 83, 299, 299, 389, 299, 110, + 299, 218, 279, 214, 256, 212, 299, 227, 194, 299, + 120, 70, 108, 389, 299, 299, 299, 99, 299, 389, + 314, 289, 435, 299, 299, 322, 195, 272, 299, 293, + 299, 275, 10, 435, 204, 299, 201, 299, 299, 299, + 279, 299, 299, 299, 359, 227, 194, 299, 120, 47, + 100, 221, 112, 299, 299, 99, 299, 299, 314, 289, + 25, 299, 299, 322, 195, 272, 11, 293, 279, 435, + 299, 299, 299, 227, 194, 299, 120, 68, 108, 299, + 435, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 204, 299, 44, 227, + 191, 299, 120, 61, 108, 299, 240, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 120, 48, + 108, 299, 299, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 194, 299, 120, 75, 108, 299, + 299, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 299, 299, 299, 227, + 194, 299, 120, 45, 108, 299, 299, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 193, 299, 114, 62, + 108, 299, 204, 299, 44, 99, 143, 299, 314, 289, + 180, 299, 299, 322, 195, 272, 263, 293, 279, 42, + 32, 277, 299, 227, 94, 299, 82, 51, 104, 299, + 299, 299, 299, 99, 181, 299, 314, 289, 299, 43, + 37, 322, 195, 272, 279, 293, 299, 299, 299, 227, + 194, 299, 120, 65, 108, 285, 286, 287, 288, 99, + 297, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 120, 58, + 108, 299, 204, 299, 44, 99, 165, 299, 314, 289, + 180, 299, 185, 322, 195, 272, 263, 293, 279, 42, + 32, 277, 299, 227, 194, 299, 96, 64, 108, 299, + 299, 299, 299, 99, 181, 299, 314, 289, 299, 43, + 37, 322, 195, 272, 279, 293, 204, 299, 44, 227, + 194, 299, 120, 71, 108, 285, 286, 287, 288, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 120, 73, + 108, 299, 239, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 194, 299, 120, 63, 108, 299, + 299, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 204, 21, 44, 227, + 194, 299, 120, 74, 108, 299, 299, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 98, 55, + 108, 299, 299, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 194, 299, 98, 72, 108, 299, + 299, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 204, 299, 44, 227, + 194, 299, 120, 57, 108, 299, 299, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 120, 50, + 108, 299, 229, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 194, 299, 120, 60, 108, 299, + 299, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 204, 299, 44, 227, + 194, 299, 120, 54, 108, 299, 183, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 120, 56, + 108, 299, 299, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 95, 299, 82, 46, 104, 299, + 299, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 204, 299, 44, 227, + 194, 299, 120, 66, 108, 299, 299, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 151, 299, 227, 194, 299, 115, 49, + 108, 299, 299, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 194, 299, 120, 69, 108, 299, + 299, 299, 299, 99, 299, 299, 314, 289, 299, 299, + 299, 322, 195, 272, 279, 293, 204, 299, 44, 227, + 194, 299, 120, 77, 108, 299, 236, 299, 299, 99, + 299, 299, 314, 289, 299, 299, 299, 322, 195, 272, + 279, 293, 299, 299, 299, 227, 194, 299, 120, 53, + 108, 299, 299, 43, 37, 99, 299, 299, 314, 289, + 299, 299, 299, 322, 195, 272, 299, 293, 279, 285, + 286, 287, 288, 227, 194, 299, 120, 59, 108, 299, + 44, 299, 299, 99, 299, 299, 314, 289, 204, 299, + 44, 322, 195, 272, 279, 293, 299, 299, 291, 227, + 194, 299, 120, 76, 108, 299, 299, 299, 299, 99, + 299, 299, 314, 289, 25, 43, 37, 322, 195, 272, + 11, 293, 204, 299, 44, 43, 37, 299, 299, 299, + 299, 285, 286, 287, 288, 299, 299, 299, 299, 299, + 299, 285, 286, 287, 288, 299, 26, 299, 25, 299, + 299, 299, 139, 299, 11, 299, 180, 299, 133, 43, + 37, 307, 263, 299, 279, 42, 32, 277, 299, 227, + 194, 299, 124, 299, 108, 285, 286, 287, 288, 99, + 181, 299, 299, 278, 299, 299, 299, 322, 195, 272, + 279, 293, 308, 299, 81, 227, 194, 296, 126, 299, + 108, 299, 299, 299, 299, 99, 299, 299, 299, 238, + 299, 299, 299, 322, 195, 272, 299, 293, 299, 279, + 299, 204, 299, 44, 227, 194, 299, 119, 299, 108, + 299, 299, 299, 299, 99, 299, 299, 299, 299, 299, + 299, 299, 322, 195, 272, 299, 293, 25, 299, 299, + 299, 299, 299, 11, 299, 279, 299, 299, 43, 37, + 227, 194, 299, 117, 299, 108, 299, 299, 299, 299, + 99, 299, 299, 299, 285, 286, 287, 288, 322, 195, + 272, 299, 293, 299, 299, 299, 279, 299, 299, 299, + 299, 227, 194, 299, 125, 299, 108, 299, 299, 299, + 299, 99, 299, 299, 299, 299, 299, 299, 299, 322, + 195, 272, 279, 293, 209, 299, 299, 227, 194, 299, + 118, 299, 108, 299, 464, 464, 299, 99, 299, 464, + 448, 299, 209, 299, 299, 322, 195, 272, 299, 293, + 299, 299, 464, 464, 299, 29, 299, 464, 448, 299, + 204, 299, 44, 299, 299, 299, 448, 299, 299, 448, + 299, 464, 299, 448, 282, 299, 299, 299, 299, 299, + 299, 111, 299, 299, 448, 299, 299, 448, 299, 464, + 209, 448, 299, 299, 299, 299, 299, 43, 37, 299, + 464, 464, 279, 9, 299, 464, 448, 227, 194, 299, + 127, 299, 108, 285, 286, 287, 288, 99, 299, 299, + 299, 299, 299, 299, 299, 322, 195, 272, 299, 293, + 299, 299, 448, 299, 299, 448, 279, 464, 209, 448, + 299, 227, 194, 299, 123, 299, 108, 299, 464, 464, + 299, 99, 299, 464, 448, 299, 30, 299, 299, 322, + 195, 272, 204, 293, 44, 299, 464, 464, 299, 299, + 299, 464, 448, 299, 520, 52, 326, 244, 245, 230, + 448, 299, 227, 448, 299, 464, 299, 448, 299, 299, + 299, 299, 299, 299, 299, 299, 299, 395, 448, 43, + 37, 448, 299, 464, 299, 448, 299, 299, 395, 299, + 395, 299, 299, 395, 299, 285, 286, 287, 288, 395, + 299, 395, 299, 395, 299, 299, 299, 299, 146, 299, + 206, 299, 180, 299, 299, 299, 299, 299, 263, 299, + 299, 42, 32, 277, 299, 299, 299, 299, 299, 299, + 299, 299, 299, 299, 299, 299, 181, ); static public $yy_lookahead = array( - 3, 23, 75, 11, 77, 78, 15, 80, 101, 12, - 13, 14, 72, 16, 17, 23, 19, 20, 21, 27, - 12, 13, 82, 26, 46, 17, 34, 30, 31, 32, - 33, 53, 35, 1, 37, 95, 45, 15, 46, 42, - 43, 44, 45, 52, 47, 23, 49, 65, 51, 52, - 3, 54, 70, 71, 93, 73, 59, 75, 50, 12, - 13, 14, 80, 16, 17, 72, 19, 20, 21, 76, - 88, 89, 90, 26, 92, 82, 75, 30, 77, 32, - 33, 80, 35, 100, 37, 80, 8, 9, 10, 42, - 43, 44, 45, 100, 47, 36, 49, 38, 51, 52, - 53, 54, 3, 98, 13, 14, 59, 15, 17, 29, - 18, 12, 13, 14, 11, 16, 17, 37, 19, 20, - 21, 64, 65, 66, 67, 26, 23, 70, 48, 30, - 27, 32, 33, 1, 35, 3, 37, 34, 37, 45, - 48, 42, 43, 44, 45, 54, 47, 53, 49, 46, - 51, 52, 3, 54, 12, 13, 13, 14, 59, 17, - 17, 12, 13, 14, 14, 16, 17, 1, 19, 20, - 21, 39, 40, 1, 15, 26, 2, 18, 35, 30, - 9, 32, 33, 11, 35, 53, 37, 55, 56, 57, - 58, 42, 43, 44, 45, 29, 47, 54, 49, 27, - 51, 52, 3, 54, 54, 71, 34, 48, 59, 75, - 22, 12, 13, 14, 80, 16, 17, 72, 19, 20, - 21, 76, 68, 89, 36, 26, 92, 82, 72, 30, - 93, 32, 33, 1, 35, 3, 37, 23, 82, 72, - 27, 42, 43, 44, 45, 100, 47, 34, 49, 82, - 51, 52, 3, 54, 22, 71, 100, 81, 59, 75, - 46, 12, 13, 14, 80, 16, 17, 100, 19, 20, - 21, 39, 40, 1, 60, 26, 92, 14, 36, 30, - 17, 32, 33, 1, 35, 3, 37, 55, 56, 57, - 58, 42, 43, 44, 45, 53, 47, 72, 49, 27, - 51, 52, 3, 54, 12, 13, 34, 82, 59, 17, - 28, 12, 13, 14, 51, 16, 17, 54, 19, 20, - 21, 39, 40, 76, 94, 26, 96, 97, 18, 30, - 76, 32, 33, 1, 35, 3, 37, 55, 56, 57, - 58, 42, 43, 44, 45, 17, 47, 100, 49, 45, - 51, 52, 3, 54, 100, 101, 52, 72, 59, 12, - 13, 12, 13, 14, 17, 16, 17, 82, 19, 20, - 21, 39, 40, 1, 36, 26, 38, 15, 50, 30, - 95, 32, 33, 11, 35, 3, 37, 55, 56, 57, - 58, 42, 43, 44, 45, 81, 47, 50, 49, 27, - 51, 52, 3, 54, 81, 14, 34, 45, 59, 12, - 13, 12, 13, 14, 17, 16, 17, 97, 19, 20, - 21, 39, 40, 1, 37, 26, 96, 97, 37, 30, - 18, 32, 33, 11, 35, 48, 37, 55, 56, 57, - 58, 42, 43, 44, 45, 54, 47, 50, 49, 27, - 51, 52, 3, 54, 13, 11, 34, 45, 59, 1, - 2, 12, 13, 14, 52, 16, 17, 72, 19, 20, - 21, 76, 37, 93, 36, 26, 38, 82, 37, 30, - 45, 32, 33, 48, 35, 75, 37, 77, 53, 17, - 80, 42, 43, 44, 45, 100, 47, 27, 49, 45, - 51, 52, 3, 54, 34, 65, 52, 91, 59, 76, - 70, 12, 13, 14, 98, 16, 17, 53, 19, 20, - 21, 12, 13, 1, 37, 26, 17, 18, 76, 30, - 53, 32, 33, 100, 35, 48, 37, 85, 86, 87, - 18, 42, 43, 44, 45, 105, 47, 51, 49, 17, - 51, 37, 100, 54, 45, 12, 13, 48, 59, 50, - 17, 52, 48, 4, 5, 6, 7, 8, 65, 14, - 27, 12, 13, 70, 91, 16, 18, 34, 19, 20, - 21, 98, 75, 14, 72, 26, 17, 80, 76, 30, - 14, 32, 33, 17, 82, 65, 24, 85, 86, 87, - 70, 71, 17, 73, 74, 75, 48, 104, 105, 54, - 80, 72, 100, 83, 84, 17, 1, 76, 88, 89, - 90, 82, 92, 23, 37, 49, 11, 51, 66, 65, - 54, 69, 102, 103, 70, 71, 17, 73, 74, 75, - 93, 100, 95, 41, 80, 72, 46, 83, 84, 76, - 96, 97, 88, 89, 90, 82, 92, 17, 85, 86, - 87, 65, 35, 99, 17, 72, 70, 71, 14, 73, - 74, 75, 93, 100, 95, 82, 80, 72, 35, 83, - 84, 1, 5, 45, 88, 89, 90, 82, 92, 12, - 13, 14, 17, 16, 5, 99, 19, 20, 21, 17, - 38, 17, 15, 26, 51, 82, 93, 30, 94, 32, - 33, 62, 63, 64, 65, 66, 67, 93, 79, 70, - 65, 80, 80, 95, 93, 70, 71, 93, 73, 74, - 75, 80, 106, 53, 106, 80, 59, 60, 83, 84, - 106, 106, 106, 88, 89, 90, 65, 92, 106, 106, - 106, 70, 71, 106, 73, 74, 75, 106, 103, 106, - 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, - 89, 90, 106, 92, 106, 106, 65, 106, 106, 106, - 99, 70, 71, 106, 73, 74, 75, 106, 77, 106, - 106, 80, 106, 106, 83, 84, 106, 5, 106, 88, - 89, 90, 106, 92, 12, 13, 14, 106, 16, 106, - 106, 19, 20, 21, 106, 106, 106, 106, 26, 106, - 106, 65, 30, 106, 32, 33, 70, 71, 106, 73, - 74, 75, 106, 77, 106, 106, 80, 106, 106, 83, - 84, 106, 106, 106, 88, 89, 90, 106, 92, 106, - 65, 59, 60, 106, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, - 106, 106, 106, 80, 72, 106, 83, 84, 76, 106, - 106, 88, 89, 90, 82, 92, 65, 85, 86, 87, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, - 106, 80, 100, 106, 83, 84, 106, 106, 106, 88, - 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, - 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, - 72, 106, 83, 84, 76, 106, 106, 88, 89, 90, - 82, 92, 65, 85, 86, 87, 106, 70, 71, 106, - 73, 74, 75, 106, 106, 106, 106, 80, 100, 106, - 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, - 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 72, 106, 83, 84, - 76, 106, 106, 88, 89, 90, 82, 92, 65, 85, - 86, 87, 106, 70, 71, 106, 73, 74, 75, 106, - 106, 106, 106, 80, 100, 106, 83, 84, 106, 106, - 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, - 106, 80, 72, 106, 83, 84, 76, 106, 106, 88, - 89, 90, 82, 92, 65, 85, 86, 87, 106, 70, - 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, - 100, 106, 83, 84, 106, 106, 106, 88, 89, 90, - 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, - 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, - 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, - 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, - 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, - 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, - 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, - 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, - 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, - 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, - 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, - 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, - 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, - 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, - 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, - 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, - 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, - 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, - 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, - 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, - 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, - 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, - 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, - 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, - 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, - 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, - 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, - 89, 90, 106, 92, 65, 106, 106, 106, 106, 70, - 71, 106, 73, 74, 75, 106, 106, 106, 106, 80, - 106, 106, 83, 84, 106, 106, 106, 88, 89, 90, - 106, 92, 65, 106, 106, 106, 106, 70, 71, 106, - 73, 74, 75, 106, 106, 106, 106, 80, 106, 106, - 83, 84, 106, 106, 106, 88, 89, 90, 106, 92, - 65, 106, 106, 106, 106, 70, 71, 106, 73, 74, - 75, 106, 106, 106, 106, 80, 106, 106, 83, 84, - 106, 106, 106, 88, 89, 90, 106, 92, 65, 106, - 106, 106, 106, 70, 71, 106, 73, 74, 75, 106, - 106, 106, 106, 80, 106, 106, 83, 84, 106, 106, - 106, 88, 89, 90, 106, 92, 65, 106, 106, 106, - 106, 70, 71, 106, 73, 74, 75, 106, 106, 106, - 106, 80, 106, 106, 83, 84, 106, 106, 106, 88, - 89, 90, 106, 92, 65, 106, 1, 106, 3, 70, - 71, 106, 73, 74, 75, 1, 106, 3, 106, 80, - 106, 106, 83, 84, 106, 11, 106, 88, 89, 90, - 25, 92, 27, 106, 106, 106, 106, 106, 106, 34, - 106, 27, 12, 13, 39, 40, 106, 17, 34, 106, - 1, 2, 3, 39, 40, 106, 106, 27, 106, 29, - 55, 56, 57, 58, 34, 106, 106, 106, 106, 55, - 56, 57, 58, 106, 106, 65, 106, 106, 106, 106, - 70, 71, 106, 73, 106, 75, 37, 106, 39, 40, - 80, 106, 106, 106, 84, 106, 106, 48, 88, 89, - 90, 106, 92, 106, 55, 56, 57, 58, 106, 106, - 65, 106, 1, 106, 3, 70, 71, 106, 73, 106, - 75, 106, 106, 106, 106, 80, 106, 106, 106, 84, - 106, 106, 2, 88, 89, 90, 106, 92, 27, 106, - 106, 106, 12, 13, 106, 34, 106, 17, 18, 65, - 39, 40, 106, 106, 70, 71, 106, 73, 106, 75, - 106, 106, 106, 106, 80, 106, 55, 56, 57, 58, - 106, 106, 88, 89, 90, 45, 92, 106, 48, 106, - 50, 65, 52, 53, 2, 106, 70, 71, 106, 73, - 106, 75, 106, 106, 12, 13, 80, 15, 106, 17, - 18, 106, 106, 106, 88, 89, 90, 106, 92, 106, - 106, 106, 106, 65, 106, 106, 106, 106, 70, 71, - 106, 73, 106, 75, 106, 106, 106, 45, 80, 106, - 48, 106, 50, 106, 52, 106, 88, 89, 90, 65, - 92, 106, 106, 106, 70, 71, 106, 73, 106, 75, - 65, 1, 106, 3, 80, 70, 71, 106, 73, 106, - 75, 106, 88, 89, 90, 80, 92, 106, 2, 106, - 106, 106, 106, 88, 89, 90, 2, 92, 12, 13, - 106, 15, 106, 17, 18, 106, 12, 13, 38, 39, - 40, 17, 18, 1, 2, 3, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 55, 56, 57, 58, 106, - 106, 45, 106, 1, 48, 3, 50, 106, 52, 45, - 106, 106, 48, 11, 50, 1, 52, 3, 106, 106, - 106, 39, 40, 1, 106, 3, 106, 106, 106, 106, - 106, 106, 106, 11, 106, 106, 106, 55, 56, 57, - 58, 39, 40, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 38, 39, 40, 106, 106, 55, 56, 57, - 58, 39, 40, 106, 106, 106, 106, 106, 106, 55, - 56, 57, 58, 2, 106, 106, 106, 55, 56, 57, - 58, 106, 106, 12, 13, 106, 106, 106, 17, 18, - 1, 1, 3, 106, 1, 106, 3, 106, 106, 106, - 11, 11, 106, 106, 11, 106, 106, 106, 18, 106, - 106, 106, 106, 106, 106, 106, 45, 27, 1, 48, - 3, 50, 106, 52, 34, 106, 106, 37, 39, 40, - 106, 106, 39, 40, 106, 106, 106, 106, 48, 11, - 106, 106, 106, 15, 55, 56, 57, 58, 55, 56, - 57, 58, 106, 106, 106, 27, 39, 40, 106, 106, - 106, 106, 34, 106, 106, 37, 106, 106, 11, 106, - 106, 106, 55, 56, 57, 58, 48, 60, 106, 22, - 106, 24, 106, 106, 27, 106, 106, 106, 106, 106, - 106, 34, 106, 36, 106, 38, 106, 106, 106, 106, - 106, 106, 45, + 3, 12, 13, 70, 13, 14, 17, 74, 17, 12, + 13, 14, 79, 16, 17, 44, 19, 20, 21, 29, + 11, 88, 51, 26, 91, 34, 36, 30, 31, 32, + 2, 34, 23, 36, 14, 23, 27, 47, 41, 42, + 43, 44, 33, 46, 53, 48, 27, 50, 51, 52, + 53, 3, 33, 17, 45, 58, 36, 45, 12, 13, + 12, 13, 14, 17, 16, 17, 70, 19, 20, 21, + 74, 59, 100, 53, 26, 79, 1, 36, 30, 31, + 32, 11, 34, 23, 36, 49, 11, 91, 47, 41, + 42, 43, 44, 23, 46, 49, 48, 27, 50, 51, + 3, 53, 27, 33, 18, 45, 58, 13, 33, 12, + 13, 14, 52, 16, 17, 45, 19, 20, 21, 63, + 64, 65, 66, 26, 35, 69, 37, 30, 31, 32, + 36, 34, 15, 36, 14, 92, 71, 17, 41, 42, + 43, 44, 1, 46, 44, 48, 81, 50, 51, 3, + 53, 51, 11, 13, 14, 58, 9, 17, 12, 13, + 14, 44, 16, 17, 99, 19, 20, 21, 27, 18, + 50, 99, 26, 53, 33, 71, 30, 31, 32, 75, + 34, 74, 36, 76, 77, 81, 79, 41, 42, 43, + 44, 1, 46, 53, 48, 44, 50, 51, 3, 53, + 22, 11, 51, 99, 58, 12, 13, 12, 13, 14, + 17, 16, 17, 35, 19, 20, 21, 27, 1, 15, + 1, 26, 18, 33, 36, 30, 31, 32, 64, 34, + 11, 36, 44, 69, 1, 47, 41, 42, 43, 44, + 52, 46, 49, 48, 27, 50, 51, 3, 53, 15, + 33, 47, 18, 58, 12, 13, 12, 13, 14, 17, + 16, 17, 29, 19, 20, 21, 96, 103, 104, 93, + 26, 95, 96, 71, 30, 31, 32, 75, 34, 14, + 36, 47, 35, 81, 37, 41, 42, 43, 44, 71, + 46, 49, 48, 75, 50, 51, 3, 53, 71, 81, + 1, 99, 58, 15, 15, 12, 13, 14, 81, 16, + 17, 23, 19, 20, 21, 12, 13, 99, 53, 26, + 17, 94, 71, 30, 31, 32, 64, 34, 67, 36, + 35, 69, 81, 44, 41, 42, 43, 44, 23, 46, + 51, 48, 71, 50, 51, 3, 53, 52, 92, 44, + 99, 58, 81, 36, 12, 13, 14, 52, 16, 17, + 45, 19, 20, 21, 47, 94, 104, 35, 26, 37, + 36, 80, 30, 31, 32, 17, 34, 75, 36, 14, + 18, 47, 75, 41, 42, 43, 44, 1, 46, 92, + 48, 94, 50, 51, 3, 53, 1, 8, 9, 10, + 58, 99, 100, 12, 13, 14, 99, 16, 17, 47, + 19, 20, 21, 18, 74, 74, 76, 26, 53, 79, + 79, 30, 31, 32, 80, 34, 74, 36, 76, 90, + 71, 79, 41, 42, 43, 44, 97, 46, 52, 48, + 81, 50, 51, 3, 53, 95, 96, 80, 71, 58, + 95, 96, 12, 13, 14, 71, 16, 17, 81, 19, + 20, 21, 27, 75, 65, 81, 26, 68, 33, 71, + 30, 31, 32, 90, 34, 14, 36, 15, 17, 81, + 97, 41, 42, 43, 44, 17, 46, 99, 48, 79, + 50, 51, 3, 53, 1, 2, 50, 92, 58, 94, + 44, 12, 13, 14, 75, 16, 17, 97, 19, 20, + 21, 12, 13, 37, 17, 26, 17, 18, 52, 30, + 31, 32, 14, 34, 17, 36, 17, 17, 99, 17, + 41, 42, 43, 44, 17, 46, 17, 48, 24, 50, + 34, 50, 53, 44, 12, 13, 47, 58, 49, 17, + 51, 36, 4, 5, 6, 7, 8, 52, 34, 27, + 12, 13, 75, 17, 16, 33, 11, 19, 20, 21, + 36, 84, 85, 86, 26, 40, 5, 93, 30, 31, + 32, 1, 2, 3, 64, 81, 99, 92, 92, 69, + 70, 105, 72, 73, 74, 92, 94, 79, 105, 79, + 79, 79, 82, 83, 78, 92, 105, 87, 88, 89, + 105, 91, 105, 105, 105, 92, 36, 5, 38, 39, + 105, 101, 102, 105, 12, 13, 14, 47, 16, 105, + 105, 19, 20, 21, 54, 55, 56, 57, 26, 105, + 105, 105, 30, 31, 32, 12, 13, 105, 105, 64, + 17, 105, 105, 105, 69, 70, 105, 72, 73, 74, + 27, 1, 29, 3, 79, 71, 33, 82, 83, 75, + 58, 59, 87, 88, 89, 81, 91, 105, 84, 85, + 86, 105, 64, 98, 105, 105, 105, 69, 70, 105, + 72, 73, 74, 99, 105, 105, 105, 79, 38, 39, + 82, 83, 105, 105, 105, 87, 88, 89, 105, 91, + 105, 105, 52, 105, 54, 55, 56, 57, 105, 64, + 102, 105, 105, 105, 69, 70, 105, 72, 73, 74, + 105, 76, 105, 105, 79, 71, 105, 82, 83, 75, + 105, 105, 87, 88, 89, 81, 91, 64, 84, 85, + 86, 105, 69, 70, 105, 72, 73, 74, 105, 105, + 105, 105, 79, 99, 105, 82, 83, 105, 5, 105, + 87, 88, 89, 105, 91, 12, 13, 14, 105, 16, + 105, 98, 19, 20, 21, 105, 105, 11, 105, 26, + 105, 15, 64, 30, 31, 32, 105, 69, 70, 105, + 72, 73, 74, 27, 105, 105, 105, 79, 105, 33, + 82, 83, 36, 105, 105, 87, 88, 89, 105, 91, + 105, 58, 59, 47, 1, 105, 98, 105, 105, 105, + 64, 105, 105, 105, 11, 69, 70, 105, 72, 73, + 74, 18, 76, 105, 105, 79, 105, 105, 82, 83, + 27, 105, 105, 87, 88, 89, 33, 91, 64, 36, + 105, 105, 105, 69, 70, 105, 72, 73, 74, 105, + 47, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 1, 105, 3, 69, + 70, 105, 72, 73, 74, 105, 11, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 105, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 105, 105, 105, 69, + 70, 105, 72, 73, 74, 105, 105, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 1, 105, 3, 79, 71, 105, 82, 83, + 75, 105, 105, 87, 88, 89, 81, 91, 64, 84, + 85, 86, 105, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 99, 105, 82, 83, 105, 38, + 39, 87, 88, 89, 64, 91, 105, 105, 105, 69, + 70, 105, 72, 73, 74, 54, 55, 56, 57, 79, + 59, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 1, 105, 3, 79, 71, 105, 82, 83, + 75, 105, 11, 87, 88, 89, 81, 91, 64, 84, + 85, 86, 105, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 99, 105, 82, 83, 105, 38, + 39, 87, 88, 89, 64, 91, 1, 105, 3, 69, + 70, 105, 72, 73, 74, 54, 55, 56, 57, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 37, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 1, 2, 3, 69, + 70, 105, 72, 73, 74, 105, 105, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 105, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 1, 105, 3, 69, + 70, 105, 72, 73, 74, 105, 105, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 37, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 1, 105, 3, 69, + 70, 105, 72, 73, 74, 105, 11, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 105, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 1, 105, 3, 69, + 70, 105, 72, 73, 74, 105, 105, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 28, 105, 69, 70, 105, 72, 73, + 74, 105, 105, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 105, 105, 105, 79, 105, 105, 82, 83, 105, 105, + 105, 87, 88, 89, 64, 91, 1, 105, 3, 69, + 70, 105, 72, 73, 74, 105, 11, 105, 105, 79, + 105, 105, 82, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 105, 105, 105, 69, 70, 105, 72, 73, + 74, 105, 105, 38, 39, 79, 105, 105, 82, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 64, 54, + 55, 56, 57, 69, 70, 105, 72, 73, 74, 105, + 3, 105, 105, 79, 105, 105, 82, 83, 1, 105, + 3, 87, 88, 89, 64, 91, 105, 105, 11, 69, + 70, 105, 72, 73, 74, 105, 105, 105, 105, 79, + 105, 105, 82, 83, 27, 38, 39, 87, 88, 89, + 33, 91, 1, 105, 3, 38, 39, 105, 105, 105, + 105, 54, 55, 56, 57, 105, 105, 105, 105, 105, + 105, 54, 55, 56, 57, 105, 25, 105, 27, 105, + 105, 105, 71, 105, 33, 105, 75, 105, 14, 38, + 39, 17, 81, 105, 64, 84, 85, 86, 105, 69, + 70, 105, 72, 105, 74, 54, 55, 56, 57, 79, + 99, 105, 105, 83, 105, 105, 105, 87, 88, 89, + 64, 91, 48, 105, 50, 69, 70, 53, 72, 105, + 74, 105, 105, 105, 105, 79, 105, 105, 105, 83, + 105, 105, 105, 87, 88, 89, 105, 91, 105, 64, + 105, 1, 105, 3, 69, 70, 105, 72, 105, 74, + 105, 105, 105, 105, 79, 105, 105, 105, 105, 105, + 105, 105, 87, 88, 89, 105, 91, 27, 105, 105, + 105, 105, 105, 33, 105, 64, 105, 105, 38, 39, + 69, 70, 105, 72, 105, 74, 105, 105, 105, 105, + 79, 105, 105, 105, 54, 55, 56, 57, 87, 88, + 89, 105, 91, 105, 105, 105, 64, 105, 105, 105, + 105, 69, 70, 105, 72, 105, 74, 105, 105, 105, + 105, 79, 105, 105, 105, 105, 105, 105, 105, 87, + 88, 89, 64, 91, 2, 105, 105, 69, 70, 105, + 72, 105, 74, 105, 12, 13, 105, 79, 105, 17, + 18, 105, 2, 105, 105, 87, 88, 89, 105, 91, + 105, 105, 12, 13, 105, 15, 105, 17, 18, 105, + 1, 105, 3, 105, 105, 105, 44, 105, 105, 47, + 105, 49, 105, 51, 52, 105, 105, 105, 105, 105, + 105, 22, 105, 105, 44, 105, 105, 47, 105, 49, + 2, 51, 105, 105, 105, 105, 105, 38, 39, 105, + 12, 13, 64, 15, 105, 17, 18, 69, 70, 105, + 72, 105, 74, 54, 55, 56, 57, 79, 105, 105, + 105, 105, 105, 105, 105, 87, 88, 89, 105, 91, + 105, 105, 44, 105, 105, 47, 64, 49, 2, 51, + 105, 69, 70, 105, 72, 105, 74, 105, 12, 13, + 105, 79, 105, 17, 18, 105, 2, 105, 105, 87, + 88, 89, 1, 91, 3, 105, 12, 13, 105, 105, + 105, 17, 18, 105, 61, 62, 63, 64, 65, 66, + 44, 105, 69, 47, 105, 49, 105, 51, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 11, 44, 38, + 39, 47, 105, 49, 105, 51, 105, 105, 22, 105, + 24, 105, 105, 27, 105, 54, 55, 56, 57, 33, + 105, 35, 105, 37, 105, 105, 105, 105, 71, 105, + 44, 105, 75, 105, 105, 105, 105, 105, 81, 105, + 105, 84, 85, 86, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 99, ); static public $yy_shift_ofst = array( - 559, 399, 99, 99, 349, 99, 399, 349, -3, -3, - 47, 99, 149, 449, 99, 99, 99, 99, 149, 99, - 99, 99, 99, 99, 99, 99, 99, 299, 249, 99, - 99, 99, 99, 99, 99, 99, 99, 199, 199, 499, - 499, 499, 499, 499, 499, 1635, 1644, 1741, 1741, 1741, - 1741, 1741, 559, 2029, 2057, 2033, 1954, 132, 1880, 1922, - 1962, 1942, 282, 232, 332, 332, 332, 332, 332, 332, - 332, 332, 332, 332, 332, 332, 382, 382, 576, 677, - 2030, 172, 263, 272, 391, 792, 1660, 543, 391, 272, - 272, 391, 412, 458, -8, 103, 91, 422, 372, 397, - 78, 159, 142, 142, 92, 615, 213, 558, 522, 569, - 166, 569, 555, 213, 470, 680, 32, 310, 32, 32, - 32, 310, 32, 32, 32, -23, -23, -23, 1896, 1812, - 1760, 2011, 1904, 509, 143, 8, 292, -9, 454, 213, - 213, 213, 213, 213, 213, 213, 213, 22, 454, 454, - 150, 213, 304, 454, 213, 454, 304, 454, 150, 213, - 454, 213, 213, 213, 213, 213, 213, 454, 441, 310, - 32, 310, 32, 174, 32, 32, 174, 101, 32, 171, - 310, -23, -23, -23, -23, -23, 1679, 2097, 2068, 347, - 435, 214, -22, 80, 59, 600, 487, 188, 387, 338, - 328, 94, 242, 362, 514, 438, 653, 638, 643, 654, - 627, 647, 675, 682, 687, 684, 662, 689, 640, 602, - 532, 477, 472, 464, 101, 444, 585, 598, 572, 619, - 587, 496, + 548, 293, 48, 293, 342, 48, 48, 342, -3, 440, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 244, + 48, 48, 48, 48, 48, 244, 48, 48, 195, 48, + 146, 97, 48, 48, 48, 48, 195, 391, 391, 489, + 489, 489, 489, 489, 489, 1631, 1597, 1730, 1730, 1730, + 1730, 1730, 548, 1859, 1525, 1445, 1365, 885, 1285, 1205, + 1125, 1001, 660, 1081, 1961, 1961, 1961, 1961, 1961, 1961, + 1961, 1961, 1961, 1961, 1961, 1961, 1587, 1587, 1654, 612, + 823, 120, 190, 20, 217, 763, 633, 532, 217, 20, + 20, 217, 151, 493, 70, 9, 141, 140, 75, 193, + 234, 389, 303, 303, 204, 233, 395, 461, 362, 461, + 435, 365, 19, 19, 386, 219, 86, 299, 299, 299, + 299, 299, 86, 299, 299, -30, -30, -30, 1888, 1840, + 1822, 1954, 1936, 499, -9, 242, 289, -11, 19, 19, + 19, 19, 19, 19, -29, 19, 19, 19, -29, 265, + 19, 265, -29, 100, 19, -29, 100, -29, -29, 19, + 288, -29, 94, -29, 19, 19, 19, 19, 19, 299, + 299, 28, 299, 86, 515, 86, 28, 86, 147, 299, + 299, -30, -30, -30, -30, -30, 580, 1986, 776, 46, + 188, 12, -10, 60, 315, 334, 295, 317, 305, 332, + 178, 247, 89, 117, 36, 41, 524, 491, 506, 519, + 468, 510, 509, 508, 497, 466, 456, 462, 358, 446, + 476, 507, 512, 514, 505, 515, 546, 555, 534, 535, + 571, 517, ); static public $yy_reduce_ofst = array( - 649, 530, 596, 564, 756, 681, 655, 711, 1149, 1177, - 1205, 1233, 1121, 1093, 981, 1009, 1037, 1289, 1261, 1429, - 1541, 953, 1485, 1569, 1513, 1457, 1317, 1345, 1373, 1401, - 1065, 813, 841, 897, 869, 925, 785, 1640, 1675, 1746, - -18, 1778, 1804, 1714, 1815, 512, 878, 990, 934, 878, - 573, 822, 57, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 452, 452, 452, 134, 503, - 395, -7, 184, 145, -73, 440, -60, 285, 410, 156, - 167, 1, 230, 254, 539, 539, 5, 247, 247, 547, - 562, 330, 547, 579, 330, 247, 225, 330, 433, 416, - 247, 483, 507, 593, 605, 247, 247, 554, 247, 247, - 247, 330, 247, 247, 541, 247, 247, 247, 613, 613, - 613, 613, 613, 613, 642, 628, 613, 613, 614, 623, - 623, 623, 623, 623, 623, 623, 623, 639, 614, 614, - 641, 623, 624, 614, 623, 614, 634, 614, 651, 623, - 614, 623, 623, 623, 623, 623, 623, 614, 631, 320, - -17, 320, -17, -93, -17, -17, -93, -39, -17, 154, - 320, 323, 314, 176, 137, 380, + 1913, 520, 585, 618, 655, 683, 728, 766, 926, 794, + 820, 1034, 1274, 1486, 1434, 1380, 1326, 1300, 1220, 1166, + 1114, 1540, 874, 980, 1140, 1194, 1246, 1086, 1354, 1406, + 1460, 1514, 1060, 1006, 846, 900, 954, 1610, 1636, 1701, + 1758, 1838, 1872, 1665, 1732, 594, 935, 1015, 1591, 664, + 1957, 935, 56, 487, 487, 487, 487, 487, 487, 487, + 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, + 487, 487, 487, 487, 487, 487, 487, 487, -67, 164, + 104, -4, 218, 107, 202, 262, 271, 227, 65, 352, + 340, 251, 176, 302, 398, 398, 307, 410, 307, 297, + 355, 399, 297, 405, 355, 307, 388, 383, 355, 339, + 384, 341, 377, 359, 307, 307, 350, 307, 307, 307, + 307, 429, 355, 307, 307, 307, 307, 307, 503, 503, + 503, 503, 503, 503, 522, 502, 503, 503, 504, 504, + 504, 504, 504, 504, 484, 504, 504, 504, 484, 521, + 504, 518, 484, 496, 504, 484, 513, 484, 484, 504, + 526, 484, 523, 484, 504, 504, 504, 504, 504, 72, + 72, -28, 72, 170, 495, 170, -28, 170, 261, 72, + 72, 367, 344, 256, 291, 43, ); static public $yyExpectedTokens = array( - array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 32, 33,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 53, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,), - array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 32, 33, 35, 37, 42, 43, 44, 45, 47, 49, 51, 54, 59,), - array(1, 3, 25, 27, 34, 39, 40, 55, 56, 57, 58,), - array(1, 3, 11, 27, 34, 39, 40, 55, 56, 57, 58,), - array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), - array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), - array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), - array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), - array(1, 3, 27, 34, 39, 40, 55, 56, 57, 58,), - array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 32, 33,), - array(1, 3, 11, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58, 60,), - array(1, 3, 11, 39, 40, 55, 56, 57, 58,), - array(1, 3, 38, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 53, 55, 56, 57, 58,), - array(1, 3, 38, 39, 40, 55, 56, 57, 58,), - array(1, 2, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 11, 39, 40, 55, 56, 57, 58,), - array(1, 3, 11, 39, 40, 55, 56, 57, 58,), - array(1, 3, 28, 39, 40, 55, 56, 57, 58,), - array(1, 3, 22, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(1, 3, 39, 40, 55, 56, 57, 58,), - array(3, 39, 40, 55, 56, 57, 58,), - array(3, 39, 40, 55, 56, 57, 58,), - array(14, 17, 49, 51, 54,), - array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 32, 33, 59, 60,), - array(1, 11, 18, 27, 34, 37, 48,), - array(1, 11, 27, 34,), - array(14, 17, 51, 54,), - array(1, 27, 34,), - array(14, 37, 54,), - array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 32, 33, 59, 60,), - array(12, 13, 17, 27, 29, 34,), - array(12, 13, 17, 27, 34,), - array(14, 37, 54,), - array(1, 27, 34,), - array(1, 27, 34,), - array(14, 37, 54,), - array(18, 45, 52,), + array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 31, 32,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 51, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,), + array(3, 12, 13, 14, 16, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 41, 42, 43, 44, 46, 48, 50, 53, 58,), + array(1, 3, 25, 27, 33, 38, 39, 54, 55, 56, 57,), + array(1, 3, 11, 27, 33, 38, 39, 54, 55, 56, 57,), + array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,), + array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,), + array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,), + array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,), + array(1, 3, 27, 33, 38, 39, 54, 55, 56, 57,), + array(4, 5, 6, 7, 8, 12, 13, 16, 19, 20, 21, 26, 30, 31, 32,), + array(1, 3, 22, 38, 39, 54, 55, 56, 57,), + array(1, 3, 11, 38, 39, 54, 55, 56, 57,), + array(1, 3, 28, 38, 39, 54, 55, 56, 57,), + array(1, 3, 11, 38, 39, 54, 55, 56, 57,), + array(1, 3, 11, 38, 39, 54, 55, 56, 57,), + array(1, 3, 37, 38, 39, 54, 55, 56, 57,), + array(1, 2, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 37, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57, 59,), + array(1, 3, 38, 39, 52, 54, 55, 56, 57,), + array(1, 3, 11, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(1, 3, 38, 39, 54, 55, 56, 57,), + array(3, 38, 39, 54, 55, 56, 57,), + array(3, 38, 39, 54, 55, 56, 57,), + array(14, 17, 48, 50, 53,), + array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 31, 32, 58, 59,), + array(1, 11, 18, 27, 33, 36, 47,), + array(14, 17, 50, 53,), + array(1, 11, 27, 33,), + array(14, 36, 53,), + array(1, 27, 33,), + array(5, 12, 13, 14, 16, 19, 20, 21, 26, 30, 31, 32, 58, 59,), + array(12, 13, 17, 27, 29, 33,), + array(12, 13, 17, 27, 33,), + array(1, 27, 33,), + array(14, 36, 53,), + array(14, 36, 53,), + array(1, 27, 33,), + array(18, 44, 51,), array(1, 2,), - array(11, 23, 27, 34, 46,), - array(11, 23, 27, 34, 46,), - array(13, 14, 17, 54,), - array(1, 11, 27, 34,), - array(1, 11, 27, 34,), - array(12, 13, 17, 50,), + array(11, 23, 27, 33, 45,), + array(11, 23, 27, 33, 45,), + array(1, 11, 27, 33,), + array(13, 14, 17, 53,), + array(1, 11, 27, 33,), + array(12, 13, 17, 49,), + array(15, 18, 47,), array(8, 9, 10,), - array(15, 18, 48,), array(12, 13, 17,), array(12, 13, 17,), - array(15, 18, 48,), - array(1, 11,), - array(27, 34,), - array(18, 48,), + array(15, 18, 47,), + array(1, 29,), array(1, 18,), array(14, 17,), - array(1, 29,), + array(18, 47,), array(14, 17,), - array(14, 54,), - array(27, 34,), - array(27, 34,), - array(1, 53,), - array(1,), + array(27, 33,), + array(14, 53,), + array(27, 33,), + array(27, 33,), + array(1, 52,), + array(1, 11,), array(18,), array(1,), array(1,), array(1,), + array(1,), + array(1,), array(18,), array(1,), array(1,), - array(1,), array(), array(), array(), - array(2, 12, 13, 15, 17, 18, 45, 48, 50, 52,), - array(2, 12, 13, 15, 17, 18, 45, 48, 50, 52,), - array(2, 12, 13, 17, 18, 45, 48, 50, 52, 53,), - array(2, 12, 13, 17, 18, 45, 48, 50, 52,), - array(2, 12, 13, 17, 18, 45, 48, 50, 52,), - array(12, 13, 17, 18, 45, 48, 50, 52,), - array(13, 14, 17, 35, 54,), - array(12, 13, 17, 50,), + array(2, 12, 13, 15, 17, 18, 44, 47, 49, 51,), + array(2, 12, 13, 15, 17, 18, 44, 47, 49, 51,), + array(2, 12, 13, 17, 18, 44, 47, 49, 51, 52,), + array(2, 12, 13, 17, 18, 44, 47, 49, 51,), + array(2, 12, 13, 17, 18, 44, 47, 49, 51,), + array(12, 13, 17, 18, 44, 47, 49, 51,), + array(13, 14, 17, 34, 53,), + array(12, 13, 17, 49,), + array(15, 44, 51,), array(12, 13, 17,), - array(15, 45, 52,), - array(45, 52,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(44, 51,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(44, 51,), + array(14, 53,), + array(27, 33,), + array(14, 53,), + array(44, 51,), + array(44, 51,), + array(27, 33,), + array(44, 51,), + array(44, 51,), + array(44, 51,), + array(44, 51,), + array(27, 33,), array(15, 23,), - array(45, 52,), - array(45, 52,), - array(14, 54,), - array(27, 34,), - array(45, 52,), - array(45, 52,), - array(27, 34,), - array(45, 52,), - array(45, 52,), - array(45, 52,), - array(14, 54,), - array(27, 34,), - array(45, 52,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(27, 34,), - array(45, 52,), - array(13, 37,), - array(18,), - array(1,), - array(18,), - array(1,), - array(2,), + array(44, 51,), + array(13, 36,), + array(44, 51,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(27, 33,), + array(27, 33,), array(1,), array(1,), array(2,), - array(37,), array(1,), + array(18,), + array(36,), + array(18,), + array(2,), + array(18,), array(9,), - array(18,), + array(1,), + array(1,), array(), array(), array(), array(), array(), - array(1, 2, 3, 37, 39, 40, 48, 55, 56, 57, 58,), - array(11, 22, 24, 27, 34, 36, 38, 45,), - array(11, 15, 27, 34, 37, 48,), - array(12, 13, 17, 50,), - array(37, 45, 48, 53,), - array(23, 46, 60,), - array(23, 46, 53,), - array(29, 37, 48,), - array(36, 38,), - array(23, 46,), - array(37, 48,), - array(22, 36,), - array(37, 48,), - array(36, 38,), - array(17, 50,), - array(45, 53,), - array(36, 53,), - array(15, 45,), - array(37, 48,), - array(36, 38,), - array(51,), - array(45,), - array(35,), + array(1, 2, 3, 36, 38, 39, 47, 54, 55, 56, 57,), + array(11, 22, 24, 27, 33, 35, 37, 44,), + array(11, 15, 27, 33, 36, 47,), + array(12, 13, 17, 49,), + array(36, 44, 47, 52,), + array(23, 45, 59,), + array(29, 36, 47,), + array(23, 45, 52,), + array(23, 45,), + array(36, 47,), + array(35, 52,), + array(36, 47,), + array(44, 52,), + array(35, 37,), + array(22, 35,), + array(35, 37,), + array(35, 37,), + array(15, 44,), + array(17, 49,), + array(36, 47,), + array(34,), + array(50,), + array(34,), + array(17,), + array(17,), + array(17,), + array(17,), array(14,), - array(35,), - array(17,), - array(17,), array(17,), + array(52,), + array(44,), array(15,), array(17,), - array(38,), - array(5,), - array(17,), - array(41,), - array(17,), - array(53,), - array(17,), - array(53,), + array(50,), array(37,), - array(11,), array(17,), array(17,), array(24,), + array(52,), + array(36,), + array(17,), + array(11,), + array(36,), + array(40,), + array(5,), array(17,), - array(37,), - array(51,), - array(), array(), array(), array(), @@ -980,39 +960,39 @@ class Smarty_Internal_Templateparser array(), ); static public $yy_default = array( - 331, 506, 485, 485, 521, 485, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 521, 521, 521, 387, 521, 365, 387, 352, - 387, 355, 328, 521, 521, 521, 521, 521, 521, 521, - 521, 521, 392, 521, 399, 392, 509, 508, 370, 389, - 394, 398, 507, 483, 484, 409, 414, 413, 521, 521, - 425, 401, 521, 387, 521, 521, 387, 387, 521, 387, - 387, 521, 497, 377, 415, 415, 521, 401, 401, 450, - 521, 440, 450, 450, 440, 401, 387, 440, 381, 521, - 401, 521, 521, 367, 387, 401, 408, 494, 401, 404, - 412, 440, 417, 418, 383, 405, 416, 492, 439, 439, - 439, 439, 439, 439, 521, 452, 450, 466, 448, 353, - 368, 372, 351, 373, 349, 356, 357, 521, 477, 478, - 521, 374, 443, 447, 376, 446, 445, 444, 521, 375, - 475, 363, 362, 361, 359, 369, 366, 476, 450, 498, - 384, 495, 382, 486, 378, 407, 487, 450, 434, 343, - 472, 491, 491, 491, 450, 450, 425, 421, 425, 451, - 425, 415, 415, 425, 521, 415, 521, 521, 435, 521, - 521, 421, 521, 421, 425, 521, 521, 421, 423, 521, - 521, 521, 521, 521, 521, 521, 521, 335, 521, 427, - 521, 521, 521, 430, 466, 521, 521, 521, 395, 521, - 496, 521, 427, 489, 481, 493, 456, 471, 488, 466, - 480, 371, 339, 338, 340, 341, 344, 342, 336, 337, - 330, 329, 332, 333, 334, 345, 400, 465, 468, 469, - 470, 380, 490, 386, 396, 347, 346, 385, 358, 364, - 388, 428, 410, 379, 411, 433, 463, 436, 510, 432, - 430, 515, 431, 512, 511, 473, 461, 442, 441, 474, - 517, 467, 518, 406, 499, 464, 500, 501, 502, 514, - 516, 438, 437, 449, 479, 453, 429, 482, 457, 458, - 460, 462, 419, 454, 455, 426, 424, 513, 520, 519, - 503, 505, 403, 402, 420, 422, 504, 459, + 330, 504, 483, 519, 519, 483, 483, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 519, 519, 519, 385, 519, 364, 385, 354, + 385, 351, 327, 519, 519, 390, 519, 519, 519, 519, + 519, 519, 519, 519, 387, 369, 506, 507, 396, 505, + 482, 407, 390, 481, 397, 392, 412, 411, 519, 519, + 423, 519, 399, 519, 385, 519, 385, 385, 385, 519, + 519, 385, 495, 376, 413, 413, 399, 519, 399, 448, + 438, 519, 448, 448, 438, 399, 379, 519, 438, 519, + 385, 519, 366, 385, 399, 399, 492, 416, 415, 402, + 399, 381, 438, 406, 410, 403, 490, 414, 437, 437, + 437, 437, 437, 437, 519, 450, 464, 448, 367, 356, + 355, 350, 371, 352, 446, 358, 372, 374, 445, 519, + 373, 519, 444, 443, 360, 442, 441, 475, 476, 368, + 519, 473, 448, 474, 375, 365, 362, 348, 361, 377, + 382, 484, 380, 493, 448, 470, 485, 496, 342, 432, + 405, 489, 489, 448, 489, 448, 423, 419, 423, 449, + 423, 413, 423, 413, 413, 519, 519, 423, 419, 519, + 519, 519, 519, 419, 519, 433, 421, 519, 519, 519, + 519, 519, 519, 519, 519, 428, 419, 519, 519, 519, + 519, 519, 519, 393, 519, 464, 519, 519, 494, 425, + 334, 519, 487, 478, 464, 486, 469, 479, 491, 425, + 454, 480, 386, 344, 331, 332, 333, 336, 335, 337, + 338, 339, 340, 341, 343, 345, 378, 398, 346, 383, + 357, 363, 394, 384, 466, 467, 370, 488, 468, 426, + 463, 471, 429, 430, 510, 509, 508, 408, 409, 431, + 434, 461, 459, 462, 512, 497, 498, 499, 500, 404, + 329, 516, 439, 440, 472, 515, 465, 513, 514, 457, + 452, 456, 455, 458, 460, 417, 427, 435, 436, 447, + 477, 451, 453, 517, 400, 401, 418, 420, 502, 503, + 422, 501, 424, 428, 511, 518, 328, ); public static $yyFallback = array(); public static $yyRuleName = array( @@ -1067,7 +1047,6 @@ class Smarty_Internal_Templateparser 'tag ::= LDELFOREACH attributes', 'tag ::= LDELSETFILTER ID modparameters', 'tag ::= LDELSETFILTER ID modparameters modifierlist', - 'tag ::= LDEL SMARTYBLOCKCHILDPARENT', 'smartytag ::= CLOSETAG', 'tag ::= LDELSLASH ID', 'tag ::= LDELSLASH ID modifierlist', @@ -1211,199 +1190,198 @@ class Smarty_Internal_Templateparser 'doublequotedcontent ::= TEXT', ); public static $yyRuleInfo = array( + array(0 => 61, 1 => 1), array(0 => 62, 1 => 1), + array(0 => 62, 1 => 2), + array(0 => 62, 1 => 0), array(0 => 63, 1 => 1), - array(0 => 63, 1 => 2), - array(0 => 63, 1 => 0), - array(0 => 64, 1 => 1), - array(0 => 64, 1 => 1), - array(0 => 64, 1 => 1), - array(0 => 64, 1 => 1), - array(0 => 67, 1 => 1), - array(0 => 67, 1 => 2), - array(0 => 64, 1 => 1), - array(0 => 64, 1 => 1), + array(0 => 63, 1 => 1), + array(0 => 63, 1 => 1), + array(0 => 63, 1 => 1), + array(0 => 66, 1 => 1), array(0 => 66, 1 => 2), - array(0 => 66, 1 => 3), - array(0 => 68, 1 => 2), - array(0 => 68, 1 => 0), - array(0 => 69, 1 => 1), - array(0 => 69, 1 => 1), + array(0 => 63, 1 => 1), + array(0 => 63, 1 => 1), array(0 => 65, 1 => 2), - array(0 => 65, 1 => 1), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 4), - array(0 => 70, 1 => 4), - array(0 => 70, 1 => 5), - array(0 => 70, 1 => 5), - array(0 => 65, 1 => 1), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 4), - array(0 => 70, 1 => 5), - array(0 => 70, 1 => 6), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 8), - array(0 => 79, 1 => 2), - array(0 => 79, 1 => 1), - array(0 => 70, 1 => 5), - array(0 => 70, 1 => 7), - array(0 => 70, 1 => 6), - array(0 => 70, 1 => 8), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 4), - array(0 => 70, 1 => 2), - array(0 => 65, 1 => 1), - array(0 => 70, 1 => 2), - array(0 => 70, 1 => 3), - array(0 => 70, 1 => 4), - array(0 => 70, 1 => 5), + array(0 => 65, 1 => 3), + array(0 => 67, 1 => 2), + array(0 => 67, 1 => 0), + array(0 => 68, 1 => 1), + array(0 => 68, 1 => 1), + array(0 => 64, 1 => 2), + array(0 => 64, 1 => 1), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 4), + array(0 => 69, 1 => 4), + array(0 => 69, 1 => 5), + array(0 => 69, 1 => 5), + array(0 => 64, 1 => 1), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 4), + array(0 => 69, 1 => 5), + array(0 => 69, 1 => 6), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 8), + array(0 => 78, 1 => 2), + array(0 => 78, 1 => 1), + array(0 => 69, 1 => 5), + array(0 => 69, 1 => 7), + array(0 => 69, 1 => 6), + array(0 => 69, 1 => 8), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 4), + array(0 => 64, 1 => 1), + array(0 => 69, 1 => 2), + array(0 => 69, 1 => 3), + array(0 => 69, 1 => 4), + array(0 => 69, 1 => 5), + array(0 => 71, 1 => 2), + array(0 => 71, 1 => 1), + array(0 => 71, 1 => 0), + array(0 => 81, 1 => 4), + array(0 => 81, 1 => 2), + array(0 => 81, 1 => 2), + array(0 => 81, 1 => 2), + array(0 => 81, 1 => 2), + array(0 => 81, 1 => 2), + array(0 => 81, 1 => 4), + array(0 => 77, 1 => 1), + array(0 => 77, 1 => 3), + array(0 => 76, 1 => 3), + array(0 => 76, 1 => 3), + array(0 => 76, 1 => 3), + array(0 => 76, 1 => 3), + array(0 => 73, 1 => 1), + array(0 => 73, 1 => 1), + array(0 => 73, 1 => 3), + array(0 => 73, 1 => 3), + array(0 => 73, 1 => 3), + array(0 => 73, 1 => 1), + array(0 => 73, 1 => 2), + array(0 => 73, 1 => 3), + array(0 => 73, 1 => 3), + array(0 => 73, 1 => 2), + array(0 => 73, 1 => 3), + array(0 => 73, 1 => 3), + array(0 => 82, 1 => 7), + array(0 => 82, 1 => 7), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 2), + array(0 => 72, 1 => 2), + array(0 => 72, 1 => 2), array(0 => 72, 1 => 2), array(0 => 72, 1 => 1), - array(0 => 72, 1 => 0), - array(0 => 82, 1 => 4), - array(0 => 82, 1 => 2), - array(0 => 82, 1 => 2), - array(0 => 82, 1 => 2), - array(0 => 82, 1 => 2), - array(0 => 82, 1 => 2), - array(0 => 82, 1 => 4), - array(0 => 78, 1 => 1), - array(0 => 78, 1 => 3), - array(0 => 77, 1 => 3), - array(0 => 77, 1 => 3), - array(0 => 77, 1 => 3), - array(0 => 77, 1 => 3), - array(0 => 74, 1 => 1), - array(0 => 74, 1 => 1), - array(0 => 74, 1 => 3), - array(0 => 74, 1 => 3), - array(0 => 74, 1 => 3), - array(0 => 74, 1 => 1), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 3), + array(0 => 72, 1 => 2), + array(0 => 72, 1 => 2), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 3), + array(0 => 72, 1 => 3), + array(0 => 72, 1 => 3), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 3), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 2), + array(0 => 72, 1 => 1), + array(0 => 72, 1 => 3), + array(0 => 88, 1 => 1), + array(0 => 88, 1 => 1), + array(0 => 70, 1 => 1), + array(0 => 70, 1 => 1), + array(0 => 70, 1 => 3), + array(0 => 70, 1 => 1), + array(0 => 70, 1 => 3), + array(0 => 70, 1 => 4), + array(0 => 70, 1 => 3), + array(0 => 70, 1 => 4), array(0 => 74, 1 => 2), - array(0 => 74, 1 => 3), - array(0 => 74, 1 => 3), array(0 => 74, 1 => 2), - array(0 => 74, 1 => 3), - array(0 => 74, 1 => 3), - array(0 => 83, 1 => 7), - array(0 => 83, 1 => 7), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 3), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 3), - array(0 => 73, 1 => 3), - array(0 => 73, 1 => 3), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 3), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 2), - array(0 => 73, 1 => 1), - array(0 => 73, 1 => 3), - array(0 => 89, 1 => 1), - array(0 => 89, 1 => 1), - array(0 => 71, 1 => 1), - array(0 => 71, 1 => 1), - array(0 => 71, 1 => 3), - array(0 => 71, 1 => 1), - array(0 => 71, 1 => 3), - array(0 => 71, 1 => 4), - array(0 => 71, 1 => 3), - array(0 => 71, 1 => 4), - array(0 => 75, 1 => 2), - array(0 => 75, 1 => 2), - array(0 => 93, 1 => 2), - array(0 => 93, 1 => 0), - array(0 => 94, 1 => 2), - array(0 => 94, 1 => 2), - array(0 => 94, 1 => 4), - array(0 => 94, 1 => 2), - array(0 => 94, 1 => 2), - array(0 => 94, 1 => 4), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 5), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 3), - array(0 => 94, 1 => 2), - array(0 => 80, 1 => 1), - array(0 => 80, 1 => 1), - array(0 => 80, 1 => 2), - array(0 => 95, 1 => 1), - array(0 => 95, 1 => 1), - array(0 => 95, 1 => 3), array(0 => 92, 1 => 2), - array(0 => 96, 1 => 1), + array(0 => 92, 1 => 0), + array(0 => 93, 1 => 2), + array(0 => 93, 1 => 2), + array(0 => 93, 1 => 4), + array(0 => 93, 1 => 2), + array(0 => 93, 1 => 2), + array(0 => 93, 1 => 4), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 5), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 3), + array(0 => 93, 1 => 2), + array(0 => 79, 1 => 1), + array(0 => 79, 1 => 1), + array(0 => 79, 1 => 2), + array(0 => 94, 1 => 1), + array(0 => 94, 1 => 1), + array(0 => 94, 1 => 3), + array(0 => 91, 1 => 2), + array(0 => 95, 1 => 1), + array(0 => 95, 1 => 2), + array(0 => 96, 1 => 3), + array(0 => 96, 1 => 3), + array(0 => 96, 1 => 5), + array(0 => 96, 1 => 6), array(0 => 96, 1 => 2), - array(0 => 97, 1 => 3), - array(0 => 97, 1 => 3), - array(0 => 97, 1 => 5), - array(0 => 97, 1 => 6), - array(0 => 97, 1 => 2), - array(0 => 88, 1 => 4), - array(0 => 98, 1 => 4), - array(0 => 98, 1 => 4), + array(0 => 87, 1 => 4), + array(0 => 97, 1 => 4), + array(0 => 97, 1 => 4), + array(0 => 98, 1 => 3), + array(0 => 98, 1 => 1), + array(0 => 98, 1 => 0), + array(0 => 75, 1 => 3), + array(0 => 75, 1 => 2), array(0 => 99, 1 => 3), - array(0 => 99, 1 => 1), - array(0 => 99, 1 => 0), - array(0 => 76, 1 => 3), - array(0 => 76, 1 => 2), - array(0 => 100, 1 => 3), + array(0 => 99, 1 => 2), + array(0 => 80, 1 => 2), + array(0 => 80, 1 => 0), array(0 => 100, 1 => 2), - array(0 => 81, 1 => 2), - array(0 => 81, 1 => 0), - array(0 => 101, 1 => 2), - array(0 => 101, 1 => 2), - array(0 => 91, 1 => 1), - array(0 => 91, 1 => 2), - array(0 => 91, 1 => 1), - array(0 => 91, 1 => 2), - array(0 => 91, 1 => 3), - array(0 => 86, 1 => 1), - array(0 => 86, 1 => 1), - array(0 => 85, 1 => 1), - array(0 => 87, 1 => 1), - array(0 => 84, 1 => 3), - array(0 => 102, 1 => 1), - array(0 => 102, 1 => 3), - array(0 => 102, 1 => 0), - array(0 => 103, 1 => 3), - array(0 => 103, 1 => 3), - array(0 => 103, 1 => 1), + array(0 => 100, 1 => 2), + array(0 => 90, 1 => 1), + array(0 => 90, 1 => 2), + array(0 => 90, 1 => 1), array(0 => 90, 1 => 2), array(0 => 90, 1 => 3), - array(0 => 104, 1 => 2), + array(0 => 85, 1 => 1), + array(0 => 85, 1 => 1), + array(0 => 84, 1 => 1), + array(0 => 86, 1 => 1), + array(0 => 83, 1 => 3), + array(0 => 101, 1 => 1), + array(0 => 101, 1 => 3), + array(0 => 101, 1 => 0), + array(0 => 102, 1 => 3), + array(0 => 102, 1 => 3), + array(0 => 102, 1 => 1), + array(0 => 89, 1 => 2), + array(0 => 89, 1 => 3), + array(0 => 103, 1 => 2), + array(0 => 103, 1 => 1), + array(0 => 104, 1 => 3), + array(0 => 104, 1 => 3), + array(0 => 104, 1 => 1), + array(0 => 104, 1 => 3), + array(0 => 104, 1 => 3), + array(0 => 104, 1 => 1), array(0 => 104, 1 => 1), - array(0 => 105, 1 => 3), - array(0 => 105, 1 => 3), - array(0 => 105, 1 => 1), - array(0 => 105, 1 => 3), - array(0 => 105, 1 => 3), - array(0 => 105, 1 => 1), - array(0 => 105, 1 => 1), ); public static $yyReduceMap = array( 0 => 0, @@ -1417,34 +1395,34 @@ class Smarty_Internal_Templateparser 16 => 8, 17 => 8, 43 => 8, + 63 => 8, 64 => 8, - 65 => 8, + 72 => 8, 73 => 8, - 74 => 8, - 78 => 8, - 87 => 8, + 77 => 8, + 86 => 8, + 91 => 8, 92 => 8, - 93 => 8, - 98 => 8, + 97 => 8, + 101 => 8, 102 => 8, - 103 => 8, - 107 => 8, - 109 => 8, - 114 => 8, - 176 => 8, - 181 => 8, + 106 => 8, + 108 => 8, + 113 => 8, + 175 => 8, + 180 => 8, 9 => 9, 10 => 10, 11 => 11, 12 => 12, 15 => 12, 13 => 13, - 72 => 13, + 71 => 13, 14 => 14, - 88 => 14, + 87 => 14, + 89 => 14, 90 => 14, - 91 => 14, - 121 => 14, + 120 => 14, 18 => 18, 19 => 19, 20 => 20, @@ -1484,79 +1462,79 @@ class Smarty_Internal_Templateparser 55 => 55, 56 => 56, 57 => 57, + 66 => 57, + 155 => 57, + 159 => 57, + 163 => 57, + 164 => 57, 58 => 58, - 67 => 58, 156 => 58, - 160 => 58, - 164 => 58, - 165 => 58, + 162 => 58, 59 => 59, - 157 => 59, - 163 => 59, 60 => 60, - 61 => 61, - 62 => 61, - 63 => 63, - 141 => 63, - 66 => 66, + 61 => 60, + 62 => 62, + 140 => 62, + 65 => 65, + 67 => 67, 68 => 68, - 69 => 69, - 70 => 69, - 71 => 71, + 69 => 68, + 70 => 70, + 74 => 74, 75 => 75, - 76 => 76, - 77 => 76, + 76 => 75, + 78 => 78, + 105 => 78, 79 => 79, - 106 => 79, 80 => 80, 81 => 81, 82 => 82, 83 => 83, 84 => 84, 85 => 85, - 86 => 86, - 89 => 89, + 88 => 88, + 93 => 93, 94 => 94, 95 => 95, 96 => 96, - 97 => 97, + 98 => 98, 99 => 99, - 100 => 100, - 101 => 100, + 100 => 99, + 103 => 103, 104 => 104, - 105 => 105, - 108 => 108, + 107 => 107, + 109 => 109, 110 => 110, 111 => 111, 112 => 112, - 113 => 113, + 114 => 114, 115 => 115, 116 => 116, 117 => 117, 118 => 118, 119 => 119, - 120 => 120, + 121 => 121, + 177 => 121, 122 => 122, - 178 => 122, 123 => 123, 124 => 124, 125 => 125, 126 => 126, 127 => 127, + 135 => 127, 128 => 128, - 136 => 128, 129 => 129, 130 => 130, - 131 => 131, - 132 => 131, - 134 => 131, - 135 => 131, - 133 => 133, + 131 => 130, + 133 => 130, + 134 => 130, + 132 => 132, + 136 => 136, 137 => 137, 138 => 138, + 181 => 138, 139 => 139, - 182 => 139, - 140 => 140, + 141 => 141, 142 => 142, 143 => 143, 144 => 144, @@ -1570,11 +1548,11 @@ class Smarty_Internal_Templateparser 152 => 152, 153 => 153, 154 => 154, - 155 => 155, + 157 => 157, 158 => 158, - 159 => 159, + 160 => 160, 161 => 161, - 162 => 162, + 165 => 165, 166 => 166, 167 => 167, 168 => 168, @@ -1584,20 +1562,19 @@ class Smarty_Internal_Templateparser 172 => 172, 173 => 173, 174 => 174, - 175 => 175, - 177 => 177, + 176 => 176, + 178 => 178, 179 => 179, - 180 => 180, + 182 => 182, 183 => 183, 184 => 184, 185 => 185, - 186 => 186, - 187 => 186, - 189 => 186, - 188 => 188, + 186 => 185, + 188 => 185, + 187 => 187, + 189 => 189, 190 => 190, 191 => 191, - 192 => 192, ); /** * result status @@ -1706,26 +1683,26 @@ class Smarty_Internal_Templateparser 'SIMPLETAG', 'ID', 'PTR', 'LDELMAKENOCACHE', 'LDELIF', 'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO', 'STEP', 'LDELFOREACH', 'SPACE', - 'AS', 'APTR', 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', - 'CLOSETAG', 'LDELSLASH', 'ATTR', 'INTEGER', - 'COMMA', 'OPENP', 'CLOSEP', 'MATH', - 'ISIN', 'QMARK', 'NOT', 'TYPECAST', - 'HEX', 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING', - 'DOUBLECOLON', 'NAMESPACE', 'AT', 'HATCH', - 'OPENB', 'CLOSEB', 'DOLLAR', 'LOGOP', - 'SLOGOP', 'TLOGOP', 'SINGLECOND', 'QUOTE', - 'BACKTICK', 'error', 'start', 'template', - 'template_element', 'smartytag', 'literal', 'text_content', - 'literal_elements', 'literal_element', 'tag', 'variable', - 'attributes', 'value', 'expr', 'varindexed', - 'modifierlist', 'statement', 'statements', 'foraction', - 'varvar', 'modparameters', 'attribute', 'ternary', - 'array', 'tlop', 'lop', 'scond', - 'function', 'ns1', 'doublequoted_with_quotes', 'static_class_access', - 'object', 'arrayindex', 'indexdef', 'varvarele', - 'objectchain', 'objectelement', 'method', 'params', - 'modifier', 'modparameter', 'arrayelements', 'arrayelement', - 'doublequoted', 'doublequotedcontent', + 'AS', 'APTR', 'LDELSETFILTER', 'CLOSETAG', + 'LDELSLASH', 'ATTR', 'INTEGER', 'COMMA', + 'OPENP', 'CLOSEP', 'MATH', 'ISIN', + 'QMARK', 'NOT', 'TYPECAST', 'HEX', + 'DOT', 'INSTANCEOF', 'SINGLEQUOTESTRING', 'DOUBLECOLON', + 'NAMESPACE', 'AT', 'HATCH', 'OPENB', + 'CLOSEB', 'DOLLAR', 'LOGOP', 'SLOGOP', + 'TLOGOP', 'SINGLECOND', 'QUOTE', 'BACKTICK', + 'error', 'start', 'template', 'template_element', + 'smartytag', 'literal', 'text_content', 'literal_elements', + 'literal_element', 'tag', 'variable', 'attributes', + 'value', 'expr', 'varindexed', 'modifierlist', + 'statement', 'statements', 'foraction', 'varvar', + 'modparameters', 'attribute', 'ternary', 'array', + 'tlop', 'lop', 'scond', 'function', + 'ns1', 'doublequoted_with_quotes', 'static_class_access', 'object', + 'arrayindex', 'indexdef', 'varvarele', 'objectchain', + 'objectelement', 'method', 'params', 'modifier', + 'modparameter', 'arrayelements', 'arrayelement', 'doublequoted', + 'doublequotedcontent', ); /* Index of top element in stack */ /** * internal error flag @@ -2575,7 +2552,7 @@ class Smarty_Internal_Templateparser 0 ]->minor)))); } - #line 518 "../smarty/lexer/smarty_internal_templateparser.y" + #line 519 "../smarty/lexer/smarty_internal_templateparser.y" function yy_r50() { @@ -2589,23 +2566,9 @@ class Smarty_Internal_Templateparser 0 ]->minor))); } - #line 531 "../smarty/lexer/smarty_internal_templateparser.y" + #line 528 "../smarty/lexer/smarty_internal_templateparser.y" function yy_r51() - { - $j = strrpos($this->yystack[ $this->yyidx + 0 ]->minor, '.'); - if ($this->yystack[ $this->yyidx + 0 ]->minor[ $j + 1 ] == 'c') { - // {$smarty.block.child} - $this->_retvalue = $this->compiler->compileTag('block_child', array());; - } else { - // {$smarty.block.parent} - $this->_retvalue = $this->compiler->compileTag('block_parent', array());; - } - } - - #line 540 "../smarty/lexer/smarty_internal_templateparser.y" - - function yy_r52() { $tag = trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, -$this->lex->rdel_length), @@ -2618,16 +2581,16 @@ class Smarty_Internal_Templateparser } } - #line 544 "../smarty/lexer/smarty_internal_templateparser.y" + #line 532 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r53() + function yy_r52() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + 0 ]->minor . 'close', array()); } - #line 549 "../smarty/lexer/smarty_internal_templateparser.y" + #line 537 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r54() + function yy_r53() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -1 ]->minor . 'close', array(), @@ -2635,9 +2598,9 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 553 "../smarty/lexer/smarty_internal_templateparser.y" + #line 541 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r55() + function yy_r54() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -2 ]->minor . 'close', array(), @@ -2645,9 +2608,9 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 561 "../smarty/lexer/smarty_internal_templateparser.y" + #line 549 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r56() + function yy_r55() { $this->_retvalue = $this->compiler->compileTag($this->yystack[ $this->yyidx + -3 ]->minor . 'close', array(), @@ -2657,31 +2620,31 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 567 "../smarty/lexer/smarty_internal_templateparser.y" + #line 555 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r57() + function yy_r56() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor; $this->_retvalue[] = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 572 "../smarty/lexer/smarty_internal_templateparser.y" + #line 560 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r58() + function yy_r57() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor); } - #line 577 "../smarty/lexer/smarty_internal_templateparser.y" + #line 565 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r59() + function yy_r58() { $this->_retvalue = array(); } - #line 588 "../smarty/lexer/smarty_internal_templateparser.y" + #line 576 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r60() + function yy_r59() { if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { if ($this->security) { @@ -2696,75 +2659,75 @@ class Smarty_Internal_Templateparser } } - #line 596 "../smarty/lexer/smarty_internal_templateparser.y" + #line 584 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r61() + function yy_r60() { $this->_retvalue = array(trim($this->yystack[ $this->yyidx + -1 ]->minor, " =\n\r\t") => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 608 "../smarty/lexer/smarty_internal_templateparser.y" + #line 596 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r63() + function yy_r62() { $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + 0 ]->minor . '\''; } - #line 621 "../smarty/lexer/smarty_internal_templateparser.y" + #line 609 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r66() + function yy_r65() { $this->_retvalue = array($this->yystack[ $this->yyidx + -2 ]->minor => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 626 "../smarty/lexer/smarty_internal_templateparser.y" + #line 614 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r68() + function yy_r67() { $this->yystack[ $this->yyidx + -2 ]->minor[] = $this->yystack[ $this->yyidx + 0 ]->minor; $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor; } - #line 633 "../smarty/lexer/smarty_internal_templateparser.y" + #line 621 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r69() + function yy_r68() { $this->_retvalue = array('var' => '\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '\'', 'value' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 657 "../smarty/lexer/smarty_internal_templateparser.y" + #line 645 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r71() + function yy_r70() { $this->_retvalue = array('var' => $this->yystack[ $this->yyidx + -2 ]->minor, 'value' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 662 "../smarty/lexer/smarty_internal_templateparser.y" + #line 650 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r75() + function yy_r74() { $this->_retvalue = '$_smarty_tpl->getStreamVariable(\'' . substr($this->yystack[ $this->yyidx + -2 ]->minor, 1) . '://' . $this->yystack[ $this->yyidx + 0 ]->minor . '\')'; } - #line 676 "../smarty/lexer/smarty_internal_templateparser.y" + #line 664 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r76() + function yy_r75() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . trim($this->yystack[ $this->yyidx + -1 ]->minor) . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 682 "../smarty/lexer/smarty_internal_templateparser.y" + #line 670 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r79() + function yy_r78() { $this->_retvalue = $this->compiler->compileTag('private_modifier', array(), @@ -2774,50 +2737,50 @@ class Smarty_Internal_Templateparser 0 ]->minor)); } - #line 686 "../smarty/lexer/smarty_internal_templateparser.y" + #line 674 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r80() + function yy_r79() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor['pre'] . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor['op'] . $this->yystack[ $this->yyidx + 0 ]->minor . ')'; } - #line 690 "../smarty/lexer/smarty_internal_templateparser.y" + #line 678 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r81() + function yy_r80() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 694 "../smarty/lexer/smarty_internal_templateparser.y" + #line 682 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r82() + function yy_r81() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . ')'; } - #line 698 "../smarty/lexer/smarty_internal_templateparser.y" + #line 686 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r83() + function yy_r82() { $this->_retvalue = 'in_array(' . $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor . ')'; } - #line 706 "../smarty/lexer/smarty_internal_templateparser.y" + #line 694 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r84() + function yy_r83() { $this->_retvalue = 'in_array(' . $this->yystack[ $this->yyidx + -2 ]->minor . ',(array)' . $this->yystack[ $this->yyidx + 0 ]->minor . ')'; } - #line 710 "../smarty/lexer/smarty_internal_templateparser.y" + #line 698 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r85() + function yy_r84() { $this->_retvalue = $this->yystack[ $this->yyidx + -5 ]->minor . ' ? ' . $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + @@ -2827,46 +2790,46 @@ class Smarty_Internal_Templateparser ' : ' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 725 "../smarty/lexer/smarty_internal_templateparser.y" + #line 713 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r86() + function yy_r85() { $this->_retvalue = $this->yystack[ $this->yyidx + -5 ]->minor . ' ? ' . $this->yystack[ $this->yyidx + -2 ]->minor . ' : ' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 746 "../smarty/lexer/smarty_internal_templateparser.y" + #line 734 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r89() + function yy_r88() { $this->_retvalue = '!' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 750 "../smarty/lexer/smarty_internal_templateparser.y" + #line 738 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r94() + function yy_r93() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 754 "../smarty/lexer/smarty_internal_templateparser.y" + #line 742 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r95() + function yy_r94() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.'; } - #line 759 "../smarty/lexer/smarty_internal_templateparser.y" + #line 747 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r96() + function yy_r95() { $this->_retvalue = '.' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 776 "../smarty/lexer/smarty_internal_templateparser.y" + #line 764 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r97() + function yy_r96() { if (defined($this->yystack[ $this->yyidx + 0 ]->minor)) { if ($this->security) { @@ -2878,24 +2841,24 @@ class Smarty_Internal_Templateparser } } - #line 780 "../smarty/lexer/smarty_internal_templateparser.y" + #line 768 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r99() + function yy_r98() { $this->_retvalue = "(" . $this->yystack[ $this->yyidx + -1 ]->minor . ")"; } - #line 798 "../smarty/lexer/smarty_internal_templateparser.y" + #line 786 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r100() + function yy_r99() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 809 "../smarty/lexer/smarty_internal_templateparser.y" + #line 797 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r104() + function yy_r103() { $prefixVar = $this->compiler->getNewPrefixVariable(); if ($this->yystack[ $this->yyidx + -2 ]->minor['var'] == '\'smarty\'') { @@ -2916,9 +2879,9 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor[1]; } - #line 826 "../smarty/lexer/smarty_internal_templateparser.y" + #line 814 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r105() + function yy_r104() { $prefixVar = $this->compiler->getNewPrefixVariable(); $tmp = $this->compiler->appendCode('', $this->yystack[ $this->yyidx + 0 ]->minor); @@ -2926,9 +2889,9 @@ class Smarty_Internal_Templateparser $this->_retvalue = $prefixVar; } - #line 845 "../smarty/lexer/smarty_internal_templateparser.y" + #line 833 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r108() + function yy_r107() { if (!in_array(strtolower($this->yystack[ $this->yyidx + -2 ]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[ $this->yyidx + -2 ]->minor, @@ -2949,24 +2912,24 @@ class Smarty_Internal_Templateparser } } - #line 856 "../smarty/lexer/smarty_internal_templateparser.y" + #line 844 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r110() + function yy_r109() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 859 "../smarty/lexer/smarty_internal_templateparser.y" + #line 847 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r111() + function yy_r110() { $this->_retvalue = $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\''); } - #line 872 "../smarty/lexer/smarty_internal_templateparser.y" + #line 860 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r112() + function yy_r111() { if ($this->yystack[ $this->yyidx + 0 ]->minor['var'] == '\'smarty\'') { $smarty_var = $this->compiler->compileTag('private_special_variable', @@ -2983,25 +2946,25 @@ class Smarty_Internal_Templateparser } } - #line 882 "../smarty/lexer/smarty_internal_templateparser.y" + #line 870 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r113() + function yy_r112() { $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[ $this->yyidx + -2 ]->minor . ']->' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 886 "../smarty/lexer/smarty_internal_templateparser.y" + #line 874 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r115() + function yy_r114() { $this->_retvalue = $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + -1 ]->minor . "'"); } - #line 890 "../smarty/lexer/smarty_internal_templateparser.y" + #line 878 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r116() + function yy_r115() { $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable("'" . $this->yystack[ $this->yyidx + -2 ]->minor . @@ -3009,25 +2972,25 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . ' :null)'; } - #line 894 "../smarty/lexer/smarty_internal_templateparser.y" + #line 882 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r117() + function yy_r116() { $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -1 ]->minor); } - #line 898 "../smarty/lexer/smarty_internal_templateparser.y" + #line 886 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r118() + function yy_r117() { $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[ $this->yyidx + -2 ]->minor) . ') ? $tmp' . $this->yystack[ $this->yyidx + 0 ]->minor . ' : null)'; } - #line 901 "../smarty/lexer/smarty_internal_templateparser.y" + #line 889 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r119() + function yy_r118() { $this->_retvalue = array('var' => '\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . @@ -3035,69 +2998,69 @@ class Smarty_Internal_Templateparser 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 914 "../smarty/lexer/smarty_internal_templateparser.y" + #line 902 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r120() + function yy_r119() { $this->_retvalue = array('var' => $this->yystack[ $this->yyidx + -1 ]->minor, 'smarty_internal_index' => $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 920 "../smarty/lexer/smarty_internal_templateparser.y" + #line 908 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r122() + function yy_r121() { return; } - #line 923 "../smarty/lexer/smarty_internal_templateparser.y" + #line 911 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r123() + function yy_r122() { $this->_retvalue = '[' . $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\'') . ']'; } - #line 927 "../smarty/lexer/smarty_internal_templateparser.y" + #line 915 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r124() + function yy_r123() { $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + 0 ]->minor) . ']'; } - #line 931 "../smarty/lexer/smarty_internal_templateparser.y" + #line 919 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r125() + function yy_r124() { $this->_retvalue = '[' . $this->compiler->compileVariable($this->yystack[ $this->yyidx + -2 ]->minor) . '->' . $this->yystack[ $this->yyidx + 0 ]->minor . ']'; } - #line 935 "../smarty/lexer/smarty_internal_templateparser.y" + #line 923 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r126() + function yy_r125() { $this->_retvalue = "['" . $this->yystack[ $this->yyidx + 0 ]->minor . "']"; } - #line 940 "../smarty/lexer/smarty_internal_templateparser.y" + #line 928 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r127() + function yy_r126() { $this->_retvalue = '[' . $this->yystack[ $this->yyidx + 0 ]->minor . ']'; } - #line 945 "../smarty/lexer/smarty_internal_templateparser.y" + #line 933 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r128() + function yy_r127() { $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']'; } - #line 949 "../smarty/lexer/smarty_internal_templateparser.y" + #line 937 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r129() + function yy_r128() { $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), @@ -3106,9 +3069,9 @@ class Smarty_Internal_Templateparser '\'][\'index\']') . ']'; } - #line 952 "../smarty/lexer/smarty_internal_templateparser.y" + #line 940 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r130() + function yy_r129() { $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), @@ -3117,53 +3080,53 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + -1 ]->minor . '\']') . ']'; } - #line 958 "../smarty/lexer/smarty_internal_templateparser.y" + #line 946 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r131() + function yy_r130() { $this->_retvalue = '[' . $this->yystack[ $this->yyidx + -1 ]->minor . ']'; } - #line 974 "../smarty/lexer/smarty_internal_templateparser.y" + #line 962 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r133() + function yy_r132() { $this->_retvalue = '[' . $this->compiler->compileVariable('\'' . substr($this->yystack[ $this->yyidx + -1 ]->minor, 1) . '\'') . ']';; } - #line 984 "../smarty/lexer/smarty_internal_templateparser.y" + #line 972 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r137() + function yy_r136() { $this->_retvalue = '[]'; } - #line 988 "../smarty/lexer/smarty_internal_templateparser.y" + #line 976 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r138() + function yy_r137() { $this->_retvalue = '\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\''; } - #line 993 "../smarty/lexer/smarty_internal_templateparser.y" + #line 981 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r139() + function yy_r138() { $this->_retvalue = "''"; } - #line 1001 "../smarty/lexer/smarty_internal_templateparser.y" + #line 989 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r140() + function yy_r139() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . '.' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1007 "../smarty/lexer/smarty_internal_templateparser.y" + #line 995 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r142() + function yy_r141() { $var = trim(substr($this->yystack[ $this->yyidx + 0 ]->minor, $this->lex->ldel_length, -$this->lex->rdel_length), @@ -3171,16 +3134,16 @@ class Smarty_Internal_Templateparser $this->_retvalue = $this->compiler->compileVariable('\'' . $var . '\''); } - #line 1014 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1002 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r143() + function yy_r142() { $this->_retvalue = '(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')'; } - #line 1023 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1011 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r144() + function yy_r143() { if ($this->yystack[ $this->yyidx + -1 ]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable', @@ -3195,23 +3158,23 @@ class Smarty_Internal_Templateparser } } - #line 1028 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1016 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r145() + function yy_r144() { $this->_retvalue = $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1033 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1021 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r146() + function yy_r145() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1040 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1028 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r147() + function yy_r146() { if ($this->security && substr($this->yystack[ $this->yyidx + -1 ]->minor, 0, 1) == '_') { $this->compiler->trigger_template_error(self::Err1); @@ -3220,9 +3183,9 @@ class Smarty_Internal_Templateparser '->' . $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1047 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1035 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r148() + function yy_r147() { if ($this->security) { $this->compiler->trigger_template_error(self::Err2); @@ -3231,9 +3194,9 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . '}'; } - #line 1054 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1042 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r149() + function yy_r148() { if ($this->security) { $this->compiler->trigger_template_error(self::Err2); @@ -3242,9 +3205,9 @@ class Smarty_Internal_Templateparser '->{' . $this->yystack[ $this->yyidx + -2 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor . '}'; } - #line 1062 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1050 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r150() + function yy_r149() { if ($this->security) { $this->compiler->trigger_template_error(self::Err2); @@ -3254,24 +3217,24 @@ class Smarty_Internal_Templateparser $this->yystack[ $this->yyidx + 0 ]->minor . '}'; } - #line 1070 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1058 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r151() + function yy_r150() { $this->_retvalue = '->' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1078 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1066 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r152() + function yy_r151() { $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[ $this->yyidx + -3 ]->minor, $this->yystack[ $this->yyidx + -1 ]->minor); } - #line 1085 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1073 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r153() + function yy_r152() { if ($this->security && substr($this->yystack[ $this->yyidx + -3 ]->minor, 0, 1) == '_') { $this->compiler->trigger_template_error(self::Err1); @@ -3280,9 +3243,9 @@ class Smarty_Internal_Templateparser implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ")"; } - #line 1096 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1084 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r154() + function yy_r153() { if ($this->security) { $this->compiler->trigger_template_error(self::Err2); @@ -3296,95 +3259,95 @@ class Smarty_Internal_Templateparser $this->_retvalue = $prefixVar . '(' . implode(',', $this->yystack[ $this->yyidx + -1 ]->minor) . ')'; } - #line 1113 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1101 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r155() + function yy_r154() { $this->_retvalue = array_merge($this->yystack[ $this->yyidx + -2 ]->minor, array($this->yystack[ $this->yyidx + 0 ]->minor)); } - #line 1117 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1105 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r158() + function yy_r157() { $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 1125 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1113 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r159() + function yy_r158() { $this->_retvalue = array(array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor)); } - #line 1133 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1121 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r161() + function yy_r160() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1152 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1140 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r162() + function yy_r161() { $this->_retvalue = array_merge($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1157 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1145 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r166() + function yy_r165() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, '', 'method'); } - #line 1162 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1150 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r167() + function yy_r166() { $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'method'); } - #line 1167 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1155 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r168() + function yy_r167() { $this->_retvalue = array($this->yystack[ $this->yyidx + 0 ]->minor, ''); } - #line 1172 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1160 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r169() + function yy_r168() { $this->_retvalue = array($this->yystack[ $this->yyidx + -1 ]->minor, $this->yystack[ $this->yyidx + 0 ]->minor, 'property'); } - #line 1178 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1166 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r170() + function yy_r169() { $this->_retvalue = array($this->yystack[ $this->yyidx + -2 ]->minor, $this->yystack[ $this->yyidx + -1 ]->minor . $this->yystack[ $this->yyidx + 0 ]->minor, 'property'); } - #line 1182 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1170 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r171() + function yy_r170() { $this->_retvalue = ' ' . trim($this->yystack[ $this->yyidx + 0 ]->minor) . ' '; } - #line 1201 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1189 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r172() + function yy_r171() { static $lops = array( 'eq' => ' == ', @@ -3405,9 +3368,9 @@ class Smarty_Internal_Templateparser $this->_retvalue = $lops[ $op ]; } - #line 1214 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1202 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r173() + function yy_r172() { static $tlops = array( 'isdivby' => array('op' => ' % ', 'pre' => '!('), @@ -3421,9 +3384,9 @@ class Smarty_Internal_Templateparser $this->_retvalue = $tlops[ $op ]; } - #line 1228 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1216 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r174() + function yy_r173() { static $scond = array( 'iseven' => '!(1 & ', @@ -3435,90 +3398,90 @@ class Smarty_Internal_Templateparser $this->_retvalue = $scond[ $op ]; } - #line 1236 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1224 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r175() + function yy_r174() { $this->_retvalue = 'array(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')'; } - #line 1244 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1232 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r177() + function yy_r176() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . ',' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1248 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1236 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r179() + function yy_r178() { $this->_retvalue = $this->yystack[ $this->yyidx + -2 ]->minor . '=>' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1264 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1252 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r180() + function yy_r179() { $this->_retvalue = '\'' . $this->yystack[ $this->yyidx + -2 ]->minor . '\'=>' . $this->yystack[ $this->yyidx + 0 ]->minor; } - #line 1269 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1257 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r183() + function yy_r182() { $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor->to_smarty_php($this); } - #line 1274 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1262 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r184() + function yy_r183() { $this->yystack[ $this->yyidx + -1 ]->minor->append_subtree($this, $this->yystack[ $this->yyidx + 0 ]->minor); $this->_retvalue = $this->yystack[ $this->yyidx + -1 ]->minor; } - #line 1278 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1266 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r185() + function yy_r184() { $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[ $this->yyidx + 0 ]->minor); } - #line 1286 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1274 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r186() + function yy_r185() { $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)' . $this->yystack[ $this->yyidx + -1 ]->minor); } - #line 1294 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1282 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r188() + function yy_r187() { $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack[ $this->yyidx + 0 ]->minor, 1) . '\']->value'); } - #line 1298 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1286 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r190() + function yy_r189() { $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)(' . $this->yystack[ $this->yyidx + -1 ]->minor . ')'); } - #line 1302 "../smarty/lexer/smarty_internal_templateparser.y" + #line 1290 "../smarty/lexer/smarty_internal_templateparser.y" - function yy_r191() + function yy_r190() { $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[ $this->yyidx + 0 ]->minor); } - function yy_r192() + function yy_r191() { $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[ $this->yyidx + 0 ]->minor); } diff --git a/libs/sysplugins/smarty_internal_testinstall.php b/libs/sysplugins/smarty_internal_testinstall.php index 7c736cad..45963b79 100644 --- a/libs/sysplugins/smarty_internal_testinstall.php +++ b/libs/sysplugins/smarty_internal_testinstall.php @@ -372,8 +372,6 @@ class Smarty_Internal_TestInstall 'smarty_internal_compile_append.php' => true, 'smarty_internal_compile_assign.php' => true, 'smarty_internal_compile_block.php' => true, - 'smarty_internal_compile_block_child.php' => true, - 'smarty_internal_compile_block_parent.php' => true, 'smarty_internal_compile_break.php' => true, 'smarty_internal_compile_call.php' => true, 'smarty_internal_compile_capture.php' => true,