From d41c1c8959dc3bf8cc0edf8f089e913e07429494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=A0=20/=20green?= Date: Fri, 10 Nov 2023 02:34:11 +0900 Subject: [PATCH] feat: ESM detection support (#160) --- README.md | 12 +++++++++- chompfile.toml | 4 ++-- lib/lexer.asm.js | 8 +++---- lib/lexer.emcc.asm.js | 4 ++-- lib/lexer.wasm | Bin 8325 -> 8374 bytes src/lexer.asm.js | 4 ++-- src/lexer.c | 2 ++ src/lexer.h | 8 ++++++- src/lexer.ts | 7 ++++-- test/_unit.cjs | 51 +++++++++++++++++++++++++++++++++--------- 10 files changed, 75 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index d9c8aeb..6991a2f 100755 --- a/README.md +++ b/README.md @@ -165,6 +165,17 @@ const [,, facade] = parse(` facade === true; ``` +### ESM Detection + +Modules that uses ESM syntaxes can be detected via the fourth return value: + +```js +const [,,, hasModuleSyntax] = parse(` + export {} +`); +hasModuleSyntax === true; +``` + ### Environment Support Node.js 10+, and [all browsers with Web Assembly support](https://caniuse.com/#feat=wasm). @@ -301,4 +312,3 @@ MIT [actions-image]: https://github.com/guybedford/es-module-lexer/actions/workflows/build.yml/badge.svg [actions-url]: https://github.com/guybedford/es-module-lexer/actions/workflows/build.yml - diff --git a/chompfile.toml b/chompfile.toml index 82dbbd5..0055806 100644 --- a/chompfile.toml +++ b/chompfile.toml @@ -96,7 +96,7 @@ deps = ['src/lexer.h', 'src/lexer.c'] run = """ ${{ WASI_PATH }}/bin/clang src/lexer.c --sysroot=${{ WASI_PATH }}/share/wasi-sysroot -o lib/lexer.wasm -nostartfiles \ "-Wl,-z,stack-size=13312,--no-entry,--compress-relocations,--strip-all,\ - --export=parse,--export=sa,--export=e,--export=ri,--export=re,--export=is,--export=ie,--export=ss,--export=ip,--export=se,--export=ai,--export=id,--export=es,--export=ee,--export=els,--export=ele,--export=f,--export=__heap_base" \ + --export=parse,--export=sa,--export=e,--export=ri,--export=re,--export=is,--export=ie,--export=ss,--export=ip,--export=se,--export=ai,--export=id,--export=es,--export=ee,--export=els,--export=ele,--export=f,--export=ms,--export=__heap_base" \ -Wno-logical-op-parentheses -Wno-parentheses \ -Oz """ @@ -110,7 +110,7 @@ run = """ ${{ EMSDK_PATH }}/emsdk activate 1.40.1-fastcomp ${{ EMSDK_PATH }}/fastcomp/emscripten/emcc ./src/lexer.c -o lib/lexer.emcc.js -s WASM=0 -Oz --closure 1 \ - -s EXPORTED_FUNCTIONS="['_parse','_sa','_e','_ri','_re','_is','_ie','_ss','_ip','_se','_ai','_id','_es','_ee','_els','_ele','_f','_setSource']" \ + -s EXPORTED_FUNCTIONS="['_parse','_sa','_e','_ri','_re','_is','_ie','_ss','_ip','_se','_ai','_id','_es','_ee','_els','_ele','_f','_ms','_setSource']" \ -s ERROR_ON_UNDEFINED_SYMBOLS=0 -s SINGLE_FILE=1 -s TOTAL_STACK=4997968 -s --separate-asm -Wno-logical-op-parentheses -Wno-parentheses # rm lib/lexer.emcc.js diff --git a/lib/lexer.asm.js b/lib/lexer.asm.js index 0dca624..332a45d 100644 --- a/lib/lexer.asm.js +++ b/lib/lexer.asm.js @@ -61,12 +61,12 @@ export function parse (_source, _name = '@') { }); } - return [imports, exports, !!asm.f()]; + return [imports, exports, !!asm.f(), !!asm.ms()]; } /* * Ported from Acorn - * + * * MIT License * Copyright (C) 2012-2020 by various contributors (see AUTHORS) @@ -214,10 +214,10 @@ function syntaxError () { // function asmInit () { ... } from lib/lexer.asm.js is concatenated at the end here function asmInit(global,env,buffer) { -"use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),v=1024;function z(){var d=0,f=0,g=0,h=0,i=0,j=0,k=0;k=v;v=v+10240|0;a[795]=1;b[395]=0;b[396]=0;c[67]=c[2];a[796]=0;c[66]=0;a[794]=0;c[68]=k+2048;c[69]=k;a[797]=0;d=(c[3]|0)+-2|0;c[70]=d;f=d+(c[64]<<1)|0;c[71]=f;a:while(1){g=d+2|0;c[70]=g;if(d>>>0>=f>>>0){j=18;break}b:do switch(b[g>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((b[396]|0)==0?fa(g)|0:0)?(Q(d+4|0,16,10)|0)==0:0)?(B(),(a[795]|0)==0):0){j=9;break a}else j=17;break}case 105:{if(fa(g)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=17}else j=17;break}case 59:{j=17;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break b}case 42:{P(1);break b}default:{j=16;break a}}default:{j=16;break a}}while(0);if((j|0)==17){j=0;c[67]=c[70]}d=c[70]|0;f=c[71]|0}if((j|0)==9){d=c[70]|0;c[67]=d;j=19}else if((j|0)==16){a[795]=0;c[70]=d;j=19}else if((j|0)==18)if(!(a[794]|0)){d=g;j=19}else d=0;do if((j|0)==19){c:while(1){f=d+2|0;c[70]=f;i=f;if(d>>>0>=(c[71]|0)>>>0){j=82;break}d:do switch(b[f>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((b[396]|0)==0?fa(f)|0:0)?(Q(d+4|0,16,10)|0)==0:0){B();j=81}else j=81;break}case 105:{if(fa(f)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=81}else j=81;break}case 99:{if((fa(f)|0?(Q(d+4|0,36,8)|0)==0:0)?pa(b[d+12>>1]|0)|0:0){a[797]=1;j=81}else j=81;break}case 40:{i=c[68]|0;g=b[396]|0;j=g&65535;c[i+(j<<3)>>2]=1;h=c[67]|0;b[396]=g+1<<16>>16;c[i+(j<<3)+4>>2]=h;j=81;break}case 41:{f=b[396]|0;if(!(f<<16>>16)){j=36;break c}j=f+-1<<16>>16;b[396]=j;h=b[395]|0;f=h&65535;if(h<<16>>16!=0?(c[(c[68]|0)+((j&65535)<<3)>>2]|0)==5:0){f=c[(c[69]|0)+(f+-1<<2)>>2]|0;g=f+4|0;if(!(c[g>>2]|0))c[g>>2]=i;c[f+12>>2]=d+4;b[395]=h+-1<<16>>16;j=81}else j=81;break}case 123:{j=c[67]|0;i=c[61]|0;d=j;do if((b[j>>1]|0)==41&(i|0)!=0?(c[i+4>>2]|0)==(j|0):0){f=c[62]|0;c[61]=f;if(!f){c[57]=0;break}else{c[f+28>>2]=0;break}}while(0);i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)>>2]=(a[797]|0)==0?2:6;b[396]=h+1<<16>>16;c[i+(j<<3)+4>>2]=d;a[797]=0;j=81;break}case 125:{d=b[396]|0;if(!(d<<16>>16)){j=49;break c}i=c[68]|0;j=d+-1<<16>>16;b[396]=j;if((c[i+((j&65535)<<3)>>2]|0)==4){H();j=81}else j=81;break}case 39:{J(39);j=81;break}case 34:{J(34);j=81;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break d}case 42:{P(1);break d}default:{d=c[67]|0;h=b[d>>1]|0;e:do if(!(T(h)|0)){switch(h<<16>>16){case 41:if(ca(c[(c[68]|0)+(e[396]<<3)+4>>2]|0)|0){j=69;break e}else{j=66;break e}case 125:break;default:{j=66;break e}}f=c[68]|0;g=e[396]|0;if(!(O(c[f+(g<<3)+4>>2]|0)|0)?(c[f+(g<<3)>>2]|0)!=6:0)j=66;else j=69}else switch(h<<16>>16){case 46:if(((b[d+-2>>1]|0)+-48&65535)<10){j=66;break e}else{j=69;break e}case 43:if((b[d+-2>>1]|0)==43){j=66;break e}else{j=69;break e}case 45:if((b[d+-2>>1]|0)==45){j=66;break e}else{j=69;break e}default:{j=69;break e}}while(0);f:do if((j|0)==66){j=0;if(!(E(d)|0)){switch(h<<16>>16){case 0:{j=69;break f}case 47:{if(a[796]|0){j=69;break f}break}default:{}}g=c[3]|0;f=h;do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d;f=b[d>>1]|0}while(!(_(f)|0));if(da(f)|0){do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d}while(da(b[d>>1]|0)|0);if(Y(d)|0){N();a[796]=0;j=81;break d}else d=1}else d=1}else j=69}while(0);if((j|0)==69){N();d=0}a[796]=d;j=81;break d}}case 96:{i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)+4>>2]=c[67];b[396]=h+1<<16>>16;c[i+(j<<3)>>2]=3;H();j=81;break}default:j=81}while(0);if((j|0)==81){j=0;c[67]=c[70]}d=c[70]|0}if((j|0)==36){oa();d=0;break}else if((j|0)==49){oa();d=0;break}else if((j|0)==82){d=(a[794]|0)==0?(b[395]|b[396])<<16>>16==0:0;break}}while(0);v=k;return d|0}function B(){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=c[70]|0;l=c[63]|0;q=k+12|0;c[70]=q;f=I(1)|0;d=c[70]|0;if(!((d|0)==(q|0)?!(S(f)|0):0))p=3;a:do if((p|0)==3){b:do switch(f<<16>>16){case 123:{c[70]=d+2;d=I(1)|0;f=c[70]|0;while(1){if(qa(d)|0){J(d);d=(c[70]|0)+2|0;c[70]=d}else{aa(d)|0;d=c[70]|0}I(1)|0;d=K(f,d)|0;if(d<<16>>16==44){c[70]=(c[70]|0)+2;d=I(1)|0}e=f;f=c[70]|0;if(d<<16>>16==125){p=15;break}if((f|0)==(e|0)){p=12;break}if(f>>>0>(c[71]|0)>>>0){p=14;break}}if((p|0)==12){oa();break a}else if((p|0)==14){oa();break a}else if((p|0)==15){c[70]=f+2;break b}break}case 42:{c[70]=d+2;I(1)|0;q=c[70]|0;K(q,q)|0;break}default:{a[795]=0;switch(f<<16>>16){case 100:{k=d+14|0;c[70]=k;switch((I(1)|0)<<16>>16){case 97:{e=c[70]|0;if((Q(e+2|0,56,8)|0)==0?(h=e+10|0,da(b[h>>1]|0)|0):0){c[70]=h;I(0)|0;p=22}break}case 102:{p=22;break}case 99:{e=c[70]|0;if(((Q(e+2|0,36,8)|0)==0?(g=e+10|0,q=b[g>>1]|0,pa(q)|0|q<<16>>16==123):0)?(c[70]=g,i=I(1)|0,i<<16>>16!=123):0){o=i;p=31}break}default:{}}c:do if((p|0)==22?(j=c[70]|0,(Q(j+2|0,64,14)|0)==0):0){f=j+16|0;e=b[f>>1]|0;if(!(pa(e)|0))switch(e<<16>>16){case 40:case 42:break;default:break c}c[70]=f;e=I(1)|0;if(e<<16>>16==42){c[70]=(c[70]|0)+2;e=I(1)|0}if(e<<16>>16!=40){o=e;p=31}}while(0);if((p|0)==31?(m=c[70]|0,aa(o)|0,n=c[70]|0,n>>>0>m>>>0):0){X(d,k,m,n);c[70]=(c[70]|0)+-2;break a}X(d,k,0,0);c[70]=d+12;break a}case 97:{c[70]=d+10;I(0)|0;d=c[70]|0;p=35;break}case 102:{p=35;break}case 99:{if((Q(d+2|0,36,8)|0)==0?(e=d+10|0,_(b[e>>1]|0)|0):0){c[70]=e;q=I(1)|0;p=c[70]|0;aa(q)|0;q=c[70]|0;X(p,q,p,q);c[70]=(c[70]|0)+-2;break a}d=d+4|0;c[70]=d;break}case 108:case 118:break;default:break a}if((p|0)==35){c[70]=d+16;d=I(1)|0;if(d<<16>>16==42){c[70]=(c[70]|0)+2;d=I(1)|0}p=c[70]|0;aa(d)|0;q=c[70]|0;X(p,q,p,q);c[70]=(c[70]|0)+-2;break a}c[70]=d+6;a[795]=0;f=I(1)|0;d=c[70]|0;f=(aa(f)|0|32)<<16>>16==123;g=c[70]|0;if(f){c[70]=g+2;q=I(1)|0;d=c[70]|0;aa(q)|0}d:while(1){e=c[70]|0;if((e|0)==(d|0))break;X(d,e,d,e);e=I(1)|0;if(f)switch(e<<16>>16){case 93:case 125:break a;default:{}}d=c[70]|0;if(e<<16>>16!=44){p=51;break}c[70]=d+2;e=I(1)|0;d=c[70]|0;switch(e<<16>>16){case 91:case 123:{p=51;break d}default:{}}aa(e)|0}if((p|0)==51)c[70]=d+-2;if(!f)break a;c[70]=g+-2;break a}}while(0);q=(I(1)|0)<<16>>16==102;d=c[70]|0;if(q?(Q(d+2|0,50,6)|0)==0:0){c[70]=d+8;D(k,I(1)|0);d=(l|0)==0?232:l+16|0;while(1){d=c[d>>2]|0;if(!d)break a;c[d+12>>2]=0;c[d+8>>2]=0;d=d+16|0}}c[70]=d+-2}while(0);return}function C(){var d=0,e=0,f=0,g=0,h=0,i=0;h=c[70]|0;d=h+12|0;c[70]=d;a:do switch((I(1)|0)<<16>>16){case 40:{e=c[68]|0;i=b[396]|0;f=i&65535;c[e+(f<<3)>>2]=5;d=c[70]|0;b[396]=i+1<<16>>16;c[e+(f<<3)+4>>2]=d;if((b[c[67]>>1]|0)!=46){c[70]=d+2;i=I(1)|0;L(h,c[70]|0,0,d);e=c[61]|0;f=c[69]|0;h=b[395]|0;b[395]=h+1<<16>>16;c[f+((h&65535)<<2)>>2]=e;switch(i<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{c[70]=(c[70]|0)+-2;break a}}d=(c[70]|0)+2|0;c[70]=d;switch((I(1)|0)<<16>>16){case 44:{c[70]=(c[70]|0)+2;I(1)|0;h=c[61]|0;c[h+4>>2]=d;i=c[70]|0;c[h+16>>2]=i;a[h+24>>0]=1;c[70]=i+-2;break a}case 41:{b[396]=(b[396]|0)+-1<<16>>16;i=c[61]|0;c[i+4>>2]=d;c[i+12>>2]=(c[70]|0)+2;a[i+24>>0]=1;b[395]=(b[395]|0)+-1<<16>>16;break a}default:{c[70]=(c[70]|0)+-2;break a}}}break}case 46:{c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==109?(e=c[70]|0,(Q(e+2|0,44,6)|0)==0):0){d=c[67]|0;if(!(ea(d)|0)?(b[d>>1]|0)==46:0)break a;L(h,h,e+8|0,2)}break}case 42:case 39:case 34:{g=18;break}case 123:{d=c[70]|0;if(b[396]|0){c[70]=d+-2;break a}while(1){if(d>>>0>=(c[71]|0)>>>0)break;d=I(1)|0;if(!(qa(d)|0)){if(d<<16>>16==125){g=33;break}}else J(d);d=(c[70]|0)+2|0;c[70]=d}if((g|0)==33)c[70]=(c[70]|0)+2;i=(I(1)|0)<<16>>16==102;d=c[70]|0;if(i?Q(d+2|0,50,6)|0:0){oa();break a}c[70]=d+8;d=I(1)|0;if(qa(d)|0){D(h,d);break a}else{oa();break a}}default:if((c[70]|0)==(d|0))c[70]=h+10;else g=18}while(0);do if((g|0)==18){if(b[396]|0){c[70]=(c[70]|0)+-2;break}d=c[71]|0;e=c[70]|0;while(1){if(e>>>0>=d>>>0){g=25;break}f=b[e>>1]|0;if(qa(f)|0){g=23;break}i=e+2|0;c[70]=i;e=i}if((g|0)==23){D(h,f);break}else if((g|0)==25){oa();break}}while(0);return}function D(a,d){a=a|0;d=d|0;var e=0,f=0;e=(c[70]|0)+2|0;switch(d<<16>>16){case 39:{J(39);f=5;break}case 34:{J(34);f=5;break}default:oa()}do if((f|0)==5){L(a,e,c[70]|0,1);c[70]=(c[70]|0)+2;d=I(0)|0;a=d<<16>>16==97;if(a){e=c[70]|0;if(Q(e+2|0,78,10)|0)f=11}else{e=c[70]|0;if(!(((d<<16>>16==119?(b[e+2>>1]|0)==105:0)?(b[e+4>>1]|0)==116:0)?(b[e+6>>1]|0)==104:0))f=11}if((f|0)==11){c[70]=e+-2;break}c[70]=e+((a?6:4)<<1);if((I(1)|0)<<16>>16!=123){c[70]=e;break}a=c[70]|0;d=a;a:while(1){c[70]=d+2;d=I(1)|0;switch(d<<16>>16){case 39:{J(39);c[70]=(c[70]|0)+2;d=I(1)|0;break}case 34:{J(34);c[70]=(c[70]|0)+2;d=I(1)|0;break}default:d=aa(d)|0}if(d<<16>>16!=58){f=20;break}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{f=24;break a}}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 125:{f=29;break a}case 44:break;default:{f=28;break a}}c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==125){f=29;break}d=c[70]|0}if((f|0)==20){c[70]=e;break}else if((f|0)==24){c[70]=e;break}else if((f|0)==28){c[70]=e;break}else if((f|0)==29){f=c[61]|0;c[f+16>>2]=a;c[f+12>>2]=(c[70]|0)+2;break}}while(0);return}function E(a){a=a|0;a:do switch(b[a>>1]|0){case 100:switch(b[a+-2>>1]|0){case 105:{a=W(a+-4|0,88,2)|0;break a}case 108:{a=W(a+-4|0,92,3)|0;break a}default:{a=0;break a}}case 101:switch(b[a+-2>>1]|0){case 115:switch(b[a+-4>>1]|0){case 108:{a=Z(a+-6|0,101)|0;break a}case 97:{a=Z(a+-6|0,99)|0;break a}default:{a=0;break a}}case 116:{a=W(a+-4|0,98,4)|0;break a}case 117:{a=W(a+-4|0,106,6)|0;break a}default:{a=0;break a}}case 102:{if((b[a+-2>>1]|0)==111?(b[a+-4>>1]|0)==101:0)switch(b[a+-6>>1]|0){case 99:{a=W(a+-8|0,118,6)|0;break a}case 112:{a=W(a+-8|0,130,2)|0;break a}default:{a=0;break a}}else a=0;break}case 107:{a=W(a+-2|0,134,4)|0;break}case 110:{a=a+-2|0;if(Z(a,105)|0)a=1;else a=W(a,142,5)|0;break}case 111:{a=Z(a+-2|0,100)|0;break}case 114:{a=W(a+-2|0,152,7)|0;break}case 116:{a=W(a+-2|0,166,4)|0;break}case 119:switch(b[a+-2>>1]|0){case 101:{a=Z(a+-4|0,110)|0;break a}case 111:{a=W(a+-4|0,174,3)|0;break a}default:{a=0;break a}}default:a=0}while(0);return a|0}function H(){var a=0,d=0,e=0,f=0;d=c[71]|0;e=c[70]|0;a:while(1){a=e+2|0;if(e>>>0>=d>>>0){d=10;break}switch(b[a>>1]|0){case 96:{d=7;break a}case 36:{if((b[e+4>>1]|0)==123){d=6;break a}break}case 92:{a=e+4|0;break}default:{}}e=a}if((d|0)==6){a=e+4|0;c[70]=a;d=c[68]|0;f=b[396]|0;e=f&65535;c[d+(e<<3)>>2]=4;b[396]=f+1<<16>>16;c[d+(e<<3)+4>>2]=a}else if((d|0)==7){c[70]=a;e=c[68]|0;f=(b[396]|0)+-1<<16>>16;b[396]=f;if((c[e+((f&65535)<<3)>>2]|0)!=3)oa()}else if((d|0)==10){c[70]=a;oa()}return}function I(a){a=a|0;var d=0,e=0,f=0;e=c[70]|0;a:do{d=b[e>>1]|0;b:do if(d<<16>>16!=47)if(a)if(pa(d)|0)break;else break a;else if(da(d)|0)break;else break a;else switch(b[e+2>>1]|0){case 47:{$();break b}case 42:{P(a);break b}default:{d=47;break a}}while(0);f=c[70]|0;e=f+2|0;c[70]=e}while(f>>>0<(c[71]|0)>>>0);return d|0}function J(a){a=a|0;var d=0,e=0,f=0,g=0;g=c[71]|0;d=c[70]|0;while(1){f=d+2|0;if(d>>>0>=g>>>0){d=9;break}e=b[f>>1]|0;if(e<<16>>16==a<<16>>16){d=10;break}if(e<<16>>16==92){e=d+4|0;if((b[e>>1]|0)==13){d=d+6|0;d=(b[d>>1]|0)==10?d:e}else d=e}else if(ta(e)|0){d=9;break}else d=f}if((d|0)==9){c[70]=f;oa()}else if((d|0)==10)c[70]=f;return}function K(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[70]|0;f=b[e>>1]|0;h=(a|0)==(d|0);g=h?0:a;h=h?0:d;if(f<<16>>16==97){c[70]=e+4;e=I(1)|0;a=c[70]|0;if(qa(e)|0){J(e);d=(c[70]|0)+2|0;c[70]=d}else{aa(e)|0;d=c[70]|0}f=I(1)|0;e=c[70]|0}if((e|0)!=(a|0))X(a,d,g,h);return f|0}function L(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[65]|0;c[65]=g+32;h=c[61]|0;c[((h|0)==0?228:h+28|0)>>2]=g;c[62]=h;c[61]=g;c[g+8>>2]=b;if(2==(f|0))b=e;else b=1==(f|0)?e+2|0:0;c[g+12>>2]=b;c[g>>2]=d;c[g+4>>2]=e;c[g+16>>2]=0;c[g+20>>2]=f;a[g+24>>0]=1==(f|0)&1;c[g+28>>2]=0;return}function M(){var a=0,d=0,e=0;e=c[71]|0;d=c[70]|0;a:while(1){a=d+2|0;if(d>>>0>=e>>>0){d=6;break}switch(b[a>>1]|0){case 13:case 10:{d=6;break a}case 93:{d=7;break a}case 92:{a=d+4|0;break}default:{}}d=a}if((d|0)==6){c[70]=a;oa();a=0}else if((d|0)==7){c[70]=a;a=93}return a|0}function N(){var a=0,d=0,e=0;a:while(1){a=c[70]|0;d=a+2|0;c[70]=d;if(a>>>0>=(c[71]|0)>>>0){e=7;break}switch(b[d>>1]|0){case 13:case 10:{e=7;break a}case 47:break a;case 91:{M()|0;break}case 92:{c[70]=a+4;break}default:{}}}if((e|0)==7)oa();return}function O(a){a=a|0;switch(b[a>>1]|0){case 62:{a=(b[a+-2>>1]|0)==61;break}case 41:case 59:{a=1;break}case 104:{a=W(a+-2|0,200,4)|0;break}case 121:{a=W(a+-2|0,208,6)|0;break}case 101:{a=W(a+-2|0,220,3)|0;break}default:a=0}return a|0}function P(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;g=(c[70]|0)+2|0;c[70]=g;e=c[71]|0;while(1){d=g+2|0;if(g>>>0>=e>>>0)break;f=b[d>>1]|0;if(!a?ta(f)|0:0)break;if(f<<16>>16==42?(b[g+4>>1]|0)==47:0){h=8;break}g=d}if((h|0)==8){c[70]=d;d=g+4|0}c[70]=d;return}function Q(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function S(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:{a=1;break}default:if((a&-8)<<16>>16==40|(a+-58&65535)<6)a=1;else{switch(a<<16>>16){case 91:case 93:case 94:{a=1;break a}default:{}}a=(a+-123&65535)<4}}while(0);return a|0}function T(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:break;default:if(!((a+-58&65535)<6|(a+-40&65535)<7&a<<16>>16!=41)){switch(a<<16>>16){case 91:case 94:break a;default:{}}return a<<16>>16!=125&(a+-123&65535)<4|0}}while(0);return 1}function U(a){a=a|0;var c=0;c=b[a>>1]|0;a:do if((c+-9&65535)>=5){switch(c<<16>>16){case 160:case 32:{c=1;break a}default:{}}if(S(c)|0)return c<<16>>16!=46|(ea(a)|0)|0;else c=0}else c=1;while(0);return c|0}function V(a){a=a|0;var d=0,e=0,f=0,g=0;e=v;v=v+16|0;f=e;c[f>>2]=0;c[64]=a;d=c[3]|0;g=d+(a<<1)|0;a=g+2|0;b[g>>1]=0;c[f>>2]=a;c[65]=a;c[57]=0;c[61]=0;c[59]=0;c[58]=0;c[63]=0;c[60]=0;v=e;return d|0}function W(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+(0-d<<1)|0;f=e+2|0;a=c[3]|0;if(f>>>0>=a>>>0?(Q(f,b,d<<1)|0)==0:0)if((f|0)==(a|0))a=1;else a=U(e)|0;else a=0;return a|0}function X(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[65]|0;c[65]=f+20;g=c[63]|0;c[((g|0)==0?232:g+16|0)>>2]=f;c[63]=f;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;c[f+16>>2]=0;return}function Y(a){a=a|0;switch(b[a>>1]|0){case 107:{a=W(a+-2|0,134,4)|0;break}case 101:{if((b[a+-2>>1]|0)==117)a=W(a+-4|0,106,6)|0;else a=0;break}default:a=0}return a|0}function Z(a,d){a=a|0;d=d|0;var e=0;e=c[3]|0;if(e>>>0<=a>>>0?(b[a>>1]|0)==d<<16>>16:0)if((e|0)==(a|0))e=1;else e=_(b[a+-2>>1]|0)|0;else e=0;return e|0}function _(a){a=a|0;a:do if((a+-9&65535)<5)a=1;else{switch(a<<16>>16){case 32:case 160:{a=1;break a}default:{}}a=a<<16>>16!=46&(S(a)|0)}while(0);return a|0}function $(){var a=0,d=0,e=0;a=c[71]|0;e=c[70]|0;a:while(1){d=e+2|0;if(e>>>0>=a>>>0)break;switch(b[d>>1]|0){case 13:case 10:break a;default:e=d}}c[70]=d;return}function aa(a){a=a|0;while(1){if(pa(a)|0)break;if(S(a)|0)break;a=(c[70]|0)+2|0;c[70]=a;a=b[a>>1]|0;if(!(a<<16>>16)){a=0;break}}return a|0}function ba(){var a=0;a=c[(c[59]|0)+20>>2]|0;switch(a|0){case 1:{a=-1;break}case 2:{a=-2;break}default:a=a-(c[3]|0)>>1}return a|0}function ca(a){a=a|0;if(!(W(a,180,5)|0)?!(W(a,190,3)|0):0)a=W(a,196,2)|0;else a=1;return a|0}function da(a){a=a|0;switch(a<<16>>16){case 160:case 32:case 12:case 11:case 9:{a=1;break}default:a=0}return a|0}function ea(a){a=a|0;if((b[a>>1]|0)==46?(b[a+-2>>1]|0)==46:0)a=(b[a+-4>>1]|0)==46;else a=0;return a|0}function fa(a){a=a|0;if((c[3]|0)==(a|0))a=1;else a=U(a+-2|0)|0;return a|0}function ga(){var a=0;a=c[(c[60]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ha(){var a=0;a=c[(c[59]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ia(){var a=0;a=c[(c[60]|0)+8>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ja(){var a=0;a=c[(c[59]|0)+16>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ka(){var a=0;a=c[(c[59]|0)+4>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function la(){var a=0;a=c[59]|0;a=c[((a|0)==0?228:a+28|0)>>2]|0;c[59]=a;return (a|0)!=0|0}function ma(){var a=0;a=c[60]|0;a=c[((a|0)==0?232:a+16|0)>>2]|0;c[60]=a;return (a|0)!=0|0}function oa(){a[794]=1;c[66]=(c[70]|0)-(c[3]|0)>>1;c[70]=(c[71]|0)+2;return}function pa(a){a=a|0;return (a|128)<<16>>16==160|(a+-9&65535)<5|0}function qa(a){a=a|0;return a<<16>>16==39|a<<16>>16==34|0}function ra(){return (c[(c[59]|0)+8>>2]|0)-(c[3]|0)>>1|0}function sa(){return (c[(c[60]|0)+4>>2]|0)-(c[3]|0)>>1|0}function ta(a){a=a|0;return a<<16>>16==13|a<<16>>16==10|0}function ua(){return (c[c[59]>>2]|0)-(c[3]|0)>>1|0}function va(){return (c[c[60]>>2]|0)-(c[3]|0)>>1|0}function wa(){return d[(c[59]|0)+24>>0]|0|0}function xa(a){a=a|0;c[3]=a;return}function Aa(){return (a[795]|0)!=0|0}function Ea(){return c[66]|0} function su(a) { +"use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),v=1024;function z(){var d=0,f=0,g=0,h=0,i=0,j=0,k=0;k=v;v=v+10240|0;a[796]=1;a[795]=0;b[395]=0;b[396]=0;c[67]=c[2];a[797]=0;c[66]=0;a[794]=0;c[68]=k+2048;c[69]=k;a[798]=0;d=(c[3]|0)+-2|0;c[70]=d;f=d+(c[64]<<1)|0;c[71]=f;a:while(1){g=d+2|0;c[70]=g;if(d>>>0>=f>>>0){j=18;break}b:do switch(b[g>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((b[396]|0)==0?fa(g)|0:0)?(Q(d+4|0,16,10)|0)==0:0)?(B(),(a[796]|0)==0):0){j=9;break a}else j=17;break}case 105:{if(fa(g)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=17}else j=17;break}case 59:{j=17;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break b}case 42:{P(1);break b}default:{j=16;break a}}default:{j=16;break a}}while(0);if((j|0)==17){j=0;c[67]=c[70]}d=c[70]|0;f=c[71]|0}if((j|0)==9){d=c[70]|0;c[67]=d;j=19}else if((j|0)==16){a[796]=0;c[70]=d;j=19}else if((j|0)==18)if(!(a[794]|0)){d=g;j=19}else d=0;do if((j|0)==19){c:while(1){f=d+2|0;c[70]=f;i=f;if(d>>>0>=(c[71]|0)>>>0){j=82;break}d:do switch(b[f>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((b[396]|0)==0?fa(f)|0:0)?(Q(d+4|0,16,10)|0)==0:0){B();j=81}else j=81;break}case 105:{if(fa(f)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=81}else j=81;break}case 99:{if((fa(f)|0?(Q(d+4|0,36,8)|0)==0:0)?pa(b[d+12>>1]|0)|0:0){a[798]=1;j=81}else j=81;break}case 40:{i=c[68]|0;g=b[396]|0;j=g&65535;c[i+(j<<3)>>2]=1;h=c[67]|0;b[396]=g+1<<16>>16;c[i+(j<<3)+4>>2]=h;j=81;break}case 41:{f=b[396]|0;if(!(f<<16>>16)){j=36;break c}j=f+-1<<16>>16;b[396]=j;h=b[395]|0;f=h&65535;if(h<<16>>16!=0?(c[(c[68]|0)+((j&65535)<<3)>>2]|0)==5:0){f=c[(c[69]|0)+(f+-1<<2)>>2]|0;g=f+4|0;if(!(c[g>>2]|0))c[g>>2]=i;c[f+12>>2]=d+4;b[395]=h+-1<<16>>16;j=81}else j=81;break}case 123:{j=c[67]|0;i=c[61]|0;d=j;do if((b[j>>1]|0)==41&(i|0)!=0?(c[i+4>>2]|0)==(j|0):0){f=c[62]|0;c[61]=f;if(!f){c[57]=0;break}else{c[f+28>>2]=0;break}}while(0);i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)>>2]=(a[798]|0)==0?2:6;b[396]=h+1<<16>>16;c[i+(j<<3)+4>>2]=d;a[798]=0;j=81;break}case 125:{d=b[396]|0;if(!(d<<16>>16)){j=49;break c}i=c[68]|0;j=d+-1<<16>>16;b[396]=j;if((c[i+((j&65535)<<3)>>2]|0)==4){H();j=81}else j=81;break}case 39:{J(39);j=81;break}case 34:{J(34);j=81;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break d}case 42:{P(1);break d}default:{d=c[67]|0;h=b[d>>1]|0;e:do if(!(T(h)|0)){switch(h<<16>>16){case 41:if(ca(c[(c[68]|0)+(e[396]<<3)+4>>2]|0)|0){j=69;break e}else{j=66;break e}case 125:break;default:{j=66;break e}}f=c[68]|0;g=e[396]|0;if(!(O(c[f+(g<<3)+4>>2]|0)|0)?(c[f+(g<<3)>>2]|0)!=6:0)j=66;else j=69}else switch(h<<16>>16){case 46:if(((b[d+-2>>1]|0)+-48&65535)<10){j=66;break e}else{j=69;break e}case 43:if((b[d+-2>>1]|0)==43){j=66;break e}else{j=69;break e}case 45:if((b[d+-2>>1]|0)==45){j=66;break e}else{j=69;break e}default:{j=69;break e}}while(0);f:do if((j|0)==66){j=0;if(!(E(d)|0)){switch(h<<16>>16){case 0:{j=69;break f}case 47:{if(a[797]|0){j=69;break f}break}default:{}}g=c[3]|0;f=h;do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d;f=b[d>>1]|0}while(!(_(f)|0));if(da(f)|0){do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d}while(da(b[d>>1]|0)|0);if(Y(d)|0){N();a[797]=0;j=81;break d}else d=1}else d=1}else j=69}while(0);if((j|0)==69){N();d=0}a[797]=d;j=81;break d}}case 96:{i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)+4>>2]=c[67];b[396]=h+1<<16>>16;c[i+(j<<3)>>2]=3;H();j=81;break}default:j=81}while(0);if((j|0)==81){j=0;c[67]=c[70]}d=c[70]|0}if((j|0)==36){oa();d=0;break}else if((j|0)==49){oa();d=0;break}else if((j|0)==82){d=(a[794]|0)==0?(b[395]|b[396])<<16>>16==0:0;break}}while(0);v=k;return d|0}function B(){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=c[70]|0;l=c[63]|0;q=k+12|0;c[70]=q;f=I(1)|0;d=c[70]|0;if(!((d|0)==(q|0)?!(S(f)|0):0))p=3;a:do if((p|0)==3){b:do switch(f<<16>>16){case 123:{c[70]=d+2;d=I(1)|0;e=c[70]|0;while(1){if(qa(d)|0){J(d);d=(c[70]|0)+2|0;c[70]=d}else{aa(d)|0;d=c[70]|0}I(1)|0;d=K(e,d)|0;if(d<<16>>16==44){c[70]=(c[70]|0)+2;d=I(1)|0}if(d<<16>>16==125){p=15;break}q=e;e=c[70]|0;if((e|0)==(q|0)){p=12;break}if(e>>>0>(c[71]|0)>>>0){p=14;break}}if((p|0)==12){oa();break a}else if((p|0)==14){oa();break a}else if((p|0)==15){a[795]=1;c[70]=(c[70]|0)+2;break b}break}case 42:{c[70]=d+2;I(1)|0;q=c[70]|0;K(q,q)|0;break}default:{a[796]=0;switch(f<<16>>16){case 100:{k=d+14|0;c[70]=k;switch((I(1)|0)<<16>>16){case 97:{e=c[70]|0;if((Q(e+2|0,56,8)|0)==0?(h=e+10|0,da(b[h>>1]|0)|0):0){c[70]=h;I(0)|0;p=22}break}case 102:{p=22;break}case 99:{e=c[70]|0;if(((Q(e+2|0,36,8)|0)==0?(g=e+10|0,q=b[g>>1]|0,pa(q)|0|q<<16>>16==123):0)?(c[70]=g,i=I(1)|0,i<<16>>16!=123):0){o=i;p=31}break}default:{}}c:do if((p|0)==22?(j=c[70]|0,(Q(j+2|0,64,14)|0)==0):0){f=j+16|0;e=b[f>>1]|0;if(!(pa(e)|0))switch(e<<16>>16){case 40:case 42:break;default:break c}c[70]=f;e=I(1)|0;if(e<<16>>16==42){c[70]=(c[70]|0)+2;e=I(1)|0}if(e<<16>>16!=40){o=e;p=31}}while(0);if((p|0)==31?(m=c[70]|0,aa(o)|0,n=c[70]|0,n>>>0>m>>>0):0){W(d,k,m,n);c[70]=(c[70]|0)+-2;break a}W(d,k,0,0);c[70]=d+12;break a}case 97:{c[70]=d+10;I(0)|0;d=c[70]|0;p=35;break}case 102:{p=35;break}case 99:{if((Q(d+2|0,36,8)|0)==0?(e=d+10|0,_(b[e>>1]|0)|0):0){c[70]=e;q=I(1)|0;p=c[70]|0;aa(q)|0;q=c[70]|0;W(p,q,p,q);c[70]=(c[70]|0)+-2;break a}d=d+4|0;c[70]=d;break}case 108:case 118:break;default:break a}if((p|0)==35){c[70]=d+16;d=I(1)|0;if(d<<16>>16==42){c[70]=(c[70]|0)+2;d=I(1)|0}p=c[70]|0;aa(d)|0;q=c[70]|0;W(p,q,p,q);c[70]=(c[70]|0)+-2;break a}c[70]=d+6;a[796]=0;f=I(1)|0;d=c[70]|0;f=(aa(f)|0|32)<<16>>16==123;g=c[70]|0;if(f){c[70]=g+2;q=I(1)|0;d=c[70]|0;aa(q)|0}d:while(1){e=c[70]|0;if((e|0)==(d|0))break;W(d,e,d,e);e=I(1)|0;if(f)switch(e<<16>>16){case 93:case 125:break a;default:{}}d=c[70]|0;if(e<<16>>16!=44){p=51;break}c[70]=d+2;e=I(1)|0;d=c[70]|0;switch(e<<16>>16){case 91:case 123:{p=51;break d}default:{}}aa(e)|0}if((p|0)==51)c[70]=d+-2;if(!f)break a;c[70]=g+-2;break a}}while(0);q=(I(1)|0)<<16>>16==102;d=c[70]|0;if(q?(Q(d+2|0,50,6)|0)==0:0){c[70]=d+8;D(k,I(1)|0);d=(l|0)==0?232:l+16|0;while(1){d=c[d>>2]|0;if(!d)break a;c[d+12>>2]=0;c[d+8>>2]=0;d=d+16|0}}c[70]=d+-2}while(0);return}function C(){var d=0,e=0,f=0,g=0,h=0,i=0;h=c[70]|0;d=h+12|0;c[70]=d;a:do switch((I(1)|0)<<16>>16){case 40:{e=c[68]|0;i=b[396]|0;f=i&65535;c[e+(f<<3)>>2]=5;d=c[70]|0;b[396]=i+1<<16>>16;c[e+(f<<3)+4>>2]=d;if((b[c[67]>>1]|0)!=46){c[70]=d+2;i=I(1)|0;L(h,c[70]|0,0,d);e=c[61]|0;f=c[69]|0;h=b[395]|0;b[395]=h+1<<16>>16;c[f+((h&65535)<<2)>>2]=e;switch(i<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{c[70]=(c[70]|0)+-2;break a}}d=(c[70]|0)+2|0;c[70]=d;switch((I(1)|0)<<16>>16){case 44:{c[70]=(c[70]|0)+2;I(1)|0;h=c[61]|0;c[h+4>>2]=d;i=c[70]|0;c[h+16>>2]=i;a[h+24>>0]=1;c[70]=i+-2;break a}case 41:{b[396]=(b[396]|0)+-1<<16>>16;i=c[61]|0;c[i+4>>2]=d;c[i+12>>2]=(c[70]|0)+2;a[i+24>>0]=1;b[395]=(b[395]|0)+-1<<16>>16;break a}default:{c[70]=(c[70]|0)+-2;break a}}}break}case 46:{c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==109?(e=c[70]|0,(Q(e+2|0,44,6)|0)==0):0){d=c[67]|0;if(!(ea(d)|0)?(b[d>>1]|0)==46:0)break a;L(h,h,e+8|0,2)}break}case 42:case 39:case 34:{g=18;break}case 123:{d=c[70]|0;if(b[396]|0){c[70]=d+-2;break a}while(1){if(d>>>0>=(c[71]|0)>>>0)break;d=I(1)|0;if(!(qa(d)|0)){if(d<<16>>16==125){g=33;break}}else J(d);d=(c[70]|0)+2|0;c[70]=d}if((g|0)==33)c[70]=(c[70]|0)+2;i=(I(1)|0)<<16>>16==102;d=c[70]|0;if(i?Q(d+2|0,50,6)|0:0){oa();break a}c[70]=d+8;d=I(1)|0;if(qa(d)|0){D(h,d);break a}else{oa();break a}}default:if((c[70]|0)==(d|0))c[70]=h+10;else g=18}while(0);do if((g|0)==18){if(b[396]|0){c[70]=(c[70]|0)+-2;break}d=c[71]|0;e=c[70]|0;while(1){if(e>>>0>=d>>>0){g=25;break}f=b[e>>1]|0;if(qa(f)|0){g=23;break}i=e+2|0;c[70]=i;e=i}if((g|0)==23){D(h,f);break}else if((g|0)==25){oa();break}}while(0);return}function D(a,d){a=a|0;d=d|0;var e=0,f=0;e=(c[70]|0)+2|0;switch(d<<16>>16){case 39:{J(39);f=5;break}case 34:{J(34);f=5;break}default:oa()}do if((f|0)==5){L(a,e,c[70]|0,1);c[70]=(c[70]|0)+2;d=I(0)|0;a=d<<16>>16==97;if(a){e=c[70]|0;if(Q(e+2|0,78,10)|0)f=11}else{e=c[70]|0;if(!(((d<<16>>16==119?(b[e+2>>1]|0)==105:0)?(b[e+4>>1]|0)==116:0)?(b[e+6>>1]|0)==104:0))f=11}if((f|0)==11){c[70]=e+-2;break}c[70]=e+((a?6:4)<<1);if((I(1)|0)<<16>>16!=123){c[70]=e;break}a=c[70]|0;d=a;a:while(1){c[70]=d+2;d=I(1)|0;switch(d<<16>>16){case 39:{J(39);c[70]=(c[70]|0)+2;d=I(1)|0;break}case 34:{J(34);c[70]=(c[70]|0)+2;d=I(1)|0;break}default:d=aa(d)|0}if(d<<16>>16!=58){f=20;break}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{f=24;break a}}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 125:{f=29;break a}case 44:break;default:{f=28;break a}}c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==125){f=29;break}d=c[70]|0}if((f|0)==20){c[70]=e;break}else if((f|0)==24){c[70]=e;break}else if((f|0)==28){c[70]=e;break}else if((f|0)==29){f=c[61]|0;c[f+16>>2]=a;c[f+12>>2]=(c[70]|0)+2;break}}while(0);return}function E(a){a=a|0;a:do switch(b[a>>1]|0){case 100:switch(b[a+-2>>1]|0){case 105:{a=X(a+-4|0,88,2)|0;break a}case 108:{a=X(a+-4|0,92,3)|0;break a}default:{a=0;break a}}case 101:switch(b[a+-2>>1]|0){case 115:switch(b[a+-4>>1]|0){case 108:{a=Z(a+-6|0,101)|0;break a}case 97:{a=Z(a+-6|0,99)|0;break a}default:{a=0;break a}}case 116:{a=X(a+-4|0,98,4)|0;break a}case 117:{a=X(a+-4|0,106,6)|0;break a}default:{a=0;break a}}case 102:{if((b[a+-2>>1]|0)==111?(b[a+-4>>1]|0)==101:0)switch(b[a+-6>>1]|0){case 99:{a=X(a+-8|0,118,6)|0;break a}case 112:{a=X(a+-8|0,130,2)|0;break a}default:{a=0;break a}}else a=0;break}case 107:{a=X(a+-2|0,134,4)|0;break}case 110:{a=a+-2|0;if(Z(a,105)|0)a=1;else a=X(a,142,5)|0;break}case 111:{a=Z(a+-2|0,100)|0;break}case 114:{a=X(a+-2|0,152,7)|0;break}case 116:{a=X(a+-2|0,166,4)|0;break}case 119:switch(b[a+-2>>1]|0){case 101:{a=Z(a+-4|0,110)|0;break a}case 111:{a=X(a+-4|0,174,3)|0;break a}default:{a=0;break a}}default:a=0}while(0);return a|0}function H(){var a=0,d=0,e=0,f=0;d=c[71]|0;e=c[70]|0;a:while(1){a=e+2|0;if(e>>>0>=d>>>0){d=10;break}switch(b[a>>1]|0){case 96:{d=7;break a}case 36:{if((b[e+4>>1]|0)==123){d=6;break a}break}case 92:{a=e+4|0;break}default:{}}e=a}if((d|0)==6){a=e+4|0;c[70]=a;d=c[68]|0;f=b[396]|0;e=f&65535;c[d+(e<<3)>>2]=4;b[396]=f+1<<16>>16;c[d+(e<<3)+4>>2]=a}else if((d|0)==7){c[70]=a;e=c[68]|0;f=(b[396]|0)+-1<<16>>16;b[396]=f;if((c[e+((f&65535)<<3)>>2]|0)!=3)oa()}else if((d|0)==10){c[70]=a;oa()}return}function I(a){a=a|0;var d=0,e=0,f=0;e=c[70]|0;a:do{d=b[e>>1]|0;b:do if(d<<16>>16!=47)if(a)if(pa(d)|0)break;else break a;else if(da(d)|0)break;else break a;else switch(b[e+2>>1]|0){case 47:{$();break b}case 42:{P(a);break b}default:{d=47;break a}}while(0);f=c[70]|0;e=f+2|0;c[70]=e}while(f>>>0<(c[71]|0)>>>0);return d|0}function J(a){a=a|0;var d=0,e=0,f=0,g=0;g=c[71]|0;d=c[70]|0;while(1){f=d+2|0;if(d>>>0>=g>>>0){d=9;break}e=b[f>>1]|0;if(e<<16>>16==a<<16>>16){d=10;break}if(e<<16>>16==92){e=d+4|0;if((b[e>>1]|0)==13){d=d+6|0;d=(b[d>>1]|0)==10?d:e}else d=e}else if(ta(e)|0){d=9;break}else d=f}if((d|0)==9){c[70]=f;oa()}else if((d|0)==10)c[70]=f;return}function K(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[70]|0;f=b[e>>1]|0;h=(a|0)==(d|0);g=h?0:a;h=h?0:d;if(f<<16>>16==97){c[70]=e+4;e=I(1)|0;a=c[70]|0;if(qa(e)|0){J(e);d=(c[70]|0)+2|0;c[70]=d}else{aa(e)|0;d=c[70]|0}f=I(1)|0;e=c[70]|0}if((e|0)!=(a|0))W(a,d,g,h);return f|0}function L(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[65]|0;c[65]=g+32;h=c[61]|0;c[((h|0)==0?228:h+28|0)>>2]=g;c[62]=h;c[61]=g;c[g+8>>2]=b;if(2==(f|0))b=e;else b=1==(f|0)?e+2|0:0;c[g+12>>2]=b;c[g>>2]=d;c[g+4>>2]=e;c[g+16>>2]=0;c[g+20>>2]=f;a[g+24>>0]=1==(f|0)&1;c[g+28>>2]=0;a[795]=1;return}function M(){var a=0,d=0,e=0;e=c[71]|0;d=c[70]|0;a:while(1){a=d+2|0;if(d>>>0>=e>>>0){d=6;break}switch(b[a>>1]|0){case 13:case 10:{d=6;break a}case 93:{d=7;break a}case 92:{a=d+4|0;break}default:{}}d=a}if((d|0)==6){c[70]=a;oa();a=0}else if((d|0)==7){c[70]=a;a=93}return a|0}function N(){var a=0,d=0,e=0;a:while(1){a=c[70]|0;d=a+2|0;c[70]=d;if(a>>>0>=(c[71]|0)>>>0){e=7;break}switch(b[d>>1]|0){case 13:case 10:{e=7;break a}case 47:break a;case 91:{M()|0;break}case 92:{c[70]=a+4;break}default:{}}}if((e|0)==7)oa();return}function O(a){a=a|0;switch(b[a>>1]|0){case 62:{a=(b[a+-2>>1]|0)==61;break}case 41:case 59:{a=1;break}case 104:{a=X(a+-2|0,200,4)|0;break}case 121:{a=X(a+-2|0,208,6)|0;break}case 101:{a=X(a+-2|0,220,3)|0;break}default:a=0}return a|0}function P(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;g=(c[70]|0)+2|0;c[70]=g;e=c[71]|0;while(1){d=g+2|0;if(g>>>0>=e>>>0)break;f=b[d>>1]|0;if(!a?ta(f)|0:0)break;if(f<<16>>16==42?(b[g+4>>1]|0)==47:0){h=8;break}g=d}if((h|0)==8){c[70]=d;d=g+4|0}c[70]=d;return}function Q(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function S(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:{a=1;break}default:if((a&-8)<<16>>16==40|(a+-58&65535)<6)a=1;else{switch(a<<16>>16){case 91:case 93:case 94:{a=1;break a}default:{}}a=(a+-123&65535)<4}}while(0);return a|0}function T(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:break;default:if(!((a+-58&65535)<6|(a+-40&65535)<7&a<<16>>16!=41)){switch(a<<16>>16){case 91:case 94:break a;default:{}}return a<<16>>16!=125&(a+-123&65535)<4|0}}while(0);return 1}function U(a){a=a|0;var c=0;c=b[a>>1]|0;a:do if((c+-9&65535)>=5){switch(c<<16>>16){case 160:case 32:{c=1;break a}default:{}}if(S(c)|0)return c<<16>>16!=46|(ea(a)|0)|0;else c=0}else c=1;while(0);return c|0}function V(a){a=a|0;var d=0,e=0,f=0,g=0;e=v;v=v+16|0;f=e;c[f>>2]=0;c[64]=a;d=c[3]|0;g=d+(a<<1)|0;a=g+2|0;b[g>>1]=0;c[f>>2]=a;c[65]=a;c[57]=0;c[61]=0;c[59]=0;c[58]=0;c[63]=0;c[60]=0;v=e;return d|0}function W(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[65]|0;c[65]=g+20;h=c[63]|0;c[((h|0)==0?232:h+16|0)>>2]=g;c[63]=g;c[g>>2]=b;c[g+4>>2]=d;c[g+8>>2]=e;c[g+12>>2]=f;c[g+16>>2]=0;a[795]=1;return}function X(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+(0-d<<1)|0;f=e+2|0;a=c[3]|0;if(f>>>0>=a>>>0?(Q(f,b,d<<1)|0)==0:0)if((f|0)==(a|0))a=1;else a=U(e)|0;else a=0;return a|0}function Y(a){a=a|0;switch(b[a>>1]|0){case 107:{a=X(a+-2|0,134,4)|0;break}case 101:{if((b[a+-2>>1]|0)==117)a=X(a+-4|0,106,6)|0;else a=0;break}default:a=0}return a|0}function Z(a,d){a=a|0;d=d|0;var e=0;e=c[3]|0;if(e>>>0<=a>>>0?(b[a>>1]|0)==d<<16>>16:0)if((e|0)==(a|0))e=1;else e=_(b[a+-2>>1]|0)|0;else e=0;return e|0}function _(a){a=a|0;a:do if((a+-9&65535)<5)a=1;else{switch(a<<16>>16){case 32:case 160:{a=1;break a}default:{}}a=a<<16>>16!=46&(S(a)|0)}while(0);return a|0}function $(){var a=0,d=0,e=0;a=c[71]|0;e=c[70]|0;a:while(1){d=e+2|0;if(e>>>0>=a>>>0)break;switch(b[d>>1]|0){case 13:case 10:break a;default:e=d}}c[70]=d;return}function aa(a){a=a|0;while(1){if(pa(a)|0)break;if(S(a)|0)break;a=(c[70]|0)+2|0;c[70]=a;a=b[a>>1]|0;if(!(a<<16>>16)){a=0;break}}return a|0}function ba(){var a=0;a=c[(c[59]|0)+20>>2]|0;switch(a|0){case 1:{a=-1;break}case 2:{a=-2;break}default:a=a-(c[3]|0)>>1}return a|0}function ca(a){a=a|0;if(!(X(a,180,5)|0)?!(X(a,190,3)|0):0)a=X(a,196,2)|0;else a=1;return a|0}function da(a){a=a|0;switch(a<<16>>16){case 160:case 32:case 12:case 11:case 9:{a=1;break}default:a=0}return a|0}function ea(a){a=a|0;if((b[a>>1]|0)==46?(b[a+-2>>1]|0)==46:0)a=(b[a+-4>>1]|0)==46;else a=0;return a|0}function fa(a){a=a|0;if((c[3]|0)==(a|0))a=1;else a=U(a+-2|0)|0;return a|0}function ga(){var a=0;a=c[(c[60]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ha(){var a=0;a=c[(c[59]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ia(){var a=0;a=c[(c[60]|0)+8>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ja(){var a=0;a=c[(c[59]|0)+16>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ka(){var a=0;a=c[(c[59]|0)+4>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function la(){var a=0;a=c[59]|0;a=c[((a|0)==0?228:a+28|0)>>2]|0;c[59]=a;return (a|0)!=0|0}function ma(){var a=0;a=c[60]|0;a=c[((a|0)==0?232:a+16|0)>>2]|0;c[60]=a;return (a|0)!=0|0}function oa(){a[794]=1;c[66]=(c[70]|0)-(c[3]|0)>>1;c[70]=(c[71]|0)+2;return}function pa(a){a=a|0;return (a|128)<<16>>16==160|(a+-9&65535)<5|0}function qa(a){a=a|0;return a<<16>>16==39|a<<16>>16==34|0}function ra(){return (c[(c[59]|0)+8>>2]|0)-(c[3]|0)>>1|0}function sa(){return (c[(c[60]|0)+4>>2]|0)-(c[3]|0)>>1|0}function ta(a){a=a|0;return a<<16>>16==13|a<<16>>16==10|0}function ua(){return (c[c[59]>>2]|0)-(c[3]|0)>>1|0}function va(){return (c[c[60]>>2]|0)-(c[3]|0)>>1|0}function wa(){return d[(c[59]|0)+24>>0]|0|0}function xa(a){a=a|0;c[3]=a;return}function Aa(){return (a[795]|0)!=0|0}function Ba(){return (a[796]|0)!=0|0}function Fa(){return c[66]|0} function su(a) { a = a | 0; v = a + 992 + 15 & -16; return 992; } return { - su,ai:ja,e:Ea,ee:sa,ele:ga,els:ia,es:va,f:Aa,id:ba,ie:ka,ip:wa,is:ua,p:z,re:ma,ri:la,sa:V,se:ha,ses:xa,ss:ra}} \ No newline at end of file + su,ai:ja,e:Fa,ee:sa,ele:ga,els:ia,es:va,f:Ba,id:ba,ie:ka,ip:wa,is:ua,ms:Aa,p:z,re:ma,ri:la,sa:V,se:ha,ses:xa,ss:ra}} \ No newline at end of file diff --git a/lib/lexer.emcc.asm.js b/lib/lexer.emcc.asm.js index 6b3c908..26692a3 100644 --- a/lib/lexer.emcc.asm.js +++ b/lib/lexer.emcc.asm.js @@ -1,9 +1,9 @@ Module["asm"]=(/** @suppress {uselessCode} */ function(global,env,buffer) { "use asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=env.g|0,g=env.h|0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=env.a,q=env.b,r=env.c,s=env.d,t=env.e,u=env.f,v=1024,w=4998992,x=0.0; // EMSCRIPTEN_START_FUNCS -function y(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0;x=v;v=v+16|0;n=x;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=c[73]|0;d=m>>>a;if(d&3|0){e=(d&1^1)+a|0;f=332+(e<<1<<2)|0;b=f+8|0;a=c[b>>2]|0;g=a+8|0;d=c[g>>2]|0;if((d|0)==(f|0))c[73]=m&~(1<>2]=f;c[b>>2]=d}w=e<<3;c[a+4>>2]=w|3;w=a+w+4|0;c[w>>2]=c[w>>2]|1;w=g;v=x;return w|0}l=c[75]|0;if(k>>>0>l>>>0){if(d|0){i=2<>>12&16;d=d>>>i;a=d>>>5&8;d=d>>>a;g=d>>>2&4;d=d>>>g;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=(a|i|g|b|e)+(d>>>e)|0;d=332+(e<<1<<2)|0;b=d+8|0;g=c[b>>2]|0;i=g+8|0;a=c[i>>2]|0;if((a|0)==(d|0)){a=m&~(1<>2]=d;c[b>>2]=a;a=m}w=e<<3;h=w-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+w>>2]=h;if(l|0){e=c[78]|0;b=l>>>3;d=332+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[75]=h;c[78]=f;w=i;v=x;return w|0}g=c[74]|0;if(g){i=(g&0-g)+-1|0;f=i>>>12&16;i=i>>>f;e=i>>>5&8;i=i>>>e;h=i>>>2&4;i=i>>>h;d=i>>>1&2;i=i>>>d;j=i>>>1&1;j=c[596+((e|f|h|d|j)+(i>>>j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-k|0;d=j;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}d=(c[a+4>>2]&-8)-k|0;h=d>>>0>>0;i=h?d:i;d=a;j=h?a:j}h=j+k|0;if(h>>>0>j>>>0){f=c[j+24>>2]|0;b=c[j+12>>2]|0;do if((b|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[j+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[j+28>>2]|0;a=596+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[74]=g&~(1<>2]|0)==(j|0)?w:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[j+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[j+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(i>>>0<16){w=i+k|0;c[j+4>>2]=w|3;w=j+w+4|0;c[w>>2]=c[w>>2]|1}else{c[j+4>>2]=k|3;c[h+4>>2]=i|1;c[h+i>>2]=i;if(l|0){e=c[78]|0;b=l>>>3;d=332+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[75]=i;c[78]=h}w=j+8|0;v=x;return w|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[74]|0;if(e){d=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;a=c[596+(j<<2)>>2]|0;a:do if(!a){f=0;a=0;q=61}else{f=0;h=k<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){g=(c[i+4>>2]&-8)-k|0;if(g>>>0>>0)if(!g){d=0;f=i;a=i;q=65;break a}else{d=g;a=i}q=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;f=(q|0)==0|(q|0)==(i|0)?f:q;if(!i){q=61;break}else h=h<<1}}while(0);if((q|0)==61){if((f|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>i;h=a>>>5&8;a=a>>>h;j=a>>>2&4;a=a>>>j;m=a>>>1&2;a=a>>>m;f=a>>>1&1;f=c[596+((h|i|j|m|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;g=a}else q=65}if((q|0)==65)while(1){m=(c[f+4>>2]&-8)-k|0;g=m>>>0>>0;d=g?m:d;g=g?f:a;a=c[f+16>>2]|0;if(!a)a=c[f+20>>2]|0;if(!a){i=d;break}else{f=a;a=g}}if(((g|0)!=0?i>>>0<((c[75]|0)-k|0)>>>0:0)?(l=g+k|0,l>>>0>g>>>0):0){h=c[g+24>>2]|0;b=c[g+12>>2]|0;do if((b|0)==(g|0)){a=g+20|0;b=c[a>>2]|0;if(!b){a=g+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{w=c[g+8>>2]|0;c[w+12>>2]=b;c[b+8>>2]=w}while(0);do if(h){a=c[g+28>>2]|0;d=596+(a<<2)|0;if((g|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(g|0)?w:h+20|0)>>2]=b;if(!b)break}c[b+24>>2]=h;a=c[g+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[g+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(i>>>0<16){w=i+k|0;c[g+4>>2]=w|3;w=g+w+4|0;c[w>>2]=c[w>>2]|1}else{c[g+4>>2]=k|3;c[l+4>>2]=i|1;c[l+i>>2]=i;b=i>>>3;if(i>>>0<256){d=332+(b<<1<<2)|0;a=c[73]|0;b=1<>2]|0}c[b>>2]=l;c[a+12>>2]=l;c[l+8>>2]=a;c[l+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)d=31;else{u=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;d=14-(t|u|d)+(w<>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;b=596+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(i|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;w=c[u>>2]|0;c[w+12>>2]=l;c[u>>2]=l;c[l+8>>2]=w;c[l+12>>2]=b;c[l+24>>2]=0}while(0);w=g+8|0;v=x;return w|0}else m=k}else m=k}else m=-1;while(0);d=c[75]|0;if(d>>>0>=m>>>0){a=d-m|0;b=c[78]|0;if(a>>>0>15){w=b+m|0;c[78]=w;c[75]=a;c[w+4>>2]=a|1;c[b+d>>2]=a;c[b+4>>2]=m|3}else{c[75]=0;c[78]=0;c[b+4>>2]=d|3;w=b+d+4|0;c[w>>2]=c[w>>2]|1}w=b+8|0;v=x;return w|0}h=c[76]|0;if(h>>>0>m>>>0){t=h-m|0;c[76]=t;w=c[79]|0;u=w+m|0;c[79]=u;c[u+4>>2]=t|1;c[w+4>>2]=m|3;w=w+8|0;v=x;return w|0}if(!(c[191]|0)){c[193]=4096;c[192]=4096;c[194]=-1;c[195]=-1;c[196]=0;c[184]=0;c[191]=n&-16^1431655768;a=4096}else a=c[193]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){w=0;v=x;return w|0}a=c[183]|0;if(a|0?(l=c[181]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){w=0;v=x;return w|0}d:do if(!(c[184]&4)){d=c[79]|0;e:do if(d){f=740;while(1){n=c[f>>2]|0;if(n>>>0<=d>>>0?(n+(c[f+4>>2]|0)|0)>>>0>d>>>0:0)break;a=c[f+8>>2]|0;if(!a){q=128;break e}else f=a}b=g-h&e;if(b>>>0<2147483647){a=R(b)|0;if((a|0)==((c[f>>2]|0)+(c[f+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=a;g=b;q=145;break d}}else{e=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){d=R(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[192]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[181]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=c[183]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=R(b)|0;if((a|0)==(d|0)){h=d;g=b;q=145;break d}else{e=a;q=136}}else b=0}while(0);do if((q|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=e;g=b;q=145;break d}a=c[193]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=e;g=b;q=145;break d}if((R(a)|0)==(-1|0)){R(d)|0;b=0;break}else{h=e;g=a+b|0;q=145;break d}}while(0);c[184]=c[184]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(r=R(k)|0,p=R(0)|0,t=p-r|0,s=t>>>0>(m+40|0)>>>0,!((r|0)==(-1|0)|s^1|r>>>0

>>0&((r|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=r;g=s?t:b;q=145}if((q|0)==145){b=(c[181]|0)+g|0;c[181]=b;if(b>>>0>(c[182]|0)>>>0)c[182]=b;j=c[79]|0;f:do if(j){e=740;while(1){b=c[e>>2]|0;a=c[e+4>>2]|0;if((h|0)==(b+a|0)){q=154;break}d=c[e+8>>2]|0;if(!d)break;else e=d}if(((q|0)==154?(u=e+4|0,(c[e+12>>2]&8|0)==0):0)?h>>>0>j>>>0&b>>>0<=j>>>0:0){c[u>>2]=a+g;w=(c[76]|0)+g|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=w-t|0;c[79]=u;c[76]=t;c[u+4>>2]=t|1;c[j+w+4>>2]=40;c[80]=c[195];break}if(h>>>0<(c[77]|0)>>>0)c[77]=h;d=h+g|0;a=740;while(1){if((c[a>>2]|0)==(d|0)){q=162;break}b=c[a+8>>2]|0;if(!b)break;else a=b}if((q|0)==162?(c[a+12>>2]&8|0)==0:0){c[a>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+g;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){w=(c[76]|0)+i|0;c[76]=w;c[79]=k;c[k+4>>2]=w|1}else{if((c[78]|0)==(b|0)){w=(c[75]|0)+i|0;c[75]=w;c[78]=k;c[k+4>>2]=w|1;c[k+w>>2]=w;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[73]=c[73]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{w=c[b+8>>2]|0;c[w+12>>2]=a;c[a+8>>2]=w}while(0);if(!g)break;d=c[b+28>>2]|0;e=596+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){w=g+16|0;c[((c[w>>2]|0)==(b|0)?w:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[74]=c[74]&~(1<>2]=g;e=b+16|0;d=c[e>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}d=c[e+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=332+(b<<1<<2)|0;a=c[73]|0;b=1<>2]|0}c[b>>2]=k;c[a+12>>2]=k;c[k+8>>2]=a;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;e=14-(t|u|e)+(w<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);a=596+(e<<2)|0;c[k+28>>2]=e;b=k+16|0;c[b+4>>2]=0;c[b>>2]=0;b=c[74]|0;d=1<>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[a>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;w=c[u>>2]|0;c[w+12>>2]=k;c[u>>2]=k;c[k+8>>2]=w;c[k+12>>2]=b;c[k+24>>2]=0}while(0);w=l+8|0;v=x;return w|0}a=740;while(1){b=c[a>>2]|0;if(b>>>0<=j>>>0?(w=b+(c[a+4>>2]|0)|0,w>>>0>j>>>0):0)break;a=c[a+8>>2]|0}f=w+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=d-t|0;c[79]=u;c[76]=t;c[u+4>>2]=t|1;c[h+d+4>>2]=40;c[80]=c[195];d=a+4|0;c[d>>2]=27;c[b>>2]=c[185];c[b+4>>2]=c[186];c[b+8>>2]=c[187];c[b+12>>2]=c[188];c[185]=h;c[186]=g;c[188]=0;c[187]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=332+(b<<1<<2)|0;a=c[73]|0;b=1<>2]|0}c[b>>2]=j;c[a+12>>2]=j;c[j+8>>2]=a;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{u=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;e=14-(t|u|e)+(w<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=596+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[74]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;w=c[u>>2]|0;c[w+12>>2]=j;c[u>>2]=j;c[j+8>>2]=w;c[j+12>>2]=b;c[j+24>>2]=0}}else{w=c[77]|0;if((w|0)==0|h>>>0>>0)c[77]=h;c[185]=h;c[186]=g;c[188]=0;c[82]=c[191];c[81]=-1;c[86]=332;c[85]=332;c[88]=340;c[87]=340;c[90]=348;c[89]=348;c[92]=356;c[91]=356;c[94]=364;c[93]=364;c[96]=372;c[95]=372;c[98]=380;c[97]=380;c[100]=388;c[99]=388;c[102]=396;c[101]=396;c[104]=404;c[103]=404;c[106]=412;c[105]=412;c[108]=420;c[107]=420;c[110]=428;c[109]=428;c[112]=436;c[111]=436;c[114]=444;c[113]=444;c[116]=452;c[115]=452;c[118]=460;c[117]=460;c[120]=468;c[119]=468;c[122]=476;c[121]=476;c[124]=484;c[123]=484;c[126]=492;c[125]=492;c[128]=500;c[127]=500;c[130]=508;c[129]=508;c[132]=516;c[131]=516;c[134]=524;c[133]=524;c[136]=532;c[135]=532;c[138]=540;c[137]=540;c[140]=548;c[139]=548;c[142]=556;c[141]=556;c[144]=564;c[143]=564;c[146]=572;c[145]=572;c[148]=580;c[147]=580;w=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=w-t|0;c[79]=u;c[76]=t;c[u+4>>2]=t|1;c[h+w+4>>2]=40;c[80]=c[195]}while(0);b=c[76]|0;if(b>>>0>m>>>0){t=b-m|0;c[76]=t;w=c[79]|0;u=w+m|0;c[79]=u;c[u+4>>2]=t|1;c[w+4>>2]=m|3;w=w+8|0;v=x;return w|0}}c[(Da()|0)>>2]=48;w=0;v=x;return w|0}function z(){var d=0,f=0,g=0,h=0,i=0,j=0,k=0;k=v;v=v+10240|0;a[795]=1;b[395]=0;b[396]=0;c[67]=c[2];a[796]=0;c[66]=0;a[794]=0;c[68]=k+2048;c[69]=k;a[797]=0;d=(c[3]|0)+-2|0;c[70]=d;f=d+(c[64]<<1)|0;c[71]=f;a:while(1){g=d+2|0;c[70]=g;if(d>>>0>=f>>>0){j=18;break}b:do switch(b[g>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((b[396]|0)==0?fa(g)|0:0)?(Q(d+4|0,16,10)|0)==0:0)?(B(),(a[795]|0)==0):0){j=9;break a}else j=17;break}case 105:{if(fa(g)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=17}else j=17;break}case 59:{j=17;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break b}case 42:{P(1);break b}default:{j=16;break a}}default:{j=16;break a}}while(0);if((j|0)==17){j=0;c[67]=c[70]}d=c[70]|0;f=c[71]|0}if((j|0)==9){d=c[70]|0;c[67]=d;j=19}else if((j|0)==16){a[795]=0;c[70]=d;j=19}else if((j|0)==18)if(!(a[794]|0)){d=g;j=19}else d=0;do if((j|0)==19){c:while(1){f=d+2|0;c[70]=f;i=f;if(d>>>0>=(c[71]|0)>>>0){j=82;break}d:do switch(b[f>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((b[396]|0)==0?fa(f)|0:0)?(Q(d+4|0,16,10)|0)==0:0){B();j=81}else j=81;break}case 105:{if(fa(f)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=81}else j=81;break}case 99:{if((fa(f)|0?(Q(d+4|0,36,8)|0)==0:0)?pa(b[d+12>>1]|0)|0:0){a[797]=1;j=81}else j=81;break}case 40:{i=c[68]|0;g=b[396]|0;j=g&65535;c[i+(j<<3)>>2]=1;h=c[67]|0;b[396]=g+1<<16>>16;c[i+(j<<3)+4>>2]=h;j=81;break}case 41:{f=b[396]|0;if(!(f<<16>>16)){j=36;break c}j=f+-1<<16>>16;b[396]=j;h=b[395]|0;f=h&65535;if(h<<16>>16!=0?(c[(c[68]|0)+((j&65535)<<3)>>2]|0)==5:0){f=c[(c[69]|0)+(f+-1<<2)>>2]|0;g=f+4|0;if(!(c[g>>2]|0))c[g>>2]=i;c[f+12>>2]=d+4;b[395]=h+-1<<16>>16;j=81}else j=81;break}case 123:{j=c[67]|0;i=c[61]|0;d=j;do if((b[j>>1]|0)==41&(i|0)!=0?(c[i+4>>2]|0)==(j|0):0){f=c[62]|0;c[61]=f;if(!f){c[57]=0;break}else{c[f+28>>2]=0;break}}while(0);i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)>>2]=(a[797]|0)==0?2:6;b[396]=h+1<<16>>16;c[i+(j<<3)+4>>2]=d;a[797]=0;j=81;break}case 125:{d=b[396]|0;if(!(d<<16>>16)){j=49;break c}i=c[68]|0;j=d+-1<<16>>16;b[396]=j;if((c[i+((j&65535)<<3)>>2]|0)==4){H();j=81}else j=81;break}case 39:{J(39);j=81;break}case 34:{J(34);j=81;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break d}case 42:{P(1);break d}default:{d=c[67]|0;h=b[d>>1]|0;e:do if(!(T(h)|0)){switch(h<<16>>16){case 41:if(ca(c[(c[68]|0)+(e[396]<<3)+4>>2]|0)|0){j=69;break e}else{j=66;break e}case 125:break;default:{j=66;break e}}f=c[68]|0;g=e[396]|0;if(!(O(c[f+(g<<3)+4>>2]|0)|0)?(c[f+(g<<3)>>2]|0)!=6:0)j=66;else j=69}else switch(h<<16>>16){case 46:if(((b[d+-2>>1]|0)+-48&65535)<10){j=66;break e}else{j=69;break e}case 43:if((b[d+-2>>1]|0)==43){j=66;break e}else{j=69;break e}case 45:if((b[d+-2>>1]|0)==45){j=66;break e}else{j=69;break e}default:{j=69;break e}}while(0);f:do if((j|0)==66){j=0;if(!(E(d)|0)){switch(h<<16>>16){case 0:{j=69;break f}case 47:{if(a[796]|0){j=69;break f}break}default:{}}g=c[3]|0;f=h;do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d;f=b[d>>1]|0}while(!(_(f)|0));if(da(f)|0){do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d}while(da(b[d>>1]|0)|0);if(Y(d)|0){N();a[796]=0;j=81;break d}else d=1}else d=1}else j=69}while(0);if((j|0)==69){N();d=0}a[796]=d;j=81;break d}}case 96:{i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)+4>>2]=c[67];b[396]=h+1<<16>>16;c[i+(j<<3)>>2]=3;H();j=81;break}default:j=81}while(0);if((j|0)==81){j=0;c[67]=c[70]}d=c[70]|0}if((j|0)==36){oa();d=0;break}else if((j|0)==49){oa();d=0;break}else if((j|0)==82){d=(a[794]|0)==0?(b[395]|b[396])<<16>>16==0:0;break}}while(0);v=k;return d|0}function A(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;d=a+-8|0;e=c[77]|0;a=c[a+-4>>2]|0;b=a&-8;k=d+b|0;do if(!(a&1)){f=c[d>>2]|0;if(!(a&3))return;g=d+(0-f)|0;h=f+b|0;if(g>>>0>>0)return;if((c[78]|0)==(g|0)){b=k+4|0;a=c[b>>2]|0;if((a&3|0)!=3){i=g;j=g;b=h;break}c[75]=h;c[b>>2]=a&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}d=f>>>3;if(f>>>0<256){a=c[g+8>>2]|0;b=c[g+12>>2]|0;if((b|0)==(a|0)){c[73]=c[73]&~(1<>2]=b;c[b+8>>2]=a;i=g;j=g;b=h;break}}f=c[g+24>>2]|0;a=c[g+12>>2]|0;do if((a|0)==(g|0)){d=g+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[g+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(f){a=c[g+28>>2]|0;b=596+(a<<2)|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;if(!d){c[74]=c[74]&~(1<>2]|0)==(g|0)?j:f+20|0)>>2]=d;if(!d){i=g;j=g;b=h;break}}c[d+24>>2]=f;b=g+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a){c[d+20>>2]=a;c[a+24>>2]=d;i=g;j=g;b=h}else{i=g;j=g;b=h}}else{i=g;j=g;b=h}}else{i=d;j=d}while(0);if(i>>>0>=k>>>0)return;a=k+4|0;d=c[a>>2]|0;if(!(d&1))return;if(!(d&2)){if((c[79]|0)==(k|0)){k=(c[76]|0)+b|0;c[76]=k;c[79]=j;c[j+4>>2]=k|1;if((j|0)!=(c[78]|0))return;c[78]=0;c[75]=0;return}if((c[78]|0)==(k|0)){k=(c[75]|0)+b|0;c[75]=k;c[78]=i;c[j+4>>2]=k|1;c[i+k>>2]=k;return}f=(d&-8)+b|0;e=d>>>3;do if(d>>>0<256){b=c[k+8>>2]|0;a=c[k+12>>2]|0;if((a|0)==(b|0)){c[73]=c[73]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[k+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[k+28>>2]|0;b=596+(a<<2)|0;if((c[b>>2]|0)==(k|0)){c[b>>2]=d;if(!d){c[74]=c[74]&~(1<>2]|0)==(k|0)?h:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=k+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[j+4>>2]=f|1;c[i+f>>2]=f;if((j|0)==(c[78]|0)){c[75]=f;return}}else{c[a>>2]=d&-2;c[j+4>>2]=b|1;c[i+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=332+(a<<1<<2)|0;b=c[73]|0;a=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{i=(a+1048320|0)>>>16&8;k=a<>>16&4;k=k<>>16&2;e=14-(h|i|e)+(k<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=596+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[74]|0;d=1<>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j}else{a=c[b>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break a}while(0);i=a+8|0;k=c[i>>2]|0;c[k+12>>2]=j;c[i>>2]=j;c[j+8>>2]=k;c[j+12>>2]=a;c[j+24>>2]=0}while(0);k=(c[81]|0)+-1|0;c[81]=k;if(k|0)return;a=748;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[81]=-1;return}function B(){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=c[70]|0;l=c[63]|0;q=k+12|0;c[70]=q;f=I(1)|0;d=c[70]|0;if(!((d|0)==(q|0)?!(S(f)|0):0))p=3;a:do if((p|0)==3){b:do switch(f<<16>>16){case 123:{c[70]=d+2;d=I(1)|0;f=c[70]|0;while(1){if(qa(d)|0){J(d);d=(c[70]|0)+2|0;c[70]=d}else{aa(d)|0;d=c[70]|0}I(1)|0;d=K(f,d)|0;if(d<<16>>16==44){c[70]=(c[70]|0)+2;d=I(1)|0}e=f;f=c[70]|0;if(d<<16>>16==125){p=15;break}if((f|0)==(e|0)){p=12;break}if(f>>>0>(c[71]|0)>>>0){p=14;break}}if((p|0)==12){oa();break a}else if((p|0)==14){oa();break a}else if((p|0)==15){c[70]=f+2;break b}break}case 42:{c[70]=d+2;I(1)|0;q=c[70]|0;K(q,q)|0;break}default:{a[795]=0;switch(f<<16>>16){case 100:{k=d+14|0;c[70]=k;switch((I(1)|0)<<16>>16){case 97:{e=c[70]|0;if((Q(e+2|0,56,8)|0)==0?(h=e+10|0,da(b[h>>1]|0)|0):0){c[70]=h;I(0)|0;p=22}break}case 102:{p=22;break}case 99:{e=c[70]|0;if(((Q(e+2|0,36,8)|0)==0?(g=e+10|0,q=b[g>>1]|0,pa(q)|0|q<<16>>16==123):0)?(c[70]=g,i=I(1)|0,i<<16>>16!=123):0){o=i;p=31}break}default:{}}c:do if((p|0)==22?(j=c[70]|0,(Q(j+2|0,64,14)|0)==0):0){f=j+16|0;e=b[f>>1]|0;if(!(pa(e)|0))switch(e<<16>>16){case 40:case 42:break;default:break c}c[70]=f;e=I(1)|0;if(e<<16>>16==42){c[70]=(c[70]|0)+2;e=I(1)|0}if(e<<16>>16!=40){o=e;p=31}}while(0);if((p|0)==31?(m=c[70]|0,aa(o)|0,n=c[70]|0,n>>>0>m>>>0):0){X(d,k,m,n);c[70]=(c[70]|0)+-2;break a}X(d,k,0,0);c[70]=d+12;break a}case 97:{c[70]=d+10;I(0)|0;d=c[70]|0;p=35;break}case 102:{p=35;break}case 99:{if((Q(d+2|0,36,8)|0)==0?(e=d+10|0,_(b[e>>1]|0)|0):0){c[70]=e;q=I(1)|0;p=c[70]|0;aa(q)|0;q=c[70]|0;X(p,q,p,q);c[70]=(c[70]|0)+-2;break a}d=d+4|0;c[70]=d;break}case 108:case 118:break;default:break a}if((p|0)==35){c[70]=d+16;d=I(1)|0;if(d<<16>>16==42){c[70]=(c[70]|0)+2;d=I(1)|0}p=c[70]|0;aa(d)|0;q=c[70]|0;X(p,q,p,q);c[70]=(c[70]|0)+-2;break a}c[70]=d+6;a[795]=0;f=I(1)|0;d=c[70]|0;f=(aa(f)|0|32)<<16>>16==123;g=c[70]|0;if(f){c[70]=g+2;q=I(1)|0;d=c[70]|0;aa(q)|0}d:while(1){e=c[70]|0;if((e|0)==(d|0))break;X(d,e,d,e);e=I(1)|0;if(f)switch(e<<16>>16){case 93:case 125:break a;default:{}}d=c[70]|0;if(e<<16>>16!=44){p=51;break}c[70]=d+2;e=I(1)|0;d=c[70]|0;switch(e<<16>>16){case 91:case 123:{p=51;break d}default:{}}aa(e)|0}if((p|0)==51)c[70]=d+-2;if(!f)break a;c[70]=g+-2;break a}}while(0);q=(I(1)|0)<<16>>16==102;d=c[70]|0;if(q?(Q(d+2|0,50,6)|0)==0:0){c[70]=d+8;D(k,I(1)|0);d=(l|0)==0?232:l+16|0;while(1){d=c[d>>2]|0;if(!d)break a;c[d+12>>2]=0;c[d+8>>2]=0;d=d+16|0}}c[70]=d+-2}while(0);return}function C(){var d=0,e=0,f=0,g=0,h=0,i=0;h=c[70]|0;d=h+12|0;c[70]=d;a:do switch((I(1)|0)<<16>>16){case 40:{e=c[68]|0;i=b[396]|0;f=i&65535;c[e+(f<<3)>>2]=5;d=c[70]|0;b[396]=i+1<<16>>16;c[e+(f<<3)+4>>2]=d;if((b[c[67]>>1]|0)!=46){c[70]=d+2;i=I(1)|0;L(h,c[70]|0,0,d);e=c[61]|0;f=c[69]|0;h=b[395]|0;b[395]=h+1<<16>>16;c[f+((h&65535)<<2)>>2]=e;switch(i<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{c[70]=(c[70]|0)+-2;break a}}d=(c[70]|0)+2|0;c[70]=d;switch((I(1)|0)<<16>>16){case 44:{c[70]=(c[70]|0)+2;I(1)|0;h=c[61]|0;c[h+4>>2]=d;i=c[70]|0;c[h+16>>2]=i;a[h+24>>0]=1;c[70]=i+-2;break a}case 41:{b[396]=(b[396]|0)+-1<<16>>16;i=c[61]|0;c[i+4>>2]=d;c[i+12>>2]=(c[70]|0)+2;a[i+24>>0]=1;b[395]=(b[395]|0)+-1<<16>>16;break a}default:{c[70]=(c[70]|0)+-2;break a}}}break}case 46:{c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==109?(e=c[70]|0,(Q(e+2|0,44,6)|0)==0):0){d=c[67]|0;if(!(ea(d)|0)?(b[d>>1]|0)==46:0)break a;L(h,h,e+8|0,2)}break}case 42:case 39:case 34:{g=18;break}case 123:{d=c[70]|0;if(b[396]|0){c[70]=d+-2;break a}while(1){if(d>>>0>=(c[71]|0)>>>0)break;d=I(1)|0;if(!(qa(d)|0)){if(d<<16>>16==125){g=33;break}}else J(d);d=(c[70]|0)+2|0;c[70]=d}if((g|0)==33)c[70]=(c[70]|0)+2;i=(I(1)|0)<<16>>16==102;d=c[70]|0;if(i?Q(d+2|0,50,6)|0:0){oa();break a}c[70]=d+8;d=I(1)|0;if(qa(d)|0){D(h,d);break a}else{oa();break a}}default:if((c[70]|0)==(d|0))c[70]=h+10;else g=18}while(0);do if((g|0)==18){if(b[396]|0){c[70]=(c[70]|0)+-2;break}d=c[71]|0;e=c[70]|0;while(1){if(e>>>0>=d>>>0){g=25;break}f=b[e>>1]|0;if(qa(f)|0){g=23;break}i=e+2|0;c[70]=i;e=i}if((g|0)==23){D(h,f);break}else if((g|0)==25){oa();break}}while(0);return}function D(a,d){a=a|0;d=d|0;var e=0,f=0;e=(c[70]|0)+2|0;switch(d<<16>>16){case 39:{J(39);f=5;break}case 34:{J(34);f=5;break}default:oa()}do if((f|0)==5){L(a,e,c[70]|0,1);c[70]=(c[70]|0)+2;d=I(0)|0;a=d<<16>>16==97;if(a){e=c[70]|0;if(Q(e+2|0,78,10)|0)f=11}else{e=c[70]|0;if(!(((d<<16>>16==119?(b[e+2>>1]|0)==105:0)?(b[e+4>>1]|0)==116:0)?(b[e+6>>1]|0)==104:0))f=11}if((f|0)==11){c[70]=e+-2;break}c[70]=e+((a?6:4)<<1);if((I(1)|0)<<16>>16!=123){c[70]=e;break}a=c[70]|0;d=a;a:while(1){c[70]=d+2;d=I(1)|0;switch(d<<16>>16){case 39:{J(39);c[70]=(c[70]|0)+2;d=I(1)|0;break}case 34:{J(34);c[70]=(c[70]|0)+2;d=I(1)|0;break}default:d=aa(d)|0}if(d<<16>>16!=58){f=20;break}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{f=24;break a}}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 125:{f=29;break a}case 44:break;default:{f=28;break a}}c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==125){f=29;break}d=c[70]|0}if((f|0)==20){c[70]=e;break}else if((f|0)==24){c[70]=e;break}else if((f|0)==28){c[70]=e;break}else if((f|0)==29){f=c[61]|0;c[f+16>>2]=a;c[f+12>>2]=(c[70]|0)+2;break}}while(0);return}function E(a){a=a|0;a:do switch(b[a>>1]|0){case 100:switch(b[a+-2>>1]|0){case 105:{a=W(a+-4|0,88,2)|0;break a}case 108:{a=W(a+-4|0,92,3)|0;break a}default:{a=0;break a}}case 101:switch(b[a+-2>>1]|0){case 115:switch(b[a+-4>>1]|0){case 108:{a=Z(a+-6|0,101)|0;break a}case 97:{a=Z(a+-6|0,99)|0;break a}default:{a=0;break a}}case 116:{a=W(a+-4|0,98,4)|0;break a}case 117:{a=W(a+-4|0,106,6)|0;break a}default:{a=0;break a}}case 102:{if((b[a+-2>>1]|0)==111?(b[a+-4>>1]|0)==101:0)switch(b[a+-6>>1]|0){case 99:{a=W(a+-8|0,118,6)|0;break a}case 112:{a=W(a+-8|0,130,2)|0;break a}default:{a=0;break a}}else a=0;break}case 107:{a=W(a+-2|0,134,4)|0;break}case 110:{a=a+-2|0;if(Z(a,105)|0)a=1;else a=W(a,142,5)|0;break}case 111:{a=Z(a+-2|0,100)|0;break}case 114:{a=W(a+-2|0,152,7)|0;break}case 116:{a=W(a+-2|0,166,4)|0;break}case 119:switch(b[a+-2>>1]|0){case 101:{a=Z(a+-4|0,110)|0;break a}case 111:{a=W(a+-4|0,174,3)|0;break a}default:{a=0;break a}}default:a=0}while(0);return a|0}function F(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=512){t(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function G(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function H(){var a=0,d=0,e=0,f=0;d=c[71]|0;e=c[70]|0;a:while(1){a=e+2|0;if(e>>>0>=d>>>0){d=10;break}switch(b[a>>1]|0){case 96:{d=7;break a}case 36:{if((b[e+4>>1]|0)==123){d=6;break a}break}case 92:{a=e+4|0;break}default:{}}e=a}if((d|0)==6){a=e+4|0;c[70]=a;d=c[68]|0;f=b[396]|0;e=f&65535;c[d+(e<<3)>>2]=4;b[396]=f+1<<16>>16;c[d+(e<<3)+4>>2]=a}else if((d|0)==7){c[70]=a;e=c[68]|0;f=(b[396]|0)+-1<<16>>16;b[396]=f;if((c[e+((f&65535)<<3)>>2]|0)!=3)oa()}else if((d|0)==10){c[70]=a;oa()}return}function I(a){a=a|0;var d=0,e=0,f=0;e=c[70]|0;a:do{d=b[e>>1]|0;b:do if(d<<16>>16!=47)if(a)if(pa(d)|0)break;else break a;else if(da(d)|0)break;else break a;else switch(b[e+2>>1]|0){case 47:{$();break b}case 42:{P(a);break b}default:{d=47;break a}}while(0);f=c[70]|0;e=f+2|0;c[70]=e}while(f>>>0<(c[71]|0)>>>0);return d|0}function J(a){a=a|0;var d=0,e=0,f=0,g=0;g=c[71]|0;d=c[70]|0;while(1){f=d+2|0;if(d>>>0>=g>>>0){d=9;break}e=b[f>>1]|0;if(e<<16>>16==a<<16>>16){d=10;break}if(e<<16>>16==92){e=d+4|0;if((b[e>>1]|0)==13){d=d+6|0;d=(b[d>>1]|0)==10?d:e}else d=e}else if(ta(e)|0){d=9;break}else d=f}if((d|0)==9){c[70]=f;oa()}else if((d|0)==10)c[70]=f;return}function K(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[70]|0;f=b[e>>1]|0;h=(a|0)==(d|0);g=h?0:a;h=h?0:d;if(f<<16>>16==97){c[70]=e+4;e=I(1)|0;a=c[70]|0;if(qa(e)|0){J(e);d=(c[70]|0)+2|0;c[70]=d}else{aa(e)|0;d=c[70]|0}f=I(1)|0;e=c[70]|0}if((e|0)!=(a|0))X(a,d,g,h);return f|0}function L(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[65]|0;c[65]=g+32;h=c[61]|0;c[((h|0)==0?228:h+28|0)>>2]=g;c[62]=h;c[61]=g;c[g+8>>2]=b;if(2==(f|0))b=e;else b=1==(f|0)?e+2|0:0;c[g+12>>2]=b;c[g>>2]=d;c[g+4>>2]=e;c[g+16>>2]=0;c[g+20>>2]=f;a[g+24>>0]=1==(f|0)&1;c[g+28>>2]=0;return}function M(){var a=0,d=0,e=0;e=c[71]|0;d=c[70]|0;a:while(1){a=d+2|0;if(d>>>0>=e>>>0){d=6;break}switch(b[a>>1]|0){case 13:case 10:{d=6;break a}case 93:{d=7;break a}case 92:{a=d+4|0;break}default:{}}d=a}if((d|0)==6){c[70]=a;oa();a=0}else if((d|0)==7){c[70]=a;a=93}return a|0}function N(){var a=0,d=0,e=0;a:while(1){a=c[70]|0;d=a+2|0;c[70]=d;if(a>>>0>=(c[71]|0)>>>0){e=7;break}switch(b[d>>1]|0){case 13:case 10:{e=7;break a}case 47:break a;case 91:{M()|0;break}case 92:{c[70]=a+4;break}default:{}}}if((e|0)==7)oa();return}function O(a){a=a|0;switch(b[a>>1]|0){case 62:{a=(b[a+-2>>1]|0)==61;break}case 41:case 59:{a=1;break}case 104:{a=W(a+-2|0,200,4)|0;break}case 121:{a=W(a+-2|0,208,6)|0;break}case 101:{a=W(a+-2|0,220,3)|0;break}default:a=0}return a|0}function P(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;g=(c[70]|0)+2|0;c[70]=g;e=c[71]|0;while(1){d=g+2|0;if(g>>>0>=e>>>0)break;f=b[d>>1]|0;if(!a?ta(f)|0:0)break;if(f<<16>>16==42?(b[g+4>>1]|0)==47:0){h=8;break}g=d}if((h|0)==8){c[70]=d;d=g+4|0}c[70]=d;return}function Q(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function R(a){a=a|0;var b=0,d=0,e=0;e=a+3&-4;d=Ba()|0;a=c[d>>2]|0;b=a+e|0;do if((e|0)<1|b>>>0>a>>>0){if(b>>>0>(s()|0)>>>0?(u(b|0)|0)==0:0)break;c[d>>2]=b;e=a;return e|0}while(0);c[(Da()|0)>>2]=48;e=-1;return e|0}function S(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:{a=1;break}default:if((a&-8)<<16>>16==40|(a+-58&65535)<6)a=1;else{switch(a<<16>>16){case 91:case 93:case 94:{a=1;break a}default:{}}a=(a+-123&65535)<4}}while(0);return a|0}function T(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:break;default:if(!((a+-58&65535)<6|(a+-40&65535)<7&a<<16>>16!=41)){switch(a<<16>>16){case 91:case 94:break a;default:{}}return a<<16>>16!=125&(a+-123&65535)<4|0}}while(0);return 1}function U(a){a=a|0;var c=0;c=b[a>>1]|0;a:do if((c+-9&65535)>=5){switch(c<<16>>16){case 160:case 32:{c=1;break a}default:{}}if(S(c)|0)return c<<16>>16!=46|(ea(a)|0)|0;else c=0}else c=1;while(0);return c|0}function V(a){a=a|0;var d=0,e=0,f=0,g=0;e=v;v=v+16|0;f=e;c[f>>2]=0;c[64]=a;d=c[3]|0;g=d+(a<<1)|0;a=g+2|0;b[g>>1]=0;c[f>>2]=a;c[65]=a;c[57]=0;c[61]=0;c[59]=0;c[58]=0;c[63]=0;c[60]=0;v=e;return d|0}function W(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+(0-d<<1)|0;f=e+2|0;a=c[3]|0;if(f>>>0>=a>>>0?(Q(f,b,d<<1)|0)==0:0)if((f|0)==(a|0))a=1;else a=U(e)|0;else a=0;return a|0}function X(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[65]|0;c[65]=f+20;g=c[63]|0;c[((g|0)==0?232:g+16|0)>>2]=f;c[63]=f;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=e;c[f+16>>2]=0;return}function Y(a){a=a|0;switch(b[a>>1]|0){case 107:{a=W(a+-2|0,134,4)|0;break}case 101:{if((b[a+-2>>1]|0)==117)a=W(a+-4|0,106,6)|0;else a=0;break}default:a=0}return a|0}function Z(a,d){a=a|0;d=d|0;var e=0;e=c[3]|0;if(e>>>0<=a>>>0?(b[a>>1]|0)==d<<16>>16:0)if((e|0)==(a|0))e=1;else e=_(b[a+-2>>1]|0)|0;else e=0;return e|0}function _(a){a=a|0;a:do if((a+-9&65535)<5)a=1;else{switch(a<<16>>16){case 32:case 160:{a=1;break a}default:{}}a=a<<16>>16!=46&(S(a)|0)}while(0);return a|0}function $(){var a=0,d=0,e=0;a=c[71]|0;e=c[70]|0;a:while(1){d=e+2|0;if(e>>>0>=a>>>0)break;switch(b[d>>1]|0){case 13:case 10:break a;default:e=d}}c[70]=d;return}function aa(a){a=a|0;while(1){if(pa(a)|0)break;if(S(a)|0)break;a=(c[70]|0)+2|0;c[70]=a;a=b[a>>1]|0;if(!(a<<16>>16)){a=0;break}}return a|0}function ba(){var a=0;a=c[(c[59]|0)+20>>2]|0;switch(a|0){case 1:{a=-1;break}case 2:{a=-2;break}default:a=a-(c[3]|0)>>1}return a|0}function ca(a){a=a|0;if(!(W(a,180,5)|0)?!(W(a,190,3)|0):0)a=W(a,196,2)|0;else a=1;return a|0}function da(a){a=a|0;switch(a<<16>>16){case 160:case 32:case 12:case 11:case 9:{a=1;break}default:a=0}return a|0}function ea(a){a=a|0;if((b[a>>1]|0)==46?(b[a+-2>>1]|0)==46:0)a=(b[a+-4>>1]|0)==46;else a=0;return a|0}function fa(a){a=a|0;if((c[3]|0)==(a|0))a=1;else a=U(a+-2|0)|0;return a|0}function ga(){var a=0;a=c[(c[60]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ha(){var a=0;a=c[(c[59]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ia(){var a=0;a=c[(c[60]|0)+8>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ja(){var a=0;a=c[(c[59]|0)+16>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ka(){var a=0;a=c[(c[59]|0)+4>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function la(){var a=0;a=c[59]|0;a=c[((a|0)==0?228:a+28|0)>>2]|0;c[59]=a;return (a|0)!=0|0}function ma(){var a=0;a=c[60]|0;a=c[((a|0)==0?232:a+16|0)>>2]|0;c[60]=a;return (a|0)!=0|0}function na(a){a=a|0;var b=0;b=v;v=v+a|0;v=v+15&-16;return b|0}function oa(){a[794]=1;c[66]=(c[70]|0)-(c[3]|0)>>1;c[70]=(c[71]|0)+2;return}function pa(a){a=a|0;return (a|128)<<16>>16==160|(a+-9&65535)<5|0}function qa(a){a=a|0;return a<<16>>16==39|a<<16>>16==34|0}function ra(){return (c[(c[59]|0)+8>>2]|0)-(c[3]|0)>>1|0}function sa(){return (c[(c[60]|0)+4>>2]|0)-(c[3]|0)>>1|0}function ta(a){a=a|0;return a<<16>>16==13|a<<16>>16==10|0}function ua(){return (c[c[59]>>2]|0)-(c[3]|0)>>1|0}function va(){return (c[c[60]>>2]|0)-(c[3]|0)>>1|0}function wa(){return d[(c[59]|0)+24>>0]|0|0}function xa(a){a=a|0;c[3]=a;return}function ya(){c[3]=g}function za(a){a=a|0;v=a}function Aa(){return (a[795]|0)!=0|0}function Ba(){return 816}function Ca(){return v|0}function Da(){return 288}function Ea(){return c[66]|0} +function y(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0;x=v;v=v+16|0;n=x;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=c[73]|0;d=m>>>a;if(d&3|0){e=(d&1^1)+a|0;f=332+(e<<1<<2)|0;b=f+8|0;a=c[b>>2]|0;g=a+8|0;d=c[g>>2]|0;if((d|0)==(f|0))c[73]=m&~(1<>2]=f;c[b>>2]=d}w=e<<3;c[a+4>>2]=w|3;w=a+w+4|0;c[w>>2]=c[w>>2]|1;w=g;v=x;return w|0}l=c[75]|0;if(k>>>0>l>>>0){if(d|0){i=2<>>12&16;d=d>>>i;a=d>>>5&8;d=d>>>a;g=d>>>2&4;d=d>>>g;b=d>>>1&2;d=d>>>b;e=d>>>1&1;e=(a|i|g|b|e)+(d>>>e)|0;d=332+(e<<1<<2)|0;b=d+8|0;g=c[b>>2]|0;i=g+8|0;a=c[i>>2]|0;if((a|0)==(d|0)){a=m&~(1<>2]=d;c[b>>2]=a;a=m}w=e<<3;h=w-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+w>>2]=h;if(l|0){e=c[78]|0;b=l>>>3;d=332+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[75]=h;c[78]=f;w=i;v=x;return w|0}g=c[74]|0;if(g){i=(g&0-g)+-1|0;f=i>>>12&16;i=i>>>f;e=i>>>5&8;i=i>>>e;h=i>>>2&4;i=i>>>h;d=i>>>1&2;i=i>>>d;j=i>>>1&1;j=c[596+((e|f|h|d|j)+(i>>>j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-k|0;d=j;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}d=(c[a+4>>2]&-8)-k|0;h=d>>>0>>0;i=h?d:i;d=a;j=h?a:j}h=j+k|0;if(h>>>0>j>>>0){f=c[j+24>>2]|0;b=c[j+12>>2]|0;do if((b|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[j+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[j+28>>2]|0;a=596+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[74]=g&~(1<>2]|0)==(j|0)?w:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[j+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[j+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(i>>>0<16){w=i+k|0;c[j+4>>2]=w|3;w=j+w+4|0;c[w>>2]=c[w>>2]|1}else{c[j+4>>2]=k|3;c[h+4>>2]=i|1;c[h+i>>2]=i;if(l|0){e=c[78]|0;b=l>>>3;d=332+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[75]=i;c[78]=h}w=j+8|0;v=x;return w|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[74]|0;if(e){d=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;a=c[596+(j<<2)>>2]|0;a:do if(!a){f=0;a=0;q=61}else{f=0;h=k<<((j|0)==31?0:25-(j>>>1)|0);i=a;a=0;while(1){g=(c[i+4>>2]&-8)-k|0;if(g>>>0>>0)if(!g){d=0;f=i;a=i;q=65;break a}else{d=g;a=i}q=c[i+20>>2]|0;i=c[i+16+(h>>>31<<2)>>2]|0;f=(q|0)==0|(q|0)==(i|0)?f:q;if(!i){q=61;break}else h=h<<1}}while(0);if((q|0)==61){if((f|0)==0&(a|0)==0){a=2<>>12&16;a=a>>>i;h=a>>>5&8;a=a>>>h;j=a>>>2&4;a=a>>>j;m=a>>>1&2;a=a>>>m;f=a>>>1&1;f=c[596+((h|i|j|m|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;g=a}else q=65}if((q|0)==65)while(1){m=(c[f+4>>2]&-8)-k|0;g=m>>>0>>0;d=g?m:d;g=g?f:a;a=c[f+16>>2]|0;if(!a)a=c[f+20>>2]|0;if(!a){i=d;break}else{f=a;a=g}}if(((g|0)!=0?i>>>0<((c[75]|0)-k|0)>>>0:0)?(l=g+k|0,l>>>0>g>>>0):0){h=c[g+24>>2]|0;b=c[g+12>>2]|0;do if((b|0)==(g|0)){a=g+20|0;b=c[a>>2]|0;if(!b){a=g+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{w=c[g+8>>2]|0;c[w+12>>2]=b;c[b+8>>2]=w}while(0);do if(h){a=c[g+28>>2]|0;d=596+(a<<2)|0;if((g|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(g|0)?w:h+20|0)>>2]=b;if(!b)break}c[b+24>>2]=h;a=c[g+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[g+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(i>>>0<16){w=i+k|0;c[g+4>>2]=w|3;w=g+w+4|0;c[w>>2]=c[w>>2]|1}else{c[g+4>>2]=k|3;c[l+4>>2]=i|1;c[l+i>>2]=i;b=i>>>3;if(i>>>0<256){d=332+(b<<1<<2)|0;a=c[73]|0;b=1<>2]|0}c[b>>2]=l;c[a+12>>2]=l;c[l+8>>2]=a;c[l+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)d=31;else{u=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;d=14-(t|u|d)+(w<>>15)|0;d=i>>>(d+7|0)&1|d<<1}else d=0;b=596+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(i|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;w=c[u>>2]|0;c[w+12>>2]=l;c[u>>2]=l;c[l+8>>2]=w;c[l+12>>2]=b;c[l+24>>2]=0}while(0);w=g+8|0;v=x;return w|0}else m=k}else m=k}else m=-1;while(0);d=c[75]|0;if(d>>>0>=m>>>0){a=d-m|0;b=c[78]|0;if(a>>>0>15){w=b+m|0;c[78]=w;c[75]=a;c[w+4>>2]=a|1;c[b+d>>2]=a;c[b+4>>2]=m|3}else{c[75]=0;c[78]=0;c[b+4>>2]=d|3;w=b+d+4|0;c[w>>2]=c[w>>2]|1}w=b+8|0;v=x;return w|0}h=c[76]|0;if(h>>>0>m>>>0){t=h-m|0;c[76]=t;w=c[79]|0;u=w+m|0;c[79]=u;c[u+4>>2]=t|1;c[w+4>>2]=m|3;w=w+8|0;v=x;return w|0}if(!(c[191]|0)){c[193]=4096;c[192]=4096;c[194]=-1;c[195]=-1;c[196]=0;c[184]=0;c[191]=n&-16^1431655768;a=4096}else a=c[193]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){w=0;v=x;return w|0}a=c[183]|0;if(a|0?(l=c[181]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){w=0;v=x;return w|0}d:do if(!(c[184]&4)){d=c[79]|0;e:do if(d){f=740;while(1){n=c[f>>2]|0;if(n>>>0<=d>>>0?(n+(c[f+4>>2]|0)|0)>>>0>d>>>0:0)break;a=c[f+8>>2]|0;if(!a){q=128;break e}else f=a}b=g-h&e;if(b>>>0<2147483647){a=R(b)|0;if((a|0)==((c[f>>2]|0)+(c[f+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=a;g=b;q=145;break d}}else{e=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){d=R(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[192]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[181]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=c[183]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=R(b)|0;if((a|0)==(d|0)){h=d;g=b;q=145;break d}else{e=a;q=136}}else b=0}while(0);do if((q|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=e;g=b;q=145;break d}a=c[193]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=e;g=b;q=145;break d}if((R(a)|0)==(-1|0)){R(d)|0;b=0;break}else{h=e;g=a+b|0;q=145;break d}}while(0);c[184]=c[184]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(r=R(k)|0,p=R(0)|0,t=p-r|0,s=t>>>0>(m+40|0)>>>0,!((r|0)==(-1|0)|s^1|r>>>0

>>0&((r|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=r;g=s?t:b;q=145}if((q|0)==145){b=(c[181]|0)+g|0;c[181]=b;if(b>>>0>(c[182]|0)>>>0)c[182]=b;j=c[79]|0;f:do if(j){e=740;while(1){b=c[e>>2]|0;a=c[e+4>>2]|0;if((h|0)==(b+a|0)){q=154;break}d=c[e+8>>2]|0;if(!d)break;else e=d}if(((q|0)==154?(u=e+4|0,(c[e+12>>2]&8|0)==0):0)?h>>>0>j>>>0&b>>>0<=j>>>0:0){c[u>>2]=a+g;w=(c[76]|0)+g|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=w-t|0;c[79]=u;c[76]=t;c[u+4>>2]=t|1;c[j+w+4>>2]=40;c[80]=c[195];break}if(h>>>0<(c[77]|0)>>>0)c[77]=h;d=h+g|0;a=740;while(1){if((c[a>>2]|0)==(d|0)){q=162;break}b=c[a+8>>2]|0;if(!b)break;else a=b}if((q|0)==162?(c[a+12>>2]&8|0)==0:0){c[a>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+g;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){w=(c[76]|0)+i|0;c[76]=w;c[79]=k;c[k+4>>2]=w|1}else{if((c[78]|0)==(b|0)){w=(c[75]|0)+i|0;c[75]=w;c[78]=k;c[k+4>>2]=w|1;c[k+w>>2]=w;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[73]=c[73]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{w=c[b+8>>2]|0;c[w+12>>2]=a;c[a+8>>2]=w}while(0);if(!g)break;d=c[b+28>>2]|0;e=596+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){w=g+16|0;c[((c[w>>2]|0)==(b|0)?w:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[74]=c[74]&~(1<>2]=g;e=b+16|0;d=c[e>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}d=c[e+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=332+(b<<1<<2)|0;a=c[73]|0;b=1<>2]|0}c[b>>2]=k;c[a+12>>2]=k;c[k+8>>2]=a;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;e=14-(t|u|e)+(w<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);a=596+(e<<2)|0;c[k+28>>2]=e;b=k+16|0;c[b+4>>2]=0;c[b>>2]=0;b=c[74]|0;d=1<>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[a>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;w=c[u>>2]|0;c[w+12>>2]=k;c[u>>2]=k;c[k+8>>2]=w;c[k+12>>2]=b;c[k+24>>2]=0}while(0);w=l+8|0;v=x;return w|0}a=740;while(1){b=c[a>>2]|0;if(b>>>0<=j>>>0?(w=b+(c[a+4>>2]|0)|0,w>>>0>j>>>0):0)break;a=c[a+8>>2]|0}f=w+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=d-t|0;c[79]=u;c[76]=t;c[u+4>>2]=t|1;c[h+d+4>>2]=40;c[80]=c[195];d=a+4|0;c[d>>2]=27;c[b>>2]=c[185];c[b+4>>2]=c[186];c[b+8>>2]=c[187];c[b+12>>2]=c[188];c[185]=h;c[186]=g;c[188]=0;c[187]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=332+(b<<1<<2)|0;a=c[73]|0;b=1<>2]|0}c[b>>2]=j;c[a+12>>2]=j;c[j+8>>2]=a;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{u=(b+1048320|0)>>>16&8;w=b<>>16&4;w=w<>>16&2;e=14-(t|u|e)+(w<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=596+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[74]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;w=c[u>>2]|0;c[w+12>>2]=j;c[u>>2]=j;c[j+8>>2]=w;c[j+12>>2]=b;c[j+24>>2]=0}}else{w=c[77]|0;if((w|0)==0|h>>>0>>0)c[77]=h;c[185]=h;c[186]=g;c[188]=0;c[82]=c[191];c[81]=-1;c[86]=332;c[85]=332;c[88]=340;c[87]=340;c[90]=348;c[89]=348;c[92]=356;c[91]=356;c[94]=364;c[93]=364;c[96]=372;c[95]=372;c[98]=380;c[97]=380;c[100]=388;c[99]=388;c[102]=396;c[101]=396;c[104]=404;c[103]=404;c[106]=412;c[105]=412;c[108]=420;c[107]=420;c[110]=428;c[109]=428;c[112]=436;c[111]=436;c[114]=444;c[113]=444;c[116]=452;c[115]=452;c[118]=460;c[117]=460;c[120]=468;c[119]=468;c[122]=476;c[121]=476;c[124]=484;c[123]=484;c[126]=492;c[125]=492;c[128]=500;c[127]=500;c[130]=508;c[129]=508;c[132]=516;c[131]=516;c[134]=524;c[133]=524;c[136]=532;c[135]=532;c[138]=540;c[137]=540;c[140]=548;c[139]=548;c[142]=556;c[141]=556;c[144]=564;c[143]=564;c[146]=572;c[145]=572;c[148]=580;c[147]=580;w=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=w-t|0;c[79]=u;c[76]=t;c[u+4>>2]=t|1;c[h+w+4>>2]=40;c[80]=c[195]}while(0);b=c[76]|0;if(b>>>0>m>>>0){t=b-m|0;c[76]=t;w=c[79]|0;u=w+m|0;c[79]=u;c[u+4>>2]=t|1;c[w+4>>2]=m|3;w=w+8|0;v=x;return w|0}}c[(Ea()|0)>>2]=48;w=0;v=x;return w|0}function z(){var d=0,f=0,g=0,h=0,i=0,j=0,k=0;k=v;v=v+10240|0;a[796]=1;a[795]=0;b[395]=0;b[396]=0;c[67]=c[2];a[797]=0;c[66]=0;a[794]=0;c[68]=k+2048;c[69]=k;a[798]=0;d=(c[3]|0)+-2|0;c[70]=d;f=d+(c[64]<<1)|0;c[71]=f;a:while(1){g=d+2|0;c[70]=g;if(d>>>0>=f>>>0){j=18;break}b:do switch(b[g>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((b[396]|0)==0?fa(g)|0:0)?(Q(d+4|0,16,10)|0)==0:0)?(B(),(a[796]|0)==0):0){j=9;break a}else j=17;break}case 105:{if(fa(g)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=17}else j=17;break}case 59:{j=17;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break b}case 42:{P(1);break b}default:{j=16;break a}}default:{j=16;break a}}while(0);if((j|0)==17){j=0;c[67]=c[70]}d=c[70]|0;f=c[71]|0}if((j|0)==9){d=c[70]|0;c[67]=d;j=19}else if((j|0)==16){a[796]=0;c[70]=d;j=19}else if((j|0)==18)if(!(a[794]|0)){d=g;j=19}else d=0;do if((j|0)==19){c:while(1){f=d+2|0;c[70]=f;i=f;if(d>>>0>=(c[71]|0)>>>0){j=82;break}d:do switch(b[f>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((b[396]|0)==0?fa(f)|0:0)?(Q(d+4|0,16,10)|0)==0:0){B();j=81}else j=81;break}case 105:{if(fa(f)|0?(Q(d+4|0,26,10)|0)==0:0){C();j=81}else j=81;break}case 99:{if((fa(f)|0?(Q(d+4|0,36,8)|0)==0:0)?pa(b[d+12>>1]|0)|0:0){a[798]=1;j=81}else j=81;break}case 40:{i=c[68]|0;g=b[396]|0;j=g&65535;c[i+(j<<3)>>2]=1;h=c[67]|0;b[396]=g+1<<16>>16;c[i+(j<<3)+4>>2]=h;j=81;break}case 41:{f=b[396]|0;if(!(f<<16>>16)){j=36;break c}j=f+-1<<16>>16;b[396]=j;h=b[395]|0;f=h&65535;if(h<<16>>16!=0?(c[(c[68]|0)+((j&65535)<<3)>>2]|0)==5:0){f=c[(c[69]|0)+(f+-1<<2)>>2]|0;g=f+4|0;if(!(c[g>>2]|0))c[g>>2]=i;c[f+12>>2]=d+4;b[395]=h+-1<<16>>16;j=81}else j=81;break}case 123:{j=c[67]|0;i=c[61]|0;d=j;do if((b[j>>1]|0)==41&(i|0)!=0?(c[i+4>>2]|0)==(j|0):0){f=c[62]|0;c[61]=f;if(!f){c[57]=0;break}else{c[f+28>>2]=0;break}}while(0);i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)>>2]=(a[798]|0)==0?2:6;b[396]=h+1<<16>>16;c[i+(j<<3)+4>>2]=d;a[798]=0;j=81;break}case 125:{d=b[396]|0;if(!(d<<16>>16)){j=49;break c}i=c[68]|0;j=d+-1<<16>>16;b[396]=j;if((c[i+((j&65535)<<3)>>2]|0)==4){H();j=81}else j=81;break}case 39:{J(39);j=81;break}case 34:{J(34);j=81;break}case 47:switch(b[d+4>>1]|0){case 47:{$();break d}case 42:{P(1);break d}default:{d=c[67]|0;h=b[d>>1]|0;e:do if(!(T(h)|0)){switch(h<<16>>16){case 41:if(ca(c[(c[68]|0)+(e[396]<<3)+4>>2]|0)|0){j=69;break e}else{j=66;break e}case 125:break;default:{j=66;break e}}f=c[68]|0;g=e[396]|0;if(!(O(c[f+(g<<3)+4>>2]|0)|0)?(c[f+(g<<3)>>2]|0)!=6:0)j=66;else j=69}else switch(h<<16>>16){case 46:if(((b[d+-2>>1]|0)+-48&65535)<10){j=66;break e}else{j=69;break e}case 43:if((b[d+-2>>1]|0)==43){j=66;break e}else{j=69;break e}case 45:if((b[d+-2>>1]|0)==45){j=66;break e}else{j=69;break e}default:{j=69;break e}}while(0);f:do if((j|0)==66){j=0;if(!(E(d)|0)){switch(h<<16>>16){case 0:{j=69;break f}case 47:{if(a[797]|0){j=69;break f}break}default:{}}g=c[3]|0;f=h;do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d;f=b[d>>1]|0}while(!(_(f)|0));if(da(f)|0){do{if(d>>>0<=g>>>0)break;d=d+-2|0;c[67]=d}while(da(b[d>>1]|0)|0);if(Y(d)|0){N();a[797]=0;j=81;break d}else d=1}else d=1}else j=69}while(0);if((j|0)==69){N();d=0}a[797]=d;j=81;break d}}case 96:{i=c[68]|0;h=b[396]|0;j=h&65535;c[i+(j<<3)+4>>2]=c[67];b[396]=h+1<<16>>16;c[i+(j<<3)>>2]=3;H();j=81;break}default:j=81}while(0);if((j|0)==81){j=0;c[67]=c[70]}d=c[70]|0}if((j|0)==36){oa();d=0;break}else if((j|0)==49){oa();d=0;break}else if((j|0)==82){d=(a[794]|0)==0?(b[395]|b[396])<<16>>16==0:0;break}}while(0);v=k;return d|0}function A(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;d=a+-8|0;e=c[77]|0;a=c[a+-4>>2]|0;b=a&-8;k=d+b|0;do if(!(a&1)){f=c[d>>2]|0;if(!(a&3))return;g=d+(0-f)|0;h=f+b|0;if(g>>>0>>0)return;if((c[78]|0)==(g|0)){b=k+4|0;a=c[b>>2]|0;if((a&3|0)!=3){i=g;j=g;b=h;break}c[75]=h;c[b>>2]=a&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}d=f>>>3;if(f>>>0<256){a=c[g+8>>2]|0;b=c[g+12>>2]|0;if((b|0)==(a|0)){c[73]=c[73]&~(1<>2]=b;c[b+8>>2]=a;i=g;j=g;b=h;break}}f=c[g+24>>2]|0;a=c[g+12>>2]|0;do if((a|0)==(g|0)){d=g+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[g+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(f){a=c[g+28>>2]|0;b=596+(a<<2)|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;if(!d){c[74]=c[74]&~(1<>2]|0)==(g|0)?j:f+20|0)>>2]=d;if(!d){i=g;j=g;b=h;break}}c[d+24>>2]=f;b=g+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a){c[d+20>>2]=a;c[a+24>>2]=d;i=g;j=g;b=h}else{i=g;j=g;b=h}}else{i=g;j=g;b=h}}else{i=d;j=d}while(0);if(i>>>0>=k>>>0)return;a=k+4|0;d=c[a>>2]|0;if(!(d&1))return;if(!(d&2)){if((c[79]|0)==(k|0)){k=(c[76]|0)+b|0;c[76]=k;c[79]=j;c[j+4>>2]=k|1;if((j|0)!=(c[78]|0))return;c[78]=0;c[75]=0;return}if((c[78]|0)==(k|0)){k=(c[75]|0)+b|0;c[75]=k;c[78]=i;c[j+4>>2]=k|1;c[i+k>>2]=k;return}f=(d&-8)+b|0;e=d>>>3;do if(d>>>0<256){b=c[k+8>>2]|0;a=c[k+12>>2]|0;if((a|0)==(b|0)){c[73]=c[73]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[k+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[k+28>>2]|0;b=596+(a<<2)|0;if((c[b>>2]|0)==(k|0)){c[b>>2]=d;if(!d){c[74]=c[74]&~(1<>2]|0)==(k|0)?h:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=k+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[j+4>>2]=f|1;c[i+f>>2]=f;if((j|0)==(c[78]|0)){c[75]=f;return}}else{c[a>>2]=d&-2;c[j+4>>2]=b|1;c[i+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=332+(a<<1<<2)|0;b=c[73]|0;a=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{i=(a+1048320|0)>>>16&8;k=a<>>16&4;k=k<>>16&2;e=14-(h|i|e)+(k<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=596+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[74]|0;d=1<>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j}else{a=c[b>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break a}while(0);i=a+8|0;k=c[i>>2]|0;c[k+12>>2]=j;c[i>>2]=j;c[j+8>>2]=k;c[j+12>>2]=a;c[j+24>>2]=0}while(0);k=(c[81]|0)+-1|0;c[81]=k;if(k|0)return;a=748;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[81]=-1;return}function B(){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;k=c[70]|0;l=c[63]|0;q=k+12|0;c[70]=q;f=I(1)|0;d=c[70]|0;if(!((d|0)==(q|0)?!(S(f)|0):0))p=3;a:do if((p|0)==3){b:do switch(f<<16>>16){case 123:{c[70]=d+2;d=I(1)|0;e=c[70]|0;while(1){if(qa(d)|0){J(d);d=(c[70]|0)+2|0;c[70]=d}else{aa(d)|0;d=c[70]|0}I(1)|0;d=K(e,d)|0;if(d<<16>>16==44){c[70]=(c[70]|0)+2;d=I(1)|0}if(d<<16>>16==125){p=15;break}q=e;e=c[70]|0;if((e|0)==(q|0)){p=12;break}if(e>>>0>(c[71]|0)>>>0){p=14;break}}if((p|0)==12){oa();break a}else if((p|0)==14){oa();break a}else if((p|0)==15){a[795]=1;c[70]=(c[70]|0)+2;break b}break}case 42:{c[70]=d+2;I(1)|0;q=c[70]|0;K(q,q)|0;break}default:{a[796]=0;switch(f<<16>>16){case 100:{k=d+14|0;c[70]=k;switch((I(1)|0)<<16>>16){case 97:{e=c[70]|0;if((Q(e+2|0,56,8)|0)==0?(h=e+10|0,da(b[h>>1]|0)|0):0){c[70]=h;I(0)|0;p=22}break}case 102:{p=22;break}case 99:{e=c[70]|0;if(((Q(e+2|0,36,8)|0)==0?(g=e+10|0,q=b[g>>1]|0,pa(q)|0|q<<16>>16==123):0)?(c[70]=g,i=I(1)|0,i<<16>>16!=123):0){o=i;p=31}break}default:{}}c:do if((p|0)==22?(j=c[70]|0,(Q(j+2|0,64,14)|0)==0):0){f=j+16|0;e=b[f>>1]|0;if(!(pa(e)|0))switch(e<<16>>16){case 40:case 42:break;default:break c}c[70]=f;e=I(1)|0;if(e<<16>>16==42){c[70]=(c[70]|0)+2;e=I(1)|0}if(e<<16>>16!=40){o=e;p=31}}while(0);if((p|0)==31?(m=c[70]|0,aa(o)|0,n=c[70]|0,n>>>0>m>>>0):0){W(d,k,m,n);c[70]=(c[70]|0)+-2;break a}W(d,k,0,0);c[70]=d+12;break a}case 97:{c[70]=d+10;I(0)|0;d=c[70]|0;p=35;break}case 102:{p=35;break}case 99:{if((Q(d+2|0,36,8)|0)==0?(e=d+10|0,_(b[e>>1]|0)|0):0){c[70]=e;q=I(1)|0;p=c[70]|0;aa(q)|0;q=c[70]|0;W(p,q,p,q);c[70]=(c[70]|0)+-2;break a}d=d+4|0;c[70]=d;break}case 108:case 118:break;default:break a}if((p|0)==35){c[70]=d+16;d=I(1)|0;if(d<<16>>16==42){c[70]=(c[70]|0)+2;d=I(1)|0}p=c[70]|0;aa(d)|0;q=c[70]|0;W(p,q,p,q);c[70]=(c[70]|0)+-2;break a}c[70]=d+6;a[796]=0;f=I(1)|0;d=c[70]|0;f=(aa(f)|0|32)<<16>>16==123;g=c[70]|0;if(f){c[70]=g+2;q=I(1)|0;d=c[70]|0;aa(q)|0}d:while(1){e=c[70]|0;if((e|0)==(d|0))break;W(d,e,d,e);e=I(1)|0;if(f)switch(e<<16>>16){case 93:case 125:break a;default:{}}d=c[70]|0;if(e<<16>>16!=44){p=51;break}c[70]=d+2;e=I(1)|0;d=c[70]|0;switch(e<<16>>16){case 91:case 123:{p=51;break d}default:{}}aa(e)|0}if((p|0)==51)c[70]=d+-2;if(!f)break a;c[70]=g+-2;break a}}while(0);q=(I(1)|0)<<16>>16==102;d=c[70]|0;if(q?(Q(d+2|0,50,6)|0)==0:0){c[70]=d+8;D(k,I(1)|0);d=(l|0)==0?232:l+16|0;while(1){d=c[d>>2]|0;if(!d)break a;c[d+12>>2]=0;c[d+8>>2]=0;d=d+16|0}}c[70]=d+-2}while(0);return}function C(){var d=0,e=0,f=0,g=0,h=0,i=0;h=c[70]|0;d=h+12|0;c[70]=d;a:do switch((I(1)|0)<<16>>16){case 40:{e=c[68]|0;i=b[396]|0;f=i&65535;c[e+(f<<3)>>2]=5;d=c[70]|0;b[396]=i+1<<16>>16;c[e+(f<<3)+4>>2]=d;if((b[c[67]>>1]|0)!=46){c[70]=d+2;i=I(1)|0;L(h,c[70]|0,0,d);e=c[61]|0;f=c[69]|0;h=b[395]|0;b[395]=h+1<<16>>16;c[f+((h&65535)<<2)>>2]=e;switch(i<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{c[70]=(c[70]|0)+-2;break a}}d=(c[70]|0)+2|0;c[70]=d;switch((I(1)|0)<<16>>16){case 44:{c[70]=(c[70]|0)+2;I(1)|0;h=c[61]|0;c[h+4>>2]=d;i=c[70]|0;c[h+16>>2]=i;a[h+24>>0]=1;c[70]=i+-2;break a}case 41:{b[396]=(b[396]|0)+-1<<16>>16;i=c[61]|0;c[i+4>>2]=d;c[i+12>>2]=(c[70]|0)+2;a[i+24>>0]=1;b[395]=(b[395]|0)+-1<<16>>16;break a}default:{c[70]=(c[70]|0)+-2;break a}}}break}case 46:{c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==109?(e=c[70]|0,(Q(e+2|0,44,6)|0)==0):0){d=c[67]|0;if(!(ea(d)|0)?(b[d>>1]|0)==46:0)break a;L(h,h,e+8|0,2)}break}case 42:case 39:case 34:{g=18;break}case 123:{d=c[70]|0;if(b[396]|0){c[70]=d+-2;break a}while(1){if(d>>>0>=(c[71]|0)>>>0)break;d=I(1)|0;if(!(qa(d)|0)){if(d<<16>>16==125){g=33;break}}else J(d);d=(c[70]|0)+2|0;c[70]=d}if((g|0)==33)c[70]=(c[70]|0)+2;i=(I(1)|0)<<16>>16==102;d=c[70]|0;if(i?Q(d+2|0,50,6)|0:0){oa();break a}c[70]=d+8;d=I(1)|0;if(qa(d)|0){D(h,d);break a}else{oa();break a}}default:if((c[70]|0)==(d|0))c[70]=h+10;else g=18}while(0);do if((g|0)==18){if(b[396]|0){c[70]=(c[70]|0)+-2;break}d=c[71]|0;e=c[70]|0;while(1){if(e>>>0>=d>>>0){g=25;break}f=b[e>>1]|0;if(qa(f)|0){g=23;break}i=e+2|0;c[70]=i;e=i}if((g|0)==23){D(h,f);break}else if((g|0)==25){oa();break}}while(0);return}function D(a,d){a=a|0;d=d|0;var e=0,f=0;e=(c[70]|0)+2|0;switch(d<<16>>16){case 39:{J(39);f=5;break}case 34:{J(34);f=5;break}default:oa()}do if((f|0)==5){L(a,e,c[70]|0,1);c[70]=(c[70]|0)+2;d=I(0)|0;a=d<<16>>16==97;if(a){e=c[70]|0;if(Q(e+2|0,78,10)|0)f=11}else{e=c[70]|0;if(!(((d<<16>>16==119?(b[e+2>>1]|0)==105:0)?(b[e+4>>1]|0)==116:0)?(b[e+6>>1]|0)==104:0))f=11}if((f|0)==11){c[70]=e+-2;break}c[70]=e+((a?6:4)<<1);if((I(1)|0)<<16>>16!=123){c[70]=e;break}a=c[70]|0;d=a;a:while(1){c[70]=d+2;d=I(1)|0;switch(d<<16>>16){case 39:{J(39);c[70]=(c[70]|0)+2;d=I(1)|0;break}case 34:{J(34);c[70]=(c[70]|0)+2;d=I(1)|0;break}default:d=aa(d)|0}if(d<<16>>16!=58){f=20;break}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 39:{J(39);break}case 34:{J(34);break}default:{f=24;break a}}c[70]=(c[70]|0)+2;switch((I(1)|0)<<16>>16){case 125:{f=29;break a}case 44:break;default:{f=28;break a}}c[70]=(c[70]|0)+2;if((I(1)|0)<<16>>16==125){f=29;break}d=c[70]|0}if((f|0)==20){c[70]=e;break}else if((f|0)==24){c[70]=e;break}else if((f|0)==28){c[70]=e;break}else if((f|0)==29){f=c[61]|0;c[f+16>>2]=a;c[f+12>>2]=(c[70]|0)+2;break}}while(0);return}function E(a){a=a|0;a:do switch(b[a>>1]|0){case 100:switch(b[a+-2>>1]|0){case 105:{a=X(a+-4|0,88,2)|0;break a}case 108:{a=X(a+-4|0,92,3)|0;break a}default:{a=0;break a}}case 101:switch(b[a+-2>>1]|0){case 115:switch(b[a+-4>>1]|0){case 108:{a=Z(a+-6|0,101)|0;break a}case 97:{a=Z(a+-6|0,99)|0;break a}default:{a=0;break a}}case 116:{a=X(a+-4|0,98,4)|0;break a}case 117:{a=X(a+-4|0,106,6)|0;break a}default:{a=0;break a}}case 102:{if((b[a+-2>>1]|0)==111?(b[a+-4>>1]|0)==101:0)switch(b[a+-6>>1]|0){case 99:{a=X(a+-8|0,118,6)|0;break a}case 112:{a=X(a+-8|0,130,2)|0;break a}default:{a=0;break a}}else a=0;break}case 107:{a=X(a+-2|0,134,4)|0;break}case 110:{a=a+-2|0;if(Z(a,105)|0)a=1;else a=X(a,142,5)|0;break}case 111:{a=Z(a+-2|0,100)|0;break}case 114:{a=X(a+-2|0,152,7)|0;break}case 116:{a=X(a+-2|0,166,4)|0;break}case 119:switch(b[a+-2>>1]|0){case 101:{a=Z(a+-4|0,110)|0;break a}case 111:{a=X(a+-4|0,174,3)|0;break a}default:{a=0;break a}}default:a=0}while(0);return a|0}function F(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=512){t(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function G(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function H(){var a=0,d=0,e=0,f=0;d=c[71]|0;e=c[70]|0;a:while(1){a=e+2|0;if(e>>>0>=d>>>0){d=10;break}switch(b[a>>1]|0){case 96:{d=7;break a}case 36:{if((b[e+4>>1]|0)==123){d=6;break a}break}case 92:{a=e+4|0;break}default:{}}e=a}if((d|0)==6){a=e+4|0;c[70]=a;d=c[68]|0;f=b[396]|0;e=f&65535;c[d+(e<<3)>>2]=4;b[396]=f+1<<16>>16;c[d+(e<<3)+4>>2]=a}else if((d|0)==7){c[70]=a;e=c[68]|0;f=(b[396]|0)+-1<<16>>16;b[396]=f;if((c[e+((f&65535)<<3)>>2]|0)!=3)oa()}else if((d|0)==10){c[70]=a;oa()}return}function I(a){a=a|0;var d=0,e=0,f=0;e=c[70]|0;a:do{d=b[e>>1]|0;b:do if(d<<16>>16!=47)if(a)if(pa(d)|0)break;else break a;else if(da(d)|0)break;else break a;else switch(b[e+2>>1]|0){case 47:{$();break b}case 42:{P(a);break b}default:{d=47;break a}}while(0);f=c[70]|0;e=f+2|0;c[70]=e}while(f>>>0<(c[71]|0)>>>0);return d|0}function J(a){a=a|0;var d=0,e=0,f=0,g=0;g=c[71]|0;d=c[70]|0;while(1){f=d+2|0;if(d>>>0>=g>>>0){d=9;break}e=b[f>>1]|0;if(e<<16>>16==a<<16>>16){d=10;break}if(e<<16>>16==92){e=d+4|0;if((b[e>>1]|0)==13){d=d+6|0;d=(b[d>>1]|0)==10?d:e}else d=e}else if(ta(e)|0){d=9;break}else d=f}if((d|0)==9){c[70]=f;oa()}else if((d|0)==10)c[70]=f;return}function K(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[70]|0;f=b[e>>1]|0;h=(a|0)==(d|0);g=h?0:a;h=h?0:d;if(f<<16>>16==97){c[70]=e+4;e=I(1)|0;a=c[70]|0;if(qa(e)|0){J(e);d=(c[70]|0)+2|0;c[70]=d}else{aa(e)|0;d=c[70]|0}f=I(1)|0;e=c[70]|0}if((e|0)!=(a|0))W(a,d,g,h);return f|0}function L(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[65]|0;c[65]=g+32;h=c[61]|0;c[((h|0)==0?228:h+28|0)>>2]=g;c[62]=h;c[61]=g;c[g+8>>2]=b;if(2==(f|0))b=e;else b=1==(f|0)?e+2|0:0;c[g+12>>2]=b;c[g>>2]=d;c[g+4>>2]=e;c[g+16>>2]=0;c[g+20>>2]=f;a[g+24>>0]=1==(f|0)&1;c[g+28>>2]=0;a[795]=1;return}function M(){var a=0,d=0,e=0;e=c[71]|0;d=c[70]|0;a:while(1){a=d+2|0;if(d>>>0>=e>>>0){d=6;break}switch(b[a>>1]|0){case 13:case 10:{d=6;break a}case 93:{d=7;break a}case 92:{a=d+4|0;break}default:{}}d=a}if((d|0)==6){c[70]=a;oa();a=0}else if((d|0)==7){c[70]=a;a=93}return a|0}function N(){var a=0,d=0,e=0;a:while(1){a=c[70]|0;d=a+2|0;c[70]=d;if(a>>>0>=(c[71]|0)>>>0){e=7;break}switch(b[d>>1]|0){case 13:case 10:{e=7;break a}case 47:break a;case 91:{M()|0;break}case 92:{c[70]=a+4;break}default:{}}}if((e|0)==7)oa();return}function O(a){a=a|0;switch(b[a>>1]|0){case 62:{a=(b[a+-2>>1]|0)==61;break}case 41:case 59:{a=1;break}case 104:{a=X(a+-2|0,200,4)|0;break}case 121:{a=X(a+-2|0,208,6)|0;break}case 101:{a=X(a+-2|0,220,3)|0;break}default:a=0}return a|0}function P(a){a=a|0;var d=0,e=0,f=0,g=0,h=0;g=(c[70]|0)+2|0;c[70]=g;e=c[71]|0;while(1){d=g+2|0;if(g>>>0>=e>>>0)break;f=b[d>>1]|0;if(!a?ta(f)|0:0)break;if(f<<16>>16==42?(b[g+4>>1]|0)==47:0){h=8;break}g=d}if((h|0)==8){c[70]=d;d=g+4|0}c[70]=d;return}function Q(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function R(a){a=a|0;var b=0,d=0,e=0;e=a+3&-4;d=Ca()|0;a=c[d>>2]|0;b=a+e|0;do if((e|0)<1|b>>>0>a>>>0){if(b>>>0>(s()|0)>>>0?(u(b|0)|0)==0:0)break;c[d>>2]=b;e=a;return e|0}while(0);c[(Ea()|0)>>2]=48;e=-1;return e|0}function S(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:{a=1;break}default:if((a&-8)<<16>>16==40|(a+-58&65535)<6)a=1;else{switch(a<<16>>16){case 91:case 93:case 94:{a=1;break a}default:{}}a=(a+-123&65535)<4}}while(0);return a|0}function T(a){a=a|0;a:do switch(a<<16>>16){case 38:case 37:case 33:break;default:if(!((a+-58&65535)<6|(a+-40&65535)<7&a<<16>>16!=41)){switch(a<<16>>16){case 91:case 94:break a;default:{}}return a<<16>>16!=125&(a+-123&65535)<4|0}}while(0);return 1}function U(a){a=a|0;var c=0;c=b[a>>1]|0;a:do if((c+-9&65535)>=5){switch(c<<16>>16){case 160:case 32:{c=1;break a}default:{}}if(S(c)|0)return c<<16>>16!=46|(ea(a)|0)|0;else c=0}else c=1;while(0);return c|0}function V(a){a=a|0;var d=0,e=0,f=0,g=0;e=v;v=v+16|0;f=e;c[f>>2]=0;c[64]=a;d=c[3]|0;g=d+(a<<1)|0;a=g+2|0;b[g>>1]=0;c[f>>2]=a;c[65]=a;c[57]=0;c[61]=0;c[59]=0;c[58]=0;c[63]=0;c[60]=0;v=e;return d|0}function W(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=c[65]|0;c[65]=g+20;h=c[63]|0;c[((h|0)==0?232:h+16|0)>>2]=g;c[63]=g;c[g>>2]=b;c[g+4>>2]=d;c[g+8>>2]=e;c[g+12>>2]=f;c[g+16>>2]=0;a[795]=1;return}function X(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+(0-d<<1)|0;f=e+2|0;a=c[3]|0;if(f>>>0>=a>>>0?(Q(f,b,d<<1)|0)==0:0)if((f|0)==(a|0))a=1;else a=U(e)|0;else a=0;return a|0}function Y(a){a=a|0;switch(b[a>>1]|0){case 107:{a=X(a+-2|0,134,4)|0;break}case 101:{if((b[a+-2>>1]|0)==117)a=X(a+-4|0,106,6)|0;else a=0;break}default:a=0}return a|0}function Z(a,d){a=a|0;d=d|0;var e=0;e=c[3]|0;if(e>>>0<=a>>>0?(b[a>>1]|0)==d<<16>>16:0)if((e|0)==(a|0))e=1;else e=_(b[a+-2>>1]|0)|0;else e=0;return e|0}function _(a){a=a|0;a:do if((a+-9&65535)<5)a=1;else{switch(a<<16>>16){case 32:case 160:{a=1;break a}default:{}}a=a<<16>>16!=46&(S(a)|0)}while(0);return a|0}function $(){var a=0,d=0,e=0;a=c[71]|0;e=c[70]|0;a:while(1){d=e+2|0;if(e>>>0>=a>>>0)break;switch(b[d>>1]|0){case 13:case 10:break a;default:e=d}}c[70]=d;return}function aa(a){a=a|0;while(1){if(pa(a)|0)break;if(S(a)|0)break;a=(c[70]|0)+2|0;c[70]=a;a=b[a>>1]|0;if(!(a<<16>>16)){a=0;break}}return a|0}function ba(){var a=0;a=c[(c[59]|0)+20>>2]|0;switch(a|0){case 1:{a=-1;break}case 2:{a=-2;break}default:a=a-(c[3]|0)>>1}return a|0}function ca(a){a=a|0;if(!(X(a,180,5)|0)?!(X(a,190,3)|0):0)a=X(a,196,2)|0;else a=1;return a|0}function da(a){a=a|0;switch(a<<16>>16){case 160:case 32:case 12:case 11:case 9:{a=1;break}default:a=0}return a|0}function ea(a){a=a|0;if((b[a>>1]|0)==46?(b[a+-2>>1]|0)==46:0)a=(b[a+-4>>1]|0)==46;else a=0;return a|0}function fa(a){a=a|0;if((c[3]|0)==(a|0))a=1;else a=U(a+-2|0)|0;return a|0}function ga(){var a=0;a=c[(c[60]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ha(){var a=0;a=c[(c[59]|0)+12>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ia(){var a=0;a=c[(c[60]|0)+8>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ja(){var a=0;a=c[(c[59]|0)+16>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function ka(){var a=0;a=c[(c[59]|0)+4>>2]|0;if(!a)a=-1;else a=a-(c[3]|0)>>1;return a|0}function la(){var a=0;a=c[59]|0;a=c[((a|0)==0?228:a+28|0)>>2]|0;c[59]=a;return (a|0)!=0|0}function ma(){var a=0;a=c[60]|0;a=c[((a|0)==0?232:a+16|0)>>2]|0;c[60]=a;return (a|0)!=0|0}function na(a){a=a|0;var b=0;b=v;v=v+a|0;v=v+15&-16;return b|0}function oa(){a[794]=1;c[66]=(c[70]|0)-(c[3]|0)>>1;c[70]=(c[71]|0)+2;return}function pa(a){a=a|0;return (a|128)<<16>>16==160|(a+-9&65535)<5|0}function qa(a){a=a|0;return a<<16>>16==39|a<<16>>16==34|0}function ra(){return (c[(c[59]|0)+8>>2]|0)-(c[3]|0)>>1|0}function sa(){return (c[(c[60]|0)+4>>2]|0)-(c[3]|0)>>1|0}function ta(a){a=a|0;return a<<16>>16==13|a<<16>>16==10|0}function ua(){return (c[c[59]>>2]|0)-(c[3]|0)>>1|0}function va(){return (c[c[60]>>2]|0)-(c[3]|0)>>1|0}function wa(){return d[(c[59]|0)+24>>0]|0|0}function xa(a){a=a|0;c[3]=a;return}function ya(){c[3]=g}function za(a){a=a|0;v=a}function Aa(){return (a[795]|0)!=0|0}function Ba(){return (a[796]|0)!=0|0}function Ca(){return 816}function Da(){return v|0}function Ea(){return 288}function Fa(){return c[66]|0} // EMSCRIPTEN_END_FUNCS -return{___errno_location:Da,__apply_relocations:ya,_ai:ja,_e:Ea,_ee:sa,_ele:ga,_els:ia,_emscripten_get_sbrk_ptr:Ba,_es:va,_f:Aa,_free:A,_id:ba,_ie:ka,_ip:wa,_is:ua,_malloc:y,_memcpy:F,_memset:G,_parse:z,_re:ma,_ri:la,_sa:V,_se:ha,_setSource:xa,_ss:ra,stackAlloc:na,stackRestore:za,stackSave:Ca}}) +return{___errno_location:Ea,__apply_relocations:ya,_ai:ja,_e:Fa,_ee:sa,_ele:ga,_els:ia,_emscripten_get_sbrk_ptr:Ca,_es:va,_f:Ba,_free:A,_id:ba,_ie:ka,_ip:wa,_is:ua,_malloc:y,_memcpy:F,_memset:G,_ms:Aa,_parse:z,_re:ma,_ri:la,_sa:V,_se:ha,_setSource:xa,_ss:ra,stackAlloc:na,stackRestore:za,stackSave:Da}}) diff --git a/lib/lexer.wasm b/lib/lexer.wasm index f8ae7244e781f022e6974c895907192f4f79c53b..1b16ef078092dc893d3b4ec58999f8e8aa643a39 100755 GIT binary patch literal 8374 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 P7>7TD|1NOHUB>(eA`v2L diff --git a/src/lexer.asm.js b/src/lexer.asm.js index 88ab789..9e55009 100644 --- a/src/lexer.asm.js +++ b/src/lexer.asm.js @@ -61,12 +61,12 @@ export function parse (_source, _name = '@') { }); } - return [imports, exports, !!asm.f()]; + return [imports, exports, !!asm.f(), !!asm.ms()]; } /* * Ported from Acorn - * + * * MIT License * Copyright (C) 2012-2020 by various contributors (see AUTHORS) diff --git a/src/lexer.c b/src/lexer.c index febba1b..45b8b7a 100755 --- a/src/lexer.c +++ b/src/lexer.c @@ -38,6 +38,7 @@ bool parse () { Import* dynamicImportStack_[512]; facade = true; + hasModuleSyntax = false; dynamicImportStackDepth = 0; openTokenDepth = 0; lastTokenPos = (char16_t*)EMPTY_CHAR; @@ -405,6 +406,7 @@ void tryParseExportStatement () { if (pos > end) return syntaxError(); } + hasModuleSyntax = true; // to handle "export {}" pos++; ch = commentWhitespace(true); } diff --git a/src/lexer.h b/src/lexer.h index aabc4be..381402c 100755 --- a/src/lexer.h +++ b/src/lexer.h @@ -64,6 +64,7 @@ void* analysis_base; void* analysis_head; bool facade; +bool hasModuleSyntax; bool lastSlashWasDivision; uint16_t openTokenDepth; char16_t* lastTokenPos; @@ -114,7 +115,7 @@ void addImport (const char16_t* statement_start, const char16_t* start, const ch import->statement_end = end; else if (dynamic == STANDARD_IMPORT) import->statement_end = end + 1; - else + else import->statement_end = 0; import->start = start; import->end = end; @@ -122,6 +123,7 @@ void addImport (const char16_t* statement_start, const char16_t* start, const ch import->dynamic = dynamic; import->safe = dynamic == STANDARD_IMPORT; import->next = NULL; + hasModuleSyntax = true; } void addExport (const char16_t* start, const char16_t* end, const char16_t* local_start, const char16_t* local_end) { @@ -137,6 +139,7 @@ void addExport (const char16_t* start, const char16_t* end, const char16_t* loca export->local_start = local_start; export->local_end = local_end; export->next = NULL; + hasModuleSyntax = true; } // getErr @@ -216,6 +219,9 @@ bool re () { bool f () { return facade; } +bool ms () { + return hasModuleSyntax; +} bool parse (); diff --git a/src/lexer.ts b/src/lexer.ts index 4ffce63..2757144 100755 --- a/src/lexer.ts +++ b/src/lexer.ts @@ -156,7 +156,8 @@ const isLE = new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; export function parse (source: string, name = '@'): readonly [ imports: ReadonlyArray, exports: ReadonlyArray, - facade: boolean + facade: boolean, + hasModuleSyntax: boolean ] { if (!wasm) // actually returns a promise if init hasn't resolved (not type safe). @@ -202,7 +203,7 @@ export function parse (source: string, name = '@'): readonly [ catch (e) {} } - return [imports, exports, !!wasm.f()]; + return [imports, exports, !!wasm.f(), !!wasm.ms()]; } function copyBE (src: string, outBuf16: Uint16Array) { @@ -239,6 +240,8 @@ let wasm: { es(): number; /** facade */ f(): boolean; + /** hasModuleSyntax */ + ms(): boolean; /** getImportDynamic */ id(): number; /** getImportEnd */ diff --git a/test/_unit.cjs b/test/_unit.cjs index 54a542c..b6873af 100755 --- a/test/_unit.cjs +++ b/test/_unit.cjs @@ -689,7 +689,7 @@ function x() { const [imports, exports] = parse(source); assert.strictEqual(exports.length, 0); assert.strictEqual(imports.length, 10); - + assert.strictEqual(imports[0].n, './mod0.js'); assert.strictEqual(imports[1].n, './mod1.js'); assert.strictEqual(imports[2].n, './mod2.js'); @@ -700,7 +700,7 @@ function x() { assert.strictEqual(imports[7].n, './mod7.js'); assert.strictEqual(imports[8].n, './mod8.js'); }); - + if (!js) test('non-identifier-string as (singleQuote)', () => { const source = ` @@ -716,7 +716,7 @@ function x() { const [imports, exports] = parse(source); assert.strictEqual(exports.length, 0); assert.strictEqual(imports.length, 9); - + assert.strictEqual(imports[0].n, './mod0.js'); assert.strictEqual(imports[1].n, './mod1.js'); assert.strictEqual(imports[2].n, './mod2.js'); @@ -727,7 +727,7 @@ function x() { assert.strictEqual(imports[7].n, './mod7.js'); assert.strictEqual(imports[8].n, './mod8.js'); }); - + if (!js) test('with-backslash-keywords as (doubleQuote)', () => { const source = String.raw` @@ -738,13 +738,13 @@ function x() { const [imports, exports] = parse(source); assert.strictEqual(exports.length, 0); assert.strictEqual(imports.length, 4); - + assert.strictEqual(imports[0].n, './mod0.js'); assert.strictEqual(imports[1].n, './mod1.js'); assert.strictEqual(imports[2].n, './mod2.js'); assert.strictEqual(imports[3].n, './mod3.js'); }); - + if (!js) test('with-backslash-keywords as (singleQuote)', () => { const source = String.raw` @@ -755,13 +755,13 @@ function x() { const [imports, exports] = parse(source); assert.strictEqual(exports.length, 0); assert.strictEqual(imports.length, 4); - + assert.strictEqual(imports[0].n, './mod0.js'); assert.strictEqual(imports[1].n, './mod1.js'); assert.strictEqual(imports[2].n, './mod2.js'); assert.strictEqual(imports[3].n, './mod3.js'); }); - + if (!js) test('with-emoji as', () => { const source = ` @@ -770,7 +770,7 @@ function x() { const [imports, exports] = parse(source); assert.strictEqual(exports.length, 0); assert.strictEqual(imports.length, 2); - + assert.strictEqual(imports[0].n, './mod0.js'); assert.strictEqual(imports[1].n, './mod1.js'); }); @@ -782,7 +782,7 @@ function x() { const [imports, exports] = parse(source); assert.strictEqual(exports.length, 0); assert.strictEqual(imports.length, 1); - + assert.strictEqual(imports[0].n, 'mod0'); }); @@ -832,7 +832,7 @@ function x() { export { " notidentifier " as foo8 } from './mod8.js';`; const [imports, exports] = parse(source); assert.strictEqual(imports.length, 9); - + assert.strictEqual(exports.length, 9); assertExportIs(source, exports[0], { n: 'foo0', ln: undefined }); assertExportIs(source, exports[1], { n: 'foo1', ln: undefined }); @@ -1353,6 +1353,35 @@ function x() { assertExportIs(source, exports[10], { n: 'default', ln: undefined }); assertExportIs(source, exports[11], { n: 'default', ln: undefined }); }); + + test('hasModuleSyntax import1', () => { + const [,,, hasModuleSyntax] = parse('import foo from "./foo"') + assert.strictEqual(hasModuleSyntax, true) + }) + test('hasModuleSyntax import2', () => { + const [,,, hasModuleSyntax] = parse('const foo = "import"') + assert.strictEqual(hasModuleSyntax, false) + }) + test('hasModuleSyntax import3', () => { + const [,,, hasModuleSyntax] = parse('import("./foo")') + assert.strictEqual(hasModuleSyntax, true) + }) + test('hasModuleSyntax import4', () => { + const [,,, hasModuleSyntax] = parse('import.meta.url') + assert.strictEqual(hasModuleSyntax, true) + }) + test('hasModuleSyntax export1', () => { + const [,,, hasModuleSyntax] = parse('export const foo = "foo"') + assert.strictEqual(hasModuleSyntax, true) + }) + test('hasModuleSyntax export2', () => { + const [,,, hasModuleSyntax] = parse('export {}') + assert.strictEqual(hasModuleSyntax, true) + }) + test('hasModuleSyntax export3', () => { + const [,,, hasModuleSyntax] = parse('export * from "./foo"') + assert.strictEqual(hasModuleSyntax, true) + }) }); suite('Invalid syntax', () => {