1: <?php
   2: 
   3:    4:    5:    6:    7:    8:    9:   10:   11: 
  12: class TP_yyToken implements ArrayAccess
  13: {
  14:     public $string = '';
  15:     public $metadata = array();
  16: 
  17:     public function __construct($s, $m = array())
  18:     {
  19:         if ($s instanceof TP_yyToken) {
  20:             $this->string = $s->string;
  21:             $this->metadata = $s->metadata;
  22:         } else {
  23:             $this->string = (string) $s;
  24:             if ($m instanceof TP_yyToken) {
  25:                 $this->metadata = $m->metadata;
  26:             } elseif (is_array($m)) {
  27:                 $this->metadata = $m;
  28:             }
  29:         }
  30:     }
  31: 
  32:     public function __toString()
  33:     {
  34:         return $this->_string;
  35:     }
  36: 
  37:     public function offsetExists($offset)
  38:     {
  39:         return isset($this->metadata[$offset]);
  40:     }
  41: 
  42:     public function offsetGet($offset)
  43:     {
  44:         return $this->metadata[$offset];
  45:     }
  46: 
  47:     public function offsetSet($offset, $value)
  48:     {
  49:         if ($offset === null) {
  50:             if (isset($value[0])) {
  51:                 $x = ($value instanceof TP_yyToken) ?
  52:                     $value->metadata : $value;
  53:                 $this->metadata = array_merge($this->metadata, $x);
  54: 
  55:                 return;
  56:             }
  57:             $offset = count($this->metadata);
  58:         }
  59:         if ($value === null) {
  60:             return;
  61:         }
  62:         if ($value instanceof TP_yyToken) {
  63:             if ($value->metadata) {
  64:                 $this->metadata[$offset] = $value->metadata;
  65:             }
  66:         } elseif ($value) {
  67:             $this->metadata[$offset] = $value;
  68:         }
  69:     }
  70: 
  71:     public function offsetUnset($offset)
  72:     {
  73:         unset($this->metadata[$offset]);
  74:     }
  75: }
  76: 
  77: class TP_yyStackEntry
  78: {
  79:     public $stateno;       
  80:     public $major;           81: 
  82:     public $minor;   83: 
  84: }
  85: 
  86: ;
  87: 
  88: 
  89: class Smarty_Internal_Templateparser
  90: {
  91:     
  92: 
  93:     const Err1 = "Security error: Call to private object member not allowed";
  94:     const Err2 = "Security error: Call to dynamic object member not allowed";
  95:     const Err3 = "PHP in template not allowed. Use SmartyBC to enable it";
  96:     
  97:     public $successful = true;
  98:     public $retvalue = 0;
  99:     public static $prefix_number = 0;
 100:     private $_string;
 101:     public $yymajor;
 102:     public $last_index;
 103:     public $last_variable;
 104:     public $root_buffer;
 105:     public $current_buffer;
 106:     private $lex;
 107:     private $internalError = false;
 108:     private $strip = false;
 109: 
 110:     function __construct($lex, $compiler)
 111:     {
 112:         $this->lex = $lex;
 113:         $this->compiler = $compiler;
 114:         $this->smarty = $this->compiler->smarty;
 115:         $this->template = $this->compiler->template;
 116:         $this->compiler->has_variable_string = false;
 117:         $this->compiler->prefix_code = array();
 118:         $this->block_nesting_level = 0;
 119:         if ($this->security = isset($this->smarty->security_policy)) {
 120:             $this->php_handling = $this->smarty->security_policy->php_handling;
 121:         } else {
 122:             $this->php_handling = $this->smarty->php_handling;
 123:         }
 124:         $this->is_xml = false;
 125:         $this->asp_tags = (ini_get('asp_tags') != '0');
 126:         $this->current_buffer = $this->root_buffer = new _smarty_template_buffer($this);
 127:     }
 128: 
 129:     public function compileVariable($variable)
 130:     {
 131:         if (strpos($variable, '(') == 0) {
 132:             
 133:             $var = trim($variable, '\'');
 134:             $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable($var, null, true, false)->nocache;
 135:             $this->template->properties['variables'][$var] = $this->compiler->tag_nocache | $this->compiler->nocache;
 136:         }
 137:         
 138:         return '$_smarty_tpl->tpl_vars[' . $variable . ']->value';
 139:     }
 140: 
 141:     
 142: 
 143:     const TP_VERT = 1;
 144:     const TP_COLON = 2;
 145:     const TP_RDEL = 3;
 146:     const TP_COMMENT = 4;
 147:     const TP_PHPSTARTTAG = 5;
 148:     const TP_PHPENDTAG = 6;
 149:     const TP_PHPENDSCRIPT = 7;
 150:     const TP_ASPSTARTTAG = 8;
 151:     const TP_ASPENDTAG = 9;
 152:     const TP_XMLTAG = 10;
 153:     const TP_TEXT = 11;
 154:     const TP_STRIPON = 12;
 155:     const TP_STRIPOFF = 13;
 156:     const TP_BLOCKSOURCE = 14;
 157:     const TP_LITERALSTART = 15;
 158:     const TP_LITERALEND = 16;
 159:     const TP_LITERAL = 17;
 160:     const TP_LDEL = 18;
 161:     const TP_DOLLAR = 19;
 162:     const TP_ID = 20;
 163:     const TP_EQUAL = 21;
 164:     const TP_PTR = 22;
 165:     const TP_LDELIF = 23;
 166:     const TP_LDELFOR = 24;
 167:     const TP_SEMICOLON = 25;
 168:     const TP_INCDEC = 26;
 169:     const TP_TO = 27;
 170:     const TP_STEP = 28;
 171:     const TP_LDELFOREACH = 29;
 172:     const TP_SPACE = 30;
 173:     const TP_AS = 31;
 174:     const TP_APTR = 32;
 175:     const TP_LDELSETFILTER = 33;
 176:     const TP_SMARTYBLOCKCHILDPARENT = 34;
 177:     const TP_LDELSLASH = 35;
 178:     const TP_ATTR = 36;
 179:     const TP_INTEGER = 37;
 180:     const TP_COMMA = 38;
 181:     const TP_OPENP = 39;
 182:     const TP_CLOSEP = 40;
 183:     const TP_MATH = 41;
 184:     const TP_UNIMATH = 42;
 185:     const TP_ANDSYM = 43;
 186:     const TP_ISIN = 44;
 187:     const TP_ISDIVBY = 45;
 188:     const TP_ISNOTDIVBY = 46;
 189:     const TP_ISEVEN = 47;
 190:     const TP_ISNOTEVEN = 48;
 191:     const TP_ISEVENBY = 49;
 192:     const TP_ISNOTEVENBY = 50;
 193:     const TP_ISODD = 51;
 194:     const TP_ISNOTODD = 52;
 195:     const TP_ISODDBY = 53;
 196:     const TP_ISNOTODDBY = 54;
 197:     const TP_INSTANCEOF = 55;
 198:     const TP_QMARK = 56;
 199:     const TP_NOT = 57;
 200:     const TP_TYPECAST = 58;
 201:     const TP_HEX = 59;
 202:     const TP_DOT = 60;
 203:     const TP_SINGLEQUOTESTRING = 61;
 204:     const TP_DOUBLECOLON = 62;
 205:     const TP_AT = 63;
 206:     const TP_HATCH = 64;
 207:     const TP_OPENB = 65;
 208:     const TP_CLOSEB = 66;
 209:     const TP_EQUALS = 67;
 210:     const TP_NOTEQUALS = 68;
 211:     const TP_GREATERTHAN = 69;
 212:     const TP_LESSTHAN = 70;
 213:     const TP_GREATEREQUAL = 71;
 214:     const TP_LESSEQUAL = 72;
 215:     const TP_IDENTITY = 73;
 216:     const TP_NONEIDENTITY = 74;
 217:     const TP_MOD = 75;
 218:     const TP_LAND = 76;
 219:     const TP_LOR = 77;
 220:     const TP_LXOR = 78;
 221:     const TP_QUOTE = 79;
 222:     const TP_BACKTICK = 80;
 223:     const TP_DOLLARID = 81;
 224:     const YY_NO_ACTION = 560;
 225:     const YY_ACCEPT_ACTION = 559;
 226:     const YY_ERROR_ACTION = 558;
 227: 
 228:     const YY_SZ_ACTTAB = 2541;
 229:     static public $yy_action = array(
 230:         
 231:         225, 35, 312, 333, 198, 272, 273, 275, 283, 292,
 232:         
 233:         293, 294, 295, 287, 288, 267, 190, 43, 19, 8,
 234:         
 235:         204, 14, 212, 299, 2, 108, 225, 9, 424, 41,
 236:         
 237:         139, 208, 225, 41, 250, 32, 228, 13, 159, 32,
 238:         
 239:         51, 52, 50, 44, 11, 12, 298, 300, 21, 23,
 240:         
 241:         303, 302, 25, 17, 225, 424, 234, 225, 225, 381,
 242:         
 243:         421, 424, 45, 38, 145, 357, 313, 323, 322, 324,
 244:         
 245:         325, 326, 320, 315, 314, 316, 317, 319, 127, 41,
 246:         
 247:         46, 42, 338, 41, 168, 32, 41, 421, 14, 32,
 248:         
 249:         299, 34, 32, 421, 51, 52, 50, 44, 11, 12,
 250:         
 251:         298, 300, 21, 23, 303, 302, 25, 17, 225, 104,
 252:         
 253:         185, 46, 46, 559, 95, 279, 242, 271, 3, 321,
 254:         
 255:         313, 323, 322, 324, 325, 326, 320, 315, 314, 316,
 256:         
 257:         317, 319, 14, 241, 299, 34, 208, 41, 225, 14,
 258:         
 259:         418, 299, 28, 32, 179, 7, 356, 285, 51, 52,
 260:         
 261:         50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
 262:         
 263:         25, 17, 225, 225, 274, 424, 240, 41, 134, 190,
 264:         
 265:         332, 343, 340, 32, 313, 323, 322, 324, 325, 326,
 266:         
 267:         320, 315, 314, 316, 317, 319, 37, 122, 182, 31,
 268:         
 269:         202, 225, 424, 352, 225, 14, 7, 299, 424, 225,
 270:         
 271:         150, 386, 51, 52, 50, 44, 11, 12, 298, 300,
 272:         
 273:         21, 23, 303, 302, 25, 17, 225, 46, 349, 134,
 274:         
 275:         41, 278, 242, 271, 7, 29, 32, 341, 313, 323,
 276:         
 277:         322, 324, 325, 326, 320, 315, 314, 316, 317, 319,
 278:         
 279:         226, 227, 197, 304, 103, 184, 232, 134, 46, 14,
 280:         
 281:         35, 299, 265, 46, 321, 18, 51, 52, 50, 44,
 282:         
 283:         11, 12, 298, 300, 21, 23, 303, 302, 25, 17,
 284:         
 285:         225, 208, 264, 259, 258, 218, 6, 109, 345, 35,
 286:         
 287:         193, 263, 313, 323, 322, 324, 325, 326, 320, 315,
 288:         
 289:         314, 316, 317, 319, 241, 192, 304, 107, 102, 175,
 290:         
 291:         269, 201, 191, 304, 203, 142, 253, 208, 321, 335,
 292:         
 293:         51, 52, 50, 44, 11, 12, 298, 300, 21, 23,
 294:         
 295:         303, 302, 25, 17, 225, 208, 268, 196, 208, 305,
 296:         
 297:         485, 208, 230, 200, 308, 485, 313, 323, 322, 324,
 298:         
 299:         325, 326, 320, 315, 314, 316, 317, 319, 30, 159,
 300:         
 301:         105, 20, 233, 161, 186, 305, 301, 274, 256, 247,
 302:         
 303:         208, 225, 321, 36, 51, 52, 50, 44, 11, 12,
 304:         
 305:         298, 300, 21, 23, 303, 302, 25, 17, 225, 204,
 306:         
 307:         207, 14, 254, 299, 131, 259, 249, 225, 158, 127,
 308:         
 309:         313, 323, 322, 324, 325, 326, 320, 315, 314, 316,
 310:         
 311:         317, 319, 237, 262, 130, 225, 45, 183, 187, 14,
 312:         
 313:         169, 223, 301, 342, 274, 334, 321, 321, 51, 52,
 314:         
 315:         50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
 316:         
 317:         25, 17, 225, 204, 204, 14, 6, 244, 141, 259,
 318:         
 319:         291, 46, 98, 194, 313, 323, 322, 324, 325, 326,
 320:         
 321:         320, 315, 314, 316, 317, 319, 132, 262, 227, 166,
 322:         
 323:         163, 189, 14, 284, 231, 26, 237, 27, 321, 321,
 324:         
 325:         321, 32, 51, 52, 50, 44, 11, 12, 298, 300,
 326:         
 327:         21, 23, 303, 302, 25, 17, 225, 204, 14, 276,
 328:         
 329:         245, 206, 22, 4, 144, 328, 150, 120, 313, 323,
 330:         
 331:         322, 324, 325, 326, 320, 315, 314, 316, 317, 319,
 332:         
 333:         195, 348, 262, 176, 171, 39, 30, 199, 143, 180,
 334:         
 335:         148, 281, 321, 260, 159, 230, 51, 52, 50, 44,
 336:         
 337:         11, 12, 298, 300, 21, 23, 303, 302, 25, 17,
 338:         
 339:         225, 296, 205, 129, 346, 289, 124, 329, 125, 339,
 340:         
 341:         97, 119, 313, 323, 322, 324, 325, 326, 320, 315,
 342:         
 343:         314, 316, 317, 319, 127, 262, 262, 239, 277, 282,
 344:         
 345:         307, 94, 266, 351, 269, 170, 159, 181, 172, 106,
 346:         
 347:         51, 52, 50, 44, 11, 12, 298, 300, 21, 23,
 348:         
 349:         303, 302, 25, 17, 225, 330, 270, 301, 15, 115,
 350:         
 351:         331, 310, 326, 255, 140, 126, 313, 323, 322, 324,
 352:         
 353:         325, 326, 320, 315, 314, 316, 317, 319, 301, 326,
 354:         
 355:         262, 326, 326, 326, 326, 326, 326, 326, 326, 326,
 356:         
 357:         326, 326, 326, 243, 51, 52, 50, 44, 11, 12,
 358:         
 359:         298, 300, 21, 23, 303, 302, 25, 17, 225, 40,
 360:         
 361:         326, 326, 326, 326, 326, 326, 326, 113, 99, 100,
 362:         
 363:         313, 323, 322, 324, 325, 326, 320, 315, 314, 316,
 364:         
 365:         317, 319, 262, 262, 262, 326, 326, 326, 326, 326,
 366:         
 367:         326, 326, 326, 326, 326, 326, 326, 326, 51, 52,
 368:         
 369:         50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
 370:         
 371:         25, 17, 225, 326, 326, 326, 326, 326, 326, 326,
 372:         
 373:         326, 114, 326, 326, 313, 323, 322, 324, 325, 326,
 374:         
 375:         320, 315, 314, 316, 317, 319, 262, 326, 326, 326,
 376:         
 377:         326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
 378:         
 379:         326, 286, 51, 52, 50, 44, 11, 12, 298, 300,
 380:         
 381:         21, 23, 303, 302, 25, 17, 225, 326, 326, 326,
 382:         
 383:         326, 326, 326, 326, 326, 326, 326, 326, 313, 323,
 384:         
 385:         322, 324, 325, 326, 320, 315, 314, 316, 317, 319,
 386:         
 387:         326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
 388:         
 389:         326, 326, 326, 326, 326, 326, 51, 52, 50, 44,
 390:         
 391:         11, 12, 298, 300, 21, 23, 303, 302, 25, 17,
 392:         
 393:         326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
 394:         
 395:         159, 326, 313, 323, 322, 324, 325, 326, 320, 315,
 396:         
 397:         314, 316, 317, 319, 326, 326, 326, 326, 51, 52,
 398:         
 399:         50, 44, 11, 12, 298, 300, 21, 23, 303, 302,
 400:         
 401:         25, 17, 326, 326, 326, 326, 326, 326, 212, 326,
 402:         
 403:         326, 326, 326, 9, 313, 323, 322, 324, 325, 326,
 404:         
 405:         320, 315, 314, 316, 317, 319, 326, 326, 326, 326,
 406:         
 407:         326, 326, 326, 8, 138, 211, 326, 326, 2, 108,
 408:         
 409:         326, 235, 326, 326, 139, 157, 165, 326, 250, 128,
 410:         
 411:         228, 326, 246, 326, 24, 321, 326, 48, 261, 326,
 412:         
 413:         326, 251, 336, 353, 326, 311, 326, 301, 174, 173,
 414:         
 415:         326, 326, 49, 47, 280, 238, 297, 321, 321, 105,
 416:         
 417:         1, 337, 326, 147, 326, 326, 326, 326, 326, 301,
 418:         
 419:         301, 8, 123, 92, 96, 257, 2, 108, 326, 311,
 420:         
 421:         326, 326, 139, 326, 326, 235, 250, 309, 228, 146,
 422:         
 423:         246, 326, 24, 128, 162, 48, 326, 326, 326, 326,
 424:         
 425:         235, 326, 350, 321, 155, 251, 336, 353, 128, 311,
 426:         
 427:         49, 47, 280, 238, 297, 301, 326, 105, 1, 326,
 428:         
 429:         251, 336, 353, 326, 311, 14, 326, 299, 326, 8,
 430:         
 431:         138, 224, 96, 326, 2, 108, 326, 41, 326, 252,
 432:         
 433:         139, 235, 326, 32, 250, 153, 228, 326, 246, 128,
 434:         
 435:         24, 326, 326, 48, 326, 326, 326, 326, 326, 326,
 436:         
 437:         326, 251, 336, 353, 326, 311, 326, 326, 49, 47,
 438:         
 439:         280, 238, 297, 326, 326, 105, 1, 326, 326, 326,
 440:         
 441:         326, 326, 14, 326, 299, 326, 326, 8, 142, 224,
 442:         
 443:         96, 326, 2, 108, 41, 235, 248, 326, 139, 154,
 444:         
 445:         32, 235, 250, 128, 228, 156, 246, 326, 33, 128,
 446:         
 447:         326, 48, 326, 326, 326, 251, 336, 353, 326, 311,
 448:         
 449:         326, 251, 336, 353, 326, 311, 49, 47, 280, 238,
 450:         
 451:         297, 326, 326, 105, 1, 326, 326, 326, 326, 326,
 452:         
 453:         326, 326, 326, 326, 326, 8, 138, 213, 96, 326,
 454:         
 455:         2, 108, 326, 326, 326, 326, 139, 235, 326, 326,
 456:         
 457:         250, 149, 228, 326, 246, 128, 24, 326, 326, 48,
 458:         
 459:         326, 326, 326, 326, 326, 326, 326, 251, 336, 353,
 460:         
 461:         326, 311, 326, 326, 49, 47, 280, 238, 297, 326,
 462:         
 463:         326, 105, 1, 326, 326, 326, 326, 326, 326, 326,
 464:         
 465:         326, 326, 326, 8, 138, 210, 96, 326, 2, 108,
 466:         
 467:         326, 326, 326, 326, 139, 235, 326, 326, 250, 151,
 468:         
 469:         228, 326, 219, 128, 24, 326, 326, 48, 326, 326,
 470:         
 471:         326, 326, 326, 326, 326, 251, 336, 353, 326, 311,
 472:         
 473:         326, 326, 49, 47, 280, 238, 297, 326, 326, 105,
 474:         
 475:         1, 326, 326, 326, 326, 326, 326, 326, 326, 326,
 476:         
 477:         326, 8, 136, 224, 96, 326, 2, 108, 326, 326,
 478:         
 479:         326, 326, 139, 235, 326, 326, 250, 152, 228, 326,
 480:         
 481:         246, 128, 24, 326, 326, 48, 326, 326, 326, 326,
 482:         
 483:         326, 326, 326, 251, 336, 353, 326, 311, 326, 326,
 484:         
 485:         49, 47, 280, 238, 297, 326, 326, 105, 1, 326,
 486:         
 487:         225, 326, 391, 326, 422, 326, 326, 326, 326, 8,
 488:         
 489:         135, 224, 96, 326, 2, 108, 326, 326, 326, 326,
 490:         
 491:         139, 236, 229, 326, 250, 326, 228, 326, 246, 41,
 492:         
 493:         5, 422, 326, 48, 326, 32, 326, 422, 7, 326,
 494:         
 495:         7, 326, 326, 326, 198, 178, 326, 326, 49, 47,
 496:         
 497:         280, 238, 297, 326, 321, 105, 1, 43, 19, 326,
 498:         
 499:         326, 134, 326, 134, 326, 326, 326, 8, 138, 209,
 500:         
 501:         96, 208, 2, 108, 326, 326, 326, 326, 139, 326,
 502:         
 503:         326, 326, 250, 326, 228, 326, 246, 326, 24, 198,
 504:         
 505:         164, 48, 326, 326, 326, 326, 326, 326, 326, 321,
 506:         
 507:         326, 326, 43, 19, 326, 326, 49, 47, 280, 238,
 508:         
 509:         297, 326, 326, 105, 1, 326, 208, 326, 326, 326,
 510:         
 511:         326, 326, 326, 326, 326, 8, 142, 224, 96, 326,
 512:         
 513:         2, 108, 326, 326, 326, 326, 139, 326, 326, 326,
 514:         
 515:         250, 326, 228, 326, 246, 326, 33, 198, 177, 48,
 516:         
 517:         326, 326, 326, 326, 326, 326, 326, 321, 326, 326,
 518:         
 519:         43, 19, 326, 326, 49, 47, 280, 238, 297, 326,
 520:         
 521:         326, 105, 326, 326, 208, 326, 326, 326, 326, 326,
 522:         
 523:         326, 326, 326, 8, 142, 222, 96, 326, 2, 108,
 524:         
 525:         326, 326, 326, 326, 139, 326, 326, 326, 250, 326,
 526:         
 527:         228, 326, 246, 326, 33, 326, 467, 48, 326, 326,
 528:         
 529:         326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
 530:         
 531:         326, 326, 49, 47, 280, 238, 297, 326, 467, 105,
 532:         
 533:         467, 467, 326, 467, 467, 326, 326, 326, 326, 467,
 534:         
 535:         326, 467, 7, 467, 96, 326, 326, 326, 326, 326,
 536:         
 537:         326, 326, 326, 326, 326, 235, 326, 326, 467, 121,
 538:         
 539:         326, 326, 86, 128, 326, 134, 326, 326, 326, 467,
 540:         
 541:         326, 290, 318, 326, 326, 251, 336, 353, 326, 311,
 542:         
 543:         326, 326, 326, 467, 326, 326, 326, 235, 326, 216,
 544:         
 545:         354, 133, 326, 326, 68, 117, 249, 326, 326, 326,
 546:         
 547:         326, 326, 326, 290, 318, 326, 326, 251, 336, 353,
 548:         
 549:         235, 311, 326, 326, 133, 326, 326, 76, 128, 326,
 550:         
 551:         326, 326, 326, 326, 326, 326, 290, 318, 326, 235,
 552:         
 553:         251, 336, 353, 133, 311, 326, 76, 128, 326, 326,
 554:         
 555:         326, 221, 326, 326, 326, 290, 318, 326, 326, 251,
 556:         
 557:         336, 353, 326, 311, 326, 326, 326, 326, 235, 326,
 558:         
 559:         215, 326, 121, 326, 326, 86, 128, 326, 326, 326,
 560:         
 561:         326, 326, 326, 326, 290, 318, 326, 326, 251, 336,
 562:         
 563:         353, 235, 311, 326, 326, 133, 326, 326, 59, 117,
 564:         
 565:         137, 326, 326, 355, 326, 326, 326, 290, 318, 326,
 566:         
 567:         326, 251, 336, 353, 235, 311, 326, 326, 133, 326,
 568:         
 569:         326, 76, 128, 326, 326, 326, 326, 326, 326, 326,
 570:         
 571:         290, 318, 326, 235, 251, 336, 353, 110, 311, 326,
 572:         
 573:         69, 128, 326, 326, 326, 217, 326, 326, 326, 290,
 574:         
 575:         318, 326, 326, 251, 336, 353, 326, 311, 326, 235,
 576:         
 577:         101, 160, 326, 133, 326, 326, 57, 128, 326, 326,
 578:         
 579:         321, 326, 326, 43, 19, 290, 318, 326, 235, 251,
 580:         
 581:         336, 353, 133, 311, 326, 73, 128, 208, 326, 326,
 582:         
 583:         326, 326, 326, 326, 290, 318, 326, 326, 251, 336,
 584:         
 585:         353, 235, 311, 326, 326, 133, 326, 326, 78, 128,
 586:         
 587:         326, 326, 326, 326, 326, 326, 326, 290, 318, 326,
 588:         
 589:         235, 251, 336, 353, 133, 311, 326, 70, 128, 326,
 590:         
 591:         326, 326, 326, 326, 326, 326, 290, 318, 326, 326,
 592:         
 593:         251, 336, 353, 326, 311, 326, 235, 198, 167, 326,
 594:         
 595:         133, 326, 326, 64, 128, 326, 326, 321, 326, 326,
 596:         
 597:         43, 19, 290, 318, 326, 235, 251, 336, 353, 133,
 598:         
 599:         311, 326, 67, 128, 208, 326, 326, 326, 326, 326,
 600:         
 601:         326, 290, 318, 326, 326, 251, 336, 353, 235, 311,
 602:         
 603:         326, 326, 133, 326, 326, 88, 128, 326, 326, 326,
 604:         
 605:         326, 326, 326, 326, 290, 318, 326, 235, 251, 336,
 606:         
 607:         353, 133, 311, 326, 82, 128, 326, 326, 326, 326,
 608:         
 609:         326, 326, 326, 290, 318, 326, 326, 251, 336, 353,
 610:         
 611:         326, 311, 326, 235, 198, 188, 326, 133, 326, 326,
 612:         
 613:         72, 128, 326, 326, 321, 326, 326, 43, 19, 290,
 614:         
 615:         318, 326, 235, 251, 336, 353, 93, 311, 326, 55,
 616:         
 617:         116, 208, 326, 326, 326, 326, 326, 326, 290, 318,
 618:         
 619:         326, 326, 251, 336, 353, 235, 311, 326, 326, 112,
 620:         
 621:         326, 326, 87, 128, 326, 326, 326, 326, 326, 326,
 622:         
 623:         326, 290, 318, 326, 235, 251, 336, 353, 133, 311,
 624:         
 625:         326, 77, 128, 326, 326, 326, 326, 326, 326, 326,
 626:         
 627:         290, 318, 326, 326, 251, 336, 353, 326, 311, 326,
 628:         
 629:         235, 326, 326, 326, 133, 326, 326, 89, 128, 326,
 630:         
 631:         326, 326, 326, 326, 326, 326, 290, 318, 326, 235,
 632:         
 633:         251, 336, 353, 133, 311, 326, 75, 128, 326, 326,
 634:         
 635:         326, 326, 326, 326, 326, 290, 318, 326, 326, 251,
 636:         
 637:         336, 353, 235, 311, 326, 326, 133, 326, 326, 91,
 638:         
 639:         128, 326, 326, 326, 326, 326, 326, 326, 290, 318,
 640:         
 641:         326, 235, 251, 336, 353, 133, 311, 326, 62, 128,
 642:         
 643:         326, 326, 326, 326, 326, 326, 326, 290, 318, 326,
 644:         
 645:         326, 251, 336, 353, 326, 311, 326, 235, 326, 326,
 646:         
 647:         326, 93, 326, 326, 53, 116, 326, 326, 326, 326,
 648:         
 649:         326, 326, 326, 290, 318, 326, 235, 220, 336, 353,
 650:         
 651:         133, 311, 326, 63, 128, 326, 326, 326, 326, 326,
 652:         
 653:         326, 326, 290, 318, 326, 326, 251, 336, 353, 235,
 654:         
 655:         311, 326, 326, 133, 326, 326, 61, 128, 326, 326,
 656:         
 657:         326, 326, 326, 326, 326, 290, 318, 326, 235, 214,
 658:         
 659:         336, 353, 133, 311, 326, 71, 128, 326, 326, 326,
 660:         
 661:         326, 326, 326, 326, 290, 318, 326, 326, 251, 336,
 662:         
 663:         353, 326, 311, 326, 235, 326, 326, 326, 133, 326,
 664:         
 665:         326, 85, 128, 326, 326, 326, 326, 326, 326, 326,
 666:         
 667:         290, 318, 326, 235, 251, 336, 353, 133, 311, 326,
 668:         
 669:         65, 128, 326, 326, 326, 326, 326, 326, 326, 290,
 670:         
 671:         318, 326, 326, 251, 336, 353, 235, 311, 326, 326,
 672:         
 673:         111, 326, 326, 74, 128, 326, 326, 326, 326, 326,
 674:         
 675:         326, 326, 290, 318, 326, 235, 251, 336, 353, 118,
 676:         
 677:         311, 326, 58, 128, 326, 326, 326, 326, 326, 326,
 678:         
 679:         326, 290, 318, 326, 326, 251, 336, 353, 326, 311,
 680:         
 681:         326, 235, 326, 326, 326, 133, 326, 326, 56, 128,
 682:         
 683:         326, 326, 326, 326, 326, 326, 326, 290, 318, 326,
 684:         
 685:         235, 251, 336, 353, 133, 311, 326, 79, 128, 326,
 686:         
 687:         326, 326, 326, 326, 326, 326, 290, 318, 326, 326,
 688:         
 689:         251, 336, 353, 235, 311, 326, 326, 133, 326, 326,
 690:         
 691:         80, 128, 326, 326, 326, 326, 326, 326, 326, 290,
 692:         
 693:         318, 326, 235, 251, 336, 353, 133, 311, 326, 84,
 694:         
 695:         128, 326, 326, 326, 326, 326, 326, 326, 290, 318,
 696:         
 697:         326, 326, 251, 336, 353, 326, 311, 326, 235, 326,
 698:         
 699:         326, 326, 133, 326, 326, 66, 128, 326, 326, 326,
 700:         
 701:         326, 326, 326, 326, 290, 318, 326, 344, 251, 336,
 702:         
 703:         353, 326, 311, 326, 10, 326, 326, 326, 326, 2,
 704:         
 705:         108, 344, 326, 326, 326, 139, 326, 326, 10, 250,
 706:         
 707:         326, 228, 326, 2, 108, 326, 326, 326, 326, 139,
 708:         
 709:         326, 326, 326, 250, 326, 228, 235, 326, 326, 326,
 710:         
 711:         133, 326, 326, 60, 128, 326, 326, 326, 326, 326,
 712:         
 713:         326, 326, 290, 318, 326, 326, 251, 336, 353, 326,
 714:         
 715:         311, 326, 326, 326, 326, 306, 16, 347, 326, 235,
 716:         
 717:         326, 326, 326, 133, 326, 326, 81, 128, 326, 327,
 718:         
 719:         16, 347, 326, 326, 326, 290, 318, 326, 326, 251,
 720:         
 721:         336, 353, 326, 311, 326, 326, 235, 326, 326, 326,
 722:         
 723:         133, 326, 326, 68, 128, 326, 326, 326, 326, 326,
 724:         
 725:         326, 326, 290, 318, 326, 326, 251, 336, 353, 326,
 726:         
 727:         311, 326, 235, 326, 326, 326, 133, 326, 326, 54,
 728:         
 729:         128, 326, 326, 326, 326, 326, 326, 326, 290, 318,
 730:         
 731:         326, 326, 251, 336, 353, 235, 311, 326, 326, 133,
 732:         
 733:         326, 326, 83, 128, 326, 326, 235, 326, 326, 326,
 734:         
 735:         133, 290, 318, 90, 128, 251, 336, 353, 326, 311,
 736:         
 737:         326, 326, 290, 318, 326, 326, 251, 336, 353, 326,
 738:         
 739:         311,
 740:     );
 741:     static public $yy_lookahead = array(
 742:         
 743:         1, 38, 3, 40, 91, 4, 5, 6, 7, 8,
 744:         
 745:         9, 10, 11, 12, 13, 14, 15, 104, 105, 18,
 746:         
 747:         118, 18, 60, 20, 23, 24, 1, 65, 3, 30,
 748:         
 749:         29, 118, 1, 30, 33, 36, 35, 21, 22, 36,
 750:         
 751:         41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
 752:         
 753:         51, 52, 53, 54, 1, 30, 31, 1, 1, 3,
 754:         
 755:         3, 36, 2, 18, 19, 20, 67, 68, 69, 70,
 756:         
 757:         71, 72, 73, 74, 75, 76, 77, 78, 62, 30,
 758:         
 759:         55, 28, 37, 30, 111, 36, 30, 30, 18, 36,
 760:         
 761:         20, 21, 36, 36, 41, 42, 43, 44, 45, 46,
 762:         
 763:         47, 48, 49, 50, 51, 52, 53, 54, 1, 91,
 764:         
 765:         92, 55, 55, 83, 84, 85, 86, 87, 38, 101,
 766:         
 767:         67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
 768:         
 769:         77, 78, 18, 63, 20, 21, 118, 30, 1, 18,
 770:         
 771:         3, 20, 21, 36, 111, 39, 66, 26, 41, 42,
 772:         
 773:         43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
 774:         
 775:         53, 54, 1, 1, 26, 3, 60, 30, 62, 15,
 776:         
 777:         16, 17, 66, 36, 67, 68, 69, 70, 71, 72,
 778:         
 779:         73, 74, 75, 76, 77, 78, 18, 19, 20, 32,
 780:         
 781:         100, 1, 30, 109, 1, 18, 39, 20, 36, 1,
 782:         
 783:         116, 3, 41, 42, 43, 44, 45, 46, 47, 48,
 784:         
 785:         49, 50, 51, 52, 53, 54, 1, 55, 80, 62,
 786:         
 787:         30, 85, 86, 87, 39, 32, 36, 66, 67, 68,
 788:         
 789:         69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
 790:         
 791:         63, 86, 114, 115, 91, 92, 31, 62, 55, 18,
 792:         
 793:         38, 20, 40, 55, 101, 18, 41, 42, 43, 44,
 794:         
 795:         45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
 796:         
 797:         1, 118, 3, 94, 95, 96, 39, 122, 123, 38,
 798:         
 799:         91, 40, 67, 68, 69, 70, 71, 72, 73, 74,
 800:         
 801:         75, 76, 77, 78, 63, 114, 115, 100, 91, 92,
 802:         
 803:         112, 91, 114, 115, 91, 19, 20, 118, 101, 20,
 804:         
 805:         41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
 806:         
 807:         51, 52, 53, 54, 1, 118, 3, 100, 118, 119,
 808:         
 809:         60, 118, 2, 91, 3, 65, 67, 68, 69, 70,
 810:         
 811:         71, 72, 73, 74, 75, 76, 77, 78, 21, 22,
 812:         
 813:         64, 21, 63, 92, 111, 119, 113, 26, 19, 20,
 814:         
 815:         118, 1, 101, 21, 41, 42, 43, 44, 45, 46,
 816:         
 817:         47, 48, 49, 50, 51, 52, 53, 54, 1, 118,
 818:         
 819:         3, 18, 22, 20, 19, 94, 95, 1, 98, 62,
 820:         
 821:         67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
 822:         
 823:         77, 78, 60, 113, 39, 1, 2, 92, 92, 18,
 824:         
 825:         111, 20, 113, 87, 26, 89, 101, 101, 41, 42,
 826:         
 827:         43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
 828:         
 829:         53, 54, 1, 118, 118, 18, 39, 20, 19, 94,
 830:         
 831:         95, 55, 98, 25, 67, 68, 69, 70, 71, 72,
 832:         
 833:         73, 74, 75, 76, 77, 78, 38, 113, 86, 92,
 834:         
 835:         92, 92, 18, 40, 20, 30, 60, 2, 101, 101,
 836:         
 837:         101, 36, 41, 42, 43, 44, 45, 46, 47, 48,
 838:         
 839:         49, 50, 51, 52, 53, 54, 1, 118, 18, 109,
 840:         
 841:         20, 20, 56, 39, 19, 123, 116, 98, 67, 68,
 842:         
 843:         69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
 844:         
 845:         25, 80, 113, 92, 64, 27, 21, 20, 19, 64,
 846:         
 847:         20, 3, 101, 20, 22, 2, 41, 42, 43, 44,
 848:         
 849:         45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
 850:         
 851:         1, 20, 3, 19, 3, 20, 20, 20, 19, 66,
 852:         
 853:         98, 98, 67, 68, 69, 70, 71, 72, 73, 74,
 854:         
 855:         75, 76, 77, 78, 62, 113, 113, 20, 37, 37,
 856:         
 857:         3, 20, 20, 101, 112, 111, 22, 111, 111, 111,
 858:         
 859:         41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
 860:         
 861:         51, 52, 53, 54, 1, 116, 30, 113, 97, 88,
 862:         
 863:         16, 115, 124, 97, 99, 98, 67, 68, 69, 70,
 864:         
 865:         71, 72, 73, 74, 75, 76, 77, 78, 113, 124,
 866:         
 867:         113, 124, 124, 124, 124, 124, 124, 124, 124, 124,
 868:         
 869:         124, 124, 124, 40, 41, 42, 43, 44, 45, 46,
 870:         
 871:         47, 48, 49, 50, 51, 52, 53, 54, 1, 2,
 872:         
 873:         124, 124, 124, 124, 124, 124, 124, 98, 98, 98,
 874:         
 875:         67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
 876:         
 877:         77, 78, 113, 113, 113, 124, 124, 124, 124, 124,
 878:         
 879:         124, 124, 124, 124, 124, 124, 124, 124, 41, 42,
 880:         
 881:         43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
 882:         
 883:         53, 54, 1, 124, 124, 124, 124, 124, 124, 124,
 884:         
 885:         124, 98, 124, 124, 67, 68, 69, 70, 71, 72,
 886:         
 887:         73, 74, 75, 76, 77, 78, 113, 124, 124, 124,
 888:         
 889:         124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
 890:         
 891:         124, 40, 41, 42, 43, 44, 45, 46, 47, 48,
 892:         
 893:         49, 50, 51, 52, 53, 54, 1, 124, 124, 124,
 894:         
 895:         124, 124, 124, 124, 124, 124, 124, 124, 67, 68,
 896:         
 897:         69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
 898:         
 899:         124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
 900:         
 901:         124, 124, 124, 124, 124, 124, 41, 42, 43, 44,
 902:         
 903:         45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
 904:         
 905:         124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
 906:         
 907:         22, 124, 67, 68, 69, 70, 71, 72, 73, 74,
 908:         
 909:         75, 76, 77, 78, 124, 124, 124, 124, 41, 42,
 910:         
 911:         43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
 912:         
 913:         53, 54, 124, 124, 124, 124, 124, 124, 60, 124,
 914:         
 915:         124, 124, 124, 65, 67, 68, 69, 70, 71, 72,
 916:         
 917:         73, 74, 75, 76, 77, 78, 124, 124, 124, 124,
 918:         
 919:         124, 124, 124, 18, 19, 20, 124, 124, 23, 24,
 920:         
 921:         124, 86, 124, 124, 29, 90, 92, 124, 33, 94,
 922:         
 923:         35, 124, 37, 124, 39, 101, 124, 42, 103, 124,
 924:         
 925:         124, 106, 107, 108, 124, 110, 124, 113, 92, 92,
 926:         
 927:         124, 124, 57, 58, 59, 60, 61, 101, 101, 64,
 928:         
 929:         65, 66, 124, 94, 124, 124, 124, 124, 124, 113,
 930:         
 931:         113, 18, 19, 20, 79, 106, 23, 24, 124, 110,
 932:         
 933:         124, 124, 29, 124, 124, 86, 33, 34, 35, 90,
 934:         
 935:         37, 124, 39, 94, 92, 42, 124, 124, 124, 124,
 936:         
 937:         86, 124, 103, 101, 90, 106, 107, 108, 94, 110,
 938:         
 939:         57, 58, 59, 60, 61, 113, 124, 64, 65, 124,
 940:         
 941:         106, 107, 108, 124, 110, 18, 124, 20, 124, 18,
 942:         
 943:         19, 20, 79, 124, 23, 24, 124, 30, 124, 32,
 944:         
 945:         29, 86, 124, 36, 33, 90, 35, 124, 37, 94,
 946:         
 947:         39, 124, 124, 42, 124, 124, 124, 124, 124, 124,
 948:         
 949:         124, 106, 107, 108, 124, 110, 124, 124, 57, 58,
 950:         
 951:         59, 60, 61, 124, 124, 64, 65, 124, 124, 124,
 952:         
 953:         124, 124, 18, 124, 20, 124, 124, 18, 19, 20,
 954:         
 955:         79, 124, 23, 24, 30, 86, 32, 124, 29, 90,
 956:         
 957:         36, 86, 33, 94, 35, 90, 37, 124, 39, 94,
 958:         
 959:         124, 42, 124, 124, 124, 106, 107, 108, 124, 110,
 960:         
 961:         124, 106, 107, 108, 124, 110, 57, 58, 59, 60,
 962:         
 963:         61, 124, 124, 64, 65, 124, 124, 124, 124, 124,
 964:         
 965:         124, 124, 124, 124, 124, 18, 19, 20, 79, 124,
 966:         
 967:         23, 24, 124, 124, 124, 124, 29, 86, 124, 124,
 968:         
 969:         33, 90, 35, 124, 37, 94, 39, 124, 124, 42,
 970:         
 971:         124, 124, 124, 124, 124, 124, 124, 106, 107, 108,
 972:         
 973:         124, 110, 124, 124, 57, 58, 59, 60, 61, 124,
 974:         
 975:         124, 64, 65, 124, 124, 124, 124, 124, 124, 124,
 976:         
 977:         124, 124, 124, 18, 19, 20, 79, 124, 23, 24,
 978:         
 979:         124, 124, 124, 124, 29, 86, 124, 124, 33, 90,
 980:         
 981:         35, 124, 37, 94, 39, 124, 124, 42, 124, 124,
 982:         
 983:         124, 124, 124, 124, 124, 106, 107, 108, 124, 110,
 984:         
 985:         124, 124, 57, 58, 59, 60, 61, 124, 124, 64,
 986:         
 987:         65, 124, 124, 124, 124, 124, 124, 124, 124, 124,
 988:         
 989:         124, 18, 19, 20, 79, 124, 23, 24, 124, 124,
 990:         
 991:         124, 124, 29, 86, 124, 124, 33, 90, 35, 124,
 992:         
 993:         37, 94, 39, 124, 124, 42, 124, 124, 124, 124,
 994:         
 995:         124, 124, 124, 106, 107, 108, 124, 110, 124, 124,
 996:         
 997:         57, 58, 59, 60, 61, 124, 124, 64, 65, 124,
 998:         
 999:         1, 124, 3, 124, 3, 124, 124, 124, 124, 18,
1000:         
1001:         19, 20, 79, 124, 23, 24, 124, 124, 124, 124,
1002:         
1003:         29, 22, 21, 124, 33, 124, 35, 124, 37, 30,
1004:         
1005:         39, 30, 124, 42, 124, 36, 124, 36, 39, 124,
1006:         
1007:         39, 124, 124, 124, 91, 92, 124, 124, 57, 58,
1008:         
1009:         59, 60, 61, 124, 101, 64, 65, 104, 105, 124,
1010:         
1011:         124, 62, 124, 62, 124, 124, 124, 18, 19, 20,
1012:         
1013:         79, 118, 23, 24, 124, 124, 124, 124, 29, 124,
1014:         
1015:         124, 124, 33, 124, 35, 124, 37, 124, 39, 91,
1016:         
1017:         92, 42, 124, 124, 124, 124, 124, 124, 124, 101,
1018:         
1019:         124, 124, 104, 105, 124, 124, 57, 58, 59, 60,
1020:         
1021:         61, 124, 124, 64, 65, 124, 118, 124, 124, 124,
1022:         
1023:         124, 124, 124, 124, 124, 18, 19, 20, 79, 124,
1024:         
1025:         23, 24, 124, 124, 124, 124, 29, 124, 124, 124,
1026:         
1027:         33, 124, 35, 124, 37, 124, 39, 91, 92, 42,
1028:         
1029:         124, 124, 124, 124, 124, 124, 124, 101, 124, 124,
1030:         
1031:         104, 105, 124, 124, 57, 58, 59, 60, 61, 124,
1032:         
1033:         124, 64, 124, 124, 118, 124, 124, 124, 124, 124,
1034:         
1035:         124, 124, 124, 18, 19, 20, 79, 124, 23, 24,
1036:         
1037:         124, 124, 124, 124, 29, 124, 124, 124, 33, 124,
1038:         
1039:         35, 124, 37, 124, 39, 124, 3, 42, 124, 124,
1040:         
1041:         124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
1042:         
1043:         124, 124, 57, 58, 59, 60, 61, 124, 25, 64,
1044:         
1045:         27, 28, 124, 30, 31, 124, 124, 124, 124, 36,
1046:         
1047:         124, 38, 39, 40, 79, 124, 124, 124, 124, 124,
1048:         
1049:         124, 124, 124, 124, 124, 86, 124, 124, 55, 90,
1050:         
1051:         124, 124, 93, 94, 124, 62, 124, 124, 124, 66,
1052:         
1053:         124, 102, 103, 124, 124, 106, 107, 108, 124, 110,
1054:         
1055:         124, 124, 124, 80, 124, 124, 124, 86, 124, 120,
1056:         
1057:         121, 90, 124, 124, 93, 94, 95, 124, 124, 124,
1058:         
1059:         124, 124, 124, 102, 103, 124, 124, 106, 107, 108,
1060:         
1061:         86, 110, 124, 124, 90, 124, 124, 93, 94, 124,
1062:         
1063:         124, 124, 124, 124, 124, 124, 102, 103, 124, 86,
1064:         
1065:         106, 107, 108, 90, 110, 124, 93, 94, 124, 124,
1066:         
1067:         124, 117, 124, 124, 124, 102, 103, 124, 124, 106,
1068:         
1069:         107, 108, 124, 110, 124, 124, 124, 124, 86, 124,
1070:         
1071:         117, 124, 90, 124, 124, 93, 94, 124, 124, 124,
1072:         
1073:         124, 124, 124, 124, 102, 103, 124, 124, 106, 107,
1074:         
1075:         108, 86, 110, 124, 124, 90, 124, 124, 93, 94,
1076:         
1077:         95, 124, 124, 121, 124, 124, 124, 102, 103, 124,
1078:         
1079:         124, 106, 107, 108, 86, 110, 124, 124, 90, 124,
1080:         
1081:         124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
1082:         
1083:         102, 103, 124, 86, 106, 107, 108, 90, 110, 124,
1084:         
1085:         93, 94, 124, 124, 124, 117, 124, 124, 124, 102,
1086:         
1087:         103, 124, 124, 106, 107, 108, 124, 110, 124, 86,
1088:         
1089:         91, 92, 124, 90, 124, 124, 93, 94, 124, 124,
1090:         
1091:         101, 124, 124, 104, 105, 102, 103, 124, 86, 106,
1092:         
1093:         107, 108, 90, 110, 124, 93, 94, 118, 124, 124,
1094:         
1095:         124, 124, 124, 124, 102, 103, 124, 124, 106, 107,
1096:         
1097:         108, 86, 110, 124, 124, 90, 124, 124, 93, 94,
1098:         
1099:         124, 124, 124, 124, 124, 124, 124, 102, 103, 124,
1100:         
1101:         86, 106, 107, 108, 90, 110, 124, 93, 94, 124,
1102:         
1103:         124, 124, 124, 124, 124, 124, 102, 103, 124, 124,
1104:         
1105:         106, 107, 108, 124, 110, 124, 86, 91, 92, 124,
1106:         
1107:         90, 124, 124, 93, 94, 124, 124, 101, 124, 124,
1108:         
1109:         104, 105, 102, 103, 124, 86, 106, 107, 108, 90,
1110:         
1111:         110, 124, 93, 94, 118, 124, 124, 124, 124, 124,
1112:         
1113:         124, 102, 103, 124, 124, 106, 107, 108, 86, 110,
1114:         
1115:         124, 124, 90, 124, 124, 93, 94, 124, 124, 124,
1116:         
1117:         124, 124, 124, 124, 102, 103, 124, 86, 106, 107,
1118:         
1119:         108, 90, 110, 124, 93, 94, 124, 124, 124, 124,
1120:         
1121:         124, 124, 124, 102, 103, 124, 124, 106, 107, 108,
1122:         
1123:         124, 110, 124, 86, 91, 92, 124, 90, 124, 124,
1124:         
1125:         93, 94, 124, 124, 101, 124, 124, 104, 105, 102,
1126:         
1127:         103, 124, 86, 106, 107, 108, 90, 110, 124, 93,
1128:         
1129:         94, 118, 124, 124, 124, 124, 124, 124, 102, 103,
1130:         
1131:         124, 124, 106, 107, 108, 86, 110, 124, 124, 90,
1132:         
1133:         124, 124, 93, 94, 124, 124, 124, 124, 124, 124,
1134:         
1135:         124, 102, 103, 124, 86, 106, 107, 108, 90, 110,
1136:         
1137:         124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
1138:         
1139:         102, 103, 124, 124, 106, 107, 108, 124, 110, 124,
1140:         
1141:         86, 124, 124, 124, 90, 124, 124, 93, 94, 124,
1142:         
1143:         124, 124, 124, 124, 124, 124, 102, 103, 124, 86,
1144:         
1145:         106, 107, 108, 90, 110, 124, 93, 94, 124, 124,
1146:         
1147:         124, 124, 124, 124, 124, 102, 103, 124, 124, 106,
1148:         
1149:         107, 108, 86, 110, 124, 124, 90, 124, 124, 93,
1150:         
1151:         94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
1152:         
1153:         124, 86, 106, 107, 108, 90, 110, 124, 93, 94,
1154:         
1155:         124, 124, 124, 124, 124, 124, 124, 102, 103, 124,
1156:         
1157:         124, 106, 107, 108, 124, 110, 124, 86, 124, 124,
1158:         
1159:         124, 90, 124, 124, 93, 94, 124, 124, 124, 124,
1160:         
1161:         124, 124, 124, 102, 103, 124, 86, 106, 107, 108,
1162:         
1163:         90, 110, 124, 93, 94, 124, 124, 124, 124, 124,
1164:         
1165:         124, 124, 102, 103, 124, 124, 106, 107, 108, 86,
1166:         
1167:         110, 124, 124, 90, 124, 124, 93, 94, 124, 124,
1168:         
1169:         124, 124, 124, 124, 124, 102, 103, 124, 86, 106,
1170:         
1171:         107, 108, 90, 110, 124, 93, 94, 124, 124, 124,
1172:         
1173:         124, 124, 124, 124, 102, 103, 124, 124, 106, 107,
1174:         
1175:         108, 124, 110, 124, 86, 124, 124, 124, 90, 124,
1176:         
1177:         124, 93, 94, 124, 124, 124, 124, 124, 124, 124,
1178:         
1179:         102, 103, 124, 86, 106, 107, 108, 90, 110, 124,
1180:         
1181:         93, 94, 124, 124, 124, 124, 124, 124, 124, 102,
1182:         
1183:         103, 124, 124, 106, 107, 108, 86, 110, 124, 124,
1184:         
1185:         90, 124, 124, 93, 94, 124, 124, 124, 124, 124,
1186:         
1187:         124, 124, 102, 103, 124, 86, 106, 107, 108, 90,
1188:         
1189:         110, 124, 93, 94, 124, 124, 124, 124, 124, 124,
1190:         
1191:         124, 102, 103, 124, 124, 106, 107, 108, 124, 110,
1192:         
1193:         124, 86, 124, 124, 124, 90, 124, 124, 93, 94,
1194:         
1195:         124, 124, 124, 124, 124, 124, 124, 102, 103, 124,
1196:         
1197:         86, 106, 107, 108, 90, 110, 124, 93, 94, 124,
1198:         
1199:         124, 124, 124, 124, 124, 124, 102, 103, 124, 124,
1200:         
1201:         106, 107, 108, 86, 110, 124, 124, 90, 124, 124,
1202:         
1203:         93, 94, 124, 124, 124, 124, 124, 124, 124, 102,
1204:         
1205:         103, 124, 86, 106, 107, 108, 90, 110, 124, 93,
1206:         
1207:         94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
1208:         
1209:         124, 124, 106, 107, 108, 124, 110, 124, 86, 124,
1210:         
1211:         124, 124, 90, 124, 124, 93, 94, 124, 124, 124,
1212:         
1213:         124, 124, 124, 124, 102, 103, 124, 11, 106, 107,
1214:         
1215:         108, 124, 110, 124, 18, 124, 124, 124, 124, 23,
1216:         
1217:         24, 11, 124, 124, 124, 29, 124, 124, 18, 33,
1218:         
1219:         124, 35, 124, 23, 24, 124, 124, 124, 124, 29,
1220:         
1221:         124, 124, 124, 33, 124, 35, 86, 124, 124, 124,
1222:         
1223:         90, 124, 124, 93, 94, 124, 124, 124, 124, 124,
1224:         
1225:         124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
1226:         
1227:         110, 124, 124, 124, 124, 79, 80, 81, 124, 86,
1228:         
1229:         124, 124, 124, 90, 124, 124, 93, 94, 124, 79,
1230:         
1231:         80, 81, 124, 124, 124, 102, 103, 124, 124, 106,
1232:         
1233:         107, 108, 124, 110, 124, 124, 86, 124, 124, 124,
1234:         
1235:         90, 124, 124, 93, 94, 124, 124, 124, 124, 124,
1236:         
1237:         124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
1238:         
1239:         110, 124, 86, 124, 124, 124, 90, 124, 124, 93,
1240:         
1241:         94, 124, 124, 124, 124, 124, 124, 124, 102, 103,
1242:         
1243:         124, 124, 106, 107, 108, 86, 110, 124, 124, 90,
1244:         
1245:         124, 124, 93, 94, 124, 124, 86, 124, 124, 124,
1246:         
1247:         90, 102, 103, 93, 94, 106, 107, 108, 124, 110,
1248:         
1249:         124, 124, 102, 103, 124, 124, 106, 107, 108, 124,
1250:         
1251:         110,
1252:     );
1253:     const YY_SHIFT_USE_DFLT = - 39;
1254:     const YY_SHIFT_MAX = 259;
1255:     static public $yy_shift_ofst = array(
1256:         
1257:         1, 1097, 1271, 1097, 981, 1271, 981, 981, 923, 865,
1258:         
1259:         923, 981, 981, 981, 981, 981, 981, 981, 981, 981,
1260:         
1261:         981, 981, 1213, 981, 981, 981, 1155, 1329, 981, 981,
1262:         
1263:         981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
1264:         
1265:         981, 1155, 981, 981, 1039, 1039, 1445, 1387, 1387, 1387,
1266:         
1267:         1387, 1387, 1387, - 1, 53, 107, 107, 107, 107, 107,
1268:         
1269:         539, 431, 701, 161, 377, 269, 647, 485, 593, 215,
1270:         
1271:         323, 755, 755, 755, 755, 755, 755, 755, 755, 755,
1272:         
1273:         755, 755, 755, 755, 755, 755, 755, 755, 755, 755,
1274:         
1275:         797, 797, 1279, 56, 190, 1, 2346, 977, 1034, 3,
1276:         
1277:         3, 137, 137, 190, 190, 286, 798, 404, 365, 2360,
1278:         
1279:         25, 162, 57, 121, 70, 154, 16, 327, 198, 231,
1280:         
1281:         114, 193, 417, 391, 360, 363, 363, 339, 502, 363,
1282:         
1283:         365, 363, 365, 386, 339, 444, 470, 49, 444, 435,
1284:         
1285:         49, 363, 363, 363, 363, 363, 31, 554, 31, 31,
1286:         
1287:         554, 31, 31, 31, 31, 31, 31, - 39, 177, 168,
1288:         
1289:         49, 49, 49, 49, 49, 49, 49, 49, - 38, - 38,
1290:         
1291:         - 38, 270, - 38, 49, 49, 49, 49, 49, 49, - 38,
1292:         
1293:         270, - 38, 237, 49, 49, 49, - 38, 49, 49, 49,
1294:         
1295:         584, 554, 554, 31, 566, 566, 60, 554, 31, 454,
1296:         
1297:         31, 31, 60, 31, - 39, - 39, - 39, - 39, - 39, 1483,
1298:         
1299:         1281, 106, 45, 157, 138, - 37, 80, 241, 418, 342,
1300:         
1301:         331, 212, 185, 330, 185, 289, 552, 541, 526, 525,
1302:         
1303:         521, 523, 524, 527, 529, 567, 551, 532, 531, 483,
1304:         
1305:         547, 503, 518, 436, 454, 465, 406, 397, 419, 423,
1306:         
1307:         471, 388, 475, 455, 500, 499, 497, 450, 488, 495,
1308:     );
1309:     const YY_REDUCE_USE_DFLT = - 99;
1310:     const YY_REDUCE_MAX = 208;
1311:     static public $yy_reduce_ofst = array(
1312:         
1313:         30, 1449, 1575, 1552, 1523, 1481, 1504, 1598, 1836, 2010,
1314:         
1315:         1991, 1791, 1685, 1643, 1704, 1749, 2033, 2078, 2310, 2419,
1316:         
1317:         2139, 2207, 2252, 2343, 2370, 1772, 1617, 1946, 1904, 2184,
1318:         
1319:         1923, 1878, 1859, 1965, 2052, 1662, 1817, 1730, 2097, 2396,
1320:         
1321:         2430, 2120, 2165, 2226, 869, 805, 985, 925, 884, 979,
1322:         
1323:         1099, 1041, 1157, 1639, 1233, 1639, 1336, 1278, 1726, 1813,
1324:         
1325:         - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87,
1326:         
1327:         - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87,
1328:         
1329:         - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87, - 87,
1330:         
1331:         - 87, - 87, 18, 207, 153, 136, 155, 827, 872, 804,
1332:         
1333:         826, 261, 316, 369, 315, 839, 188, 210, 179, 372,
1334:         
1335:         189, 189, 189, 505, 299, 326, 128, 128, 189, 299,
1336:         
1337:         299, 189, 507, 453, 242, 344, 243, 84, 128, 452,
1338:         
1339:         291, 399, 345, 189, 380, 613, 453, 421, 453, 368,
1340:         
1341:         367, 560, 453, 559, 561, 290, 189, 128, 213, 189,
1342:         
1343:         181, 189, 189, 189, 189, 189, 189, 189, 484, 479,
1344:         
1345:         472, 472, 472, 472, 472, 472, 472, 472, 462, 462,
1346:         
1347:         462, 464, 462, 472, 472, 472, 472, 472, 472, 462,
1348:         
1349:         467, 462, 466, 472, 472, 472, 462, 472, 472, 472,
1350:         
1351:         511, 486, 486, - 98, 501, 506, 236, 486, - 98, 468,
1352:         
1353:         - 98, - 98, 236, - 98, 227, - 27, 197, 33, 90,
1354:     );
1355:     static public $yyExpectedTokens = array(
1356:         
1357:         array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 23, 24, 29, 33, 35,),
1358:         
1359:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1360:         
1361:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1362:         
1363:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1364:         
1365:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1366:         
1367:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1368:         
1369:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1370:         
1371:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1372:         
1373:         array(18, 19, 20, 23, 24, 29, 33, 34, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1374:         
1375:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 66, 79,),
1376:         
1377:         array(18, 19, 20, 23, 24, 29, 33, 34, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1378:         
1379:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1380:         
1381:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1382:         
1383:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1384:         
1385:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1386:         
1387:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1388:         
1389:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1390:         
1391:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1392:         
1393:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1394:         
1395:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1396:         
1397:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1398:         
1399:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1400:         
1401:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1402:         
1403:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1404:         
1405:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1406:         
1407:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1408:         
1409:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1410:         
1411:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1412:         
1413:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1414:         
1415:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1416:         
1417:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1418:         
1419:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1420:         
1421:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1422:         
1423:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1424:         
1425:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1426:         
1427:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1428:         
1429:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1430:         
1431:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1432:         
1433:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1434:         
1435:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1436:         
1437:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1438:         
1439:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1440:         
1441:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1442:         
1443:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1444:         
1445:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1446:         
1447:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 65, 79,),
1448:         
1449:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1450:         
1451:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1452:         
1453:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1454:         
1455:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1456:         
1457:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1458:         
1459:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1460:         
1461:         array(18, 19, 20, 23, 24, 29, 33, 35, 37, 39, 42, 57, 58, 59, 60, 61, 64, 79,),
1462:         
1463:         array(1, 3, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1464:         
1465:         array(1, 28, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1466:         
1467:         array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1468:         
1469:         array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1470:         
1471:         array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1472:         
1473:         array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1474:         
1475:         array(1, 30, 36, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1476:         
1477:         array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1478:         
1479:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80,),
1480:         
1481:         array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1482:         
1483:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1484:         
1485:         array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1486:         
1487:         array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1488:         
1489:         array(1, 2, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1490:         
1491:         array(1, 25, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1492:         
1493:         array(1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1494:         
1495:         array(1, 31, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1496:         
1497:         array(1, 3, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1498:         
1499:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1500:         
1501:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1502:         
1503:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1504:         
1505:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1506:         
1507:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1508:         
1509:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1510:         
1511:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1512:         
1513:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1514:         
1515:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1516:         
1517:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1518:         
1519:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1520:         
1521:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1522:         
1523:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1524:         
1525:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1526:         
1527:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1528:         
1529:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1530:         
1531:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1532:         
1533:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1534:         
1535:         array(1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1536:         
1537:         array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1538:         
1539:         array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,),
1540:         
1541:         array(1, 3, 22, 30, 36, 39, 62,),
1542:         
1543:         array(1, 3, 30, 36, 55,),
1544:         
1545:         array(1, 30, 36,),
1546:         
1547:         array(4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 23, 24, 29, 33, 35,),
1548:         
1549:         array(11, 18, 23, 24, 29, 33, 35, 79, 80, 81,),
1550:         
1551:         array(18, 20, 30, 32, 36,),
1552:         
1553:         array(18, 20, 30, 32, 36,),
1554:         
1555:         array(18, 20, 30, 36,),
1556:         
1557:         array(18, 20, 30, 36,),
1558:         
1559:         array(1, 3, 30, 36,),
1560:         
1561:         array(1, 3, 30, 36,),
1562:         
1563:         array(1, 30, 36,),
1564:         
1565:         array(1, 30, 36,),
1566:         
1567:         array(19, 20, 64,),
1568:         
1569:         array(22, 60, 65,),
1570:         
1571:         array(1, 2,),
1572:         
1573:         array(19, 39,),
1574:         
1575:         array(11, 18, 23, 24, 29, 33, 35, 79, 80, 81,),
1576:         
1577:         array(1, 3, 30, 31, 36, 55,),
1578:         
1579:         array(1, 3, 30, 36, 55,),
1580:         
1581:         array(1, 3, 30, 36, 55,),
1582:         
1583:         array(18, 20, 21, 26,),
1584:         
1585:         array(18, 20, 21, 63,),
1586:         
1587:         array(15, 16, 17,),
1588:         
1589:         array(21, 22, 62,),
1590:         
1591:         array(21, 22, 62,),
1592:         
1593:         array(1, 3, 55,),
1594:         
1595:         array(18, 20, 63,),
1596:         
1597:         array(18, 20, 21,),
1598:         
1599:         array(1, 32, 55,),
1600:         
1601:         array(18, 20,),
1602:         
1603:         array(18, 20,),
1604:         
1605:         array(1, 22,),
1606:         
1607:         array(18, 20,),
1608:         
1609:         array(18, 20,),
1610:         
1611:         array(19, 20,),
1612:         
1613:         array(22, 62,),
1614:         
1615:         array(18, 20,),
1616:         
1617:         array(19, 39,),
1618:         
1619:         array(18, 20,),
1620:         
1621:         array(19, 39,),
1622:         
1623:         array(1, 55,),
1624:         
1625:         array(19, 20,),
1626:         
1627:         array(18, 20,),
1628:         
1629:         array(18, 20,),
1630:         
1631:         array(30, 36,),
1632:         
1633:         array(18, 20,),
1634:         
1635:         array(30, 36,),
1636:         
1637:         array(30, 36,),
1638:         
1639:         array(18, 20,),
1640:         
1641:         array(18, 20,),
1642:         
1643:         array(18, 20,),
1644:         
1645:         array(18, 20,),
1646:         
1647:         array(18, 20,),
1648:         
1649:         array(1,),
1650:         
1651:         array(22,),
1652:         
1653:         array(1,),
1654:         
1655:         array(1,),
1656:         
1657:         array(22,),
1658:         
1659:         array(1,),
1660:         
1661:         array(1,),
1662:         
1663:         array(1,),
1664:         
1665:         array(1,),
1666:         
1667:         array(1,),
1668:         
1669:         array(1,),
1670:         
1671:         array(),
1672:         
1673:         array(18, 20, 63,),
1674:         
1675:         array(18, 19, 20,),
1676:         
1677:         array(30, 36,),
1678:         
1679:         array(30, 36,),
1680:         
1681:         array(30, 36,),
1682:         
1683:         array(30, 36,),
1684:         
1685:         array(30, 36,),
1686:         
1687:         array(30, 36,),
1688:         
1689:         array(30, 36,),
1690:         
1691:         array(30, 36,),
1692:         
1693:         array(60, 65,),
1694:         
1695:         array(60, 65,),
1696:         
1697:         array(60, 65,),
1698:         
1699:         array(60, 65,),
1700:         
1701:         array(60, 65,),
1702:         
1703:         array(30, 36,),
1704:         
1705:         array(30, 36,),
1706:         
1707:         array(30, 36,),
1708:         
1709:         array(30, 36,),
1710:         
1711:         array(30, 36,),
1712:         
1713:         array(30, 36,),
1714:         
1715:         array(60, 65,),
1716:         
1717:         array(60, 65,),
1718:         
1719:         array(60, 65,),
1720:         
1721:         array(18, 39,),
1722:         
1723:         array(30, 36,),
1724:         
1725:         array(30, 36,),
1726:         
1727:         array(30, 36,),
1728:         
1729:         array(60, 65,),
1730:         
1731:         array(30, 36,),
1732:         
1733:         array(30, 36,),
1734:         
1735:         array(30, 36,),
1736:         
1737:         array(16,),
1738:         
1739:         array(22,),
1740:         
1741:         array(22,),
1742:         
1743:         array(1,),
1744:         
1745:         array(30,),
1746:         
1747:         array(30,),
1748:         
1749:         array(2,),
1750:         
1751:         array(22,),
1752:         
1753:         array(1,),
1754:         
1755:         array(39,),
1756:         
1757:         array(1,),
1758:         
1759:         array(1,),
1760:         
1761:         array(2,),
1762:         
1763:         array(1,),
1764:         
1765:         array(),
1766:         
1767:         array(),
1768:         
1769:         array(),
1770:         
1771:         array(),
1772:         
1773:         array(),
1774:         
1775:         array(3, 25, 27, 28, 30, 31, 36, 38, 39, 40, 55, 62, 66, 80,),
1776:         
1777:         array(3, 21, 30, 36, 39, 62,),
1778:         
1779:         array(39, 60, 62, 66,),
1780:         
1781:         array(18, 19, 20, 37,),
1782:         
1783:         array(32, 39, 62,),
1784:         
1785:         array(26, 80,),
1786:         
1787:         array(38, 40,),
1788:         
1789:         array(38, 66,),
1790:         
1791:         array(38, 40,),
1792:         
1793:         array(25, 38,),
1794:         
1795:         array(21, 60,),
1796:         
1797:         array(3, 26,),
1798:         
1799:         array(38, 40,),
1800:         
1801:         array(39, 62,),
1802:         
1803:         array(2, 21,),
1804:         
1805:         array(39, 62,),
1806:         
1807:         array(20, 63,),
1808:         
1809:         array(20,),
1810:         
1811:         array(3,),
1812:         
1813:         array(20,),
1814:         
1815:         array(20,),
1816:         
1817:         array(20,),
1818:         
1819:         array(2,),
1820:         
1821:         array(19,),
1822:         
1823:         array(20,),
1824:         
1825:         array(19,),
1826:         
1827:         array(3,),
1828:         
1829:         array(20,),
1830:         
1831:         array(37,),
1832:         
1833:         array(37,),
1834:         
1835:         array(66,),
1836:         
1837:         array(20,),
1838:         
1839:         array(20,),
1840:         
1841:         array(3,),
1842:         
1843:         array(56,),
1844:         
1845:         array(39,),
1846:         
1847:         array(2,),
1848:         
1849:         array(60,),
1850:         
1851:         array(39,),
1852:         
1853:         array(19,),
1854:         
1855:         array(40,),
1856:         
1857:         array(20,),
1858:         
1859:         array(26,),
1860:         
1861:         array(19,),
1862:         
1863:         array(64,),
1864:         
1865:         array(20,),
1866:         
1867:         array(19,),
1868:         
1869:         array(20,),
1870:         
1871:         array(64,),
1872:         
1873:         array(27,),
1874:         
1875:         array(21,),
1876:         
1877:         array(),
1878:         
1879:         array(),
1880:         
1881:         array(),
1882:         
1883:         array(),
1884:         
1885:         array(),
1886:         
1887:         array(),
1888:         
1889:         array(),
1890:         
1891:         array(),
1892:         
1893:         array(),
1894:         
1895:         array(),
1896:         
1897:         array(),
1898:         
1899:         array(),
1900:         
1901:         array(),
1902:         
1903:         array(),
1904:         
1905:         array(),
1906:         
1907:         array(),
1908:         
1909:         array(),
1910:         
1911:         array(),
1912:         
1913:         array(),
1914:         
1915:         array(),
1916:         
1917:         array(),
1918:         
1919:         array(),
1920:         
1921:         array(),
1922:         
1923:         array(),
1924:         
1925:         array(),
1926:         
1927:         array(),
1928:         
1929:         array(),
1930:         
1931:         array(),
1932:         
1933:         array(),
1934:         
1935:         array(),
1936:         
1937:         array(),
1938:         
1939:         array(),
1940:         
1941:         array(),
1942:         
1943:         array(),
1944:         
1945:         array(),
1946:         
1947:         array(),
1948:         
1949:         array(),
1950:         
1951:         array(),
1952:         
1953:         array(),
1954:         
1955:         array(),
1956:         
1957:         array(),
1958:         
1959:         array(),
1960:         
1961:         array(),
1962:         
1963:         array(),
1964:         
1965:         array(),
1966:         
1967:         array(),
1968:         
1969:         array(),
1970:         
1971:         array(),
1972:         
1973:         array(),
1974:         
1975:         array(),
1976:         
1977:         array(),
1978:         
1979:         array(),
1980:         
1981:         array(),
1982:         
1983:         array(),
1984:         
1985:         array(),
1986:         
1987:         array(),
1988:         
1989:         array(),
1990:         
1991:         array(),
1992:         
1993:         array(),
1994:         
1995:         array(),
1996:         
1997:         array(),
1998:         
1999:         array(),
2000:         
2001:         array(),
2002:         
2003:         array(),
2004:         
2005:         array(),
2006:         
2007:         array(),
2008:         
2009:         array(),
2010:         
2011:         array(),
2012:         
2013:         array(),
2014:         
2015:         array(),
2016:         
2017:         array(),
2018:         
2019:         array(),
2020:         
2021:         array(),
2022:         
2023:         array(),
2024:         
2025:         array(),
2026:         
2027:         array(),
2028:         
2029:         array(),
2030:         
2031:         array(),
2032:         
2033:         array(),
2034:         
2035:         array(),
2036:         
2037:         array(),
2038:         
2039:         array(),
2040:         
2041:         array(),
2042:         
2043:         array(),
2044:         
2045:         array(),
2046:         
2047:         array(),
2048:         
2049:         array(),
2050:         
2051:         array(),
2052:         
2053:         array(),
2054:         
2055:         array(),
2056:         
2057:         array(),
2058:         
2059:         array(),
2060:         
2061:         array(),
2062:         
2063:         array(),
2064:         
2065:         array(),
2066:         
2067:         array(),
2068:         
2069:         array(),
2070:         
2071:         array(),
2072:     );
2073:     static public $yy_default = array(
2074:         
2075:         361, 541, 558, 558, 512, 558, 512, 512, 558, 558,
2076:         
2077:         558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
2078:         
2079:         558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
2080:         
2081:         558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
2082:         
2083:         558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
2084:         
2085:         558, 558, 558, 558, 418, 418, 418, 418, 387, 395,
2086:         
2087:         558, 558, 558, 558, 558, 558, 558, 558, 558, 423,
2088:         
2089:         558, 428, 425, 510, 423, 429, 511, 543, 444, 542,
2090:         
2091:         447, 448, 443, 442, 439, 452, 544, 420, 451, 400,
2092:         
2093:         456, 455, 467, 431, 418, 358, 558, 418, 418, 418,
2094:         
2095:         418, 438, 475, 418, 418, 558, 524, 409, 558, 558,
2096:         
2097:         431, 431, 431, 558, 485, 558, 476, 476, 431, 485,
2098:         
2099:         485, 431, 558, 558, 412, 558, 485, 558, 476, 558,
2100:         
2101:         558, 558, 558, 431, 558, 558, 558, 397, 558, 418,
2102:         
2103:         418, 558, 558, 558, 558, 558, 441, 476, 414, 434,
2104:         
2105:         521, 436, 435, 460, 459, 458, 454, 519, 486, 558,
2106:         
2107:         385, 384, 405, 404, 389, 406, 399, 388, 505, 483,
2108:         
2109:         482, 481, 480, 407, 408, 383, 398, 403, 402, 504,
2110:         
2111:         479, 502, 485, 393, 392, 390, 503, 382, 396, 394,
2112:         
2113:         378, 525, 522, 475, 557, 557, 513, 499, 438, 485,
2114:         
2115:         413, 410, 514, 415, 518, 485, 518, 485, 518, 433,
2116:         
2117:         467, 467, 558, 467, 457, 558, 558, 558, 558, 463,
2118:         
2119:         457, 558, 453, 497, 467, 558, 558, 558, 558, 558,
2120:         
2121:         558, 497, 558, 558, 558, 558, 558, 465, 558, 558,
2122:         
2123:         558, 558, 558, 469, 497, 497, 463, 523, 558, 558,
2124:         
2125:         558, 457, 558, 558, 558, 558, 558, 558, 426, 558,
2126:         
2127:         477, 520, 495, 507, 490, 508, 487, 374, 498, 484,
2128:         
2129:         556, 364, 363, 365, 461, 366, 472, 466, 360, 359,
2130:         
2131:         462, 362, 464, 367, 430, 401, 469, 372, 373, 419,
2132:         
2133:         432, 427, 368, 369, 370, 371, 433, 470, 445, 497,
2134:         
2135:         446, 496, 450, 449, 500, 517, 545, 474, 552, 411,
2136:         
2137:         501, 478, 553, 526, 534, 533, 535, 536, 437, 537,
2138:         
2139:         532, 417, 528, 527, 529, 530, 531, 546, 547, 515,
2140:         
2141:         506, 375, 376, 509, 377, 516, 468, 494, 489, 492,
2142:         
2143:         491, 493, 379, 380, 555, 548, 554, 551, 550, 549,
2144:         
2145:         440, 416, 473, 471, 539, 540, 538, 488,
2146:     );
2147:     const YYNOCODE = 125;
2148:     const YYSTACKDEPTH = 500;
2149:     const YYNSTATE = 358;
2150:     const YYNRULE = 200;
2151:     const YYERRORSYMBOL = 82;
2152:     const YYERRSYMDT = 'yy0';
2153:     const YYFALLBACK = 0;
2154:     public static $yyFallback = array();
2155: 
2156:     public function Trace($TraceFILE, $zTracePrompt)
2157:     {
2158:         if (!$TraceFILE) {
2159:             $zTracePrompt = 0;
2160:         } elseif (!$zTracePrompt) {
2161:             $TraceFILE = 0;
2162:         }
2163:         $this->yyTraceFILE = $TraceFILE;
2164:         $this->yyTracePrompt = $zTracePrompt;
2165:     }
2166: 
2167:     public function PrintTrace()
2168:     {
2169:         $this->yyTraceFILE = fopen('php://output', 'w');
2170:         $this->yyTracePrompt = '<br>';
2171:     }
2172: 
2173:     public $yyTraceFILE;
2174:     public $yyTracePrompt;
2175:     public $yyidx;                    
2176:     public $yyerrcnt;                 
2177:     public $yystack = array();  
2178: 
2179:     public $yyTokenName = array(
2180:         '$', 'VERT', 'COLON', 'RDEL',
2181:         'COMMENT', 'PHPSTARTTAG', 'PHPENDTAG', 'PHPENDSCRIPT',
2182:         'ASPSTARTTAG', 'ASPENDTAG', 'XMLTAG', 'TEXT',
2183:         'STRIPON', 'STRIPOFF', 'BLOCKSOURCE', 'LITERALSTART',
2184:         'LITERALEND', 'LITERAL', 'LDEL', 'DOLLAR',
2185:         'ID', 'EQUAL', 'PTR', 'LDELIF',
2186:         'LDELFOR', 'SEMICOLON', 'INCDEC', 'TO',
2187:         'STEP', 'LDELFOREACH', 'SPACE', 'AS',
2188:         'APTR', 'LDELSETFILTER', 'SMARTYBLOCKCHILDPARENT', 'LDELSLASH',
2189:         'ATTR', 'INTEGER', 'COMMA', 'OPENP',
2190:         'CLOSEP', 'MATH', 'UNIMATH', 'ANDSYM',
2191:         'ISIN', 'ISDIVBY', 'ISNOTDIVBY', 'ISEVEN',
2192:         'ISNOTEVEN', 'ISEVENBY', 'ISNOTEVENBY', 'ISODD',
2193:         'ISNOTODD', 'ISODDBY', 'ISNOTODDBY', 'INSTANCEOF',
2194:         'QMARK', 'NOT', 'TYPECAST', 'HEX',
2195:         'DOT', 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'AT',
2196:         'HATCH', 'OPENB', 'CLOSEB', 'EQUALS',
2197:         'NOTEQUALS', 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL',
2198:         'LESSEQUAL', 'IDENTITY', 'NONEIDENTITY', 'MOD',
2199:         'LAND', 'LOR', 'LXOR', 'QUOTE',
2200:         'BACKTICK', 'DOLLARID', 'error', 'start',
2201:         'template', 'template_element', 'smartytag', 'literal',
2202:         'literal_elements', 'literal_element', 'value', 'modifierlist',
2203:         'attributes', 'expr', 'varindexed', 'statement',
2204:         'statements', 'optspace', 'varvar', 'foraction',
2205:         'modparameters', 'attribute', 'ternary', 'array',
2206:         'ifcond', 'lop', 'variable', 'function',
2207:         'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex',
2208:         'indexdef', 'varvarele', 'objectchain', 'objectelement',
2209:         'method', 'params', 'modifier', 'modparameter',
2210:         'arrayelements', 'arrayelement', 'doublequoted', 'doublequotedcontent',
2211:     );
2212: 
2213:     public static $yyRuleName = array(
2214:         
2215:         "start ::= template",
2216:         
2217:         "template ::= template_element",
2218:         
2219:         "template ::= template template_element",
2220:         
2221:         "template ::=",
2222:         
2223:         "template_element ::= smartytag RDEL",
2224:         
2225:         "template_element ::= COMMENT",
2226:         
2227:         "template_element ::= literal",
2228:         
2229:         "template_element ::= PHPSTARTTAG",
2230:         
2231:         "template_element ::= PHPENDTAG",
2232:         
2233:         "template_element ::= PHPENDSCRIPT",
2234:         
2235:         "template_element ::= ASPSTARTTAG",
2236:         
2237:         "template_element ::= ASPENDTAG",
2238:         
2239:         "template_element ::= XMLTAG",
2240:         
2241:         "template_element ::= TEXT",
2242:         
2243:         "template_element ::= STRIPON",
2244:         
2245:         "template_element ::= STRIPOFF",
2246:         
2247:         "template_element ::= BLOCKSOURCE",
2248:         
2249:         "literal ::= LITERALSTART LITERALEND",
2250:         
2251:         "literal ::= LITERALSTART literal_elements LITERALEND",
2252:         
2253:         "literal_elements ::= literal_elements literal_element",
2254:         
2255:         "literal_elements ::=",
2256:         
2257:         "literal_element ::= literal",
2258:         
2259:         "literal_element ::= LITERAL",
2260:         
2261:         "smartytag ::= LDEL value",
2262:         
2263:         "smartytag ::= LDEL value modifierlist attributes",
2264:         
2265:         "smartytag ::= LDEL value attributes",
2266:         
2267:         "smartytag ::= LDEL expr modifierlist attributes",
2268:         
2269:         "smartytag ::= LDEL expr attributes",
2270:         
2271:         "smartytag ::= LDEL DOLLAR ID EQUAL value",
2272:         
2273:         "smartytag ::= LDEL DOLLAR ID EQUAL expr",
2274:         
2275:         "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes",
2276:         
2277:         "smartytag ::= LDEL varindexed EQUAL expr attributes",
2278:         
2279:         "smartytag ::= LDEL ID attributes",
2280:         
2281:         "smartytag ::= LDEL ID",
2282:         
2283:         "smartytag ::= LDEL ID PTR ID attributes",
2284:         
2285:         "smartytag ::= LDEL ID modifierlist attributes",
2286:         
2287:         "smartytag ::= LDEL ID PTR ID modifierlist attributes",
2288:         
2289:         "smartytag ::= LDELIF expr",
2290:         
2291:         "smartytag ::= LDELIF expr attributes",
2292:         
2293:         "smartytag ::= LDELIF statement",
2294:         
2295:         "smartytag ::= LDELIF statement attributes",
2296:         
2297:         "smartytag ::= LDELFOR statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction attributes",
2298:         
2299:         "foraction ::= EQUAL expr",
2300:         
2301:         "foraction ::= INCDEC",
2302:         
2303:         "smartytag ::= LDELFOR statement TO expr attributes",
2304:         
2305:         "smartytag ::= LDELFOR statement TO expr STEP expr attributes",
2306:         
2307:         "smartytag ::= LDELFOREACH attributes",
2308:         
2309:         "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar attributes",
2310:         
2311:         "smartytag ::= LDELFOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar attributes",
2312:         
2313:         "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar attributes",
2314:         
2315:         "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes",
2316:         
2317:         "smartytag ::= LDELSETFILTER ID modparameters",
2318:         
2319:         "smartytag ::= LDELSETFILTER ID modparameters modifierlist",
2320:         
2321:         "smartytag ::= LDEL SMARTYBLOCKCHILDPARENT",
2322:         
2323:         "smartytag ::= LDELSLASH ID",
2324:         
2325:         "smartytag ::= LDELSLASH ID modifierlist",
2326:         
2327:         "smartytag ::= LDELSLASH ID PTR ID",
2328:         
2329:         "smartytag ::= LDELSLASH ID PTR ID modifierlist",
2330:         
2331:         "attributes ::= attributes attribute",
2332:         
2333:         "attributes ::= attribute",
2334:         
2335:         "attributes ::=",
2336:         
2337:         "attribute ::= SPACE ID EQUAL ID",
2338:         
2339:         "attribute ::= ATTR expr",
2340:         
2341:         "attribute ::= ATTR value",
2342:         
2343:         "attribute ::= SPACE ID",
2344:         
2345:         "attribute ::= SPACE expr",
2346:         
2347:         "attribute ::= SPACE value",
2348:         
2349:         "attribute ::= SPACE INTEGER EQUAL expr",
2350:         
2351:         "statements ::= statement",
2352:         
2353:         "statements ::= statements COMMA statement",
2354:         
2355:         "statement ::= DOLLAR varvar EQUAL expr",
2356:         
2357:         "statement ::= varindexed EQUAL expr",
2358:         
2359:         "statement ::= OPENP statement CLOSEP",
2360:         
2361:         "expr ::= value",
2362:         
2363:         "expr ::= ternary",
2364:         
2365:         "expr ::= DOLLAR ID COLON ID",
2366:         
2367:         "expr ::= expr MATH value",
2368:         
2369:         "expr ::= expr UNIMATH value",
2370:         
2371:         "expr ::= expr ANDSYM value",
2372:         
2373:         "expr ::= array",
2374:         
2375:         "expr ::= expr modifierlist",
2376:         
2377:         "expr ::= expr ifcond expr",
2378:         
2379:         "expr ::= expr ISIN array",
2380:         
2381:         "expr ::= expr ISIN value",
2382:         
2383:         "expr ::= expr lop expr",
2384:         
2385:         "expr ::= expr ISDIVBY expr",
2386:         
2387:         "expr ::= expr ISNOTDIVBY expr",
2388:         
2389:         "expr ::= expr ISEVEN",
2390:         
2391:         "expr ::= expr ISNOTEVEN",
2392:         
2393:         "expr ::= expr ISEVENBY expr",
2394:         
2395:         "expr ::= expr ISNOTEVENBY expr",
2396:         
2397:         "expr ::= expr ISODD",
2398:         
2399:         "expr ::= expr ISNOTODD",
2400:         
2401:         "expr ::= expr ISODDBY expr",
2402:         
2403:         "expr ::= expr ISNOTODDBY expr",
2404:         
2405:         "expr ::= value INSTANCEOF ID",
2406:         
2407:         "expr ::= value INSTANCEOF value",
2408:         
2409:         "ternary ::= OPENP expr CLOSEP QMARK DOLLAR ID COLON expr",
2410:         
2411:         "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",
2412:         
2413:         "value ::= variable",
2414:         
2415:         "value ::= UNIMATH value",
2416:         
2417:         "value ::= NOT value",
2418:         
2419:         "value ::= TYPECAST value",
2420:         
2421:         "value ::= variable INCDEC",
2422:         
2423:         "value ::= HEX",
2424:         
2425:         "value ::= INTEGER",
2426:         
2427:         "value ::= INTEGER DOT INTEGER",
2428:         
2429:         "value ::= INTEGER DOT",
2430:         
2431:         "value ::= DOT INTEGER",
2432:         
2433:         "value ::= ID",
2434:         
2435:         "value ::= function",
2436:         
2437:         "value ::= OPENP expr CLOSEP",
2438:         
2439:         "value ::= SINGLEQUOTESTRING",
2440:         
2441:         "value ::= doublequoted_with_quotes",
2442:         
2443:         "value ::= ID DOUBLECOLON static_class_access",
2444:         
2445:         "value ::= varindexed DOUBLECOLON static_class_access",
2446:         
2447:         "value ::= smartytag RDEL",
2448:         
2449:         "value ::= value modifierlist",
2450:         
2451:         "variable ::= varindexed",
2452:         
2453:         "variable ::= DOLLAR varvar AT ID",
2454:         
2455:         "variable ::= object",
2456:         
2457:         "variable ::= HATCH ID HATCH",
2458:         
2459:         "variable ::= HATCH ID HATCH arrayindex",
2460:         
2461:         "variable ::= HATCH variable HATCH",
2462:         
2463:         "variable ::= HATCH variable HATCH arrayindex",
2464:         
2465:         "varindexed ::= DOLLAR varvar arrayindex",
2466:         
2467:         "arrayindex ::= arrayindex indexdef",
2468:         
2469:         "arrayindex ::=",
2470:         
2471:         "indexdef ::= DOT DOLLAR varvar",
2472:         
2473:         "indexdef ::= DOT DOLLAR varvar AT ID",
2474:         
2475:         "indexdef ::= DOT ID",
2476:         
2477:         "indexdef ::= DOT INTEGER",
2478:         
2479:         "indexdef ::= DOT LDEL expr RDEL",
2480:         
2481:         "indexdef ::= OPENB ID CLOSEB",
2482:         
2483:         "indexdef ::= OPENB ID DOT ID CLOSEB",
2484:         
2485:         "indexdef ::= OPENB expr CLOSEB",
2486:         
2487:         "indexdef ::= OPENB CLOSEB",
2488:         
2489:         "varvar ::= varvarele",
2490:         
2491:         "varvar ::= varvar varvarele",
2492:         
2493:         "varvarele ::= ID",
2494:         
2495:         "varvarele ::= LDEL expr RDEL",
2496:         
2497:         "object ::= varindexed objectchain",
2498:         
2499:         "objectchain ::= objectelement",
2500:         
2501:         "objectchain ::= objectchain objectelement",
2502:         
2503:         "objectelement ::= PTR ID arrayindex",
2504:         
2505:         "objectelement ::= PTR DOLLAR varvar arrayindex",
2506:         
2507:         "objectelement ::= PTR LDEL expr RDEL arrayindex",
2508:         
2509:         "objectelement ::= PTR ID LDEL expr RDEL arrayindex",
2510:         
2511:         "objectelement ::= PTR method",
2512:         
2513:         "function ::= ID OPENP params CLOSEP",
2514:         
2515:         "method ::= ID OPENP params CLOSEP",
2516:         
2517:         "method ::= DOLLAR ID OPENP params CLOSEP",
2518:         
2519:         "params ::= params COMMA expr",
2520:         
2521:         "params ::= expr",
2522:         
2523:         "params ::=",
2524:         
2525:         "modifierlist ::= modifierlist modifier modparameters",
2526:         
2527:         "modifierlist ::= modifier modparameters",
2528:         
2529:         "modifier ::= VERT AT ID",
2530:         
2531:         "modifier ::= VERT ID",
2532:         
2533:         "modparameters ::= modparameters modparameter",
2534:         
2535:         "modparameters ::=",
2536:         
2537:         "modparameter ::= COLON value",
2538:         
2539:         "modparameter ::= COLON array",
2540:         
2541:         "static_class_access ::= method",
2542:         
2543:         "static_class_access ::= method objectchain",
2544:         
2545:         "static_class_access ::= ID",
2546:         
2547:         "static_class_access ::= DOLLAR ID arrayindex",
2548:         
2549:         "static_class_access ::= DOLLAR ID arrayindex objectchain",
2550:         
2551:         "ifcond ::= EQUALS",
2552:         
2553:         "ifcond ::= NOTEQUALS",
2554:         
2555:         "ifcond ::= GREATERTHAN",
2556:         
2557:         "ifcond ::= LESSTHAN",
2558:         
2559:         "ifcond ::= GREATEREQUAL",
2560:         
2561:         "ifcond ::= LESSEQUAL",
2562:         
2563:         "ifcond ::= IDENTITY",
2564:         
2565:         "ifcond ::= NONEIDENTITY",
2566:         
2567:         "ifcond ::= MOD",
2568:         
2569:         "lop ::= LAND",
2570:         
2571:         "lop ::= LOR",
2572:         
2573:         "lop ::= LXOR",
2574:         
2575:         "array ::= OPENB arrayelements CLOSEB",
2576:         
2577:         "arrayelements ::= arrayelement",
2578:         
2579:         "arrayelements ::= arrayelements COMMA arrayelement",
2580:         
2581:         "arrayelements ::=",
2582:         
2583:         "arrayelement ::= value APTR expr",
2584:         
2585:         "arrayelement ::= ID APTR expr",
2586:         
2587:         "arrayelement ::= expr",
2588:         
2589:         "doublequoted_with_quotes ::= QUOTE QUOTE",
2590:         
2591:         "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",
2592:         
2593:         "doublequoted ::= doublequoted doublequotedcontent",
2594:         
2595:         "doublequoted ::= doublequotedcontent",
2596:         
2597:         "doublequotedcontent ::= BACKTICK variable BACKTICK",
2598:         
2599:         "doublequotedcontent ::= BACKTICK expr BACKTICK",
2600:         
2601:         "doublequotedcontent ::= DOLLARID",
2602:         
2603:         "doublequotedcontent ::= LDEL variable RDEL",
2604:         
2605:         "doublequotedcontent ::= LDEL expr RDEL",
2606:         
2607:         "doublequotedcontent ::= smartytag RDEL",
2608:         
2609:         "doublequotedcontent ::= TEXT",
2610:         
2611:         "optspace ::= SPACE",
2612:         
2613:         "optspace ::=",
2614:     );
2615: 
2616:     public function tokenName($tokenType)
2617:     {
2618:         if ($tokenType === 0) {
2619:             return 'End of Input';
2620:         }
2621:         if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
2622:             return $this->yyTokenName[$tokenType];
2623:         } else {
2624:             return "Unknown";
2625:         }
2626:     }
2627: 
2628:     public static function yy_destructor($yymajor, $yypminor)
2629:     {
2630:         switch ($yymajor) {
2631:             default:
2632:                 break;   
2633:         }
2634:     }
2635: 
2636:     public function yy_pop_parser_stack()
2637:     {
2638:         if (!count($this->yystack)) {
2639:             return;
2640:         }
2641:         $yytos = array_pop($this->yystack);
2642:         if ($this->yyTraceFILE && $this->yyidx >= 0) {
2643:             fwrite($this->yyTraceFILE,
2644:                    $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
2645:                    "\n");
2646:         }
2647:         $yymajor = $yytos->major;
2648:         self::yy_destructor($yymajor, $yytos->minor);
2649:         $this->yyidx --;
2650: 
2651:         return $yymajor;
2652:     }
2653: 
2654:     public function __destruct()
2655:     {
2656:         while ($this->yystack !== Array()) {
2657:             $this->yy_pop_parser_stack();
2658:         }
2659:         if (is_resource($this->yyTraceFILE)) {
2660:             fclose($this->yyTraceFILE);
2661:         }
2662:     }
2663: 
2664:     public function yy_get_expected_tokens($token)
2665:     {
2666:         $state = $this->yystack[$this->yyidx]->stateno;
2667:         $expected = self::$yyExpectedTokens[$state];
2668:         if (in_array($token, self::$yyExpectedTokens[$state], true)) {
2669:             return $expected;
2670:         }
2671:         $stack = $this->yystack;
2672:         $yyidx = $this->yyidx;
2673:         do {
2674:             $yyact = $this->yy_find_shift_action($token);
2675:             if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
2676:                 
2677:                 $done = 0;
2678:                 do {
2679:                     if ($done ++ == 100) {
2680:                         $this->yyidx = $yyidx;
2681:                         $this->yystack = $stack;
2682:                         
2683:                         
2684:                         return array_unique($expected);
2685:                     }
2686:                     $yyruleno = $yyact - self::YYNSTATE;
2687:                     $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
2688:                     $nextstate = $this->yy_find_reduce_action(
2689:                         $this->yystack[$this->yyidx]->stateno,
2690:                         self::$yyRuleInfo[$yyruleno]['lhs']);
2691:                     if (isset(self::$yyExpectedTokens[$nextstate])) {
2692:                         $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
2693:                         if (in_array($token,
2694:                                      self::$yyExpectedTokens[$nextstate], true)) {
2695:                             $this->yyidx = $yyidx;
2696:                             $this->yystack = $stack;
2697: 
2698:                             return array_unique($expected);
2699:                         }
2700:                     }
2701:                     if ($nextstate < self::YYNSTATE) {
2702:                         
2703:                         $this->yyidx ++;
2704:                         $x = new TP_yyStackEntry;
2705:                         $x->stateno = $nextstate;
2706:                         $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
2707:                         $this->yystack[$this->yyidx] = $x;
2708:                         continue 2;
2709:                     } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
2710:                         $this->yyidx = $yyidx;
2711:                         $this->yystack = $stack;
2712:                         
2713:                         
2714:                         
2715:                         return array_unique($expected);
2716:                     } elseif ($nextstate === self::YY_NO_ACTION) {
2717:                         $this->yyidx = $yyidx;
2718:                         $this->yystack = $stack;
2719:                         
2720:                         return $expected;
2721:                     } else {
2722:                         $yyact = $nextstate;
2723:                     }
2724:                 } while (true);
2725:             }
2726:             break;
2727:         } while (true);
2728:         $this->yyidx = $yyidx;
2729:         $this->yystack = $stack;
2730: 
2731:         return array_unique($expected);
2732:     }
2733: 
2734:     public function yy_is_expected_token($token)
2735:     {
2736:         if ($token === 0) {
2737:             return true; 
2738:         }
2739:         $state = $this->yystack[$this->yyidx]->stateno;
2740:         if (in_array($token, self::$yyExpectedTokens[$state], true)) {
2741:             return true;
2742:         }
2743:         $stack = $this->yystack;
2744:         $yyidx = $this->yyidx;
2745:         do {
2746:             $yyact = $this->yy_find_shift_action($token);
2747:             if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
2748:                 
2749:                 $done = 0;
2750:                 do {
2751:                     if ($done ++ == 100) {
2752:                         $this->yyidx = $yyidx;
2753:                         $this->yystack = $stack;
2754:                         
2755:                         
2756:                         return true;
2757:                     }
2758:                     $yyruleno = $yyact - self::YYNSTATE;
2759:                     $this->yyidx -= self::$yyRuleInfo[$yyruleno]['rhs'];
2760:                     $nextstate = $this->yy_find_reduce_action(
2761:                         $this->yystack[$this->yyidx]->stateno,
2762:                         self::$yyRuleInfo[$yyruleno]['lhs']);
2763:                     if (isset(self::$yyExpectedTokens[$nextstate]) &&
2764:                         in_array($token, self::$yyExpectedTokens[$nextstate], true)
2765:                     ) {
2766:                         $this->yyidx = $yyidx;
2767:                         $this->yystack = $stack;
2768: 
2769:                         return true;
2770:                     }
2771:                     if ($nextstate < self::YYNSTATE) {
2772:                         
2773:                         $this->yyidx ++;
2774:                         $x = new TP_yyStackEntry;
2775:                         $x->stateno = $nextstate;
2776:                         $x->major = self::$yyRuleInfo[$yyruleno]['lhs'];
2777:                         $this->yystack[$this->yyidx] = $x;
2778:                         continue 2;
2779:                     } elseif ($nextstate == self::YYNSTATE + self::YYNRULE + 1) {
2780:                         $this->yyidx = $yyidx;
2781:                         $this->yystack = $stack;
2782:                         if (!$token) {
2783:                             
2784:                             return true;
2785:                         }
2786:                         
2787:                         
2788:                         
2789:                         return false;
2790:                     } elseif ($nextstate === self::YY_NO_ACTION) {
2791:                         $this->yyidx = $yyidx;
2792:                         $this->yystack = $stack;
2793:                         
2794:                         return true;
2795:                     } else {
2796:                         $yyact = $nextstate;
2797:                     }
2798:                 } while (true);
2799:             }
2800:             break;
2801:         } while (true);
2802:         $this->yyidx = $yyidx;
2803:         $this->yystack = $stack;
2804: 
2805:         return true;
2806:     }
2807: 
2808:     public function yy_find_shift_action($iLookAhead)
2809:     {
2810:         $stateno = $this->yystack[$this->yyidx]->stateno;
2811: 
2812:         
2813:         if (!isset(self::$yy_shift_ofst[$stateno])) {
2814:             
2815:             return self::$yy_default[$stateno];
2816:         }
2817:         $i = self::$yy_shift_ofst[$stateno];
2818:         if ($i === self::YY_SHIFT_USE_DFLT) {
2819:             return self::$yy_default[$stateno];
2820:         }
2821:         if ($iLookAhead == self::YYNOCODE) {
2822:             return self::YY_NO_ACTION;
2823:         }
2824:         $i += $iLookAhead;
2825:         if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
2826:             self::$yy_lookahead[$i] != $iLookAhead
2827:         ) {
2828:             if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
2829:                 && ($iFallback = self::$yyFallback[$iLookAhead]) != 0
2830:             ) {
2831:                 if ($this->yyTraceFILE) {
2832:                     fwrite($this->yyTraceFILE, $this->yyTracePrompt . "FALLBACK " .
2833:                         $this->yyTokenName[$iLookAhead] . " => " .
2834:                         $this->yyTokenName[$iFallback] . "\n");
2835:                 }
2836: 
2837:                 return $this->yy_find_shift_action($iFallback);
2838:             }
2839: 
2840:             return self::$yy_default[$stateno];
2841:         } else {
2842:             return self::$yy_action[$i];
2843:         }
2844:     }
2845: 
2846:     public function yy_find_reduce_action($stateno, $iLookAhead)
2847:     {
2848:         
2849: 
2850:         if (!isset(self::$yy_reduce_ofst[$stateno])) {
2851:             return self::$yy_default[$stateno];
2852:         }
2853:         $i = self::$yy_reduce_ofst[$stateno];
2854:         if ($i == self::YY_REDUCE_USE_DFLT) {
2855:             return self::$yy_default[$stateno];
2856:         }
2857:         if ($iLookAhead == self::YYNOCODE) {
2858:             return self::YY_NO_ACTION;
2859:         }
2860:         $i += $iLookAhead;
2861:         if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
2862:             self::$yy_lookahead[$i] != $iLookAhead
2863:         ) {
2864:             return self::$yy_default[$stateno];
2865:         } else {
2866:             return self::$yy_action[$i];
2867:         }
2868:     }
2869: 
2870:     public function yy_shift($yyNewState, $yyMajor, $yypMinor)
2871:     {
2872:         $this->yyidx ++;
2873:         if ($this->yyidx >= self::YYSTACKDEPTH) {
2874:             $this->yyidx --;
2875:             if ($this->yyTraceFILE) {
2876:                 fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
2877:             }
2878:             while ($this->yyidx >= 0) {
2879:                 $this->yy_pop_parser_stack();
2880:             }
2881:             
2882: 
2883:             $this->internalError = true;
2884:             $this->compiler->trigger_template_error("Stack overflow in template parser");
2885:             
2886: 
2887:             return;
2888:         }
2889:         $yytos = new TP_yyStackEntry;
2890:         $yytos->stateno = $yyNewState;
2891:         $yytos->major = $yyMajor;
2892:         $yytos->minor = $yypMinor;
2893:         array_push($this->yystack, $yytos);
2894:         if ($this->yyTraceFILE && $this->yyidx > 0) {
2895:             fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
2896:                     $yyNewState);
2897:             fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
2898:             for ($i = 1; $i <= $this->yyidx; $i ++) {
2899:                 fprintf($this->yyTraceFILE, " %s",
2900:                         $this->yyTokenName[$this->yystack[$i]->major]);
2901:             }
2902:             fwrite($this->yyTraceFILE, "\n");
2903:         }
2904:     }
2905: 
2906:     public static $yyRuleInfo = array(
2907:         array('lhs' => 83, 'rhs' => 1),
2908:         array('lhs' => 84, 'rhs' => 1),
2909:         array('lhs' => 84, 'rhs' => 2),
2910:         array('lhs' => 84, 'rhs' => 0),
2911:         array('lhs' => 85, 'rhs' => 2),
2912:         array('lhs' => 85, 'rhs' => 1),
2913:         array('lhs' => 85, 'rhs' => 1),
2914:         array('lhs' => 85, 'rhs' => 1),
2915:         array('lhs' => 85, 'rhs' => 1),
2916:         array('lhs' => 85, 'rhs' => 1),
2917:         array('lhs' => 85, 'rhs' => 1),
2918:         array('lhs' => 85, 'rhs' => 1),
2919:         array('lhs' => 85, 'rhs' => 1),
2920:         array('lhs' => 85, 'rhs' => 1),
2921:         array('lhs' => 85, 'rhs' => 1),
2922:         array('lhs' => 85, 'rhs' => 1),
2923:         array('lhs' => 85, 'rhs' => 1),
2924:         array('lhs' => 87, 'rhs' => 2),
2925:         array('lhs' => 87, 'rhs' => 3),
2926:         array('lhs' => 88, 'rhs' => 2),
2927:         array('lhs' => 88, 'rhs' => 0),
2928:         array('lhs' => 89, 'rhs' => 1),
2929:         array('lhs' => 89, 'rhs' => 1),
2930:         array('lhs' => 86, 'rhs' => 2),
2931:         array('lhs' => 86, 'rhs' => 4),
2932:         array('lhs' => 86, 'rhs' => 3),
2933:         array('lhs' => 86, 'rhs' => 4),
2934:         array('lhs' => 86, 'rhs' => 3),
2935:         array('lhs' => 86, 'rhs' => 5),
2936:         array('lhs' => 86, 'rhs' => 5),
2937:         array('lhs' => 86, 'rhs' => 6),
2938:         array('lhs' => 86, 'rhs' => 5),
2939:         array('lhs' => 86, 'rhs' => 3),
2940:         array('lhs' => 86, 'rhs' => 2),
2941:         array('lhs' => 86, 'rhs' => 5),
2942:         array('lhs' => 86, 'rhs' => 4),
2943:         array('lhs' => 86, 'rhs' => 6),
2944:         array('lhs' => 86, 'rhs' => 2),
2945:         array('lhs' => 86, 'rhs' => 3),
2946:         array('lhs' => 86, 'rhs' => 2),
2947:         array('lhs' => 86, 'rhs' => 3),
2948:         array('lhs' => 86, 'rhs' => 11),
2949:         array('lhs' => 99, 'rhs' => 2),
2950:         array('lhs' => 99, 'rhs' => 1),
2951:         array('lhs' => 86, 'rhs' => 5),
2952:         array('lhs' => 86, 'rhs' => 7),
2953:         array('lhs' => 86, 'rhs' => 2),
2954:         array('lhs' => 86, 'rhs' => 7),
2955:         array('lhs' => 86, 'rhs' => 10),
2956:         array('lhs' => 86, 'rhs' => 7),
2957:         array('lhs' => 86, 'rhs' => 10),
2958:         array('lhs' => 86, 'rhs' => 3),
2959:         array('lhs' => 86, 'rhs' => 4),
2960:         array('lhs' => 86, 'rhs' => 2),
2961:         array('lhs' => 86, 'rhs' => 2),
2962:         array('lhs' => 86, 'rhs' => 3),
2963:         array('lhs' => 86, 'rhs' => 4),
2964:         array('lhs' => 86, 'rhs' => 5),
2965:         array('lhs' => 92, 'rhs' => 2),
2966:         array('lhs' => 92, 'rhs' => 1),
2967:         array('lhs' => 92, 'rhs' => 0),
2968:         array('lhs' => 101, 'rhs' => 4),
2969:         array('lhs' => 101, 'rhs' => 2),
2970:         array('lhs' => 101, 'rhs' => 2),
2971:         array('lhs' => 101, 'rhs' => 2),
2972:         array('lhs' => 101, 'rhs' => 2),
2973:         array('lhs' => 101, 'rhs' => 2),
2974:         array('lhs' => 101, 'rhs' => 4),
2975:         array('lhs' => 96, 'rhs' => 1),
2976:         array('lhs' => 96, 'rhs' => 3),
2977:         array('lhs' => 95, 'rhs' => 4),
2978:         array('lhs' => 95, 'rhs' => 3),
2979:         array('lhs' => 95, 'rhs' => 3),
2980:         array('lhs' => 93, 'rhs' => 1),
2981:         array('lhs' => 93, 'rhs' => 1),
2982:         array('lhs' => 93, 'rhs' => 4),
2983:         array('lhs' => 93, 'rhs' => 3),
2984:         array('lhs' => 93, 'rhs' => 3),
2985:         array('lhs' => 93, 'rhs' => 3),
2986:         array('lhs' => 93, 'rhs' => 1),
2987:         array('lhs' => 93, 'rhs' => 2),
2988:         array('lhs' => 93, 'rhs' => 3),
2989:         array('lhs' => 93, 'rhs' => 3),
2990:         array('lhs' => 93, 'rhs' => 3),
2991:         array('lhs' => 93, 'rhs' => 3),
2992:         array('lhs' => 93, 'rhs' => 3),
2993:         array('lhs' => 93, 'rhs' => 3),
2994:         array('lhs' => 93, 'rhs' => 2),
2995:         array('lhs' => 93, 'rhs' => 2),
2996:         array('lhs' => 93, 'rhs' => 3),
2997:         array('lhs' => 93, 'rhs' => 3),
2998:         array('lhs' => 93, 'rhs' => 2),
2999:         array('lhs' => 93, 'rhs' => 2),
3000:         array('lhs' => 93, 'rhs' => 3),
3001:         array('lhs' => 93, 'rhs' => 3),
3002:         array('lhs' => 93, 'rhs' => 3),
3003:         array('lhs' => 93, 'rhs' => 3),
3004:         array('lhs' => 102, 'rhs' => 8),
3005:         array('lhs' => 102, 'rhs' => 7),
3006:         array('lhs' => 90, 'rhs' => 1),
3007:         array('lhs' => 90, 'rhs' => 2),
3008:         array('lhs' => 90, 'rhs' => 2),
3009:         array('lhs' => 90, 'rhs' => 2),
3010:         array('lhs' => 90, 'rhs' => 2),
3011:         array('lhs' => 90, 'rhs' => 1),
3012:         array('lhs' => 90, 'rhs' => 1),
3013:         array('lhs' => 90, 'rhs' => 3),
3014:         array('lhs' => 90, 'rhs' => 2),
3015:         array('lhs' => 90, 'rhs' => 2),
3016:         array('lhs' => 90, 'rhs' => 1),
3017:         array('lhs' => 90, 'rhs' => 1),
3018:         array('lhs' => 90, 'rhs' => 3),
3019:         array('lhs' => 90, 'rhs' => 1),
3020:         array('lhs' => 90, 'rhs' => 1),
3021:         array('lhs' => 90, 'rhs' => 3),
3022:         array('lhs' => 90, 'rhs' => 3),
3023:         array('lhs' => 90, 'rhs' => 2),
3024:         array('lhs' => 90, 'rhs' => 2),
3025:         array('lhs' => 106, 'rhs' => 1),
3026:         array('lhs' => 106, 'rhs' => 4),
3027:         array('lhs' => 106, 'rhs' => 1),
3028:         array('lhs' => 106, 'rhs' => 3),
3029:         array('lhs' => 106, 'rhs' => 4),
3030:         array('lhs' => 106, 'rhs' => 3),
3031:         array('lhs' => 106, 'rhs' => 4),
3032:         array('lhs' => 94, 'rhs' => 3),
3033:         array('lhs' => 111, 'rhs' => 2),
3034:         array('lhs' => 111, 'rhs' => 0),
3035:         array('lhs' => 112, 'rhs' => 3),
3036:         array('lhs' => 112, 'rhs' => 5),
3037:         array('lhs' => 112, 'rhs' => 2),
3038:         array('lhs' => 112, 'rhs' => 2),
3039:         array('lhs' => 112, 'rhs' => 4),
3040:         array('lhs' => 112, 'rhs' => 3),
3041:         array('lhs' => 112, 'rhs' => 5),
3042:         array('lhs' => 112, 'rhs' => 3),
3043:         array('lhs' => 112, 'rhs' => 2),
3044:         array('lhs' => 98, 'rhs' => 1),
3045:         array('lhs' => 98, 'rhs' => 2),
3046:         array('lhs' => 113, 'rhs' => 1),
3047:         array('lhs' => 113, 'rhs' => 3),
3048:         array('lhs' => 110, 'rhs' => 2),
3049:         array('lhs' => 114, 'rhs' => 1),
3050:         array('lhs' => 114, 'rhs' => 2),
3051:         array('lhs' => 115, 'rhs' => 3),
3052:         array('lhs' => 115, 'rhs' => 4),
3053:         array('lhs' => 115, 'rhs' => 5),
3054:         array('lhs' => 115, 'rhs' => 6),
3055:         array('lhs' => 115, 'rhs' => 2),
3056:         array('lhs' => 107, 'rhs' => 4),
3057:         array('lhs' => 116, 'rhs' => 4),
3058:         array('lhs' => 116, 'rhs' => 5),
3059:         array('lhs' => 117, 'rhs' => 3),
3060:         array('lhs' => 117, 'rhs' => 1),
3061:         array('lhs' => 117, 'rhs' => 0),
3062:         array('lhs' => 91, 'rhs' => 3),
3063:         array('lhs' => 91, 'rhs' => 2),
3064:         array('lhs' => 118, 'rhs' => 3),
3065:         array('lhs' => 118, 'rhs' => 2),
3066:         array('lhs' => 100, 'rhs' => 2),
3067:         array('lhs' => 100, 'rhs' => 0),
3068:         array('lhs' => 119, 'rhs' => 2),
3069:         array('lhs' => 119, 'rhs' => 2),
3070:         array('lhs' => 109, 'rhs' => 1),
3071:         array('lhs' => 109, 'rhs' => 2),
3072:         array('lhs' => 109, 'rhs' => 1),
3073:         array('lhs' => 109, 'rhs' => 3),
3074:         array('lhs' => 109, 'rhs' => 4),
3075:         array('lhs' => 104, 'rhs' => 1),
3076:         array('lhs' => 104, 'rhs' => 1),
3077:         array('lhs' => 104, 'rhs' => 1),
3078:         array('lhs' => 104, 'rhs' => 1),
3079:         array('lhs' => 104, 'rhs' => 1),
3080:         array('lhs' => 104, 'rhs' => 1),
3081:         array('lhs' => 104, 'rhs' => 1),
3082:         array('lhs' => 104, 'rhs' => 1),
3083:         array('lhs' => 104, 'rhs' => 1),
3084:         array('lhs' => 105, 'rhs' => 1),
3085:         array('lhs' => 105, 'rhs' => 1),
3086:         array('lhs' => 105, 'rhs' => 1),
3087:         array('lhs' => 103, 'rhs' => 3),
3088:         array('lhs' => 120, 'rhs' => 1),
3089:         array('lhs' => 120, 'rhs' => 3),
3090:         array('lhs' => 120, 'rhs' => 0),
3091:         array('lhs' => 121, 'rhs' => 3),
3092:         array('lhs' => 121, 'rhs' => 3),
3093:         array('lhs' => 121, 'rhs' => 1),
3094:         array('lhs' => 108, 'rhs' => 2),
3095:         array('lhs' => 108, 'rhs' => 3),
3096:         array('lhs' => 122, 'rhs' => 2),
3097:         array('lhs' => 122, 'rhs' => 1),
3098:         array('lhs' => 123, 'rhs' => 3),
3099:         array('lhs' => 123, 'rhs' => 3),
3100:         array('lhs' => 123, 'rhs' => 1),
3101:         array('lhs' => 123, 'rhs' => 3),
3102:         array('lhs' => 123, 'rhs' => 3),
3103:         array('lhs' => 123, 'rhs' => 2),
3104:         array('lhs' => 123, 'rhs' => 1),
3105:         array('lhs' => 97, 'rhs' => 1),
3106:         array('lhs' => 97, 'rhs' => 0),
3107:     );
3108: 
3109:     public static $yyReduceMap = array(
3110:         0   => 0,
3111:         1   => 1,
3112:         2   => 2,
3113:         4   => 4,
3114:         5   => 5,
3115:         6   => 6,
3116:         7   => 7,
3117:         8   => 8,
3118:         9   => 9,
3119:         10  => 10,
3120:         11  => 11,
3121:         12  => 12,
3122:         13  => 13,
3123:         14  => 14,
3124:         15  => 15,
3125:         16  => 16,
3126:         17  => 17,
3127:         20  => 17,
3128:         199 => 17,
3129:         18  => 18,
3130:         72  => 18,
3131:         19  => 19,
3132:         100 => 19,
3133:         102 => 19,
3134:         103 => 19,
3135:         126 => 19,
3136:         164 => 19,
3137:         21  => 21,
3138:         22  => 21,
3139:         43  => 21,
3140:         65  => 21,
3141:         66  => 21,
3142:         73  => 21,
3143:         74  => 21,
3144:         79  => 21,
3145:         99  => 21,
3146:         104 => 21,
3147:         105 => 21,
3148:         110 => 21,
3149:         112 => 21,
3150:         113 => 21,
3151:         120 => 21,
3152:         137 => 21,
3153:         163 => 21,
3154:         165 => 21,
3155:         181 => 21,
3156:         186 => 21,
3157:         198 => 21,
3158:         23  => 23,
3159:         24  => 24,
3160:         25  => 25,
3161:         27  => 25,
3162:         26  => 26,
3163:         28  => 28,
3164:         29  => 28,
3165:         30  => 30,
3166:         31  => 31,
3167:         32  => 32,
3168:         33  => 33,
3169:         34  => 34,
3170:         35  => 35,
3171:         36  => 36,
3172:         37  => 37,
3173:         38  => 38,
3174:         40  => 38,
3175:         39  => 39,
3176:         41  => 41,
3177:         42  => 42,
3178:         44  => 44,
3179:         45  => 45,
3180:         46  => 46,
3181:         47  => 47,
3182:         49  => 47,
3183:         48  => 48,
3184:         50  => 48,
3185:         51  => 51,
3186:         52  => 52,
3187:         53  => 53,
3188:         54  => 54,
3189:         55  => 55,
3190:         56  => 56,
3191:         57  => 57,
3192:         58  => 58,
3193:         59  => 59,
3194:         68  => 59,
3195:         153 => 59,
3196:         157 => 59,
3197:         161 => 59,
3198:         162 => 59,
3199:         60  => 60,
3200:         154 => 60,
3201:         160 => 60,
3202:         61  => 61,
3203:         62  => 62,
3204:         63  => 62,
3205:         64  => 64,
3206:         67  => 67,
3207:         69  => 69,
3208:         70  => 70,
3209:         71  => 70,
3210:         75  => 75,
3211:         76  => 76,
3212:         77  => 76,
3213:         78  => 76,
3214:         80  => 80,
3215:         117 => 80,
3216:         81  => 81,
3217:         84  => 81,
3218:         95  => 81,
3219:         82  => 82,
3220:         83  => 83,
3221:         85  => 85,
3222:         86  => 86,
3223:         87  => 87,
3224:         92  => 87,
3225:         88  => 88,
3226:         91  => 88,
3227:         89  => 89,
3228:         94  => 89,
3229:         90  => 90,
3230:         93  => 90,
3231:         96  => 96,
3232:         97  => 97,
3233:         98  => 98,
3234:         101 => 101,
3235:         106 => 106,
3236:         107 => 107,
3237:         108 => 108,
3238:         109 => 109,
3239:         111 => 111,
3240:         114 => 114,
3241:         115 => 115,
3242:         116 => 116,
3243:         118 => 118,
3244:         119 => 119,
3245:         121 => 121,
3246:         122 => 122,
3247:         123 => 123,
3248:         124 => 124,
3249:         125 => 125,
3250:         127 => 127,
3251:         183 => 127,
3252:         128 => 128,
3253:         129 => 129,
3254:         130 => 130,
3255:         131 => 131,
3256:         132 => 132,
3257:         135 => 132,
3258:         133 => 133,
3259:         134 => 134,
3260:         136 => 136,
3261:         138 => 138,
3262:         139 => 139,
3263:         140 => 140,
3264:         141 => 141,
3265:         142 => 142,
3266:         143 => 143,
3267:         144 => 144,
3268:         145 => 145,
3269:         146 => 146,
3270:         147 => 147,
3271:         148 => 148,
3272:         149 => 149,
3273:         150 => 150,
3274:         151 => 151,
3275:         152 => 152,
3276:         155 => 155,
3277:         156 => 156,
3278:         158 => 158,
3279:         159 => 159,
3280:         166 => 166,
3281:         167 => 167,
3282:         168 => 168,
3283:         169 => 169,
3284:         170 => 170,
3285:         171 => 171,
3286:         172 => 172,
3287:         173 => 173,
3288:         174 => 174,
3289:         175 => 175,
3290:         176 => 176,
3291:         177 => 177,
3292:         178 => 178,
3293:         179 => 179,
3294:         180 => 180,
3295:         182 => 182,
3296:         184 => 184,
3297:         185 => 185,
3298:         187 => 187,
3299:         188 => 188,
3300:         189 => 189,
3301:         190 => 190,
3302:         191 => 191,
3303:         192 => 191,
3304:         194 => 191,
3305:         193 => 193,
3306:         195 => 195,
3307:         196 => 196,
3308:         197 => 197,
3309:     );
3310: 
3311:     
3312:     function yy_r0()
3313:     {
3314:         $this->_retvalue = $this->root_buffer->to_smarty_php();
3315:     }
3316:     
3317:     
3318:     function yy_r1()
3319:     {
3320:         if ($this->yystack[$this->yyidx + 0]->minor != null) {
3321:             $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
3322:         }
3323:     }
3324:     
3325:     
3326:     function yy_r2()
3327:     {
3328:         if ($this->yystack[$this->yyidx + 0]->minor != null) {
3329:             
3330:             $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);
3331:         }
3332:     }
3333:     
3334:     
3335:     function yy_r4()
3336:     {
3337:         if ($this->compiler->has_code) {
3338:             $tmp = '';
3339:             foreach ($this->compiler->prefix_code as $code) {
3340:                 $tmp .= $code;
3341:             }
3342:             $this->compiler->prefix_code = array();
3343:             $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode($tmp . $this->yystack[$this->yyidx + - 1]->minor, true));
3344:         } else {
3345:             $this->_retvalue = null;
3346:         }
3347:         $this->compiler->has_variable_string = false;
3348:         $this->block_nesting_level = count($this->compiler->_tag_stack);
3349:     }
3350:     
3351:     
3352:     function yy_r5()
3353:     {
3354:         $this->_retvalue = null;
3355:     }
3356:     
3357:     
3358:     function yy_r6()
3359:     {
3360:         $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3361:     }
3362:     
3363:     
3364:     function yy_r7()
3365:     {
3366:         if (strpos($this->yystack[$this->yyidx + 0]->minor, '<s') === 0) {
3367:             $this->lex->is_phpScript = true;
3368:         }
3369:         if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3370:             if ($this->lex->is_phpScript) {
3371:                 $s = addcslashes($this->yystack[$this->yyidx + 0]->minor, "'");
3372:                 $this->_retvalue = new _smarty_text($this, $s);
3373:             } else {
3374:                 $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3375:             }
3376:         } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3377:             $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
3378:         } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3379:             if (!($this->smarty instanceof SmartyBC)) {
3380:                 $this->compiler->trigger_template_error(self::Err3);
3381:             }
3382:             $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('<?php ', true));
3383:         } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3384:             $this->_retvalue = null;
3385:         }
3386:     }
3387:     
3388:     
3389:     function yy_r8()
3390:     {
3391:         if ($this->is_xml) {
3392:             $this->compiler->tag_nocache = true;
3393:             $this->is_xml = false;
3394:             $save = $this->template->has_nocache_code;
3395:             $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode("<?php echo '?>';?>\n", $this->compiler, true));
3396:             $this->template->has_nocache_code = $save;
3397:         } elseif ($this->php_handling == Smarty::PHP_PASSTHRU) {
3398:             $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3399:         } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3400:             $this->_retvalue = new _smarty_text($this, htmlspecialchars('?>', ENT_QUOTES));
3401:         } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3402:             $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('?>', true));
3403:         } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3404:             $this->_retvalue = null;
3405:         }
3406:     }
3407:     
3408:     
3409:     function yy_r9()
3410:     {
3411:         if (!$this->lex->is_phpScript) {
3412:             $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3413:         } else {
3414:             $this->lex->is_phpScript = false;
3415:             if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3416:                 $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3417:             } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3418:                 $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
3419:             } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3420:                 $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('?>', true));
3421:             } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3422:                 $this->_retvalue = null;
3423:             }
3424:         }
3425:     }
3426:     
3427:     
3428:     function yy_r10()
3429:     {
3430:         if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3431:             $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3432:         } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3433:             $this->_retvalue = new _smarty_text($this, htmlspecialchars($this->yystack[$this->yyidx + 0]->minor, ENT_QUOTES));
3434:         } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3435:             if ($this->asp_tags) {
3436:                 if (!($this->smarty instanceof SmartyBC)) {
3437:                     $this->compiler->trigger_template_error(self::Err3);
3438:                 }
3439:                 $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('<%', true));
3440:             } else {
3441:                 $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3442:             }
3443:         } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3444:             if ($this->asp_tags) {
3445:                 $this->_retvalue = null;
3446:             } else {
3447:                 $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3448:             }
3449:         }
3450:     }
3451:     
3452:     
3453:     function yy_r11()
3454:     {
3455:         if ($this->php_handling == Smarty::PHP_PASSTHRU) {
3456:             $this->_retvalue = new _smarty_text($this, st);
3457:         } elseif ($this->php_handling == Smarty::PHP_QUOTE) {
3458:             $this->_retvalue = new _smarty_text($this, htmlspecialchars('%>', ENT_QUOTES));
3459:         } elseif ($this->php_handling == Smarty::PHP_ALLOW) {
3460:             if ($this->asp_tags) {
3461:                 $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode('%>', true));
3462:             } else {
3463:                 $this->_retvalue = new _smarty_text($this, st);
3464:             }
3465:         } elseif ($this->php_handling == Smarty::PHP_REMOVE) {
3466:             if ($this->asp_tags) {
3467:                 $this->_retvalue = null;
3468:             } else {
3469:                 $this->_retvalue = new _smarty_text($this, st);
3470:             }
3471:         }
3472:     }
3473:     
3474:     
3475:     function yy_r12()
3476:     {
3477:         $this->compiler->tag_nocache = true;
3478:         $this->is_xml = true;
3479:         $save = $this->template->has_nocache_code;
3480:         $this->_retvalue = new _smarty_tag($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));
3481:         $this->template->has_nocache_code = $save;
3482:     }
3483:     
3484:     
3485:     function yy_r13()
3486:     {
3487:         if ($this->strip) {
3488:             $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
3489:         } else {
3490:             $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);
3491:         }
3492:     }
3493:     
3494:     
3495:     function yy_r14()
3496:     {
3497:         $this->strip = true;
3498:     }
3499:     
3500:     
3501:     function yy_r15()
3502:     {
3503:         $this->strip = false;
3504:     }
3505:     
3506:     
3507:     function yy_r16()
3508:     {
3509:         if ($this->strip) {
3510:             SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor));
3511:         } else {
3512:             SMARTY_INTERNAL_COMPILE_BLOCK::blockSource($this->compiler, $this->yystack[$this->yyidx + 0]->minor);
3513:         }
3514:     }
3515:     
3516:     
3517:     function yy_r17()
3518:     {
3519:         $this->_retvalue = '';
3520:     }
3521:     
3522:     
3523:     function yy_r18()
3524:     {
3525:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
3526:     }
3527:     
3528:     
3529:     function yy_r19()
3530:     {
3531:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
3532:     }
3533:     
3534:     
3535:     function yy_r21()
3536:     {
3537:         $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
3538:     }
3539:     
3540:     
3541:     function yy_r23()
3542:     {
3543:         $this->_retvalue = $this->compiler->compileTag('private_print_expression', array(), array('value' => $this->yystack[$this->yyidx + 0]->minor));
3544:     }
3545:     
3546:     
3547:     function yy_r24()
3548:     {
3549:         $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 2]->minor, 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
3550:     }
3551:     
3552:     
3553:     function yy_r25()
3554:     {
3555:         $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 1]->minor));
3556:     }
3557:     
3558:     
3559:     function yy_r26()
3560:     {
3561:         $this->_retvalue = $this->compiler->compileTag('private_print_expression', $this->yystack[$this->yyidx + 0]->minor, array('value' => $this->yystack[$this->yyidx + - 2]->minor, 'modifierlist' => $this->yystack[$this->yyidx + - 1]->minor));
3562:     }
3563:     
3564:     
3565:     function yy_r28()
3566:     {
3567:         $this->_retvalue = $this->compiler->compileTag('assign', array(array('value' => $this->yystack[$this->yyidx + 0]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 2]->minor . "'")));
3568:     }
3569:     
3570:     
3571:     function yy_r30()
3572:     {
3573:         $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => "'" . $this->yystack[$this->yyidx + - 3]->minor . "'")), $this->yystack[$this->yyidx + 0]->minor));
3574:     }
3575:     
3576:     
3577:     function yy_r31()
3578:     {
3579:         $this->_retvalue = $this->compiler->compileTag('assign', array_merge(array(array('value' => $this->yystack[$this->yyidx + - 1]->minor), array('var' => $this->yystack[$this->yyidx + - 3]->minor['var'])), $this->yystack[$this->yyidx + 0]->minor), array('smarty_internal_index' => $this->yystack[$this->yyidx + - 3]->minor['smarty_internal_index']));
3580:     }
3581:     
3582:     
3583:     function yy_r32()
3584:     {
3585:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
3586:     }
3587:     
3588:     
3589:     function yy_r33()
3590:     {
3591:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor, array());
3592:     }
3593:     
3594:     
3595:     function yy_r34()
3596:     {
3597:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 1]->minor));
3598:     }
3599:     
3600:     
3601:     function yy_r35()
3602:     {
3603:         $this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor, $this->yystack[$this->yyidx + 0]->minor) . '<?php echo ';
3604:         $this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . '?>';
3605:     }
3606:     
3607:     
3608:     function yy_r36()
3609:     {
3610:         $this->_retvalue = '<?php ob_start();?>' . $this->compiler->compileTag($this->yystack[$this->yyidx + - 4]->minor, $this->yystack[$this->yyidx + 0]->minor, array('object_method' => $this->yystack[$this->yyidx + - 2]->minor)) . '<?php echo ';
3611:         $this->_retvalue .= $this->compiler->compileTag('private_modifier', array(), array('modifierlist' => $this->yystack[$this->yyidx + - 1]->minor, 'value' => 'ob_get_clean()')) . '?>';
3612:     }
3613:     
3614:     
3615:     function yy_r37()
3616:     {
3617:         $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
3618:         $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor));
3619:     }
3620:     
3621:     
3622:     function yy_r38()
3623:     {
3624:         $tag = trim(substr($this->yystack[$this->yyidx + - 2]->minor, $this->lex->ldel_length));
3625:         $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, $this->yystack[$this->yyidx + 0]->minor, array('if condition' => $this->yystack[$this->yyidx + - 1]->minor));
3626:     }
3627:     
3628:     
3629:     function yy_r39()
3630:     {
3631:         $tag = trim(substr($this->yystack[$this->yyidx + - 1]->minor, $this->lex->ldel_length));
3632:         $this->_retvalue = $this->compiler->compileTag(($tag == 'else if') ? 'elseif' : $tag, array(), array('if condition' => $this->yystack[$this->yyidx + 0]->minor));
3633:     }
3634:     
3635:     
3636:     function yy_r41()
3637:     {
3638:         $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 9]->minor), array('ifexp' => $this->yystack[$this->yyidx + - 6]->minor), array('var' => $this->yystack[$this->yyidx + - 2]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 1);
3639:     }
3640:     
3641:     
3642:     function yy_r42()
3643:     {
3644:         $this->_retvalue = '=' . $this->yystack[$this->yyidx + 0]->minor;
3645:     }
3646:     
3647:     
3648:     function yy_r44()
3649:     {
3650:         $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 3]->minor), array('to' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
3651:     }
3652:     
3653:     
3654:     function yy_r45()
3655:     {
3656:         $this->_retvalue = $this->compiler->compileTag('for', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('start' => $this->yystack[$this->yyidx + - 5]->minor), array('to' => $this->yystack[$this->yyidx + - 3]->minor), array('step' => $this->yystack[$this->yyidx + - 1]->minor))), 0);
3657:     }
3658:     
3659:     
3660:     function yy_r46()
3661:     {
3662:         $this->_retvalue = $this->compiler->compileTag('foreach', $this->yystack[$this->yyidx + 0]->minor);
3663:     }
3664:     
3665:     
3666:     function yy_r47()
3667:     {
3668:         $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 4]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor))));
3669:     }
3670:     
3671:     
3672:     function yy_r48()
3673:     {
3674:         $this->_retvalue = $this->compiler->compileTag('foreach', array_merge($this->yystack[$this->yyidx + 0]->minor, array(array('from' => $this->yystack[$this->yyidx + - 7]->minor), array('item' => $this->yystack[$this->yyidx + - 1]->minor), array('key' => $this->yystack[$this->yyidx + - 4]->minor))));
3675:     }
3676:     
3677:     
3678:     function yy_r51()
3679:     {
3680:         $this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array(array_merge(array($this->yystack[$this->yyidx + - 1]->minor), $this->yystack[$this->yyidx + 0]->minor))));
3681:     }
3682:     
3683:     
3684:     function yy_r52()
3685:     {
3686:         $this->_retvalue = $this->compiler->compileTag('setfilter', array(), array('modifier_list' => array_merge(array(array_merge(array($this->yystack[$this->yyidx + - 2]->minor), $this->yystack[$this->yyidx + - 1]->minor)), $this->yystack[$this->yyidx + 0]->minor)));
3687:     }
3688:     
3689:     
3690:     function yy_r53()
3691:     {
3692:         $j = strrpos($this->yystack[$this->yyidx + 0]->minor, '.');
3693:         if ($this->yystack[$this->yyidx + 0]->minor[$j + 1] == 'c') {
3694:             
3695:             $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);
3696:         } else {
3697:             
3698:             $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileParentBlock($this->compiler);
3699:         }
3700:     }
3701:     
3702:     
3703:     function yy_r54()
3704:     {
3705:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor . 'close', array());
3706:     }
3707:     
3708:     
3709:     function yy_r55()
3710:     {
3711:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 1]->minor . 'close', array(), array('modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
3712:     }
3713:     
3714:     
3715:     function yy_r56()
3716:     {
3717:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 2]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + 0]->minor));
3718:     }
3719:     
3720:     
3721:     function yy_r57()
3722:     {
3723:         $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + - 3]->minor . 'close', array(), array('object_method' => $this->yystack[$this->yyidx + - 1]->minor, 'modifier_list' => $this->yystack[$this->yyidx + 0]->minor));
3724:     }
3725:     
3726:     
3727:     function yy_r58()
3728:     {
3729:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
3730:         $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
3731:     }
3732:     
3733:     
3734:     function yy_r59()
3735:     {
3736:         $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
3737:     }
3738:     
3739:     
3740:     function yy_r60()
3741:     {
3742:         $this->_retvalue = array();
3743:     }
3744:     
3745:     
3746:     function yy_r61()
3747:     {
3748:         if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3749:             $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'true');
3750:         } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3751:             $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'false');
3752:         } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3753:             $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => 'null');
3754:         } else {
3755:             $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => "'" . $this->yystack[$this->yyidx + 0]->minor . "'");
3756:         }
3757:     }
3758:     
3759:     
3760:     function yy_r62()
3761:     {
3762:         $this->_retvalue = array(trim($this->yystack[$this->yyidx + - 1]->minor, " =\n\r\t") => $this->yystack[$this->yyidx + 0]->minor);
3763:     }
3764:     
3765:     
3766:     function yy_r64()
3767:     {
3768:         $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
3769:     }
3770:     
3771:     
3772:     function yy_r67()
3773:     {
3774:         $this->_retvalue = array($this->yystack[$this->yyidx + - 2]->minor => $this->yystack[$this->yyidx + 0]->minor);
3775:     }
3776:     
3777:     
3778:     function yy_r69()
3779:     {
3780:         $this->yystack[$this->yyidx + - 2]->minor[] = $this->yystack[$this->yyidx + 0]->minor;
3781:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor;
3782:     }
3783:     
3784:     
3785:     function yy_r70()
3786:     {
3787:         $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 2]->minor, 'value' => $this->yystack[$this->yyidx + 0]->minor);
3788:     }
3789:     
3790:     
3791:     function yy_r75()
3792:     {
3793:         $this->_retvalue = '$_smarty_tpl->getStreamVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
3794:     }
3795:     
3796:     
3797:     function yy_r76()
3798:     {
3799:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . trim($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
3800:     }
3801:     
3802:     
3803:     function yy_r80()
3804:     {
3805:         $this->_retvalue = $this->compiler->compileTag('private_modifier', array(), array('value' => $this->yystack[$this->yyidx + - 1]->minor, 'modifierlist' => $this->yystack[$this->yyidx + 0]->minor));
3806:     }
3807:     
3808:     
3809:     function yy_r81()
3810:     {
3811:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
3812:     }
3813:     
3814:     
3815:     function yy_r82()
3816:     {
3817:         $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor . ')';
3818:     }
3819:     
3820:     
3821:     function yy_r83()
3822:     {
3823:         $this->_retvalue = 'in_array(' . $this->yystack[$this->yyidx + - 2]->minor . ',(array)' . $this->yystack[$this->yyidx + 0]->minor . ')';
3824:     }
3825:     
3826:     
3827:     function yy_r85()
3828:     {
3829:         $this->_retvalue = '!(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3830:     }
3831:     
3832:     
3833:     function yy_r86()
3834:     {
3835:         $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 2]->minor . ' % ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3836:     }
3837:     
3838:     
3839:     function yy_r87()
3840:     {
3841:         $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')';
3842:     }
3843:     
3844:     
3845:     function yy_r88()
3846:     {
3847:         $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 1]->minor . ')';
3848:     }
3849:     
3850:     
3851:     function yy_r89()
3852:     {
3853:         $this->_retvalue = '!(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3854:     }
3855:     
3856:     
3857:     function yy_r90()
3858:     {
3859:         $this->_retvalue = '(1 & ' . $this->yystack[$this->yyidx + - 2]->minor . ' / ' . $this->yystack[$this->yyidx + 0]->minor . ')';
3860:     }
3861:     
3862:     
3863:     function yy_r96()
3864:     {
3865:         self::$prefix_number ++;
3866:         $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . $this->yystack[$this->yyidx + 0]->minor . ';?>';
3867:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . '$_tmp' . self::$prefix_number;
3868:     }
3869:     
3870:     
3871:     function yy_r97()
3872:     {
3873:         $this->_retvalue = $this->yystack[$this->yyidx + - 6]->minor . ' ? ' . $this->compileVariable("'" . $this->yystack[$this->yyidx + - 2]->minor . "'") . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
3874:     }
3875:     
3876:     
3877:     function yy_r98()
3878:     {
3879:         $this->_retvalue = $this->yystack[$this->yyidx + - 5]->minor . ' ? ' . $this->yystack[$this->yyidx + - 2]->minor . ' : ' . $this->yystack[$this->yyidx + 0]->minor;
3880:     }
3881:     
3882:     
3883:     function yy_r101()
3884:     {
3885:         $this->_retvalue = '!' . $this->yystack[$this->yyidx + 0]->minor;
3886:     }
3887:     
3888:     
3889:     function yy_r106()
3890:     {
3891:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
3892:     }
3893:     
3894:     
3895:     function yy_r107()
3896:     {
3897:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.';
3898:     }
3899:     
3900:     
3901:     function yy_r108()
3902:     {
3903:         $this->_retvalue = '.' . $this->yystack[$this->yyidx + 0]->minor;
3904:     }
3905:     
3906:     
3907:     function yy_r109()
3908:     {
3909:         if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3910:             $this->_retvalue = 'true';
3911:         } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3912:             $this->_retvalue = 'false';
3913:         } elseif (preg_match('~^null$~i', $this->yystack[$this->yyidx + 0]->minor)) {
3914:             $this->_retvalue = 'null';
3915:         } else {
3916:             $this->_retvalue = "'" . $this->yystack[$this->yyidx + 0]->minor . "'";
3917:         }
3918:     }
3919:     
3920:     
3921:     function yy_r111()
3922:     {
3923:         $this->_retvalue = "(" . $this->yystack[$this->yyidx + - 1]->minor . ")";
3924:     }
3925:     
3926:     
3927:     function yy_r114()
3928:     {
3929:         if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + - 2]->minor, $this->compiler)) {
3930:             if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor])) {
3931:                 $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + - 2]->minor] . '::' . $this->yystack[$this->yyidx + 0]->minor;
3932:             } else {
3933:                 $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '::' . $this->yystack[$this->yyidx + 0]->minor;
3934:             }
3935:         } else {
3936:             $this->compiler->trigger_template_error("static class '" . $this->yystack[$this->yyidx + - 2]->minor . "' is undefined or not allowed by security setting");
3937:         }
3938:     }
3939:     
3940:     
3941:     function yy_r115()
3942:     {
3943:         if ($this->yystack[$this->yyidx + - 2]->minor['var'] == '\'smarty\'') {
3944:             $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index']) . '::' . $this->yystack[$this->yyidx + 0]->minor;
3945:         } else {
3946:             $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + - 2]->minor['var']) . $this->yystack[$this->yyidx + - 2]->minor['smarty_internal_index'] . '::' . $this->yystack[$this->yyidx + 0]->minor;
3947:         }
3948:     }
3949:     
3950:     
3951:     function yy_r116()
3952:     {
3953:         self::$prefix_number ++;
3954:         $this->compiler->prefix_code[] = '<?php ob_start();?>' . $this->yystack[$this->yyidx + - 1]->minor . '<?php $_tmp' . self::$prefix_number . '=ob_get_clean();?>';
3955:         $this->_retvalue = '$_tmp' . self::$prefix_number;
3956:     }
3957:     
3958:     
3959:     function yy_r118()
3960:     {
3961:         if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
3962:             $smarty_var = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
3963:             $this->_retvalue = $smarty_var;
3964:         } else {
3965:             
3966:             $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
3967:             $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
3968:             $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']) . $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
3969:         }
3970:     }
3971:     
3972:     
3973:     function yy_r119()
3974:     {
3975:         $this->_retvalue = '$_smarty_tpl->tpl_vars[' . $this->yystack[$this->yyidx + - 2]->minor . ']->' . $this->yystack[$this->yyidx + 0]->minor;
3976:     }
3977:     
3978:     
3979:     function yy_r121()
3980:     {
3981:         $this->_retvalue = '$_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + - 1]->minor . '\')';
3982:     }
3983:     
3984:     
3985:     function yy_r122()
3986:     {
3987:         $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(\'' . $this->yystack[$this->yyidx + - 2]->minor . '\')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' :null)';
3988:     }
3989:     
3990:     
3991:     function yy_r123()
3992:     {
3993:         $this->_retvalue = '$_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
3994:     }
3995:     
3996:     
3997:     function yy_r124()
3998:     {
3999:         $this->_retvalue = '(is_array($tmp = $_smarty_tpl->getConfigVariable(' . $this->yystack[$this->yyidx + - 2]->minor . ')) ? $tmp' . $this->yystack[$this->yyidx + 0]->minor . ' : null)';
4000:     }
4001:     
4002:     
4003:     function yy_r125()
4004:     {
4005:         $this->_retvalue = array('var' => $this->yystack[$this->yyidx + - 1]->minor, 'smarty_internal_index' => $this->yystack[$this->yyidx + 0]->minor);
4006:     }
4007:     
4008:     
4009:     function yy_r127()
4010:     {
4011:         return;
4012:     }
4013:     
4014:     
4015:     function yy_r128()
4016:     {
4017:         $this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + 0]->minor) . ']';
4018:     }
4019:     
4020:     
4021:     function yy_r129()
4022:     {
4023:         $this->_retvalue = '[' . $this->compileVariable($this->yystack[$this->yyidx + - 2]->minor) . '->' . $this->yystack[$this->yyidx + 0]->minor . ']';
4024:     }
4025:     
4026:     
4027:     function yy_r130()
4028:     {
4029:         $this->_retvalue = "['" . $this->yystack[$this->yyidx + 0]->minor . "']";
4030:     }
4031:     
4032:     
4033:     function yy_r131()
4034:     {
4035:         $this->_retvalue = "[" . $this->yystack[$this->yyidx + 0]->minor . "]";
4036:     }
4037:     
4038:     
4039:     function yy_r132()
4040:     {
4041:         $this->_retvalue = "[" . $this->yystack[$this->yyidx + - 1]->minor . "]";
4042:     }
4043:     
4044:     
4045:     function yy_r133()
4046:     {
4047:         $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\'][\'index\']') . ']';
4048:     }
4049:     
4050:     
4051:     function yy_r134()
4052:     {
4053:         $this->_retvalue = '[' . $this->compiler->compileTag('private_special_variable', array(), '[\'section\'][\'' . $this->yystack[$this->yyidx + - 3]->minor . '\'][\'' . $this->yystack[$this->yyidx + - 1]->minor . '\']') . ']';
4054:     }
4055:     
4056:     
4057:     function yy_r136()
4058:     {
4059:         $this->_retvalue = '[]';
4060:     }
4061:     
4062:     
4063:     function yy_r138()
4064:     {
4065:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . '.' . $this->yystack[$this->yyidx + 0]->minor;
4066:     }
4067:     
4068:     
4069:     function yy_r139()
4070:     {
4071:         $this->_retvalue = '\'' . $this->yystack[$this->yyidx + 0]->minor . '\'';
4072:     }
4073:     
4074:     
4075:     function yy_r140()
4076:     {
4077:         $this->_retvalue = '(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
4078:     }
4079:     
4080:     
4081:     function yy_r141()
4082:     {
4083:         if ($this->yystack[$this->yyidx + - 1]->minor['var'] == '\'smarty\'') {
4084:             $this->_retvalue = $this->compiler->compileTag('private_special_variable', array(), $this->yystack[$this->yyidx + - 1]->minor['smarty_internal_index']) . $this->yystack[$this->yyidx + 0]->minor;
4085:         } else {
4086:             $this->_retvalue = $this->compileVariable($this->yystack[$this->yyidx + - 1]->minor['var']) . $this->yystack[$this->yyidx + - 1]->minor['smarty_internal_index'] . $this->yystack[$this->yyidx + 0]->minor;
4087:         }
4088:     }
4089:     
4090:     
4091:     function yy_r142()
4092:     {
4093:         $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
4094:     }
4095:     
4096:     
4097:     function yy_r143()
4098:     {
4099:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4100:     }
4101:     
4102:     
4103:     function yy_r144()
4104:     {
4105:         if ($this->security && substr($this->yystack[$this->yyidx + - 1]->minor, 0, 1) == '_') {
4106:             $this->compiler->trigger_template_error(self::Err1);
4107:         }
4108:         $this->_retvalue = '->' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4109:     }
4110:     
4111:     
4112:     function yy_r145()
4113:     {
4114:         if ($this->security) {
4115:             $this->compiler->trigger_template_error(self::Err2);
4116:         }
4117:         $this->_retvalue = '->{' . $this->compileVariable($this->yystack[$this->yyidx + - 1]->minor) . $this->yystack[$this->yyidx + 0]->minor . '}';
4118:     }
4119:     
4120:     
4121:     function yy_r146()
4122:     {
4123:         if ($this->security) {
4124:             $this->compiler->trigger_template_error(self::Err2);
4125:         }
4126:         $this->_retvalue = '->{' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
4127:     }
4128:     
4129:     
4130:     function yy_r147()
4131:     {
4132:         if ($this->security) {
4133:             $this->compiler->trigger_template_error(self::Err2);
4134:         }
4135:         $this->_retvalue = '->{\'' . $this->yystack[$this->yyidx + - 4]->minor . '\'.' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + 0]->minor . '}';
4136:     }
4137:     
4138:     
4139:     function yy_r148()
4140:     {
4141:         $this->_retvalue = '->' . $this->yystack[$this->yyidx + 0]->minor;
4142:     }
4143:     
4144:     
4145:     function yy_r149()
4146:     {
4147:         if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + - 3]->minor, $this->compiler)) {
4148:             if (strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + - 3]->minor, 'array') === 0 || is_callable($this->yystack[$this->yyidx + - 3]->minor)) {
4149:                 $func_name = strtolower($this->yystack[$this->yyidx + - 3]->minor);
4150:                 if ($func_name == 'isset') {
4151:                     if (count($this->yystack[$this->yyidx + - 1]->minor) == 0) {
4152:                         $this->compiler->trigger_template_error('Illegal number of paramer in "isset()"');
4153:                     }
4154:                     $par = implode(',', $this->yystack[$this->yyidx + - 1]->minor);
4155:                     if (strncasecmp($par, '$_smarty_tpl->getConfigVariable', strlen('$_smarty_tpl->getConfigVariable')) === 0) {
4156:                         self::$prefix_number ++;
4157:                         $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . str_replace(')', ', false)', $par) . ';?>';
4158:                         $isset_par = '$_tmp' . self::$prefix_number;
4159:                     } else {
4160:                         $isset_par = str_replace("')->value", "',null,true,false)->value", $par);
4161:                     }
4162:                     $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . $isset_par . ")";
4163:                 } elseif (in_array($func_name, array('empty', 'reset', 'current', 'end', 'prev', 'next'))) {
4164:                     if (count($this->yystack[$this->yyidx + - 1]->minor) != 1) {
4165:                         $this->compiler->trigger_template_error('Illegal number of paramer in "empty()"');
4166:                     }
4167:                     if ($func_name == 'empty') {
4168:                         $this->_retvalue = $func_name . '(' . str_replace("')->value", "',null,true,false)->value", $this->yystack[$this->yyidx + - 1]->minor[0]) . ')';
4169:                     } else {
4170:                         $this->_retvalue = $func_name . '(' . $this->yystack[$this->yyidx + - 1]->minor[0] . ')';
4171:                     }
4172:                 } else {
4173:                     $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")";
4174:                 }
4175:             } else {
4176:                 $this->compiler->trigger_template_error("unknown function \"" . $this->yystack[$this->yyidx + - 3]->minor . "\"");
4177:             }
4178:         }
4179:     }
4180:     
4181:     
4182:     function yy_r150()
4183:     {
4184:         if ($this->security && substr($this->yystack[$this->yyidx + - 3]->minor, 0, 1) == '_') {
4185:             $this->compiler->trigger_template_error(self::Err1);
4186:         }
4187:         $this->_retvalue = $this->yystack[$this->yyidx + - 3]->minor . "(" . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ")";
4188:     }
4189:     
4190:     
4191:     function yy_r151()
4192:     {
4193:         if ($this->security) {
4194:             $this->compiler->trigger_template_error(self::Err2);
4195:         }
4196:         self::$prefix_number ++;
4197:         $this->compiler->prefix_code[] = '<?php $_tmp' . self::$prefix_number . '=' . $this->compileVariable("'" . $this->yystack[$this->yyidx + - 3]->minor . "'") . ';?>';
4198:         $this->_retvalue = '$_tmp' . self::$prefix_number . '(' . implode(',', $this->yystack[$this->yyidx + - 1]->minor) . ')';
4199:     }
4200:     
4201:     
4202:     function yy_r152()
4203:     {
4204:         $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 2]->minor, array($this->yystack[$this->yyidx + 0]->minor));
4205:     }
4206:     
4207:     
4208:     function yy_r155()
4209:     {
4210:         $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)));
4211:     }
4212:     
4213:     
4214:     function yy_r156()
4215:     {
4216:         $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor));
4217:     }
4218:     
4219:     
4220:     function yy_r158()
4221:     {
4222:         $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
4223:     }
4224:     
4225:     
4226:     function yy_r159()
4227:     {
4228:         $this->_retvalue = array_merge($this->yystack[$this->yyidx + - 1]->minor, $this->yystack[$this->yyidx + 0]->minor);
4229:     }
4230:     
4231:     
4232:     function yy_r166()
4233:     {
4234:         $this->_retvalue = '$' . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4235:     }
4236:     
4237:     
4238:     function yy_r167()
4239:     {
4240:         $this->_retvalue = '$' . $this->yystack[$this->yyidx + - 2]->minor . $this->yystack[$this->yyidx + - 1]->minor . $this->yystack[$this->yyidx + 0]->minor;
4241:     }
4242:     
4243:     
4244:     function yy_r168()
4245:     {
4246:         $this->_retvalue = '==';
4247:     }
4248:     
4249:     
4250:     function yy_r169()
4251:     {
4252:         $this->_retvalue = '!=';
4253:     }
4254:     
4255:     
4256:     function yy_r170()
4257:     {
4258:         $this->_retvalue = '>';
4259:     }
4260:     
4261:     
4262:     function yy_r171()
4263:     {
4264:         $this->_retvalue = '<';
4265:     }
4266:     
4267:     
4268:     function yy_r172()
4269:     {
4270:         $this->_retvalue = '>=';
4271:     }
4272:     
4273:     
4274:     function yy_r173()
4275:     {
4276:         $this->_retvalue = '<=';
4277:     }
4278:     
4279:     
4280:     function yy_r174()
4281:     {
4282:         $this->_retvalue = '===';
4283:     }
4284:     
4285:     
4286:     function yy_r175()
4287:     {
4288:         $this->_retvalue = '!==';
4289:     }
4290:     
4291:     
4292:     function yy_r176()
4293:     {
4294:         $this->_retvalue = '%';
4295:     }
4296:     
4297:     
4298:     function yy_r177()
4299:     {
4300:         $this->_retvalue = '&&';
4301:     }
4302:     
4303:     
4304:     function yy_r178()
4305:     {
4306:         $this->_retvalue = '||';
4307:     }
4308:     
4309:     
4310:     function yy_r179()
4311:     {
4312:         $this->_retvalue = ' XOR ';
4313:     }
4314:     
4315:     
4316:     function yy_r180()
4317:     {
4318:         $this->_retvalue = 'array(' . $this->yystack[$this->yyidx + - 1]->minor . ')';
4319:     }
4320:     
4321:     
4322:     function yy_r182()
4323:     {
4324:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . ',' . $this->yystack[$this->yyidx + 0]->minor;
4325:     }
4326:     
4327:     
4328:     function yy_r184()
4329:     {
4330:         $this->_retvalue = $this->yystack[$this->yyidx + - 2]->minor . '=>' . $this->yystack[$this->yyidx + 0]->minor;
4331:     }
4332:     
4333:     
4334:     function yy_r185()
4335:     {
4336:         $this->_retvalue = '\'' . $this->yystack[$this->yyidx + - 2]->minor . '\'=>' . $this->yystack[$this->yyidx + 0]->minor;
4337:     }
4338:     
4339:     
4340:     function yy_r187()
4341:     {
4342:         $this->_retvalue = "''";
4343:     }
4344:     
4345:     
4346:     function yy_r188()
4347:     {
4348:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor->to_smarty_php();
4349:     }
4350:     
4351:     
4352:     function yy_r189()
4353:     {
4354:         $this->yystack[$this->yyidx + - 1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor);
4355:         $this->_retvalue = $this->yystack[$this->yyidx + - 1]->minor;
4356:     }
4357:     
4358:     
4359:     function yy_r190()
4360:     {
4361:         $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);
4362:     }
4363:     
4364:     
4365:     function yy_r191()
4366:     {
4367:         $this->_retvalue = new _smarty_code($this, '(string)' . $this->yystack[$this->yyidx + - 1]->minor);
4368:     }
4369:     
4370:     
4371:     function yy_r193()
4372:     {
4373:         $this->_retvalue = new _smarty_code($this, '(string)$_smarty_tpl->tpl_vars[\'' . substr($this->yystack[$this->yyidx + 0]->minor, 1) . '\']->value');
4374:     }
4375:     
4376:     
4377:     function yy_r195()
4378:     {
4379:         $this->_retvalue = new _smarty_code($this, '(string)(' . $this->yystack[$this->yyidx + - 1]->minor . ')');
4380:     }
4381:     
4382:     
4383:     function yy_r196()
4384:     {
4385:         $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + - 1]->minor);
4386:     }
4387:     
4388:     
4389:     function yy_r197()
4390:     {
4391:         $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);
4392:     }
4393: 
4394:     
4395: 
4396:     private $_retvalue;
4397: 
4398:     public function yy_reduce($yyruleno)
4399:     {
4400:         $yymsp = $this->yystack[$this->yyidx];
4401:         if ($this->yyTraceFILE && $yyruleno >= 0
4402:             && $yyruleno < count(self::$yyRuleName)
4403:         ) {
4404:             fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
4405:                     $this->yyTracePrompt, $yyruleno,
4406:                     self::$yyRuleName[$yyruleno]);
4407:         }
4408: 
4409:         $this->_retvalue = $yy_lefthand_side = null;
4410:         if (array_key_exists($yyruleno, self::$yyReduceMap)) {
4411:             
4412:             $this->_retvalue = null;
4413:             $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
4414:             $yy_lefthand_side = $this->_retvalue;
4415:         }
4416:         $yygoto = self::$yyRuleInfo[$yyruleno]['lhs'];
4417:         $yysize = self::$yyRuleInfo[$yyruleno]['rhs'];
4418:         $this->yyidx -= $yysize;
4419:         for ($i = $yysize; $i; $i --) {
4420:             
4421:             array_pop($this->yystack);
4422:         }
4423:         $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
4424:         if ($yyact < self::YYNSTATE) {
4425:             if (!$this->yyTraceFILE && $yysize) {
4426:                 $this->yyidx ++;
4427:                 $x = new TP_yyStackEntry;
4428:                 $x->stateno = $yyact;
4429:                 $x->major = $yygoto;
4430:                 $x->minor = $yy_lefthand_side;
4431:                 $this->yystack[$this->yyidx] = $x;
4432:             } else {
4433:                 $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
4434:             }
4435:         } elseif ($yyact == self::YYNSTATE + self::YYNRULE + 1) {
4436:             $this->yy_accept();
4437:         }
4438:     }
4439: 
4440:     public function yy_parse_failed()
4441:     {
4442:         if ($this->yyTraceFILE) {
4443:             fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
4444:         }
4445:         while ($this->yyidx >= 0) {
4446:             $this->yy_pop_parser_stack();
4447:         }
4448:     }
4449: 
4450:     public function yy_syntax_error($yymajor, $TOKEN)
4451:     {
4452:         
4453: 
4454:         $this->internalError = true;
4455:         $this->yymajor = $yymajor;
4456:         $this->compiler->trigger_template_error();
4457:         
4458:     }
4459: 
4460:     public function yy_accept()
4461:     {
4462:         if ($this->yyTraceFILE) {
4463:             fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
4464:         }
4465:         while ($this->yyidx >= 0) {
4466:             $stack = $this->yy_pop_parser_stack();
4467:         }
4468:         
4469: 
4470:         $this->successful = !$this->internalError;
4471:         $this->internalError = false;
4472:         $this->retvalue = $this->_retvalue;
4473:         
4474: 
4475:         
4476:     }
4477: 
4478:     public function doParse($yymajor, $yytokenvalue)
4479:     {
4480:         $yyerrorhit = 0;   
4481: 
4482:         if ($this->yyidx === null || $this->yyidx < 0) {
4483:             $this->yyidx = 0;
4484:             $this->yyerrcnt = - 1;
4485:             $x = new TP_yyStackEntry;
4486:             $x->stateno = 0;
4487:             $x->major = 0;
4488:             $this->yystack = array();
4489:             array_push($this->yystack, $x);
4490:         }
4491:         $yyendofinput = ($yymajor == 0);
4492: 
4493:         if ($this->yyTraceFILE) {
4494:             fprintf($this->yyTraceFILE, "%sInput %s\n",
4495:                     $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
4496:         }
4497: 
4498:         do {
4499:             $yyact = $this->yy_find_shift_action($yymajor);
4500:             if ($yymajor < self::YYERRORSYMBOL &&
4501:                 !$this->yy_is_expected_token($yymajor)
4502:             ) {
4503:                 
4504:                 $yyact = self::YY_ERROR_ACTION;
4505:             }
4506:             if ($yyact < self::YYNSTATE) {
4507:                 $this->yy_shift($yyact, $yymajor, $yytokenvalue);
4508:                 $this->yyerrcnt --;
4509:                 if ($yyendofinput && $this->yyidx >= 0) {
4510:                     $yymajor = 0;
4511:                 } else {
4512:                     $yymajor = self::YYNOCODE;
4513:                 }
4514:             } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
4515:                 $this->yy_reduce($yyact - self::YYNSTATE);
4516:             } elseif ($yyact == self::YY_ERROR_ACTION) {
4517:                 if ($this->yyTraceFILE) {
4518:                     fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
4519:                             $this->yyTracePrompt);
4520:                 }
4521:                 if (self::YYERRORSYMBOL) {
4522:                     if ($this->yyerrcnt < 0) {
4523:                         $this->yy_syntax_error($yymajor, $yytokenvalue);
4524:                     }
4525:                     $yymx = $this->yystack[$this->yyidx]->major;
4526:                     if ($yymx == self::YYERRORSYMBOL || $yyerrorhit) {
4527:                         if ($this->yyTraceFILE) {
4528:                             fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
4529:                                     $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
4530:                         }
4531:                         $this->yy_destructor($yymajor, $yytokenvalue);
4532:                         $yymajor = self::YYNOCODE;
4533:                     } else {
4534:                         while ($this->yyidx >= 0 &&
4535:                             $yymx != self::YYERRORSYMBOL &&
4536:                             ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
4537:                         ) {
4538:                             $this->yy_pop_parser_stack();
4539:                         }
4540:                         if ($this->yyidx < 0 || $yymajor == 0) {
4541:                             $this->yy_destructor($yymajor, $yytokenvalue);
4542:                             $this->yy_parse_failed();
4543:                             $yymajor = self::YYNOCODE;
4544:                         } elseif ($yymx != self::YYERRORSYMBOL) {
4545:                             $u2 = 0;
4546:                             $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
4547:                         }
4548:                     }
4549:                     $this->yyerrcnt = 3;
4550:                     $yyerrorhit = 1;
4551:                 } else {
4552:                     if ($this->yyerrcnt <= 0) {
4553:                         $this->yy_syntax_error($yymajor, $yytokenvalue);
4554:                     }
4555:                     $this->yyerrcnt = 3;
4556:                     $this->yy_destructor($yymajor, $yytokenvalue);
4557:                     if ($yyendofinput) {
4558:                         $this->yy_parse_failed();
4559:                     }
4560:                     $yymajor = self::YYNOCODE;
4561:                 }
4562:             } else {
4563:                 $this->yy_accept();
4564:                 $yymajor = self::YYNOCODE;
4565:             }
4566:         } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);
4567:     }
4568: }
4569: